Expand Fin to email is now live on Fin Academy!
Get more out of Intercom using our API and webhooks
Recently active
How do I get the specific author ID for Articles API?
Would be great to develop some apps for this feature 🤙
With the API or from the UI, I can create custom data attributes. These attributes can have one of string, integer, float, boolean, or date values. However, I need to store a list of values in a field. For example, a user (contact) can be in many teams at once in our system. But with the above model, I can only have one team at a time. What are the possible ways to implement the above functionality with the API/SDK? Should I use tags, or something else? Thanks in advance.
I would like to get latest conversation , people name for set of company id's I have offline.Is it possible to do by retriving conversations of a particular company as a first step. Then retrieve people name from it
Let's say we have a financial services platform (as an example, we don't). Let's say that platform uses Intercom and let's say our company wants to generate a message to all of our users when a certain event occurs. That's the broad use case. An example would be ABC stock just hit $100/share. This "outside" event occurs, and maybe a notification is sent outside of intercom (via email, or other ways). Is it possible for intercom to "listen" for this outside event, and when it is heard, to take action by generating an in-app message to the end user via messenger? Essentially, an event happens on platform A (stock hits $100 and triggers a message) and we want users of platform B (intercom) to receive a message about it in their messenger inbox.
Hi,My colleague asked me (amongst other things) for a programmatic export of "email opens" from Intercom, on an individual contact level.What would be the best way to accomplish this?I've looked into the API endpoints, but the "messages" endpoint has no documentation and other endpoints aren't very suited for 'bulk' exports. I've also looked into the 'export' endpoint, which allows me to do a bulk export, BUT only emails sent within the selected time window are included in the 'receipts', and if a user opened/clicked after the time window this is not in the report, and the time window is limited to 90 days.The combination of this makes it very hard to export a complete overview of (for example) email opens on an individual level. I hope there's a good solution that suits our needs.Kind regards
Hi! I'm trying to retrieve all the messages from all the conversations (not only a snippet) within a specific time-frame but I can't seem to find that option in the doc's. Does anyone know what is the best way to do that? Thanks!
Hi, we are using 'Retrieve a Conversation' for getting full info about conversation. It's a huge load of requests for us, as 'List all conversations' doesn't have 'conversation_part' array. Is there more effective way to get same info in less requests?
I noticed that the Intercom update user API creates a new user whenever I call the `user update` with a non-existing user. And this is a behavior I do not want.I found a workaround on the server side. Using the intercom-client Node library, I first try to fetch the user with the external id using the `users.find` endpoint. And if the user is found, I only then update the user.However, on the client side, I am using the Intercom JavaScript API, and it seems that I cannot go with the same approach above as there is no `get user` option. So, what would be a good solution to only update the existing users and not create new ones on the client side? 👀
Hello, I have the email address of someone and I'm looking for the company_id of the guy I can retrieve the contact easily, but in the output, I have an ID for his company like this : 63a023d904b20e0a05bb5720 It is the Intercom-defined id representing the company as described in the DOC. But I need help retrieving the company model based on this. And I need to get the company_id. How Can I get it? Thanks
We are using your API in our integration. We have been seeing the following error from your API:User not foundThis is happening when we send some events to a userId which is associated to a user before that event. What we want to know is that if this "gap" between both the calls (user created and event tracked) has some minimum requirement or they can be instantaneous. Please let us know if you need more clarifications.Thanks and regards
I am using an intercom API to create an inapp message(https://developers.intercom.com/intercom-api-reference/reference/create-a-message. I expect that user will receive a push notification once a message is created, but no one push comes to the device. But if I create a conversation from the same account from browser I receives a push on the device. What should I do to see a push on the device after creating a message through API?
I am using the intercom-ruby gem to update all my contacts. I retrieve all my contacts with :contacts = intercom.contacts.allThen I try to update all of them (only the last_seen_at field with the date of today) : contacts.each do |contact| contact.last_seen_at = date_of_today.to_time intercom.contacts.save(contact) endThe issue I have is that everytime it works for a few hundreds of contacts, but at one point it fails with some errors. The error in dev is :ArgumentError: invalid byte sequence in UTF-8 Caused by: JSON::ParserError: 859: unexpected token at 'HTTP/1.1 0 Unknown Reason-Phrase Status: 0 Vary: Accept,Accept-EncodingThe error in prod is :ETIMEDOUT error The thing is that I have tens of thousands of contacts. Many thanks for your help !
I'm trying to update a contact (type = 'user') through the API, and want to populate the User ID field. I found out that in the API, this is called the External ID (which is somewhat confusing, and the docs aren't clear). I have 2 scenarios:Scenario 1 - all goodI create a contact through the API and directly set the External ID. The External ID shows up in the User ID field as expected. I can change this via a new API request if needed. Scenario 2: 400 - Bad requestI create a contact through the API without setting an External ID. This works. Now, I want to update this contact and set the external ID. I get a 400 - Bad request without further details. If I remove the External ID field from the API request, everything works and I get a 200 response. I'm stuck with scenario 2, because I need to update contacts that I sent through the API earlier, without an external id. More infoIn both scenarios I'm making a post request and supply the Intercom ID of the contact,
I think I found a bug, maybe someone has an explaination or fix for it? Upon pushing a button with a certain `component_id` my application performs a 1-2 API requests: 1) If `params[:contact][:role]` is a visitor I'll first convert them to a user through:POST https://api.intercom.io/visitors/convert { visitor: { user_id: params[:contact][:external_id] }, user: { email: "john.doe@example.com" }, type: "user" }2) Then I'll start a conversation:POST https://api.intercom.io/conversations { from: { type: "lead", id: lead_id }, body: "I have a question about my order 1001. My email address is john.doe@example.com." }The `lead_id` is: - either from `params[:contact][:id]`, if the `params[:contact][:role]` was `lead`- or from the `id` included in the response body of the first request However as you see from the following demonstration it seems the created conversations never gets linked to messenger session of th
This would help us assess the context the user is in when asking the question. App context is not enough. It seems like a bad work around to add these values as the conversation has already been initiated (ref. the endpoint where you already have a conversation id).
I am trying to merge the lead and user having the same mail-id, I don't want the user to log in to the site as it will not serve any purpose, we are using a mobile app for that part. However, the issue I am running into is as soon as I call the API to merge the lead and the user, the service user (on the website - lead) is not able to chat or send any messages, is there any way to continue talking even after merging them? Is there any way to achieve this without losing the ability to chat after the merge?
We basically want to automate a certain support related banner messages to our CI/CD pipelines. For example when the new release is being build, we want to be able to programmatically set a banner message (from a list of templated banner messages) that the release is about to happen and once the release is finished and deployed, we want to be able to again programmatically via some api remove that earlier banner message. Thank you.
Good afternoon. Is it possible to add an executing code to the trigger that can check for the presence of installed software on the user's device?
Do i need to publish my app on intercom for API calls?
Hey there, I want to automatically start a conversation for the user on button click which pre-fills conversation custom attributes to let the support know a internal error id and the failing code part. How can I add these custom attributes to a conversation when the JS api doesn't allow such? Can I somehow get the conversation id to update the conversation attributes via API after creation? Do you see any other option? Will the "JS API" be sophisticated at any time in future?
I'm using the REST API to Search for Contacts/Conversations, with filter condition on the updated_at timestamp. What I need is to find all Contacts having updated_at on 2022-11-09 UTC (i.e 1667952000 <= updated_at < 1668038400, in which 1667952000 is 2022-11-09T00:00:00Z). However, no matter how I build the query, either using the simple equal operator (as per Intercom's doc about search & timestamp), or using the complex AND/OR/</=/> operators, I always get some results having updated_at on 2022-11-08. It looked like to me that when truncating the timestamps to date, the server used my timezone (UTC+10), so instead of giving me results between 2022-11-09T00:00:00+00:00 and 2022-11-10T00:00:00+00:00, it gave me results between 2022-11-09T00:00:00+10:00 and 2022-11-10T00:00:00+10:00. This is an unexpected/unwanted result for me. Is there anyway to fix that?Thanks
Hi, i want to change a lead to a user via changing the role by updating the contact, in the past before the contact model when you converted a lead to user it was optional to copy over the id (external id) if you gave it the email as id, this isn't possible with the contact model.so in short my problem is:leads always have id'swhen changing the lead to user the id staysupdating the external id to null or empty doesn't remove the id only updates it (with email present)
Is there a callback when creating a ticket with the widget and use the API to add a tag automatically to the ticket ?
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.