How to track lead source in Intercom
Track lead source in Intercom with a one-click OAuth connection. Every chat that captures an email gets full marketing attribution, UTMs, and the visitor's pre-chat journey.
On this page
Intercom is one of the few chat tools where every meaningful conversation passes through the Inbox. The piece that’s usually missing is which marketing channel earned each conversation, the source data your reps need before they hit reply.
SourceLoop closes that gap with a one-click OAuth connection. Every chat that captures an email lands in the SourceLoop Contacts Hub with first-touch and last-touch source, UTMs, landing page, and the full pre-chat journey.
Two steps, about three minutes. Works on every Intercom plan.
What SourceLoop captures from Intercom
For every Intercom conversation that surfaces an email or phone number, SourceLoop attaches:
- First-touch source (e.g.,
google / cpc,linkedin / organic) - Last-touch source of the converting session
- UTM parameters from the landing URL (source, medium, campaign, content, term)
- First-touch landing page plus the referrer chain
- Pages browsed before the chat started
- Time on site and return-visit count
- Contact details from the Intercom contact record (email, name, phone)
- Device, country, browser of the converting session
Before you start
You’ll need:
- A SourceLoop workspace (free trial)
- A SourceLoop tracker installed on every page where the Intercom Messenger appears
- An Intercom workspace with the Messenger embedded on your site
- Admin access on the Intercom workspace (required to approve the OAuth consent screen)
- Admin or Owner role in SourceLoop
Step 1: Connect Intercom via OAuth
- Sign in to SourceLoop.
- Open Setup -> Chat in the left sidebar.
- Find the Intercom card under OAuth chat integrations and click Connect.
- You’ll be redirected to Intercom’s OAuth consent screen. Sign in with an admin user, pick the workspace, and click Authorize access.
- Intercom redirects you back to SourceLoop. The card flips to Connected with the workspace name displayed.
What SourceLoop does in the background, automatically:
- Stores the OAuth access token, encrypted at rest
- Creates a custom attribute on your Intercom contact model called sourceloop_id, marked as Messenger-writable so the tracker can populate it without code changes on your site
- Subscribes to the Intercom webhook topics that fire when a visitor identifies (adds email) or starts / replies to a conversation
No further configuration needed. The tracker on your site automatically pushes the visitor’s marketing attribution onto their Intercom contact every time the Messenger loads.
Step 2: Verify it’s working
Open your site in an incognito window, append ?utm_source=test&utm_medium=verify&utm_campaign=intercom-check to the URL, click the Intercom Messenger, and start a real conversation, sharing an email you can access.
Within seconds of the email landing, the lead appears at the top of the Contacts Hub in SourceLoop with the three test UTM values, the converting landing page, and the full pre-chat session timeline.
Where to see Intercom conversations in SourceLoop
Contacts Hub
Every Intercom conversation that captures an email or phone becomes a contact row at app.sourceloop.ai/contacts. Open a contact for the visitor’s complete pre-chat journey, every page they viewed, every ad they clicked, every session they had, useful context if you ever need to reopen the conversation.
Attribution dashboard
For the channel-level rollup, app.sourceloop.ai/dashboards/traffic groups Intercom conversations by source, medium, and campaign so you can compare which channels actually open meaningful dialogue.
Funnel reports
Build a funnel at app.sourceloop.ai/funnels ending in “Intercom conversation”. Slice by source, landing page, or device to find the highest-converting paths from first visit to chat opened.
For paid acquisition feeding the chat queue, forward Intercom conversations back to Google Ads, Meta, and LinkedIn as offline conversions so the bidding algorithms train on real qualified conversations rather than vanity clicks. Connect your Google Ads account covers the wiring.
Need to revoke access later? See How to disconnect Intercom from SourceLoop for the full flow, including what’s retained, what to clean up manually in Intercom, and how to request GDPR data removal.
Frequently asked questions
-
Do I need a paid Intercom plan?
No. The OAuth connection works on every Intercom plan, including Essential, Advanced, Expert, and the Starter tier. Nothing in the setup requires a paid feature.
-
What permissions does SourceLoop need on Intercom?
Read access to contacts and conversations so SourceLoop can pull the conversation thread and the contact's email when a chat fires its webhook, plus the one-time data-attribute write that creates the sourceloop_id field on your contact model. Intercom's OAuth screen shows the full list before you approve.
-
How does SourceLoop know which conversation belongs to which visitor?
When a visitor opens the Messenger on a SourceLoop-tracked page, the tracker pushes an attribute called sourceloop_id onto their Intercom contact record. When the visitor submits an email and Intercom sends the webhook, SourceLoop reads sourceloop_id off the contact and stitches the conversation to the visitor's full pre-chat journey. No code changes required on your site beyond installing the tracker.
-
Why does SourceLoop create a sourceloop_id custom attribute on my Intercom contact model?
Because Intercom drops attribute updates from the Messenger SDK unless the attribute is defined on the contact model first and marked as Messenger-writable. SourceLoop creates the attribute once during the OAuth connect step and flips the Messenger-writable flag on. No further setup needed; the field stays out of the way and your team doesn't need to touch it.
-
What about conversations started via a shared Intercom link, email reply, or off-site DM?
SourceLoop still captures them via the Intercom webhook, but without a pre-chat browsing journey they show up tagged as Direct since there's no UTM trail. The contact details (email, name) still land in the SourceLoop Contacts Hub.
-
How fresh is the data?
Conversations appear in SourceLoop within seconds of the visitor submitting an email. The OAuth webhook is processed live as Intercom delivers it, no batch jobs.
-
Will my existing Intercom workflows (Series, Custom Bots, Salesforce sync) still fire?
Yes. SourceLoop's OAuth app subscribes to its own webhook events and only reads contact and conversation data. Every other Intercom workflow you have configured continues to fire unchanged.
-
How do I disconnect Intercom?
Open Setup -> Chat in SourceLoop, click Disconnect on the Intercom card. The OAuth token is revoked immediately, no further webhooks are processed, and previously captured leads stay in your Contacts Hub. You can reconnect any time with the same OAuth click.