Create Email Broadcast
Changed onCreate a new email broadcast. Broadcasts are created in DRAFT status — creating one does not send it. The top-level subject/preheadline are split-test variant A; pass one alternate in variants and set split_test true to configure variant B. To send it, create a send action for the broadcast (POST /emails/broadcasts/{broadcast_id}/send_actions): omit send_at to send now, or pass a future send_at to schedule. (Alternatively, the legacy inline path accepts recipients with send_immediately=true, or send_at/send_at_local_time/time_zone to schedule.) A complete business mailing address is required even when creating a draft. Configure it first with PUT /workspaces/{workspace_id}/emails/settings; an incomplete address returns 422. Pick from_email and reply_to_email from addresses whose top-level usable_as_sender is true, not from the sending domain's verified flag: verified covers email transport only, and sending a broadcast from an address that is not usable is rejected with 422. List addresses via GET /workspaces/{workspace_id}/emails/addresses. See Broadcasts and the Business mailing address prerequisite in the Emails Skill.
Request
- Base URLhttps://myworkspace.myclickfunnels.com/api/v2
- Auth
- HTTP bearer
- or OAuth 2Authorization codehttps://accounts.myclickfunnels.com/oauth/authorizeToken URLhttps://accounts.myclickfunnels.com/oauth/token
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
Request body
Example request
{
"emails_broadcast": {
"name": "Weekly Newsletter",
"subject": "This Week's Updates",
"preheadline": "Check out what's new",
"from_email": "marketing@example.com",
"reply_to_email": "replies@example.com",
"html_body": "<h1>Hello World</h1>",
"text_body": "Hello World",
"send_immediately": false,
"split_test": true,
"split_test_percentage": 20,
"split_test_wait_time": 4,
"variants": [
{
"subject": "Don't miss this week's updates",
"preheadline": "See what's new"
}
],
"smart_sending": false,
"send_at": "2025-06-01",
"send_at_local_time": "18:00:00",
"time_zone": "Pacific Time (US & Canada)",
"topic_ids": [
1,
2
],
"recipients": [
{
"email": "user@example.com",
"first_name": "Jane",
"last_name": "Doe"
}
]
}
}Response
Created
Example response
{
"id": 1,
"public_id": "GhIjKl",
"workspace_id": 42000,
"name": "Weekly Newsletter",
"subject": "This Week's Updates",
"preheadline": "Check out what's new",
"status": "draft",
"origination_channel_type": null,
"origination_channel_id": null,
"external_id": null,
"filter_id": null,
"send_at": null,
"send_at_local_time": null,
"time_zone": "Pacific Time (US & Canada)",
"send_immediately": false,
"smart_sending": true,
"smart_sending_time": 0.5,
"smart_sending_unit": "hour",
"sending_at": null,
"complete_at": null,
"from_email": "marketing@example.com",
"from_name": "Marketing Team",
"reply_to_email": null,
"template": {
"id": 3001,
"public_id": "TmPl01",
"name": "Weekly Newsletter Template"
},
"topic_ids": [
1,
2
],
"split_test": false,
"split_test_percentage": null,
"split_test_wait_time": null,
"variants": [
{
"subject": "This Week's Updates",
"preheadline": "Check out what's new",
"send_percentage": 100,
"main": true,
"open_count": 0,
"winner": null
}
],
"created_at": "2025-01-01T00:00:00.000Z",
"updated_at": "2025-01-01T00:00:00.000Z"
}Changes
- info
added the new optional request property
/ - info
added the new optional request property
/ - info
added the new optional request property
/ - info
added the new optional request property
/ - info
added the new optional request property
/ - info
added the new optional request property
/ - info
added the new optional request property
/ - info
for the
pathrequest parameterworkspace_id, the type was generalized fromintegertostring - info
added the non-success response with the status
- info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status
- info