Skip to content

Build a SurveyMonkey-Style Survey in Gravity Forms (One Question at a Time)

Build a SurveyMonkey-style survey in Gravity Forms with star ratings, a 0 to 10 scale, Likert grids and ranking, shown one question at a time with a progress bar.

Chris Eggleston 9 min read

The Problem

You want a survey that feels like SurveyMonkey or Typeform: one question on the screen at a time, star ratings, a 0 to 10 “would you recommend us” scale, a grid of satisfaction ratings, a progress bar, and charts of the answers when the responses come in.

A normal Gravity Forms form shows every question at once, and the standard fields don’t include ratings, Likert grids or ranking. So it looks like a contact form, not a survey.

The Solution

Use two official add-ons together. The Survey Add-On gives you the survey questions (Likert, Rating, Rank and more) and a Survey Results report. The Conversational Forms Add-On turns the same form into a full-screen page that shows one question at a time, with a welcome screen and a progress bar.

A conversational survey question asking how likely you are to recommend us, with a row of 0 to 10 buttons and 9 selected
The finished survey: one question per screen, a progress bar, and Continue or Enter to move on.

Here’s what we’ll build, tested on Gravity Forms 3.2 with Survey 4.2.3 and Conversational Forms 1.8.0:

QuestionFieldSurvey Field Type
How would you rate your overall experience with us?SurveyRating (stars)
How likely are you to recommend us to a friend or colleague?SurveyRadio Buttons (0 to 10)
How satisfied are you with each of these?SurveyLikert, multiple rows, scoring on
What matters most to you when you buy from us?SurveyRank
How did you hear about us?SurveyCheckboxes
What is one thing we could do better?SurveyParagraph Text
Want us to follow up? (optional)Email(standard field)

What You Need

Step 1: Install the Two Add-Ons

Go to Forms → Add-Ons. With your Elite license key saved under Forms → Settings, you’ll see an Install button on the Survey Add-On and Conversational Forms Add-On cards. Install both, then activate them on the Plugins page (or from the same Add-Ons screen).

Step 2: Add Your Survey Questions

Create a new form and add a Survey field (under Advanced Fields) for each question. Every survey question is its own Survey field.

The Gravity Forms editor with the Survey field under Advanced Fields
The Survey field is under Advanced Fields once the add-on is active.

Type the question into Survey Question, then pick a Survey Field Type: Likert, Rank, Rating, Radio Buttons, Checkboxes, Single Line Text, Paragraph Text or Drop Down. The type locks once the form has entries, so choose before you go live.

Rating: The Star Question

Set the Survey Field Type to Rating and enter one choice per star, from worst to best. We used Terrible, Not so good, Okay, Pretty good and Excellent. Visitors see stars, and the choice text shows as a tooltip and in the results.

A conversational survey question asking how you would rate your overall experience, with four of five stars filled and a Continue button
The Rating question in conversational mode. Click a star, then Continue or press Enter.

Likert: The Satisfaction Grid

Set the type to Likert. The Columns are the answer scale (Very dissatisfied to Very satisfied). Tick Enable Multiple Rows to ask about several things on one grid, then add a row for each (Product quality, Value for the price, Customer support, Delivery speed).

Tick Enable Scoring to give each column a score, 1 to 5 here. Gravity Forms then shows an average score for every row in the results, and you can put the total in notifications with the {survey_total_score} merge tag.

Likert field settings with Enable Scoring turned on, five columns scored 1 to 5, and Enable Multiple Rows checked
Likert settings: five scored columns, with Enable Multiple Rows for the grid.
A Likert question with rows for product quality, value for the price, customer support and delivery speed, rated from very dissatisfied to very satisfied
The Likert grid as visitors see it.

Rank: Drag Into Order

Set the type to Rank and list the items. Visitors drag them into order, and the results add up a score and an overall rank for each item.

A Rank question where customers drag Quality, Friendly support, Price, Fast shipping and Product selection into order
A Rank question. Each item has a handle for dragging.

The 0 to 10 “Would You Recommend Us?” Question

Survey has no dedicated Net Promoter Score field, so use the Radio Buttons survey type with eleven choices, 0 to 10, and put “0 = not at all likely, 10 = extremely likely” in the description.

By default the eleven choices stack in a long column. To put them in a row, open the field’s settings and set Choice Layout to Horizontal. It’s built into Gravity Forms (Radio Buttons and Checkboxes have it too), and it works on the conversational page.

The recommend question in the form editor with Choice Layout set to Horizontal in the field settings
Choice Layout: Horizontal puts the 0 to 10 choices in a row.
The 0 to 10 question with Choice Layout set to Horizontal: eleven radio buttons in one row, with 9 selected
With Choice Layout set to Horizontal: a row of radio buttons, no code.

Optional: Make the Scale Look Like Buttons

Survey tools usually show this question as a row of numbered buttons. If you want that look, give the field the Custom CSS Class gr-nps (on the Appearance tab) and add this styling snippet with WPCode, Code Snippets or your child theme’s functions.php. It only changes how the choices look; the layout still comes from Choice Layout.

The recommend question field settings with the Custom CSS Class gr-nps
Add gr-nps under Custom CSS Class on the recommend question.
// Style a radio field with the CSS class gr-nps as a row of numbered buttons.
// Set the field's Choice Layout to Horizontal first; this only changes the look.
add_filter( 'gform_get_form_filter', function ( $html, $form ) {
	$has_nps = false;
	foreach ( $form['fields'] as $field ) {
		if ( strpos( (string) $field->cssClass, 'gr-nps' ) !== false ) {
			$has_nps = true;
			break;
		}
	}
	if ( ! $has_nps ) {
		return $html;
	}
	$css = '<style>
.gform_wrapper .gr-nps .gfield_radio {
	gap: 8px;
}
.gform_wrapper .gr-nps .gchoice {
	position: relative;
	margin: 0!important;
}
.gform_wrapper .gr-nps .gchoice input {
	position: absolute;
	opacity: 0;
	inset: 0;
	width: 100%!important;
	height: 100%!important;
	margin: 0!important;
	cursor: pointer;
	z-index: 1;
}
.gform_wrapper .gr-nps .gchoice label {
	display: flex!important;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0!important;
	padding: 0!important;
	border: 1px solid #c3c4c7;
	border-radius: 6px;
	font-weight: 600;
	background: #fff;
	max-width: none!important;
}
.gform_wrapper .gr-nps .gchoice label::before,
.gform_wrapper .gr-nps .gchoice label::after {
	display: none!important;
}
.gform_wrapper .gr-nps .gchoice input:checked+label {
	background: var(--gf-color-primary,#204ce5);
	border-color: var(--gf-color-primary,#204ce5);
	color: #fff;
}
.gform_wrapper .gr-nps .gchoice input:focus-visible+label {
	outline: 2px solid var(--gf-color-primary,#204ce5);
	outline-offset: 2px;
}
@media (max-width: 480px) {
	.gform_wrapper .gr-nps .gchoice label { width: 40px; height: 40px; }
}
</style>';
	return $css . $html;
}, 10, 2 );
The same 0 to 10 question styled with the gr-nps snippet: a row of square numbered buttons, with 9 filled in the accent color
The same question with the styling snippet: numbered buttons that fill with your accent color.

The snippet only loads its CSS on forms that use the gr-nps class, wherever the form appears, including the conversational page. The radio circles are hidden, and the selected number fills with your accent color so people can see what they picked.

Finish the form with a Checkboxes survey question, a Paragraph Text one, and an optional Email field if you want people to be able to ask for a reply. Set your thank-you message under Settings → Confirmations, as normal.

Step 3: Turn On Conversational Mode

Open the form’s Settings → Conversational Forms and turn on Enable Conversational Page. Set the Conversational Page Title and save once. After that first save you can edit the Conversational Page URL, which is the link you’ll share.

Form Settings, Conversational Forms: Enable Conversational Page turned on with the page title and URL
Enable Conversational Page. The URL becomes editable after the first save.

Everything is set per form; there are no global Conversational Forms settings. The useful ones for a survey:

  • Form Design: pick a layout, background color, Form Accent Color (buttons and progress bar) and Input Accent Color (radio dots, checkmarks). You can add a logo and a background image too.
  • Welcome Screen: a heading, a short description, the Start Button Text and an optional image, shown before the first question. Tell people how long it takes.
  • Buttons: the Continue Button Text under each question. The last question uses your form’s submit button text.
  • Footer: turn on Enable Progress Bar and choose a Progression Type: Percentage, or Proportion (“2/7 Completed!”).
Conversational Forms Form Design settings: layout, background color, a green form accent color and input accent color
Form Design: we used the green accent for buttons, the progress bar and the inputs.
Conversational Forms Welcome Screen settings with a heading, description, Start the survey button text and an optional image
Welcome Screen settings.
Conversational Forms Footer settings with Enable Progress Bar turned on and the Percentage or Proportion progression type
Footer settings with the progress bar turned on.

Click View Form next to the URL to open it. Visitors land on the welcome screen, answer one question at a time with Continue, the Enter key or the arrows in the footer, and finish on your confirmation message.

The survey welcome screen: Tell us how we did, a short description and a green Start the survey button
The welcome screen.
The survey thank-you screen with the progress bar at 100% completed
The confirmation message after the last question.

Share that link anywhere: an email after an order, a QR code on a receipt, a button on your site. If you also embed the same form on a normal page with the block or shortcode, it shows there as a regular form with every question at once. Only the conversational URL gets the one-at-a-time view.

Step 5: Read the Results

Go to Forms → Entries and open the Survey Results tab (or Results → Survey Results if another add-on also adds results). Each question gets a chart or table, and you can filter by date or by answers to other questions. We loaded 25 test responses:

The Survey Results tab with a bar chart of answers to the overall experience rating and the results filters
Survey Results: a bar chart for each question, with date and condition filters on the right.
Survey Results for the Likert question with counts and an average score per row, and the Rank question with total scores and aggregate rank
Likert results show counts and an average score per row. Rank results show a total score and aggregate rank.

Every response is also a normal Gravity Forms entry, so you can export it, send it to a spreadsheet, or use the answers in notifications. Use {survey_total_score} for the total Likert score and {score:id=3} for the score of one Likert field.

Download the Form Template

It’s free. Get the survey from this tutorial as a Gravity Forms import file, ready to customize.

This field is for validation purposes and should be left unchanged.
Name*(Required)

Things to Know

  • No CAPTCHA field. The Conversational Forms docs list the CAPTCHA field (including invisible reCAPTCHA and Turnstile placed as a field) as unsupported, so lean on the honeypot and an anti-spam add-on like Akismet instead.
  • The form title and description don’t show on the conversational page. Use the welcome screen for that.
  • Labels are always on top, and CSS Ready Classes (like two columns) don’t apply in conversational mode.
  • Continue doesn’t save a partial entry. If you use Partial Entries, only the Next and Previous buttons of a normal multi-page form update it.
  • Google Analytics: moving between questions doesn’t fire a pagination event.
  • Keep it anonymous if you promise it is. Leave out name and email fields, and turn on “Prevent the storage of IP addresses during form submission” under the form’s Settings → Personal Data.
  • Don’t test with an @example.com address. Gravity Forms’ email validation rejects that domain, so use a made-up address on another domain when you test.

Frequently Asked Questions

Can Gravity Forms make surveys like SurveyMonkey?

Yes. The Survey Add-On adds Likert, Rating and Rank questions plus a Survey Results report with charts, and the Conversational Forms Add-On shows the survey one question at a time on its own full-screen page with a welcome screen and progress bar. Both are included with a Gravity Forms Elite license.

Which Gravity Forms license do I need for surveys?

Elite. The Survey Add-On and the Conversational Forms Add-On are both Elite-only official add-ons, and you install them from Forms → Add-Ons once your Elite license key is saved.

Can I show one question at a time without Conversational Forms?

Yes, with a normal multi-page form that has one question per page, a progress bar and a Next button. It works on any license but feels less like a survey app. Conversational Forms adds the full-screen layout, a welcome screen and Enter-key navigation.

Does Gravity Forms have a Net Promoter Score (NPS) field?

Not a dedicated one. Use a Survey field with the Radio Buttons type and eleven choices from 0 to 10. Gravity Forms charts the answers in Survey Results, and a small CSS snippet can show the choices as a row of buttons.

Where do I see survey results in Gravity Forms?

Go to Forms → Entries and open the Survey Results tab. It shows a chart or table for every survey question, average scores for scored Likert fields, and aggregate ranks for Rank fields, and you can filter by date or by other answers.

Need More Help?

If you still need help, use the chat or leave a comment below and we’ll get back to you.

Comments

Ask a question or leave a comment

Your email is never shown. For help with a specific form, share what you expected and what happened instead.