Manage Email Outreach Queue
manage_email_outreach_queueBulk operations (status, approve-all, cancel_all) act on the current agent's queue when run inside an agent, and across the whole account from account-level chat — except a bulk cancel_all or approve-all, which from account-level chat is rejected unless agent_id names the campaign, so it can't hit every campaign at once. Targeting one person by recipient_email reaches them in any agent. The next send time and per-mailbox usage stay account-wide (the send rate is per-mailbox).
For pausing/resuming the campaign, use update_agent to set the agent status to 'paused' or 'active' instead. Dict with action result and current queue status
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | For 'update' — new body text. | |
| action | Yes | One of: - 'status': Get full queue details (pending/sent/failed items). The `pending_items` / `pending_approval_items` lists cap at 50 each, each with a `pending_truncated` / `pending_approval_truncated` flag — when a list's flag is True, pass `offset` (offset += 50) to read the next page. Each item carries the `mailbox` it sends from; the account-level `mailboxes` list gives each mailbox's remaining daily headroom. The top-level `cancelled_by_kind` maps each cancel cause to its count (`recipient_replied`, `task_deleted`, `auto_shelved`, …; pre-taxonomy rows under `unknown`) — read it to answer "how much outreach was cancelled, and why?". - 'update': Edit a queued email's subject and/or body. Requires recipient_email. Pass subject and/or body to change — no cancel-and-re-queue needed. Send order is derived, not per-row scheduled; to pause or resume the campaign use update_agent (see the note above). - 'approve': Send authorization belongs to the user, so this action needs a message that arrived after the drafts were queued and explicitly says to approve or send them. A message from before the drafts existed cannot authorize them — a request to review them, to approve them later, or to be able to approve from chat means: report that the queue is awaiting approval and end your turn; the user's next message decides. Once authorized: if recipient_email is given, approve only that item, otherwise approve ALL pending_approval items. From account-level chat an approve-all is rejected unless agent_id names the campaign — it must not fire every campaign's drafts into sending at once. - 'cancel': Cancel a queued email. Pass recipient_email to cancel that one person. To cancel the ENTIRE pending queue — which drops drafts the user already approved — you must pass cancel_all=True; an unscoped cancel without it is rejected. From account-level chat a cancel_all is rejected unless agent_id names the campaign to cancel — it must not clear every campaign's queue at once. | |
| offset | No | For 'status' only — skip this many items in each queued list before returning the next 50. Use it to page through a queue larger than 50 (offset=50 for items 51-100, etc.). | |
| subject | No | For 'update' — new subject line. | |
| agent_id | No | For 'cancel' and 'approve' — scope a bulk cancel_all / approve-all to one campaign's queue. Required from account-level chat (no active agent), where an unscoped bulk cancel or approve is rejected; call list_agents to get the id. | |
| cancel_all | No | For 'cancel' only — confirm a queue-wide cancel when no recipient_email is given. Guards against silently tearing down the whole campaign. | |
| as_teammate | No | Act on a consented teammate's email queue instead of your own — pass their email. Covers approve / cancel / update / status; a bulk approve-all / cancel_all must name one of the teammate's campaigns via agent_id. Gated on that teammate's act-on-behalf setting; a teammate who hasn't granted it is rejected. Omit for your own. | |
| recipient_email | No | For 'update', 'approve', and 'cancel' — target a specific recipient. Leave empty to apply to all items (not valid for 'update'; for 'cancel', requires cancel_all=True). |