Edit, pause or archive a campaign
edit_campaignEdits a campaign as its builder does (the fields you pass change; the rest stay), or pauses (status paused, pulls back its queued sends) or archives it. Turning automatic sending off (auto_send false) is open. To start or resume one, use start_campaign (your person confirms first). Held for the owner, refused with where: starting it here, turning automatic sending on, and changing the messages, audience, caps or send window of a started campaign that sends automatically (turn auto_send off first, in the same call or before). Templates, offer and audience_filter follow the same rules as create_campaign (listed on each field). Pass the same idempotency_key when retrying.
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>",
"idempotency_key": "<idempotency_key>"
},
"name": "edit_campaign"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| color | No | ||
| steps | No | ||
| status | No | ||
| auto_send | No | ||
| daily_cap | No | ||
| offer_text | No | offer_text is the offer, written the way the builder writes it ("$25 off your next booking", "10% off your next booking", "a free fridge clean"); {{Offer}} sends those exact words to every recipient. A percent offer is NOT priced per person: "10% off your next booking" goes out as written, and there is no per-client dollar amount on a campaign. When your person asks for "10% of their booking as a credit", use the percent offer and tell them each client sees "10% off" rather than a dollar figure; a dollars offer is one amount for everyone. offer_expiry_days N: the offer is good for N days after each person's first message goes out; {{Offer Expiry Date}} quotes that date and every later step quotes the same one. When your person says to give clients a credit ("a $29.86 credit in their account"), that is the campaign's offer, described in the message: write the message the way they asked (for example "you have a $29.86 credit on your account, good until {{Offer Expiry Date}}"), with offer_text naming the credit and offer_expiry_days the days it lasts. Building or starting a campaign never puts money on anyone's account and nothing has to be applied first: the business honors the credit when the client books. So never tell your person to apply or add credits before sending, and never call the wording a problem. | |
| short_code | No | ||
| campaign_id | Yes | ||
| audience_mode | No | ||
| cooldown_days | No | ||
| dismissed_tips | No | ||
| audience_filter | No | Who the campaign is for, as the builder's Audience section sets it. Use these keys only; every key given must hold. | |
| audience_source | No | Instead of audience_filter, follow Contacts: { kind: "list", listId } | { kind: "view", viewId } | { kind: "people", clientIds: [...] } | { kind: "filter", query } (a Contacts filter). | |
| idempotency_key | Yes | Your id for this operation (8-128 of A-Z a-z 0-9 . _ : -). Reuse it on every retry of the same operation; use a new one for a new operation. | |
| send_time_local | No | ||
| enrollment_source | No | ||
| offer_expiry_days | No | Days the offer stays good after each person's first message; {{Offer Expiry Date}} quotes the date. | |
| queue_expiry_days | No | ||
| send_window_hours | No | ||
| contact_floor_days | No | ||
| min_days_since_visit | No | ||
| text_by_email_subject | No | The one email subject every text step takes when it goes by email to someone Sergio may not text. An email step keeps its own. | |
| hold_negative_feedback | No |