v1

latestOpenAPI 3.1.0MIT2026-07-243952451019.0 KB
Emails::Broadcasts::SendAction

Create Send Action

Send (or schedule) an email broadcast by creating a Send Action. This is the same trigger the ClickFunnels dashboard fires when you click "Send". The request body is optional — a bodyless POST dispatches the broadcast immediately. Pass send_at inside emails_broadcasts_send_action to schedule the broadcast for a future date and time; the broadcast will be sent at the given hour on that day, adjusted to the workspace's time zone. The broadcast must be ready to send before this call will succeed. It requires: - A topic assigned (topic_ids is non-empty) - A from-address with usable_as_sender: true - A complete workspace marketing address (set via the Email Settings endpoint) If any of these conditions are not met, the endpoint returns 422 with a message listing what is missing. The send runs asynchronously. The returned Send Action record tracks progress: poll GET /api/v2/emails/broadcasts/send_actions/{id} and compare performed_count to target_count. When accessing the API through an OAuth connection from a third-party platform, this endpoint is restricted to trusted developer platforms. If you are using your own API key, you can send emails directly from your account.

post/emails/broadcasts/{broadcast_id}/send_actions

Path parameters

broadcast_idinteger required

Request body

Example request

{
  "emails_broadcasts_send_action": {
    "emails_broadcasts_send_action": {
      "send_at": "2025-09-15T18:00:00.000Z"
    }
  }
}

Response

Created

idinteger

Send Action ID

public_idstring nullable

Send Action public ID

workspace_idinteger

Workspace ID

send_type'default' | 'split_test_main' | 'split_test_variant' | 'split_test_winner' | 'send_in_contacts_time_zone' | 'schedule_send_in_contacts_time_zone'

The delivery strategy used for this send action.

target_idsinteger[] nullable

Array of broadcast IDs targeted by this send action. For a standard broadcast send, this contains the single broadcast ID being delivered.

target_countinteger nullable

Total number of contacts targeted by this send action. null until the async job has resolved the audience count.

performed_countinteger nullable

Number of contacts processed so far. Poll alongside target_count to track async delivery progress.

scheduled_forstring date-time nullable

Datetime the send is scheduled to begin. Reflects the send_at passed at creation, adjusted to the workspace time zone. null for immediate sends.

started_atstring date-time nullable

Datetime the async delivery job began processing contacts. null until the job has started.

completed_atstring date-time nullable

Datetime the async delivery job finished. null until delivery is complete.

created_by_idinteger nullable

Reserved; null in most cases. The member who triggered the send is recorded in approved_by_id instead.

approved_by_idinteger nullable

ID of the workspace membership that created/approved this send action — the member that triggered the send. Populated for API-created sends.

created_atstring date-time nullable

Created at datetime

updated_atstring date-time nullable

Updated at datetime

broadcast_idinteger nullable

The ID of the email broadcast being delivered. Convenience field derived from target_ids[0].

Example response

{
  "id": 1,
  "public_id": "aB3cD4",
  "workspace_id": 42000,
  "send_type": "default",
  "target_ids": [
    7
  ],
  "target_count": 1500,
  "performed_count": 750,
  "scheduled_for": null,
  "started_at": "2025-06-01T18:00:05.000Z",
  "completed_at": null,
  "created_by_id": null,
  "approved_by_id": 3,
  "created_at": "2025-06-01T17:59:00.000Z",
  "updated_at": "2025-06-01T18:00:05.000Z",
  "broadcast_id": 7
}