Querystring format and usage
Format
A querystring is a string of data that’s tacked onto the end of a url.
A querystring consists of one or more parameters in the form of a key=value pair. Every querystring must begin with a ? preceding the first parameter. Each additional parameter must be attached to the one before it with an &. Here’s an example of a link with a querystring attached:
- https://www.mysite.com/mypage/?key1=value1&key2=value2
In this example:
- the destination URL is https://www.mysite.com/mypage/
- the querystring is ?key1=value1&key2=value2
- the querystring consists of two parameters:
- key1=value1
- key2=value2
- note that the first parameter is preceded by ? and the second is joined to it by the & sign
Usage
When a user clicks the link containing the querystring, each parameter can be passed into a form at the destination url.
For your forms, this means that you can:
- pass data from a referring source page and capture it in a form field (provided you can edit the link to the form)
- pass user-entered data and selections from one form to another form
As an example, let’s say you want to post to both Facebook and Instagram to encourage people to go to your site and submit a lead form. You want to track how many submissions come from Facebook, and how many from Instagram. That’s made possible by querystrings and a couple easy modifications to the destination form.
Likewise you can pass user submitted data / selections from one form to another form so that the user doesn’t have to fill the data out again in form two.
See below for details.
Passing data from a source page to a destination form
Add the querystring to the source link
This works only if you control the link the user will be clicking to take them to your page. As long as you can edit the link to include querystring data, you’re golden.
Remember that each querystring parameter consists of a key=value pair. The key and value are both defined by you.
- They key is how the form will recognize the data
- the value is the actual data you will be passing
Example: I am sending users from a Facebook post to a destination form. In my destination form, I want to capture Facebook as the source of the traffic. My querystring on the Facebook post’s URL could look like this: ?source=facebook
The entire Facebook post’s link back to my site would be structured like this: https://www.mysite.com/mypage/?source=facebook
Set the destination form to receive the querystring data
Any form field with a Default Value setting under Display in that field’s settings can receive querystring data.

Click the Merge Tag icon in the Default Value field. Under Other, select the Query String merge tag:


Now edit out the YOUR_KEY part of that and replace it with your actual key. In keeping with our example above, it should read {querystring:source}.
Save/Publish your form.
Now when a user clicks your Facebook link and lands on the form, the Text Field will prepopulate with Facebook – the value associated to the source key in your post’s link.
Tip: if you don’t want this to be visible to users on the form, use a Hidden field.
Passing data from one form to another
There are two types of data you can pass:
- Static data: data that will not change based on how the user has filled out the form, such as information about the page, form, or other data that you want to stay the same with each submission.
- Dynamic or user-entered data: data that will change based on the choices a user has made in the form, for example the user-entered value of a specific field.
Note: At this time there is not a way to populate field values in a form using data from the same form.
Either way, the origin form (the form the user initially interacts with) needs a Redirect action that contains a querystring appended to the URL of the redirect.

The destination form will need to have fields set to receive the data. See the section above, Set the destination form to receive the querystring data, for detailed steps on how to do this.
Passing static data from one form to another
Static data is data that will not change based on how the user has filled out the form. This can be information about the page, form, or any other data that you want to stay the same with each submission.
For static data, simply add a querystring containing your preferred key=value pair(s) to the full URL in the redirect action. The key can be whatever you want to call it. The value can also be a unique value, or a merge tag.
In this example, I’m passing the title of the form using the Form Title Merge tag:
- https://www.mysite.com/mypage/?FormTitle={form:title}
There are a variety of page and form specific merge tags that you can use.
With each new submission, the redirect will fire and pass the data to the destination. Make sure you have fields set up on your destination form to receive the data (as described above).
Passing user-entered data from one form to another
Use this method to pass data the user has entered into a field of the origin form to a field of the destination form. This can be used to prevent the user from having to enter the same info twice.
On your origin form’s Redirect action, add a querystring that contains the key=value pair.
The key can be whatever you want to call it. We recommend using the label of the field you’re sending the data from. The value must be the merge tag of the field you want to send the user’s selection from.
In this example, I’m passing data from an email field:
- https://www.mysite.com/mypage/?Email={field:email_1755188928178}
With each new submission, the redirect will fire and pass the data to the destination. Make sure you have fields set up on your destination form to receive the data (as described above).
Passing a list field selection from one form to another form
Passing list field data is similar but different from other fields. The redirect and URL + querystring is built the same as when you’re passing data from any other field into a destination form. Because list fields do not have a Default Value setting, setting up the destination form will be a little different. Let’s look at an example.
Let’s say we have a Brand select field and a Model select field. My URL for the redirect action would look like this:
http://localhost:10053/destination/?brand={field:brand_1755178034333}&model={field:model_1755178051852}
- I’m sending them to a page called destination on my local host site: http://localhost:10053/destination/
- I’m passing the Brand field user selection: ?brand={field:brand_1755178034333}
- and the Model field user selection: &model={field:model_1755178051852}
(remember that the first querystring parameter must always start with ? and each additional parameter with &)
The destination field must have list fields identical to those on the origin form to receive the data. So on my destination form I also have identical Brand and Model select fields. For these, I need to edit the Field Key of each under the Administration accordion within each field’s settings. The Field Key must match the key I used in the querystring for that field. So my Brand field must have a Field Key of brand and my Model field must have a Field Key of model:

The destination form’s Brand and Model select fields should now be prepopulated with the origin form’s Brand and Select field values made by the user prior to redirecting.
This method does not currently work for prepopulating multiple selections in a single field; e.g. the Multi-Select and Checkbox List fields.

