Merge Codes: Dynamically Pull Data

Insert Merge Code Into Question Text

Merge Codes can be used throughout SurveyGizmo to dynamically pull and display data previously entered in your survey or data from your account, email invitation, etc. Thanks to the merge code helper (available throughout the SurveyGizmo application), using merge codes in your surveys and email campaigns is easy!

How Do I Use Merge Codes in My Surveys?

Any time you wish to pull data from the answers your respondent previously provided (or their contact record in an email campaign) you can do so using merge codes. You can find a Merge Code helper within the editor on text fields including question titles and instructions:

In other places, like hidden value actions, default answer field, and email campaigns look for the Insert Merge Code link below the text field to bring up the Select a Merge Code dropdown menu:

Questions from previous pages will be available for you to select. After selecting an item from the dropdown menu, the Merge Code for that particular item will be inserted at the cursor once you click the green Insert button.

Check out our tutorial on Using Email Campaign Contact Data in Invite Messages and Surveys to learn more!

Merge Codes Available in Each Category

The bolded text below immediately following the opening bracket and ending before the opening parenthesis is the Merge Code category and defines the available properties (discussed in the next section).

[question("option value"), id="2"]

There are 10 different categories. Below we list and describe each available merge code within each category

  • Question: Dynamically pull and display data from questions or actions.
  • Quiz: Quiz score merge codes dynamically pull and display about how the respondent did.
  • Page: Access information about a specific page of the survey.
  • Invite: Pull data about a specific email campaign invitation or data unique to that invitation.
  • Contact: Pull contact data from the specific contact; these work for either email invitation contacts or contacts within an account email list.
  • URL: Pull and displaying query string values.
  • Survey: Pull data about a specific response or overall survey.
  • System: Pull metadata about a survey response or from the SurveyGizmo system.
  • Account: Pull data about your SurveyGizmo account.
  • Template: Populate display settings in your HTML and CSS templates (link opens a separate article).

Question Merge Codes

value or option value

[question("value"), id="3"]  or [question("option value"), id="2"]

These merge codes will display the reporting value of the answer given. This is the answer value that is not visible to the respondent and may be set differently than the title. You must include the id attribute to specify which question id you are retrieving. This property is used when you'd like to pull the total value (answer) that came from a previous question. If this Merge Code is used on a multiple choice question, it will string all the piped values with a comma. For example, if a respondent answers options A and B, the output will be:  A, B. These merge codes are interchangeable.

title or option title

[question("title"), id="2"] or [question("option title"), id="2"]

These merge codes will display the title of the answer given. This is the answer title that is visible to the respondent. You must include the id attribute to specify which question id you are retrieving. These merge codes are interchangeable.

If a question includes an other textbox either of these merge codes can be used to pull the text responses entered into the textbox. 

other textbox merge code

[question("option value"), id="2", option="10001"] or  [question("option value"), id="2", option="10001-other"]

These merge codes will pull the text response entered in an other textbox. The merge codes are interchangeable. 

piped title

[question("piped title")]

This special Merge Code property is only used within a question or descriptive text that is piped. It will display the answer title of the current iteration of the piped question. This is the answer title that is visible to the respondent. This property does not require any attributes.

piped value

[question("piped value")]

This special Merge Code property is only used within a question or descriptive text that is piped. It will display the reporting value of the current iteration of the piped question. This is the answer value that is not visible to the respondent and may be set differently than the title. This property does not require any attributes.

answer count

[question("answer count"), id="2"]

Useful with multiple selection questions such as a checkbox question, this property will display the total count of answers that were selected in the question. You must include the id attribute to specify which question id you are retrieving.

Note: The answer count merge code will count other, write-in fields with a write-in response as 2 answers.

question number

[question("question number"), id="2"]

This property will display the question's question number (including period) and can be used in referencing a previous question by number when you have a dynamically numbered survey (logic showing and hiding questions). You must include the id attribute to specify which question id you are retrieving.

Merge Codes for Pulling Data from Table Questions

If you are looking to pull data from a specific cell of a table you can do so using a Merge Code that includes the ID for the table row and the option SKU for the column.

The row and column headers below are labeled with the question IDs (for the row headers) and the option SKUs (for the column headers). This is just an example, you'll want to use a developer tool within your browser to inspect element and obtain your columns' option SKUs.

The below Merge Code will pull the data from the highlighted cell in the table above.

[question("value"), id="3", option="10004"]

Merge Codes for Pulling Data from Custom Table Questions

Custom table questions are popular for their ability to collect multiple data points in a concise manner. Trouble is, custom table questions are piped which makes the data difficult to access in the survey. Never fear! We've got a merge code for that too!

Here we cover a merge code that can be used to pull data from a single field in a Custom Table. This Merge Code will display column id 10 for a Custom Table question. Questionpipe will be set to "TableRow-x" where x refers to the table row number (the first table row is TableRow-0). ID will need to be the column id.

You can find the column ID# by editing the question. On the Question tab, right click next to the specific column within the Multiple Choice Options section and Inspect Element. Once you have accessed the Inspector, locate the number that follows "subquestion" i.e. "subquestion-10-title".

[question("value"), questionpipe="TableRow-0", id="10"]

Example:

For the above Custom Table your Merge Codes would be:


Column #1: Customers

  • Row 1 - Enthusiasm: [question("value"), questionpipe="TableRow-0", id="10"]
    • output: a
  • Row 2 - Drive: [question("value"), questionpipe="TableRow-1", id="10"]
    • output: b

Column #2: Employees

  • Row 1 - Enthusiasm: [question("value"), questionpipe="TableRow-0", id="11"]
    • output: b2
  • Row 2 - Drive: [question("value"), questionpipe="TableRow-1", id="11"]
    • output: c2

Page Piped Question Values

This Merge Code property is used to pull the values of a page that has been piped. It will display the reporting value of the question ID indicated in the id attribute (this is the question ID of the question on the piped page you'd like to show up). It will also string all the piped values with a comma. 

This will generally be used in send email actions, or later in the survey, when you'd like to know what answers were given for a specific piped page.

[question("value"), pagepipe="marketing", id="3"]

Example: 

If you have a question that asks someone to rate their top two departments, when you page pipe those, you'll get one for each. So, let's say on Page 1: Sales respondents rate the sales team from 1-10. And on Page 2: Marketing they rate the marketing team 1-10.

On your thank you page or inside your send email action, you would put something like:

Marketing Results: [question("value"), pagepipe="marketing", id="3"]

Sales Results: [question("value"), pagepipe="sales", id="3"]

...and we'll say you got 10 for marketing, and 5 for sales

The output would be:

Marketing Results: 10

Sales Results: 5

Custom Group Add as Needed Option

These complex and dynamic questions are actually piped. The below merge code will display the value of a sub-question within a specific add-as-needed group of a Custom Group question.

[question("value"), questionpipe="2", id="3"]

Ex: In the above example:

id="3" is the ID# of the sub-question within a custom group

questionpipe="2" is the second 'add as needed' set of answers chosen by the respondent (if they clicked the Add as Needed option one time)

Back to the Top

Page Merge Codes

page title

[page("title")]

This merge code will display the page title of the page it resides on. This property does not require any attributes.

page ID

[page("id")]

This merge code will display the page ID (SKU) of the page it resides on. This property does not require any attributes.

page path

[page("pagepath")]

This merge code will display the page path of the respondent up to the page where this merge code is used. This property does not require any attributes.

piped title

[page("piped title")]

This special Merge Code property is only used within a page that is piped and can be used in any question or descriptive text within that page. It will display the answer title of the current iteration of the piped question. This is the answer title that is visible to the respondent. This property does not require any attributes.

piped value

[page("piped value")]

This special Merge Code property is only used within a page that is piped and can be used in any question or descriptive text within that page. It will display the reporting value of the current iteration of the piped question. This is the answer value that is not visible to the respondent and may be set differently than the title. This property does not require any attributes.

Back to the Top

URL Variable Merge Codes

The property for the URL category is not a set value like other categories, but rather dependent on the variable being sent through the query string to the survey. The below example would pull the value of the test variable:

Sample Query String:?test=val

Sample Merge Code: [url("test")]

If the query string variable was TEST, the above merge could would still work properly as it ignores the case of the query string variable. However, the merge code must always use lowercase names!

Back to the Top

Invite/Contact Merge Codes

Invite/Contact Merge Codes are used for pulling data from Email Campaigns.

survey link

[invite(survey link)]

This Merge Code will display the survey link that is being used in that email campaign. This link will be formatted as a hyperlink in the HTML version of a campaign message. You can click the Source button in the HTML editor to change Begin to whatever you'd like the link to say. This property does not require any attributes.

DO NOT modify this merge code in any way within your email campaigns. If you wish to modify the text of the link check out our Customize Email Campaign Link Text Tutorial to learn how!

messageid

[invite("messageid")]

This Merge Code will display the unique id given to the specific invitation recipient in an email campaign (this id is appended to the survey link). This property does not require any attributes.

invite custom fields 1-10

[invite("custom 1")]

This Merge Code will display the corresponding custom field number from the invite recipient in an email campaign. This property does not require any attributes.

unsubscribe link

[invite("unsubscribe link")]

This Merge Code will create an unsubscribe link in the footer of your email campaign inside of the SurveyGizmo application. It is only available in the Email Campaign Footer Text and is required by CAN-SPAM ACT.

physical address

[account("physical address")]

This Merge Code will display the physical address attached to your account in Account > Account Summary inside of an email campaign's footer text.

email

[contact("email")]

This Merge Code will display the email address of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

first name

[contact("first name")] 

This Merge Code will display the first name of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

last name

[contact("last name")]

This Merge Code will display the last name of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

organization

[contact("organization")]

This Merge Code will display the organization of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

department

[contact("department")]

This Merge Code will display the department of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

home phone

[contact("home phone")]

This Merge Code will display the home phone of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

work phone

[contact("work phone")]

This Merge Code will display the work phone of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

fax

[contact("fax")]

This Merge Code will display the fax number of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

street

[contact("street")]

This Merge Code will display the street name of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

suite

[contact("suite")]

This Merge Code will display the suite number of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

city

[contact("city")]

This Merge Code will display the city of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

state or region

[contact("state")]

Both are interchangeable and will display the state or region of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

zip or postal

[contact("zip")]

Both are interchangeable and will display the zip/postal code of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

country

[contact("country")]

This Merge Code will display the country of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

job title

[contact("job title")]

This Merge Code will display the job title of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

website

[contact("website")]

This Merge Code will display the website of a contact and recipient of an email invitation through an email campaign. This property does not require any attributes.

custom field

[contact("customfieldname")]

This Merge Code will display the data stored in the custom field for the contact the contact management.  Replace "customfieldname" with the actual custom field name in Email Lists. This property does not require any attributes.

Back to the Top

Survey Merge Codes

session id

[survey("session id")]

This Merge Code will display the session id of the current survey response. This property does not require any attributes.

Note: If you're looking for a unique identifier to pass to incentive rewards programs for your survey participant, this unique ID would be an excellent choice as it will ALWAYS be unique to that particular respondent.

survey id

[survey("id")]

This Merge Code will display the SurveyGizmo assigned survey id for the current survey (useful for API interaction). This property does not require any attributes.

edit link

[survey("edit link")]

This Merge Code will display the unique edit link to edit the current survey response. This property does not require any attributes. This link is not compatible with email campaign messages.

title

[survey("title")]

This Merge Code will display the survey title of the current survey. This property does not require any attributes.

close date

[survey("close date")]

This Merge Code will display the date the current survey link will close. If no date is set, it will display the current date. This property does not require any attributes.

language

[survey("language")]

This Merge Code will display the language being used for the current survey response. This property does not require any attributes.

total pages

[survey("total pages")]

This Merge Code will display the total number of pages in the current survey. This property does not require any attributes.

total questions

[survey("total questions")]

This Merge Code will display the total number of questions in the current survey. This property does not require any attributes.

time taken

[survey("time taken")]

This Merge Code will display the total amount of the time the respondent has taken to reach the page where this Merge Code is present, displayed in seconds. This property does not require any attributes.

total responses

[survey("total responses")]

This Merge Code will display the total number of completed and partial responses for the current survey. This property does not require any attributes.

all responses

[survey("allresponses")]

This Merge Code will display the total number of all responses for the current survey (complete, partial, disqualified, and deleted). This property does not require any attributes.

complete responses

[survey("completeresponses")]

This Merge Code will display the total number of complete responses for the current survey. This property does not require any attributes.

partial responses

[survey("partialresponses")]

This Merge Code will display the total number of partial responses for the current survey. This property does not require any attributes.

deleted responses

[survey("deletedresponses")]

This Merge Code will display the total number of deleted responses for the current survey. This property does not require any attributes.

disqualified responses

[survey("disqualifiedresponses")]

This Merge Code will display the total number of disqualified responses for the current survey. This property does not require any attributes.

basic page count

[survey("basic page count")]

This Merge Code will display the number of pages visited by the respondent so far, including the current page. This includes counting each iteration of a page that is page piped. Finally, it will not count navigation to pages you have already visited.

For instance, if you start on page 1, get jumped to page 3, hit 'previous page' and return to page 1, change an answer and get jumped to the Thank You page, you will have a total of 3 if the Thank You page has this Merge Code.

surveycounter

[survey("counter")]

This merge code inserts a unique number for this survey that will increment each time the merge code is used.

Example: 1, 2, 3...

You can make this unique number safer to use in a long-running survey by adding the parameter "safer", which automatically adds in the numeric day of the year.

Example: [survey("counter"), safer="true"], which will output 441, 442, 443... because today is the 44th day of the year.

If you'd like control over the starting value, you can add the parameter "startat" to set a custom starting value for the counter.

Example: [survey("counter"), startat="1000"], which will output 1001, 1002, 1003...

Finally, if you need to use more than one counter in a survey, you can add the parameter "name=secondCounter", which creates a second counter which is unique from the first and referred to by the name "secondCounter". Make sure the name is unique, like "Counter2x", that you haven't used in a previous survey.

Example: [survey("counter"), name="secondCounter"]

The survey counter merge code is not compatible with embedded surveys.

Back to the Top 

Quiz Merge Codes

The below quiz category merge codes (e.g. [quiz("questions correct")]) will ONLY work within the quiz score message itself.

score

[quiz("score")]

This will display the respondent's score (integer value). Pass/Fail & Tally Quizzes

totalquestions

[quiz("totalquestions")]

Displays the count of how many questions were scored Pass/Fail Quizzes ONLY!

questionscorrect

[quiz("questionscorrect")]

Displays the number of correctly answered questions. Pass/Fail Quizzes ONLY!

questionswrong

[quiz("questionswrong")]

Display the number of incorrectly answered questions. Pass/Fail Quizzes ONLY!



The below question category quiz merge codes (e.g. [question("quiz score"), id="2"]) work within the quiz score message and outside of the quiz score (e.g. send email actions).

quiz score

[question("quiz score"), id="2"]

This will display the total quiz score for both Tally and Pass/Fail Quizzes.

quiz total correct

[question("quiz total correct"), id="2"]

This will display the total number of correctly answered questions. Pass/Fail Quizzes ONLY!

quiz total wrong

[question("quiz total wrong"), id="2"]

This will display the total number of incorrectly answered questions. Pass/Fail Quizzes ONLY!

quiz passed

[question("quiz passed"), id="2"]

This will display whether or not the quiz was passed or failed. (True = Passed, False = Failed). Pass/Fail Quizzes ONLY!

quiz total questions

[question("quiz total questions"), id="2"]

This will display the total number of questions in your quiz. Pass/Fail Quizzes ONLY!

quiz message

[question("quiz message"), id="2"]

This will display the passing or failing message you set up inside your quiz score. Pass/Fail Quizzes ONLY!

quiz tally result

[question("quiz tally result"), id="2"]

For a Tally Quiz, this will display the quiz message for the range the respondent falls.Tally Quizzes ONLY!

Back to the Top 

Account Merge Codes

email

[account("email")]

This Merge Code will display the email address of the SurveyGizmo account holder, based on the primary Account Information. This property does not require any attributes.

organization 

[account("organization")]

This Merge Code will display the organization of the SurveyGizmo account holder, based on the primary Account Information. This property does not require any attributes.

street

[account("street")]

This Merge Code will display the street address of the SurveyGizmo account holder, based on the primary Account Information. This property does not require any attributes.

suite

[account("suite")]

This Merge Code will display the suite address of the SurveyGizmo account holder, based on the primary Account Information. This property does not require any attributes.

city

[account("city")]

This Merge Code will display the city address of the SurveyGizmo account holder, based on the primary Account Information. This property does not require any attributes.

region

[account("region")]

This Merge Code will display the region of the SurveyGizmo account holder, based on the primary Account Information. This property does not require any attributes.

zip or postal

[account("postal")]

Both are interchangeable and will display the zip/postal code of the SurveyGizmo account holder, based on the primary Account Information. This property does not require any attributes.

country

[account("country")]

This Merge Code will display the country of the SurveyGizmo account holder, based on the primary Account Information. This property does not require any attributes.

public phone

[account("public phone")]

This Merge Code will display the public phone number of the SurveyGizmo account holder, based on the primary Account Information. This property does not require any attributes.

physical address

[account("physical address")]

This Merge Code will display the physical address attached to your account from Account > Account Summary inside of an email campaign's footer text.

Back to the Top

System Data Merge Codes

time

[system("time")]

This Merge Code will display the current time in the US Eastern timezone. This property does not require any attributes.

date

[system("date")]

This Merge Code will display the current date (in the US Eastern timezone). The default format is MM/DD/YYYY but can be altered with the format attribute go to Format and Transform Data in Merge Codes to learn more!

referrer

[system("referrer")]

This Merge Code will display the link which the user was referred from to your survey. 

ip

[system("ip")]

This Merge Code will display the IP address of the respondent in the current survey response, if available. This property does not require any attributes.

browser or user agent

[system("browser")]

Both are interchangeable and will display the browser type/user agent string of the respondent in the current survey response, if available. This property does not require any attributes.

country

[system("country")]

This Merge Code will display the country of the respondent in the current survey response based on the geolocation data retrieved from their IP address, if available. This property does not require any attributes.

state

[system("state")]

This Merge Code will display the state of the respondent in the current survey response based on the geolocation data retrieved from their IP address, if available. This property does not require any attributes.

region

[system("region")]

This Merge Code will display the region of the respondent in the current survey response based on the geolocation data retrieved from their IP address, if available. This property does not require any attributes.

city

[system("city")]

This Merge Code will display the city of the respondent in the current survey response based on the geolocation data retrieved from their IP address, if available. This property does not require any attributes.

zip or postal

[system("postal")]

Both are interchangeable and will display the zip/postal code of the respondent in the current survey response based on the geolocation data retrieved from their IP address, if available. This property does not require any attributes.

longitude or long

[system("longitude")]

Both are interchangeable and will display the longitude of the respondent in the current survey response based on the geolocation data retrieved from their IP address, if available. This property does not require any attributes.

[system("latitude")]

Both are interchangeable and will display the latitude of the respondent in the current survey response based on the geolocation data retrieved from their IP address, if available. This property does not require any attributes.

Merge Codes in Translations

In multi-language surveys if you plan to use merge codes to dynamically pull previous answers you'll need to make sure to use the title merge code in order to pull the correct language. 

[question("title"), id="3"], [question("piped title")] , and [page("piped title")]  - Will all pull the appropriate language in multi-language surveys. 

[question("value"), id="3"], [question("piped value")] , and [page("piped value")]  - Will all pull the default language in multi-language surveys. 

Merge Codes in Reports and Exports

Because merge codes populate with a dynamic value for each response, when the results are summarized, there is not a way to aggregate these values. As a result, the merge code displays in reports

How Can I Fix This?

If you wish to change this within the Standard Report you can edit each question that uses simple piping and customize the Headline to display something more meaningful. To do so, click the Chart Type option to edit each element within the Standard Report.

Delete or customize the text of the merge code in the Title field and click Save. Repeat for all questions that use simple piping within your survey.

In order to address this in a CSV/Excel Export of your raw data, this would need to be edited manually within Excel.

Basic Standard Market Research HR Professional Full Access Reporting
Free Individual Team & Enterprise
Feature Included In