HubSpot Integration
Send Lead Distro AI leads directly into HubSpot as Contacts or Deals using a HubSpot Workflow webhook. Step-by-step setup, field mapping, troubleshooting, and FAQs.
What This Integration Does
Sends every accepted Lead Distro AI lead into HubSpot as a Contact (and optionally as a Deal in the same workflow). The integration runs through HubSpot's incoming webhook + Workflow engine — no third-party automation platform needed. Latency is sub-second from lead acceptance to Contact creation in HubSpot.
Setup is one-time per buyer. Each Lead Distro AI buyer pointed at HubSpot gets its own webhook URL inside a dedicated HubSpot Workflow, so multiple buyers can route to different HubSpot instances or different intake pipelines within the same instance.
Prerequisites
- A HubSpot account with Marketing Hub Professional or Sales Hub Professional+ (Workflows require Professional tier).
- Permission to create Workflows in HubSpot (Admin or Workflows-Edit role).
- A Lead Distro AI campaign with at least one buyer configured for Webhook delivery.
- The set of HubSpot Contact properties you want populated — including any custom properties (e.g.,
case_type,incident_datefor legal verticals).
Step 1 — Create the HubSpot Workflow
- In HubSpot, go to Automation → Workflows → Create workflow.
- Choose Start from scratch → Contact-based.
- Set the enrollment trigger to Webhook.
- HubSpot displays a unique webhook URL — copy it. (Looks like
https://api.hubapi.com/automation/v3/triggers/webhook/....)
Step 2 — Add the Create Contact Action
- Add action: Create or update contact.
- Set the lookup property to
emailso existing contacts are updated instead of duplicated. - Map incoming webhook fields to HubSpot Contact properties:
| Lead Distro AI field | HubSpot property | Required? |
|---|---|---|
email | email (lookup) | Yes |
first_name | firstname | Yes |
last_name | lastname | Yes |
phone | phone | Recommended |
state | state or custom lead_state | Optional |
zip_code | zip | Optional |
custom. | Matching custom property | Per vertical |
lead_id | Custom property leaddistro_lead_id | Recommended for tracing |
Step 3 — (Optional) Add a Create Deal Action
Chain a Create deal action after the Contact step if you want each lead to land as a Deal in your sales pipeline (not just a Contact). Map the Lead Distro AI lead_id to a custom Deal property so you can trace each Deal back to the originating lead.
- Add action: Create deal.
- Set Pipeline and Deal stage to your intake stage (often called 'New Lead' or 'Intake').
- Set Deal amount to
lead.revenue(the buyer price you charge) if you want to track per-lead revenue in HubSpot deal reports. - Associate the Deal with the Contact created in Step 2.
Step 4 — Wire the Webhook in Lead Distro AI
- In Lead Distro AI, edit the buyer that should send leads to HubSpot.
- Set Delivery Method to Webhook.
- Paste the HubSpot webhook URL from Step 1.
- Set Content-Type to
application/json(default). - Save.
Step 5 — Test Send
Use the buyer's Test Send tool inside Lead Distro AI to fire a sample lead through the integration. Within ~2 seconds the Contact (and Deal, if configured) should appear in HubSpot. If it doesn't:
- Check the HubSpot Workflow's enrollment history — the webhook should show one inbound event for your test.
- If no enrollment: the webhook URL is wrong or HubSpot's Workflow is paused. Verify both.
- If enrollment but no Contact: a required field is missing. HubSpot logs the error in the workflow run detail — check there.
If HubSpot rejects fields with leading/trailing spaces or non-standard phone formats, attach Lead Distro AI's Phone Formatter transform to the phone field (output: E.164) and the Trim Whitespace transform to text fields. See Integration Patterns for transform basics.
Frequently Asked Questions
Does Lead Distro AI's HubSpot integration require Marketing Hub Professional?
Can I push leads as HubSpot Deals instead of Contacts?
lead.revenue to the Deal amount field for per-lead revenue tracking in HubSpot reports.How do I prevent duplicate contacts in HubSpot?
What HubSpot property names should I use for custom fields?
case_type not Case Type). Create custom properties in Settings → Properties → Contact properties before mapping. Use a consistent naming convention like leaddistro_ so you can find them later — e.g., leaddistro_case_type, leaddistro_incident_date, leaddistro_lead_id.Can a single HubSpot account receive leads from multiple Lead Distro AI buyers?
What happens if HubSpot is temporarily down?
delivery_failed in the buyer's dashboard. You can manually retry from the lead detail page. HubSpot's webhook trigger has its own 24-hour queue for inbound events, so most transient outages are absorbed without manual intervention.Does the HubSpot integration support signed webhooks?
X-LeadDistro-Signature. HubSpot doesn't natively verify the signature inside Workflows, but you can verify it in a custom code action (Operations Hub Professional+) if your compliance program requires it. For TCPA-sensitive verticals (legal lead distribution), signature verification is recommended.Can I send Lead Distro AI cost data to HubSpot for ROI reporting?
lead.cost (or the synced Meta ad spend value) to a custom Deal property like acquisition_cost. Combined with lead.revenue on the Deal amount, HubSpot's pipeline reports can show profit per Deal natively. For agency-side P&L though, the dashboard inside Lead Distro AI is canonical — HubSpot is for sales-side reporting.Related Articles
If you have any questions, send us an email at support@leaddistro.ai