Skip to main content

Prepopulate Form Values Using a URL

You can pre-fill certain values on your donation forms, event registrations, and widgets by adding a few details to the URL.

Personal Information

To pre-fill personal information on donation forms and event registrations, add /v/ to the URL, followed by a comma-separated list of field references and the value for each.

For example, to pre-fill the first and last name:

  • Before: https://secure.qgiv.com/for/myformkey/

  • After: https://secure.qgiv.com/for/myformkey/v/first_name=John,last_name=Smith

You can use these field references:

  • first_name

  • last_name

  • address1

  • address2

  • city

  • state

  • zip

  • company

  • phone

  • email

Important: You can't use the company reference for event registrations.

Donation Amounts

If you use the Custom Amounts system on your donation form, or if you enabled one-time donations for your event registration, you can pre-select a giving amount by adding /amount/ to the URL, followed by the amount.

For example, to pre-select a $50.00 donation: https://secure.qgiv.com/for/myformkey/amount/50.00

If you've enabled the Other amount option, you can pre-fill it by adding /amount/other/ followed by the amount.

For example, to pre-fill the other amount with $55.55: https://secure.qgiv.com/for/myformkey/amount/other/55.55

Restrictions

You can pre-select restrictions and sub-restrictions by adding /restriction/[name] to the URL. This works only with active restrictions.

Tip: To get this URL, go to the Restrictions section of your control panel and click Copy URL next to the restriction.

Events

If you have more than one active event, you can pre-select an event by adding /event/ and the event ID to the donation form URL.

For example: https://secure.qgiv.com/for/myformkey/event/12345

Frequency

To pre-select a recurring frequency, add /frequency/[frequency_letter] to the URL.

The frequency letter can be any one of these:

  • w for Weekly

  • b for Every Other Week

  • m for Monthly

  • q for Quarterly

  • s for Semiannually

  • a for Annually

For example, to pre-select a monthly donation frequency: https://secure.qgiv.com/for/myformkey/frequency/m

You can combine these options. For example, to pre-select a giving amount and pre-fill the first and last name: https://secure.qgiv.com/for/myformkey/amount/50.00/v/first_name=John,last_name=Smith

Custom Fields

You can pre-fill custom fields on your donation forms by adding the customfields parameter to the form URL. This lets you fill in details you already know about a donor, such as a campaign source or a response you've collected before, so the donor has fewer steps to complete.

How It Works

The form matches each custom field by the Reporting Label for that custom field, with spaces replaced by underscores. To find or set a custom field's Reporting Label, read Donation Forms Custom Fields.

A donor can change any pre-filled value before they submit the form, and the form keeps the value the donor enters.

Make sure the fields in your URL are correct, and test your URL before your campaign. If your URL includes a field value that doesn’t exist, the field isn’t prefilled for your donors. If this happens, donors can still enter a value for that field.

Important: If you rename a Reporting Label, you must update your links.

Example: One Custom Field in a URL

Add one customfields[Reporting_Label]=value parameter for each field. To pre-fill more than one field, separate the parameters with an ampersand.

  • For a year-round donation form: https://secure.qgiv.com/for/myformkey?customfields[Donation_Reason]=Tribute

  • For a peer-to-peer donation form: https://secure.qgiv.com/event/myalias/donate?customfields[Donation_Reason]=Tribute

Example: Multiple Custom Fields in a URL

To pre-fill several custom fields of different types, connect the parameters with an ampersand: https://secure.qgiv.com/for/myformkey?customfields[Checkbox_Field]=yes&customfields[Joined_Mailing_List]=yes&customfields[Shirt_Size]=Medium

Supported Custom Field Types

The following table lists each custom field type, an example value, and how the form uses it.

Custom field type

Example value

What the form does

Checkbox

yes

Selects the checkbox when the value is exactly yes. Any other value leaves it cleared.

Date

01/15/2026

Uses MM/DD/YYYY format

Dropdown

Option A

Matches an option by its label. If nothing matches, the field keeps its default.

Email Address

Sets the email address

Hidden Field

tracking123

Sets the hidden value, replacing the field's default. The donor never sees it.

Hidden fields can help you with reporting.

Multiple Selection

Option A|Option B

Selects every matching option. Separate options with a pipe character.

Number

42

Sets the numeric value

Paragraph Text

long, detailed text

Sets the text value. Commas inside the value are kept.

Phone Number

5555555555

Sets the phone value and shows it formatted, such as (555) 555-5555

Radio Button

Option B

Matches an option by its label. If nothing matches, the field keeps its default.

Short Text

hello world

Sets the text value

Website

Sets the website value

Characters That Need Encoding

Some characters have a special meaning in a URL, so you must replace them with an encoded value for the form to read them correctly. If you build links with a URL builder tool, it usually encodes these for you. You only need to encode them yourself when you write a URL by hand.

The following table lists the characters to encode.

Character

Encoded value

space

%20

&

%26

+

%2B

#

%23

%

%25

Widgets

All of these options also work with the widget system. To customize the URL beyond what the widgets interface offers, add the parameters to the URL in the data-embed attribute of your widget embed code.

For example:

<div class="qgiv-embed-container" data-qgiv-embed="true" data-embed-id="160" data-embed="https://secure.qgiv.com/for/yourformkey/embed/123/v/first_name=John,last_name=Smith" data-width="564"></div>

<script>(function(w, d, s, id){var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "https://secure.qgiv.com/resources/core/js/embed.js";fjs.parentNode.insertBefore(js, fjs);})(window, document, 'script', 'qgiv-embedjs');</script>

Use Cases

Here are a few ways to use this feature:

  • Work with your existing login system so donation forms pre-fill with a donor's data after they sign in to your own account system.

  • Send an email with a call-to-action button that asks for a specific giving amount, and use the amount option to pre-select it. If your email tool uses tags for the donor's name, use the personal information options to fill those in too.

  • If you use your form for more than one event, add registration links to your site for specific events using a direct link to the event.

Did this answer your question?