Integrations
Linear Webhooks Custom Headers
Linear outgoing webhooks include Linear-specific headers such as Linear-Delivery, Linear-Event, and Linear-Signature. In Linear's webhook docs, those are the provider headers your receiver uses for delivery identity, event routing, and signature verification.
If your receiver also requires your own header such as Authorization, x-api-key, orx-linear-integration-secret, receive Linear in FastHook first. FastHook verifies Linear's Linear-Signature, stores the original request, and adds the custom header on the outgoing HTTP destination delivery.
Linear headers vs custom destination headers
| Header | Where it applies | FastHook behavior |
|---|---|---|
Linear-Signature | Linear to FastHook source | Verifies HMAC-SHA256 over the raw Linear webhook body. |
Linear-Delivery | Linear to FastHook source | Captured with the request and useful for debugging and idempotency. |
Linear-Event | Linear to FastHook source | Captured as provider context and useful for connection filters. |
CUSTOM_HEADER | FastHook destination to your receiver | Sends your configured config.auth.header_name and config.auth.value with each routed delivery. |
Create the Linear source
curl -X POST "https://api.fasthook.io/v1/sources" \
-H "Authorization: Bearer $FASTHOOK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Linear production",
"type": "LINEAR",
"config": {
"auth_type": "PROVIDER_SIGNATURE",
"auth": {
"provider": "LINEAR",
"webhook_signing_secret": "linear-webhook-secret"
},
"allowed_http_methods": ["POST"]
}
}'Add an outgoing custom header
Use an HTTP destination with auth_type set to CUSTOM_HEADER when the downstream service expects a static secret header. This is the common workaround when a Linear webhook target needs an extra receiver credential.
curl -X POST "https://api.fasthook.io/v1/destinations" \
-H "Authorization: Bearer $FASTHOOK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "linear-events-api",
"type": "HTTP",
"config": {
"url": "https://api.example.com/webhooks/linear",
"http_method": "POST",
"auth_type": "CUSTOM_HEADER",
"auth": {
"header_name": "x-linear-integration-secret",
"value": "receiver-shared-secret"
},
"rate_limit": 20,
"rate_limit_period": "second"
}
}'Route Linear events to that destination
Keep routing rules on the connection. A typical Linear setup routes issue changes, comments, projects, cycles, or SLA events to different downstream receivers while reusing the same verified Linear source.
- Filter by the body
typeoractionfields when event families need different receivers. - Use
Linear-Delivery,webhookId, or Linear entity ids as idempotency inputs. - Use request replay after routing changes; use event retry when only one destination attempt failed.
Debug missing Linear custom headers
- If
Linear-Signatureis missing, inspect the inbound request from Linear and confirm it reached the FastHook Source URL. - If your receiver's secret header is missing, check the HTTP destination
auth_typeandconfig.auth.header_name. - If Linear signature verification fails, keep the raw body unchanged and confirm the webhook signing secret.
- If the destination returns 401 or 403, inspect the FastHook attempt body and response headers before retrying or replaying.