Skip to main content
Glama

Move people to another campaign

argorant_move_campaign_leads
Destructive

Move people from this campaign into another campaign of the same workspace in one step, with their own fields (custom fields, personal lines and tags). Use it instead of an add plus a removal; to copy people without taking them out use argorant_add_campaign_leads with lead_ids and from_campaign_id. Choose them by lead_ids, addresses, tag, a CSV file or status. Only the people who landed in the other campaign leave this one. People who already got an email from this campaign stay unless the user clearly asks to move them too (include_contacted=true). The other campaign's own choice of addresses applies unless you pass grades. Always call it first with preview=true and tell the user the numbers; doing it needs confirmed=true after their clear yes. People already paid for cost nothing, and nothing is sent until the other campaign runs. 2,000 people or more move in the background, with a job_id for argorant_add_campaign_leads_status on this campaign. More in the docs at https://docs.argorant.com/docs/agents/tools#campaigns

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "campaign_id": "<campaign_id>",
      "to_campaign_id": "<to_campaign_id>"
    },
    "name": "argorant_move_campaign_leads"
  }
}

Input Schema

NameRequiredDescriptionDefault
tagNoEveryone who carries this tag.
fileNoCSV text of lead ids or email addresses, up to 100,000.
emailsNoThe people's email addresses.
gradesNo["valid"] or ["valid", "catch_all"]. Without it the other campaign's own choice applies.
statusNopending, queued, active, sent, replied, bounced, unsubscribed, failed or completed.
previewNoSet it to true to only count, without changing anything.
lead_idsNoIds from argorant_list_campaign_leads.
confirmedNotrue only after the user's clear yes to moving these people
campaign_idYesThe campaign the people are in now.
to_campaign_idYesThe campaign they move to.
include_contactedNoAlso move people who already got an email from this campaign. Only when the user asks for it.
keep_custom_fieldsNoBring the people's own fields along (default true).

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the destructiveHint=true annotation: it discloses that only leads who actually land in the target campaign leave the source, that contacted people are excluded by default, that the target campaign's address-selection rules apply unless grades are passed, that already-paid-for contacts cost nothing, that nothing is sent until the other campaign runs, and that >=2,000 leads run as a background job with a job_id polled via argorant_add_campaign_leads_status.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and front-loaded: the core move semantics come first, then the alternative, then the safety workflow, then billing and scaling. A few clauses (billing, docs link) could be trimmed, but nearly every sentence carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter destructive mutation with an output schema, the description covers everything an agent needs: consent workflow, partial-failure semantics, default exclusions, cost behavior, async threshold and follow-up tool. Return values are correctly left to the output schema rather than restated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning on top: preview is framed as a mandatory counting step, confirmed as a consent gate tied to the user's yes, include_contacted as an exception requiring an explicit request, and grades as an override of the target campaign's defaults. Selection methods (lead_ids, addresses, tag, CSV, status) are also summarized, though individual parameter formats still live in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Move people from this campaign into another campaign of the same workspace in one step') and immediately defines its distinguishing behavior versus a sibling, noting people leave the source while carrying their own fields. An agent can distinguish it from add/remove tools without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative for the copy case ('use argorant_add_campaign_leads with lead_ids and from_campaign_id') and contrasts it with add-plus-removal. It also gives hard preconditions: call first with preview=true, report numbers, then confirmed=true only after the user's clear yes, plus a narrower rule for including already-contacted people.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.