Skip to main content
Givebutter Widgets support URL parameters that automatically pre-fill form fields when donors visit your page. This creates a personalized experience and reduces friction in the donation process.

How It Works

When a user visits a page with a Givebutter Widget, URL parameters are automatically detected and used to pre-fill form fields. This works with both button widgets (popup forms) and inline form widgets.
1

User Clicks Custom Link

Donor clicks a personalized link from your email, SMS, or other channel
2

Parameters Detected

Widget library reads URL parameters from the page
3

Form Pre-filled

Donation form opens with information already filled in
4

Faster Checkout

Donor completes their gift with fewer steps

Supported Parameters

Donor Information

Pre-fill contact information to create a personalized experience:
ParameterDescriptionExample
gb_first_nameDonor’s first name?gb_first_name=Sarah
gb_last_nameDonor’s last name?gb_last_name=Johnson
gb_emailDonor’s email address[email protected]
gb_phoneDonor’s phone number?gb_phone=5551234567
gb_companyCompany or organization name?gb_company=Acme+Corporation

Donation Details

Control donation amount and preferences:
ParameterDescriptionExample
gb_amountPreset donation amount (in cents)?gb_amount=5000 ($50.00)
gb_recurringSet as recurring donation?gb_recurring=true
gb_frequencyRecurring frequency?gb_frequency=monthly
gb_fundSpecific fund designation?gb_fund=scholarship
gb_quantityNumber of items/tickets?gb_quantity=2

Donation Frequency Options

When using gb_frequency, supported values:
  • weekly - Donate every week
  • monthly - Donate every month (most common)
  • quarterly - Donate every 3 months
  • yearly - Donate once per year

Address Information

Pre-fill address fields for events, merchandise, or tax receipts:
ParameterDescriptionExample
gb_address_line1Street address?gb_address_line1=123+Main+St
gb_address_line2Apartment, suite, etc?gb_address_line2=Apt+4B
gb_address_cityCity?gb_address_city=Portland
gb_address_stateState/Province?gb_address_state=OR
gb_address_zipPostal code?gb_address_zip=97201
gb_address_countryCountry code?gb_address_country=US

URL Encoding

When building URLs with parameters, ensure special characters are properly encoded:
  • Spaces: Use + or %20
  • @ symbol: Use %40
  • Ampersand: Use %26 (in values, not between parameters)
https://yoursite.org/[email protected]&gb_company=Smith & Sons

Examples

Basic Donor Personalization

Pre-fill name and email for a personalized experience:
https://yoursite.org/donate?gb_first_name=John&gb_last_name=Smith&gb_email=john%40example.com

Preset Donation Amount

Direct donors to a specific giving level:
https://yoursite.org/donate?gb_amount=10000
Important: Amounts are in cents. So $100.00 = gb_amount=10000

Monthly Giving Campaign

Create links for recurring donation campaigns:
https://yoursite.org/donate?gb_amount=2500&gb_recurring=true&gb_frequency=monthly
This creates a $25/month recurring donation. Pre-fill attendee information and ticket quantity:
https://yoursite.org/event?gb_first_name=Sarah&gb_last_name=Johnson&gb_email=sarah%40example.com&gb_quantity=2

Full Example with All Fields

A complete personalized donation link:
https://yoursite.org/donate?gb_first_name=Michael&gb_last_name=Chen&gb_email=michael%40example.com&gb_phone=5551234567&gb_amount=5000&gb_recurring=true&gb_frequency=monthly&gb_fund=education

Use Cases

Use your email marketing platform’s merge tags to create personalized links:
<!-- Mailchimp example -->
<a href="https://yoursite.org/donate?gb_first_name=*|FNAME|*&gb_last_name=*|LNAME|*&gb_email=*|EMAIL|*">
  Donate Now
</a>
<!-- Constant Contact example -->
<a href="https://yoursite.org/donate?gb_first_name={First Name}&gb_last_name={Last Name}&gb_email={Email Address}">
  Make Your Gift
</a>
Benefits:
  • Reduces form friction
  • Increases conversion rates
  • Creates personal touch

Combining with UTM Parameters

Prefill parameters work seamlessly with UTM tracking parameters:
https://yoursite.org/donate?utm_source=newsletter&utm_medium=email&utm_campaign=spring-2026&gb_first_name=Sarah&gb_email=sarah%40example.com&gb_amount=5000
This link will:
  • Track the donation source (newsletter, email campaign)
  • Pre-fill donor information (Sarah, [email protected])
  • Suggest a $50 donation

Building URLs Programmatically

JavaScript Example

function buildDonationUrl(baseUrl, params) {
  const url = new URL(baseUrl);

  // Add prefill parameters
  if (params.firstName) url.searchParams.set('gb_first_name', params.firstName);
  if (params.lastName) url.searchParams.set('gb_last_name', params.lastName);
  if (params.email) url.searchParams.set('gb_email', params.email);
  if (params.amount) url.searchParams.set('gb_amount', params.amount);

  // Add UTM parameters
  if (params.utmSource) url.searchParams.set('utm_source', params.utmSource);
  if (params.utmMedium) url.searchParams.set('utm_medium', params.utmMedium);
  if (params.utmCampaign) url.searchParams.set('utm_campaign', params.utmCampaign);

  return url.toString();
}

// Usage
const link = buildDonationUrl('https://yoursite.org/donate', {
  firstName: 'John',
  lastName: 'Smith',
  email: '[email protected]',
  amount: 5000, // $50.00
  utmSource: 'email',
  utmMedium: 'newsletter',
  utmCampaign: 'spring-2026',
});

console.log(link);
// https://yoursite.org/donate?gb_first_name=John&gb_last_name=Smith&gb_email=john%40example.com&gb_amount=5000&utm_source=email&utm_medium=newsletter&utm_campaign=spring-2026

Python Example

from urllib.parse import urlencode

def build_donation_url(base_url, params):
    query_params = {}

    # Add prefill parameters
    if 'first_name' in params:
        query_params['gb_first_name'] = params['first_name']
    if 'last_name' in params:
        query_params['gb_last_name'] = params['last_name']
    if 'email' in params:
        query_params['gb_email'] = params['email']
    if 'amount' in params:
        query_params['gb_amount'] = params['amount']

    # Add UTM parameters
    if 'utm_source' in params:
        query_params['utm_source'] = params['utm_source']

    return f"{base_url}?{urlencode(query_params)}"

# Usage
link = build_donation_url('https://yoursite.org/donate', {
    'first_name': 'Sarah',
    'last_name': 'Johnson',
    'email': '[email protected]',
    'amount': 10000,  # $100.00
    'utm_source': 'email'
})

print(link)

Best Practices

Only pre-fill information you legitimately have:
  • Use data from your CRM or email platform
  • Don’t pre-fill sensitive information unless secure
  • Respect GDPR and privacy regulations
  • Allow donors to modify pre-filled fields
Long URLs with many parameters can be unwieldy: - Use bit.ly, TinyURL, or custom shorteners - Track click-through rates - Make links more shareable - Better for SMS and social media
When suggesting donation amounts: - Base on donor history if available - Use campaign-appropriate levels - Don’t set amounts too high (can deter donors) - Consider offering multiple pre-set links
Create a complete personalized experience:
  • Pre-fill form + personalized landing page copy
  • Match suggested amount to donor capacity
  • Reference past giving or engagement
  • Use consistent messaging across channels

Troubleshooting

Fields not pre-filling? Ensure URL parameters are properly encoded and the Widgets library is installed on your page.
Common issues:
  • Missing gb_ prefix on parameter names
  • URL encoding problems (spaces, special characters)
  • Widgets library not loaded on page
  • Parameters stripped by redirects
  • Wrong parameter names or values
Solution: Copy example URLs from this page and modify carefully.
The gb_amount parameter uses cents, not dollars:
  • ✅ Correct: gb_amount=5000 for $50.00
  • ❌ Incorrect: gb_amount=50 (this is $0.50)
Always multiply dollar amounts by 100.
Email addresses must have the @ symbol encoded:Use %40 instead of @ in URLs.
Both parameters are required for recurring:
?gb_recurring=true&gb_frequency=monthly
Don’t forget to set both gb_recurring AND gb_frequency.

Security Considerations

Important: Pre-filled values are suggestions only. Donors can always modify any pre-filled field before submitting their donation.
  • Never pre-fill payment information (card numbers, CVV, etc.)
  • Don’t include sensitive personal information in URLs
  • URLs may be logged by servers, analytics tools, and browser history
  • Use HTTPS for all donation pages
  • Consider using POST requests for highly sensitive scenarios