Intercom (version v1.*.*)

add_customer_to_conversation#

Parameters

conversation_id (required)#

Conversation ID

Type: string

$body#

Type: object

{
"user_id" : "string",
"admin_id" : "string",
"intercom_user_id" : "string",
"email" : "string",
"customer" : {
"user_id" : "string",
"intercom_user_id" : "string",
"email" : "string"
}
}

archive_user#

Archive a user. The archive action will not perform a 'hard' delete. If you want to permanently delete your user then you will need to use the permanent delete API.

Parameters

email#

The email you have defined for the user

Type: string

user_id#

The user id you have defined for the user

Type: string

convert_lead#

Leads can be converted to Users. This is done by passing both Lead and User identifiers. If the User exists, then the Lead will be merged into it, the Lead deleted and the User returned. If the User does not exist, the Lead will be converted to a User, with the User identifiers replacing it's Lead identifiers.

Parameters

$body#

Type: object

{
"contact" : {
"last_request_at" : "The time the Lead last recorded making a request",
"utm_campaign" : "Identifies a specific product promotion or strategic campaign",
"utm_medium" : "Identifies what type of link was used",
"created_at" : "The time the Lead was added to Intercom",
"avatar" : { },
"type" : "string",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"utm_term" : "Identifies search terms",
"referrer" : "The URL of the page the lead was last on",
"companies" : [ {
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
} ],
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"unsubscribed_from_emails" : "Whether the Lead is unsubscribed from emails",
"updated_at" : "The last time the Lead was updated",
"user_id" : "Automatically generated identifier for the Lead",
"phone" : "The phone number you have defined for the lead",
"location_data" : {
"country_code" : "Optional. An ISO 3166 country code",
"city_name" : "Optional. A city name",
"timezone" : "Optional. An ISO 8601 timezone",
"latitude" : "Optional. The latitude",
"country_name" : "Optional. The country name",
"continent_code" : "Optional. A continent code",
"region_name" : "Optional. A region name",
"type" : "string",
"postal_code" : "Optional. A postal code",
"longitude" : "Optional. The longitude"
},
"name" : "The name of the Lead",
"id" : "The Intercom defined id representing the Lead",
"email" : "The email you have defined for the Lead",
"utm_source" : "Identifies which site sent the traffic",
"utm_content" : "Identifies what specifically was clicked to bring the user to the site"
},
"user" : {
"utm_medium" : "Identifies what type of link was used",
"created_at" : "The time (in seconds) the user was added to Intercom",
"type" : "Value is 'user' or 'contact'",
"pseudonym" : "The pseudonym used if this user was previously a Lead (http://docs.intercom.io/Intercom-for-customer-communication/the-intercom-messenger)",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"companies" : [ {
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
} ],
"unsubscribed_from_emails" : "Whether the user is unsubscribed from emails",
"updated_at" : "The last time the user was updated",
"location_data" : {
"country_code" : "Optional. An ISO 3166 country code",
"city_name" : "Optional. A city name",
"timezone" : "Optional. An ISO 8601 timezone",
"latitude" : "Optional. The latitude",
"country_name" : "Optional. The country name",
"continent_code" : "Optional. A continent code",
"region_name" : "Optional. A region name",
"type" : "string",
"postal_code" : "Optional. A postal code",
"longitude" : "Optional. The longitude"
},
"id" : "The Intercom defined id representing the user",
"email" : "The email you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"utm_content" : "Identifies what specifically was clicked to bring the user to the site",
"signed_up_at" : "The time (in seconds) the user signed up",
"last_request_at" : "The time the user last recorded making a request",
"utm_campaign" : "Identifies a specific product promotion or strategic campaign",
"avatar" : { },
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"utm_term" : "Identifies search terms",
"referrer" : "The URL of the page the user was last on",
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"user_id" : "The user id you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"phone" : "The phone number of the user",
"session_count" : "How many sessions the user has recorded",
"name" : "The full name of the user",
"anonymous" : "Whether or not this is a Lead. Always false",
"utm_source" : "Identifies which site sent the traffic"
}
}

convert_visitor#

Visitors can be converted to Users. This is done by passing both Visitor and User identifiers and a type attribute set to 'user'. If the User exists, then the Visitor will be merged into it, the Visitor deleted and the User returned. If the User does not exist, the Visitor will be converted to a User, with the User identifiers replacing its Visitor identifiers. Visitors can be converted to Leads. This is done by passing Visitor identifiers and a type attribute set to 'lead'.

Parameters

$body#

Type: object

{
"visitor" : {
"last_request_at" : "The time the Lead last recorded making a request",
"created_at" : "The time the Visitor was added to Intercom",
"avatar" : {
"image_url" : "An avatar image URL. note: the image url needs to be https.",
"type" : "string"
},
"type" : "string",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"unsubscribed_from_emails" : "Whether the Visitor is unsubscribed from emails",
"updated_at" : "The last time the Visitor was updated",
"user_id" : "Automatically generated identifier for the Visitor",
"location_data" : {
"image_url" : "An avatar image URL. note: the image url needs to be https.",
"type" : "string"
},
"name" : "The name of the Visitor",
"id" : "The Intercom defined id representing the Visitor"
},
"type" : "string. Possible values: user | lead",
"user" : {
"utm_medium" : "Identifies what type of link was used",
"created_at" : "The time (in seconds) the user was added to Intercom",
"type" : "Value is 'user' or 'contact'",
"pseudonym" : "The pseudonym used if this user was previously a Lead (http://docs.intercom.io/Intercom-for-customer-communication/the-intercom-messenger)",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"companies" : [ {
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
} ],
"unsubscribed_from_emails" : "Whether the user is unsubscribed from emails",
"updated_at" : "The last time the user was updated",
"location_data" : {
"country_code" : "Optional. An ISO 3166 country code",
"city_name" : "Optional. A city name",
"timezone" : "Optional. An ISO 8601 timezone",
"latitude" : "Optional. The latitude",
"country_name" : "Optional. The country name",
"continent_code" : "Optional. A continent code",
"region_name" : "Optional. A region name",
"type" : "string",
"postal_code" : "Optional. A postal code",
"longitude" : "Optional. The longitude"
},
"id" : "The Intercom defined id representing the user",
"email" : "The email you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"utm_content" : "Identifies what specifically was clicked to bring the user to the site",
"signed_up_at" : "The time (in seconds) the user signed up",
"last_request_at" : "The time the user last recorded making a request",
"utm_campaign" : "Identifies a specific product promotion or strategic campaign",
"avatar" : { },
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"utm_term" : "Identifies search terms",
"referrer" : "The URL of the page the user was last on",
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"user_id" : "The user id you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"phone" : "The phone number of the user",
"session_count" : "How many sessions the user has recorded",
"name" : "The full name of the user",
"anonymous" : "Whether or not this is a Lead. Always false",
"utm_source" : "Identifies which site sent the traffic"
}
}

create_company#

Create or update a company. Companies are looked up via company_id. If not found via company_id, the new company will be created. If found, that company will be updated.

Parameters

$body#

Type: object

{
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
}

create_event#

Create an event.

Parameters

$body#

Type: object

{
"metadata" : "optional metadata about the event.",
"user_id" : "Your identifier for the user.",
"event_name" : "The name of the event that occurred. This is presented to your App's admins when filtering and creating segments - a good event name is typically a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.",
"created_at" : "The time the event occurred as a UTC Unix timestamp",
"id" : "Your identifier for a lead or a user.",
"email" : "An email address for your user. An email should only be used where your application uses email to uniquely identify users"
}

create_lead#

Create or update a lead

Parameters

$body#

Type: object

{
"last_request_at" : "The time the Lead last recorded making a request",
"utm_campaign" : "Identifies a specific product promotion or strategic campaign",
"utm_medium" : "Identifies what type of link was used",
"created_at" : "The time the Lead was added to Intercom",
"avatar" : { },
"type" : "string",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"utm_term" : "Identifies search terms",
"referrer" : "The URL of the page the lead was last on",
"companies" : [ {
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
} ],
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"unsubscribed_from_emails" : "Whether the Lead is unsubscribed from emails",
"updated_at" : "The last time the Lead was updated",
"user_id" : "Automatically generated identifier for the Lead",
"phone" : "The phone number you have defined for the lead",
"location_data" : {
"country_code" : "Optional. An ISO 3166 country code",
"city_name" : "Optional. A city name",
"timezone" : "Optional. An ISO 8601 timezone",
"latitude" : "Optional. The latitude",
"country_name" : "Optional. The country name",
"continent_code" : "Optional. A continent code",
"region_name" : "Optional. A region name",
"type" : "string",
"postal_code" : "Optional. A postal code",
"longitude" : "Optional. The longitude"
},
"name" : "The name of the Lead",
"id" : "The Intercom defined id representing the Lead",
"email" : "The email you have defined for the Lead",
"utm_source" : "Identifies which site sent the traffic",
"utm_content" : "Identifies what specifically was clicked to bring the user to the site"
}

create_note#

Create a note.

Parameters

$body#

Type: object

{
"author" : {
"team_ids" : [ "string" ],
"name" : "The name of the admin",
"away_mode_enabled" : "Identifies if this admin is currently set in away mode.",
"away_mode_reassign" : "Identifies if this admin is set to automatically reassign new conversations to the apps default inbox.",
"id" : "The id of the admin",
"avatar" : "Image for the associated team or teammate",
"type" : "string",
"has_inbox_seat" : "Identifies if a teammate has a paid inbox seat to restrict/allow features that require them",
"job_title" : "The job title of the admin",
"email" : "The email address of the admin"
},
"created_at" : "The time the note was created",
"id" : "The id representing the note",
"type" : "string",
"body" : "The body text of the note.",
"user" : {
"utm_medium" : "Identifies what type of link was used",
"created_at" : "The time (in seconds) the user was added to Intercom",
"type" : "Value is 'user' or 'contact'",
"pseudonym" : "The pseudonym used if this user was previously a Lead (http://docs.intercom.io/Intercom-for-customer-communication/the-intercom-messenger)",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"companies" : [ {
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
} ],
"unsubscribed_from_emails" : "Whether the user is unsubscribed from emails",
"updated_at" : "The last time the user was updated",
"location_data" : {
"country_code" : "Optional. An ISO 3166 country code",
"city_name" : "Optional. A city name",
"timezone" : "Optional. An ISO 8601 timezone",
"latitude" : "Optional. The latitude",
"country_name" : "Optional. The country name",
"continent_code" : "Optional. A continent code",
"region_name" : "Optional. A region name",
"type" : "string",
"postal_code" : "Optional. A postal code",
"longitude" : "Optional. The longitude"
},
"id" : "The Intercom defined id representing the user",
"email" : "The email you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"utm_content" : "Identifies what specifically was clicked to bring the user to the site",
"signed_up_at" : "The time (in seconds) the user signed up",
"last_request_at" : "The time the user last recorded making a request",
"utm_campaign" : "Identifies a specific product promotion or strategic campaign",
"avatar" : { },
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"utm_term" : "Identifies search terms",
"referrer" : "The URL of the page the user was last on",
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"user_id" : "The user id you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"phone" : "The phone number of the user",
"session_count" : "How many sessions the user has recorded",
"name" : "The full name of the user",
"anonymous" : "Whether or not this is a Lead. Always false",
"utm_source" : "Identifies which site sent the traffic"
}
}

create_tag#

Create a tag by sending a tag object with a name. The tag name may contain whitespace and punctuation.
If the same tag name is sent multiple times, only one tag will be created for that name - this lets you avoid checking if a tag exists first.
Tag names are case insensitive - 'MyTag' and 'mytag' will result in a single tag being created.
Update a tag by submitting a tag object with the id of the tag to update and a new name for the tag. A successful request will update the name value for that tag and return the updated tag in the response.
Users can be tagged by supplying a users array. The array contains objects identifying users by their id, email or user_id fields.
Companies can be tagged by sending a companies array. The array contains objects identifying companies by their id or company_id fields.
Contacts/Leads can be tagged by supplying a users array. The array contains objects identifying leads by their id fields.
Companies and user tag directives cannot be mixed in the same request - a request will not process both company and user arrays.
We recommend tagging no more than 50 users at a time as larger amounts could result in a timeout.
To untag a company or user, each user or company object sent in the tagging request can be submitted with an untag field whose value is set to true.
Objects submitted with an untag field can be mixed with other objects being tagged. This allows tag and untag operations to be performed in a single request.

Parameters

$body#

Type: object

{
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
}

create_update_user#

Create a new user or update an existing user.

Parameters

$body#

Type: object

{
"utm_medium" : "Identifies what type of link was used",
"created_at" : "The time (in seconds) the user was added to Intercom",
"type" : "Value is 'user' or 'contact'",
"pseudonym" : "The pseudonym used if this user was previously a Lead (http://docs.intercom.io/Intercom-for-customer-communication/the-intercom-messenger)",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"companies" : [ {
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
} ],
"unsubscribed_from_emails" : "Whether the user is unsubscribed from emails",
"updated_at" : "The last time the user was updated",
"location_data" : {
"country_code" : "Optional. An ISO 3166 country code",
"city_name" : "Optional. A city name",
"timezone" : "Optional. An ISO 8601 timezone",
"latitude" : "Optional. The latitude",
"country_name" : "Optional. The country name",
"continent_code" : "Optional. A continent code",
"region_name" : "Optional. A region name",
"type" : "string",
"postal_code" : "Optional. A postal code",
"longitude" : "Optional. The longitude"
},
"id" : "The Intercom defined id representing the user",
"email" : "The email you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"utm_content" : "Identifies what specifically was clicked to bring the user to the site",
"signed_up_at" : "The time (in seconds) the user signed up",
"last_request_at" : "The time the user last recorded making a request",
"utm_campaign" : "Identifies a specific product promotion or strategic campaign",
"avatar" : { },
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"utm_term" : "Identifies search terms",
"referrer" : "The URL of the page the user was last on",
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"user_id" : "The user id you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"phone" : "The phone number of the user",
"session_count" : "How many sessions the user has recorded",
"name" : "The full name of the user",
"anonymous" : "Whether or not this is a Lead. Always false",
"utm_source" : "Identifies which site sent the traffic"
}

create_user#

Create a new user or update an existing user.

Parameters

$body#

Type: object

{
"utm_medium" : "Identifies what type of link was used",
"created_at" : "The time (in seconds) the user was added to Intercom",
"type" : "Value is 'user' or 'contact'",
"pseudonym" : "The pseudonym used if this user was previously a Lead (http://docs.intercom.io/Intercom-for-customer-communication/the-intercom-messenger)",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"companies" : [ {
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
} ],
"unsubscribed_from_emails" : "Whether the user is unsubscribed from emails",
"updated_at" : "The last time the user was updated",
"location_data" : {
"country_code" : "Optional. An ISO 3166 country code",
"city_name" : "Optional. A city name",
"timezone" : "Optional. An ISO 8601 timezone",
"latitude" : "Optional. The latitude",
"country_name" : "Optional. The country name",
"continent_code" : "Optional. A continent code",
"region_name" : "Optional. A region name",
"type" : "string",
"postal_code" : "Optional. A postal code",
"longitude" : "Optional. The longitude"
},
"id" : "The Intercom defined id representing the user",
"email" : "The email you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"utm_content" : "Identifies what specifically was clicked to bring the user to the site",
"signed_up_at" : "The time (in seconds) the user signed up",
"last_request_at" : "The time the user last recorded making a request",
"utm_campaign" : "Identifies a specific product promotion or strategic campaign",
"avatar" : { },
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"utm_term" : "Identifies search terms",
"referrer" : "The URL of the page the user was last on",
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"user_id" : "The user id you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"phone" : "The phone number of the user",
"session_count" : "How many sessions the user has recorded",
"name" : "The full name of the user",
"anonymous" : "Whether or not this is a Lead. Always false",
"utm_source" : "Identifies which site sent the traffic"
}

delete_company#

Delete a company

Parameters

user_id#

User ID

Type: string

delete_company_by_id#

Delete a company

Parameters

id (required)#

Company ID

Type: string

delete_customer_to_conversation#

Parameters

conversation_id (required)#

Conversation ID

Type: string

id (required)#

Customer ID

Type: string

delete_lead#

Delete a lead

Parameters

user_id#

User ID

Type: string

delete_lead_by_id#

Delete a lead

Parameters

id (required)#

Lead ID

Type: string

delete_tag#

Delete a tag

Parameters

id (required)#

Tag ID

Type: string

delete_visitor#

Delete a visitor

Parameters

user_id#

User ID

Type: string

delete_visitor_by_id#

Delete a visitor

Parameters

id (required)#

Visitor ID

Type: string

find_user#

Find an individual user or many users.

Parameters

email#

The email you have defined for the user

Type: string

user_id#

The user id you have defined for the user

Type: string

get_admin#

Get a particular admin

Parameters

id (required)#

Admin ID

Type: string

get_company#

Get a company

Parameters

id (required)#

Company ID

Type: string

get_conversation#

Get a single conversation.

Parameters

id (required)#

Conversation ID

Type: string

display_as#

Set to plaintext to retrieve conversation messages in plain text

Type: string

get_count#

Parameters

count#

Type: number

type#

Type: string

get_current_admin_and_app#

This operation has no parameters

get_lead#

Get a lead

Parameters

id (required)#

Lead ID

Type: string

get_note#

Get a note.

Parameters

id (required)#

Note ID

Type: string

get_segment#

Get a segment for an App.

Parameters

id (required)#

Segment ID

Type: string

include_count#

include counts in your segment model in the response

Type: boolean

get_team#

Get a particular team

Parameters

id (required)#

Team ID

Type: string

get_user#

Get a user

Parameters

id (required)#

System-assigned user ID

Type: string

get_visitor#

Get a visitor

Parameters

id (required)#

Visitor ID

Type: string

list_activity_logs_for_admin#

Get a log of activities by all admins in an app.

Parameters

created_at_after (required)#

The start date that you request data for. It must be formatted as a UNIX timestamp.

Type: string

created_at_before#

The end date that you request data for. It must be formatted as a UNIX timestamp.

Type: string

resultsPath#

Type: STRING

list_admins#

List an App's admins.

Parameters

resultsPath#

Type: STRING

list_companies#

List Companies (or list users for company)

Parameters

company_id#

Company ID

Type: string

name#

Company name

Type: string

order#

Type: string

Potential values: asc, desc

resultsPath#

Type: STRING

segment_id#

Type: number

tag_id#

Type: number

type#

Type: string

list_conversations#

List conversations

Parameters

admin_id#

The id for the Admin whose conversations to retrieve. To retrieve all unassigned conversations, set the id to be 'nobody'.

Type: string

display_as#

Set to plaintext to retrieve conversation messages in plain text

Type: string

email#

Type: string

intercom_user_id#

Type: string

open#

when true fetches just open conversations, when false just closed conversations

Type: boolean

order#

Type: string

Potential values: asc, desc

resultsPath#

Type: STRING

sort#

Type: string

Potential values: created_at, updated_at, waiting_since

type#

The type of entity to query for.

Type: string

Potential values: admin, user

unread#

when true fetches just unread conversations

Type: boolean

user_id#

Type: string

list_data_attributes_for_companies#

List all the company data attributes for your app.

Parameters

include_archived#

Include archived attributes in the list. By default only non-archived data attributes are returned.

Type: boolean

list_data_attributes_for_customers#

List all data attributes for customers. Customer attributes describe attributes belonging to users, leads and visitors. All 3 models have the same data attributes.

Parameters

include_archived#

Include archived attributes in the list. By default only non-archived data attributes are returned.

Type: boolean

list_events_for_user#

List events for a user

Parameters

type (required)#

Type: string

email#

Type: string

intercom_user_id#

Type: string

resultsPath#

Type: STRING

summary#

When set to true, event counts are returned grouped by event name.

Type: boolean

user_id#

Type: string

list_leads#

List Leads

Parameters

email#

Email address

Type: string

phone#

Phone number

Type: string

resultsPath#

Type: STRING

user_id#

User ID

Type: string

list_notes_for_user#

List notes for a user

Parameters

email#

Type: string

id#

Type: string

resultsPath#

Type: STRING

user_id#

Type: string

list_segments#

Get a list of segments for an App.

Parameters

include_count#

include counts in your segment model in the response

Type: boolean

resultsPath#

Type: STRING

type#

if "company", list company segments, otherwise list user segments.

Type: string

list_tags#

This operation has no parameters

list_teams#

Get a list of teams for an App.

Parameters

resultsPath#

Type: STRING

list_users#

Find an individual user or many users.

Parameters

created_since#

Limits results to users that were created in that last number of days.

Type: number

order#

Returns the users in ascending or descending order.

Type: string

Potential values: asc, desc

resultsPath#

Type: STRING

sort#

What field to sort the results by.

Type: string

Potential values: created_at, last_request_at, signed_up_at, updated_at

list_users_for_company#

List users for a company

Parameters

id (required)#

Company ID

Type: string

resultsPath#

Type: STRING

mark_conversation_as_read#

Mark a conversation within Intercom as read.

Parameters

id (required)#

Conversation ID

Type: string

$body#

Type: object

{
"read" : "boolean"
}

post_message#

Parameters

$body#

Type: object

{
"template" : "The style of the outgoing message. Only valid for email messages. Possible values plain or personal.",
"subject" : "Optional unless message_type is email. The title of the email.",
"message_type" : "The kind of message being created.",
"from" : {
"team_ids" : [ "string" ],
"name" : "The name of the admin",
"away_mode_enabled" : "Identifies if this admin is currently set in away mode.",
"away_mode_reassign" : "Identifies if this admin is set to automatically reassign new conversations to the apps default inbox.",
"id" : "The id of the admin",
"avatar" : "Image for the associated team or teammate",
"type" : "string",
"has_inbox_seat" : "Identifies if a teammate has a paid inbox seat to restrict/allow features that require them",
"job_title" : "The job title of the admin",
"email" : "The email address of the admin"
},
"to" : {
"utm_medium" : "Identifies what type of link was used",
"created_at" : "The time (in seconds) the user was added to Intercom",
"type" : "Value is 'user' or 'contact'",
"pseudonym" : "The pseudonym used if this user was previously a Lead (http://docs.intercom.io/Intercom-for-customer-communication/the-intercom-messenger)",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"companies" : [ {
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
} ],
"unsubscribed_from_emails" : "Whether the user is unsubscribed from emails",
"updated_at" : "The last time the user was updated",
"location_data" : {
"country_code" : "Optional. An ISO 3166 country code",
"city_name" : "Optional. A city name",
"timezone" : "Optional. An ISO 8601 timezone",
"latitude" : "Optional. The latitude",
"country_name" : "Optional. The country name",
"continent_code" : "Optional. A continent code",
"region_name" : "Optional. A region name",
"type" : "string",
"postal_code" : "Optional. A postal code",
"longitude" : "Optional. The longitude"
},
"id" : "The Intercom defined id representing the user",
"email" : "The email you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"utm_content" : "Identifies what specifically was clicked to bring the user to the site",
"signed_up_at" : "The time (in seconds) the user signed up",
"last_request_at" : "The time the user last recorded making a request",
"utm_campaign" : "Identifies a specific product promotion or strategic campaign",
"avatar" : { },
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"utm_term" : "Identifies search terms",
"referrer" : "The URL of the page the user was last on",
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"user_id" : "The user id you have defined for the user. (Max limit of 255 UTF-8 characters, and should not have trailing or leading spaces)",
"phone" : "The phone number of the user",
"session_count" : "How many sessions the user has recorded",
"name" : "The full name of the user",
"anonymous" : "Whether or not this is a Lead. Always false",
"utm_source" : "Identifies which site sent the traffic"
},
"body" : "The content of the message. HTML or plaintext."
}

post_reply#

Parameters

conversation_id (required)#

Conversation ID

Type: string

$body#

Type: object

{
"attachment_urls" : [ "string" ],
"user_id" : "string",
"admin_id" : "string",
"message_type" : "string. Possible values: comment | assignment | open | close | note",
"intercom_user_id" : "string",
"type" : "string. Possible values: user | admin",
"body" : "The text body of the comment",
"email" : "string",
"snooze_until" : "The time in Unix time (i.e. seconds) you want the conversation to reopen",
"assignee_id" : "string"
}

post_reply_to_last_conversation#

Parameters

$body#

Type: object

{
"attachment_urls" : [ "string" ],
"user_id" : "string",
"admin_id" : "string",
"message_type" : "string. Possible values: comment | assignment | open | close | note",
"intercom_user_id" : "string",
"type" : "string. Possible values: user | admin",
"body" : "The text body of the comment",
"email" : "string",
"snooze_until" : "The time in Unix time (i.e. seconds) you want the conversation to reopen",
"assignee_id" : "string"
}

scroll_companies#

Scroll over all companies. The List Companies
functionality does not work well for huge datasets, and can result in errors
and performance problems when paging deeply. The Scroll API provides an efficient
mechanism for iterating over all users in a dataset. Each app can only
have 1 scroll open at a time. You''ll get an error message if you try to have
more than one open per app. If the scroll isn''t used for 1 minute, it
expires and calls with that scroll param will fail. If the end of the scroll
is reached, "companies" will be empty and the scroll parameter will expire. Since scroll is often used on large datasets network errors such as
timeouts can be encountered. When this occurs you will need to restart your
scroll query as it is not possible to continue from a specific point when
using scroll.When this occurs you will see a HTTP 500 error with the following
message: “Request failed due to an internal network error. Please restart
the scroll operation.”

Parameters

scroll#

scroll parameter

Type: string

scroll_leads#

Scroll over all leads. The List Leads
functionality does not work well for huge datasets, and can result in errors
and performance problems when paging deeply. The Scroll API provides an efficient
mechanism for iterating over all users in a dataset. Each app can only
have 1 scroll open at a time. You''ll get an error message if you try to have
more than one open per app. If the scroll isn''t used for 1 minute, it
expires and calls with that scroll param will fail. If the end of the scroll
is reached, "leads" will be empty and the scroll parameter will expire. Since scroll is often used on large datasets network errors such as
timeouts can be encountered. When this occurs you will need to restart your
scroll query as it is not possible to continue from a specific point when
using scroll.When this occurs you will see a HTTP 500 error with the following
message: “Request failed due to an internal network error. Please restart
the scroll operation.”

Parameters

scroll#

scroll parameter

Type: string

scroll_users#

Scroll over all users. The List Users
functionality does not work well for huge datasets, and can result in errors
and performance problems when paging deeply. The Scroll API provides an efficient
mechanism for iterating over all users in a dataset. Each app can only
have 1 scroll open at a time. You''ll get an error message if you try to have
more than one open per app. If the scroll isn''t used for 1 minute, it
expires and calls with that scroll param will fail. If the end of the scroll
is reached, "users" will be empty and the scroll parameter will expire. Since scroll is often used on large datasets network errors such as
timeouts can be encountered. When this occurs you will need to restart your
scroll query as it is not possible to continue from a specific point when
using scroll.When this occurs you will see a HTTP 500 error with the following
message: “Request failed due to an internal network error. Please restart
the scroll operation.”

Parameters

scroll#

scroll parameter

Type: string

set_admin_away#

If you want to set an admin in away mode you can do this via a PUT request. You can also choose whether you want conversation replies to be automatically reassigned to your default inbox if you like.

Parameters

id (required)#

Admin ID

Type: string

away_mode_enabled#

Set to 'true' to change the status of the admin to away.

Type: boolean

away_mode_reassign#

Set to 'true' to assign any new conversation replies to your default inbox.

Type: boolean

update_company#

Create or update a company. Companies are looked up via company_id. If not found via company_id, the new company will be created. If found, that company will be updated.

Parameters

$body#

Type: object

{
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
}

update_lead#

Create or update a lead

Parameters

$body#

Type: object

{
"last_request_at" : "The time the Lead last recorded making a request",
"utm_campaign" : "Identifies a specific product promotion or strategic campaign",
"utm_medium" : "Identifies what type of link was used",
"created_at" : "The time the Lead was added to Intercom",
"avatar" : { },
"type" : "string",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"utm_term" : "Identifies search terms",
"referrer" : "The URL of the page the lead was last on",
"companies" : [ {
"website" : "The URL for the company website",
"company_id" : "The company id you have defined for the company",
"last_request_at" : "The time the company last recorded making a request",
"created_at" : "The time the company was added to Intercom",
"industry" : "The industry that the company operates in",
"type" : "string",
"custom_attributes" : { },
"monthly_spend" : "How much revenue the company generates for your business",
"updated_at" : "The last time the company was updated",
"user_count" : "The number of users in the company",
"size" : "The number of employees in the company",
"session_count" : "How many sessions the company has recorded",
"name" : "The name of the company",
"id" : "The Intercom defined id representing the company",
"remote_created_at" : "The time the company was created by you",
"plan*" : "The name of the plan you have associated with the company."
} ],
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"unsubscribed_from_emails" : "Whether the Lead is unsubscribed from emails",
"updated_at" : "The last time the Lead was updated",
"user_id" : "Automatically generated identifier for the Lead",
"phone" : "The phone number you have defined for the lead",
"location_data" : {
"country_code" : "Optional. An ISO 3166 country code",
"city_name" : "Optional. A city name",
"timezone" : "Optional. An ISO 8601 timezone",
"latitude" : "Optional. The latitude",
"country_name" : "Optional. The country name",
"continent_code" : "Optional. A continent code",
"region_name" : "Optional. A region name",
"type" : "string",
"postal_code" : "Optional. A postal code",
"longitude" : "Optional. The longitude"
},
"name" : "The name of the Lead",
"id" : "The Intercom defined id representing the Lead",
"email" : "The email you have defined for the Lead",
"utm_source" : "Identifies which site sent the traffic",
"utm_content" : "Identifies what specifically was clicked to bring the user to the site"
}

update_tag#

Create a tag by sending a tag object with a name. The tag name may contain whitespace and punctuation.
If the same tag name is sent multiple times, only one tag will be created for that name - this lets you avoid checking if a tag exists first.
Tag names are case insensitive - 'MyTag' and 'mytag' will result in a single tag being created.
Update a tag by submitting a tag object with the id of the tag to update and a new name for the tag. A successful request will update the name value for that tag and return the updated tag in the response.
Users can be tagged by supplying a users array. The array contains objects identifying users by their id, email or user_id fields.
Companies can be tagged by sending a companies array. The array contains objects identifying companies by their id or company_id fields.
Contacts/Leads can be tagged by supplying a users array. The array contains objects identifying leads by their id fields.
Companies and user tag directives cannot be mixed in the same request - a request will not process both company and user arrays.
We recommend tagging no more than 50 users at a time as larger amounts could result in a timeout.
To untag a company or user, each user or company object sent in the tagging request can be submitted with an untag field whose value is set to true.
Objects submitted with an untag field can be mixed with other objects being tagged. This allows tag and untag operations to be performed in a single request.

Parameters

$body#

Type: object

{
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
}

update_visitor#

Update a visitor. Passing identifiers (user_id or id) in the body will result in an update of an existing Visitor.

Parameters

$body#

Type: object

{
"last_request_at" : "The time the Lead last recorded making a request",
"created_at" : "The time the Visitor was added to Intercom",
"avatar" : {
"image_url" : "An avatar image URL. note: the image url needs to be https.",
"type" : "string"
},
"type" : "string",
"custom_attributes" : { },
"segments" : [ {
"updated_at" : "The time the segment was updated",
"person_type" : "Type of the record: user or lead.",
"name" : "The name of the segment",
"count" : "The number of items in the user segment. It's returned when `include_count=true` is included in the request.",
"created_at" : "The time the segment was created",
"id" : "The id representing the segment",
"type" : "string"
} ],
"tags" : [ {
"name" : "The name of the tag",
"id" : "The id of the tag",
"type" : "string"
} ],
"social_profiles" : [ {
"name" : "The name of the service (e.g., twitter, facebook)",
"id" : "Optional. User ID on the service",
"type" : "string",
"url" : "The user homepage on the service",
"username" : "User name or handle on the service"
} ],
"unsubscribed_from_emails" : "Whether the Visitor is unsubscribed from emails",
"updated_at" : "The last time the Visitor was updated",
"user_id" : "Automatically generated identifier for the Visitor",
"location_data" : {
"image_url" : "An avatar image URL. note: the image url needs to be https.",
"type" : "string"
},
"name" : "The name of the Visitor",
"id" : "The Intercom defined id representing the Visitor"
}