Lead Form Webhook Payload Builder for Google Ads

Build a test lead in Google's exact webhook format with a ready curl command, or paste what your endpoint received to check the key, phone format, IDs and duplicates.

Runs in your browser. Nothing is uploaded.For Google

Lead Form Webhook Payload Builder for Google Ads

1 Build or check a webhook lead

What do you want to do?
Lead type
Contact questions on your form

Use the IDs from the list below. The order here is the order in the payload.

Google's column IDs for qualifying questions
  • VEHICLE_MODEL — Which model are you interested in?
  • VEHICLE_TYPE — Which type of vehicle are you interested in?
  • PREFERRED_DEALERSHIP — Select your preferred dealership
  • VEHICLE_PURCHASE_TIMELINE — When do you plan on purchasing a vehicle?
  • VEHICLE_CONDITION — What type of vehicle condition are you interested in?
  • VEHICLE_OWNERSHIP — Do you own a vehicle?
  • VEHICLE_PAYMENT_TYPE — What vehicle ownership option are you interested in?
  • COMPANY_SIZE — What size is your company?
  • ANNUAL_SALES — What is your annual sales volume?
  • YEARS_IN_BUSINESS — How many years have you been in business?
  • JOB_DEPARTMENT — What is your job department?
  • JOB_ROLE — What is your job role?
  • EDUCATION_PROGRAM — Which program are you interested in?
  • EDUCATION_COURSE — Which course are you interested in?
  • PRODUCT — Which product are you interested in?
  • SERVICE — Which service are you interested in?
  • OFFER — Which offer are you interested in?
  • CATEGORY — Which category are you interested in?
  • PREFERRED_CONTACT_METHOD — Select your preferred method of contact
  • PREFERRED_LOCATION — Select your preferred location
  • PREFERRED_CONTACT_TIME — What is the best time to contact you?
  • PURCHASE_TIMELINE — When are you looking to make a purchase?
  • YEARS_OF_EXPERIENCE — How many years of work experience do you have?
  • JOB_INDUSTRY — What industry do you work in?
  • LEVEL_OF_EDUCATION — What is your highest level of education?
  • PROPERTY_TYPE — What type of property are you looking for?
  • REALTOR_HELP_GOAL — What do you need a realtor's help with?
  • PROPERTY_COMMUNITY — What community are you interested in?
  • PRICE_RANGE — What price range are you looking for?
  • NUMBER_OF_BEDROOMS — How many bedrooms are you looking for?
  • FURNISHED_PROPERTY — Are you looking for a fully furnished property?
  • PETS_ALLOWED_PROPERTY — Are you looking for properties that allow pets?
  • NEXT_PLANNED_PURCHASE — What is the next product you plan to purchase?
  • EVENT_SIGNUP_INTEREST — Would you like to sign up for an event?
  • PREFERRED_SHOPPING_PLACES — Where are you interested in shopping?
  • FAVORITE_BRAND — What is your favorite brand?
  • TRANSPORTATION_COMMERCIAL_LICENSE_TYPE — Which type of valid commercial license do you have?
  • EVENT_BOOKING_INTEREST — Are you interested in booking an event?
  • DESTINATION_COUNTRY — What is your destination country?
  • DESTINATION_CITY — What is your destination city?
  • DEPARTURE_COUNTRY — What is your departure country?
  • DEPARTURE_CITY — What is your departure city?
  • DEPARTURE_DATE — What is your departure date?
  • RETURN_DATE — What is your return date?
  • NUMBER_OF_TRAVELERS — How many people are you traveling with?
  • TRAVEL_BUDGET — What is your travel budget?
  • TRAVEL_ACCOMMODATION — Where do you want to stay during your travel?

Stays in your browser.

This page never sends anything to it. You run the command yourself.

2 Your payload / check results

Fill in the settings above — your result appears here instantly.

Next step When a webhook lead becomes a sale, send it back to Google Ads with its gcl_id.

Build an offline conversion file

Rules last checked: against the official pages:

How to test a Google Ads lead form webhook

A Google Ads lead form webhook sends each new lead straight to your CRM or server, so nobody has to download a CSV before the 30-day window closes. This tool builds test leads in the format from Google's webhook implementation guide and checks the leads your endpoint actually receives. It never connects to your endpoint itself.

  1. Pick the questions your form asks. Tick the contact fields and type the column IDs of any qualifying questions, such as SERVICE. Real requests only contain the questions on the form, so match it exactly.
  2. Add your IDs and key. Enter your campaign and form IDs if you know them, and the webhook key from the lead form. Choose a test lead or one that looks like a real lead.
  3. Copy the payload and the curl command. Save the JSON as request.json and run the command on your own computer. It posts the lead to your URL the same way Google's testing page describes. On Windows PowerShell, type curl.exe instead of curl.
  4. Paste what arrived. Switch to Check a received payload and paste the body from your server log. Add your key so the tool can compare it.
  5. Fix what the checks flag. Each finding says what is wrong and what to change, and the leads come out as a CSV with one column per question.
Google Ads lead form webhook payload builder showing a test lead JSON body, curl command and passed checks

Why test beyond the Send test data button

Google's button sends one fixed lead: campaign ID 123456, key testkey, and either sample answers or dummy_value, depending on which Google page you read. Its phone, 1-650-555-0123, isn't even in the E.164 format real leads use. That proves your URL answers, not that your code maps a postal code, a qualifying question or a 19-digit form ID. A custom payload tests the form you really run.

What to do next in Google Ads

  1. Open the lead form. Go to Campaigns › Assets, select Lead form above the table, hover over your form and click the pencil icon.
  2. Find the webhook fields. Expand Export leads from Google Ads, then Other data integration options. Under Webhook integration (optional), paste your URL and key.
  3. Send test data, then save. A green message means your endpoint replied with status 200. Then confirm the test lead really landed in your CRM with every field mapped.
  4. Go live with a small budget. Google's go-live recommendations: run the campaign with a small budget, check that real leads arrive correctly in your CRM, then scale up.
  5. Keep downloading as a backup. If the webhook fails, leads stay available as a CSV download for 30 days and are deleted after 60.

Common lead form webhook errors and fixes

Google Ads lead form webhook not working

Google's setup page names four failure states: the form was saved without a successful test, no data was sent, data was sent but no response came back, or the response was something other than HTTP 200. Check that the URL is complete, reachable from the internet and under 2,048 characters, and that your server replies quickly with 200 and {}.

Webhook key mismatch

If google_key in the request differs from the key on your server, the lead may not come from your form. Reject it. When you change the key in Google Ads, change it on your server the same day, or real leads get dropped.

Phone number not in E.164 format

Google sends User Phone as E.164, for example +11234567890. If your CRM shows (123) 456-7890, something in between reformatted it. Keep the plus sign and country code, because Customer Match and enhanced conversions need them later.

Duplicate leads in your CRM

A lead can arrive more than once, for example after a retry. Store lead_id and ignore repeats.

“dummy_value” leads

These come from the Send test data button. Delete them after testing and keep any lead with is_test: true out of your reports.

IDs that lose their last digits

Form, campaign and asset group IDs are 64-bit numbers. JavaScript and some spreadsheet tools round very long numbers, so a 19-digit ID ends in zeros. Parse IDs as big integers or keep them as text.

Frequently asked questions

What does the Google Ads lead form webhook send?

One HTTP POST per lead with a JSON body. It holds lead_id, campaign_id, form_id, gcl_id, google_key, api_version and a user_column_data list with one entry per answer (column_id plus string_value). Newer leads also carry lead_submit_time and lead_source. Test leads add is_test: true. Only the questions your form asks are included.

What is the webhook key (google_key) for?

It proves the request came from your lead form and not from someone who found your URL. You type the key in Google Ads, Google sends it in every lead, and your server compares the two before saving anything. If your CRM gives you no key, Google says a dummy value like GoogleAds is fine — but still check it.

How do I send a test lead to my webhook?

In the lead form, click Send test data. Google posts one fixed test lead (its testing page shows sample answers and the key testkey; its FAQ says the answers can arrive as dummy_value) and shows a green message if your endpoint replied with status 200. To test with your own questions and values, build a payload above, save it as request.json and run the curl command from your own computer.

What should my webhook return to Google?

HTTP status 200 with the body {}. Google retries a lead when your server answers with a 5XX error, but not after a 4XX error. So send 4XX only for requests you want to drop, such as a wrong key.

How do I avoid duplicate leads from the webhook?

Google does not promise to deliver each lead exactly once. Save lead_id with every lead and skip any request whose lead_id you already have. Paste several deliveries into the checker to see duplicates flagged.

Can I use the gcl_id from a lead for offline conversions?

Yes. gcl_id is the Google click ID of the person who sent the form. Store it with the lead exactly as received. When the lead becomes a customer, upload the sale to Google Ads as an offline conversion with that click ID.

Need help setting this up? Talk to EmproIT