Now talk to Hivekind in Claude or ChatGPT. Your priority accounts, GTM context, right where you work.

Inbox

domain.inbox.v2

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"
}