# Reply to a conversation

You can reply to a conversation with a message from an admin or on behalf of a contact, or with a note for admins.
By default, bot or Operator replies to an inbound email conversation aren't sent to your customer. The reply is stored as an unnotifiable bot comment, and no `seen` receipt is generated until an email is actually delivered.
To send these replies as outbound emails, reach out to your accounts team to enable the email-reply feature flag for your workspace.

Endpoint: POST /conversations/{id}/reply
Version: Preview
Security: bearerAuth

## Path parameters:

  - `id` (string, required)
    The Intercom provisioned identifier for the conversation or the string "last" to reply to the last part of the conversation

## Header parameters:

  - `Intercom-Version` (string)

## Request fields (application/json):

  - `message_type` (string, required)
    Enum: "comment"

  - `type` (string, required)
    Enum: "user"

  - `body` (string, required)
    The text body of the comment.

  - `created_at` (integer)
    The time the reply was created. If not provided, the current time will be used.
    Example: 1590000000

  - `attachment_urls` (array)
    A list of image URLs that will be added as attachments. You can include up to 10 URLs.

  - `reply_options` (array)
    The quick reply selection the contact wishes to respond with. These map to buttons displayed in the Messenger UI if sent by a bot, or the reply options sent by an Admin via the API.

  - `reply_options.text` (string, required)
    The text of the chosen reply option.

  - `reply_options.uuid` (string, required)
    The unique identifier for the quick reply option selected.

  - `body` (string)
    The text body of the reply. Notes accept some HTML formatting. Must be present for comment and note message types.
    Example: Hello there!

  - `admin_id` (string, required)
    The id of the admin who is authoring the comment.
    Example: 3156780

  - `reply_options` (array)
    The quick reply options to display to the end user. Must be present for quick_reply message types.

  - `reply_options.text` (string, required)
    The text to display in this quick reply option.

  - `reply_options.uuid` (string, required)
    A unique identifier for this quick reply option. This value will be available within the metadata of the comment conversation part that is created when a user clicks on this reply option.

  - `attachment_files` (array)
    A list of files that will be added as attachments. You can include up to 10 files

  - `attachment_files.content_type` (string)
    The content type of the file
    Example: application/json

  - `attachment_files.data` (string)
    The base64 encoded file data.
    Example: ewogICJ0ZXN0IjogMQp9

  - `attachment_files.name` (string)
    The name of the file.
    Example: test.json

  - `skip_notifications` (boolean)
    Option to disable notifications when replying to a conversation.
    Example: true

  - `skip_unsnooze` (boolean)
    When true, prevents the reply from waking a snoozed conversation. Applies to 'comment' and 'note' message types. The part is still created and visible in the conversation thread.
    Example: true

## Response 200 fields (application/json):

  - `type` (string)
    Always conversation.
    Example: conversation

  - `id` (string)
    The id representing the conversation.
    Example: 1295

  - `title` (string)
    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)
    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)
    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)
    The priority level of the conversation. Returns one of none, low, medium, high, or urgent.
    Enum: "none", "low", "medium", "high", "urgent"

  - `admin_assignee_id` (integer)
    The id of the admin assigned to the conversation. If it's not assigned to an admin it will return 0.
    Example: 0

  - `team_assignee_id` (integer)
    The id of the team assigned to the conversation. If it's not assigned to a team it will return 0.
    Example: 5017691

  - `company` (object)
    Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies.

  - `company.type` (string)
    Value is `company`
    Enum: "company"

  - `company.id` (string)
    The Intercom defined id representing the company.
    Example: 531ee472cce572a6ec000006

  - `company.name` (string)
    The name of the company.
    Example: Blue Sun

  - `company.app_id` (string)
    The Intercom defined code of the workspace the company is associated to.
    Example: ecahpwf5

  - `company.plan` (object)

  - `company.plan.type` (string)
    Value is always "plan"
    Example: plan

  - `company.plan.id` (string)
    The id of the plan
    Example: 269315

  - `company.plan.name` (string)
    The name of the plan
    Example: Pro

  - `company.company_id` (string)
    The company id you have defined for the company.
    Example: 6

  - `company.remote_created_at` (integer)
    The time the company was created by you.
    Example: 1663597223

  - `company.created_at` (integer)
    The time the company was added in Intercom.
    Example: 1663597223

  - `company.updated_at` (integer)
    The last time the company was updated.
    Example: 1663597223

  - `company.last_request_at` (integer)
    The time the company last recorded making a request.
    Example: 1663597223

  - `company.size` (integer)
    The number of employees in the company.
    Example: 100

  - `company.website` (string)
    The URL for the company website.
    Example: https://www.intercom.com

  - `company.industry` (string)
    The industry that the company operates in.
    Example: Software

  - `company.monthly_spend` (integer)
    How much revenue the company generates for your business.
    Example: 100

  - `company.session_count` (integer)
    How many sessions the company has recorded.
    Example: 100

  - `company.user_count` (integer)
    The number of users in the company.
    Example: 100

  - `company.tags` (object)
    The list of tags associated with the company

  - `company.tags.type` (string)
    The type of the object
    Enum: "tag.list"

  - `company.tags.tags` (array)

  - `company.tags.tags.type` (string)
    value is "tag"
    Example: tag

  - `company.tags.tags.id` (string)
    The id of the tag
    Example: 123456

  - `company.tags.tags.name` (string)
    The name of the tag
    Example: Test tag

  - `company.segments` (object)
    The list of segments associated with the company

  - `company.segments.type` (string)
    The type of the object
    Enum: "segment.list"

  - `company.segments.segments` (array)

  - `company.segments.segments.type` (string)
    The type of object.
    Enum: "segment"

  - `company.segments.segments.id` (string)
    The unique identifier representing the segment.
    Example: 56203d253cba154d39010062

  - `company.segments.segments.name` (string)
    The name of the segment.
    Example: Active

  - `company.segments.segments.created_at` (integer)
    The time the segment was created.
    Example: 1394621988

  - `company.segments.segments.updated_at` (integer)
    The time the segment was updated.
    Example: 1394622004

  - `company.segments.segments.person_type` (string)
    Type of the contact: contact (lead) or user.
    Enum: "contact", "user"

  - `company.segments.segments.count` (integer)
    The number of items in the user segment. It's returned when `include_count=true` is included in the request.
    Example: 3

  - `company.notes` (object)
    The list of notes associated with the company

  - `company.notes.type` (string)
    The type of the object
    Enum: "note.list"

  - `company.notes.notes` (array)

  - `company.notes.notes.type` (string)
    String representing the object's type. Always has the value `note`.
    Example: note

  - `company.notes.notes.id` (string)
    The id of the note.
    Example: 17495962

  - `company.notes.notes.created_at` (integer)
    The time the note was created.
    Example: 1674589321

  - `company.notes.notes.company` (object)
    Represents the company that the note was created about.

  - `company.notes.notes.company.type` (string)
    String representing the object's type. Always has the value `company`.
    Example: company

  - `company.notes.notes.company.id` (string)
    The id of the company.
    Example: 6329bd9ffe4e2e91dac76188

  - `company.notes.notes.author` (object)
    Admins are teammate accounts that have access to a workspace.

  - `company.notes.notes.author.type` (string)
    String representing the object's type. Always has the value `admin`.
    Example: admin

  - `company.notes.notes.author.id` (string)
    The id representing the admin.
    Example: 1295

  - `company.notes.notes.author.name` (string)
    The name of the admin.
    Example: Joe Example

  - `company.notes.notes.author.email` (string)
    The email of the admin.
    Example: jdoe@example.com

  - `company.notes.notes.author.job_title` (string)
    The job title of the admin.
    Example: Associate

  - `company.notes.notes.author.away_mode_enabled` (boolean)
    Identifies if this admin is currently set in away mode.
    Example: false

  - `company.notes.notes.author.away_mode_reassign` (boolean)
    Identifies if this admin is set to automatically reassign new conversations to the apps default inbox.
    Example: false

  - `company.notes.notes.author.away_status_reason_id` (integer)
    The unique identifier of the away status reason
    Example: 12345

  - `company.notes.notes.author.has_inbox_seat` (boolean)
    Identifies if this admin has a paid inbox seat to restrict/allow features that require them.
    Example: true

  - `company.notes.notes.author.team_ids` (array)
    This object represents the avatar associated with the admin.
    Example: [814865]

  - `company.notes.notes.author.avatar` (string)
    Image for the associated team or teammate
    Example: https://picsum.photos/200/300

  - `company.notes.notes.author.team_priority_level` (object)
    Admin priority levels for teams

  - `company.notes.notes.author.team_priority_level.primary_team_ids` (array)
    The primary team ids for the team
    Example: [814865]

  - `company.notes.notes.author.team_priority_level.secondary_team_ids` (array)
    The secondary team ids for the team
    Example: [493881]

  - `company.notes.notes.author.role` (object)
    The role assigned to this admin. Only present if the admin has a role assigned.

  - `company.notes.notes.author.role.type` (string)
    String representing the object's type. Always has the value `role`.
    Example: role

  - `company.notes.notes.author.role.id` (string)
    The id of the role.
    Example: 1

  - `company.notes.notes.author.role.name` (string)
    The name of the role.
    Example: Support Agent

  - `company.notes.notes.body` (string)
    The body text of the note.
    Example: <p>Text for the note.</p>

  - `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. Only present when the tag is returned as part of a tagging operation on a contact, conversation, ticket, article, internal article, or content snippet.
    Example: 1663597223

  - `tags.tags.applied_by` (object)
    The admin who applied the tag. Only present when the tag is returned as part of a tagging operation on a contact, conversation, ticket, article, internal article, or content snippet.

  - `tags.tags.applied_by.type` (string)
    Example: contact

  - `tags.tags.applied_by.id` (string)
    Example: 1a2b3c

  - `conversation_rating` (object)
    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.updated_at` (integer)
    The time the rating was last updated.
    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)
    The unique identifier for the contact which is provided by the Client.
    Example: 70

  - `source` (object)
    The first message or event that started this conversation. Describes the origin and who initiated it.

  - `source.type` (string)
    The origin of this conversation.
    Example: email

  - `source.id` (string)
    The id of the source message.
    Example: 3

  - `source.delivered_as` (string)
    How the conversation was initiated.
    Example: operator_initiated

  - `source.recipients` (array)
    The recipients of the source message. Only present for email conversations.

  - `source.recipients.type` (string)
    The recipient type. One of `to`, `cc`, or `bcc`.
    Example: to

  - `source.recipients.email` (string)
    The recipient email address.
    Example: user@example.com

  - `source.recipients.drop_reason` (string)
    The reason this recipient was dropped, if applicable.
    Example: null

  - `source.reply_to` (array)
    The Reply-To header addresses of the source message, where a reply will be routed. Can differ from the sender's From address. Only present for email conversations.

  - `source.reply_to.email` (string)
    The Reply-To email address.
    Example: replies@example.com

  - `source.reply_to.name` (string)
    The display name associated with the Reply-To address.
    Example: Support Team

  - `source.subject` (string)
    The message subject. Only present for email conversations.

  - `source.body` (string)
    The message body, which may contain HTML.
    Example: <p>Hey there!</p>

  - `source.author` (object)
    The author who started the conversation. Can be a Contact, Admin, or Bot.

  - `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: Jane Doe

  - `source.author.email` (string)
    The email of the author.
    Example: jane.doe@example.com

  - `source.attachments` (array)
    A list of attachments on the source message.

  - `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)
    The URL where the conversation was started.
    Example: https://intercom.help/company/article/123

  - `source.redacted` (boolean)
    Whether or not the source content has been redacted.
    Example: false

  - `source.email_message_metadata` (object)
    Contains metadata if the message was sent as an email

  - `source.email_message_metadata.message_id` (string)
    The unique identifier for the email message as specified in the Message-ID header
    Example: <CADKw7xrXzqSn8v3mP8K8Q8yZ6K8Q8yZ6@mail.gmail.com>

  - `source.email_message_metadata.subject` (string)
    The subject of the email
    Example: Question about my order

  - `source.email_message_metadata.email_address_headers` (array)
    A list of an email address headers.

  - `source.email_message_metadata.email_address_headers.type` (string)
    The type of email address header
    Example: from

  - `source.email_message_metadata.email_address_headers.email_address` (string)
    The email address
    Example: jdoe@example.com

  - `source.email_message_metadata.email_address_headers.name` (string)
    The name associated with the email address
    Example: Joe Example

  - `source.email_message_metadata.history` (string)
    The HTML content of any quoted or forwarded email history from the initial inbound message
    Example: <div><span>On Jan 28, wrote:</span><blockquote>Previous thread</blockquote></div>

  - `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.

  - `contacts.type` (string)
    Enum: "contact.list"

  - `contacts.contacts` (array)
    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)
    The list of teammates who participated in the conversation (wrote at least one conversation part).

  - `teammates.type` (string)
    The type of the object - `admin.list`.
    Example: admin.list

  - `teammates.teammates` (array)
    The list of teammates who participated in the conversation (wrote at least one conversation part).

  - `first_contact_reply` (object)
    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.type` (string)
    Example: conversation

  - `first_contact_reply.url` (string)
    Example: https://developers.intercom.com/

  - `sla_applied` (object)
    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:
- `hit`: If there’s at least one hit event in the underlying sla_events table, and no “missed” or “canceled” events for the conversation.
- `missed`: 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.
- `active`: 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)
    A Statistics object containing all information required for reporting, with timestamps and calculated metrics.

  - `statistics.type` (string)
    Example: conversation_statistics

  - `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

  - `statistics.assigned_team_first_response_time` (array)
    An array of conversation response time objects

  - `statistics.assigned_team_first_response_time.team_id` (integer)
    Id of the assigned team.
    Example: 100

  - `statistics.assigned_team_first_response_time.team_name` (string)
    Name of the assigned Team, null if team does not exist, Unassigned if no team is assigned.
    Example: Team One

  - `statistics.assigned_team_first_response_time.response_time` (integer)
    First response time of assigned team in seconds.
    Example: 2310

  - `statistics.assigned_team_first_response_time_in_office_hours` (array)
    An array of conversation response time objects within office hours

  - `statistics.handling_time` (integer)
    Time from conversation assignment to conversation close in seconds.
    Example: 2310

  - `statistics.adjusted_handling_time` (integer)
    Adjusted handling time for conversation in seconds. This is the active handling time excluding idle periods when teammates are not actively working on the conversation.
    Example: 1800

  - `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.type` (string)
    Enum: "conversation_part.list"

  - `conversation_parts.conversation_parts` (array)
    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.conversation_parts.type` (string)
    Always conversation_part
    Example: conversation_part

  - `conversation_parts.conversation_parts.id` (string)
    The id representing the conversation part.
    Example: 3

  - `conversation_parts.conversation_parts.part_type` (string)
    The type of conversation part.
    Example: comment

  - `conversation_parts.conversation_parts.body` (string)
    The message body, which may contain HTML. For Twitter, this will show a generic message regarding why the body is obscured.
    Example: <p>Okay!</p>

  - `conversation_parts.conversation_parts.created_at` (integer)
    The time the conversation part was created.
    Example: 1663597223

  - `conversation_parts.conversation_parts.updated_at` (integer)
    The last time the conversation part was updated.
    Example: 1663597260

  - `conversation_parts.conversation_parts.notified_at` (integer)
    The time the user was notified with the conversation part.
    Example: 1663597260

  - `conversation_parts.conversation_parts.author` (object)
    The author of this conversation part. Can be a Contact, Admin, or Bot.

  - `conversation_parts.conversation_parts.author.type` (string)
    The type of the author
    Example: admin

  - `conversation_parts.conversation_parts.author.id` (string)
    The id of the author
    Example: 274

  - `conversation_parts.conversation_parts.author.name` (string)
    The name of the author
    Example: Operator

  - `conversation_parts.conversation_parts.author.email` (string)
    The email of the author
    Example: operator+abcd1234@intercom.io

  - `conversation_parts.conversation_parts.author.from_ai_agent` (boolean)
    If this conversation part was sent by the AI Agent
    Example: true

  - `conversation_parts.conversation_parts.author.is_ai_answer` (boolean)
    If this conversation part body was generated by the AI Agent
    Example: false

  - `conversation_parts.conversation_parts.attachments` (array)
    A list of attachments for the part.

  - `conversation_parts.conversation_parts.external_id` (string)
    The external id of the conversation part
    Example: abcd1234

  - `conversation_parts.conversation_parts.redacted` (boolean)
    Whether or not the conversation part has been redacted.
    Example: false

  - `conversation_parts.conversation_parts.email_message_metadata` (object)
    Contains metadata if the message was sent as an email

  - `conversation_parts.conversation_parts.email_message_metadata.subject` (string)
    The subject of the email
    Example: Question about my order

  - `conversation_parts.conversation_parts.email_message_metadata.email_address_headers` (array)
    A list of an email address headers.

  - `conversation_parts.conversation_parts.email_message_metadata.message_id` (string)
    The unique identifier for the email message as specified in the Message-ID header
    Example: <CADKw7xrXzqSn8v3mP8K8Q8yZ6K8Q8yZ6@mail.gmail.com>

  - `conversation_parts.conversation_parts.metadata` (object)
    Metadata for a conversation part

  - `conversation_parts.conversation_parts.metadata.quick_reply_options` (array)
    The quick reply options sent by the Admin or bot, presented in this conversation part.

  - `conversation_parts.conversation_parts.metadata.quick_reply_options.text` (string, required)
    The text to display in this quick reply option.

  - `conversation_parts.conversation_parts.metadata.quick_reply_options.uuid` (string, required)
    A unique identifier for this quick reply option. This value will be available within the metadata of the comment conversation part that is created when a user clicks on this reply option.

  - `conversation_parts.conversation_parts.metadata.quick_reply_uuid` (string)
    The unique identifier for the quick reply option that was clicked by the end user.
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `conversation_parts.conversation_parts.state` (string)
    Indicates the current state of conversation when the conversation part was created.
    Enum: "open", "closed", "snoozed"

  - `conversation_parts.conversation_parts.tags` (array)
    A list of tags objects associated with the conversation part.

  - `conversation_parts.conversation_parts.event_details` (object)

  - `conversation_parts.conversation_parts.event_details.workflow` (object)

  - `conversation_parts.conversation_parts.event_details.workflow.name` (string)
    Name of the workflow
    Example: Workflow 1

  - `conversation_parts.conversation_parts.event_details.attribute` (object)

  - `conversation_parts.conversation_parts.event_details.attribute.name` (string)
    Name of the CDA updated
    Example: flight_category

  - `conversation_parts.conversation_parts.event_details.value` (object)

  - `conversation_parts.conversation_parts.event_details.value.name` (string)
    Value of the CDA updated
    Example: vip_status

  - `conversation_parts.conversation_parts.event_details.action` (object)

  - `conversation_parts.conversation_parts.event_details.action.name` (string)
    Name of the action
    Example: Jira Create Issue

  - `conversation_parts.conversation_parts.event_details.event` (object)

  - `conversation_parts.conversation_parts.event_details.event.type` (string)
    Type of the workflow event initiated
    Example: wait_finished

  - `conversation_parts.conversation_parts.event_details.event.result` (string)
    Result of the workflow event
    Example: Finsihed waiting

  - `conversation_parts.conversation_parts.event_details.tags_added` (array)
    Array of tag names that were added
    Example: ["feature-shopify-multi-store","second-tag"]

  - `conversation_parts.conversation_parts.event_details.tags_removed` (array)
    Array of tag names that were removed
    Example: ["feature-embercom-app-serializer-limit-external-plans"]

  - `conversation_parts.conversation_parts.event_details.until` (string)
    Human-readable description of snooze duration
    Example: until tomorrow

  - `conversation_parts.conversation_parts.event_details.custom_until_time` (string)
    ISO timestamp for custom snooze times (null for general snoozes)
    Example: 2025-09-03T18:44:20.146Z

  - `conversation_parts.conversation_parts.event_details.current_priority` (string)
    Current priority level
    Enum: "none", "low", "medium", "high", "urgent"

  - `conversation_parts.conversation_parts.event_details.previous_priority` (string)
    Previous priority level
    Enum: "none", "low", "medium", "high", "urgent"

  - `conversation_parts.conversation_parts.event_details.sla_name` (string)
    Name of the SLA that was applied
    Example: Premium SLA

  - `conversation_parts.conversation_parts.event_details.sla_definition` (object)
    Target times configured for the SLA (in seconds)

  - `conversation_parts.conversation_parts.event_details.sla_definition.first_reply_time` (integer)
    First response time target in seconds
    Example: 300

  - `conversation_parts.conversation_parts.event_details.sla_definition.next_reply_time` (integer)
    Next reply time target in seconds
    Example: 600

  - `conversation_parts.conversation_parts.event_details.sla_definition.resolution_time` (integer)
    Resolution time target in seconds
    Example: 3600

  - `conversation_parts.conversation_parts.event_details.sla_definition.time_to_close` (integer)
    Time to close target in seconds
    Example: 7200

  - `conversation_parts.conversation_parts.event_details.sla_name` (string)
    Name of the SLA
    Example: HandleConversation

  - `conversation_parts.conversation_parts.event_details.sla_target_type` (string)
    Which specific target was missed
    Enum: "first_reply_time", "next_reply_time", "resolution_time", "time_to_close"

  - `conversation_parts.conversation_parts.event_details.current_sla_status` (string)
    Overall SLA status
    Enum: "hit", "missed", "active", "paused", "canceled"

  - `conversation_parts.conversation_parts.event_details.sla_name` (string)
    Name of the SLA being paused
    Example: Premium SLA

  - `conversation_parts.conversation_parts.event_details.current_sla_status` (string)
    Overall SLA status at pause time
    Enum: "active", "hit", "missed", "canceled"

  - `conversation_parts.conversation_parts.event_details.sla_name` (string)
    Name of the SLA being unpaused
    Example: Premium SLA

  - `conversation_parts.conversation_parts.event_details.sla_name` (string)
    Name of the SLA that was removed
    Example: Standard SLA

  - `conversation_parts.conversation_parts.event_details.call_id` (string)
    The id of the call the summary describes
    Example: 3822007689

  - `conversation_parts.conversation_parts.app_package_code` (string)
    The app package code if this part was created via API. null if the part was not created via API.
    Example: test-integration

  - `conversation_parts.conversation_parts.translations` (object)
    A map of the reply text keyed by locale code, with values in the same HTML format as `body`. Only present on the Preview API version and backs the `conversation.admin.replied.translated` webhook topic. The special `original` key holds the source locale code of the reply; every other key is a locale code whose value is the reply text translated into that locale. The `translations` field does not modify `body`; `body` carries the reply as authored. Available in the Preview API version only (set `Intercom-Version: Preview`).
    Example: {"original":"en","en":"<p>Hello</p>","fr":"<p>Bonjour</p>"}

  - `conversation_parts.conversation_parts.translations.original` (string, required)
    The locale code identifying the language the reply was originally written in.
    Example: en

  - `conversation_parts.total_count` (integer)
    Example: 1

  - `linked_objects` (object)
    An object containing metadata about linked conversations and linked tickets. Up to 1000 can be returned.

  - `linked_objects.type` (string)
    Always list.
    Enum: "list"

  - `linked_objects.total_count` (integer)
    The total number of linked objects.
    Example: 100

  - `linked_objects.has_more` (boolean)
    Whether or not there are more linked objects than returned.
    Example: false

  - `linked_objects.data` (array)
    An array containing the linked conversations and linked tickets.

  - `linked_objects.data.type` (string)
    ticket or conversation
    Enum: "ticket", "conversation"

  - `linked_objects.data.id` (string)
    The ID of the linked object
    Example: 7583

  - `linked_objects.data.category` (string)
    Category of the Linked Ticket Object.
    Enum: "Customer", "Back-office", "Tracker", null

  - `ai_topics` (object)
    AI-generated topics and subtopics for the conversation.

  - `ai_topics.type` (string)
    Always ai_topics.
    Example: ai_topics

  - `ai_topics.topics` (array)
    The list of AI-generated topics for this conversation.

  - `ai_topics.topics.type` (string)
    Always ai_topic.
    Example: ai_topic

  - `ai_topics.topics.topic_name` (string)
    The name of the AI-generated topic.
    Example: Billing

  - `ai_topics.topics.subtopics` (array)
    The subtopics under this topic.

  - `ai_topics.topics.subtopics.type` (string)
    Always ai_subtopic.
    Example: ai_subtopic

  - `ai_topics.topics.subtopics.name` (string)
    The name of the subtopic.
    Example: Payment Issues

  - `ai_topics.topics.subtopics.id` (integer)
    The ID of the subtopic.
    Example: 42

  - `ai_agent_participated` (boolean)
    Indicates whether the AI Agent participated in the conversation.
    Example: true

  - `ai_agent` (object)
    Data related to AI Agent involvement in the conversation.

  - `ai_agent.source_type` (string)
    The type of the source that triggered AI Agent involvement in the conversation.
    Enum: "essentials_plan_setup", "profile", "workflow", "workflow_preview", "fin_preview"

  - `ai_agent.source_title` (string)
    The title of the source that triggered AI Agent involvement in the conversation. If this is `essentials_plan_setup` then it will return `null`.
    Example: My AI Workflow

  - `ai_agent.last_answer_type` (string)
    The type of the last answer delivered by AI Agent. If no answer was delivered then this will return `null`
    Enum: null, "ai_answer", "custom_answer"

  - `ai_agent.resolution_state` (string)
    The resolution state of AI Agent. If no AI or custom answer has been delivered then this will return `null`.
    Enum: "assumed_resolution", "confirmed_resolution", "escalated", "negative_feedback", "procedure_handoff", null

  - `ai_agent.rating` (integer)
    The customer satisfaction rating given to AI Agent, from 1-5.
    Example: 4

  - `ai_agent.rating_remark` (string)
    The customer satisfaction rating remark given to AI Agent.
    Example: Very helpful!

  - `ai_agent.created_at` (integer)
    The time when the AI agent rating was created.
    Example: 1663597260

  - `ai_agent.updated_at` (integer)
    The time when the AI agent rating was last updated.
    Example: 1663597260

  - `ai_agent.content_sources` (object)

  - `ai_agent.content_sources.type` (string)
    Enum: "content_source.list"

  - `ai_agent.content_sources.total_count` (integer)
    The total number of content sources used by AI Agent in the conversation.
    Example: 1

  - `ai_agent.content_sources.content_sources` (array)
    The content sources used by AI Agent in the conversation.

  - `ai_agent.content_sources.content_sources.content_type` (string)
    The type of the content source.
    Enum: "file", "article", "external_content", "content_snippet", "workflow_connector_action"

  - `ai_agent.content_sources.content_sources.url` (string)
    The internal URL linking to the content source for teammates.
    Example: /fin-ai-agent/content?content=content_snippet&id=3234924

  - `ai_agent.content_sources.content_sources.title` (string)
    The title of the content source.
    Example: My internal content snippet

  - `ai_agent.content_sources.content_sources.locale` (string)
    The ISO 639 language code of the content source.
    Example: en

  - `sales_agent_participated` (boolean)
    Indicates whether the Sales Agent participated in the conversation.
    Example: false

  - `sales_agent` (object)
    Data related to Sales Agent involvement in the conversation.

  - `sales_agent.outcome` (string)
    The fixed outcome of the sales agent interaction, used for billing and tracking.
    Enum: "qualified", "disqualified", "product_discovery", "escalated_to_support", "spam"

  - `sales_agent.routing_outcome` (string)
    The identifier of the user-defined routing outcome selected by the sales agent.
    Example: enterprise_sales

  - `channel` (object)
    The channel through which the conversation was initiated and its current channel.

  - `channel.initial` (string)
    The channel through which the conversation was originally initiated. Possible values include `messenger`, `zendesk_sunshine`, `zendesk_ticket`, `twitter`, `email`. Returns `null` if channel data is unavailable.
    Example: messenger

  - `channel.current` (string)
    The current channel of the conversation. May differ from `initial` if the conversation was migrated between channels. Returns `null` if channel data is unavailable.
    Example: messenger

  - `external_references` (array)
    References linking this conversation to records in an external helpdesk or CRM system. Populated for Fin Standalone workspaces synced from an external platform; an empty array otherwise. Sorted alphabetically by `type` and capped at 20 entries.
    Example: [{"type":"zendesk_ticket","id":"3633338"},{"type":"zendesk_sunshine_conversation","id":"abc-def-uuid"}]

  - `external_references.type` (string)
    The type of external system the reference points to. Possible values include `zendesk_ticket`, `zendesk_sunshine_conversation`, `salesforce_case`, `salesforce_in_app_message_conversation`, `freshdesk_ticket`, `freshchat_conversation`, `hubspot_conversation`, `custom_helpdesk_conversation`, `api_conversation`.
    Example: zendesk_ticket

  - `external_references.id` (string)
    The identifier of the record in the external system. Always serialized as a string, since some external IDs exceed 32-bit integer range.
    Example: 3633338

  - `monitor_evaluations` (array)
    QA monitor evaluations that flagged this conversation. Only included when `include_monitors=true` is passed as a query parameter.

  - `monitor_evaluations.monitor_id` (string)
    The unique identifier of the monitor that produced this evaluation.
    Example: 12345

  - `monitor_evaluations.monitor_name` (string)
    The name of the monitor at the time of evaluation. Null if the monitor has since been deleted.
    Example: Customer complaint handling

  - `monitor_evaluations.monitor_type` (string)
    The type of the monitor. Null if the monitor has since been deleted.
    Example: prompt

  - `monitor_evaluations.result` (string)
    The evaluation outcome reported by the monitor.
    Example: flagged

  - `monitor_evaluations.explanation` (string)
    The reasoning provided by the monitor for its result. May be null if no reasoning was generated.
    Example: The customer mentioned wanting a refund without resolution.

  - `monitor_evaluations.evaluated_at` (integer)
    The time the monitor evaluated this conversation. Null in the rare case the underlying record's timestamp is not yet set.
    Example: 1719493065

  - `scorecards` (array)
    QA scorecard results for this conversation. Only included when `include_scorecards=true` is passed as a query parameter.

  - `scorecards.scorecard_id` (string)
    The unique identifier of the scorecard definition.
    Example: 67890

  - `scorecards.scorecard_version_id` (string)
    The unique identifier of the specific scorecard version that produced this result.
    Example: 67891

  - `scorecards.name` (string)
    The name of the scorecard.
    Example: Standard QA Review

  - `scorecards.scorecard_type` (string)
    The type of scorecard.
    Example: human

  - `scorecards.passed` (boolean)
    Whether the conversation passed the scorecard. Null when the scorecard has not been scored.
    Example: true

  - `scorecards.score` (number)
    The numeric score for the scorecard. Null when the scorecard has not been scored.
    Example: 0.85

  - `scorecards.ai_score` (number)
    The numeric score produced by AI evaluation, if applicable. Null when not AI-scored.
    Example: 0.9

  - `scorecards.evaluated_at` (integer)
    The time the scorecard was last evaluated. Null in the rare case the underlying record's timestamp is not yet set.
    Example: 1719493065

  - `scorecards.reviewed_teammate` (object)
    The teammate (or AI agent) whose handling of the conversation was reviewed by this scorecard.

  - `scorecards.reviewed_teammate.type` (string)
    The kind of reviewee. `ai` if the conversation was handled by Fin or scored without a specific teammate; `admin` if a specific teammate was reviewed.
    Enum: "ai", "admin"

  - `scorecards.reviewed_teammate.admin_id` (string)
    The id of the admin who was reviewed. Present only when `type` is `admin`.
    Example: 991267715

  - `scorecards.evaluators` (array)
    Per-evaluator results within this scorecard.

  - `scorecards.evaluators.evaluator_id` (string)
    The unique identifier of the evaluator (criterion) within the scorecard.
    Example: 54321

  - `scorecards.evaluators.result` (object)
    The evaluator's result for this conversation. Null if the evaluator was not scored.

  - `scorecards.evaluators.result.value` (string)
    The evaluator's selected value (typically a label such as `pass`, `fail`, or a category identifier).
    Example: pass

  - `scorecards.evaluators.result.source` (string)
    The origin of the result (for example, `ai` or `human`).
    Example: ai

  - `scorecards.evaluators.result.reasoning` (string)
    A free-text explanation of the result.
    Example: The agent acknowledged the issue and resolved it within the same response.

  - `scorecards.evaluators.result.reason_ids` (array)
    Identifiers for structured reasons assigned to the result, if any.
    Example: ["101","102"]

  - `scorecards.evaluators.result.other_text` (string)
    Free-text entered by the reviewer to supplement or stand in for the structured `reason_ids` — typically captured when the reviewer selects an "Other" option or adds a custom note. Null when not provided.
    Example: Agent acknowledged the issue but missed the follow-up question about billing.

## Response 401 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    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)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    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)
    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)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    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)
    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)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

