Setup Outbound Campaign
setup_outbound_campaignDestructive
Create a ready-to-use outbound email campaign in one flow: creates the campaign with its emails, assigns sender profiles, optionally imports contacts, marks it complete (not a draft), and optionally activates it. Pass emails, the emails in order: the user sees exactly those when approving the call. Use nodes and edges only for a branching (complex) sequence the user asked for. Ask for team, name, the email copy and sender profiles if not provided. When activate is true the campaign starts emailing enrolled contacts, so confirm that with the user first. Prefer this over create_campaign plus separate steps.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days to send, e.g. ["monday", "tuesday", "wednesday", "thursday", "friday"] | |
| name | Yes | Campaign name | |
| edges | No | Only with nodes: sequence edges connecting them | |
| hours | No | Sending hours in the schedule timezone, e.g. "09:00-17:00" | |
| nodes | No | Only for a branching (complex) sequence; otherwise pass emails. Sequence nodes (startNode, emailNode, waitNode, etc.). Email nodes must use subject_a/body_a. | |
| track | No | Enable open/click tracking | |
| emails | No | The emails in order (a simple sequence). Each follow-up waits wait_days after the previous email and, without its own subject, replies in the same thread. | |
| team_id | Yes | Team UUID - get from list_teams | |
| version | No | Only with nodes: 3 = simple (linear), 2 = complex (branching; permanent). With emails it is always simple. | |
| activate | No | When true, activate campaign after setup (starts sending to enrolled contacts) | |
| contacts | No | Optional contacts to import after campaign creation (same shape as bulk_import_contacts) | |
| timezone | No | Schedule timezone, e.g. America/Los_Angeles | |
| category_id | No | Optional campaign category/folder UUID | |
| mark_complete | No | When true (default), set is_draft false after setup if validation passes | |
| include_catch_all | No | Include catch-all addresses (default true) | |
| sender_profile_ids | Yes | Sender profile UUIDs to assign — get from list_sender_profiles | |
| send_to_risk_levels | No | List Health levels to send to. Omit for SAFE/LOW/MEDIUM/HIGH default (Invalid off). null = all. |