Create Campaign
sendy.create_campaign
ActionEmailconnection required
Calls the Sendy API with the connection's credentials.
Create a campaign as a draft, or create it and send or schedule it straight away to the lists and segments named.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- Sendy
- Secret shape
- the Sendy API key, or {"api_key": "…"}
- Config it needs
- base_url, list_id, brand_id
- Resolved by
- config.connection_id, else node.connection_id
Configuration
18 fields, 6 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
from_name The sender name subscribers see on the campaign. | string | Yes | — | — | Acme News |
from_email The address the campaign is sent from. | string | Yes | — | email format | news@example.com |
reply_to The address replies to the campaign go to. | string | Yes | — | email format | hello@example.com |
title The campaign's internal title, shown only inside Sendy. | string | Yes | — | — | March newsletter |
subject The subject line subscribers see. | string | Yes | — | — | What shipped in March |
html_text The campaign's HTML body. | string | Yes | — | — | <p>Hello [Name,fallback=there]</p> |
plain_text The plain-text alternative body for clients that cannot render HTML. | string | No | — | — | — |
list_ids Comma-separated list ids to send to. Required when 'send_campaign' is on, unless 'segment_ids' is given instead. | string | No | — | — | — |
segment_ids Comma-separated segment ids to send to. Required when 'send_campaign' is on, unless 'list_ids' is given instead. | string | No | — | — | — |
exclude_list_ids Comma-separated list ids whose subscribers must not receive this campaign. | string | No | — | — | — |
exclude_segments_ids Comma-separated segment ids whose subscribers must not receive it. | string | No | — | — | — |
brand_id The brand the draft belongs to; overrides the connection's brand. Sendy requires it whenever 'send_campaign' is off. | string | No | — | — | 1 |
query_string Tracking parameters appended to every link in the campaign. | string | No | — | — | utm_source=sendy |
track_opens Open tracking: 0 disables it, 1 enables it, 2 tracks opens anonymously. | string | No | — | one of "0", "1", "2" | — |
track_clicks Click tracking: 0 disables it, 1 enables it, 2 tracks clicks anonymously. | string | No | — | one of "0", "1", "2" | — |
send_campaign Send the campaign as well as creating it. Leave off to create a draft, which is what Sendy does by default. | boolean | No | false | — | — |
schedule_date_time When to send, in Sendy's own format (June 15, 2021 6:05pm); the minutes must be a multiple of five. | string | No | — | — | June 15, 2021 6:05pm |
schedule_timezone The PHP timezone name the schedule is expressed in. | string | No | — | — | America/New_York |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"brand_id": "1",
"from_email": "news@example.com",
"from_name": "Acme News",
"html_text": "<p>Hello [Name,fallback=there]</p>",
"query_string": "utm_source=sendy",
"reply_to": "hello@example.com",
"schedule_date_time": "June 15, 2021 6:05pm",
"schedule_timezone": "America/New_York",
"send_campaign": false,
"subject": "What shipped in March",
"title": "March newsletter"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
created True when Sendy created the campaign. | boolean | — |
status Sendy's own answer: 'Campaign created', 'Campaign created and now sending' or 'Campaign scheduled'. | string | — |
sent True when Sendy started sending the campaign. | boolean | — |
scheduled True when Sendy scheduled the campaign. | boolean | — |
title The campaign's internal title. | string | — |
{
"created": false,
"scheduled": false,
"sent": false,
"status": "",
"title": ""
}See Create Campaign run in a workflow.
In a technical demo we add the Sendy connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.