Dynamically populate your Giving Form.
URL parameters are a great way to personalize the content displayed on a web page, or, in this case, a Giving Form.
For example, say you have a donor accessing one of your organization's pages that is geared toward a demographic in Pennsylvania. By including a URL parameter in the link to the Giving Form, the Giving Form would then show Pennsylvania as the selected State, instead of requiring the donor to select a state.
Example of URL Parameters
The following would pre-populate a Giving Form with:
- State: New York
- City: New York
https://www.example.com/giving-form?state=NY&city=New%20York
The basics of it are that you begin the parameter statement with a ? at the end of the URL, i.e. the page name, then separate each subsequent parameter with an &.
Available Parameters
Important: Characters such as blank space, periods, and other punctuation will not be read by the URL parser unless formatted in a specific way. For example, white space becomes %20, and a period becomes %2E. For a full list of UTF-8 encoding, please refer to this helpful article from W3Schools.
Parameter Name | Parameter | Example |
Title/Salutation | title | Mrs%2E |
First Name | first_name | Ernest |
Last Name | last_name | Hemingway |
Address Line 1 | address1 | 10201%20Arrollo%20Lane |
Address Line 2 | address2 | Unit%208B |
City | city | Memphis |
State | state | TX |
Postal Code | zip_code | 75208 |
Country | country | US |
Company Name | company_name | Macromedia |
Phone Number |
phone | 2146024412 |
Email Address |
jtree%40gmail%2Ecom | |
Frequency Options |
frequency_options | (See Advanced Parameters) |
Gift Arrays |
gift_arrays | (See Advanced Parameters) |
Payment Type |
payment_type | credit |
Gift Amount |
gift_amount | 299 |
Designation (Singular) |
designation | 2736a9f5-0155-4096-a16b-0366a37bdd44 |
Designations (Multiple) |
designations | (See Advanced Parameters) |
Cash Default Amount |
cash_default | 250 |
UTM Term |
utm_term | randomWord |
UTM Content |
utm_content | someOtherWord |
UTM Source |
utm_source | youDefineThisOne |
Reference Code |
reference_code | youDefineThisOneToo |
Advanced Parameters
Most of the parameters listed above do not require much formatting. However, there are a few that require some specific formatting.
Before we begin, something that will save you a lot of time configuring these parameters is this super-useful Chrome console command:
encodeURIComponent('your unformatted parameter goes here');
This will return a valid URL parameter. For example, the above command would output this:
your%20unformatted%20parameter%20goes%20here
Now then, on to the fun stuff.
Frequency Options
Unformatted, the Frequency Options parameter would appear as an array of Strings:
frequency_options=["once","monthly","annually"]
That, when formatted, reads as follows:
frequency_options=%5B%22once%22%2C%22monthly%22%2C%22annually%22%5D
Gift Arrays
Unformatted/Non-Encoded:
gift_arrays=[11,12]
Formatted/Encoded:
gift_arrays=%5B11%2C12%5D
Designations (Multiple)
Unformatted/Non-Encoded:
designations=[
"2736a9f5-0255-a196-a36b-0366637bdd44",
"d61bf66b-7c01-d566-bf0e-058ac5cb0afa",
"9cf29160-fd31-101b-bba9-8075b6f35786"
]
Formatted/Encoded (some scrolling required):
%5B%222736a9f5-0255-a196-a36b-0366637bdd44%22%2C%22d61bf66b-7c01-d566-bf0e-058ac5cb0afa%22%2C%229cf29160-fd31-101b-bba9-8075b6f35786%22%5D
Customer Meta
Non-Encoded, as a JSON object:
customer_meta = {
"META_1": "meta-value-here",
"META_2": "the-other-meta-value",
"META-4": "where did meta 3 go?"
}
Encoded (some scrolling required):
%7B%22META_1%22%3A%22meta-value-here%22%2C%22META_2%22%3A%22the-other-meta-value%22%2C%22META-4%22%3A%22where%20did%20meta%203%20go%3F%22%7D
End Date
This one is probably the most involved. It involves UTC formatting, a way of expressing dates and times as the milliseconds that have passed since the midnight of January 1, 1970. So, obviously, this one should be a bit more of a challenge. Let's start at the beginning.
Day, month, year. Three basic pieces of data required to specify a date. We now want to format that day, month, and year into UTC. We will do so using JavaScript's built-in UTC tools.
Non-Encoded, as a month, day, and year:
February 15, 2026
Encoded as UTC:
1771113600000
Simple, right? Here's how to translate:
var utcDate = Date.UTC(2026,1,15);
console.log(utcDate);
//Expected Output: 1771113600000
The only thing to watch out for here is that the months are numbered 0-11 instead of 1-12. So, February would be 1, and January would be 0. There is also the option to include hours, minutes, seconds, and even milliseconds, but for the sake of simplicity, we only need to be concerned with the data selectable on our Giving Form's Date Picker.