Search the inbox and resolve item/contact IDs; read the item, thread and message context. Confirm the exact reply/recipient before replies.send.v2; use a stable UUID for retries and inspect the returned evidence. Changing inbox state is a separate workspace write.
Get inbox item
inbox.item.get.v2
Use when: Load one inbox item by item_key from inbox.search.v2.
Avoid when: Prefer hivekind://inbox/{item_key}. Do not use this to list items.
Effects: Reads current workspace state.
Cost: No gateway credit charge; reads saved workspace data without starting paid provider work. Gateway rate code: none; downstream billing may apply.
Access: runs:read. Approval: operation authorization. Reads do not need an operation UUID.
Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.
Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.
Invocation example using fictional fixtures
{
"tool": "domain.inbox.v2",
"arguments": {
"params": {
"action": "invoke",
"operation": "inbox.item.get.v2",
"arguments": {
"item_key": "reply_thread:00000000-0000-4000-8000-000000000001"
},
"operation_id": "00000000-0000-4000-8000-000000000003"
}
},
"notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}Input schema: fields, defaults and constraints
{
"additionalProperties": false,
"properties": {
"item_key": {
"description": "Item key used by the public inbox item get input v2 operation.",
"maxLength": 320,
"minLength": 3,
"pattern": "^(agent_request|reply_thread|signal):[0-9a-fA-F-]{36}$",
"title": "Item Key",
"type": "string"
}
},
"required": [
"item_key"
],
"title": "McpPublicInboxItemGetInputV2",
"type": "object"
}Output schema inside the result envelope
{
"$defs": {
"UnifiedInboxSummaryV1": {
"additionalProperties": false,
"properties": {
"item_key": {
"maxLength": 320,
"minLength": 1,
"title": "Item Key",
"type": "string"
},
"source_type": {
"enum": [
"agent_request",
"reply_thread",
"signal"
],
"title": "Source Type",
"type": "string"
},
"title": {
"maxLength": 500,
"minLength": 1,
"title": "Title",
"type": "string"
},
"preview": {
"anyOf": [
{
"maxLength": 2000,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Preview"
},
"account_name": {
"anyOf": [
{
"maxLength": 255,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Name"
},
"occurred_at": {
"format": "date-time",
"title": "Occurred At",
"type": "string"
},
"unread": {
"title": "Unread",
"type": "boolean"
},
"important": {
"title": "Important",
"type": "boolean"
},
"status": {
"anyOf": [
{
"maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"resource_refs": {
"default": [],
"items": {
"type": "string"
},
"title": "Resource Refs",
"type": "array"
},
"untrusted_content": {
"const": true,
"default": true,
"title": "Untrusted Content",
"type": "boolean"
}
},
"required": [
"item_key",
"source_type",
"title",
"occurred_at",
"unread",
"important"
],
"title": "UnifiedInboxSummaryV1",
"type": "object"
}
},
"additionalProperties": false,
"description": "V2 result for inbox.item.get.v2; preserves the established validators.",
"properties": {
"item": {
"$ref": "#/$defs/UnifiedInboxSummaryV1"
},
"context": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
},
"title": "Context",
"type": "object"
}
},
"required": [
"item"
],
"title": "PublicInboxItemGetResultV2",
"type": "object"
}Search inbox work
inbox.search.v2
Use when: You need to find bounded unread, important, or matching inbox items.
Avoid when: You already have an item key and need its permitted thread context.
Effects: Returns summaries and resource references. Read only.
Cost: No gateway credit charge; reads saved workspace data without starting paid provider work. Gateway rate code: none; downstream billing may apply.
Access: runs:read. Approval: operation authorization. Reads do not need an operation UUID.
Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.
Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.
Invocation example using fictional fixtures
{
"tool": "domain.inbox.v2",
"arguments": {
"params": {
"action": "invoke",
"operation": "inbox.search.v2",
"arguments": {},
"operation_id": "00000000-0000-4000-8000-000000000003"
}
},
"notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}Input schema: fields, defaults and constraints
{
"additionalProperties": false,
"properties": {
"query": {
"anyOf": [
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Search text. Use a name, domain, title, or other identifying phrase relevant to this operation.",
"title": "Query"
},
"source_type": {
"anyOf": [
{
"enum": [
"agent_request",
"reply_thread",
"signal"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Source type used by the inbox search input v2 operation.",
"title": "Source Type"
},
"important_only": {
"default": false,
"description": "Important only used by the inbox search input v2 operation.",
"title": "Important Only",
"type": "boolean"
},
"unread_only": {
"default": false,
"description": "Unread only used by the inbox search input v2 operation.",
"title": "Unread Only",
"type": "boolean"
},
"limit": {
"default": 50,
"description": "Maximum number of records to return in this page.",
"maximum": 100,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"title": "McpInboxSearchInputV2",
"type": "object"
}Output schema inside the result envelope
{
"$defs": {
"UnifiedInboxSummaryV1": {
"additionalProperties": false,
"properties": {
"item_key": {
"maxLength": 320,
"minLength": 1,
"title": "Item Key",
"type": "string"
},
"source_type": {
"enum": [
"agent_request",
"reply_thread",
"signal"
],
"title": "Source Type",
"type": "string"
},
"title": {
"maxLength": 500,
"minLength": 1,
"title": "Title",
"type": "string"
},
"preview": {
"anyOf": [
{
"maxLength": 2000,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Preview"
},
"account_name": {
"anyOf": [
{
"maxLength": 255,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Name"
},
"occurred_at": {
"format": "date-time",
"title": "Occurred At",
"type": "string"
},
"unread": {
"title": "Unread",
"type": "boolean"
},
"important": {
"title": "Important",
"type": "boolean"
},
"status": {
"anyOf": [
{
"maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"resource_refs": {
"default": [],
"items": {
"type": "string"
},
"title": "Resource Refs",
"type": "array"
},
"untrusted_content": {
"const": true,
"default": true,
"title": "Untrusted Content",
"type": "boolean"
}
},
"required": [
"item_key",
"source_type",
"title",
"occurred_at",
"unread",
"important"
],
"title": "UnifiedInboxSummaryV1",
"type": "object"
}
},
"additionalProperties": false,
"properties": {
"items": {
"default": [],
"items": {
"$ref": "#/$defs/UnifiedInboxSummaryV1"
},
"title": "Items",
"type": "array"
},
"truncated": {
"default": false,
"title": "Truncated",
"type": "boolean"
}
},
"title": "InboxSearchResultV2",
"type": "object"
}Update inbox state
inbox.state.set.v2
Use when: Mark an inbox item read, done, or similar.
Avoid when: Do not use this to send a reply — that is replies.send.v2.
Effects: Changes inbox item state for the signed-in user.
Cost: No gateway rate is configured. Check the Core workflow preview/quote for downstream charges and final settlement. Gateway rate code: none; downstream billing may apply.
Access: actions:execute. Approval: exact_scope_single_action. A stable operation UUID is required.
Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.
Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.
Invocation example using fictional fixtures
{
"tool": "domain.inbox.v2",
"arguments": {
"params": {
"action": "invoke",
"operation": "inbox.state.set.v2",
"arguments": {
"is_important": true,
"item_key": "reply_thread:00000000-0000-4000-8000-000000000001"
},
"operation_id": "00000000-0000-4000-8000-000000000003"
}
},
"notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}Input schema: fields, defaults and constraints
{
"additionalProperties": false,
"properties": {
"action_proposal_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional. Hivekind fills this from the MCP consent grant.",
"title": "Action Proposal Id"
},
"item_key": {
"description": "Item key used by the inbox state set input v2 operation.",
"maxLength": 320,
"minLength": 3,
"pattern": "^(agent_request|reply_thread|signal):[0-9a-fA-F-]{36}$",
"title": "Item Key",
"type": "string"
},
"expected_revision": {
"anyOf": [
{
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Expected revision used by the inbox state set input v2 operation.",
"title": "Expected Revision"
},
"is_important": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to apply is important for this operation.",
"title": "Is Important"
},
"manually_unread": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Manually unread used by the inbox state set input v2 operation.",
"title": "Manually Unread"
},
"snoozed_until": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Snoozed until used by the inbox state set input v2 operation.",
"title": "Snoozed Until"
},
"source_version": {
"anyOf": [
{
"maxLength": 255,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Source version used by the inbox state set input v2 operation.",
"title": "Source Version"
},
"clear_snooze": {
"default": false,
"description": "Clear snooze used by the inbox state set input v2 operation.",
"title": "Clear Snooze",
"type": "boolean"
},
"dismissed": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Dismissed used by the inbox state set input v2 operation.",
"title": "Dismissed"
}
},
"required": [
"item_key"
],
"title": "McpMcpInboxStateSetInputV2",
"type": "object"
}Output schema inside the result envelope
{
"additionalProperties": false,
"properties": {
"item_key": {
"maxLength": 320,
"minLength": 3,
"title": "Item Key",
"type": "string"
},
"revision": {
"minimum": 1,
"title": "Revision",
"type": "integer"
},
"is_important": {
"title": "Is Important",
"type": "boolean"
},
"manually_unread": {
"title": "Manually Unread",
"type": "boolean"
},
"snoozed_until": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Snoozed Until"
},
"dismissed_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Dismissed At"
}
},
"required": [
"item_key",
"revision",
"is_important",
"manually_unread"
],
"title": "InboxStateSetResultV2",
"type": "object"
}Get inbox thread
inbox.thread.v2
Use when: Load the email/LinkedIn thread for one contact when you already have contact_id.
Avoid when: Prefer hivekind://inbox/{item_key} after inbox.search.v2 if you only have an inbox item.
Effects: Reads current workspace state.
Cost: No gateway credit charge; reads saved workspace data without starting paid provider work. Gateway rate code: none; downstream billing may apply.
Access: runs:read. Approval: operation authorization. Reads do not need an operation UUID.
Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.
Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.
Invocation example using fictional fixtures
{
"tool": "domain.inbox.v2",
"arguments": {
"params": {
"action": "invoke",
"operation": "inbox.thread.v2",
"arguments": {
"contact_id": "00000000-0000-4000-8000-000000000001"
},
"operation_id": "00000000-0000-4000-8000-000000000003"
}
},
"notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}Input schema: fields, defaults and constraints
{
"additionalProperties": false,
"properties": {
"contact_id": {
"description": "Exact contact UUID returned by a Hivekind search, list, get, preview, or resource call.",
"format": "uuid",
"title": "Contact Id",
"type": "string"
},
"limit": {
"default": 50,
"description": "Maximum number of records to return in this page.",
"maximum": 100,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"required": [
"contact_id"
],
"title": "McpPublicInboxThreadInputV2",
"type": "object"
}Output schema inside the result envelope
{
"$defs": {
"ConversationEntryV1": {
"additionalProperties": false,
"properties": {
"entry_id": {
"format": "uuid",
"title": "Entry Id",
"type": "string"
},
"direction": {
"enum": [
"inbound",
"outbound",
"draft"
],
"title": "Direction",
"type": "string"
},
"channel": {
"maxLength": 64,
"minLength": 1,
"title": "Channel",
"type": "string"
},
"subject": {
"anyOf": [
{
"maxLength": 1000,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Subject"
},
"content": {
"default": "",
"maxLength": 8000,
"title": "Content",
"type": "string"
},
"occurred_at": {
"format": "date-time",
"title": "Occurred At",
"type": "string"
},
"status": {
"anyOf": [
{
"maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"intent": {
"anyOf": [
{
"maxLength": 128,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Intent"
},
"sentiment": {
"anyOf": [
{
"maxLength": 128,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sentiment"
},
"untrusted_content": {
"const": true,
"default": true,
"title": "Untrusted Content",
"type": "boolean"
}
},
"required": [
"entry_id",
"direction",
"channel",
"occurred_at"
],
"title": "ConversationEntryV1",
"type": "object"
}
},
"additionalProperties": false,
"description": "V2 result for inbox.thread.v2; preserves the established validators.",
"properties": {
"contact_id": {
"format": "uuid",
"title": "Contact Id",
"type": "string"
},
"contact_name": {
"maxLength": 255,
"minLength": 1,
"title": "Contact Name",
"type": "string"
},
"contact_email": {
"anyOf": [
{
"maxLength": 320,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Contact Email"
},
"account_id": {
"format": "uuid",
"title": "Account Id",
"type": "string"
},
"account_name": {
"maxLength": 255,
"minLength": 1,
"title": "Account Name",
"type": "string"
},
"messages": {
"default": [],
"items": {
"$ref": "#/$defs/ConversationEntryV1"
},
"title": "Messages",
"type": "array"
},
"truncated": {
"default": false,
"title": "Truncated",
"type": "boolean"
}
},
"required": [
"contact_id",
"contact_name",
"account_id",
"account_name"
],
"title": "PublicInboxThreadResultV2",
"type": "object"
}Get message context
messages.context.v2
Use when: Load recent messages for a contact when writing a reply.
Avoid when: Prefer hivekind://inbox/{item_key} or inbox.thread.v2.
Effects: Reads current workspace state.
Cost: No gateway credit charge; reads saved workspace data without starting paid provider work. Gateway rate code: none; downstream billing may apply.
Access: runs:read. Approval: operation authorization. Reads do not need an operation UUID.
Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.
Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.
Invocation example using fictional fixtures
{
"tool": "domain.inbox.v2",
"arguments": {
"params": {
"action": "invoke",
"operation": "messages.context.v2",
"arguments": {
"contact_id": "00000000-0000-4000-8000-000000000001",
"loop_id": "00000000-0000-4000-8000-000000000001"
},
"operation_id": "00000000-0000-4000-8000-000000000003"
}
},
"notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}Input schema: fields, defaults and constraints
{
"additionalProperties": false,
"properties": {
"loop_id": {
"description": "Exact loop UUID returned by a Hivekind search, list, get, preview, or resource call.",
"format": "uuid",
"title": "Loop Id",
"type": "string"
},
"contact_id": {
"description": "Exact contact UUID returned by a Hivekind search, list, get, preview, or resource call.",
"format": "uuid",
"title": "Contact Id",
"type": "string"
},
"limit": {
"default": 20,
"description": "Maximum number of records to return in this page.",
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"required": [
"loop_id",
"contact_id"
],
"title": "McpPublicMessagesContextInputV2",
"type": "object"
}Output schema inside the result envelope
{
"$defs": {
"ConversationEntryV1": {
"additionalProperties": false,
"properties": {
"entry_id": {
"format": "uuid",
"title": "Entry Id",
"type": "string"
},
"direction": {
"enum": [
"inbound",
"outbound",
"draft"
],
"title": "Direction",
"type": "string"
},
"channel": {
"maxLength": 64,
"minLength": 1,
"title": "Channel",
"type": "string"
},
"subject": {
"anyOf": [
{
"maxLength": 1000,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Subject"
},
"content": {
"default": "",
"maxLength": 8000,
"title": "Content",
"type": "string"
},
"occurred_at": {
"format": "date-time",
"title": "Occurred At",
"type": "string"
},
"status": {
"anyOf": [
{
"maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"intent": {
"anyOf": [
{
"maxLength": 128,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Intent"
},
"sentiment": {
"anyOf": [
{
"maxLength": 128,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sentiment"
},
"untrusted_content": {
"const": true,
"default": true,
"title": "Untrusted Content",
"type": "boolean"
}
},
"required": [
"entry_id",
"direction",
"channel",
"occurred_at"
],
"title": "ConversationEntryV1",
"type": "object"
}
},
"additionalProperties": false,
"description": "V2 result for messages.context.v2; preserves the established validators.",
"properties": {
"loop_id": {
"format": "uuid",
"title": "Loop Id",
"type": "string"
},
"contact_id": {
"format": "uuid",
"title": "Contact Id",
"type": "string"
},
"messages": {
"default": [],
"items": {
"$ref": "#/$defs/ConversationEntryV1"
},
"title": "Messages",
"type": "array"
},
"latest_intent": {
"anyOf": [
{
"maxLength": 128,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Latest Intent"
},
"latest_sentiment": {
"anyOf": [
{
"maxLength": 128,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Latest Sentiment"
},
"truncated": {
"default": false,
"title": "Truncated",
"type": "boolean"
}
},
"required": [
"loop_id",
"contact_id"
],
"title": "PublicMessagesContextResultV2",
"type": "object"
}Send a reply
replies.send.v2
Use when: Send a reply as the signed-in user after you have thread context.
Avoid when: Do not use this to start a campaign or Hiveloop.
Effects: Sends a message as you. This cannot be undone.
Cost: No gateway rate is configured. Check the Core workflow preview/quote for downstream charges and final settlement. Gateway rate code: none; downstream billing may apply.
Access: actions:execute. Approval: exact_scope_single_action. A stable operation UUID is required.
Keep the same operation and operation_id when retrying identical work. Reconcile an uncertain result before new work; never replay an old V1 write under a new V2 ID.
Check status, execution_state, error_code, output and evidence/resource references. Queued work is not complete: poll jobs.status.get.v2 in domain.workspace.v2. For read-back verification require read_back_verified=true where returned; reconcile failures without creating another object.
Invocation example using fictional fixtures
{
"tool": "domain.inbox.v2",
"arguments": {
"params": {
"action": "invoke",
"operation": "replies.send.v2",
"arguments": {
"body": "Example body",
"channel": "email",
"contact_id": "00000000-0000-4000-8000-000000000001"
},
"operation_id": "00000000-0000-4000-8000-000000000003"
}
},
"notice": "Fictional fixture IDs and example text. Resolve real IDs, use returned preview tokens and approve exact side effects before execution. Input validation is not proof of provider readiness or a successful business outcome."
}Input schema: fields, defaults and constraints
{
"additionalProperties": false,
"properties": {
"action_proposal_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional. Hivekind fills this from the MCP consent grant.",
"title": "Action Proposal Id"
},
"contact_id": {
"description": "Exact contact UUID returned by a Hivekind search, list, get, preview, or resource call.",
"format": "uuid",
"title": "Contact Id",
"type": "string"
},
"channel": {
"description": "Supported outreach or signal channel. Phone outreach is not supported.",
"enum": [
"email",
"linkedin"
],
"title": "Channel",
"type": "string"
},
"body": {
"description": "Body used by the replies send input v2 operation.",
"maxLength": 8000,
"minLength": 1,
"title": "Body",
"type": "string"
},
"subject": {
"anyOf": [
{
"maxLength": 240,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Subject used by the replies send input v2 operation.",
"title": "Subject"
},
"cc": {
"default": [],
"description": "Cc used by the replies send input v2 operation.",
"items": {
"type": "string"
},
"maxItems": 20,
"title": "Cc",
"type": "array"
}
},
"required": [
"contact_id",
"channel",
"body"
],
"title": "McpMcpRepliesSendInputV2",
"type": "object"
}Output schema inside the result envelope
{
"additionalProperties": false,
"properties": {
"dispatch_id": {
"format": "uuid",
"title": "Dispatch Id",
"type": "string"
},
"contact_id": {
"format": "uuid",
"title": "Contact Id",
"type": "string"
},
"channel": {
"enum": [
"email",
"linkedin"
],
"title": "Channel",
"type": "string"
},
"status": {
"const": "pending",
"default": "pending",
"title": "Status",
"type": "string"
}
},
"required": [
"dispatch_id",
"contact_id",
"channel"
],
"title": "RepliesSendResultV2",
"type": "object"
}