# Run Assignment Rules on a conversation {% admonition type="danger" name="Deprecation of Run Assignment Rules" %} Run assignment rules is now deprecated in version 2.12 and future versions and will be permanently removed on December 31, 2026. After this date, any requests made to this endpoint will fail. {% /admonition %} You can let a conversation be automatically assigned following assignment rules. {% admonition type="warning" name="When using workflows" %} It is not possible to use this endpoint with Workflows. {% /admonition %} Endpoint: POST /conversations/{id}/run_assignment_rules Version: 2.9 Security: bearerAuth ## Header parameters: - `Intercom-Version` (string) Intercom API version.By default, it's equal to the version set in the app package. Enum: "1.0", "1.1", "1.2", "1.3", "1.4", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "Unstable" ## Path parameters: - `id` (string, required) The identifier for the conversation as given by Intercom. Example: "123" ## Response 200 fields (application/json): - `type` (string) Always conversation. Example: "conversation" - `id` (string) The id representing the conversation. Example: "1295" - `title` (string,null) The title given to the conversation. Example: "Conversation Title" - `created_at` (integer) The time the conversation was created. Example: 1663597223 - `updated_at` (integer) The last time the conversation was updated. Example: 1663597260 - `waiting_since` (integer,null) The last time a Contact responded to an Admin. In other words, the time a customer started waiting for a response. Set to null if last reply is from an Admin. Example: 1663597260 - `snoozed_until` (integer,null) If set this is the time in the future when this conversation will be marked as open. i.e. it will be in a snoozed state until this time. i.e. it will be in a snoozed state until this time. Example: 1663597260 - `open` (boolean) Indicates whether a conversation is open (true) or closed (false). Example: true - `state` (string) Can be set to "open", "closed" or "snoozed". Enum: "open", "closed", "snoozed" - `read` (boolean) Indicates whether a conversation has been read. Example: true - `priority` (string) If marked as priority, it will return priority or else not_priority. Enum: "priority", "not_priority" - `admin_assignee_id` (integer,null) The id of the admin assigned to the conversation. If it's not assigned to an admin it will return null. - `team_assignee_id` (string,null) The id of the team assigned to the conversation. If it's not assigned to a team it will return null. Example: "5017691" - `tags` (object) A list of tags objects associated with a conversation - `tags.type` (string) The type of the object Enum: "tag.list" - `tags.tags` (array) A list of tags objects associated with the conversation. - `tags.tags.type` (string) value is "tag" Example: "tag" - `tags.tags.id` (string) The id of the tag Example: "123456" - `tags.tags.name` (string) The name of the tag Example: "Test tag" - `tags.tags.applied_at` (integer) The time when the tag was applied to the object Example: 1663597223 - `tags.tags.applied_by` (object) reference to another object - `tags.tags.applied_by.type` (string) Example: "contact" - `tags.tags.applied_by.id` (string,null) Example: "1a2b3c" - `conversation_rating` (object,null) The Conversation Rating object which contains information on the rating and/or remark added by a Contact and the Admin assigned to the conversation. - `conversation_rating.rating` (integer) The rating, between 1 and 5, for the conversation. Example: 5 - `conversation_rating.remark` (string) An optional field to add a remark to correspond to the number rating - `conversation_rating.created_at` (integer) The time the rating was requested in the conversation being rated. Example: 1671028894 - `conversation_rating.contact` (object) reference to contact object - `conversation_rating.contact.type` (string) always contact Enum: "contact" - `conversation_rating.contact.id` (string) The unique identifier for the contact which is given by Intercom. Example: "5ba682d23d7cf92bef87bfd4" - `conversation_rating.contact.external_id` (string,null) The unique identifier for the contact which is provided by the Client. Example: "f3b87a2e09d514c6c2e79b9a" - `conversation_rating.teammate` (object) reference to another object - `source` (object) The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated. - `source.type` (string) This includes conversation, email, facebook, instagram, phone_call, phone_switch, push, sms, twitter and whatsapp. Enum: "conversation", "email", "facebook", "instagram", "phone_call", "phone_switch", "push", "sms", "twitter", "whatsapp" - `source.id` (string) The id representing the message. Example: "3" - `source.delivered_as` (string) The conversation's initiation type. Possible values are customer_initiated, campaigns_initiated (legacy campaigns), operator_initiated (Custom bot), automated (Series and other outbounds with dynamic audience message) and admin_initiated (fixed audience message, ticket initiated by an admin, group email). Example: "operator_initiated" - `source.subject` (string) Optional. The message subject. For Twitter, this will show a generic message regarding why the subject is obscured. - `source.body` (string) The message body, which may contain HTML. For Twitter, this will show a generic message regarding why the body is obscured. Example: "

Hey there!

" - `source.author` (object) The object who initiated the conversation, which can be a Contact, Admin or Team. Bots and campaigns send messages on behalf of Admins or Teams. For Twitter, this will be blank. - `source.author.type` (string) The type of the author Example: "admin" - `source.author.id` (string) The id of the author Example: "274" - `source.author.name` (string) The name of the author Example: "Operator" - `source.author.email` (string) The email of the author Example: "operator+abcd1234@intercom.io" - `source.attachments` (array) A list of attachments for the part. - `source.attachments.type` (string) The type of attachment Example: "upload" - `source.attachments.name` (string) The name of the attachment Example: "example.png" - `source.attachments.url` (string) The URL of the attachment Example: "https://picsum.photos/200/300" - `source.attachments.content_type` (string) The content type of the attachment Example: "image/png" - `source.attachments.filesize` (integer) The size of the attachment Example: 100 - `source.attachments.width` (integer) The width of the attachment Example: 100 - `source.attachments.height` (integer) The height of the attachment Example: 100 - `source.url` (string,null) The URL where the conversation was started. For Twitter, Email, and Bots, this will be blank. - `source.redacted` (boolean) Whether or not the source message has been redacted. Only applicable for contact initiated messages. - `contacts` (object) The list of contacts (users or leads) involved in this conversation. This will only contain one customer unless more were added via the group conversation feature. - `teammates` (object,null) The list of teammates who participated in the conversation (wrote at least one conversation part). - `teammates.type` (string) The type of the object - . Example: "admin.list" - `first_contact_reply` (object,null) An object containing information on the first users message. For a contact initiated message this will represent the users original message. - `first_contact_reply.created_at` (integer) Example: 1663597223 - `first_contact_reply.url` (string,null) Example: "https://developers.intercom.com/" - `sla_applied` (object,null) The SLA Applied object contains the details for which SLA has been applied to this conversation. Important: if there are any canceled sla_events for the conversation - meaning an SLA has been manually removed from a conversation, the sla_status will always be returned as null. - `sla_applied.type` (string) object type Example: "conversation_sla_summary" - `sla_applied.sla_name` (string) The name of the SLA as given by the teammate when it was created. - `sla_applied.sla_status` (string) SLA statuses: - : If there’s at least one hit event in the underlying sla_events table, and no “missed” or “canceled” events for the conversation. - : If there are any missed sla_events for the conversation and no canceled events. If there’s even a single missed sla event, the status will always be missed. A missed status is not applied when the SLA expires, only the next time a teammate replies. - : An SLA has been applied to a conversation, but has not yet been fulfilled. SLA status is active only if there are no “hit, “missed”, or “canceled” events. Enum: "hit", "missed", "cancelled", "active" - `statistics` (object,null) A Statistics object containing all information required for reporting, with timestamps and calculated metrics. - `statistics.time_to_assignment` (integer) Duration until last assignment before first admin reply. In seconds. Example: 2310 - `statistics.time_to_admin_reply` (integer) Duration until first admin reply. Subtracts out of business hours. In seconds. Example: 2310 - `statistics.time_to_first_close` (integer) Duration until conversation was closed first time. Subtracts out of business hours. In seconds. Example: 2310 - `statistics.time_to_last_close` (integer) Duration until conversation was closed last time. Subtracts out of business hours. In seconds. Example: 2310 - `statistics.median_time_to_reply` (integer) Median based on all admin replies after a contact reply. Subtracts out of business hours. In seconds. Example: 2310 - `statistics.first_contact_reply_at` (integer) Time of first text conversation part from a contact. Example: 1663597233 - `statistics.first_assignment_at` (integer) Time of first assignment after first_contact_reply_at. Example: 1663597233 - `statistics.first_admin_reply_at` (integer) Time of first admin reply after first_contact_reply_at. Example: 1663597233 - `statistics.first_close_at` (integer) Time of first close after first_contact_reply_at. Example: 1663597233 - `statistics.last_assignment_at` (integer) Time of last assignment after first_contact_reply_at. Example: 1663597233 - `statistics.last_assignment_admin_reply_at` (integer) Time of first admin reply since most recent assignment. Example: 1663597233 - `statistics.last_contact_reply_at` (integer) Time of the last conversation part from a contact. Example: 1663597233 - `statistics.last_admin_reply_at` (integer) Time of the last conversation part from an admin. Example: 1663597233 - `statistics.last_close_at` (integer) Time of the last conversation close. Example: 1663597233 - `statistics.last_closed_by_id` (string) The last admin who closed the conversation. Returns a reference to an Admin object. Example: "c3po" - `statistics.count_reopens` (integer) Number of reopens after first_contact_reply_at. Example: 1 - `statistics.count_assignments` (integer) Number of assignments after first_contact_reply_at. Example: 1 - `statistics.count_conversation_parts` (integer) Total number of conversation parts. Example: 1 - `conversation_parts` (object) A list of Conversation Part objects for each part message in the conversation. This is only returned when Retrieving a Conversation, and ignored when Listing all Conversations. There is a limit of 500 parts. - `conversation_parts.total_count` (integer) Example: 2 ## Response 401 fields (application/json): - `type` (string, required) The type is error.list Example: "error.list" - `request_id` (string,null) Example: "f93ecfa8-d08a-4325-8694-89aeb89c8f85" - `errors` (array, required) An array of one or more error objects - `errors.code` (string, required) A string indicating the kind of error, used to further qualify the HTTP response code Example: "unauthorized" - `errors.message` (string,null) Optional. Human readable description of the error. Example: "Access Token Invalid" - `errors.field` (string,null) Optional. Used to identify a particular field or query parameter that was in error. Example: "email" ## Response 403 fields (application/json): - `type` (string, required) The type is error.list Example: "error.list" - `request_id` (string,null) Example: "f93ecfa8-d08a-4325-8694-89aeb89c8f85" - `errors` (array, required) An array of one or more error objects - `errors.code` (string, required) A string indicating the kind of error, used to further qualify the HTTP response code Example: "unauthorized" - `errors.message` (string,null) Optional. Human readable description of the error. Example: "Access Token Invalid" - `errors.field` (string,null) Optional. Used to identify a particular field or query parameter that was in error. Example: "email" ## Response 404 fields (application/json): - `type` (string, required) The type is error.list Example: "error.list" - `request_id` (string,null) Example: "f93ecfa8-d08a-4325-8694-89aeb89c8f85" - `errors` (array, required) An array of one or more error objects - `errors.code` (string, required) A string indicating the kind of error, used to further qualify the HTTP response code Example: "unauthorized" - `errors.message` (string,null) Optional. Human readable description of the error. Example: "Access Token Invalid" - `errors.field` (string,null) Optional. Used to identify a particular field or query parameter that was in error. Example: "email"