Register a receiver
Receive the Linq envelope
Relay sends Linq’s current v3 webhook shape directly. Relay’s prefixed IDs are the field values because Relay owns those records, but the field names and nesting follow Linq.data object.
Verify every request
Relay uses the same Standard Webhooks headers Linq documents:
Compute HMAC-SHA256 over the exact UTF-8 value:
whsec_ before using it as the HMAC key. Verify
the raw bytes before JSON parsing, reject timestamps more than five minutes
old, and compare signatures in constant time.
Acknowledge before processing
Persist the verified event and return any2xx within 10 seconds. Run model
and tool work after the acknowledgement. A successful message.received
delivery advances the agent’s delivered watermark.
Delivery is at least once. Store webhook-id as a unique key, return 2xx
without repeating side effects for a duplicate, and derive outbound message
IDs from event_id so redelivery cannot create a duplicate reply.
Retries use exponential backoff with jitter and dead-letter after 10 attempts.
Manage subscriptions
Supported events
Ignore unknown event types so adding a Linq event does not break your handler.

