Skip to main content

How Contacts Work in Intercom

Octopods matches every inbound channel message to a contact in your Intercom workspace, so your team replies from one inbox.

Written by Tarek Khalil

Users and Leads

Intercom stores two kinds of contacts:

  • User — a contact you have explicitly identified, usually because they signed in or were synced from your own system. Users typically carry full profile data.

  • Lead — an unidentified or anonymous visitor. Leads can be promoted to Users later, usually through a merge.

Whenever Octopods creates a brand-new contact for an incoming message, it is created as a Lead. You or your team can later merge that Lead into an existing User when you recognise the person. See Merging Contacts in Intercom for how that works.

How Octopods finds the right contact

When a customer messages one of your connected channels, Octopods follows a two-step lookup:

  1. Channel identifier lookup. If Octopods has already seen this customer on this channel before, it jumps straight to the Intercom contact that message was linked to last time. No further searching happens.

  2. Phone number or handle lookup. If this is a first-time message from this customer on this channel, Octopods searches your Intercom workspace for a contact that matches the sender’s identifier (phone number for phone-based channels, or a channel-specific user ID for social channels).

If neither step finds a match, Octopods creates a new Lead in Intercom using the information the channel provided — typically the customer’s name and phone number or handle — and links the incoming message to that Lead.

Channels that match by Custom Data Attribute (CDA)

For social and chat-app channels, the customer’s phone number is not available on their first message. Instead, Octopods stores a Custom Data Attribute (CDA) on the Intercom contact that records the channel and the customer’s ID on that channel. On the next message from the same person, Octopods finds them by that CDA.

The channels that use CDA matching are:

  • Telegram

  • Instagram

  • Facebook Messenger

  • LINE

  • Viber

  • WeChat

When a customer sends their first message on any of these channels, Octopods either finds an existing contact that already has the matching CDA stored or creates a new Lead and writes the CDA on it.

Channels that match by phone number

Phone-based channels use the customer’s phone number to find or create the Intercom contact. WhatsApp Cloud API, SMS, and other phone-based channels fall into this group. In particular, WhatsApp Cloud API does not use CDA matching — it always matches by phone number.

Octopods normalises phone numbers to international (E.164) format before searching, so a contact saved as +14155550100, 14155550100, or (415) 555-0100 can all be matched to the same Intercom record. The search looks across Intercom’s standard phone field.

If more than one Intercom contact shares the same phone number, Octopods uses your contact prioritization setting to pick one. See Contact Prioritization Settings for how to configure that.

Keeping contact data in sync

Octopods updates the CDA fields whenever it creates or finds a contact, so the mapping stays accurate even if the same customer reaches out on multiple channels. If an Intercom admin merges two contacts directly inside Intercom, Octopods receives the merge event and points future messages at the surviving contact automatically.


What’s next

Did this answer your question?