Expand Fin to email is now live on Fin Academy!
Get more out of Intercom using our API and webhooks
Recently active
Hello everyone,Our team, operating within the travel industry, heavily rely on API calls to extract valuable insights from our database (e.g. departure dates, company codes, destinations etc.) wihin Intercom workflows. We then save this information as custom object attributes.This setup was designed to facilitate detailed data analysis of our workload while saving our team time by automating the input process for each request.However, to our surprise, custom object attributes are not accessible through search, reporting, or exporting functions within Intercom. As a result, despite the data residing in Intercom, our team still needs to manually input it into conversation and people data to make it available for reporting and exports.Recognizing the significance of this time-consuming process, we're actively seeking a solution to automate it.Is it feasible to complete conversation and people attributes via an API call (bypassing reference option), or are there alternative workarounds to
Hello,we are trying to implement a custom launcher that uses intercom’s launcher inside of it as one of our options. Everything went smoothly until we saw that our proactive support messages were showing without our launcher noticing. We couldn’t find any event to get triggered in our code when the user receives a proactive support message. Is there any way of achieving this? we tried with the “onShow” event but that one only triggers when the intercom launcher is opened manually and not through a proactive support message.Thanks in advance!
Hi All, I’ve a contact form on the web, and in Intercom we created a Email workflow, if some email is send to a email address we trigger the email workflow. So, I need to trigger that workflow when I POST a Conversation o Message, with message_type = email. I’ve tried POST conversations, POST message, also set the from and to with valid contacts/users, the message/conversation is created but the workflow is not triggered. Any ideas?
Hi, I'm a little new to intercom but would like to work wtih it in a very technical automated way. We would like to be able to insert events that happen on the company level, and then trigger some emails / notifications to specific types of users (eg has ADMIN label) based on that event happening. So for example: Company onboards in our own system with a number of usersWe create the company entity in intercomWe create the user entities in intercom and associate them with the companyWe throw an event to intercom that the company "has_been_onboarded"Intercom rules pick up the event and send emails only to ADMIN users that welcomes them to our service So here the event is on the company level, but it should trigger an email to specific types of users within the company. Is this possible? A few quick tips & pointers would be really appreciated! /Johan
Hi, Using the “/companies” with scroll parameters works without problems. Somehow though I need a way to read companies starting with the most recently added, and it seems “companies/list” is the only way to do that. No matter how I query “companies/list”, no matter what parameters I set for page, per_page and order I always get this same error:{"type"=>"error.list", "request_id"=>"003kmpu8u10s0f0dgeb0", "errors"=>[{"code"=>"company_not_found", "message"=>"Company Not Found"}]} Can you advise?
Hello,I’m trying to set up an SMS alert system in Intercom for when a VIP customer calls in. The plan is to use the phone workflow to trigger an API call, which then triggers an event. This event should prompt an SMS to be sent to a specific segment of our team.I've been attempting to use "Last contacted" for the created_at field and "Contact ID" for user_id in my API setup, but I keep encountering JSON format errors. If anyone has experience with setting up similar workflows or can offer insights into what might be going wrong, I'd greatly appreciate your help. Also, if there's a different approach that could achieve the same outcome, I’m open to suggestions!Thanks in advance for your assistance!
I’m currently trying to POST a Contact with just an email, and am currently being met with a 400 error:Request body:{"name": "Kim Chuc", "email": "email@gmail.com"}Response body:{ "type": "error.list", "request_id": "0004n8c4t4e6a3olv82g", "errors": [ { "code": "invalid_document", "message": "either_email_or_user_id_present validation failed" } ]} Based on the docs, email is the only required field to POST a Contact and I’ve double checked to make sure the email doesn’t already exist: Has anyone ever come across this issue before?
The REST API has a method for merging contacts from lead to user. It works pretty simple:```curl -i -X POST https://api.intercom.io/contacts/merge \ -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \ -H 'Content-Type: application/json' \ -H 'Intercom-Version: 2.10' \ -d '{ "from": "LEAD_ID", "into": "USED_ID" }'```Also, lead can be merged to user in the Intercom app. When lead is merged, our integration listen for webhook with topic `contact.merged`. This webhook has an information to what contact the lead was merged, but has a missing part from what lead: ```{ "type": "notification_event", "app_id": "abcdee", "data": { "type": "notification_event_data", "item": { "type": "contact", "id": "USER_ID", "workspace_id": "abcdee", "...": "..." } }, "links": {}, "topic": "contact.merged", "delivery_status": "pending", "delivery_attempts": 1, "delivered_at": 0, "first_sent_at": 1713533523, "created_at": 1713533523, "self": null}``` May you add lea
When admin replies with an article, webhook does not contain details about it. May we have a link to article in webhooks?
Hi! When I use a specific IP address, all my POST requests to the api (https://api-iam.intercom.io/messenger/web/ping) return a 403 error. However, this does not apply to other ip addresses. Is it possible that my ip address is blocked?
Our application uses OAuth to get user’s access token. We noticed that after a while tokes are revoked and API calls fails with unauthorized errors. An example:```json{ "type": "error.list", "request_id": "0003hg8qe7evlq01dqcg", "errors": [{ "code": "unauthorized", "message": "Access Token Invalid" }]}```May I ask if access tokens obtained through OAuth have expiration date? If there a way to debug why token is invalid now?
I’m running into a problem when attempting to sync contacts from our platform. Currently I’m doing the following:Call the contacts/search endpoint, searching by email address If Contact is found, update it If Contact is not found, attempt to create itI’m occasionally getting the following error on step #3:An archived contact matching those details already exists with id=123456 I cannot search for Contact 123456 in the UI. If I attempt to GET the Contact through the API, I get an error “User Not Found”.I cannot blindly update the Contact because I don’t know their Intercom ID, and that’s the only way to call an update that I can find.So how do I locate and update these archived records?
I have an application with a few thousand users that I would like to create/update in intercom and synchronise at least weekly with attributes that are calculated by my backend and that are required for contextual engagement. The Contacts API does not support bulk updates and has two major constraints for large volume: i) it requires your app to understand whether a contact has already been created before calling with POST or PUT (the javascript SDK does not suffer from this); ii) the API rate limits are ridiculously small for any medium-sized user base (166 requests per 10s window, what???), which are even smaller if you need to check if a user exists before issuing either a POST or PUT. Furthermore, the Contacts API requires you to save the intercom id for a user for any updates, which is not user-friendly at all. The javascript SDK operates from the external_id provided (controlled by my app), while the REST API does not understand it at all and requires you to either call a GET or
Two questions on the Intercom webhooks (https://developers.intercom.com/building-apps/docs/webhooks - Are they all located the USA? - Are canvas kit webhooks from the same IPs?
HelloWe are running into this error since this morning on the conversations end pointhttps://api.intercom.io/conversationsThis was working fine before for months and we didn’t change anything on our end. We are running 1000’s of api calls a day so the errors are running in the high thousands since this morning. Anyone noticed anything ?
Hello, I’m working on a new channel for Intercom. The service receive and forward messages between Intercom and 3th party chat app. When agent reply to chat, we receive related webhook and forward it to external app. There are cases, when we can’t forward the message (e.g. external service is down, or respond an error for particular user). Is there a way to notify agent about problem with sending particular message?
Hi I am trying to connect my Canny Changelog with intercom News. Ideally when a new changelog is created it would post on intercom news as well
When call API to create a conversation with empty `body` and one file attached, the API response with an error, but on https://app.intercom.com/a/inbox/ the chat appear.Here an example of CURL:```bashcurl --location 'https://api.intercom.io/conversations' \--header 'Authorization: Bearer <admin_token>' \--header 'Content-Type: application/json' \--header 'Intercom-Version: 2.10' \--data '{ "from": { "type": "user", "id": "<contact_id>" }, "subject": "Test Subject", "attachment_urls": [ "https://picsum.photos/seed/picsum/512/512" ]}'```The example of response:```JSON{ "type": "error.list", "request_id": "0035jabkv5b82qmiu3cg", "errors": [ { "code": "server_error", "message": "Server Error" } ]}```
I am trying to fetch 150 contacts per page while calling https://api.intercom.io/contacts.but on trying to do so , i am getting the following error {"type":"error.list","request_id":"0069rm2ubh0lgdfr7kg0","errors":[{"code":"invalid_document","message":"either_email_or_user_id_present validation failed"}]} attaching the REST API INTEGRTION code below: ( implemented using Salesforce Apex) String endpoint=’ https://api.intercom.io/contacts’HttpRequest request = new HttpRequest(); request.setEndpoint(endpoint); request.setMethod('GET'); request.setHeader('Authorization', 'Bearer ' + INTERCOM_API_TOKEN); request.setHeader('Accept', 'application/json'); request.setHeader('Content-Type','application/Json'); Integer perPage = 150; String json= '{'+ ' "per_page":'+perPage + '}'; system.debug(json); request.setBody(json); Could you kindly share your thoughts on how to handle this error . Any input is highly appreciated . Thank you
i am trying to delete contact with API and it keeps giving me error "errors":[{"code":"not_found","message":"User Not Found"}] , i double checked about the id i am passing and it is correct. i also check for this error code but didn't find anything in the documentation
The JS API call is not working for me → Intercom('showArticle', articleId) I am using some othe JSAPI calls on the same page which are wirking.Are there any known issues?
Hi there,I am trying to leverage the messages endpoint (https://api.intercom.io/messages and send an email using Intercom, with the template 'plain'. However, it seems like the 'message_type' body parameter is not working, since I send it and it generates an in-app message instead of an email. Here is the body of my request:{ "message_type": "email", "subject": "Hey", "body": "test", "template": "plain", "from": { "type": "user", "id": "63db09ccde07bab99d849eb0" }, "to": { "type": "user", "id": "630e7f6692c1ab99a7ef98af" } }And here is the response I am getting:{ "type": "user_message", "id": "1585218670", "created_at": 1675374629, "subject": "Hey", "body": "test"
I set up a webhook when a conversation is assigned to an admin (conversation.admin.assigned). It works fine and is triggered correctly when the assignment is done manually, but it is not triggered at all when it is done through inbox rules. Is this expected?
Hi, Im currently collecting customer satisfaction by querying all the individual conversations and making the calculation myself. It would be nice if there was direct access to pull the customer satisfaction report, but besides that the issue with pulling individual conversations is that if a users account is deleted their conversation is too, preventing me from getting perfectly accurate results. The question is, whats the best way for me to pull customer satisfaction then if i cant rely on pulling individual conversations?
As an example, I want to search for all tickets which have the text “high priority” in the title (The words must appear together in the title)I am unable to figure out how to do this.
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.