Actions

Call the updateCampaign MCP tool

Edit a LIVE (ACTIVE or PAUSED) campaign. Whitelist: name, the sender account SET (sender_account_ids, replaces the set; at least one must remain connected), reply_agent_daily_cap (the reply-agent's own daily auto-reply send cap, 1-500; NOT the campaign's overall sending volume, which is bounded per LinkedIn account instead), and step_edits: text-only message-copy edits to EXISTING steps, addressed by step_index or step_id (see each field's description); never adds, removes, or reorders steps, and never touches anything about a step besides its own text. EXPLICITLY REFUSED, with a reason and where the equivalent edit lives: structural sequence changes (add/remove/reorder steps: use updateDraftCampaign's custom_sequence before activating, or the app once live), lead list swap (updateDraftCampaign pre-launch, or the app), campaign type change (make a new campaign instead), and trigger_config (app only). Does not take post_id (hook changes on live or paused campaigns are app-only in V3). DRAFT campaigns are refused too, pointed at updateDraftCampaign; completed/failed campaigns are refused outright. Two-step: the FIRST call (no confirm_token) returns a preview (name, status, and a field-by-field before/after) plus a confirm_token and changes NOTHING. Relay the preview to the user, then call again with the same arguments plus confirm_token to apply. Changing anything about the request before confirming invalidates the token and returns a fresh preview instead of applying a stale approval.

Called through the Actions bridge: the response is that tool's own result, wrapped as { data: <tool result> } under HTTP 200. Billing, daily-cap, and confirm-step outcomes are embedded INSIDE data, never remapped to an HTTP status (see the templated /api/v1/actions/{toolName} operation above for the full protocol, and x-mcp-actions for this tool's machine-readable scope/cap/confirm_behavior fields). Authentication, request-shape, and optional idempotency-protocol failures still use their documented non-200 statuses.

post/api/v1/actions/updateCampaign

Request

  • Base URL: https://app.reachium.io
  • URL: https://app.reachium.io/api/v1/actions/updateCampaign
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Optional caller-generated key (8-200 characters: letters, digits, dot, underscore, colon, or hyphen). A final tool result is replayed for the same key and body. An ambiguous result remains 409 under that key; reconcile external state before using a new key. Reuse with a different body returns 422.

Request body

campaign_idstring uuid required

The ACTIVE or PAUSED campaign to edit (from getCampaigns).

namestring

New campaign name.

sender_account_idsstring[]

REPLACES the sender set (getCampaignSenderAccounts). At least one id must belong to a currently connected (status OK) account, or the whole call is refused: a live campaign cannot be left with zero usable senders.

reply_agent_daily_capinteger

The reply-agent's own daily auto-reply send cap for this campaign (1-500). This is NOT the campaign's overall outreach volume, which is bounded per sending LinkedIn account instead (getAccountLimits/updateAccountLimits), not per campaign. Out-of-range values are refused, not clamped.

lead_list_idstring

NOT SUPPORTED on a live campaign; refused. Use updateDraftCampaign before activating, or the app once launched.

typestring

NOT SUPPORTED: campaign type can never be changed over MCP. Create a new campaign of the right type instead.

trigger_configobject

NOT SUPPORTED on a live campaign; refused. Use the app.

post_idstring uuid nullable

NOT SUPPORTED on a live or paused campaign; refused. Pause the campaign and edit its hook post in the app trigger settings, or use updateDraftCampaign post_id on a draft.

confirm_tokenstring

From the preview response. Re-send with the exact same arguments plus this token to execute.

Response

The result of calling this tool.

dataunknown required
errorunknown required

Changes

No recorded changes to this operation across all 2 revisions of this API.