Publish Flow
Publish a valid WhatsApp Flow draft to Meta.
Publishing requires a connected WABA and valid Flow definition.
channel_id (optional) picks which connected WhatsApp number the Flow publishes through. Resolution order: your explicit channel_id, then the channel the Flow was last published with, then the first connected WhatsApp channel. The Flow is pinned to the resolved number's Flows encryption key (dynamic forms decrypt against it), so multi-number workspaces should always pass it.
This route honours the Idempotency-Key header. Publish is the module's most side-effectful call (a republish clones a NEW Meta flow), and a retried request with the same key replays the first response for 24 hours instead of cloning again.
The response is the full flow row plus a nested publish object: on a republish republished is true and previous_meta_flow_id / previous_deprecated / templates_referencing_previous / automations_* report what happened to the superseded flow and everything that referenced it.
A blu_test_ (sandbox) key never publishes to Meta: it returns a dry-run shape ({ id, name, status, test_mode: true, published: false, publish: { simulated: true, would_publish: true, republished } }) with the local row left unpublished.
Request
- Base URL: https://app.blueticked.com
- URL: https://app.blueticked.com/api/v1/flows/{id}/publish
- Auth: HTTP bearer
Path parameters
The resource's unique identifier.
Headers
A unique key (e.g. a UUID) that makes a POST safe to retry: replaying the same key within 24h returns the original result instead of acting twice.
Request body
Response
Success
Example response
{
"business_id": "8070c984-41f6-4bfa-900b-1ce8750ad439",
"definition_updated_at": "2026-05-22T10:30:00.000Z",
"id": "2bb7e214-6106-4d25-ba1f-2e28b88dc657",
"name": "customer_feedback_v1",
"description": "Post-visit feedback form",
"meta_flow_id": "4164742601298957",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkq...\n-----END PUBLIC KEY-----\n",
"last_synced_at": "2026-05-22T10:35:00.000Z",
"created_at": "2026-05-22T10:30:00.000Z",
"updated_at": "2026-05-22T10:35:00.000Z",
"request_id": "req_b2e3d610e10f1b07468721ee98f0e1d2"
}Changes
No recorded changes to this operation across all 1 revision of this API.