For the complete documentation index, see llms.txt. This page is also available as Markdown.

Flows

Endpoints for managing WhatsApp Flows

List Flows

get

Retrieve the WhatsApp Flows

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Query parameters
fieldsstringOptional

Comma-separated list of fields to include (e.g. id,name,status,categories)

limitintegerOptional

Maximum number of Flows to return per page

afterstringOptional

Cursor for the next page of results

beforestringOptional

Cursor for the previous page of results

Responses
200

Flows retrieved successfully

application/json

Response payload containing the WhatsApp Flows of the WABA

get/flows
GET /flows HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "categories": [
        "text"
      ],
      "id": "1234567890123456",
      "name": "lead_qualification",
      "status": "PUBLISHED",
      "validation_errors": [
        {
          "error": "INVALID_PROPERTY",
          "error_type": "FLOW_JSON_ERROR",
          "message": "The property \"foo\" is not supported",
          "pointer_path": "screens[0].layout"
        }
      ]
    }
  ],
  "paging": {
    "cursors": {
      "after": "text",
      "before": "text"
    },
    "next": "text",
    "previous": "text"
  }
}

Create Flow

post

Create a WhatsApp Flow on the WhatsApp Business Account. The Flow is created as a draft unless publish is true. Send its screens either inline via flow_json or afterwards via POST /flows/{flow_id}/assets. clone_flow_id must reference a Flow owned by this WABA.

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Body

Flow creation payload

categoriesstring[]Optional

Flow categories, at least one of LEAD_GENERATION, SIGN_UP, SIGN_IN, APPOINTMENT_BOOKING, SURVEY, CONTACT_US, CUSTOMER_SUPPORT, OTHER

clone_flow_idstringOptional

ID of an existing Flow to clone

Example: 1234567890123456
endpoint_uristringOptional

Endpoint URI for Flows with a data exchange endpoint

flow_jsonstringOptional

The Flow JSON as a string. Optional: it can also be uploaded via POST /flows/{flow_id}/assets

namestringOptional

Flow name, unique within the WABA

Example: lead_qualification
publishbooleanOptional

Publish the Flow immediately instead of creating a draft. Requires flow_json

Example: false
Responses
200

Flow created successfully

application/json

Response payload for a created WhatsApp Flow

idstringOptional

ID of the created Flow

Example: 1234567890123456
successbooleanOptional

Whether the Flow was created

Example: true
post/flows
POST /flows HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 143

{
  "categories": [
    "text"
  ],
  "clone_flow_id": "1234567890123456",
  "endpoint_uri": "text",
  "flow_json": "text",
  "name": "lead_qualification",
  "publish": false
}
{
  "id": "1234567890123456",
  "success": true,
  "validation_errors": [
    {
      "error": "INVALID_PROPERTY",
      "error_type": "FLOW_JSON_ERROR",
      "message": "The property \"foo\" is not supported",
      "pointer_path": "screens[0].layout"
    }
  ]
}

Get Flow

get

Retrieve a single Flow's details. Request the preview field (optionally with .invalidate(false)) to get a shareable preview link.

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Path parameters
flow_idstringRequired

Flow ID

Query parameters
fieldsstringOptional

Comma-separated list of fields to include (e.g. id,name,status,preview)

Responses
200

Flow retrieved successfully

application/json

Response payload for a single WhatsApp Flow's details

categoriesstring[]Optional

Flow categories, e.g. LEAD_GENERATION, SIGN_UP, APPOINTMENT_BOOKING, OTHER

data_api_versionstringOptional

The Data API version specified in the uploaded Flow JSON, only for Flows with an Endpoint

Example: 3.0
endpoint_uristringOptional

The URL of the WA Flow Endpoint

idstringOptional

Flow ID

Example: 1234567890123456
json_versionstringOptional

The Flow JSON version specified in the uploaded asset

Example: 7.3
namestringOptional

Flow name

Example: lead_qualification
statusstring · enumOptional

DRAFT, PUBLISHED, DEPRECATED, BLOCKED or THROTTLED

Example: PUBLISHEDPossible values:
get/flows/{flow_id}
GET /flows/{flow_id} HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Accept: */*
{
  "application": {
    "id": "1234567890123456"
  },
  "categories": [
    "text"
  ],
  "data_api_version": "3.0",
  "endpoint_uri": "text",
  "id": "1234567890123456",
  "json_version": "7.3",
  "name": "lead_qualification",
  "preview": {
    "expires_at": "2023-05-21T11:18:09+0000",
    "preview_url": "https://business.facebook.com/wa/manage/flows/550/preview/?token=b9d6"
  },
  "status": "PUBLISHED",
  "validation_errors": [
    {
      "error": "INVALID_PROPERTY",
      "error_type": "FLOW_JSON_ERROR",
      "message": "The property \"foo\" is not supported",
      "pointer_path": "screens[0].layout"
    }
  ],
  "whatsapp_business_account": {
    "id": "1234567890123456"
  }
}

Update Flow

post

Update a draft Flow's name, categories or endpoint URI.

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Path parameters
flow_idstringRequired

Flow ID

Body

Flow update payload

categoriesstring[]Optional

A list of Flow categories. Missing value keeps the existing categories

endpoint_uristringOptional

Endpoint URI for Flows with a data exchange endpoint

namestringOptional

Flow name

Example: lead_qualification
Responses
200

Flow updated successfully

application/json

Response payload for an updated WhatsApp Flow

successbooleanOptional

Whether the Flow was updated

Example: true
post/flows/{flow_id}
POST /flows/{flow_id} HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 73

{
  "categories": [
    "text"
  ],
  "endpoint_uri": "text",
  "name": "lead_qualification"
}
{
  "success": true
}

Delete Flow

delete

Delete a draft Flow. A Flow can only be deleted while it is in DRAFT status.

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Path parameters
flow_idstringRequired

Flow ID

Responses
200

Flow deleted successfully

application/json

Response payload for a deleted WhatsApp Flow

successbooleanOptional

Whether the Flow was deleted

Example: true
delete/flows/{flow_id}
DELETE /flows/{flow_id} HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Accept: */*
{
  "success": true
}

List Flow assets

get

Retrieve all assets attached to a Flow, including its Flow JSON.

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Path parameters
flow_idstringRequired

Flow ID

Responses
200

Flow assets retrieved successfully

application/json

Response payload containing the assets attached to a WhatsApp Flow

get/flows/{flow_id}/assets
GET /flows/{flow_id}/assets HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "asset_type": "FLOW_JSON",
      "download_url": "text",
      "name": "flow.json"
    }
  ],
  "paging": {
    "cursors": {
      "after": "text",
      "before": "text"
    },
    "next": "text",
    "previous": "text"
  }
}

Upload Flow JSON

post

Upload the Flow JSON of a draft Flow, replacing its current screens. Returns the validation errors Meta found; a Flow can only be published once they are resolved.

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Path parameters
flow_idstringRequired

Flow ID

Body
stringOptional
or
stringOptional
or
fileOptional
Responses
200

Flow JSON uploaded successfully

application/json

Response payload for an uploaded Flow JSON

successbooleanOptional

Whether the upload was accepted

Example: true
post/flows/{flow_id}/assets
POST /flows/{flow_id}/assets HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 6

"'text'"
{
  "success": true,
  "validation_errors": [
    {
      "error": "INVALID_PROPERTY",
      "error_type": "FLOW_JSON_ERROR",
      "message": "The property \"foo\" is not supported",
      "pointer_path": "screens[0].layout"
    }
  ]
}

Deprecate Flow

post

Mark a published Flow as deprecated. Deprecated Flows can no longer be sent or opened, and cannot be restored.

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Path parameters
flow_idstringRequired

Flow ID

Responses
200

Flow deprecated successfully

application/json

Response payload for a deprecated WhatsApp Flow

successbooleanOptional

Whether the Flow was deprecated

Example: true
post/flows/{flow_id}/deprecate
POST /flows/{flow_id}/deprecate HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Accept: */*
{
  "success": true
}

Get Flow preview link

get

Get a shareable, no-login web preview link for a Flow. Meta has no dedicated preview edge: this builds a fields=preview.invalidate(...) request on the flow node. Pass invalidate=true to invalidate the previous link and generate a new one.

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Path parameters
flow_idstringRequired

Flow ID

Query parameters
invalidatebooleanOptional

Invalidate the previous preview link and generate a new one

Default: false
Responses
200

Preview link retrieved successfully

application/json

Response payload containing a Flow's web preview link

idstringOptional

Flow ID

Example: 1234567890123456
get/flows/{flow_id}/preview
GET /flows/{flow_id}/preview HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Accept: */*
{
  "id": "1234567890123456",
  "preview": {
    "expires_at": "2023-05-21T11:18:09+0000",
    "preview_url": "https://business.facebook.com/wa/manage/flows/550/preview/?token=b9d6"
  }
}

Publish Flow

post

Publish a draft Flow so it can be sent to end users. A published Flow can no longer be edited.

Authorizations
D360-API-KEYstringRequired

API Key for Messaging API authentication. Send your API key in the D360-API-KEY header.

Path parameters
flow_idstringRequired

Flow ID

Responses
200

Flow published successfully

application/json

Response payload for a published WhatsApp Flow

successbooleanOptional

Whether the Flow was published

Example: true
post/flows/{flow_id}/publish
POST /flows/{flow_id}/publish HTTP/1.1
Host: waba-v2.360dialog.io
D360-API-KEY: YOUR_API_KEY
Accept: */*
{
  "success": true
}

Last updated

Was this helpful?