Skip to main content
The Linear integration connects engineering work to customer impact. Link Linear issues to requests in Zudo to track what’s being built, for whom, and how long it takes to ship.

Connect

Linear is a manual connection in Zudo. Before you add it in the app, create a Linear issue webhook and a Linear personal API key.
1

Create the Linear webhook

In Linear, create an issue webhook that sends requests to https://zudo.so/api/webhooks/linear.
2

Subscribe to issue create and update events

Zudo only processes Linear webhook actions for issue create and update.
3

Copy the webhook ID

After Linear creates the webhook, copy the webhook ID. Zudo stores that ID on the connection and uses it to match incoming webhook events.
4

Add the connection in Zudo

Go to Settings → Connections, click Add Connection, select Linear, and enter the default API URL, your personal API key, and the webhook ID from Linear.
5

Run the first sync

Create the connection, then use Sync Now any time you want to pull the latest issues.
The default API URL is https://api.linear.app/graphql.

What syncs

  • Issues — imported from Linear with title, description, and ID
  • Issue state — Zudo updates issue state from the initial sync and from subsequent Linear webhook events
  • Resolution time — when an issue closes, Zudo records how long it was open

Sending attachments too

If you also use the GitHub integration, subscribe your Linear webhook to attachment events as well as issues. Linear records a pull request as an attachment on the issue it belongs to. Sending those events lets Zudo tell that an issue and a pull request are the same piece of work, so a request linked to both waits for it once rather than twice. This is optional. Without it, Zudo still matches a pull request to an issue when the issue’s identifier appears in the branch name, title or description — it just cannot confirm it from Linear’s side.

Impact on health scoring

Issue resolution time is one of the five factors in the health score. Accounts linked to slow-resolving issues score lower in that dimension.

Linking issues to requests

Open any request and use the issue link option to search for and attach a Linear issue. The issue’s state becomes visible on the request and on any linked account. You can also go the other direction — open a Linear issue in Zudo and create a new request from it. This is useful when engineering flags something and you want to track which customers are affected.

Tagging accounts from an issue

You can name the affected accounts in a Linear issue’s description. Wrap each account’s External ID in exclamation marks:
When Linear sends an update for that issue, Zudo looks for accounts in your organization with those External IDs. If it finds any, it links the issue to a request for those accounts, creating one from the issue’s title, description and priority if there isn’t one already. It also links the accounts to the issue. IDs can be letters, numbers, -, _, . and :, but no spaces. An ID that doesn’t match an account is ignored. An account’s External ID is shown on its page and in the External ID column on the Accounts page. You set it when you add or import an account, and integrations like Vitally fill it in.

Troubleshooting

  • If new Linear changes are not showing up, confirm the webhook still points to https://zudo.so/api/webhooks/linear.
  • Make sure the webhook ID saved in Zudo matches the webhook ID in Linear.
  • If the webhook is correct but the issue list looks stale, run Sync Now from the connection card.