How to connect Zendesk tickets to Linear issues without losing customer context
Linear has a native Zendesk integration, and it does most of what you'd want. It links a ticket to an existing issue, links several tickets to the same issue, and, if you turn on the reopening automation in its settings, posts an internal note and reopens the ticket when the issue closes. Install it from the Zendesk Marketplace, turn it on in Linear's settings, and every agent on the team can attach a conversation to the issue that's tracking the fix.
What it doesn't do is give you a place to see, at a glance, which customers are attached to that issue. The link exists per ticket, not as a rolled-up list, so "who's waiting on this" is still a question you answer by opening each linked ticket one at a time. That gap, not the linking itself, is where most of the pain in this workflow actually lives.
What the native integration covers
Linear's own Zendesk integration docs describe a bidirectional link: "Linear issue information is shown inside Zendesk and a link to Zendesk is added to your Linear issue." Once it's connected, the pieces that matter for this question are:
- Many tickets, one issue. The docs say it plainly: "You can link as many Zendesk tickets to a Linear issue as you like." Three customers hitting the same bug can all attach to a single Linear issue instead of spawning three.
- Ticket content on the issue. Agents can pull the original Zendesk message into the Linear issue as attached context, so an engineer reading the issue sees the actual customer wording, not a paraphrase.
- Opt-in reopening. This one isn't on by default. Turn it on from the integration's settings page and, when the linked issue is marked Done, Canceled, or gets a comment, it posts an internal note and reopens the Zendesk conversation. Skip that setting and the ticket stays linked, but nothing tells the customer the fix shipped.
- Merge-safe. If two Linear issues get merged, their linked tickets move with them, so a late duplicate-catch doesn't strand a ticket on the issue that got closed out.
Two things are worth knowing before you rely on this. First, it's gated. Linear's pricing page lists Zendesk and Intercom integrations as a Business-plan feature, so a team on the Free or Basic tier doesn't have it at all. Second, every support agent who wants to link a ticket needs their own Linear account, which is a real cost on teams where support and engineering are sized very differently.
Setting it up
The install is short, and it's worth doing exactly in this order:
- Install Linear from the Zendesk Marketplace. This adds the Linear widget to the Zendesk ticket sidebar.
- In Linear, go to Settings, then the Zendesk integration, and connect the same Zendesk domain.
- On that same settings page, turn on Zendesk automation if you want linked tickets to reopen and get an internal note when the issue is completed, canceled, or commented on. This step needs Zendesk admin access. Skip it and the ticket links still work, but nothing posts back to the customer automatically.
- Confirm agent accounts. Anyone who'll link tickets from Zendesk needs a Linear login, not just view access.
- From an open ticket in Zendesk, use the Linear panel to search for an existing issue or create one, and link it.
If your Zendesk domain URL ever changes, take note. The docs warn that "the linked tickets will not show up in the Linear app in Zendesk" after a domain change, and only say some of the internal-note automations may still work. Linear's advice for that state is to contact support, not to expect a clean reconnect.
What this looks like inside Ridgeway Labs
A scheduled-export bug at Ridgeway Labs generates four separate Zendesk tickets over eleven days in March, each filed by a different customer who has no way of knowing the others exist. Support runs through Zendesk there, engineering through Linear, connected with the native integration described above, and the team has already turned on the reopening automation in Linear's Zendesk settings.
Iris Tanaka, Cobalt Freight (Zendesk #4021): "Our scheduled report exports are coming back empty for the last week. We use these for a Monday ops meeting, so this is urgent on our end."
Sana Okonkwo, Marlow Health (Zendesk #4058): "Export jobs for our usage dashboard have been silently failing since around the 10th. No error, just an empty file."
Derek Voss, Tellwater Logistics (Zendesk #4079): "Same export issue as last time we filed a ticket, it seems. Files come back at 0 bytes."
Mara Lindqvist, Horizon Metrics (Zendesk #4102): "Just flagging that our nightly export has been failing for close to two weeks. Is this a known issue?"
Ines Duarte, the support lead, links the first ticket to a new Linear issue, ENG-891: Scheduled export jobs returning empty files. Over the next week and a half she recognizes each new ticket as the same bug from the symptom, and links it to the same issue instead of filing a new one. Per Linear's docs, that's exactly what the many-to-one linking is for.
The engineer who picks up ENG-891 sees all four ticket attachments in the issue and has the actual wording from every customer, which is more than a bug report usually carries. What the issue does not show, anywhere in the Linear UI, is a summary line like "4 customers waiting: Cobalt Freight, Marlow Health, Tellwater Logistics, Horizon Metrics." To answer "who do we tell when this ships," Ines has to open the issue, click through to each linked Zendesk ticket, and read who filed it. That's already a chore at four tickets, tracked by one person who happened to catch every duplicate. It stops being fine once an issue accumulates six or eight links from a recurring bug, because nothing forces the linking to happen consistently and nothing counts the result.
When the fix ships, the reopening automation Ridgeway turned on earlier posts an internal note and reopens all four tickets on its own, and Ines replies to each customer individually with the same update. The notification worked without her touching Zendesk. Remembering there were exactly four people to reply to, and who they were, still took her reading through the issue by hand.
Where the native approach stops working
The integration handles the connection between one ticket and one issue reliably. It doesn't hold up as a system once volume increases, for three specific reasons:
- The rollup lives in a person's head. Whoever links the second, third, and fourth ticket to an existing issue is the only record that they're related. There's no dashboard of "issues by number of linked tickets," so a bug affecting ten accounts looks the same in the issue list as a one-off report, until someone opens it.
- Linking is a manual judgment call, every time. Recognizing that ticket #4058 is the same bug as #4021 depends on a human reading both and remembering the earlier one existed. At a handful of tickets a day that's manageable; past a few dozen, some duplicates get filed as new issues simply because nobody made the connection.
- The requester list disappears once the ticket closes. Zendesk's own ticket search doesn't index "linked Linear issue," so working backward from a shipped fix to every customer who reported it means the same manual click-through, in reverse.
That's the point where teams stop trying to fix this with tagging conventions or a spreadsheet on the side and add something that watches both tools and keeps the customer list attached automatically. That's the part of the job Modem does. It captures Zendesk tickets with requester details as they come in (Zendesk integration), clusters tickets that describe the same problem into one topic regardless of who filed them or when, and gives the agent access to Linear so it links that topic to an existing issue or files a new one with every requester's quotes attached (Linear integration) instead of leaving that as a one-ticket-at-a-time decision. The topic keeps the running list of who's waiting, so "which customers care about ENG-891" is a lookup, not a research task. We build Modem, which means we're not a neutral source on whether it's worth adding; judge the fit against what your own team actually needs. The wider field of options for the Zendesk side of this is covered in tools that mine feedback from Zendesk tickets, and the Linear side in tools that turn customer feedback into Linear issues.
If the native integration already covers you
If you're not there yet, the native integration is enough. Install it, put agent accounts on Linear-connected seats, and write down one rule: before creating a new issue from a ticket, search Linear for the symptom first. Add a habit on top of that, one line in the issue's first comment listing every linked account by name, updated each time a new ticket gets attached. It's manual, but it turns the rollup from "ask Ines" into something anyone on the team can read straight off the issue.
