Skip to main content

WhatsApp Flows API

WhatsApp Flows API is Meta's platform for creating interactive, multi-screen experiences within WhatsApp conversations. The WhatsApp Flows API enables businesses to build structured workflows such as surveys, registrations, product selections, and customer onboarding directly within WhatsApp chats. The WhatsApp Flows connector enables you to create, manage, publish, and send interactive WhatsApp Flows, retrieve flow details and assets, and integrate interactive messaging experiences into your data workflows. This connector is particularly useful for applications that need to create interactive forms, build customer engagement flows, collect structured data from customers, or provide guided experiences within WhatsApp conversations.

WhatsApp Flows API icon

Power end-to-end data operations for your WhatsApp Flows API API with Nexla. Our bi-directional WhatsApp Flows API connector is purpose-built for WhatsApp Flows API, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to WhatsApp Flows API or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your WhatsApp Flows API workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a WhatsApp Flows API credential, you'll need to obtain an access token and WhatsApp Business Account (WABA) ID from your Meta Business account. WhatsApp Flows API uses Meta's Graph API, requiring OAuth 2.0 access tokens with appropriate permissions.

To obtain WhatsApp Flows API credentials:

  1. Log in to your Meta Business account at https://business.facebook.com or navigate to the Meta for Developers portal at https://developers.facebook.com.

  2. Navigate to Meta for Developers > My Apps or access your existing app in the Meta for Developers console.

  3. If you don't have an app, click Create App and select Business as the app type. Fill in the required app information, including app name and contact email.

  4. In your app settings, navigate to WhatsApp > Getting Started or WhatsApp > API Setup.

  5. In the WhatsApp Flows API setup, you'll need to:

    • Create or select a WhatsApp Business Account (WABA)
    • Note your WABA ID (WhatsApp Business Account ID). This is a unique identifier for your WhatsApp Business account and can be found in the WhatsApp Business Account settings or in the API setup section.
  6. To obtain an access token:

    • Navigate to Tools > Graph API Explorer in the Meta for Developers console
    • Select your app from the dropdown menu
    • Select the appropriate permissions (scopes) for WhatsApp Flows API, such as:
      • whatsapp_business_management
      • whatsapp_business_messaging
    • Click Generate Access Token to create a temporary access token
    • For production use, you'll need to set up a long-lived access token or use OAuth 2.0 flow. To create a long-lived token, navigate to Settings > Basic in your app, and use the Access Token Tool to exchange your short-lived token for a long-lived one.
  7. Copy the Access Token and WABA ID. Store them securely, as you'll need them to authenticate API requests.

  8. Note the API Version. The default API version is typically v18.0, but you should use the latest stable version available. You can check the current API version in the Graph API Explorer or in your app's API settings.

WhatsApp Flows API uses Meta's Graph API with OAuth 2.0 access tokens. The access token is sensitive information and should be kept secure. Access tokens may expire, so you may need to refresh them periodically or set up a long-lived token. The WABA ID identifies your specific WhatsApp Business Account and is required for most API operations. For detailed information about obtaining access tokens, refer to the WhatsApp Business Management API Getting Started Guide.

For detailed information about WhatsApp Flows API authentication and setup, refer to the WhatsApp Flows Documentation and Meta Graph API Authentication Guide.

Authenticate

Credentials required

Bearer token authentication using Meta access token

FieldRequiredSecretDescription
Access TokenYesYesYour Meta access token with WhatsApp Business API permissions
WhatsApp Business Account IDYesNoYour WhatsApp Business Account (WABA) ID
API VersionYesNoFacebook Graph API version (e.g., v18.0)

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

New Credential Overlay – WhatsApp Flows API

WhatsAppFlowsCred.png
  1. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  2. In the Access Token field, enter the Meta access token that you obtained from your Meta Business account. This is the OAuth 2.0 access token with WhatsApp Flows API permissions.

  3. In the WhatsApp Business Account ID field, enter your WABA ID (WhatsApp Business Account ID) that you obtained from your Meta Business account. This is the unique identifier for your WhatsApp Business Account.

  4. In the API Version field, enter the Facebook Graph API version. The default value is v18.0. You should use the latest stable version available.

    The access token is sensitive information and should be kept secure. Access tokens may expire, so you may need to refresh them periodically or set up a long-lived token. The access token is used as a Bearer token in the Authorization header for all API requests. The WABA ID is required for most WhatsApp Flows API operations.

  5. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the WhatsApp Flows API connector tile, then select the credential that will be used to connect to the WhatsApp Flows API, and click Next; or, create a new WhatsApp Flows API credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common WhatsApp Flows API endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

Get WABA Details

This endpoint retrieves WhatsApp Business Account details to verify API setup. Use this endpoint when you need to verify your WABA configuration, retrieve account information, or validate that your credentials are working correctly.

  • Enter the sync schedule in the Sync Schedule field. This is a cron expression that determines when the data will be fetched. The default value is 0 0 * * * (daily at midnight).

The Get WABA Details endpoint uses GET requests to retrieve account information from the WhatsApp Flows API. This endpoint is useful for verifying your API setup and credentials. For more information about WABA endpoints, refer to the WhatsApp Business Management API WABA Reference.

List Flows

This endpoint retrieves all WhatsApp Flows for your business account. Use this endpoint when you need to list all available flows, retrieve flow metadata, or discover flows in your account.

  • Enter the sync schedule in the Sync Schedule field. This is a cron expression that determines when the data will be fetched. The default value is 0 0 * * * (daily at midnight).

The List Flows endpoint uses GET requests to retrieve all flows associated with your WhatsApp Business Account. The endpoint returns flow metadata including flow IDs, names, categories, and status. For more information about listing flows, refer to the WhatsApp Flows API Reference.

Get WABA Phone Numbers

This endpoint retrieves phone numbers associated with your WhatsApp Business Account. Use this endpoint when you need to retrieve available phone numbers for sending flows, verify phone number configuration, or get phone number IDs for messaging operations.

  • Enter the sync schedule in the Sync Schedule field. This is a cron expression that determines when the data will be fetched (e.g., 0 0 * * * for daily). The default value is 0 0 * * *.

The Get WABA Phone Numbers endpoint uses GET requests to retrieve phone numbers from your WhatsApp Business Account. The endpoint returns phone number details including phone number IDs, which are required for sending flows. For more information about phone numbers, refer to the Graph API Phone Numbers Reference.

Get Flow

This endpoint retrieves detailed information about a specific WhatsApp Flow. Use this endpoint when you need to retrieve flow details, check flow status, view validation errors, or get flow metadata for a specific flow ID.

  • Enter the Flow ID in the Flow ID field. This is the unique identifier for the flow you want to retrieve. You can obtain flow IDs from the "List Flows" endpoint.
  • Enter the fields to retrieve in the Fields to Retrieve field. This is a comma-separated list of fields to return. The default value includes common fields: id,name,categories,preview,status,validation_errors,json_version,data_api_version.
  • Enter the sync schedule in the Sync Schedule field. This is a cron expression that determines when the data will be fetched. The default value is 0 0 * * * (daily at midnight).

The Get Flow endpoint uses GET requests to retrieve detailed flow information. You can specify which fields to return using the fields parameter. Flow IDs can be obtained from the "List Flows" endpoint. For more information about retrieving flow details, refer to the WhatsApp Flows API Reference.

Get Preview URL

This endpoint generates a preview URL for testing your WhatsApp Flow. Use this endpoint when you need to test flows before publishing, generate preview links for stakeholders, or validate flow functionality.

  • Enter the Flow ID in the Flow ID field. This is the unique identifier for the flow you want to preview.
  • Enter whether to invalidate existing preview in the Invalidate Existing Preview field. Set to true to generate a new preview and expire the old link, or false to use the existing preview if available. The default value is false.
  • Enter the sync schedule in the Sync Schedule field. This is a cron expression that determines when the data will be fetched. The default value is 0 0 * * * (daily at midnight).

The Get Preview URL endpoint uses GET requests to generate preview URLs for testing flows. Preview URLs allow you to test flows before publishing them. For more information about flow previews, refer to the WhatsApp Flows API Reference.

List Flow Assets

This endpoint retrieves a list of assets (including flow JSON download URL) for a flow. Use this endpoint when you need to download flow JSON files, retrieve asset URLs, or access flow content programmatically.

  • Enter the Flow ID in the Flow ID field. This is the unique identifier for the flow whose assets you want to retrieve.
  • Enter the sync schedule in the Sync Schedule field. This is a cron expression that determines when the data will be fetched. The default value is 0 0 * * * (daily at midnight).

The List Flow Assets endpoint uses GET requests to retrieve flow assets including the flow JSON file download URL. This is useful for downloading flow definitions or accessing flow content. For more information about flow assets, refer to the WhatsApp Flows API Reference.

Get Flow ID

This endpoint returns the first available flow ID from your account for testing. Use this endpoint when you need to quickly retrieve a flow ID for testing purposes or when you want to get a sample flow ID from your account.

  • Enter the sync schedule in the Sync Schedule field. This is a cron expression that determines when the data will be fetched. The default value is 0 0 * * * (daily at midnight).

The Get Flow ID endpoint uses GET requests to retrieve the first available flow ID from your account. This is a convenience endpoint for testing and development. For more information about flows, refer to the WhatsApp Flows Documentation.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

WhatsApp Flows API data sources can also be manually configured to ingest data from any valid WhatsApp Flows API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

WhatsApp Flows API endpoints typically follow the pattern https://graph.facebook.com/{api_version}/{resource}, where {api_version} is your API version (e.g., v18.0) and {resource} is the API resource path; most endpoints use the GET method. For Path to Data, common paths include $ for the entire response, $.data[*] for arrays of data, or $.data[0].id for specific fields. The Authorization header with Bearer token is automatically included from your credential.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new WhatsApp Flows API data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the WhatsApp Flows API destination, and select the Send to Destination option from the menu. Select the WhatsApp Flows API connector from the list of available destination connectors, then select the credential that will be used to connect to the WhatsApp Flows API organization, and click Next; or, create a new WhatsApp Flows API credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common WhatsApp Flows API endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Create Flow

This endpoint creates a new WhatsApp Flow. Use this endpoint when you need to create new interactive flows, set up new customer engagement experiences, or programmatically create flows from your data.

  • This endpoint accepts multipart/form-data in the request body. Provide form data as JSON with the following fields:

    • name: The name of the flow
    • categories: An array of category strings (e.g., ["SURVEY", "APPOINTMENT_BOOKING"])
    • endpoint_uri: The endpoint URI for handling flow responses
  • The endpoint will return the created flow ID, which you can use for subsequent operations like updating flow JSON or publishing the flow.

The Create Flow endpoint uses POST method with multipart/form-data content type. Flows must be created before you can upload flow JSON or publish them. For more information about creating flows, refer to the WhatsApp Flows API Reference.

Update Flow JSON

This endpoint uploads a flow JSON file with the flow content. Use this endpoint when you need to update the flow definition, modify flow screens, or update interactive components in your flow.

  • Enter the Flow ID in the Flow ID field. This is the unique identifier for the flow you want to update.
  • This endpoint accepts multipart/form-data in the request body. Provide JSON with a file_content field containing the flow JSON as a string. The flow JSON should follow the WhatsApp Flows JSON schema.

The Update Flow JSON endpoint uses POST method with multipart/form-data content type. The flow JSON must follow the WhatsApp Flows JSON schema. You can only update flows that are in DRAFT status. For more information about flow JSON structure, refer to the WhatsApp Flows API Reference.

Update Flow Metadata

This endpoint updates flow metadata including name, categories, and endpoint URI. Use this endpoint when you need to modify flow settings, update categories, or change the endpoint URI for handling flow responses.

  • Enter the Flow ID in the Flow ID field. This is the unique identifier for the flow whose metadata you want to update.
  • This endpoint accepts multipart/form-data in the request body. Provide form data as JSON with the following fields:

    • name: The updated name of the flow
    • categories: An array of updated category strings
    • endpoint_uri: The updated endpoint URI for handling flow responses

The Update Flow Metadata endpoint uses POST method with multipart/form-data content type. You can update metadata for flows in any status. For more information about updating flow metadata, refer to the WhatsApp Flows API Reference.

Publish Flow

This endpoint publishes a WhatsApp Flow, making it available for use. Use this endpoint when you have completed flow development and testing and are ready to make the flow available to users.

  • Enter the Flow ID in the Flow ID field. This is the unique identifier for the flow you want to publish.
  • This endpoint accepts empty JSON ({}) in the request body. The publish operation is irreversible—once published, flows cannot be unpublished.

Warning: Publishing a flow is an irreversible operation. Once published, flows cannot be unpublished or reverted to draft status. Ensure your flow is fully tested and ready for production use before publishing. For more information about publishing flows, refer to the WhatsApp Flows API Reference.

Deprecate Flow

This endpoint deprecates a published flow, marking it as no longer recommended for use. Use this endpoint when you want to retire a published flow or mark it as deprecated while keeping it available for existing users.

  • Enter the Flow ID in the Flow ID field. This is the unique identifier for the flow you want to deprecate.
  • This endpoint accepts empty JSON ({}) in the request body. The deprecation operation is irreversible—once deprecated, flows cannot be undeprecated.

Warning: Deprecating a flow is an irreversible operation. Once deprecated, flows cannot be undeprecated. Deprecated flows remain available but are marked as no longer recommended. For more information about deprecating flows, refer to the WhatsApp Flows API Reference.

Delete Flow

This endpoint deletes a draft flow. Use this endpoint when you want to remove a flow that is still in draft status and is no longer needed.

  • Enter the Flow ID in the Flow ID field. This is the unique identifier for the flow you want to delete.
  • This endpoint accepts empty JSON ({}) in the request body. Only flows in DRAFT status can be deleted—published flows cannot be deleted.

The Delete Flow endpoint uses DELETE method. Only flows in DRAFT status can be deleted. Published flows must be deprecated first before they can be removed. For more information about deleting flows, refer to the WhatsApp Flows API Reference.

Send Published Flow by ID

This endpoint sends a published WhatsApp Flow to a customer. Use this endpoint when you need to send interactive flows to users, deliver customer engagement experiences, or trigger flows as part of your messaging workflows.

  • Enter the Business Phone Number ID in the Business Phone Number ID field. This is the ID for the sender phone number connected to WhatsApp Business API. You can obtain this from the "Get WABA Phone Numbers" data source endpoint.
  • This endpoint accepts JSON data in the request body. The request body should include the flow message structure with recipient information and flow parameters. The message structure should follow the WhatsApp Cloud API message format with interactive flow type.

The Send Published Flow by ID endpoint uses POST method to send published flows to customers. Flows must be published before they can be sent. The request body should include recipient phone number, flow ID, flow token, and other required parameters. For more information about sending flows, refer to the WhatsApp Flows Sending Guide.

Send Draft Flow by ID

This endpoint sends a draft WhatsApp Flow for testing. Use this endpoint when you need to test flows before publishing, preview flows in development, or validate flow functionality.

  • Enter the Business Phone Number ID in the Business Phone Number ID field. This is the ID for the sender phone number.
  • This endpoint accepts JSON data in the request body. The request body should include the flow message structure with recipient information and flow parameters. Draft flows are not shown to users in draft mode—they are for testing purposes only.

The Send Draft Flow by ID endpoint uses POST method to send draft flows for testing. Draft flows are not visible to end users and are intended for testing and validation purposes only. For more information about sending flows, refer to the WhatsApp Flows Sending Guide.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be sent. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the destination is configured correctly before saving.

Manual configuration

WhatsApp Flows API destinations can also be manually configured to send data to any valid WhatsApp Flows API endpoint, including endpoints not included in the pre-built templates. Using manual configuration, you can also configure Nexla to automatically send the response received from the WhatsApp Flows API after each call to a new Nexla webhook data source. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

WhatsApp Flows API endpoints typically follow the pattern https://graph.facebook.com/{api_version}/{resource}; most endpoints use the POST method, and DELETE is used for deleting draft flows. For update operations, include the flow ID in the URL path (e.g., https://graph.facebook.com/v18.0/{flow_id}). Common content formats include JSON for most endpoints and multipart/form-data for endpoints that require file uploads (e.g., Create Flow, Update Flow JSON). The Authorization header with Bearer token is automatically included from your credential. For most WhatsApp Flows API endpoints, the default Request Body Template of {message.json} sends the entire record as JSON; for endpoints that require multipart/form-data (like Create Flow or Update Flow JSON), customize the template to match the expected format.

Save & activate

Once all of the relevant steps in the above sections have been completed, click the Create button in the upper right corner of the screen to save and create the new WhatsApp Flows API destination. Nexla will now begin sending data to the configured endpoint according to your data flow schedule.