Skip to content
View as Markdown
Enter your site to enable Send. Requests are sent from your browser, so the site must allow cross-origin calls (CORS).

POST Schedule Messaging Campaign​

POST
/messaging/campaigns/{id}/schedule

Start a draft campaign. Without scheduled_at the campaign starts immediately (status pending-scheduled, sending_type = instant) and message generation is queued at once. With scheduled_at it is stored in site-local time and generation is queued five minutes before it (or now, if that is already past). Accepts a Unix timestamp, a Y-m-d H:i:s string, or any strtotime-parseable string such as ISO-8601. A one-time-audience campaign must have a confirmed consent, and a one-time WhatsApp campaign must have settings.template_id. recipients_count is reset to 0 and recalculated as messages are generated. Fires fluent_crm/{channel}_campaign_status_active and, when scheduled, fluent_crm/{channel}_campaign_scheduled.

Channel: this route does not take a channel; the channel is the one stored on the campaign (sms or whatsapp) and the matching channel hooks are fired. PRO — requires the FluentCampaign Pro Messaging module with at least one channel (SMS or WhatsApp) active.

Required capability: fcrm_read_emails or fcrm_manage_emails — which one applies depends on the action being performed.

Enforced by MessagePolicy::verifyRequest(), the policy default for this route group.

Requires: FluentCampaign Pro with the Messaging module enabled. While no messaging channel (SMS or WhatsApp) is switched on the route is not registered at all and returns a 404.

Authorizations​

ApplicationPasswords

WordPress Application Passwords — use Basic auth with your WordPress username and an application password in the format: username:application_password

Type
API Key (header: Authorization)

Parameters​

Path Parameters

id*

Campaign id.

Type
integer
Required

Request Body​

application/json
JSON
{
"scheduled_at": "string",
"sending_type": "schedule"
}

Responses​

Campaign scheduled.

application/json
JSON
{
"campaign": {
"id": 0,
"parent_id": 0,
"type": "string",
"title": "string",
"slug": "string",
"status": "string",
"message_content": "string",
"sender_number": "string",
"recipients_count": 0,
"sent_count": 0,
"failed_count": 0,
"delay": 0,
"scheduled_at": "string",
"settings": {
"sending_filter": "string",
"sending_type": "string",
"is_transactional": "string",
"subscribers": [
{
"list": "string",
"tag": "string"
}
],
"excludedSubscribers": [
{
"list": "string",
"tag": "string"
}
],
"dynamic_segment": {
"id": "string",
"slug": "string"
},
"advanced_filters": [
[
]
],
"template_id": 0,
"template_variables": {
"additionalProperties": "string"
},
"one_time_audience": {
"active_batch_id": "string",
"accepted_count": 0,
"default_country": "string",
"consent_user_id": 0,
"consent_channel": "string",
"consent_confirmed": "string"
}
},
"channel": "string",
"created_by": 0,
"created_at": "string",
"updated_at": "string",
"next_step": "string",
"labels": [
{
"id": 0,
"slug": "string",
"title": "string",
"color": "string"
}
],
"server_time": "string"
},
"message": "string",
"current_timestamp": "string"
}

Playground​

Authorization
Variables
Key
Value
Body

Samples​

Powered by VitePress OpenAPI