AsyncAPI description of Intercom's outbound webhook surface. Intercom delivers workspace events to a single subscriber URL configured per app under the Developer Hub > Webhooks settings. Each delivery is a single HTTP POST whose JSON body is a notification envelope of `type: notification_event`. The `topic` field on the envelope identifies the event class (for example `conversation.user.created`, `contact.user.updated`, `company.created`, `ping`). Source documentation: - Webhook models reference: https://developers.intercom.com/docs/references/2.13/webhooks/webhook-models - Webhook topics reference: https://developers.intercom.com/docs/references/2.13/webhooks/webhook-topics - Build a webhook integration: https://developers.intercom.com/docs/build-an-integration/learn-more/webhooks/ Security and signing: Intercom signs every outbound webhook request with the HMAC-SHA1 `X-Hub-Signature` header (RFC 2104). The signature is computed over the raw JSON request body using the Intercom app's `client_secret` as the shared key, and is delivered as the literal string `sha1=` followed by the 40-character hex-encoded digest. Subscribers should recompute the digest with constant-time comparison to verify authenticity. Intercom also sets `User-Agent: intercom-parrot-service-client/1.0`.
View SpecView on GitHubArtificial IntelligenceCustomer ServiceMessagingConversational AIHelp DeskChatbotsAsyncAPIEventsWebhooks
Channels
/intercom/webhook
publishreceiveIntercomNotification
Receive an Intercom notification_event
Single subscriber endpoint that receives every Intercom notification event the app is subscribed to. The `topic` field on the JSON envelope identifies the event class. Intercom sends one notification per HTTP POST and expects a 2xx response; non-2xx responses are retried with exponential backoff until `delivery_attempts` is exhausted.
Messages
✉
Ping
ping
Sent when an admin manually pings the subscription or Intercom periodically validates it.
✉
AdminAddedToWorkspace
admin.added_to_workspace
A new admin (teammate) joined the workspace.
✉
AdminAwayModeUpdated
admin.away_mode_updated
An admin toggled away mode or updated their reassignment setting.
✉
AdminActivityLogEventCreated
admin.activity_log_event.created
An admin activity log entry was created.
✉
AdminRemovedFromWorkspace
admin.removed_from_workspace
An admin (teammate) was removed from the workspace.
✉
AdminLoggedIn
admin.logged_in
An admin signed in to the workspace.
✉
AdminLoggedOut
admin.logged_out
An admin signed out of the workspace.
✉
ArticleCreated
article.created
A help center article was created.
✉
ArticleUpdated
article.updated
A help center article was updated.
✉
ArticlePublished
article.published
A help center article was published.
✉
ArticleUnpublished
article.unpublished
A help center article was unpublished.
✉
ArticleDeleted
article.deleted
A help center article was deleted.
✉
CompanyCreated
company.created
A new company was created in the workspace.
✉
CompanyUpdated
company.updated
A company's attributes were updated.
✉
CompanyDeleted
company.deleted
A company was deleted.
✉
CompanyContactAttached
company.contact.attached
A contact was attached to a company.
✉
CompanyContactDetached
company.contact.detached
A contact was detached from a company.
✉
ContactArchived
contact.archived
A contact was archived.
✉
ContactDeleted
contact.deleted
A contact was deleted.
✉
ContactEmailUpdated
contact.email.updated
A contact's email address was changed.
✉
ContactLeadAddedEmail
contact.lead.added_email
A lead added an email address (without converting to a user).
✉
ContactLeadCreated
contact.lead.created
A new lead contact was created.
✉
ContactLeadSignedUp
contact.lead.signed_up
A lead converted into a user by signing up.
✉
ContactLeadTagCreated
contact.lead.tag.created
A tag was applied to a lead contact.
✉
ContactLeadTagDeleted
contact.lead.tag.deleted
A tag was removed from a lead contact.
✉
ContactLeadUpdated
contact.lead.updated
A lead's attributes were updated.
✉
ContactMerged
contact.merged
Two contacts were merged.
✉
ContactSubscribed
contact.subscribed
A contact opted in to messaging.
✉
ContactUnarchive
contact.unarchive
A previously archived contact was restored.
✉
ContactUnsubscribed
contact.unsubscribed
A contact opted out of messaging.
✉
ContactUserCreated
contact.user.created
A new user contact was created.
✉
ContactUserTagCreated
contact.user.tag.created
A tag was applied to a user contact.
✉
ContactUserTagDeleted
contact.user.tag.deleted
A tag was removed from a user contact.
✉
ContactUserUpdated
contact.user.updated
A user contact's attributes were updated.
✉
ConversationAdminAssigned
conversation.admin.assigned
An admin or team was assigned to a conversation.
✉
ConversationAdminClosed
conversation.admin.closed
An admin closed a conversation.
✉
ConversationAdminNoted
conversation.admin.noted
An admin added a private note to a conversation.
✉
ConversationAdminOpenAssigned
conversation.admin.open.assigned
An admin reopened and reassigned a conversation in a single action.
✉
ConversationAdminOpened
conversation.admin.opened
An admin reopened a closed conversation.
✉
ConversationAdminReplied
conversation.admin.replied
An admin posted a reply on a conversation.
✉
ConversationAdminSingleCreated
conversation.admin.single.created
An admin started a one-to-one conversation with a contact.
✉
ConversationAdminSnoozed
conversation.admin.snoozed
An admin snoozed a conversation.
✉
ConversationAdminUnsnoozed
conversation.admin.unsnoozed
A snoozed conversation woke up or was manually unsnoozed.
✉
ConversationDeleted
conversation.deleted
A conversation was deleted.
✉
ConversationPartRedacted
conversation_part.redacted
A conversation part was redacted.
✉
ConversationPartTagCreated
conversation_part.tag.created
A tag was applied to a conversation part.
✉
ConversationPriorityUpdated
conversation.priority.updated
A conversation's priority flag changed.
✉
ConversationRatingAdded
conversation.rating.added
A conversation rating was submitted by a contact.
✉
ConversationRead
conversation.read
A conversation was marked as read.
✉
ConversationUserCreated
conversation.user.created
A contact (user or lead) started a new conversation.
✉
ConversationUserReplied
conversation.user.replied
A contact replied on an existing conversation.
✉
ConversationContactAttached
conversation.contact.attached
A contact was attached as a participant on a conversation.
✉
ConversationContactDetached
conversation.contact.detached
A contact was detached from a conversation.
✉
EventCreated
event.created
A data event was tracked against a contact.
✉
TicketCreated
ticket.created
A ticket was created.
✉
TicketStateUpdated
ticket.state.updated
A ticket's state changed.
✉
TicketNoteCreated
ticket.note.created
A private note was added to a ticket.
✉
TicketAdminAssigned
ticket.admin.assigned
A ticket was assigned to an admin.
✉
TicketTeamAssigned
ticket.team.assigned
A ticket was assigned to a team.
✉
TicketContactAttached
ticket.contact.attached
A contact was attached to a ticket.
✉
TicketContactDetached
ticket.contact.detached
A contact was detached from a ticket.
✉
TicketAttributeUpdated
ticket.attribute.updated
A custom or system ticket attribute was updated.
✉
TicketAdminReplied
ticket.admin.replied
An admin replied on a ticket.
✉
TicketContactReplied
ticket.contact.replied
A contact replied on a ticket.
✉
TicketClosed
ticket.closed
A ticket was closed.
✉
TicketRatingProvided
ticket.rating.provided
A rating was submitted on a ticket.
✉
GranularSubscribe
granular.subscribe
A contact opted in to a granular subscription type.
✉
GranularUnsubscribe
granular.unsubscribe
A contact opted out of a granular subscription type.
✉
VisitorSignedUp
visitor.signed_up
An anonymous visitor signed up and became an identified user.
✉
ContentStatBanner
content_stat.banner
A delivery or engagement stat fired for a banner.
✉
ContentStatCarousel
content_stat.carousel
A delivery or engagement stat fired for a carousel.
✉
ContentStatChat
content_stat.chat
A delivery or engagement stat fired for a chat message.
✉
ContentStatChecklist
content_stat.checklist
A delivery or engagement stat fired for a checklist.
✉
ContentStatCustomBot
content_stat.custom_bot
A delivery or engagement stat fired for a custom bot.
✉
ContentStatEmail
content_stat.email
A delivery or engagement stat fired for an email.
✉
ContentStatNewsItem
content_stat.news_item
A delivery or engagement stat fired for a news item.
✉
ContentStatPost
content_stat.post
A delivery or engagement stat fired for a post.
✉
ContentStatPush
content_stat.push
A delivery or engagement stat fired for a push notification.
✉
ContentStatSeries
content_stat.series
A delivery or engagement stat fired for a series.
✉
ContentStatSeriesWebhook
content_stat.series.webhook
A webhook step inside a series fired.
✉
ContentStatSms
content_stat.sms
A delivery or engagement stat fired for an SMS message.
✉
ContentStatSurvey
content_stat.survey
A delivery or engagement stat fired for a survey.
✉
ContentStatTooltipGroup
content_stat.tooltip_group
A delivery or engagement stat fired for a tooltip group.
✉
ContentStatTour
content_stat.tour
A delivery or engagement stat fired for a product tour.
Servers
https
subscriber{webhookUrl}
Customer-hosted HTTPS endpoint that receives webhook POSTs from Intercom. The full URL is configured per app on the Developer Hub Webhooks page.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.