Expand Fin to email is now live on Fin Academy!
Get more out of Intercom using our API and webhooks
Recently active
Hi, I need someone who can export all my past conversations in Intercom and add them to the appropriate “notes” sections of my contacts in Hubspot.
HiI know that I need to use the API to export articles, and I’ve looked at a couple of existing questions around this. The answer seems to be, you need to use the API and to look at the article Formatting and exporting your articles with the API for answers. That article doesn’t have any information about exporting articles using the API. It has one line of text right at the bottom, pointing you to the developer docs, but not guidelines as to how to start. I looked at the data export section of the developer docs and gave that a try, and first of all found out that it will only pull data from a 90 day period, so pretty useless if you want to export docs that have been created over time. I tried the Export API endpoint with a shorter time period and still had issues. For anyone else trying, you first have to Create a Data export, the response from that request will give you a job number. You then need to download the data export, using the job number.I tried this in the Intercom test e
I have been using the Intercom API to try to recreate the regular metrics in Metabase. I have tried using this resource but haven’t found it to be particularly helpful. For example, if I try this query, the response maps to the New Conversations Metric in the Intercom dashboard instead of the Assigned Conversations metric which is my intention. SELECT "Inbox Details - Team Assignee"."inbox_name" AS "Inbox Details - Team Assignee__inbox_name", COUNT(*) AS "count"FROM "public"."conversations_data" LEFT JOIN "public"."inbox_details" AS "Inbox Details - Team Assignee" ON "public"."conversations_data"."team_assignee_id" = "Inbox Details - Team Assignee"."inbox_id"WHERE ( ( "Inbox Details - Team Assignee"."inbox_name" = 'VIP Support Inbox' ) OR ( "Inbox Details - Team Assignee"."inbox_name" = 'Support' ) OR ( "Inbox Details - Team Assignee"."inbox_name" = 'VIP Escalation Inbox' ) OR ( "Inbox Details - Team Assignee"."inbox_name" = 'Escalation I
Hello, We created a custom attribute with the list type called `Channel Networks`. When we try to update it via the API we get back the following error:```{ type: 'error.list', request_id: 'REDACTED', errors: [ { code: 'nested_custom_attributes', message: 'Cannot submit an array as a custom attribute value' } ]}```Other custom attributes work fine, just list/array type ones fail.```const respIntercom = await fetch(`https://api.intercom.io/contacts/${contact_id}`,{method: 'PUT',headers: {'Content-Type': 'application/json','Intercom-Version': '2.12',Authorization: `Bearer ${process.env.INTERCOM_ACCESS_TOKEN}`},body: JSON.stringify({"name": userData.user.name + " TEST","phone": userData.user.phone,"last_seen_at": userData.user.last_online,"signed_up_at": userData.user.created_at,"custom_attributes": {"ACME": userData.user.acme,"Channel Networks": ["Channel 1", "Channel 2"],}})});```
Hi,I wanted to know if there is any possible way to trigger a callback request through setting a conversation attribute ‘last_inbound_call_estate’ to ‘Awaiting callback’. As all I can seem to find is that this data attribute is only accessible through the phone workflow and can only be added and modify by Fin though the workflow.It would be nice if there was an option to set the ‘last_inbound_call_estate’ to ‘Awaiting callback’ for any conversation so the active team members would automatically get the call in their inbox, just like when they request a callback through the phone workflow, but without them having to actively call… Wether it is though API or through a messenger workflow it would be nice to integrate.
Hey there, I’m finding it difficult to understand the rest API docs around file uploads. I would love to have a user fill out a form, and attach an image, and this would be submitted by the API to create a ticket. I see that the “File” type is supported in the tickets, however I’m finding difficulty in figuring out what Intercom wants as a file. Is there any more documentation that you could point me towards? Or could you provide a quick example of what an image upload would look like with the API? Thanks, Aaron.
I'm creating a user in the api and filling in the phone field. I Want fill a field "WhatsApp Number" How I do that? there is nothing in the documentation
Hi, I am currently using the OpenAPI specification provided in your YAML file to generate an API client for the /companies/list endpoint. According to the YAML, pagination is implemented via a "pages" object, which includes a "next" property defined as a starting_after_paging object. This object is expected to contain properties like per_page and starting_after.However, the actual API response returns the "next" property as a plain URL string, for example:"pages": { "type": "pages", "next": "https://api.intercom.io/companies/list?page=2&per_page=1&order=desc", "page": 1, "per_page": 1, "total_pages": 223},"total_count": 223I have verified that this behavior is consistent even when using the API testing tool provided at https://developers.intercom.com/docs/references/rest-api/api.intercom.io/companies/listallcompaniesCould you please clarify whether this is a known issue or an intentional change in the API implementation that has not yet been reflected in the YAML documenta
Hey!We are creating tickets for some chats and sending the ticket attributes to an external tool using POST API requests. I’m able to forward all attributes except for any files added to the ticket, as the file attribute isn’t saved like the others.Is there a way to include links to the files in my API call through the Action Builder? I see that the files are stored like this, so I would just need a way to include this in the call. https://downloads.intercomcdn.com/i/o/qwum5ehb/1430332547/0a18547e88a0534a2b11dc66de1c/About+-+Wolt+%28Germany%29.pdf?expires=1742396400&signature=71937dcca587c48f45395961771de4a294247409d94427ef8a309fcc0f603793&req=dSQkFsp9n4RbXvMU3HP0gCfl8Ixw9B04fnL9Av84zX8P2bzVoXE%3D%0A
Hello, I have a custom action that is supposed to send a request to my server along with multiple url params attached.The problem is however, not ALL of the params are sent for every request. Yet, since they are declared in the Request section of Custom Actions the call fails presumably because not every param has a value. The questions are, 1.) are we able to set these params to be “optional” and I’m just missing the option? 2.) Why can’t Intercom just recognize that this param is empty, and input a null, or avoid the param all together and leave validation up to the server receiving side? AKA, my server.I just feel like this product is feature limited to the point its useless, at least for my use case. And yes, I have tried for hours to Google, watch Youtube videos, browse articles (even found this one), reach out to support (no response), and just plain ol’ trying things on my own before coming here. So don’t give me the ol’ “Search Google” non-sense. PRODUCTIVE AND SUPPORTIVE ANSWE
Hi team,We're implementing the require-trusted-types-for 'script'; header in our app and have set up a default Trusted Types policy. However, the Intercom widget script fails on the following line:e.documentElement.innerHTML = t,withUncaught TypeError: Failed to set the 'innerHTML' property on 'Element': This document requires 'TrustedHTML' assignment. Has anyone encountered this issue before? Any suggestions on how to work around it while keeping Trusted Types enforcement?Thanks!
Hi guys,As far as I know, currently there is no option for sending Whatsapp templates via REST API (correct me if I’m wrong). Whatsapp don’t allow sending messages via their API directly if the number is already connected to your system. That leave us without options in order to have only 1 single point of contact number for receiving user’s questions and being able to automate templates for our users. Other competitors (like Messagebird) already allow to send whatsapp templates via their API.So the question is, is there any plan to allow this in your API? Is there any ETA? This feature is quite important and if there is no plan to implement it would make customers contemplate switching providers. Thanks in advance.
I'm experiencing an issue when using the Intercom API to search for tickets. When I try to search for a title that contains spaces, the API does not return the expected results. For example: The query below returns the ticket correctly: { "query": { "field": "title", "operator": "~", "value": "Atraso" } } However, when I add a space after "Atraso", no results are returned: { "query": { "field": "title", "operator": "~", "value": "Atraso " } } I have already tried the following approaches without success: Using regular expressions with \b Encoding the space as %20 Using the exact match operator "=" Expected result :[ { "type": "ticket.list", "pages": { "type": "pages", "page": 1, "per_page": 20, "total_pages": 1 }, "total_count": 1, "tickets": [ { "type": "ticket", "id": "9", "ticket_id": "3", "ticket_attributes": { "_default_title_": "Atraso na criação de atividades no Pipedrive", "_default_description_": "Solicitação de análise urgente de atraso na criação de atividades no Pipedr
Hello,I am using Intercom API in a GCP cloud run to do several things, especially updating a user.Sometimes it works, but sometimes I get an 401 error: “token_not_found”, and I checked multiple times with logs: I am always sending the access token and it’s the right one. “intercom_user_id” is also the right one.I also checked multiple times my server and logic, and there’s no error.Here are some request ids where this error happened: 0003sad4ua316ingi1l0, 000an1qat9nc63bsg160, 0021017ivsn8tt93ipd0.Here is the call in python:url = f"https://api.intercom.io/contacts/{intercom_user_id}"headers = { "Authorization": f"Bearer {settings.INTERCOM_ACCESS_TOKEN}", "Intercom-Version": "2.12", "Content-Type": "application/json",}update_dict = intercom_profile.model_dump()try: response = await httpx_client.put(url=url, headers=headers, json=update_dict) if response.status_code != 200: log.info(response.json()) log.info(f"INTERCOM_ACCESS_TOKEN: {settings.INTERCOM_A
I am doing research on fetching data from my intercom account and save to another platform. In the way i just wanted to know if i can fetch anyone's app created app credentails i.e client_id,client_secret using account username and password. I have also gone through the api doc provided by Intercom but didn't found anything relevant to this. So anyone can tell me whether it is possible in Intercom or not?
Has anyone ever seen an issue with the conversations API returning the wrong type for a conversation part? I’m working with a customer and we’re seeing an issue where sometimes the API returns conversation parts with a type = “assignment” but it should be a “comment” or a “note”. I have an example I can share if that is helpful.
Hi, nice to meet you!First of all, I want to apologize if there is any misunderstanding. My native language is Spanish, and I wrote this message myself, with a review by ChatGPT.I'm here because I have a small issue with a specific functionality, specifically the /tickets/search endpoint.The main issue is that I have two types of tickets. To give you an example, one type is for delayed shipping, and the other is for requesting a shipment cancellation. In both cases, when I create the ticket, I send an extra attribute called tracking_number. Both types of tickets are created correctly with this extra parameter and the necessary data.Now, here’s the issue: when I try to search, I do it like this: As you can see, I can't find any results. However, when I search individually, I can find both tickets. I’d like to know if this functionality is supported. I checked the documentation but couldn't find an exact example for a multiple search.Additionally, I’d also like to know if there is a way
Hello,I am using Intercom API in a GCP cloud run to do several things, especially updating a user.Sometimes it works, but sometimes I get an 401 error: “token_not_found”, and I checked multiple times with logs: I am always sending the access token and it’s the right one. “intercom_user_id” is also the right one.I also checked multiple times my server and logic, and there’s no error. It’s happening both in production and test mode.Here are some request ids where this error happened: 0003sad4ua316ingi1l0, 000an1qat9nc63bsg160, 0021017ivsn8tt93ipd0.Here is the call in python:url = f"https://api.intercom.io/contacts/{intercom_user_id}"headers = { "Authorization": f"Bearer {settings.INTERCOM_ACCESS_TOKEN}", "Intercom-Version": "2.12", "Content-Type": "application/json",}update_dict = intercom_profile.model_dump()try: response = await httpx_client.put(url=url, headers=headers, json=update_dict) if response.status_code != 200: log.info(response.json()) log.i
Hi Intercom,We're building tools to help our team manage help center content more efficiently, but we've encountered a discrepancy that's causing some challenges.Currently, the article ID returned through the Articles API (/articles endpoint) doesn't include the activeContentId required in the Intercom app URL for editing articles. For example:API response article ID: 10515400 Required activeContentId in URL: 11181100 (e.g. https://app.intercom.com/a/apps/ej501111/knowledge-hub/all-content?activeContentId=111811--&activeContentType=article&editorMode=view)This means we can't programmatically generate direct links to the article editor in the Intercom app using the data from the API response.Request: Could you consider adding the activeContentId to the API response? This would allow us to generate accurate deep links to articles in the Intercom app editor, making it much easier for our team to quickly access and edit specific articles.Current API response:{ "id": "10515400", "ty
Hello everyone, i would like to know how can i solve this problem:I made a part of my chatbot with botpress so i created an app to integrate botpress in my intercom chatbot. Nevertheless, i’m strugguling with integrating it in my workflow, this message shows. How can i make this thing work please ?
Hi everyone,I’m working with a Custom Action in Intercom, where I send a POST request that includes a variable from the conversation data. However, sometimes this variable is missing for certain conversations, which causes the POST request to fail.Is there a way to create a fallback or default value for such variables in the request body to prevent the failure?For example, here’s my current setup:If data is not available, how can I ensure the request still goes through, possibly by setting a default value (like null or a placeholder string)?Any advice or examples specific to handling this in a Custom Action would be greatly appreciated.
We have many conversations in the backlog with a specific tag. We want to implement a simple Python script that uses an API to find and close these conversations. After closing them, the script should send a message to those chats to inform the users about the closure. How can this be implemented?
I’m looking for a way to automate sending (or correctly scheduling) messages from Intercom Outbox to customers.Current the way it’s done is manual:3 message templates, each with own url rules ands scheduled Each of them get scheduled and stopped at a separate time to send to customersI’m unable to find a way to currently automate this with the API (either with Messages API https://developers.intercom.com/docs/references/rest-api/api.intercom.io/messages/createmessage or even with Events API (https://developers.intercom.com/docs/references/rest-api/api.intercom.io/data-events/createdataevent) There’s no way to define rules, frequency of this I believe.It seems that having an event-triggered option for rules does not allow for URL rules to be respected? Best,Nikhil
When updating an article with the API, I am finding that any blank paragraphs in the article are stripped away. This is somewhat annoying, as we often use blank paragraphs as a way to have some padding below text before the next paragraph, heading, or image.More specifically, we may export an article with a blank paragraph that is marked up with ‘\n<p class=\"no-margin\"></p>\n’. If we feed that body directly back into the article to update it, that entire block of HTML is removed. Is there any way to preserve this?The below image shows the blank line added between the first two lines of the article. And here we see that spacing has been stripped away:
I’d like to retrieve changes or additions to the company data from yesterday or last month in batch.Since I have not seen a way of filtering the api query to companies I wonder how to best achieve this. From what I see I have to use the “Scroll over all companies” or “List all companies” API retrieving all Companies and filter the result according my needs.Any other suggestions are very well appreciated, thanks.
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.