flows

Update a Flow

Update a Flow's name, description, or definition.

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.

Published Flows can be edited too: the change is stored locally and marked as unsynced drift, and reaches WhatsApp only when you POST /api/v1/flows/{id}/publish again, which follows Meta's immutability rules by publishing a NEW Meta flow (meta_flow_id changes; templates and automations that referenced the old one are reconciled and reported in the publish response).

patch/api/v1/flows/{id}

Request

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

Path parameters

idstring required

The resource's unique identifier.

Request body

namestring
descriptionstring nullable
preset_idstring 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_v2",
  "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-22T11:00:00.000Z",
  "request_id": "req_b2e3d610e10f1b07468721ee98f0e1d2"
}

Changes

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