Prefill a donation form with a donor's details
Add parameters to your form's URL to fill in name, email, address or amount before the donor starts typing.
If you already know who you are sending a donation link to, you can fill in their details for them. Add parameters to the end of your form's URL and the form arrives with those fields completed.
This is what makes a renewal email or a major-donor appeal feel personal: the donor clicks through and only has to confirm an amount.
The short version
https://pages.donately.com/yourorg/form/frm_xxxx?donately-first-name=Jane&donately-last-name=Doe&donately-email=jane@example.com
Everything after the ? is a list of name=value pairs joined by &.
Donor fields you can prefill
Use these exactly as written. The parameter name is the form field's id, which
is why they all start with donately-.
| Parameter | Fills in |
|---|---|
donately-first-name |
First name |
donately-last-name |
Last name |
donately-email |
Email address |
donately-phone-number |
Phone number |
donately-street-address |
Street address |
donately-street-address-2 |
Address line 2 |
donately-city |
City |
donately-state |
State or province |
donately-zip-code |
ZIP or postal code |
donately-country |
Country |
donately-comment |
Comment or message |
donately-onbehalf |
On behalf of / tribute name |
donately-anonymous |
Anonymous checkbox, true or false |
donately-donor-pays-fees |
Donor pays fees checkbox, true or false |
A full address example:
?donately-first-name=Jane&donately-last-name=Doe&donately-email=jane@example.com&donately-street-address=100%20Main%20St&donately-city=Chicago&donately-state=IL&donately-zip-code=60601&donately-country=US
A field only fills if the form actually shows it. If your form has address fields turned off, the address parameters are ignored.
Form settings you can set
These change how the form behaves rather than filling a field in, and they use
short names without the donately- prefix.
| Parameter | Sets | Example |
|---|---|---|
amount |
The donation amount, in dollars | amount=55 |
presets |
The preset amount buttons | presets=25,50,100,250 |
currency |
Currency, as a 3-letter code | currency=usd |
campaign-id |
Attribute the gift to a campaign | campaign-id=cmp_7ce279325f9e |
fundraiser-id |
Attribute the gift to a fundraiser | fundraiser-id=fun_xxxx |
recurring-frequency |
Preselect a recurring option | recurring-frequency=1.month |
So a monthly renewal link for a specific campaign, with the donor filled in:
?amount=25&recurring-frequency=1.month&campaign-id=cmp_xxxx&donately-email=jane@example.com
Encoding values
Anything with a space or a punctuation mark needs URL-encoding. Spaces become
%20, and an & inside a value becomes %26. 100 Main St becomes
100%20Main%20St.
If you are building these links in a spreadsheet or a mail-merge, encode the merge field rather than pasting raw text, or a donor named "O'Brien" will break the link.
What prefilling does not do
It does not lock anything. Every prefilled value is still an ordinary form field the donor can edit. If you need an amount the donor cannot change, set it in the form builder and lock it instead.
Do not put anything sensitive in a link. A URL is not private. It lands in browser history, gets passed along in referrer headers, sits in your email service's click logs, and is recorded on the donation itself: any parameter Donately does not recognise is stored as a tracking code on the resulting gift. Prefilling a name and email that you already hold is reasonable. Anything you would not want logged does not belong in a URL.
When it does not work
Forms embedded as an iframe. The parameters have to reach the form, and the iframe embed does not carry them across. Use the Simple script or Advanced script embed if you need prefilling on your own site, or link straight to the hosted form. See put your donation form on your website for which embed you are using.
Pages served over plain HTTP. The form falls back to iframe rendering, with the same result as above.
Version 7 forms. Prefilling from the URL is not available on v7 forms. If your form is on v7 and you need this, contact support and we will tell you where the change stands.
Doing it in code instead
The Advanced script embed takes the form-settings options above directly in JavaScript, which is tidier than a query string when you are generating pages programmatically. Note that it covers the settings in the second table only: donor name and address are not available as script options, so the URL is the route for those.