volanea_create_campaign_draft
Create a campaign as a DRAFT for the user to review and send from the dashboard. This tool never sends — there is deliberately no send tool, because a mistaken broadcast reaches the entire audience. Audience: 'all' contacts, a 'segment' (segmentId), or an ad-hoc 'filter' condition tree. Optional A/B subject test via abSubjectB + abSamplePct.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | HTML body. Supports {{variable}} placeholders. | |
| name | Yes | Internal name for the campaign list — never shown to recipients. The subject is what they see. | |
| filter | No | Required when audience = 'filter'. Same condition DSL as segments. | |
| replyTo | No | Where replies go, if not the from address. Its domain does NOT need verifying. Point it at a real inbox — or at an inbound address, whose local part keeps its case so a ticket token survives the round trip. | |
| subject | Yes | Subject line recipients see. Supports {{variable}} placeholders, including the {{name | "default"}} fallback form. | |
| audience | No | Who receives it. `all` = every subscribed contact. `segment` = an existing segment, and requires `segmentId`. `filter` = an inline condition tree, and requires `filter` — use it for a one-off audience you do not want to keep. Unsubscribed contacts are excluded from all three, since campaigns are marketing mail. | |
| fromName | No | Display name shown beside the from address, e.g. "Volanea Team". | |
| fromEmail | Yes | Sender address. Its domain must be verified for this project or the send is refused — check volanea_get_project_status for which domains are verified before choosing one. | |
| segmentId | No | Required when audience = 'segment'. | |
| abSubjectB | No | Variant-B subject line for an A/B test. | |
| abSamplePct | No | Percent of the audience in the A/B sample (5–50). | |
| previewText | No | The preview snippet most clients show beside the subject. Omit it and they fall back to the first words of the HTML, which is usually a logo alt-text or an unsubscribe line. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Machine-readable failure code to branch on. Present only when success is false. | |
| data | No | Present when success is true. | |
| error | No | Human-readable failure reason. Present only when success is false. | |
| success | Yes | False when the call failed; read `error` and `code` in that case. |