Intercom → Attio: support that feeds revenue

Support conversations are the single most honest signal your business generates. The problem is they live in Intercom, and your commercial team operates out of Attio. Without a bridge, your CSM finds out a customer is churning when the ticket finally gets escalated - not when the frustration first appeared. We link every Intercom conversation to the right Person and Company in Attio, carry across the tags and priority, and surface support health as a first-class attribute next to MRR and stage. Now your quarterly review shows you which accounts are trending quiet-angry before they churn.

Direction

Intercom → Attio (conversations, tickets, tags)

Stack

Intercom API, Attio API, n8n, Slack (routing)

The what

What this integration actually does

Every inbound Intercom conversation creates or updates a Ticket record in Attio, linked to the Person who wrote in and the Company they belong to. Tags, priority, assignee, and status stay in sync both ways. Reports you already run in Attio (like "top accounts this quarter") now include support volume and sentiment.

The how

How we build it

  1. 1

    Model a Tickets object in Attio with the fields that actually matter: priority, status, category, first-response time, resolution time, linked Person, linked Company.

  2. 2

    Register Intercom webhooks on conversation.created, conversation.updated, conversation.tag.added, conversation.closed.

  3. 3

    Run the payload through an n8n workflow that normalizes the data, resolves the Person by email, and upserts the Ticket.

  4. 4

    Add bidirectional tag sync for the tags you care about (e.g. "expansion opportunity" in Intercom → marks the Company as expansion-candidate in Attio).

  5. 5

    Build the reports: tickets by account, tickets per ARR dollar, time-to-first-response by tier - right inside Attio.

Under the hood

What lives inside the pipeline

  • Conversation body optionally mirrored into Attio as a note (most clients skip this for privacy).
  • Assignee mapping between Intercom teammates and Attio users.
  • Priority escalation rules - a P1 on a top-20 account Slacks the CSM, not just the support lead.
  • Tagging taxonomy defined once, enforced on both sides.
  • Weekly digest into Slack with accounts trending red.

Hard-earned lessons

What we learned the hard way

  • Intercom's webhook rate is generous but not unlimited - batch where possible.
  • Match Intercom contacts by email, not external_id. Teams consolidate identities over time and external_id becomes unreliable.
  • Don't try to mirror every conversation field - pick the ten that drive decisions and ignore the rest.
  • Closed conversations can still update (reopens, CSAT arrival). Don't treat conversation.closed as terminal.

Case study

MAAT - gym SaaS

Problem

CSMs didn't know which accounts were generating support load. Renewal conversations were happening without the support context that mattered.

Solution

Two workflows shipped in late March: tickets created in Attio from every Intercom conversation, plus a reporting layer on top. Ticketing reports now drive the QBR deck.

Outcome

Support volume is visible next to MRR. The team spotted two at-risk accounts in the first month that would have otherwise slipped.

FAQ

Questions we get

No - Intercom is still the system of record for support operations. We surface the business-facing signal in Attio so commercial decisions can factor it in.

Fully supported. Fin-handled tickets show up in Attio with a "resolved by AI" flag - useful for separating human-needed volume.

Yes. We namespace the Tickets object so workspace A and workspace B don't collide.

Want this running on your Attio?

Book a free 30-min call. We'll map your use case to what we've already shipped and tell you whether this fits - honestly.

Book a 30-min call