Platforms

HubSpot Facebook Conversion API

A practical guide to sending server-side events from HubSpot forms, deals, and lifecycle stages to Meta for accurate lead and revenue tracking.

Why HubSpot Users Need CAPI

HubSpot is the source of truth for leads, deals, and customer lifecycle in most B2B and service businesses. When paid Meta traffic drives those leads, browser-only pixel tracking loses a large share of form submits and downstream conversions because of iOS restrictions, cookie limits, and ad blockers. That gap hides real pipeline from Meta's algorithm.

The Facebook Conversion API fills it by sending server-side events directly from HubSpot to Meta. You can pass form submits as Lead events and, more importantly, send offline conversions like SQL, Opportunity, and Closed Won with real deal values. That's where B2B advertisers get the biggest lift.

30-50%

Lead events recovered vs pixel-only

13%

Average CPA reduction reported by Meta

8x

Higher signal quality with deal-stage events

Prerequisites

  • HubSpot Marketing Hub or Sales Hub with workflow access
  • Facebook Business Manager with a verified domain and Meta Pixel
  • Access to Meta Events Manager to generate an access token
  • HubSpot Ads add-on for the native Meta integration (optional)
  • Optional: GTM server container or middleware for full control

Integration Methods

Method 1: Native HubSpot Ads Meta integration

HubSpot's Ads tool can push contact and deal events back to Meta as offline conversions and CAPI events. Connect your Meta ad account in HubSpot under Marketing > Ads, then map lifecycle stages and deal stages to Meta events. Good starting point for teams already using HubSpot Ads reporting.

Method 2: HubSpot Workflows + webhook to a CAPI service

Trigger a workflow on form submit or lifecycle change, then use the webhook action to POST contact and deal data to a CAPI service or your own function. This gives you fine-grained control over which stages fire Lead, Purchase, or custom events.

Method 3: GTM Server-Side + HubSpot Forms

Route front-end HubSpot form submissions through a server GTM container that fires both Pixel and CAPI events with matching event_ids. Handles website leads cleanly, but backend deal-stage events still need a workflow or middleware.

Method 4: Custom middleware using HubSpot and Graph APIs

Build a small service that listens to HubSpot webhooks and calls Meta's Graph API directly with hashed identifiers, deal values, and event source URLs. Best fit for advanced RevOps setups with multi-touch attribution and custom event models.

Step-by-Step: HubSpot Workflow to Meta CAPI

This is the most flexible path for B2B teams because it sends deal-stage events with real revenue values, not just form fills.

  1. In Meta Events Manager, create your pixel and generate a CAPI access token.
  2. Deploy a small endpoint (Supabase Edge Function, Cloud Function, or serverless route) that accepts HubSpot webhook payloads and forwards them to Meta's Graph API.
  3. In HubSpot, create a contact-based workflow triggered by form submissions or lifecycle stage changes.
  4. Add a webhook action pointing to your endpoint, passing email, phone, IP, user agent, and deal amount.
  5. Hash email and phone with SHA-256 in your endpoint before sending to Meta.
  6. Include a unique event_id and set action_source to "website" or "system_generated" as appropriate.
  7. Verify events in Meta's Test Events tool and confirm Event Match Quality above 6.0.

If you prefer a tag-manager approach, our CAPI with Google Tag Manager guide covers the GTM Server-Side path in detail.

HubSpot Events Mapped to Meta CAPI

HubSpot TriggerMeta EventKey Parameters
Form submit (newsletter, gated content)Leadem, ph, fn, ln, fbp, fbc
Meeting booked (HubSpot Meetings)Scheduleem, ph, event_source_url
Lifecycle: MQLLead (custom event)em, ph, lead_type
Lifecycle: SQL / OpportunityQualified Leadem, ph, value
Deal stage: Closed WonPurchasevalue, currency, order_id, em, ph
Trial or subscription createdSubscribevalue, currency, predicted_ltv

Common HubSpot CAPI Mistakes

Sending every lifecycle change as a Purchase

Purchase should map to Closed Won or actual revenue events. MQL and SQL are better represented as Lead or a custom Qualified Lead event so bidding stays aligned with real business value.

Not deduplicating with the pixel

If your HubSpot form also has the pixel firing on submit, use the same event_id for browser and server events. Otherwise Meta counts the lead twice.

Missing user_data fields

HubSpot has email, phone, first name, last name, city, and zip on most contacts. Hash all of them and send them. Match quality directly affects attribution and CPA.

Ignoring offline conversion latency

Deals often close weeks after the click. Include the original event_time from when the lead was created so Meta attributes correctly.

HubSpot CAPI FAQs

Does HubSpot support Facebook Conversion API natively?

HubSpot's Ads add-on can push offline conversions to Meta and integrate with the pixel, but for full control over CAPI events, most teams use a workflow webhook that forwards data to a middleware or CAPI service.

Can I send deal values as Purchase events?

Yes. Trigger a workflow when a deal moves to Closed Won, then send the deal amount as value with the correct currency. This is the highest-signal event you can send Meta from HubSpot.

How do I match HubSpot leads to Meta ad clicks?

Capture fbp and fbc cookies on the landing page and store them as hidden fields on your HubSpot form. Pass them into the CAPI event alongside hashed email and phone.

Do I need HubSpot Enterprise?

No. Workflows with webhook actions are available on Professional tiers of Marketing Hub and Sales Hub. Free and Starter tiers do not support the webhook action.

How fast does Meta process CAPI events from HubSpot?

Test Events shows them within minutes. Aggregated reporting takes 24 to 48 hours, and campaign optimization impact usually shows within a week of consistent event flow.