flows

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.

post/api/v1/flows/{id}/publish

Request

  • Base URL: https://app.blueticked.com
  • URL: https://app.blueticked.com/api/v1/flows/{id}/publish
  • Auth: HTTP bearer

Path parameters

idstring required

The resource's unique identifier.

Headers

Idempotency-Keystring

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

channel_idstring uuid nullable

Response

Success

organization_idstring uuid required
business_idstring uuid nullable required
definition_updated_atstring date-time nullable required
idstring uuid required
namestring required
descriptionstring nullable required
status'draft' | 'published' | 'deprecated' required
meta_flow_idstring nullable required
meta_flow_versionnumber nullable required
definitionobject required
public_keystring nullable required
last_synced_atstring date-time nullable required
created_atstring date-time required
updated_atstring date-time required
request_idstring required
preset_idstring nullable

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.