Each webhook carries contact details, product URL, offer intent, attribution, lead score, priority, next action, and qualification reasons.
Move every pilot lead into the system that will actually follow up.
GrowthPilot AI can keep a local JSONL record for MVP operations, but serious traffic needs a CRM, sheet, automation tool, or database as the operating source of truth. This page defines the webhook payload, field mapping, retry behavior, and safe rollout path.
If the CRM endpoint times out or returns a non-2xx response, GrowthPilot AI stores the attempt in the webhook retry queue for operator recovery.
Teams can begin with a sheet or Airtable base, then move the same payload to HubSpot, Salesforce, Notion, or a warehouse later.
Payload fields
The live webhook sends an envelope: `source` plus the `lead` object that powers `/api/leads`, `/api/leads.csv`, and the ops dashboard. Downstream tools should map `lead.id`, `lead.createdAt`, `lead.contact`, `lead.productUrl`, `lead.leadScore`, `lead.leadPriority`, and `lead.nextAction` as the minimum routing fields.
Use `lead.qualificationReasons` as CRM notes so sales or founder-led follow-up knows why the lead was prioritized.
{
"source": "growthpilot-ai",
"lead": {
"id": "lead_2026_06_04_001",
"createdAt": "2026-06-04T17:30:00.000Z",
"businessName": "Example Brand",
"contact": "founder@example.com",
"productUrl": "https://example.com/product",
"plan": "Free AI SEO and Ad Growth Mini Audit",
"utmSource": "producthunt",
"utmCampaign": "first_exposure",
"landingPage": "/offers/free-ai-growth-audit.html",
"leadScore": 91,
"leadPriority": "high",
"nextAction": "Reply within 2 hours with a focused mini-audit path.",
"qualificationReasons": "auditable URL provided; high-ticket plan intent; detailed pain notes"
}
}
Rollout path
This keeps the launch honest: no fake CRM writes, no fake outreach, and no paid automation until the account owner connects the destination.
Airtable or Google Sheets is enough for early launch traffic. HubSpot or Salesforce is better once there is a real sales motion.
Configure `LEAD_WEBHOOK_URL`, optional `LEAD_WEBHOOK_TOKEN`, `LEAD_WEBHOOK_TIMEOUT_MS`, and `LEAD_WEBHOOK_RETRY_DELAY_MS` on the production host.
Confirm the CRM receives nested `lead.leadScore`, `lead.leadPriority`, `lead.nextAction`, and `lead.qualificationReasons`, not just contact and URL fields.
Temporarily return a non-2xx response, then confirm `/api/webhook-retry` and `ops.html?token=<OPS_TOKEN>` surface the failed sync.
Production boundary
GrowthPilot AI provides the webhook payload, retry queue, CSV export, and operator handoff. It does not write to a third-party CRM until an authorized account owner provides the destination URL or automation credentials. CRM sync, real outreach, social posting, paid directories, and ad spend require account authorization and budget approval.