Escalate tagged Intercom bugs into Linear without duplicates

By General Input

When support tags a conversation as a bug, an AI agent files it in Linear, checks it is not a duplicate first, and tells engineering.

Integrations

  • Intercom
  • Linear
  • Slack Bot

Type

Agentic Task

Categories

  • Customer Support
  • Engineering

I want an agent that escalates tagged Intercom conversations into Linear bugs, without filing a duplicate every time a second customer reports the same thing.

Trigger this on a webhook from Intercom when a tag is applied to a conversation (the conversation_part.tag.created topic). Make the tag name a configurable input that defaults to "bug", so a team can point it at "escalate", "needs-eng", or whatever they already use. If the tag that fired does not match the configured name, stop immediately and do nothing.

When a matching tag fires, use the Intercom operation Retrieve a Conversation to pull the entire thread, including all of its conversation parts. Read the whole exchange and work out: the reproduction steps, what the customer expected versus what actually happened, any error messages, IDs, or URLs they mentioned, which customer and company reported it, and whether they are fully blocked or have a workaround. Support threads are messy and out of order, so reconstruct the actual sequence of events rather than quoting the customer verbatim.

Before creating anything, use the Linear operation Search Issues to look for an existing open issue describing the same symptoms. Search on the distinctive technical terms from the report rather than the customer's exact phrasing, and try a second and third wording if the first search comes back empty. Only treat a result as a match if it genuinely describes the same underlying bug, not merely the same feature area. Ignore issues that are already closed, archived, or shipped.

If you find a confident match, use the Linear operation Add Comment to Issue to append this report to the existing issue instead of filing a duplicate. The comment should name the customer and company, note whether they are blocked and since when, add anything new this thread reveals that the issue does not already capture, and link back to the Intercom conversation. Do not restate what is already in the issue.

If nothing matches, use the Linear operation Create Issue to file a new one on the right team. Write a title that describes the symptom concisely, and a description containing the reproduction steps, expected versus actual behaviour, the affected customer and company, and a link to the Intercom conversation. Set the priority yourself based on how many customers are affected and how badly they are blocked: urgent when a customer is fully blocked with no workaround or several customers have already hit it, high when it blocks a core task but a workaround exists, normal for everything else. State in the description why you chose that priority so an engineer can overrule you.

Either way, post to the engineering channel using the Slack Bot operation Send a Message. Say clearly whether this was a newly filed issue or another report on an existing one, and include the Linear link, the customer name, the priority, and a one or two sentence summary of the bug. Make the channel a configurable input.

Finally, write the Linear URL back onto the Intercom thread using the Intercom operation Reply to a Conversation, as an admin note rather than a customer-visible reply, so the support rep who applied the tag can follow the issue without leaving the inbox. Note whether it was newly filed or added to an existing issue.

One guard: if the conversation has already been escalated, meaning the thread already contains an admin note with a Linear link, do not file or comment again. Post a short note to Slack saying it was already escalated and stop there.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them