Survey Routing Based on Respondent Source

While it’s not possible to define a route through a survey directly based on the specific tracking link or email invitation a respondent uses to access a survey, by using Piping, Hidden questions, default answers, and skip logic, it’s possible to make a survey do this. What we're going to do is, behind the scenes of the survey, convert a custom variable into the answer to a question.

This is an advanced technique, and you should make sure you’re familiar with the listed features below before attempting to set it up.

Basic Skip Logic

Advanced Skip Logic

Default Answers


Tracking Links

Before Starting

Before you get started doing this in Smartsurvey, it’s a good idea to write down on paper which questions are inapplicable to each group of respondents and work out a page breakdown. This will make the later things much easier.

Ideally, you should organise the survey so each set of questions is contained on a single page.

For our example, we assume a 3-page survey. The first page is the welcome page and contains “universal” questions. Page 2 contains questions that only apply to group A and Page 3 has the questions that are just for Group B.

Set up the Tracking Links

In the survey options, create a tracking link for each group of respondents you want to be routed differently. Give each link a name, so that you can easily identify them. Tracking Links need to be at least 3 characaters long, so for the purposes of this example, we'll call them Route_A and Route_B. You can use any type of tracking link, all that will matter later on is the name.

Create the Routing Question on the First Page of the Survey

The question text is not important, as we won’t show this to respondents, but for the sake of simplicity, let’s call it “routing”.

Edit the Question to Have a Default Answer

Click “Question size and Positioning” to open the advanced question settings. Under the Default Answer box, you’ll see a “piping” box. Click to open the drop-down, choose “Tracking Link Name” and click “insert”. The default answer box should now say “[link(title)]”. This will pipe the name of the tracking link the respondent used to access the survey into this question as a default answer.

Create the Rest of Your Survey

Add the other questions and pages to your survey.

Create Skip Logic Rules

Next to our “route” question, we click “Skip Logic” and create two rules.

Remember, in our example, Page 2 is only for people in group A, and Page 3 is only for people in Group B.

Using Skip Over Rules

The first would be set up as follows:

Condition – not equal to
Text: Route_A
Action: Skip Over Page
Page: 2

And save the rule.

Then, create a second rule for the B group:

Condition – not equal to
Text: Route_B
Action: Skip Over Page
Page: 3

And save the rule.

Using Jump To Rules

You can of course use "jump to" rules with this just as well:

Condition –  equal to
Text: Route_A
Action: Jump to Page
Page: 2

And save the rule.

Then, create a second rule for the B group:

Condition – equal to
Text: Route_B
Action: Jump to Page
Page: 3

Which approach you take is up to you and will vary based on your survey.

Test the Survey

Go to the collect tab and put your survey live.

Copy the first tracking link, and go to the address. You should see that the routing question has the letter “A” pre-filled for you. Complete the rest of the survey to ensure that you’re shown the correct questions.

Repeat the process with the next link and confirm the behaviour works as expected.

Repeat as many times as you need for the number of links you're using.

Hide the Routing Question

Once you’re happy the survey is behaving properly, then you can make the routing question invisible to respondents. Edit the question, and go to “question size and positioning” as before.

In the “CSS class” box, type “hidden” and save the question. Do not click the “hide question” box. This does something different, which will make the routing stop working.

With this done, the survey is ready for distribution by whichever methods you wish, by using the appropriate tracking link for each target group.

Going Further

This was a simple example, but it should be clear that the method involved will work for more complex setups. Because the data is inserted into the survey via the variable, routing questions can appear at multiple points of a long survey if desired, where a survey may branch, come back together, and branch again. There can be as many routes as you need or can map out.


There are some limitations to this method that cannot be overcome. The first page of the survey will always be shown to the respondent when they click a tracking link. This is less of a limitation than it may sound though as, if you want your respondents to be shown different questions right from the start, you can always make survey page 1 be a “welcome” page, with solely informational content shown to the respondent.

Surveys Sent using the Email Tool

The above instructions assume that you're using a web link to get respondents to access the survey. The Email Tool will always use the Default Tracking Link for invitations, unless you can create a specific tracking link for each invitation as part of the invitation setup (bit not choose a tracking link to use) - this may make the above method slightly cumbersome.

If you're using the email tool, you have two other options:


  • Use a Custom Column in the Mailing List as the source of the routing information for each respondent instead of a Custom Variable. If you call the Column "route", then the process above is identical to the one above except you skip step 2, and at step 4 enter [contact(route)] (instead of [variable(route)]) as the default answer to the routing question.

Was this guide helpful?