Skip to content New SourceLoop MCP: chat with your attribution data in Claude, ChatGPT & Cursor
SourceLoop

How to Track Intercom Chats as Meta Ads Conversions

Send Intercom chat leads to Meta through the Conversions API, then add qualified-lead events from your CRM, so Facebook and Instagram ads chase buyers, not browsers.

Intercom chats sent to Meta Ads through SourceLoop
Table of contents
  1. What you'll need
  2. Step 1: Put the SourceLoop script on your site
  3. Step 2: Connect Intercom to SourceLoop
  4. Step 3: Get your Pixel ID and an access token
  5. Step 4: Send every chat lead to Meta
  6. Step 5: Check the match quality
  7. Step 6: Add a qualified-lead event
  8. See which ads start conversations
  9. Don't send the same chat twice
  10. Further reading

Someone sees your Instagram ad, taps through, reads two pages and opens the Intercom Messenger. They ask about pricing and leave their work email.

That's a great lead. Meta's pixel never sees it.

The chat happens inside Intercom's widget, and nothing tells Meta it happened. So Meta optimizes for whatever it can see, usually page views or the odd form fill, and your chat-driven campaigns look weaker than they are.

Here's how to send Intercom chats to Meta as real conversions, then take it a step further with qualified-lead events.

What you'll need

  • Intercom with the Messenger installed on your website, on any plan
  • Admin rights in Intercom and in your Meta Business account
  • A Meta pixel (dataset) linked to the ad account you advertise from
  • A SourceLoop workspace. A free trial is enough to follow along.

Step 1: Put the SourceLoop script on your site

Copy the snippet from Setup, then Tracking code, and add it to the <head> of every page.

Make sure it runs wherever the Messenger runs. If the Messenger loads on your blog, docs or pricing page, the script should be there too. Otherwise a chat started on those pages can't be tied to the ad that brought the visitor in.

Step 2: Connect Intercom to SourceLoop

Open Setup, then Chat, and click Connect on the Intercom card. Approve the access request in Intercom, and the card turns Connected.

SourceLoop chat integrations page with Intercom and HubSpot connect cards and the automated chat tools below them
Setup > Chat. One click for Intercom, no code in the Messenger.

From now on, here's how chats are counted:

  • A chat becomes a lead when the visitor shares an email or phone number.
  • Each person counts once, however many conversations they start.
  • Chats that begin outside your website, such as replies to an Intercom email, still arrive. They're marked Direct because no website visit led to them.

Open any chat lead under Contacts to see the ad, campaign and pages behind it.

SourceLoop contact profile with last-touch and first-touch attribution and a visit timeline leading to the conversion
A chat lead's profile. The first touch shows the ad that started the journey.

Step 3: Get your Pixel ID and an access token

The Conversions API needs two things from Meta.

Pixel ID: in Events Manager, select your pixel and copy the ID from its settings.

Access token: in Business Settings, go to System Users. Create one (or reuse one), assign it your pixel with at least Standard access, then click Generate new token. Copy it right away, because Meta won't show it again.

Also connect your ad account in SourceLoop under Setup, then Ad Platforms. That brings in your Meta spend and campaign names.

Step 4: Send every chat lead to Meta

Go to Activation, then Conversion sync, and click New sync.

SourceLoop Conversion sync page with ad platform cards for Google Ads, Meta Ads and ChatGPT Ads, plus sync templates
Activation > Conversion sync. Each sync sends one moment to one ad account.

Work through the builder:

  1. Send to: your Meta ad account. Paste the Pixel ID and access token here the first time.
  2. When: Every conversion.
  3. Only if: set conversion type to Chat, so forms and bookings stay out of this event.
  4. Send as: choose the standard Contact event. Meta defines it as someone reaching out to your business, which is exactly what a chat is. Lead works too, if that's what your campaigns already optimize for.
  5. Value: leave it empty for now, or set a fixed amount per chat.

Under Who counts, keep People Meta brought. Turn on Send past conversions to include chats from the last 7 days, then click Start syncing.

Test first if you like. Add a test event code from Events Manager in the Send to step. Your chats will appear under Test events without affecting your ads. Remove the code once you've seen them arrive.

Step 5: Check the match quality

Open the sync and look at Recent sends. For each chat lead, SourceLoop shows what Meta could match on:

  • The ad click ID (fbclid), when the visitor came from a Meta ad on that device
  • Email, hashed with SHA-256 before it leaves SourceLoop
  • Phone, hashed the same way, when the chat captured one

Chat leads usually match well, because most people share an email to get a reply. That gives Meta a strong match even when the click ID was lost to an ad blocker or a browser privacy setting.

Step 6: Add a qualified-lead event

Here's where chat tracking gets really useful.

Plenty of chats are tire-kickers, students or people looking for support. If Meta only sees "someone chatted", it will happily find more people who chat. What you want is more people who buy.

If you use HubSpot, Salesforce or Pipedrive, connect it under Setup, then CRM. Then create a second sync:

  1. When: Reaches a stage, and tick SQL (or whatever stage means "sales wants this one").
  2. Send as: a custom event name, such as QualifiedChat.
  3. Who counts: People Meta brought.

When a chat lead reaches SQL in your CRM, Meta gets a QualifiedChat event for that person, even if that happens weeks after the chat. In Events Manager, build a custom conversion on it. Once it has steady volume, optimize your campaigns for that instead of Contact.

No CRM? Use Setup, then Lead quality to mark chats Good by rule, such as business email domains. Then send the Good lead moment instead.

See which ads start conversations

Meta's Ads Manager tells you what Meta claims. SourceLoop's Creatives report puts that next to what your leads say.

SourceLoop Creatives report showing spend by creative format, credited ROAS next to platform ROAS, and ad cards with spend, CTR and ROAS
Reports > Creatives. Credited results next to what the platform reports, ad by ad.

Each ad shows its spend and click-through rate, plus its results under your attribution model and as Meta reports them. If a video ad brings in chats but few form fills, this is where you'll see it.

Don't send the same chat twice

If you've ever set up a pixel event that fires when the Messenger opens, turn it off or rename it. Otherwise Meta receives a browser event and a server event for the same person. It counts both, because they don't share an event ID.

A Messenger-open event is a weak signal anyway. Most people who open the chat never share an email.

Further reading

Frequently asked questions

  1. Which Meta event should I use for Intercom chats?

    Use Contact if you want a separate event for conversations, or Lead if your campaigns already optimize for leads. For qualified chats, use a custom event such as QualifiedChat and build a custom conversion on it.

  2. Does Intercom need any code changes?

    No. You connect Intercom to SourceLoop with OAuth from Setup, then Chat. The only code on your site is the SourceLoop tracking script.

  3. Is every Intercom conversation sent to Meta?

    No. Only chats where the visitor shares an email or phone become leads, and each person counts once. With People Meta brought selected, only leads whose journey includes a Meta ad are sent.

  4. How does Meta match a chat lead without a click ID?

    By the email and phone the visitor shared, hashed with SHA-256. Meta matches them to Facebook and Instagram accounts, so chat leads often match even when the click ID is missing.

  5. Can I send a chat to Meta when it later becomes a qualified lead?

    Yes. Connect your CRM and create a sync on Reaches a stage, such as SQL. Meta receives the event when the stage changes, even weeks after the chat.

  6. How far back can I send chat conversions to Meta?

    Up to 7 days, using Send past conversions when you create the sync. Meta doesn't use older events for ad delivery.

  7. Do chats from Intercom emails or shared links count?

    They reach SourceLoop as leads, but they're marked Direct because no website visit came before them. They aren't sent to Meta, because no Meta ad led to them.

Share this post

Post on X Share on LinkedIn

Keep reading

All posts

Track every conversion to its true source

Capture and send full attribution data from every signup, lead, booking, and sale to your CRM and ad platforms, so you know exactly what's driving revenue.

Without SourceLoop

Untagged

Kayden Floyd

kayden@abc.com

  • SourceUnknown
  • MediumUnknown
  • CampaignUnknown
  • Landing pageUnknown
Journey
No touchpoints captured

With SourceLoop

Auto-tagged

Kayden Floyd

kayden@abc.com · Acme Co.

  • Channel Paid Social
  • CampaignFree_demo
  • Landing page/pricing
Journey
Synced to HubSpot Google Ads Meta