Campaigns
campaignsRead campaigns — this tool changes nothing. Actions: list, get, performance. Anything that writes (create, update, send, test, resend) is on campaigns_manage and is refused here.
Manage campaigns. Call get_action_types first when building actions. Actions: list (paginated index, params: page, per_page, status, search, campaign_folder_id filter, sort_by, sort_direction); get (params: id [required]); create (3 modes: template_id clones a template; actions and/or campaign_rules persist a direct JSON definition; neither = blank campaign. template_id is mutually exclusive with actions and campaign_rules); update (draft only, params: id [required]; when actions/campaign_rules are passed the campaign is rebuilt from the payload); send (transition a draft to running + queue executions, returns batch_task_id, params: id [required]); test (run a campaign once for ONE contact without starting it; works on a draft or scheduled campaign, really sends the campaign's messages to that contact and is excluded from metrics, params: campaign_id [required], contact [required]); performance (per-step funnel over a window — how many sends reached each step, how many finished it, and the reason codes behind the rest, including the sends paused by the activation limit or a broken Instagram connection. Params: id [required], since, until); resend (put through the sends paused by a broken connection or an exhausted activation limit, once the cause is fixed. Previews by default: without confirm it reports how many it would send and the activation headroom left, and sends nothing. Params: id [required], scope [required: limited|disconnected], window, confirm).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The read operation to perform on campaigns. | |
| action_params | No | Parameters for the chosen action. Required per action — get/update/send: id; test: campaign_id + contact. create has no required param; template_id is mutually exclusive with actions and campaign_rules. |