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

Campaigns

domain.campaign.v2

Resolve accounts and a supported playbook; preview scope and create one campaign for the requested multi-account program. Add the exact audience, inspect LinkedIn readiness and prepare Hiveloops/drafts. Read back and approve the requested drafts. Launch prepares a sequence; sendability checks and explicit start are separate. Starting/resuming can send. Phone playbooks are unsupported.

Reassign a campaign's account owners

campaigns.accounts.reassign_owner.v2

Use when: Hand a campaign's accounts to a new owner in bulk — all of them, a subset by account_ids, or only those owned by certain people via only_current_owner_ids. The campaign must be draft, paused or archived. Call with dry_run true (the default) first and show the user which accounts move, which are skipped and why, and the re-scoring cost; call again with dry_run false only after they confirm.

Avoid when: Do not use this on an active campaign — it refuses; pause it with campaigns.pause.v2 first. Do not use it for accounts outside a campaign — that is accounts.update.v2. It does not change who sends a campaign's messages: that is the campaign owner, not the account owner.

Effects: Changes Account owner only. Each moved account is re-scored in the background against the new owner's pinned rubric, which spends scoring credits (or its score is cleared if that owner has no rubric). Accounts also in another active campaign are skipped and the blocking campaign is named. Contacts, HiveLoops, drafts and queued LinkedIn or email steps are NOT reassigned: on resume they still send from the loop's existing sender.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.accounts.reassign_owner.v2",
      "arguments": {
        "campaign_id": "00000000-0000-4000-8000-000000000001",
        "new_owner_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"
    },
    "campaign_id": {
      "description": "The campaign whose accounts move.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "new_owner_id": {
      "description": "Workspace member who becomes the owner.",
      "format": "uuid",
      "title": "New Owner Id",
      "type": "string"
    },
    "account_ids": {
      "default": [],
      "description": "Only these of the campaign's accounts. Leave empty for all of them. Ids not in the campaign are reported as skipped.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 500,
      "title": "Account Ids",
      "type": "array"
    },
    "only_current_owner_ids": {
      "default": [],
      "description": "Only move accounts currently owned by one of these users.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 100,
      "title": "Only Current Owner Ids",
      "type": "array"
    },
    "dry_run": {
      "default": true,
      "description": "True (the default) previews which accounts would move, which are skipped and why, and the re-scoring cost, and writes nothing. Show the preview to the user before calling with false.",
      "title": "Dry Run",
      "type": "boolean"
    }
  },
  "required": [
    "campaign_id",
    "new_owner_id"
  ],
  "title": "McpMcpPublicCampaignsAccountsReassignOwnerInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "CampaignAccountReassignOutcomeV1": {
      "additionalProperties": false,
      "properties": {
        "account_id": {
          "format": "uuid",
          "title": "Account Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "web_url": {
          "anyOf": [
            {
              "maxLength": 2048,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Browser link to this account in the Hivekind app. Use it verbatim whenever you link the record for a person, including inside note bodies; never build a link by hand or use a hivekind:// URI, which is an MCP resource handle, not a page. Null when the server has no app URL configured.",
          "title": "Web Url"
        },
        "changed": {
          "description": "Moved, or on a dry run would move, to the new owner.",
          "title": "Changed",
          "type": "boolean"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Why it was skipped: not_in_campaign, owner_not_matched, in_active_campaign, no_change (already owned by the new owner), archived, not_found or update_failed. Null when changed.",
          "title": "Reason"
        },
        "blocking_campaign": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReassignBlockingCampaignV1"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The active campaign that blocked it, for in_active_campaign."
        },
        "owner_before_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner Before Id"
        },
        "owner_before_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner Before Name"
        },
        "owner_after_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner After Id"
        },
        "owner_after_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner After Name"
        },
        "consequences": {
          "default": [],
          "items": {
            "type": "string"
          },
          "maxItems": 8,
          "title": "Consequences",
          "type": "array"
        }
      },
      "required": [
        "account_id",
        "changed"
      ],
      "title": "CampaignAccountReassignOutcomeV1",
      "type": "object"
    },
    "ReassignBlockingCampaignV1": {
      "additionalProperties": false,
      "properties": {
        "campaign_id": {
          "format": "uuid",
          "title": "Campaign Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        }
      },
      "required": [
        "campaign_id"
      ],
      "title": "ReassignBlockingCampaignV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for campaigns.accounts.reassign_owner.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "campaign_name": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Campaign Name"
    },
    "campaign_status": {
      "maxLength": 64,
      "title": "Campaign Status",
      "type": "string"
    },
    "new_owner_id": {
      "format": "uuid",
      "title": "New Owner Id",
      "type": "string"
    },
    "new_owner_name": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "New Owner Name"
    },
    "dry_run": {
      "title": "Dry Run",
      "type": "boolean"
    },
    "changed": {
      "minimum": 0,
      "title": "Changed",
      "type": "integer"
    },
    "skipped": {
      "minimum": 0,
      "title": "Skipped",
      "type": "integer"
    },
    "results": {
      "default": [],
      "items": {
        "$ref": "#/$defs/CampaignAccountReassignOutcomeV1"
      },
      "maxItems": 500,
      "title": "Results",
      "type": "array"
    },
    "accounts_to_rescore": {
      "default": 0,
      "minimum": 0,
      "title": "Accounts To Rescore",
      "type": "integer"
    },
    "estimated_credits": {
      "default": "0",
      "maxLength": 32,
      "title": "Estimated Credits",
      "type": "string"
    },
    "warnings": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 8,
      "title": "Warnings",
      "type": "array"
    }
  },
  "required": [
    "campaign_id",
    "campaign_status",
    "new_owner_id",
    "dry_run",
    "changed",
    "skipped"
  ],
  "title": "PublicCampaignsAccountsReassignOwnerResultV2",
  "type": "object"
}

Archive a campaign

campaigns.archive.v2

Use when: Archive a campaign you no longer need.

Avoid when: Prefer pause if you may resume it.

Effects: Archives the campaign.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.archive.v2",
      "arguments": {
        "campaign_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"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpMcpPublicCampaignsArchiveInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for campaigns.archive.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "campaign_id",
    "status"
  ],
  "title": "PublicCampaignsArchiveResultV2",
  "type": "object"
}

Add campaign accounts

campaigns.audience.add.v2

Use when: Add accounts to an existing campaign, by account_ids or by account tags (every active account carrying them, up to 50).

Avoid when: For a new campaign, pass account_ids or icp_grade to campaigns.launch.v2 instead.

Effects: Adds accounts to the campaign. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.audience.add.v2",
      "arguments": {
        "account_ids": [
          "00000000-0000-4000-8000-000000000001"
        ],
        "campaign_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": {
    "tags": {
      "default": [],
      "description": "Select the audience by account tag instead of account_ids: every active account carrying these tags (see tags_match), matched case-insensitively. At most 50 accounts may match; narrow with accounts.search.v2 and pass account_ids when more do.",
      "items": {
        "maxLength": 64,
        "minLength": 1,
        "type": "string"
      },
      "maxItems": 10,
      "title": "Tags",
      "type": "array"
    },
    "tags_match": {
      "default": "any",
      "description": "any: accounts with at least one of tags. all: accounts with every one.",
      "enum": [
        "any",
        "all"
      ],
      "title": "Tags Match",
      "type": "string"
    },
    "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"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "account_ids": {
      "default": [],
      "description": "Exact account UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Account Ids",
      "type": "array"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpMcpPublicCampaignsAudienceAddInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for campaigns.audience.add.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "account_ids": {
      "default": [],
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Account Ids",
      "type": "array"
    },
    "count": {
      "default": 0,
      "maximum": 50,
      "minimum": 0,
      "title": "Count",
      "type": "integer"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "PublicCampaignsAudienceAddResultV2",
  "type": "object"
}

Preview campaign audience

campaigns.audience.preview.v2

Use when: Preview which accounts would be added to a campaign, given account_ids or an account tags selector (up to 50 accounts).

Avoid when: Do not use this to add accounts — that is campaigns.audience.add.v2. Prefer campaigns.launch.v2 for new campaigns.

Effects: May change workspace state or start work; describe before invoking.

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: runs:create. Approval: operation authorization. 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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.audience.preview.v2",
      "arguments": {
        "campaign_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": {
    "tags": {
      "default": [],
      "description": "Select the audience by account tag instead of account_ids: every active account carrying these tags (see tags_match), matched case-insensitively. At most 50 accounts may match; narrow with accounts.search.v2 and pass account_ids when more do.",
      "items": {
        "maxLength": 64,
        "minLength": 1,
        "type": "string"
      },
      "maxItems": 10,
      "title": "Tags",
      "type": "array"
    },
    "tags_match": {
      "default": "any",
      "description": "any: accounts with at least one of tags. all: accounts with every one.",
      "enum": [
        "any",
        "all"
      ],
      "title": "Tags Match",
      "type": "string"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "account_ids": {
      "default": [],
      "description": "Exact account UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Account Ids",
      "type": "array"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpPublicCampaignsAudiencePreviewInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "CampaignAudienceHeldContactV1": {
      "additionalProperties": false,
      "properties": {
        "contact_id": {
          "format": "uuid",
          "title": "Contact Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "reason": {
          "maxLength": 128,
          "minLength": 1,
          "title": "Reason",
          "type": "string"
        }
      },
      "required": [
        "contact_id",
        "name",
        "reason"
      ],
      "title": "CampaignAudienceHeldContactV1",
      "type": "object"
    },
    "CampaignAudiencePreviewAccountV1": {
      "additionalProperties": false,
      "properties": {
        "account_id": {
          "format": "uuid",
          "title": "Account Id",
          "type": "string"
        },
        "account_name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Account Name",
          "type": "string"
        },
        "icp_grade": {
          "anyOf": [
            {
              "maxLength": 32,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Icp Grade"
        },
        "conflict_campaign_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Conflict Campaign Name"
        },
        "contacts_ready": {
          "default": 0,
          "maximum": 100000,
          "minimum": 0,
          "title": "Contacts Ready",
          "type": "integer"
        },
        "held_contacts": {
          "default": [],
          "items": {
            "$ref": "#/$defs/CampaignAudienceHeldContactV1"
          },
          "maxItems": 20,
          "title": "Held Contacts",
          "type": "array"
        }
      },
      "required": [
        "account_id",
        "account_name"
      ],
      "title": "CampaignAudiencePreviewAccountV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for campaigns.audience.preview.v2; preserves the established validators.",
  "properties": {
    "addable_account_ids": {
      "default": [],
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Addable Account Ids",
      "type": "array"
    },
    "conflict_count": {
      "default": 0,
      "maximum": 100000,
      "minimum": 0,
      "title": "Conflict Count",
      "type": "integer"
    },
    "held_contact_count": {
      "default": 0,
      "maximum": 100000,
      "minimum": 0,
      "title": "Held Contact Count",
      "type": "integer"
    },
    "accounts": {
      "default": [],
      "items": {
        "$ref": "#/$defs/CampaignAudiencePreviewAccountV1"
      },
      "maxItems": 50,
      "title": "Accounts",
      "type": "array"
    }
  },
  "title": "PublicCampaignsAudiencePreviewResultV2",
  "type": "object"
}

Remove campaign accounts

campaigns.audience.remove.v2

Use when: Remove accounts from an existing campaign.

Avoid when: Do not use this to pause sending — that is campaigns.pause.v2 or hiveloops.pause.v2.

Effects: Removes accounts from the campaign.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.audience.remove.v2",
      "arguments": {
        "account_ids": [
          "00000000-0000-4000-8000-000000000001"
        ],
        "campaign_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"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "account_ids": {
      "description": "Exact account UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "minItems": 1,
      "title": "Account Ids",
      "type": "array"
    }
  },
  "required": [
    "campaign_id",
    "account_ids"
  ],
  "title": "McpMcpPublicCampaignsAudienceRemoveInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for campaigns.audience.remove.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "account_ids": {
      "default": [],
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Account Ids",
      "type": "array"
    },
    "count": {
      "default": 0,
      "maximum": 50,
      "minimum": 0,
      "title": "Count",
      "type": "integer"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "PublicCampaignsAudienceRemoveResultV2",
  "type": "object"
}

Preview a campaign draft

campaigns.create.preview.v2

Use when: Preview campaign fields without writing.

Avoid when: To actually create and prepare outreach, use campaigns.launch.v2.

Effects: May change workspace state or start work; describe before invoking.

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: runs:create. Approval: operation authorization. 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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.create.preview.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": {
    "name": {
      "anyOf": [
        {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Human-readable name for the record.",
      "title": "Name"
    },
    "objective": {
      "anyOf": [
        {
          "maxLength": 4000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Plain-language outcome the user wants from this operation.",
      "title": "Objective"
    },
    "icp_grade": {
      "anyOf": [
        {
          "maxLength": 8,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Icp grade used by the public campaigns create preview input v2 operation.",
      "title": "Icp Grade"
    },
    "kind": {
      "anyOf": [
        {
          "enum": [
            "always_on",
            "signal_activated"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Kind used by the public campaigns create preview input v2 operation.",
      "title": "Kind"
    }
  },
  "title": "McpPublicCampaignsCreatePreviewInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "JsonValue": {}
  },
  "additionalProperties": false,
  "description": "V2 result for campaigns.create.preview.v2; preserves the established validators.",
  "properties": {
    "name": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "objective": {
      "anyOf": [
        {
          "maxLength": 4000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Objective"
    },
    "kind": {
      "default": "always_on",
      "enum": [
        "always_on",
        "signal_activated"
      ],
      "title": "Kind",
      "type": "string"
    },
    "suggested_account_ids": {
      "default": [],
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Suggested Account Ids",
      "type": "array"
    },
    "suggested_buyer_role_ids": {
      "default": [],
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Suggested Buyer Role Ids",
      "type": "array"
    },
    "suggested_signal_types": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Suggested Signal Types",
      "type": "array"
    },
    "trigger_threshold": {
      "default": 75,
      "maximum": 100,
      "minimum": 0,
      "title": "Trigger Threshold",
      "type": "integer"
    },
    "suggested_playbook_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Suggested Playbook Id"
    },
    "playbook_handoff": {
      "anyOf": [
        {
          "additionalProperties": {
            "$ref": "#/$defs/JsonValue"
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Playbook Handoff"
    },
    "occupancy": {
      "default": [],
      "items": {
        "additionalProperties": {
          "$ref": "#/$defs/JsonValue"
        },
        "type": "object"
      },
      "maxItems": 100,
      "title": "Occupancy",
      "type": "array"
    },
    "monitor_share_notes": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 50,
      "title": "Monitor Share Notes",
      "type": "array"
    },
    "blockers": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Blockers",
      "type": "array"
    },
    "warnings": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Warnings",
      "type": "array"
    },
    "summary": {
      "maxLength": 2000,
      "minLength": 1,
      "title": "Summary",
      "type": "string"
    },
    "executable": {
      "const": false,
      "default": false,
      "title": "Executable",
      "type": "boolean"
    }
  },
  "required": [
    "name",
    "summary"
  ],
  "title": "PublicCampaignsCreatePreviewResultV2",
  "type": "object"
}

Create a draft campaign

campaigns.draft.create.v2

Use when: Create a draft campaign only, without preparing a Hiveloop.

Avoid when: Prefer campaigns.launch.v2, which also prepares the Hiveloop.

Effects: Creates a campaign record. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.draft.create.v2",
      "arguments": {
        "name": "Example name"
      },
      "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
{
  "$defs": {
    "CampaignOccupancyResolutionV1": {
      "additionalProperties": false,
      "properties": {
        "account_ids": {
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "maxItems": 50,
          "minItems": 1,
          "title": "Account Ids",
          "type": "array"
        },
        "action": {
          "default": "share",
          "enum": [
            "share",
            "skip",
            "remove_from_other",
            "pause_other",
            "archive_other"
          ],
          "title": "Action",
          "type": "string"
        },
        "occupying_campaign_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Occupying Campaign Id"
        },
        "confirmed": {
          "default": false,
          "title": "Confirmed",
          "type": "boolean"
        }
      },
      "required": [
        "account_ids"
      ],
      "title": "CampaignOccupancyResolutionV1",
      "type": "object"
    },
    "JsonValue": {}
  },
  "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"
    },
    "name": {
      "description": "Human-readable name for the record.",
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "description": {
      "anyOf": [
        {
          "maxLength": 4000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Human-readable description of the record or requested outcome.",
      "title": "Description"
    },
    "kind": {
      "default": "always_on",
      "description": "Kind used by the public campaigns draft create input v2 operation.",
      "enum": [
        "always_on",
        "signal_activated"
      ],
      "title": "Kind",
      "type": "string"
    },
    "playbook_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact playbook UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Playbook Id"
    },
    "playbook_handoff": {
      "anyOf": [
        {
          "additionalProperties": {
            "$ref": "#/$defs/JsonValue"
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Playbook handoff used by the public campaigns draft create input v2 operation.",
      "title": "Playbook Handoff"
    },
    "account_ids": {
      "default": [],
      "description": "Exact account UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Account Ids",
      "type": "array"
    },
    "buyer_role_ids": {
      "default": [],
      "description": "Exact buyer role UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Buyer Role Ids",
      "type": "array"
    },
    "signal_types": {
      "default": [],
      "description": "Signal types used by the public campaigns draft create input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Signal Types",
      "type": "array"
    },
    "signal_type_ids": {
      "default": [],
      "description": "Exact signal type UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 20,
      "title": "Signal Type Ids",
      "type": "array"
    },
    "trigger_threshold": {
      "default": 75,
      "description": "Trigger threshold used by the public campaigns draft create input v2 operation.",
      "maximum": 100,
      "minimum": 0,
      "title": "Trigger Threshold",
      "type": "integer"
    },
    "cadence": {
      "default": "weekly",
      "description": "Cadence used by the public campaigns draft create input v2 operation.",
      "maxLength": 32,
      "minLength": 1,
      "title": "Cadence",
      "type": "string"
    },
    "product_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact product UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Product Id"
    },
    "messaging_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact messaging UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Messaging Id"
    },
    "occupancy_resolutions": {
      "default": [],
      "description": "Occupancy resolutions used by the public campaigns draft create input v2 operation.",
      "items": {
        "$ref": "#/$defs/CampaignOccupancyResolutionV1"
      },
      "maxItems": 100,
      "title": "Occupancy Resolutions",
      "type": "array"
    }
  },
  "required": [
    "name"
  ],
  "title": "McpMcpPublicCampaignsDraftCreateInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for campaigns.draft.create.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "name": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "status": {
      "default": "draft",
      "enum": [
        "draft",
        "active"
      ],
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "campaign_id",
    "name"
  ],
  "title": "PublicCampaignsDraftCreateResultV2",
  "type": "object"
}

Get campaign

campaigns.get.v2

Use when: Load one campaign by id when resource reads are unavailable.

Avoid when: Prefer hivekind://campaign/{id}. Use campaigns.list.v2 if you do not have an id.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.get.v2",
      "arguments": {
        "campaign_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": {
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpPublicCampaignsGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "CampaignLoopSummaryV1": {
      "additionalProperties": false,
      "properties": {
        "loop_id": {
          "format": "uuid",
          "title": "Loop Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "status": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Status",
          "type": "string"
        },
        "source": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Source"
        }
      },
      "required": [
        "loop_id",
        "name",
        "status"
      ],
      "title": "CampaignLoopSummaryV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for campaigns.get.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "name": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    },
    "description": {
      "anyOf": [
        {
          "maxLength": 4000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Description"
    },
    "playbook_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Playbook Id"
    },
    "playbook_name": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Playbook Name"
    },
    "account_count": {
      "default": 0,
      "maximum": 100000,
      "minimum": 0,
      "title": "Account Count",
      "type": "integer"
    },
    "has_signal_monitoring": {
      "default": false,
      "title": "Has Signal Monitoring",
      "type": "boolean"
    },
    "blockers": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Blockers",
      "type": "array"
    },
    "loops": {
      "default": [],
      "items": {
        "$ref": "#/$defs/CampaignLoopSummaryV1"
      },
      "maxItems": 20,
      "title": "Loops",
      "type": "array"
    }
  },
  "required": [
    "campaign_id",
    "name",
    "status"
  ],
  "title": "PublicCampaignsGetResultV2",
  "type": "object"
}

Preflight campaign outreach

campaigns.hiveloop.preflight.v2

Use when: Check blockers before preparing a Hiveloop on an existing campaign.

Avoid when: campaigns.launch.v2 already runs preflight. Use this only for split-step control.

Effects: May change workspace state or start work; describe before invoking.

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: runs:create. Approval: review_only_preflight_no_execution. 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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.hiveloop.preflight.v2",
      "arguments": {
        "campaign_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": {
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "contact_ids": {
      "default": [],
      "description": "Exact contact UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 100,
      "title": "Contact Ids",
      "type": "array"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpPublicCampaignsHiveloopPreflightInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for campaigns.hiveloop.preflight.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "playbook_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Playbook Id"
    },
    "contact_count": {
      "default": 0,
      "maximum": 100000,
      "minimum": 0,
      "title": "Contact Count",
      "type": "integer"
    },
    "blockers": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Blockers",
      "type": "array"
    },
    "outline": {
      "maxLength": 2000,
      "minLength": 1,
      "title": "Outline",
      "type": "string"
    },
    "executable": {
      "const": false,
      "default": false,
      "title": "Executable",
      "type": "boolean"
    }
  },
  "required": [
    "campaign_id",
    "outline"
  ],
  "title": "PublicCampaignsHiveloopPreflightResultV2",
  "type": "object"
}

Prepare a campaign Hiveloop

campaigns.hiveloop.prepare.v2

Use when: Create a draft Hiveloop from an existing campaign. Does not send.

Avoid when: Prefer campaigns.launch.v2 for new campaigns.

Effects: Creates a draft Hiveloop. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.hiveloop.prepare.v2",
      "arguments": {
        "campaign_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"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "contact_ids": {
      "default": [],
      "description": "Exact contact UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 100,
      "title": "Contact Ids",
      "type": "array"
    },
    "name": {
      "anyOf": [
        {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Human-readable name for the record.",
      "title": "Name"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpMcpPublicCampaignsHiveloopPrepareInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for campaigns.hiveloop.prepare.v2; preserves the established validators.",
  "properties": {
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "status": {
      "const": "draft",
      "default": "draft",
      "title": "Status",
      "type": "string"
    },
    "name": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    }
  },
  "required": [
    "loop_id",
    "campaign_id",
    "name"
  ],
  "title": "PublicCampaignsHiveloopPrepareResultV2",
  "type": "object"
}

Launch a campaign

campaigns.launch.v2

Use when: Create a campaign, bind a playbook, add audience, prepare a Hiveloop, and queue drafts in one call. Does not send.

Avoid when: Do not walk preview/create/audience/bind/preflight/prepare yourself. Do not call hiveloops.start.v2 from this tool — check sendability first.

Effects: Creates a campaign and draft Hiveloop. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.launch.v2",
      "arguments": {
        "name": "Example name",
        "playbook_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": {
    "name": {
      "description": "Human-readable name for the record.",
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "playbook_id": {
      "description": "Exact playbook UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Playbook Id",
      "type": "string"
    },
    "account_ids": {
      "default": [],
      "description": "Exact account UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 50,
      "title": "Account Ids",
      "type": "array"
    },
    "icp_grade": {
      "anyOf": [
        {
          "enum": [
            "A",
            "B",
            "C",
            "D",
            "E",
            "F"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Icp grade used by the public campaigns launch input v2 operation.",
      "title": "Icp Grade"
    },
    "contact_ids": {
      "default": [],
      "description": "Exact contact UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 100,
      "title": "Contact Ids",
      "type": "array"
    },
    "signal_types": {
      "default": [],
      "description": "Signal types used by the public campaigns launch input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Signal Types",
      "type": "array"
    }
  },
  "required": [
    "name",
    "playbook_id"
  ],
  "title": "McpPublicCampaignsLaunchInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "LoopSendabilityGetResultV1": {
      "additionalProperties": false,
      "properties": {
        "loop_id": {
          "format": "uuid",
          "title": "Loop Id",
          "type": "string"
        },
        "status": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Status",
          "type": "string"
        },
        "ready": {
          "title": "Ready",
          "type": "boolean"
        },
        "blockers": {
          "default": [],
          "items": {
            "type": "string"
          },
          "maxItems": 20,
          "title": "Blockers",
          "type": "array"
        }
      },
      "required": [
        "loop_id",
        "status",
        "ready"
      ],
      "title": "LoopSendabilityGetResultV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for campaigns.launch.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "loop_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Loop Id"
    },
    "playbook_id": {
      "format": "uuid",
      "title": "Playbook Id",
      "type": "string"
    },
    "account_count": {
      "default": 0,
      "maximum": 50,
      "minimum": 0,
      "title": "Account Count",
      "type": "integer"
    },
    "sendability": {
      "anyOf": [
        {
          "$ref": "#/$defs/LoopSendabilityGetResultV1"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "blockers": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Blockers",
      "type": "array"
    },
    "next_step": {
      "maxLength": 500,
      "minLength": 1,
      "title": "Next Step",
      "type": "string"
    },
    "campaign_uri": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Campaign Uri",
      "type": "string"
    },
    "hiveloop_uri": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Hiveloop Uri"
    }
  },
  "required": [
    "campaign_id",
    "playbook_id",
    "next_step",
    "campaign_uri"
  ],
  "title": "PublicCampaignsLaunchResultV2",
  "type": "object"
}

Get campaign LinkedIn readiness

campaigns.linkedin_readiness.get.v2

Use when: Check whether a campaign's playbook can run LinkedIn steps.

Avoid when: Sendability after launch already includes LinkedIn blockers.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.linkedin_readiness.get.v2",
      "arguments": {
        "campaign_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": {
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpPublicCampaignsLinkedinReadinessGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for campaigns.linkedin_readiness.get.v2; preserves the established validators.",
  "properties": {
    "requires_linkedin": {
      "title": "Requires Linkedin",
      "type": "boolean"
    },
    "connected": {
      "title": "Connected",
      "type": "boolean"
    },
    "can_activate": {
      "title": "Can Activate",
      "type": "boolean"
    },
    "blockers": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Blockers",
      "type": "array"
    }
  },
  "required": [
    "requires_linkedin",
    "connected",
    "can_activate"
  ],
  "title": "PublicCampaignsLinkedinReadinessGetResultV2",
  "type": "object"
}

List campaigns

campaigns.list.v2

Use when: List campaigns in this workspace (status, playbook, audience size).

Avoid when: Do not use this to create a campaign — that is campaigns.launch.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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.list.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": {
    "status": {
      "anyOf": [
        {
          "maxLength": 32,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Status used by the public campaigns list input v2 operation.",
      "title": "Status"
    },
    "limit": {
      "default": 25,
      "description": "Maximum number of records to return in this page.",
      "maximum": 50,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "McpPublicCampaignsListInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "CampaignListItemV1": {
      "additionalProperties": false,
      "properties": {
        "campaign_id": {
          "format": "uuid",
          "title": "Campaign Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "status": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Status",
          "type": "string"
        },
        "playbook_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Playbook Id"
        },
        "playbook_name": {
          "anyOf": [
            {
              "maxLength": 255,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Playbook Name"
        },
        "account_count": {
          "default": 0,
          "maximum": 100000,
          "minimum": 0,
          "title": "Account Count",
          "type": "integer"
        },
        "has_signal_monitoring": {
          "default": false,
          "title": "Has Signal Monitoring",
          "type": "boolean"
        },
        "updated_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Updated At"
        }
      },
      "required": [
        "campaign_id",
        "name",
        "status"
      ],
      "title": "CampaignListItemV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for campaigns.list.v2; preserves the established validators.",
  "properties": {
    "campaigns": {
      "default": [],
      "items": {
        "$ref": "#/$defs/CampaignListItemV1"
      },
      "maxItems": 50,
      "title": "Campaigns",
      "type": "array"
    }
  },
  "title": "PublicCampaignsListResultV2",
  "type": "object"
}

Preview campaign monitoring

campaigns.monitoring.preview.v2

Use when: Preview signal monitoring for a campaign without writing.

Avoid when: Do not use this to update monitoring.

Effects: May change workspace state or start work; describe before invoking.

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: runs:create. Approval: operation authorization. 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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.monitoring.preview.v2",
      "arguments": {
        "campaign_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": {
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "signal_types": {
      "default": [],
      "description": "Signal types used by the public campaigns monitoring preview input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Signal Types",
      "type": "array"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpPublicCampaignsMonitoringPreviewInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for campaigns.monitoring.preview.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "desired_signal_types": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Desired Signal Types",
      "type": "array"
    },
    "current_monitor_count": {
      "default": 0,
      "maximum": 100000,
      "minimum": 0,
      "title": "Current Monitor Count",
      "type": "integer"
    },
    "summary": {
      "maxLength": 2000,
      "minLength": 1,
      "title": "Summary",
      "type": "string"
    },
    "executable": {
      "const": false,
      "default": false,
      "title": "Executable",
      "type": "boolean"
    }
  },
  "required": [
    "campaign_id",
    "summary"
  ],
  "title": "PublicCampaignsMonitoringPreviewResultV2",
  "type": "object"
}

Set campaign monitoring

campaigns.monitoring.set.v2

Use when: You have an exact campaign and approved signal types to monitor.

Avoid when: You need to search recorded signals or create a campaign.

Effects: Updates monitoring configuration. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.monitoring.set.v2",
      "arguments": {
        "campaign_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"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "signal_types": {
      "default": [],
      "description": "Signal types used by the campaigns monitoring set input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Signal Types",
      "type": "array"
    },
    "trigger_threshold": {
      "anyOf": [
        {
          "maximum": 100,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Trigger threshold used by the campaigns monitoring set input v2 operation.",
      "title": "Trigger Threshold"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpMcpCampaignsMonitoringSetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "campaign_id",
    "status"
  ],
  "title": "CampaignsMutationResultV2",
  "type": "object"
}

Pause a campaign

campaigns.pause.v2

Use when: You approved pausing an exact campaign program so it stops creating new activations.

Avoid when: You intend to pause only one in-flight Hiveloop.

Effects: Pauses the campaign, cancels Parallel watches, and idles child Hiveloops. Existing provider state is reconciled by Core.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.pause.v2",
      "arguments": {
        "campaign_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"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpMcpCampaignsPauseInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "campaign_id",
    "status"
  ],
  "title": "CampaignsMutationResultV2",
  "type": "object"
}

Set a campaign playbook

campaigns.playbook.set.v2

Use when: You have exact campaign and playbook IDs and approved changing the campaign's bound content.

Avoid when: You need to find playbooks or change the audience.

Effects: Changes the campaign's playbook. Does not generate drafts or send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.playbook.set.v2",
      "arguments": {
        "campaign_id": "00000000-0000-4000-8000-000000000001",
        "playbook_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"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "playbook_id": {
      "description": "Exact playbook UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Playbook Id",
      "type": "string"
    }
  },
  "required": [
    "campaign_id",
    "playbook_id"
  ],
  "title": "McpMcpCampaignsPlaybookSetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "playbook_id": {
      "format": "uuid",
      "title": "Playbook Id",
      "type": "string"
    }
  },
  "required": [
    "campaign_id",
    "playbook_id"
  ],
  "title": "CampaignsPlaybookSetResultV2",
  "type": "object"
}

Resume a campaign

campaigns.resume.v2

Use when: Resume a paused campaign.

Avoid when: This does not start a Hiveloop. Use hiveloops.start.v2 when sendability is ready.

Effects: Resumes the campaign. Does not send by itself.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.resume.v2",
      "arguments": {
        "campaign_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"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpMcpCampaignsResumeInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "campaign_id",
    "status"
  ],
  "title": "CampaignsMutationResultV2",
  "type": "object"
}

List campaign signals

campaigns.signals.list.v2

Use when: List signals already attached to a campaign.

Avoid when: Do not use this to search workspace signals — that is signals.search.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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.signals.list.v2",
      "arguments": {
        "campaign_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": {
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign 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": [
    "campaign_id"
  ],
  "title": "McpPublicCampaignsSignalsListInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "CampaignSignalItemV1": {
      "additionalProperties": false,
      "properties": {
        "event_id": {
          "format": "uuid",
          "title": "Event Id",
          "type": "string"
        },
        "title": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Title",
          "type": "string"
        },
        "account_name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Account Name",
          "type": "string"
        },
        "action_taken": {
          "anyOf": [
            {
              "maxLength": 128,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Action Taken"
        },
        "detected_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Detected At"
        }
      },
      "required": [
        "event_id",
        "title",
        "account_name"
      ],
      "title": "CampaignSignalItemV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for campaigns.signals.list.v2; preserves the established validators.",
  "properties": {
    "signals": {
      "default": [],
      "items": {
        "$ref": "#/$defs/CampaignSignalItemV1"
      },
      "maxItems": 50,
      "title": "Signals",
      "type": "array"
    }
  },
  "title": "PublicCampaignsSignalsListResultV2",
  "type": "object"
}

Campaigns summary

campaigns.summary.v2

Use when: Aggregate campaign counts and health.

Avoid when: Do not use this when you need a specific campaign — read hivekind://campaign/{id} or campaigns.list.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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.summary.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": {
    "include_archived": {
      "default": false,
      "description": "Whether archived records should be included.",
      "title": "Include Archived",
      "type": "boolean"
    },
    "limit": {
      "default": 20,
      "description": "Maximum number of records to return in this page.",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "McpPublicCampaignsSummaryInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "CampaignSummaryV1": {
      "additionalProperties": false,
      "properties": {
        "campaign_id": {
          "format": "uuid",
          "title": "Campaign Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "status": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Status",
          "type": "string"
        },
        "mode": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Mode"
        },
        "account_count": {
          "minimum": 0,
          "title": "Account Count",
          "type": "integer"
        },
        "loop_count": {
          "minimum": 0,
          "title": "Loop Count",
          "type": "integer"
        },
        "active_loop_count": {
          "minimum": 0,
          "title": "Active Loop Count",
          "type": "integer"
        },
        "updated_at": {
          "format": "date-time",
          "title": "Updated At",
          "type": "string"
        }
      },
      "required": [
        "campaign_id",
        "name",
        "status",
        "account_count",
        "loop_count",
        "active_loop_count",
        "updated_at"
      ],
      "title": "CampaignSummaryV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for campaigns.summary.v2; preserves the established validators.",
  "properties": {
    "campaigns": {
      "default": [],
      "items": {
        "$ref": "#/$defs/CampaignSummaryV1"
      },
      "maxItems": 100,
      "title": "Campaigns",
      "type": "array"
    },
    "campaign_status_counts": {
      "additionalProperties": {
        "type": "integer"
      },
      "maxProperties": 32,
      "title": "Campaign Status Counts",
      "type": "object"
    },
    "loop_status_counts": {
      "additionalProperties": {
        "type": "integer"
      },
      "maxProperties": 32,
      "title": "Loop Status Counts",
      "type": "object"
    }
  },
  "title": "PublicCampaignsSummaryResultV2",
  "type": "object"
}

Update a campaign

campaigns.update.v2

Use when: Rename or edit an existing campaign.

Avoid when: Do not use this to add audience or bind a playbook.

Effects: Updates campaign fields. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "campaigns.update.v2",
      "arguments": {
        "campaign_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"
    },
    "campaign_id": {
      "description": "Exact campaign UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Human-readable name for the record.",
      "title": "Name"
    },
    "description": {
      "anyOf": [
        {
          "maxLength": 4000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Human-readable description of the record or requested outcome.",
      "title": "Description"
    },
    "expected_status": {
      "anyOf": [
        {
          "maxLength": 32,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Expected status used by the public campaigns update input v2 operation.",
      "title": "Expected Status"
    }
  },
  "required": [
    "campaign_id"
  ],
  "title": "McpMcpPublicCampaignsUpdateInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for campaigns.update.v2; preserves the established validators.",
  "properties": {
    "campaign_id": {
      "format": "uuid",
      "title": "Campaign Id",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "campaign_id",
    "status"
  ],
  "title": "PublicCampaignsUpdateResultV2",
  "type": "object"
}

Approve a Hiveloop draft

drafts.approve.v2

Use when: Mark a draft approved. Still does not send.

Avoid when: Sending is hiveloops.start.v2 after sendability is ready.

Effects: Approves a draft. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "drafts.approve.v2",
      "arguments": {
        "draft_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": {
    "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"
    },
    "loop_id": {
      "description": "Exact loop UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "draft_id": {
      "description": "Exact draft UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Draft Id",
      "type": "string"
    }
  },
  "required": [
    "loop_id",
    "draft_id"
  ],
  "title": "McpMcpPublicDraftsApproveInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for drafts.approve.v2; preserves the established validators.",
  "properties": {
    "draft_id": {
      "format": "uuid",
      "title": "Draft Id",
      "type": "string"
    },
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "contact_id": {
      "format": "uuid",
      "title": "Contact Id",
      "type": "string"
    },
    "node_id": {
      "maxLength": 128,
      "minLength": 1,
      "title": "Node Id",
      "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"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "draft_id",
    "loop_id",
    "contact_id",
    "node_id",
    "channel",
    "status"
  ],
  "title": "PublicDraftsApproveResultV2",
  "type": "object"
}

Generate Hiveloop drafts

drafts.generate.v2

Use when: Queue draft generation for a Hiveloop. Does not send.

Avoid when: campaigns.launch.v2 already queues drafts. Use this only to regenerate.

Effects: Queues draft generation. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "drafts.generate.v2",
      "arguments": {
        "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": {
    "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"
    },
    "loop_id": {
      "description": "Exact loop UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "node_id": {
      "anyOf": [
        {
          "maxLength": 128,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact node UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Node Id"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpMcpPublicDraftsGenerateInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for drafts.generate.v2; preserves the established validators.",
  "properties": {
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    },
    "started": {
      "title": "Started",
      "type": "boolean"
    }
  },
  "required": [
    "loop_id",
    "status",
    "started"
  ],
  "title": "PublicDraftsGenerateResultV2",
  "type": "object"
}

Get a Hiveloop draft

drafts.get.v2

Use when: Load one draft's copy.

Avoid when: Do not use this to list drafts.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "drafts.get.v2",
      "arguments": {
        "draft_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"
    },
    "draft_id": {
      "description": "Exact draft UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Draft Id",
      "type": "string"
    }
  },
  "required": [
    "loop_id",
    "draft_id"
  ],
  "title": "McpPublicDraftsGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for drafts.get.v2; preserves the established validators.",
  "properties": {
    "draft_id": {
      "format": "uuid",
      "title": "Draft Id",
      "type": "string"
    },
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "contact_id": {
      "format": "uuid",
      "title": "Contact Id",
      "type": "string"
    },
    "node_id": {
      "maxLength": 128,
      "minLength": 1,
      "title": "Node Id",
      "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"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "draft_id",
    "loop_id",
    "contact_id",
    "node_id",
    "channel",
    "status"
  ],
  "title": "PublicDraftsGetResultV2",
  "type": "object"
}

List Hiveloop drafts

drafts.list.v2

Use when: List message drafts on a Hiveloop.

Avoid when: Do not use this to generate drafts — that is drafts.generate.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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "drafts.list.v2",
      "arguments": {
        "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": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact contact UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Contact Id"
    },
    "node_id": {
      "anyOf": [
        {
          "maxLength": 128,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact node UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Node Id"
    },
    "limit": {
      "default": 30,
      "description": "Maximum number of records to return in this page.",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpPublicDraftsListInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "DraftSummaryV1": {
      "additionalProperties": false,
      "properties": {
        "draft_id": {
          "format": "uuid",
          "title": "Draft Id",
          "type": "string"
        },
        "loop_id": {
          "format": "uuid",
          "title": "Loop Id",
          "type": "string"
        },
        "contact_id": {
          "format": "uuid",
          "title": "Contact Id",
          "type": "string"
        },
        "node_id": {
          "maxLength": 128,
          "minLength": 1,
          "title": "Node Id",
          "type": "string"
        },
        "channel": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Channel",
          "type": "string"
        },
        "subject": {
          "anyOf": [
            {
              "maxLength": 1000,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Subject"
        },
        "status": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Status",
          "type": "string"
        }
      },
      "required": [
        "draft_id",
        "loop_id",
        "contact_id",
        "node_id",
        "channel",
        "status"
      ],
      "title": "DraftSummaryV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for drafts.list.v2; preserves the established validators.",
  "properties": {
    "drafts": {
      "default": [],
      "items": {
        "$ref": "#/$defs/DraftSummaryV1"
      },
      "maxItems": 100,
      "title": "Drafts",
      "type": "array"
    }
  },
  "title": "PublicDraftsListResultV2",
  "type": "object"
}

Update a Hiveloop draft

drafts.update.v2

Use when: Edit draft subject/body.

Avoid when: Do not use this to approve or send.

Effects: Updates draft copy. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "drafts.update.v2",
      "arguments": {
        "draft_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": {
    "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"
    },
    "loop_id": {
      "description": "Exact loop UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "draft_id": {
      "description": "Exact draft UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Draft Id",
      "type": "string"
    },
    "subject": {
      "anyOf": [
        {
          "maxLength": 1000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Subject used by the public drafts update input v2 operation.",
      "title": "Subject"
    },
    "content": {
      "anyOf": [
        {
          "maxLength": 8000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Content used by the public drafts update input v2 operation.",
      "title": "Content"
    }
  },
  "required": [
    "loop_id",
    "draft_id"
  ],
  "title": "McpMcpPublicDraftsUpdateInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for drafts.update.v2; preserves the established validators.",
  "properties": {
    "draft_id": {
      "format": "uuid",
      "title": "Draft Id",
      "type": "string"
    },
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "contact_id": {
      "format": "uuid",
      "title": "Contact Id",
      "type": "string"
    },
    "node_id": {
      "maxLength": 128,
      "minLength": 1,
      "title": "Node Id",
      "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"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "draft_id",
    "loop_id",
    "contact_id",
    "node_id",
    "channel",
    "status"
  ],
  "title": "PublicDraftsUpdateResultV2",
  "type": "object"
}

Preview loop activation

hiveloops.activation.preview.v2

Use when: Preview activating a Hiveloop without sending.

Avoid when: Do not use this to start sending — that is hiveloops.start.v2 after sendability is ready.

Effects: May change workspace state or start work; describe before invoking.

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: runs:read. Approval: review_only_preflight_no_execution. 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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.activation.preview.v2",
      "arguments": {
        "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"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpPublicHiveloopsActivationPreviewInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "LoopActivationPreviewV1": {
      "additionalProperties": false,
      "description": "A non-executable preflight for a consequential campaign activation.",
      "properties": {
        "schema_version": {
          "const": "1",
          "default": "1",
          "title": "Schema Version",
          "type": "string"
        },
        "loop_id": {
          "format": "uuid",
          "title": "Loop Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "current_status": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Current Status",
          "type": "string"
        },
        "proposed_status": {
          "const": "active",
          "default": "active",
          "title": "Proposed Status",
          "type": "string"
        },
        "step_count": {
          "maximum": 500,
          "minimum": 0,
          "title": "Step Count",
          "type": "integer"
        },
        "target_account_count": {
          "minimum": 0,
          "title": "Target Account Count",
          "type": "integer"
        },
        "active_activation_count": {
          "minimum": 0,
          "title": "Active Activation Count",
          "type": "integer"
        },
        "blockers": {
          "default": [],
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "title": "Blockers",
          "type": "array"
        },
        "warnings": {
          "default": [],
          "items": {
            "type": "string"
          },
          "maxItems": 10,
          "title": "Warnings",
          "type": "array"
        },
        "exact_approval_required": {
          "const": true,
          "default": true,
          "title": "Exact Approval Required",
          "type": "boolean"
        },
        "executable": {
          "const": false,
          "default": false,
          "title": "Executable",
          "type": "boolean"
        }
      },
      "required": [
        "loop_id",
        "name",
        "current_status",
        "step_count",
        "target_account_count",
        "active_activation_count"
      ],
      "title": "LoopActivationPreviewV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for hiveloops.activation.preview.v2; preserves the established validators.",
  "properties": {
    "preview": {
      "$ref": "#/$defs/LoopActivationPreviewV1"
    }
  },
  "required": [
    "preview"
  ],
  "title": "PublicHiveloopsActivationPreviewResultV2",
  "type": "object"
}

Approve an auto-draft Hiveloop

hiveloops.auto_draft.approve.v2

Use when: Approve a signal auto-draft Hiveloop. Still requires hiveloops.start.v2 to send.

Avoid when: Do not use this as a substitute for hiveloops.start.v2.

Effects: Approves auto-draft. Does not send until start.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.auto_draft.approve.v2",
      "arguments": {
        "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": {
    "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"
    },
    "loop_id": {
      "description": "Exact loop UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpMcpPublicHiveloopsAutoDraftApproveInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for hiveloops.auto_draft.approve.v2; preserves the established validators.",
  "properties": {
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    },
    "started": {
      "title": "Started",
      "type": "boolean"
    }
  },
  "required": [
    "loop_id",
    "status",
    "started"
  ],
  "title": "PublicHiveloopsAutoDraftApproveResultV2",
  "type": "object"
}

Create a draft loop

hiveloops.draft.create.v2

Use when: Create a draft Hiveloop without a campaign launch.

Avoid when: Prefer campaigns.launch.v2, which creates the campaign and Hiveloop together.

Effects: Creates a draft Hiveloop. Does not send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.draft.create.v2",
      "arguments": {
        "loop_proposal": {
          "name": "Example name",
          "objective": "Example objective",
          "proposal_id": "00000000-0000-4000-8000-000000000001",
          "steps": [
            {
              "channel": "Example channel",
              "delay_days": 1,
              "purpose": "Example purpose",
              "sequence": 1
            }
          ],
          "target_personas": [
            "Example target personas"
          ],
          "tone": "Example tone"
        }
      },
      "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
{
  "$defs": {
    "LoopProposalV1": {
      "additionalProperties": false,
      "properties": {
        "proposal_id": {
          "format": "uuid",
          "title": "Proposal Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "objective": {
          "maxLength": 2000,
          "minLength": 1,
          "title": "Objective",
          "type": "string"
        },
        "target_personas": {
          "items": {
            "type": "string"
          },
          "title": "Target Personas",
          "type": "array"
        },
        "tone": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Tone",
          "type": "string"
        },
        "template_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Template Id"
        },
        "steps": {
          "items": {
            "$ref": "#/$defs/LoopStepProposalV1"
          },
          "maxItems": 6,
          "minItems": 1,
          "title": "Steps",
          "type": "array"
        },
        "requires_review": {
          "const": true,
          "default": true,
          "title": "Requires Review",
          "type": "boolean"
        },
        "executed": {
          "const": false,
          "default": false,
          "title": "Executed",
          "type": "boolean"
        }
      },
      "required": [
        "proposal_id",
        "name",
        "objective",
        "target_personas",
        "tone",
        "steps"
      ],
      "title": "LoopProposalV1",
      "type": "object"
    },
    "LoopStepProposalV1": {
      "additionalProperties": false,
      "properties": {
        "sequence": {
          "maximum": 20,
          "minimum": 1,
          "title": "Sequence",
          "type": "integer"
        },
        "channel": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Channel",
          "type": "string"
        },
        "purpose": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Purpose",
          "type": "string"
        },
        "delay_days": {
          "maximum": 90,
          "minimum": 0,
          "title": "Delay Days",
          "type": "integer"
        }
      },
      "required": [
        "sequence",
        "channel",
        "purpose",
        "delay_days"
      ],
      "title": "LoopStepProposalV1",
      "type": "object"
    }
  },
  "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"
    },
    "loop_proposal": {
      "$ref": "#/$defs/LoopProposalV1",
      "description": "Loop proposal used by the public hiveloops draft create input v2 operation."
    }
  },
  "required": [
    "loop_proposal"
  ],
  "title": "McpMcpPublicHiveloopsDraftCreateInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for hiveloops.draft.create.v2; preserves the established validators.",
  "properties": {
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "status": {
      "const": "draft",
      "default": "draft",
      "title": "Status",
      "type": "string"
    },
    "name": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "reversible": {
      "const": true,
      "default": true,
      "title": "Reversible",
      "type": "boolean"
    }
  },
  "required": [
    "loop_id",
    "name"
  ],
  "title": "PublicHiveloopsDraftCreateResultV2",
  "type": "object"
}

Pause a Hiveloop

hiveloops.pause.v2

Use when: Pause sending on one in-flight Hiveloop.

Avoid when: To pause the whole campaign program, use campaigns.pause.v2.

Effects: Stops sending on that Hiveloop.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.pause.v2",
      "arguments": {
        "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": {
    "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"
    },
    "loop_id": {
      "description": "Exact loop UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "expected_status": {
      "const": "active",
      "default": "active",
      "description": "Expected status used by the public hiveloops pause input v2 operation.",
      "title": "Expected Status",
      "type": "string"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpMcpPublicHiveloopsPauseInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for hiveloops.pause.v2; preserves the established validators.",
  "properties": {
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "name": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "previous_status": {
      "const": "active",
      "default": "active",
      "title": "Previous Status",
      "type": "string"
    },
    "status": {
      "const": "paused",
      "default": "paused",
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "loop_id",
    "name"
  ],
  "title": "PublicHiveloopsPauseResultV2",
  "type": "object"
}

Propose a loop

hiveloops.propose.v2

Use when: Preview a Hiveloop proposal without creating it.

Avoid when: To create and prepare outreach, use campaigns.launch.v2 instead of this plus many follow-up tools.

Effects: May change workspace state or start work; describe before invoking.

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: runs:create. Approval: operation authorization. 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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.propose.v2",
      "arguments": {
        "objective": "Example objective",
        "target_personas": [
          "Example target personas"
        ]
      },
      "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": {
    "objective": {
      "description": "Plain-language outcome the user wants from this operation.",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Objective",
      "type": "string"
    },
    "target_personas": {
      "description": "Target personas used by the public hiveloops propose input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1,
      "title": "Target Personas",
      "type": "array"
    },
    "tone": {
      "default": "professional",
      "description": "Tone used by the public hiveloops propose input v2 operation.",
      "maxLength": 64,
      "minLength": 1,
      "title": "Tone",
      "type": "string"
    },
    "template_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact template UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Template Id"
    },
    "maximum_touchpoints": {
      "default": 3,
      "description": "Maximum touchpoints used to bound matching records.",
      "maximum": 6,
      "minimum": 1,
      "title": "Maximum Touchpoints",
      "type": "integer"
    },
    "route_key": {
      "anyOf": [
        {
          "pattern": "^[a-z][a-z0-9_.-]{2,127}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Route key used by the public hiveloops propose input v2 operation.",
      "title": "Route Key"
    },
    "channels": {
      "default": [],
      "description": "Channels used by the public hiveloops propose input v2 operation.",
      "items": {
        "type": "string"
      },
      "maxItems": 3,
      "title": "Channels",
      "type": "array"
    }
  },
  "required": [
    "objective",
    "target_personas"
  ],
  "title": "McpPublicHiveloopsProposeInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "LoopProposalV1": {
      "additionalProperties": false,
      "properties": {
        "proposal_id": {
          "format": "uuid",
          "title": "Proposal Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "objective": {
          "maxLength": 2000,
          "minLength": 1,
          "title": "Objective",
          "type": "string"
        },
        "target_personas": {
          "items": {
            "type": "string"
          },
          "title": "Target Personas",
          "type": "array"
        },
        "tone": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Tone",
          "type": "string"
        },
        "template_id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Template Id"
        },
        "steps": {
          "items": {
            "$ref": "#/$defs/LoopStepProposalV1"
          },
          "maxItems": 6,
          "minItems": 1,
          "title": "Steps",
          "type": "array"
        },
        "requires_review": {
          "const": true,
          "default": true,
          "title": "Requires Review",
          "type": "boolean"
        },
        "executed": {
          "const": false,
          "default": false,
          "title": "Executed",
          "type": "boolean"
        }
      },
      "required": [
        "proposal_id",
        "name",
        "objective",
        "target_personas",
        "tone",
        "steps"
      ],
      "title": "LoopProposalV1",
      "type": "object"
    },
    "LoopStepProposalV1": {
      "additionalProperties": false,
      "properties": {
        "sequence": {
          "maximum": 20,
          "minimum": 1,
          "title": "Sequence",
          "type": "integer"
        },
        "channel": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Channel",
          "type": "string"
        },
        "purpose": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Purpose",
          "type": "string"
        },
        "delay_days": {
          "maximum": 90,
          "minimum": 0,
          "title": "Delay Days",
          "type": "integer"
        }
      },
      "required": [
        "sequence",
        "channel",
        "purpose",
        "delay_days"
      ],
      "title": "LoopStepProposalV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for hiveloops.propose.v2; preserves the established validators.",
  "properties": {
    "proposal": {
      "$ref": "#/$defs/LoopProposalV1"
    }
  },
  "required": [
    "proposal"
  ],
  "title": "PublicHiveloopsProposeResultV2",
  "type": "object"
}

Resume a Hiveloop

hiveloops.resume.v2

Use when: Resume a paused Hiveloop.

Avoid when: Use campaigns.resume.v2 to resume the parent campaign.

Effects: Resumes the Hiveloop.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.resume.v2",
      "arguments": {
        "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": {
    "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"
    },
    "loop_id": {
      "description": "Exact loop UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "expected_status": {
      "const": "paused",
      "default": "paused",
      "description": "Expected status used by the public hiveloops resume input v2 operation.",
      "title": "Expected Status",
      "type": "string"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpMcpPublicHiveloopsResumeInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for hiveloops.resume.v2; preserves the established validators.",
  "properties": {
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "name": {
      "maxLength": 255,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    }
  },
  "required": [
    "loop_id",
    "name",
    "status"
  ],
  "title": "PublicHiveloopsResumeResultV2",
  "type": "object"
}

Get Hiveloop sendability

hiveloops.sendability.get.v2

Use when: You have an exact Hiveloop ID and need readiness blockers immediately before starting or resuming sends.

Avoid when: You need general campaign status or want to bypass a blocker.

Effects: Returns current readiness and blockers. 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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.sendability.get.v2",
      "arguments": {
        "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"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpHiveloopsSendabilityGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    },
    "ready": {
      "title": "Ready",
      "type": "boolean"
    },
    "blockers": {
      "default": [],
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "title": "Blockers",
      "type": "array"
    }
  },
  "required": [
    "loop_id",
    "status",
    "ready"
  ],
  "title": "HiveloopsSendabilityGetResultV2",
  "type": "object"
}

Start a Hiveloop

hiveloops.start.v2

Use when: The exact Hiveloop is sendable and the user explicitly approved starting provider sends.

Avoid when: Sendability is unknown or blocked, or you only want drafts, previews, or scheduling.

Effects: Starts outbound sending as the user. This provider action cannot be unsent.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.start.v2",
      "arguments": {
        "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": {
    "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"
    },
    "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_ids": {
      "default": [],
      "description": "Exact contact UUIDs returned by a Hivekind search, list, get, preview, or resource call.",
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "maxItems": 200,
      "title": "Contact Ids",
      "type": "array"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpMcpHiveloopsStartInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "properties": {
    "loop_id": {
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "status": {
      "maxLength": 64,
      "minLength": 1,
      "title": "Status",
      "type": "string"
    },
    "started": {
      "title": "Started",
      "type": "boolean"
    }
  },
  "required": [
    "loop_id",
    "status",
    "started"
  ],
  "title": "HiveloopsStartResultV2",
  "type": "object"
}

Get Hiveloop status

hiveloops.status.get.v2

Use when: Load one Hiveloop by id when resource reads are unavailable.

Avoid when: Prefer hivekind://hiveloop/{id}. Use hiveloops.sendability.get.v2 to know if it can send.

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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.status.get.v2",
      "arguments": {
        "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"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpPublicHiveloopsStatusGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "$defs": {
    "LoopStatusSnapshotV1": {
      "additionalProperties": false,
      "properties": {
        "loop_id": {
          "format": "uuid",
          "title": "Loop Id",
          "type": "string"
        },
        "name": {
          "maxLength": 255,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "status": {
          "maxLength": 64,
          "minLength": 1,
          "title": "Status",
          "type": "string"
        }
      },
      "required": [
        "loop_id",
        "name",
        "status"
      ],
      "title": "LoopStatusSnapshotV1",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "V2 result for hiveloops.status.get.v2; preserves the established validators.",
  "properties": {
    "loop": {
      "$ref": "#/$defs/LoopStatusSnapshotV1"
    }
  },
  "required": [
    "loop"
  ],
  "title": "PublicHiveloopsStatusGetResultV2",
  "type": "object"
}

Loop and contact touch timeline

hiveloops.timeline.get.v2

Use when: Use the existing Core workflow: Loop and contact touch timeline. Existing loop timeline; not all campaigns and rep activity joined across an account.

Avoid when: Do not infer unsupported history, attribution, or commitments from this response.

Effects: 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: accounts: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.campaign.v2",
  "arguments": {
    "params": {
      "action": "invoke",
      "operation": "hiveloops.timeline.get.v2",
      "arguments": {
        "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 existing resource UUID; resolve it before invoking.",
      "format": "uuid",
      "title": "Loop Id",
      "type": "string"
    },
    "contact_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Exact contact UUID returned by a Hivekind search, list, get, preview, or resource call.",
      "title": "Contact Id"
    },
    "limit": {
      "default": 50,
      "description": "Maximum number of records to return in this page.",
      "maximum": 500,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "loop_id"
  ],
  "title": "McpPublicHiveloopsTimelineGetInputV2",
  "type": "object"
}
Output schema inside the result envelope
{
  "additionalProperties": false,
  "description": "V2 result for hiveloops.timeline.get.v2; preserves the established validators.",
  "properties": {
    "title": {
      "title": "Title",
      "type": "string"
    },
    "data": {
      "additionalProperties": true,
      "title": "Data",
      "type": "object"
    },
    "limitations": {
      "title": "Limitations",
      "type": "string"
    },
    "applied_parameters": {
      "additionalProperties": true,
      "title": "Applied Parameters",
      "type": "object"
    },
    "source_path": {
      "title": "Source Path",
      "type": "string"
    },
    "job_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Core job identifier when an operation enqueues work; poll jobs.status.get.v2 and read the resulting resource.",
      "title": "Job Id"
    },
    "queued": {
      "default": false,
      "title": "Queued",
      "type": "boolean"
    },
    "outcome_status": {
      "default": "partial",
      "enum": [
        "completed",
        "partial",
        "needs_input",
        "awaiting_approval"
      ],
      "title": "Outcome Status",
      "type": "string"
    },
    "read_back_verified": {
      "default": false,
      "title": "Read Back Verified",
      "type": "boolean"
    },
    "verification_message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Verification Message"
    }
  },
  "required": [
    "title",
    "data",
    "limitations",
    "source_path"
  ],
  "title": "PublicHiveloopsTimelineGetResultV2",
  "type": "object"
}