In the Intercom Developer Hub, create an app and navigate to Webhooks; register a subscription endpoint URL and select the topics (e.g., conversation.user.created, contact.created).
Alternatively, create webhook subscriptions via the API: POST /subscriptions with 'service_type': 'web', 'url': your endpoint, and 'topics' array.
Intercom signs each webhook payload with an HMAC-SHA1 signature using your client secret; validate it by computing HMAC-SHA1 of the raw request body and comparing to the X-Hub-Signature header (format: sha1={hash}).
Respond to webhook delivery with HTTP 200 within 30 seconds; Intercom retries failed deliveries up to 5 times with increasing delays.
Parse the incoming JSON payload: each webhook contains 'type': 'notification_event', 'topic', 'data' with the relevant object, and 'created_at' timestamp.
Implement idempotency: Intercom may deliver the same event more than once during retries — use the event 'id' field to deduplicate processing.
The webhook URL must be publicly reachable over HTTPS; Intercom does not deliver to localhost or self-signed TLS endpoints — use a tunnel or staging environment for development.
Webhook subscriptions created via the API are associated with the app, not the workspace — if the app is deleted or credentials are rotated, all associated webhook subscriptions stop delivering.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp