DocsIntegrationsHubSpot Integration

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.

Last updated:

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_date` for legal verticals).

Step 1 — Create the HubSpot Workflow

  • In HubSpot, go to Automation → Workflows → Create workflow.
  • Choose Start from scratchContact-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 `email` so existing contacts are updated instead of duplicated.
  • Map incoming webhook fields to HubSpot Contact properties:
Lead Distro AI fieldHubSpot propertyRequired?
`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 propertyPer 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](/docs/integrations) for transform basics.

Frequently Asked Questions

Does Lead Distro AI's HubSpot integration require Marketing Hub Professional?
Yes — Workflows are a Professional-tier feature in both Marketing Hub and Sales Hub. The webhook-trigger Workflow is the supported integration path. If you're on the Starter tier without Workflows, fall back to routing through Zapier or Make to HubSpot's Contact API — slower (3-5s latency vs <1s) and adds a third-party dependency, but works on lower HubSpot tiers.
Can I push leads as HubSpot Deals instead of Contacts?
Yes — chain a Create deal action after the Create or update contact action in the same Workflow. The Deal is automatically associated with the Contact, and both are created from a single webhook event. Map `lead.revenue` to the Deal amount field for per-lead revenue tracking in HubSpot reports.
How do I prevent duplicate contacts in HubSpot?
Use email as the lookup property in the Create or update contact action. HubSpot will update an existing Contact if the email matches an existing record, otherwise create a new one. Combine with Lead Distro AI's per-buyer suppression lists (hashed phone/email) so the same lead doesn't fire two webhook events to the same buyer.
What HubSpot property names should I use for custom fields?
HubSpot custom property internal names use snake_case (e.g., `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?
Yes. Create one HubSpot Workflow per buyer, each with its own webhook URL — point each Lead Distro AI buyer at its dedicated Workflow URL. This lets you route leads from different campaigns into different HubSpot pipelines, lifecycle stages, or even different teams via different Workflow actions.
What happens if HubSpot is temporarily down?
Lead Distro AI retries the webhook 3 times with exponential backoff over ~15 minutes. If all retries fail, the lead is marked `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?
Yes. Lead Distro AI signs every outbound webhook with HMAC-SHA256 over the JSON body, included as `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?
Yes — map `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.

If you have any questions, send us an email at support@leaddistro.ai