Use Google Ads in Agent Serve to list accessible accounts and campaigns, retrieve ad groups and performance metrics, and run custom Google Ads Query Language (GAQL) queries. These read operations support campaign reporting and budget monitoring workflows.
Connect to Google Ads to list accounts, campaigns, and ad groups, get performance metrics, and run custom GAQL queries. Start a workflow when someone submits a lead form, and send qualified or won leads back to Google Ads as offline conversions so bidding favors better leads. Use Ingest Offline Conversions or Ingest Enhanced Conversions for Leads, which go through Google's Data Manager API; the older Upload operations only work for Google Cloud projects Google has allowlisted.
List all Google Ads customer accounts accessible by the authenticated user
| Parameter | Type | Required | Description |
|---|
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
| Parameter | Type | Description |
|---|
customerIds | array | List of accessible customer IDs |
totalCount | number | Total number of accessible customer accounts |
Run a custom Google Ads Query Language (GAQL) query
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID (numeric, no dashes) |
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
managerCustomerId | string | No | Manager account customer ID (if accessing via manager account) |
query | string | Yes | GAQL query to execute |
pageToken | string | No | Page token for pagination |
| Parameter | Type | Description |
|---|
results | json | Array of result objects from the GAQL query |
totalResultsCount | number | Total number of matching results |
nextPageToken | string | Token for the next page of results |
List campaigns in a Google Ads account with optional status filtering
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID (numeric, no dashes) |
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
managerCustomerId | string | No | Manager account customer ID (if accessing via manager account) |
status | string | No | Filter by campaign status (ENABLED, PAUSED, REMOVED) |
limit | number | No | Maximum number of campaigns to return |
| Parameter | Type | Description |
|---|
campaigns | array | List of campaigns in the account |
↳ id | string | Campaign ID |
↳ name | string | Campaign name |
↳ status | string | Campaign status (ENABLED, PAUSED, REMOVED) |
↳ channelType | string | Advertising channel type (SEARCH, DISPLAY, SHOPPING, VIDEO, PERFORMANCE_MAX) |
↳ startDate | string | Campaign start date (YYYY-MM-DD) |
↳ endDate | string | Campaign end date (YYYY-MM-DD) |
↳ budgetAmountMicros | string | Daily budget in micros (divide by 1,000,000 for currency value) |
totalCount | number | Total number of campaigns returned |
Get performance metrics for Google Ads campaigns over a date range
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID (numeric, no dashes) |
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
managerCustomerId | string | No | Manager account customer ID (if accessing via manager account) |
campaignId | string | No | Filter by specific campaign ID |
dateRange | string | No | Predefined date range (LAST_7_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTH, TODAY, YESTERDAY) |
startDate | string | No | Custom start date in YYYY-MM-DD format |
endDate | string | No | Custom end date in YYYY-MM-DD format |
| Parameter | Type | Description |
|---|
campaigns | array | Campaign performance data broken down by date |
↳ id | string | Campaign ID |
↳ name | string | Campaign name |
↳ status | string | Campaign status |
↳ impressions | string | Number of impressions |
↳ clicks | string | Number of clicks |
↳ costMicros | string | Cost in micros (divide by 1,000,000 for currency value) |
↳ ctr | number | Click-through rate (0.0 to 1.0) |
↳ conversions | number | Number of conversions |
↳ date | string | Date for this row (YYYY-MM-DD) |
totalCount | number | Total number of result rows |
List ad groups in a Google Ads campaign
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID (numeric, no dashes) |
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
managerCustomerId | string | No | Manager account customer ID (if accessing via manager account) |
campaignId | string | Yes | Campaign ID to list ad groups for |
status | string | No | Filter by ad group status (ENABLED, PAUSED, REMOVED) |
limit | number | No | Maximum number of ad groups to return |
| Parameter | Type | Description |
|---|
adGroups | array | List of ad groups in the campaign |
↳ id | string | Ad group ID |
↳ name | string | Ad group name |
↳ status | string | Ad group status (ENABLED, PAUSED, REMOVED) |
↳ type | string | Ad group type (SEARCH_STANDARD, DISPLAY_STANDARD, SHOPPING_PRODUCT_ADS) |
↳ campaignId | string | Parent campaign ID |
↳ campaignName | string | Parent campaign name |
totalCount | number | Total number of ad groups returned |
Get performance metrics for individual ads over a date range
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID (numeric, no dashes) |
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
managerCustomerId | string | No | Manager account customer ID (if accessing via manager account) |
campaignId | string | No | Filter by campaign ID |
adGroupId | string | No | Filter by ad group ID |
dateRange | string | No | Predefined date range (LAST_7_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTH, TODAY, YESTERDAY) |
startDate | string | No | Custom start date in YYYY-MM-DD format |
endDate | string | No | Custom end date in YYYY-MM-DD format |
limit | number | No | Maximum number of results to return |
| Parameter | Type | Description |
|---|
ads | array | Ad performance data broken down by date |
↳ adId | string | Ad ID |
↳ adGroupId | string | Parent ad group ID |
↳ adGroupName | string | Parent ad group name |
↳ campaignId | string | Parent campaign ID |
↳ campaignName | string | Parent campaign name |
↳ adType | string | Ad type (RESPONSIVE_SEARCH_AD, EXPANDED_TEXT_AD, etc.) |
↳ impressions | string | Number of impressions |
↳ clicks | string | Number of clicks |
↳ costMicros | string | Cost in micros (divide by 1,000,000 for currency value) |
↳ ctr | number | Click-through rate (0.0 to 1.0) |
↳ conversions | number | Number of conversions |
↳ date | string | Date for this row (YYYY-MM-DD) |
totalCount | number | Total number of result rows |
List conversion actions in a Google Ads account, with their resource names for conversion uploads
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID (numeric, no dashes) |
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
managerCustomerId | string | No | Manager account customer ID (if accessing via manager account) |
conversionActionType | string | No | Only list actions of this type, e.g. UPLOAD_CLICKS for actions that accept offline click conversion imports |
limit | number | No | Maximum number of conversion actions to return |
| Parameter | Type | Description |
|---|
conversionActions | array | Conversion actions in the account (removed actions are excluded) |
↳ id | string | Conversion action ID |
↳ name | string | Conversion action name |
↳ resourceName | string | Resource name (customers/{customerId}/conversionActions/{id}) to pass to conversion uploads |
↳ type | string | Conversion action type, e.g. UPLOAD_CLICKS for offline click imports |
↳ status | string | Status (ENABLED or HIDDEN) |
↳ category | string | Category, e.g. QUALIFIED_LEAD or PURCHASE |
↳ primaryForGoal | boolean | Whether the action is primary for its goal and used for bidding |
↳ defaultValue | number | Default conversion value |
↳ defaultCurrencyCode | string | Default currency code |
↳ alwaysUseDefaultValue | boolean | Whether the default value always replaces uploaded values |
totalCount | number | Number of conversion actions returned |
Send offline click conversions (for example qualified or won leads) to Google Ads by gclid, gbraid, or wbraid through the Data Manager API, so bidding learns which clicks turn into business. Recommended over Upload Click Conversions, which Google limits to allowlisted projects.
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID that owns the conversion action (numeric, no dashes) |
managerCustomerId | string | No | Manager account customer ID, when the connected Google account reaches the customer through a manager |
conversionAction | string | Yes | Conversion action ID, or its resource name (customers/{customerId}/conversionActions/{id}). Must be an UPLOAD_CLICKS action ("Website (Import from clicks)"). A row can override it. |
eventSource | string | No | Where the conversion happened: WEB, APP, IN_STORE, PHONE, MESSAGE, OTHER. Defaults to WEB. A row can override it. |
gclid | string | No | Google click ID captured from the landing page URL (single-row upload) |
gbraid | string | No | gbraid URL parameter for iOS app clicks (single-row upload) |
wbraid | string | No | wbraid URL parameter for iOS web clicks (single-row upload) |
conversionDateTime | string | No | When the conversion happened, with a timezone: ISO 8601 such as "2026-06-01T14:30:00-04:00", or "2026-06-01 14:30:00-04:00" (single-row upload) |
conversionValue | number | No | Conversion value in currency units, not micros (single-row upload) |
currencyCode | string | No | ISO 4217 currency code for the value, e.g. USD (single-row upload) |
orderId | string | No | Unique order or lead ID, sent as the transaction ID; Google uses it to deduplicate (single-row upload) |
adUserDataConsent | string | No | Consent for ad user data for every row: GRANTED or DENIED. A row can override it. |
adPersonalizationConsent | string | No | Consent for ad personalization for every row: GRANTED or DENIED. A row can override it. |
validateOnly | boolean | No | Validate the rows with Google without importing them |
conversions | json | No | Up to 2,000 rows to send at once, replacing the single-row fields. Each row: { gclid | gbraid | wbraid, conversionDateTime, conversionValue?, currencyCode?, orderId?, conversionAction?, eventSource?, adUserDataConsent?, adPersonalizationConsent? } |
| Parameter | Type | Description |
|---|
customerIds | json | List of accessible customer IDs (list_customers) |
results | json | Query results (search), or rows Google accepted (conversion uploads and adjustments) |
conversionActions | json | Conversion actions with their resource names (list_conversion_actions) |
uploadedCount | number | Rows Google accepted (conversion uploads and adjustments) |
failedCount | number | Rows Google rejected (conversion uploads and adjustments) |
errors | json | Row-level errors: index, type, code, message, field (conversion uploads) |
jobId | string | Upload job ID for the offline diagnostics report (conversion uploads) |
validateOnly | boolean | Whether the upload was only validated (conversion uploads and ingests) |
requestId | string | Data Manager request ID to pass to Get Ingest Status (ingests, ingest status) |
eventCount | number | Conversion events sent (ingests) |
destinationCount | number | Conversion actions the events were sent to (ingests) |
warnings | json | Field warnings on accepted events: index, field, reason, description (ingests) |
requestStatus | string | PROCESSING, SUCCESS, PARTIAL_SUCCESS, FAILED, or REQUEST_STATUS_UNKNOWN (get_ingest_status) |
destinations | json | Per conversion action: status, event count, and error and warning counts by reason (get_ingest_status) |
campaigns | json | Campaign data (list_campaigns, campaign_performance) |
adGroups | json | Ad group data (list_ad_groups) |
ads | json | Ad performance data (ad_performance) |
totalCount | number | Total number of results |
totalResultsCount | number | Total results count (search) |
nextPageToken | string | Token for next page of results |
Send offline lead conversions matched by the lead's email or phone through the Data Manager API. Agent Serve normalizes and SHA-256 hashes them before sending, so raw contact data never leaves Agent Serve. Recommended over Upload Enhanced Conversions for Leads, which Google limits to allowlisted projects.
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID that owns the conversion action (numeric, no dashes) |
managerCustomerId | string | No | Manager account customer ID, when the connected Google account reaches the customer through a manager |
conversionAction | string | Yes | Conversion action ID, or its resource name (customers/{customerId}/conversionActions/{id}). Must be an UPLOAD_CLICKS action ("Website (Import from clicks)"). A row can override it. |
eventSource | string | No | Where the conversion happened: WEB, APP, IN_STORE, PHONE, MESSAGE, OTHER. Defaults to WEB. A row can override it. |
gclid | string | No | Google click ID captured from the landing page URL (single-row upload) |
gbraid | string | No | gbraid URL parameter for iOS app clicks (single-row upload) |
wbraid | string | No | wbraid URL parameter for iOS web clicks (single-row upload) |
conversionDateTime | string | No | When the conversion happened, with a timezone: ISO 8601 such as "2026-06-01T14:30:00-04:00", or "2026-06-01 14:30:00-04:00" (single-row upload) |
conversionValue | number | No | Conversion value in currency units, not micros (single-row upload) |
currencyCode | string | No | ISO 4217 currency code for the value, e.g. USD (single-row upload) |
orderId | string | No | Unique order or lead ID, sent as the transaction ID; Google uses it to deduplicate (single-row upload) |
adUserDataConsent | string | No | Consent for ad user data for every row: GRANTED or DENIED. A row can override it. |
adPersonalizationConsent | string | No | Consent for ad personalization for every row: GRANTED or DENIED. A row can override it. |
validateOnly | boolean | No | Validate the rows with Google without importing them |
email | string | No | Lead's email address, hashed with SHA-256 before sending (single-row upload; email or phone required) |
phoneNumber | string | No | Lead's phone number with country code, e.g. +14155550123; hashed with SHA-256 before sending (single-row upload) |
sessionAttributes | string | No | Base64 session attributes string captured with the lead form submission, which Google recommends sending (single-row upload) |
conversions | json | No | Up to 2,000 rows to send at once, replacing the single-row fields. Each row: { email?, phoneNumber?, gclid?, sessionAttributes?, conversionDateTime, conversionValue?, currencyCode?, orderId?, conversionAction?, eventSource?, adUserDataConsent?, adPersonalizationConsent? } with an email or phone |
| Parameter | Type | Description |
|---|
customerIds | json | List of accessible customer IDs (list_customers) |
results | json | Query results (search), or rows Google accepted (conversion uploads and adjustments) |
conversionActions | json | Conversion actions with their resource names (list_conversion_actions) |
uploadedCount | number | Rows Google accepted (conversion uploads and adjustments) |
failedCount | number | Rows Google rejected (conversion uploads and adjustments) |
errors | json | Row-level errors: index, type, code, message, field (conversion uploads) |
jobId | string | Upload job ID for the offline diagnostics report (conversion uploads) |
validateOnly | boolean | Whether the upload was only validated (conversion uploads and ingests) |
requestId | string | Data Manager request ID to pass to Get Ingest Status (ingests, ingest status) |
eventCount | number | Conversion events sent (ingests) |
destinationCount | number | Conversion actions the events were sent to (ingests) |
warnings | json | Field warnings on accepted events: index, field, reason, description (ingests) |
requestStatus | string | PROCESSING, SUCCESS, PARTIAL_SUCCESS, FAILED, or REQUEST_STATUS_UNKNOWN (get_ingest_status) |
destinations | json | Per conversion action: status, event count, and error and warning counts by reason (get_ingest_status) |
campaigns | json | Campaign data (list_campaigns, campaign_performance) |
adGroups | json | Ad group data (list_ad_groups) |
ads | json | Ad performance data (ad_performance) |
totalCount | number | Total number of results |
totalResultsCount | number | Total results count (search) |
nextPageToken | string | Token for next page of results |
Check how Google processed a Data Manager conversion request: success, partial success, failure, or still processing, with error and warning counts per reason. Statuses appear about 30 minutes after ingesting and can take up to 24 hours.
| Parameter | Type | Required | Description |
|---|
requestId | string | Yes | Request ID returned by an ingest operation |
| Parameter | Type | Description |
|---|
requestId | string | Request ID that was checked |
requestStatus | string | Overall status: PROCESSING, SUCCESS, PARTIAL_SUCCESS, FAILED, or REQUEST_STATUS_UNKNOWN |
destinations | array | Status per conversion action, in the order of the original request |
Import offline click conversions (for example qualified or won leads) to Google Ads by gclid, gbraid, or wbraid, so bidding learns which clicks turn into business. Needs a Google Cloud project that Google allowlisted for offline conversion import; use Ingest Offline Conversions otherwise.
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID (numeric, no dashes) |
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
managerCustomerId | string | No | Manager account customer ID (if accessing via manager account) |
conversionAction | string | Yes | Conversion action resource name (customers/{customerId}/conversionActions/{id}) or numeric ID. Must be an enabled UPLOAD_CLICKS action. A row can override it. |
gclid | string | No | Google click ID captured from the landing page URL (single-row upload) |
gbraid | string | No | gbraid URL parameter for clicks that led to an iOS app (single-row upload) |
wbraid | string | No | wbraid URL parameter for iOS app clicks that led to the web (single-row upload) |
conversionDateTime | string | No | When the conversion happened, after the click, with a timezone: "2026-06-01 14:30:00-04:00" or ISO 8601 (single-row upload) |
conversionValue | number | No | Conversion value (single-row upload) |
currencyCode | string | No | ISO 4217 currency code for the value, e.g. USD (single-row upload) |
orderId | string | No | Unique order or lead ID; prevents duplicate imports and is needed to retract or restate later (single-row upload) |
adUserDataConsent | string | No | Consent for ad user data: GRANTED or DENIED |
validateOnly | boolean | No | Validate the rows without importing them |
conversions | json | No | Up to 2,000 rows to upload at once, replacing the single-row fields. Each row: { gclid | gbraid | wbraid, conversionDateTime, conversionValue?, currencyCode?, orderId?, conversionAction?, adUserDataConsent? } |
| Parameter | Type | Description |
|---|
results | array | Rows Google accepted |
↳ index | number | Zero-based row index in the request |
↳ conversionAction | string | Conversion action resource name |
↳ conversionDateTime | string | Conversion date time |
↳ gclid | string | Google click ID |
↳ gbraid | string | gbraid URL parameter |
↳ wbraid | string | wbraid URL parameter |
Import offline lead conversions matched by the lead's email or phone. Agent Serve normalizes and SHA-256 hashes them before sending, so raw contact data never leaves Agent Serve. Needs a Google Cloud project that Google allowlisted for offline conversion import; use Ingest Enhanced Conversions for Leads otherwise.
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID (numeric, no dashes) |
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
managerCustomerId | string | No | Manager account customer ID (if accessing via manager account) |
conversionAction | string | Yes | Conversion action resource name (customers/{customerId}/conversionActions/{id}) or numeric ID. Must be an enabled UPLOAD_CLICKS action. A row can override it. |
gclid | string | No | Google click ID captured from the landing page URL (single-row upload) |
gbraid | string | No | gbraid URL parameter for clicks that led to an iOS app (single-row upload) |
wbraid | string | No | wbraid URL parameter for iOS app clicks that led to the web (single-row upload) |
conversionDateTime | string | No | When the conversion happened, after the click, with a timezone: "2026-06-01 14:30:00-04:00" or ISO 8601 (single-row upload) |
conversionValue | number | No | Conversion value (single-row upload) |
currencyCode | string | No | ISO 4217 currency code for the value, e.g. USD (single-row upload) |
orderId | string | No | Unique order or lead ID; prevents duplicate imports and is needed to retract or restate later (single-row upload) |
adUserDataConsent | string | No | Consent for ad user data: GRANTED or DENIED |
validateOnly | boolean | No | Validate the rows without importing them |
email | string | No | Lead's email address, hashed with SHA-256 before upload (single-row upload; email or phone required) |
phoneNumber | string | No | Lead's phone number with country code, e.g. +14155550123; hashed with SHA-256 before upload (single-row upload) |
conversions | json | No | Up to 2,000 rows to upload at once, replacing the single-row fields. Each row: { email?, phoneNumber?, gclid?, conversionDateTime, conversionValue?, currencyCode?, orderId?, conversionAction?, adUserDataConsent? } with an email or phone |
| Parameter | Type | Description |
|---|
results | array | Rows Google accepted |
↳ index | number | Zero-based row index in the request |
↳ conversionAction | string | Conversion action resource name |
↳ conversionDateTime | string | Conversion date time |
↳ gclid | string | Google click ID, when supplied |
↳ gbraid | string | gbraid URL parameter, when supplied |
↳ wbraid | string | wbraid URL parameter, when supplied |
Retract an uploaded conversion (for example a lead that turned out to be junk) or restate its value (for example the final deal size)
| Parameter | Type | Required | Description |
|---|
customerId | string | Yes | Google Ads customer ID (numeric, no dashes) |
developerToken | string | No | Google Ads API developer token (optional: Google sunset developer tokens on September 9, 2026 and ignores them) |
managerCustomerId | string | No | Manager account customer ID (if accessing via manager account) |
conversionAction | string | Yes | Conversion action resource name or numeric ID of the original conversion. A row can override it. |
adjustmentType | string | No | RETRACTION zeroes the conversion; RESTATEMENT changes its value (single-row adjustment) |
orderId | string | No | Order ID the conversion was uploaded with; required if it had one (single-row adjustment) |
gclid | string | No | Google click ID of a conversion uploaded without an order ID (single-row adjustment) |
conversionDateTime | string | No | Original conversion date time, required with gclid: "2026-06-01 14:30:00-04:00" or ISO 8601 |
adjustmentDateTime | string | No | When the adjustment happened, after the conversion, with a timezone (single-row adjustment) |
adjustedValue | number | No | New conversion value; required for a restatement, not allowed for a retraction |
currencyCode | string | No | ISO 4217 currency code of the restated value, e.g. USD |
adjustments | json | No | Up to 2,000 rows to adjust at once, replacing the single-row fields. Each row: { adjustmentType, orderId | (gclid + conversionDateTime), adjustmentDateTime, adjustedValue?, currencyCode?, conversionAction? } |
validateOnly | boolean | No | Validate the rows without applying them |
| Parameter | Type | Description |
|---|
results | array | Adjustments Google accepted |
↳ index | number | Zero-based row index in the request |
↳ adjustmentType | string | RETRACTION or RESTATEMENT |
↳ conversionAction | string | Conversion action resource name |
↳ adjustmentDateTime | string | Adjustment date time |
↳ orderId | string | Order ID of the adjusted conversion |
↳ gclid | string | Google click ID of the adjusted conversion |
↳ conversionDateTime | string | Date time of the adjusted conversion |
A Trigger is a block that starts a workflow when an event happens in this service.
Trigger workflow when someone submits a Google Ads lead form, with their answers keyed by column ID
| Parameter | Type | Required | Description |
|---|
googleKey | string | Yes | The same key you enter in the lead form’s webhook settings in Google Ads. Deliveries with a different key are rejected. |
| Parameter | Type | Description |
|---|
leadId | string | Unique lead ID; use it to deduplicate |
fields | json | Submitted answers keyed by column ID, e.g. { "FULL_NAME": "Jane Doe", "EMAIL": "jane@example.com", "PHONE_NUMBER": "+14155550123" } |
columns | json | Submitted answers in form order, each { columnId, columnName, value }; columnName is the question text when Google sends it |
fullName | string | FULL_NAME, or FIRST_NAME and LAST_NAME joined, when the form asked for them |
email | string | EMAIL, or WORK_EMAIL when only that was asked |
phoneNumber | string | PHONE_NUMBER, or WORK_PHONE when only that was asked |
isTest | boolean | True for test leads sent from the Google Ads UI |
gclid | string | Google click ID of the lead; pass it to conversion uploads |
formId | string | Lead form ID |
campaignId | string | Campaign ID |
adGroupId | string | Ad group ID (video and discovery ads only) |
creativeId | string | Creative ID (video and discovery ads only) |
assetGroupId | string | Asset group ID (Performance Max campaigns only) |
leadSubmitTime | string | When the lead was submitted, ISO 8601 (e.g. 2024-09-26T12:30:00Z) |
leadStage | string | Lead stage at the time of delivery |
leadSource | string | Where the lead came from: LEAD_FORM or CONVERSATIONAL_AGENT |
apiVersion | string | Webhook payload version |
payload | json | Full lead payload as Google sent it, without the google_key |