🛠️
Developer Tools
Advanced
✓ Official

Linear webhooks: Custom integrations guide 2025

Build custom Linear integrations using webhooks. Complete developer guide with examples, security, and best practices.

30+ minutes
Setup time
Advanced
Difficulty
Official
Support
Overview

Use Linear webhooks to build custom integrations and automate workflows with any external system or application.

Features
Bidirectional sync
Automation
Real-time notifications
Custom fields
Bulk operations
Benefits
  • Real-time event notifications
  • Custom integration possibilities
  • Flexible data processing
  • Scalable automation architecture
  • Integration with any HTTP-enabled service
Limitations
  • Requires development knowledge
  • One-way communication (Linear to external)
  • Need to handle webhook security and reliability
Setup guide
Step-by-step instructions to integrate Webhooks with Linear
1

Create webhook endpoint

Set up an HTTP endpoint to receive webhook payloads from Linear.

// Express.js webhook endpoint example
app.post('/linear-webhook', (req, res) => {
  const payload = req.body;
  const signature = req.headers['linear-signature'];

  // Verify webhook signature
  if (!verifySignature(payload, signature)) {
    return res.status(401).send('Unauthorized');
  }

  // Process the webhook
  handleLinearEvent(payload);
  res.status(200).send('OK');
});
2

Configure webhook in Linear

Add your endpoint URL in Linear workspace settings and select which events to receive.

# Webhook configuration:
URL: https://yourapp.com/linear-webhook
Events: issue.create, issue.update, comment.create
Secret: your-webhook-secret-key
3

Implement signature verification

Verify webhook authenticity using the signature header to ensure security.

const crypto = require('crypto');

function verifySignature(payload, signature) {
  const expectedSignature = crypto
    .createHmac('sha256', process.env.WEBHOOK_SECRET)
    .update(JSON.stringify(payload))
    .digest('hex');

  return signature === `sha256=${expectedSignature}`;
}
4

Handle webhook events

Process different event types and implement your custom logic.

function handleLinearEvent(payload) {
  switch (payload.action) {
    case 'create':
      handleIssueCreated(payload.data);
      break;
    case 'update':
      handleIssueUpdated(payload.data, payload.updatedFrom);
      break;
    case 'remove':
      handleIssueDeleted(payload.data);
      break;
  }
}
5

Implement error handling

Add retry logic and error handling for robust webhook processing.

Automation ideas
Popular automation workflows you can set up

Customer issue escalation

Trigger: Issue created with "customer-reported" label
Action: Send notification to customer success team

Cross-platform project synchronisation

Trigger: Issue marked as "Done"
Action: Update external project tracking system

Critical incident management

Trigger: Comment added to critical issue
Action: Send SMS alert to on-call engineer
Troubleshooting
Common issues and their solutions

Webhook not receiving events

Check that your endpoint is publicly accessible, returns 200 OK, and the URL is correctly configured in Linear.

Signature verification failing

Ensure you're using the correct webhook secret and following the exact signature calculation process.

Webhook timeouts

Optimize your endpoint response time (Linear expects response within 10 seconds) and consider async processing.

Use cases
Perfect for teams working on
Custom notification systems
Data synchronisation
External system integration
Analytics and reporting
Automated workflows

Ready to integrate Webhooks?

Start with linear.gratis and connect your Webhooks workflow. Free setup, no limits, ready in minutes.