# Retrieve a conversation

You can fetch the details of a single conversation.

This will return a single Conversation model with all its conversation parts.

{% admonition type="warning" name="Hard limit of 500 parts" %}
The maximum number of conversation parts that can be returned via the API is 500. If you have more than that we will return the 500 most recent conversation parts.
{% /admonition %}

For AI agent conversation metadata, please note that you need to have the agent enabled in your workspace, which is a paid feature.

Endpoint: GET /conversations/{conversation_id}
Version: 2.16
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", "2.12", "2.13", "2.14", "2.15", "2.16"

## Path parameters:

  - `conversation_id` (integer, required)
    The id of the conversation to target
    Example: 123

## Query parameters:

  - `display_as` (string)
    Set to plaintext to retrieve conversation messages in plain text. This affects both the body and subject fields. Inline links are rendered as label (url), preserving the link URL alongside the visible text.
    Example: "plaintext"

  - `include_translations` (boolean)
    If set to true, conversation parts will be translated to the detected language of the conversation.
    Example: true

## 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)
    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.

  - `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.custom_attributes` (object)
    The custom attributes you have set on the company.
    Example: {"paid_subscriber":true,"monthly_spend":155.5,"team_mates":9}

  - `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,null)
    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,null)
    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,null)
    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.

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

  - `company.notes.notes.author.away_status_reason_id` (integer,null)
    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,null)
    Image for the associated team or teammate
    Example: "https://picsum.photos/200/300"

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

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

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

  - `company.notes.notes.author.role` (object,null)
    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: same as `company.tags.type` (1 values)

  - `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,null)
    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, or ticket.
    Example: 1663597223

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

  - `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.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,null)
    The unique identifier for the contact which is provided by the Client.
    Example: "70"

  - `conversation_rating.teammate` (object)
    reference to another object

  - `conversation_rating.teammate.type` (string)
    Example: "contact"

  - `conversation_rating.teammate.id` (string,null)
    Example: "1a2b3c"

  - `source` (object)
    The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated.

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

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

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

  - `source.recipients` (array,null)
    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,null)
    The reason this recipient was dropped, if applicable.

  - `source.reply_to` (array,null)
    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,null)
    The display name associated with the Reply-To address.
    Example: "Support Team"

  - `source.subject` (string)
    Optional. The message subject. For Twitter, this will show a generic message regarding why the subject is obscured. In webhook payloads for API version 2.15+, this field returns plain text.

  - `source.body` (string)
    The message body, which may contain HTML. For Twitter, this will show a generic message regarding why the body is obscured. In webhook payloads for API version 2.15+, this field returns plain text.
    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,null)
    The id of the author.
    Example: "274"

  - `source.author.name` (string,null)
    The name of the author.
    Example: "Jane Doe"

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

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

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

  - `source.email_message_metadata.message_id` (string,null)
    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,null)
    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,null)
    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).

  - `custom_attributes` (object)
    An object containing the different custom attributes associated to the conversation as key-value pairs. For relationship attributes the value will be a list of custom object instance models. System-defined attributes such as "CX Score rating" and "CX Score explanation" may also be included.
    Example: {"paid_subscriber":true,"monthly_spend":155.5,"team_mates":9,"start_date_iso8601":"2023-03-04T09:46:14Z","end_date_timestamp":1677923174,"CX Score rating":4,"CX Score explanation":"The conversation was resolved quickly and the customer expressed satisfaction with the outcome."}

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

  - `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:
            - 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,null)
    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,null)
    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,null)
    The message body, which may contain HTML. For Twitter, this will show a generic message regarding why the body is obscured. In webhook payloads for API version 2.15+, this field returns plain text.
    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.assigned_to` (object)
    reference to another object

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

  - `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,null)
    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

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

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

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

  - `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,null)
    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.translations` (object,null)
    The translations for the quick reply option.
    Example: {"en":"Hello","fr":"Bonjour"}

  - `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: same as `state` (3 values)

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

  - `conversation_parts.conversation_parts.event_details` (object) — one of:
    - Part type - conversation_attribute_updated_by_workflow:
      - `workflow` (object)
      - `workflow.name` (string)
        Name of the workflow
        Example: "Workflow 1"
      - `attribute` (object)
      - `attribute.name` (string)
        Name of the CDA updated
        Example: "flight_category"
      - `value` (object)
      - `value.name` (string)
        Value of the CDA updated
        Example: "vip_status"
    - Part type - conversation_attribute_updated_by_admin:
      - `attribute` (object)
      - `attribute.name` (string)
        Name of the CDA updated
        Example: "jira_issue_key"
      - `value` (object)
      - `value.name` (string)
        Current value of the CDA updated
        Example: "PROJ-007"
      - `value.previous` (string,null)
        Previous value of the CDA
        Example: "PROJ-006"
    - Part type - conversation_attribute_updated_by_user:
      - `attribute` (object)
      - `attribute.name` (string)
        Name of the CDA updated
        Example: "Priority"
      - `value` (object)
      - `value.name` (string)
        Current value of the CDA updated
        Example: "High"
      - `value.previous` (string,null)
        Previous value of the CDA (null for older events)
        Example: "Medium"
    - Part type - custom_action_started:
      - `action` (object)
      - `action.name` (string)
        Name of the action
        Example: "Jira Create Issue"
    - Part type - custom_action_finished:
      - `action` (object)
      - `action.name` (string)
        Name of the action
        Example: "Jira Create Issue"
      - `action.result` (string)
        Status of the action
        Enum: "success", "failed"
    - Part type - operator_workflow_event:
      - `workflow` (object)
      - `workflow.name` (string)
        The name of the workflow
        Example: "Custom Bot 1"
      - `event` (object)
      - `event.type` (string)
        Type of the workflow event initiated
        Example: "wait_finished"
      - `event.result` (string)
        Result of the workflow event
        Example: "Finsihed waiting"

  - `conversation_parts.conversation_parts.app_package_code` (string,null)
    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.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.

  - `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,null)
    Category of the Linked Ticket Object.
    Enum: "Customer", "Back-office", "Tracker", null

  - `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,null)
    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,null)
    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,null)
    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,null)
    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,null)
    The customer satisfaction rating given to AI Agent, from 1-5.
    Example: 4

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

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

  - `ai_agent.updated_at` (integer,null)
    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.

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

  - `sales_agent.outcome` (string,null)
    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,null)
    The identifier of the user-defined routing outcome selected by the sales agent.
    Example: "enterprise_sales"

  - `sales_agent.collected_data` (object,null)
    A flat key-value map of memory fields collected by the sales agent during the conversation.
    Example: {"email":"user@example.com","company.name":"Acme Inc"}

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

  - `channel.initial` (string,null)
    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,null)
    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,null)
    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,null)
    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,null)
    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,null)
    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,null)
    Whether the conversation passed the scorecard. Null when the scorecard has not been scored.
    Example: true

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

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

  - `scorecards.evaluated_at` (integer,null)
    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,null)
    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,null)
    The evaluator's result for this conversation. Null if the evaluator was not scored.

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

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

  - `scorecards.evaluators.result.reasoning` (string,null)
    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,null)
    Identifiers for structured reasons assigned to the result, if any.
    Example: ["101","102"]

  - `scorecards.evaluators.result.other_text` (string,null)
    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,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"


