Skip to main content

PaginatedResponse[DialogueRead]

items object[]required
  • Array [
  • idIdrequired

    Unique numeric identifier of the record.

    product_idProduct Idrequired

    ID of the product (workspace) that owns this record. Most endpoints scope access by product.

    customer_id object

    Canonical company-level customer ID used for shared communication context; null for legacy dialogues that have not been resolved.

    anyOf
    integer
    agent_idAgent Idrequired

    ID of the agent (a configured AI assistant / bot persona) this record belongs to.

    contact_idContact Idrequired

    ID of the contact this record relates to.

    created_atdate-timerequired

    Creation time (UTC, ISO 8601).

    channel_idChannel Idrequired

    ID of the messaging channel this record relates to.

    chat_idChat Idrequired

    The channel-specific chat identifier this dialogue maps to.

    last_user_msg_id objectrequired
    anyOf
    integer
    last_user_msg_at objectrequired
    anyOf
    date-time
    last_bot_msg_id objectrequired
    anyOf
    integer
    is_mainIs Mainrequired

    Whether this is the active (primary) dialogue for the agent/contact pair; superseded dialogues are set to false.

    bot_mutedBot Mutedrequired

    When true, the bot will not auto-respond in this dialogue (e.g. after a human takeover).

    pending_until objectrequired

    When a parked dialogue is resumed (UTC). Null unless the dialogue is parked.

    anyOf
    date-time
    pending_type object

    Why the dialogue is parked (e.g. follow_up, human_clarification, async_tool, custom_follow_up).

    anyOf
    PendingType

    Possible values: [follow_up, human_clarification, async_tool, custom_follow_up, future_meeting]

    pending_ref object

    Opaque reference associated with the parking episode (a clarification id, a tool call id, …).

    anyOf
    string
    pending_id object

    Identifier of the current parking episode. A deadline refresh keeps it; a new park replaces it, so a scheduler that acts on an episode can tell whether it is still the one it saw.

    anyOf
    uuid
    state_revisionState Revision

    Monotonic counter bumped by every lifecycle write to the dialogue (movements, parks, unparks, resets). Carry it into a decision made outside the write (an operator UI, a queued job) so the platform can reject the decision when the dialogue has moved on in the meantime.

    Default value: 0
    started_at objectrequired

    When the dialogue first left the initial node (UTC).

    anyOf
    date-time
    ext_id objectrequired

    External identifier of the conversation in the channel/provider, if any.

    anyOf
    string
    waba_opener_sent_after_window_num objectrequired
    anyOf
    integer
    is_sub_outreachIs Sub Outreachrequired

    Whether this outreach was sent into an existing chat with the contact rather than as a cold outreach. Set when an outreach campaign reuses a channel the contact was already messaged on (the agent's persist_channel_in_outreach option): to the contact it is the same conversation, but the platform counts it against a separate "sub-outreach" daily limit, since messaging platforms (WhatsApp, Telegram, …) are less restrictive inside existing dialogues than for cold outreach.

    warmup_pair_id objectrequired

    For phone-warmup conversations, the warmup pair this dialogue belongs to.

    anyOf
    integer
    is_incomingIs Incomingrequired

    Whether the dialogue was started by an inbound message from the contact.

    is_group_chatIs Group Chatrequired

    Whether the conversation is a group chat.

    skip_response_for_user_msg_id objectrequired
    anyOf
    integer
    skip_response_until objectrequired
    anyOf
    date-time
    last_tree_node_idLast Tree Node Idrequired

    ID of the state-tree node the dialogue currently sits on — its lifecycle state. Always set; the node belongs to the dialogue's agent, and GET /tree/ resolves it to a title, system_kind, is_final and group. A parked dialogue (is_pending) keeps its node and resumes there.

    subject objectrequired

    Email subject line, for email channels.

    anyOf
    string
    enabled_playbook_version_idsinteger[]

    Prompt-version IDs of the playbooks this dialogue has enabled, in enable order (by the model through its tool, or by the platform from crm_fields_conditions). Append-only: a playbook is never disabled, at most one version per playbook is held, and the dialogue keeps that version even if the playbook is edited later. Match them against enabled_version_id in the agent's playbook list (GET /prompts/?type=playbook) or against a playbook's version list.

    is_pendingIs Pendingrequired

    Whether the dialogue is waiting for something (a follow-up time, a manager's answer, a tool result, a meeting) before it acts again. Derived from pending_until. Parking does not move the dialogue: last_tree_node_id still names the node it will resume on.

  • ]
  • pagePagerequired
    limitLimitrequired
    totalTotalrequired
    pagesPagesrequired
    PaginatedResponse[DialogueRead]
    {
    "items": [
    {
    "id": 0,
    "product_id": 0,
    "customer_id": 0,
    "agent_id": 0,
    "contact_id": 0,
    "created_at": "2024-07-29T15:51:28.071Z",
    "channel_id": 0,
    "chat_id": "string",
    "last_user_msg_id": 0,
    "last_user_msg_at": "2024-07-29T15:51:28.071Z",
    "last_bot_msg_id": 0,
    "is_main": true,
    "bot_muted": true,
    "pending_until": "2024-07-29T15:51:28.071Z",
    "pending_type": "follow_up",
    "pending_ref": "string",
    "pending_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "state_revision": 0,
    "started_at": "2024-07-29T15:51:28.071Z",
    "ext_id": "string",
    "waba_opener_sent_after_window_num": 0,
    "is_sub_outreach": true,
    "warmup_pair_id": 0,
    "is_incoming": true,
    "is_group_chat": true,
    "skip_response_for_user_msg_id": 0,
    "skip_response_until": "2024-07-29T15:51:28.071Z",
    "last_tree_node_id": 0,
    "subject": "string",
    "enabled_playbook_version_ids": [
    0
    ],
    "is_pending": true
    }
    ],
    "page": 0,
    "limit": 0,
    "total": 0,
    "pages": 0
    }