Intercom
Intercom is a complete customer communications platform with bots, apps, product tours, etc., that enables targeted communication with customers on the website, inside the web, mobile apps, etc.
Data integration: Skyvia supports importing data to and from Intercom, exporting Intercom data to CSV files, replicating Intercom data to relational databases, and synchronizing Intercom data with other cloud apps and relational databases.
Backup: Skyvia Backup does not support Intercom backup.
Query: Skyvia Query supports Intercom.
Establishing Connection
To establish a connection to Intercom, you need to sign in to Intercom.
Creating Connection
To connect to Intercom, perform the following steps:
-
Click Sign In with Intercom in the Connection Editor.
-
Enter the email and password in the opened window when signing up to Intercom.
-
Click Authorize access.
Additional Connection Parameters
Suppress Extended Requests
Intercom API returns only part of the fields for some objects when querying multiple records. To query the values of additional fields, Skyvia performs additional extended requests for each record of such an object. However, this can decrease performance and significantly increase the number of API calls.
To reduce the number of API calls, select the Suppress Extended Requests checkbox. However, please note that some of the fields in such objects will not be available in Skyvia (will return empty values) even if they have values in Intercom because its API does not return them without extended requests.
The list of such additional fields is the following:
Object | Field |
---|---|
Articles | Statistics_Type, Statistics_Views, Statistics_Conversations, Statistics_Reactions, Statistics_HappyReactionPercentage, Statistics_NeutralReactionPercentage, Statistics_SadReactionPercentage |
Connector Specifics
Object Peculiarities
Companies
When you query all data from this object, you get only the companies associated with specific users. To get companies unrelated to any user, use the filter by Id in your query.
The Companies object and the related CompanySegments, and CompanyContacts objects support only one querying session at a time. Don’t use the Companies, CompanySegments, or CompanyContacts objects in a single integration or separate integrations that run in parallel.
Contacts
To import data to the Contacts object, map either the Email or the ExternalId.
Conversations
The INSERT operation creates new conversations. The From_Type field accepts the following valid values: User, Lead, Contact. Specify the Id of the corresponding user, lead or contact in the From_Id. Specify the message text in the Body field.
Tickets and <TicketTypeName>Tickets
The TicketAttributes field in the Tickets object has a complex structure in JSON format. The set of ticket attributes depends on the ticket type. For user convenience, we create a separate object for each ticket type. You can recognize such objects by the ticket type name and the *Tickets suffix in their name.
DataAttributes
When you query this object, the Model field returns three value options: Contact, Company, and Conversation. You can insert data attributes only for Model = Contact or Company.
Custom Fields
The following Intercom objects support custom fields: Contacts, Companies, Conversations, <TicketTypeName>Tickets.
Custom fields support the following data types.
Intercom Data Type | DbType | Comment |
---|---|---|
Text | String | For the Conversations and <TicketTypeName>Tickets objects the field length is 1000 characters. For the fields with names containing memo, note, description, comment, notes, address or ending with url, reason, keywords, the length is 4000 characters. If a field name contains content or html, the length is 2147483647 characters. For the Contacts and Companies objects, the length is 255 characters. |
Number | Int32 | |
Decimal Number | Double | |
Date | Date | May be used in the Contacts and Companies objects |
DateTime | DateTime | May be used in Conversations and <TicketTypeName>Tickets objects. Read-only for the <TicketTypeName>Tickets objects. |
True or false or Boolean | Boolean | |
List | String | Read-only |
File upload | JSON Array | Read-only field. Includes the following fields Name (String), Url (String), ContentType (String), FileSize, (Int64), Width (String), Height (String) |
File upload | FileComplexType | Read-only complex structured object |
Wait a few minutes before querying the Contacts object containing the updated custom field values. Or query the updated contact records using filter by Id. If you update custom field values and query the whole Contacts object immediately, you get the old values.
DML Operations Support
Operation | Object |
---|---|
INSERT, UPDATE, DELETE | Articles, Collections, Companies, Contacts, Tags |
INSERT, DELETE | ContactCompanies, ContactsSubscriptions, ContactTags |
INSERT, UPDATE | Conversations, Tickets, TicketTypes |
INSERT | DataAttribute, Notes |
Incremental Replication and Synchronization
Skyvia supports Synchronization for the following Intercom objects: Articles, Companies, Collections, Contacts, Conversations, Tickets, TicketTypes.
Skyvia suports Replication with Incremental Updates for the following Intercom objects: Articles, ActivityLogs, Companies, Collections, CompanySegments, CompanyContacts, Contacts, ContactSegments, ContactCompanies, Conversations, Events, HelpCenters, Notes, Segments, Tickets, TicketTypes.
Stored Procedures
Skyvia represents part of the supported Intercom features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.
ArchiveContact
To archive a specific contact, use the command
call ArchiveContact(:id)
UnarchiveContact
To unarchive a specific contact, use the command
call UnarchiveContact(:id)
ContactReplyToConversation
To reply to a conversation with a message on behalf of a contact, use the following command
call ContactReplyToConversation(:conversation_id, :intercom_user_id, :body)
AdminReplyToConversation
To reply to a conversation with a message from an admin, use the command
call AdminReplyToConversation(:conversation_id, :message_type, :admin_id, :body)
PARAMETER NAME | DESCRIPTION |
---|---|
Conversation_id | Conversation identifier |
Message_type | Valid values are comment, note |
Admin_id | Admin identifier |
Body | Message text |
AddTagToConversation
To add a tag to a specific conversation, use the command
call AddTagToConversation(:conversation_id, :admin_id, :tag_id)
RemoveTagFromConversation
To remove a tag from a specific conversation, use the command
call RemoveTagFromConversation(:conversation_id, :tag_id, :admin_id)
CloseConversation
To close a conversation, use the command
call CloseConversation(:conversation_id, :admin_id)
SnoozeConversation
To snooze a conversation to reopen on a future date, use the command
call SnoozeConversation(:conversation_id, :admin_id)
OpenConversation
To open a conversation which is snoozed or closed, use the command
call OpenConversation(:conversation_id, :admin_id)
AssignConversation
Use the following command to assign a conversation to an admin and/or team
call AssignConversation(:conversation_id, :type, :admin_id, :assignee_id)
PARAMETER NAME | DESCRIPTION |
---|---|
Conversation_id | Conversation identifier |
Type | Valid values are admin, team |
Admin_id | Admin identifier |
Assignee_id | The identifier of the admin or the team |
ConvertConversationToTicket
To convert a conversation to a ticket, use the command
call ConvertConversationToTicket(:conversation_id, :ticket_type_id)
SubmitEvent
To submit an event, use the command
call SubmitEvent(:event_name, :created_at, :id, :metadata)
PARAMETER NAME | DESCRIPTION |
---|---|
Event_name | Name of the event |
Created_at | Event date and time |
Id | Identifier of the contact for which the event is being created |
metadata | Optional metadata about the event in JSON format |
CreateEmailMessage
To create an email message that an admin has initiated, use the command
call CreateEmailMessage(:subject, :body, :template, :from_id, :to_type, :to_id)
PARAMETER NAME | DESCRIPTION |
---|---|
Subject | The message subject |
Body | The message text |
Template | Style of the outgoing message. Valid values are plain or personal |
From_id | Sender identifier |
To_type | Role associated to the contact user or lead |
To_id | Recipient identifier |
CreateInAppMessage
To create an in-app message that an admin has initiated, use the command
call CreateInAppMessage(:subject, :body, :template, :from_id, :to_type, :to_id)
PARAMETER NAME | DESCRIPTION |
---|---|
Subject | The message subject |
Body | The message text |
Template | Style of the outgoing message. Valid values are plain or personal |
From_id | Sender identifier |
To_type | Role associated to the contact user or lead |
To_id | Recipient identifier |
CreateTicketTypeAttribute
To create a new attribute for a ticket type, use the command
call CreateTicketTypeAttribute(:ticket_type_id, :name, :description, :data_type, :required_to_create, :required_to_create_for_contacts, :visible_on_create, :visible_to_contacts, :multiline, :allow_multiple_values)
PARAMETER NAME | DESCRIPTION |
---|---|
Ticket_type_id | Identifier of the ticket type attribute |
Name | Ticket type attribute name |
Description | Description of the ticket type attribute |
Data_type | The type of the data attribute. Valid values: string, list, integer, decimal, boolean, datetime, files |
Required_to_create | Whether the attribute is required or not for teammates. Boolean. Default value is false |
Required_to_create_for_contacts | Whether the attribute is required or not for contacts. Boolean. Default value is false |
Visible_on_create | Whether the attribute is visible or not to teammates. Default value is true |
Visible_to_contacts | Whether the attribute is visible or not to contacts. Default value is true |
Multiline | Whether the attribute allows multiple lines of text (applicable to string attributes). Boolean |
Allow_multiple_values | Whether the attribute allows multiple files to be attached to it (applicable to file attributes). Boolean |
UpdateTicketTypeAttribute
To update an existing attribute for a ticket type, use the command
call UpdateTicketTypeAttribute(:ticket_type_id, :name, :description, :required_to_create, :required_to_create_for_contacts, :visible_on_create, :visible_to_contacts, :multiline, :allow_multiple_values, :archived)
PARAMETER NAME | DESCRIPTION |
---|---|
Ticket_type_id | Identifier of the ticket type attribute |
Name | Ticket type attribute name |
Description | Description of the ticket type attribute |
Data_type | The type of the data attribute. Valid values: string, list, integer, decimal, boolean, datetime, files |
Required_to_create | Whether the attribute is required or not for teammates. Boolean. Default value is false |
Required_to_create_for_contacts | Whether the attribute is required or not for contacts. Boolean. Default value is false |
Visible_on_create | Whether the attribute is visible or not to teammates. Default value is true |
Visible_to_contacts | Whether the attribute is visible or not to contacts. Default value is true |
Multiline | Whether the attribute allows multiple lines of text (applicable to string attributes). Boolean |
Allow_multiple_values | Whether the attribute allows multiple files to be attached to it (applicable to file attributes). Boolean |
Archived | Whether the ticket type attribute is archived or not. Boolean |
Supported Actions
Skyvia supports all the common actions for Intercom.