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:

  1. Click Sign In with Intercom in the Connection Editor.

    Connection Editor window

  2. Enter the email and password in the opened window when signing up to Intercom.

    Connection Editor window

  3. Click Authorize access.

    Grant Acccess

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.