Expand Fin to email is now live on Fin Academy!
Get more out of Intercom using our API and webhooks
Recently active
When I pull down an example line in the body via API I get something like this:\n<p class=\"no-margin\"></p>\n<p class=\"no-margin\"><b>Can I add in other activities?</b></p>\n<p class=\"no-margin\">Not at this time. If this is a feature you would like, please send us a message.</p>When I push that back up, it adds a new line to below the bolded text. This is also happening above lists as well, but only when it’s below a <p> class.The output looks like this:<b>Can I add in other activities?<b/>Not at this time. If this is a feature you would like, please send us a message.Where the intended output should be<b>Can I add in other activities?</b>Not at this time. If this is a feature you would like, please send us a message.Is this a bug? Is there a way around this?
Hi, We are using Intercom's API in Europe and have been experiencing an outage in one of the endpoints since October 25th.It fails with error 504 IntercomException: API service is temporarily unavailable.The status page does not show any incidents https://www.intercomstatus.com/Do you experience any API outages?Thanks!
We are longtime users of Intercom’s API. The majority of our requests to Intercom’s API succeed. Here are examples of two payloads that consistently fail.{ "event_name": "new-feature-receive_this_response", "created_at": 1761447241, "user_id": "x12x227f8x4067cx7a5dx97x"} { "event_name": "experiments-show_experiment", "created_at": 1761447325, "user_id": "x12x227f8x4067cx7a5dx97x", "metadata": { "label": "experiment_questions" }} When they fail, Intercom’s API just returns a 422 with no additional details about the problem. Reading through the docs, I can’t figure out what is wrong with these. They both have event_name and created_at, the two required fields. One has metadata, and one does not, but metadata is listed as optional, anyway. I tried adjusting the event_names — replacing underscores with hyphens, truncating them &c., even trying a random string of 10 ascii chars, but these requests always still fail. I got a coding agent to read through the docs, and it
When a contact replies through the email channel to a closed ticket, there is no webhook received even though the ticket reopens. Is this a feature or a bug?
https://developers.intercom.com/docs/references/rest-api/api.intercom.io/contacts/createcontacthttps://developers.intercom.com/docs/references/rest-api/api.intercom.io/contacts/updatecontact I am unable to figure out why this is happening and on the API documentation says it should be able to update the value.
Hi Intercom Support, I'm building a Slack bot to pull metrics from Intercom. I need to access the Fin AI Resolution Rate and conversation stats that appear in the Reports dashboard. Questions:1. Is there an API endpoint that provides the same metrics shown in Reports (AI resolution rate, conversation counts)?2. How can I identify which conversations were resolved by Fin AI via the API?3. Should I use the Data Export API or Conversations Search API for accurate reporting data? Current Issue:Metrics I calculate from the Conversations API don't match the dashboard. For example, my calculation shows 84% AI resolution but the dashboard shows 62%. (same issue happens with other stats as well) What do you think the best way is to programmatically access these report metrics? Thanks(The goal is to build an AI agent—a Slack bot app that connects with Intercom. When I ask in Slack, it responds correctly with proper reporting and provides AI insights - Reporting SHOULD BE ACCURATE.)
Hi,As part of our integration into intercom - we would like to know when a contact gets blocked so we can start ignoring that contact for tasks like updating user attributes etc when they change on our side.I had a look at the available webhooks, but it wasn’t obvious which (if any) webhooks would fire when a contact was blocked and which field would let us know that they were blocked.Is there any webhook that would assist us with this?
Hello,I’ve been planning to make a customer portal and wanted to make it a PWA. I would like to be able to use Intercom push notifications on the PWA but from all the documentation I can find it seems like push notifications are only possible using the mobile SDK.I was wondering if there is a way to have push notifications without using the mobile SDK.
Hello support!When fetching a conversation using GET conversations/{id} or POST /conversations/search, the statistics fields are all null. I’m using version 2.10 but tried with 2.14 as well and it doesn’t work either. This is the object I receive "statistics": { "type": "conversation_statistics", "time_to_assignment": null, "time_to_admin_reply": null, "time_to_first_close": null, "time_to_last_close": null, "median_time_to_reply": null, "first_contact_reply_at": null, "first_assignment_at": null, "first_admin_reply_at": null, "first_close_at": null, "last_assignment_at": null, "last_assignment_admin_reply_at": null, "last_contact_reply_at": null, "last_admin_reply_at": null, "last_close_at": null, "last_closed_by_id": null, "count_reopens": 0, "count_assignments": 0, "count_conversation_parts": 7 } My close is to know when was last time a conversation was closed and intended to use stat
There are multiple ways of sending a ticket form to a conversation as described here:https://www.intercom.com/help/en/articles/8300310-ticket-form-optionsIs there a way to send a ticket form to a conversation through the REST API?TIA
Hello everyone,I'm trying to understand how the total_count value is calculated for the ListConversations and Search Conversations endpoints, as I'm observing some unexpected behavior.When I use the ListConversations endpoint, the total_count seems stable and returns a very high number (around 7 million). However, when I use the Search Conversations endpoint with filters, the total_count is significantly lower and seems unreliable.Here are my specific questions and observations: I added a filter to search for all conversations before today's date, but the result was much smaller (from 7M to around 350k). If I try an earlier date, it returns the same result. Is it possible that the Search endpoint only returns a limited dataset of the entire content? Is the Search endpoint reliable for calculating total_count? For example, when I use the following query to search for conversations within a specific date range: JSON { "query": { "operator": "AND", "value": [ { "fie
Hi, I am using the REST API to update conversation custom_attributes, and I see the conversation events showing up in the conversation view, however, the conversation attributes in the UI are not getting updated. I attached a screenshot as an example. When I retrieve the conversation from the API, I see that those custom attributes I updated are populated correctly. Has anyone encountered this before?
Our team uses Amplitude for product engagement reporting and historically we have been pretty light in including Intercom engagement data. As our team begins to launch more complex campaigns in Intercom, the use of Intercom tags for Amplitude analysis feels limited, especially when trying to measure events over time. My question is: Is it possible to create a custom event by posting to an Intercom endpoint with a series triggered webhook?As a super simple example: An Intercom series has a step where an email is sent to users. Rather than tag the user when an email is sent, can I create a custom Intercom event using a webhook? Adding and removing tags as steps in a series seems inefficient to me if we are trying to track reoccurring events over time.Thanks!
Has the webhook been updated to retrieve the subscription status of contacts?I need to sync my application with the subscription preferences expressed by users.Currently, I’m using the user.unsubscribed webhook to track when users unsubscribe via SMS. However, the product team has requested that I also sync contacts who had previously been automatically unsubscribed during the period when unsubscribe tracking wasn’t yet in place.
I’ve got a C# Blazor application that calls Intercom endpoints via api. When a new user signs up for my app, I want to send them a simple email with a link to a url. The email is a registration confirmation email. When they click the url in the email, they’re confirmed.I tried doing this by sending a POST to the intercom `/messages` endpoint with my own custom email body. It triggers the email just fine, but the url gets transformed incorrectly.I also tried sending the email via Intercom’s Outbound emails, but I can’t figure out how to trigger this email and include the confirmation url in with the payload.I’m also wondering if either of these paths is the right one. Please let me know :)
Here are the HTML tags and CSS that intercom’s API supports for Articles - https://developers.intercom.com/docs/guides/help-center/supported-htmlI don’t see callout blocks and collapsible sections which are supported in Intercom’s editor. When I use the API to update my articles (update article endpoint), even if I send the exact CSS that intercom uses for the callout blocks and collapsible sections, it strips them out as those are not on the allowed list. These articles then get published without the callout blocks that were present earlier. How can I preserve callout blocks and collapsible sections? It is a major limitation towards using the API.
I found the Webhook Topics article (https://developers.intercom.com/docs/references/webhooks/webhook-models) but cannot find the schema of specific notification item types. I’m specifically looking for conversation.user.replied.
Hi, We’re currently modelling our Intercom data. In the modelling process, I can’t find the answer to the following:How do we determine whether a conversation was started through the Intercom Chat on our web application or our mobile application? How do we determine whether a conversation was started and/or resolved by the automation workflow (self-service)?The source_type and first_contact_reply_type only indicate whether the conversation was started through 1) email, 2) conversation, 3) instagram. Hoping you help guide us to finding the necessary data.
Hi, I need your help with user data not showing correctly in Intercom.We are initializing Intercom with name, user_id, email, and user_hash.Everything works fine for most users, but starting from 3 weeks ago, new users only show user_id, and name and email are missing on their profiles.At first, we suspected it might be an issue on our end. However, we’re also sending the exact same user data to Pendo, and it’s working perfectly there — all fields are showing as expected.Could you help us check if there were any changes on Intercom's side, or suggest what else we can verify to resolve this?Thanks!
Hello everyone, our app (Coview) implemented the health check. Based on the following description from the documentation, we assumed that we would receive at least one call for each of the installations of our app each day: This will happen at least once a day for each workspace where the app is installed. With this information, we expect you to discover if the app is in a healthy state for this workspace and respond to the request telling us whether it's healthy, unhealthy, or you don't currently know.However, according to our logs we just a handful of checks each day although we have a few hundred installations. Do we misunderstand something here?
I’m curious if there is a known issue with the Users Scroll API? The Company one works just fine, but the users one returns that it is not a valid resource.I found a github incident from 2018 where something similar happened and I’m wondering if something similar is at play again. I notice that the users scroll documentation page doesn’t have a Try It option like Companies does, which leads me to believe it may be a known issue that the endpoint doesn’t actually work.Current Documentation: https://developers.intercom.com/docs/references/1.3/rest-api/users/iterating-over-all-users
Hi there,we’ve recently added events tracking and it was noticed that we get ad hock "User Not Found" error however user exists years. Request we send:{ "event_name": "post_autopublished", "created_at": 1731959712, "user_id": "..."} Response we received:{ "type": "error.list", "request_id": "0045a0lc51qku6vpphg0", "errors": [ { "code": "not_found", "message": "User Not Found" } ]} Retrying the API call can work but would be great to know what causes the issue. Any help would be appriciated. Best,Antal
It seems that in v2 when the User and Lead models have been merged into Contacts, the session_count attribute has been removed from the response. The Company object displays the session_count information so I'm wondering if there's a specific reason why the user session_count has been removed or if it's just a slip?
The Contacts model have an attribute called language_override, but when I try to set it when creating a new Contact, or to update it on an existing Contact the attribute seems to be ignored. Docs also doesn't mention it for those operations, so I guess that is as-designed. Is there any way I can change it?
I’m fetching articles from Intercom using the API. In the case where multiple help centers are present, how do I fetch the articles from only a specific help center and not all articles? Alternatively, I am also open to fetching all articles but filtering them on the basis of help center. How can I do this using the API?
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.