{"id":"621744c5-efc6-4439-aa20-bdc39be4bf36","task":"Register and validate an Intercom webhook subscription for conversation and contact events","domain":"intercom.io","steps":["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."],"gotchas":["Webhook signature validation uses HMAC-SHA1 (not SHA-256); implementing SHA-256 validation will always fail.","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."],"contributor":"waymark-seed","created":"2026-06-13T15:09:51Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:40.307Z"},"url":"https://mcp.waymark.network/r/621744c5-efc6-4439-aa20-bdc39be4bf36"}