flows

Create Flow draft

Create a WhatsApp Flow draft from a definition in Blueticked's builder dialect.

definition is Blueticked's builder dialect, not raw Meta Flow JSON: { version, screens: [...] } where each screen is { id, title, terminal?, layout: { type: "SingleColumnLayout", children: [...] } }. Screen ids use letters, digits and underscores.

Supported component types: TextInput, TextArea, DatePicker, CalendarPicker, Dropdown, RadioButtonsGroup, CheckboxGroup, ChipsSelector, OptIn, PhotoPicker, DocumentPicker, Image, TextHeading, TextSubheading, TextBody, TextCaption, RichText, EmbeddedLink, NavigationList, If, Switch and Footer (an explicit Form wrapper is also accepted). Anything else (e.g. Meta-only DateTimePicker or ImageCarousel) is rejected with 400 validation_failed at create/update time.

Input components carry name, label and optional required; choice fields take data-source as a static [{ id, title }] list (or a ${data.key} webhook binding on dynamic forms); each screen ends in a Footer whose on-click-action.name is complete (terminal screen), navigate or data_exchange.

On publish the stored dialect is transformed to Meta Flow JSON 7.3: the wire version is stamped, screens are wrapped in a Form, and the complete/navigate payload mappings Meta requires are generated, so never paste Meta Flow JSON here. Deeper rules (label caps, footer/payload rules) are checked at publish with friendly errors.

Omit definition (or send {}) to create a blank draft and fill it in via PATCH or the Flow builder UI.

The flow is returned flat (fields at the top level, the full serializer), matching GET /api/v1/flows/{id}.

post/api/v1/flows

Request

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

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

namestring required
descriptionstring nullable
preset_idstring nullable
business_idstring uuid nullable

Response

Success

idstring uuid required
business_idstring uuid nullable required
namestring required
descriptionstring nullable required
status'draft' | 'published' | 'deprecated' required
preset_idstring nullable 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

Example response

{
  "id": "2bb7e214-6106-4d25-ba1f-2e28b88dc657",
  "business_id": "22222222-2222-4222-9222-222222222222",
  "name": "customer_feedback_v1",
  "description": "Post-visit feedback form",
  "public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkq...\n-----END PUBLIC KEY-----\n",
  "created_at": "2026-05-22T10:30:00.000Z",
  "updated_at": "2026-05-22T10:30:00.000Z",
  "request_id": "req_b2e3d610e10f1b07468721ee98f0e1d2"
}

Changes

No recorded changes to this operation across all 1 revision of this API.