stop_campaign
Stop the campaign for good
Act · mcp:actApproval cardIrreversibleOpens at: Setting up the sending infrastructureCalls a providerStops the live campaign for good: not one more email goes out under it, and it never resumes. It opens an approval card; only the user's click stops it.
Stop the live campaign for good: not one more email goes out under it, and it never resumes or relaunches — a new campaign has to be prepared for anything to go out again. Only when the user asked in their own words. It does NOT stop: it opens an approval card, and only the user's click on it stops. Take the campaign id from get_campaign.Example
Section titled “Example”The user says
Stop the campaign for good.
{ "name": "stop_campaign", "arguments": { "campaignId": "6f1d3c2a-8b4e-4f7a-9c21-3e5d7b9a0f12" }}Arguments
Section titled “Arguments”campaignIdstringrequired1–60 charsThe campaign id the 'Live campaign' line of get_workspace_context names. Read it back from there — never guess it, and never stage a campaign to obtain it.
Input schema
{ "type": "object", "properties": { "campaignId": { "type": "string", "minLength": 1, "maxLength": 60, "description": "The campaign id the 'Live campaign' line of get_workspace_context names. Read it back from there — never guess it, and never stage a campaign to obtain it." } }, "required": ["campaignId"]}Result
Section titled “Result”Result kindapproval
kind"approval"status"pending" | "done" | "not_done" | "rejected"pending: waits for the user's click. done: approved and carried out. not_done: approved but refused when run. rejected: the user said no.
approvalobjectidstringactionstringsummarystringimpactstringirreversiblebooleanexpiresAtstring
outcomestring | nullWhat happened once decided, in a sentence.
decideHerebooleanTrue when the card shows Approve and Reject; otherwise the user decides in VibeSell.
appUrlstringWhere the user approves or rejects it in VibeSell.
Output schema
{ "type": "object", "properties": { "kind": { "type": "string", "const": "approval" }, "status": { "type": "string", "enum": ["pending", "done", "not_done", "rejected"], "description": "pending: waits for the user's click. done: approved and carried out. not_done: approved but refused when run. rejected: the user said no." }, "approval": { "type": "object", "properties": { "id": { "type": "string" }, "action": { "type": "string" }, "summary": { "type": "string" }, "impact": { "type": "string" }, "irreversible": { "type": "boolean" }, "expiresAt": { "type": "string" } }, "required": ["id", "action", "summary", "impact", "irreversible", "expiresAt"], "additionalProperties": false }, "outcome": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "What happened once decided, in a sentence." }, "decideHere": { "type": "boolean", "description": "True when the card shows Approve and Reject; otherwise the user decides in VibeSell." }, "appUrl": { "type": "string", "description": "Where the user approves or rejects it in VibeSell." } }, "required": ["kind", "status", "approval", "outcome", "decideHere", "appUrl"], "additionalProperties": false}Good to know
Section titled “Good to know”- Only when the user asked in their own words.
- For anything to go out again, a new campaign has to be prepared.
Related tools
Section titled “Related tools”resume_campaignResume the campaign
get_campaignRead the campaign