Linear webhooks

Test and debug Linear webhooksfor issues, projects and cycles

Capture issue updates, project milestones and cycle events as Linear sends them, and keep GitHub and Slack syncs working.

How Linear webhooks work

Linear webhook key facts
Where to configure itLinear API settings, or your OAuth application's settings.
Signature headerLinear-Signature: hex HMAC-SHA256 of the request body, keyed with the webhook's signing secret. Linear-Delivery (UUID) and Linear-Event name the delivery and entity type.
TimeoutRespond with HTTP 200 within 5 seconds; slower or non-200 responses count as failures.
RetriesUp to 3 retries: after 1 minute, 1 hour and 6 hours. A webhook that stays unresponsive may be disabled.
Replay windowLinear recommends rejecting payloads whose webhookTimestamp (milliseconds) is more than a minute from your clock.

Sources (checked November 2026)

See every Linear event your app receives

Linear webhooks connect your issue tracker to GitHub, Slack and deployment pipelines. When events fail, teams lose track of what shipped.

Hooklistener keeps every Linear request with its headers and body. Read the signature header your code checks, inspect issue changes, and use replay (Pro) while you build.

Linear webhook pain points

Webhook signature failures

Linear's HMAC signature check fails silently, and the handler just returns an error.

Complex change tracking

Issue updates contain nested changes, and it is hard to tell what actually changed in each event.

Cross-tool sync issues

GitHub PRs and Slack notifications get out of sync when one Linear event is missed.

How Hooklistener helps with Linear webhooks

Raw body for your Linear HMAC check

See the untouched body and signature header Linear sent, so you can tell whether your framework changed the bytes before your own HMAC code ran.

Diff two Linear issue updates

Compare two captured Linear issue events to see which field, status or relation changed, instead of reading nested JSON by eye.

Replay (Pro) to test a GitHub sync

Resend a captured Linear issue event to localhost or staging to test the GitHub or Slack sync that fell out of step.

Try it: point Linear at a free webhook URL or run a test with the webhook tester.

Linear automation scenarios

GitHub synchronization

Keep PRs and issues in sync: close issues on merge, update PR descriptions and follow deployment status.

Cycle automation

Follow cycle progress and flag scope creep and blocked issues from the events Linear sends.

Customer feedback loops

Connect support tickets to product issues and notify customers when their requested features ship.

Replay a failed webhook without re-triggering the provider

Once a delivery is captured, you can resend its exact headers and body to localhost, staging or production from the dashboard or through your coding agent over MCP, so the provider never has to fire a new event. Replay is on Pro and above. Read the replay guide.

Comparing webhook debugging tools?

See how Hooklistener stacks up against webhook.site, RequestBin, Beeceptor, Hookdeck and ngrok in the best tools to capture and inspect webhook payloads, or read the head-to-head pages for Hooklistener vs ngrok and Hooklistener vs Beeceptor.

Frequently asked questions

Does Hooklistener validate Linear signatures?

No. Built-in signature verification covers Stripe, GitHub and Slack. Hooklistener keeps the raw body and Linear's signature header so you can check your own HMAC code against the exact request.

Can I filter specific issue events?

Linear sends the events you configure. In Hooklistener you can search the history, and saved filters (Pro) keep the views you use most.

How do I read Linear's change format?

Open the captured request to see the prettified body, or diff two events to highlight what changed between them.

Can product managers look at this?

Yes. Send a shareable debugger link for a captured event so a PM can see what Linear delivered.

Keep Linear and your tools in sync

Capture and inspect every Linear event, with replay (Pro), so GitHub and Slack syncs stop drifting.