Skip to main content
Skip table of contents

Pre-populating form fields

When your supporters open a campaign, it can be beneficial if their details are already displayed in the form fields. This is known as pre-population and will mean your supporters have less typing to do, and may be more likely to submit the page.

There are several ways of pre-populating fields in campaign and fundraising pages:

  1. Use campaign links within broadcast campaign emails to supporters. When the supporter clicks on the link in their email, it will fill in any information stored in their default supporter record, for example their name and address (see below)
  2. Chain pages together via a redirect and filter or page redirect, so it remembers their details throughout their journey
  3. Add links on the thank you page of a campaign or fundraising page. Just add a link to a text block as usual and add ?chain to the end to pre-populate
  4. Or, if you wish to populate the fields using a tool other than Engaging Networks, then you can construct a URL that contains the relevant fields within it (see below)

Pre-populating form fields via broadcast emails

Two things to keep in mind when pre-populating form fields from campaign links in broadcast emails are:

  • Pre-population will only work the first time a campaign link is clicked from the email (for security reasons), and not with subsequent attempts
  • Pre-population does not work in test emails, as links aren’t sent with supporter ID information contained within them from tests.

Beyond that, pre-population can be used as normal in emails, to both pre-populate form fields and user data tags in text blocks. As long as the supporter has the relevant fields populated in their supporter account, they will appear on the linked campaign page as well.

Appending custom URL parameters

If you wish, you can also add URL parameters to your campaign links. These can be used to pre-populate additional data, for example a donation amount. If you want to add additional parameters, such as transaction.donationAmt=10 to force a different default donation amount, you can do so here.

Constructing a URL to pre-populate fields

Note that it is not recommend to put personally-identifiable information into a URL. Since your browser records history of URLs, and analytics software such as Google Analytics records URLs, they are potentially storing personal information. Using a Campaign Link is the recommended way since the supporter ID is encrypted in the URL. Do not use this method to pre-populate an email address, for example.

To pre-populate the landing page without using campaign links you need to construct a URL which contains the names and values of the fields you want to pre-populate.

To do this, you add name and value pairs in the query string at the end of the URL. For example, if your petition is this URL:


Then to pre-populate the Appeal Code as ABC123, you would do this:


As you can see, the query string (that starts with ?) begins with the name of the field (supporter.appealCode) which is set to be equal (=) to the value (ABC123).

Tagged fields will always have the same name – so supporter.emailAddress is always the email address, and transaction.donationAmt is the donation amount. To pre-populate a donation page with £20, you would use a URL like this:


If you want to populate more than one, then you would do this:


To find out the name of a field, it is best to look at the HTML of the page in your browser, using the browser’s Inspect tools. Look at the input tag and its name attribute. For example, on the example page above the opt-in radio has a name of “supporter.questions.19102”. So to make this default to Yes, you would add this to the URL:


Note that opt-ins have a value of Y or N. 

Be careful about “pre-ticking” opt-ins – check your internal consent policies before trying this.

Also note that URLs need to be “encoded”, so any spaces would translate as %20, for example. So this would populate the Appeal Code as “Facebook Ad 2019”:


There are various tools to encode text for you, for example

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.