AWS End User Messaging Social

2026/06/03 - AWS End User Messaging Social - 10 new api methods

Changes  Adding support for WhatsApp flow APIs and adding AccessDeniedByMetaException for Template APIs

ListWhatsAppFlows (new) Link ¶

Lists all WhatsApp Flows for a WhatsApp Business Account. Returns summary information including Flow ID, name, status, and categories.

See also: AWS API Documentation

Request Syntax

client.list_whats_app_flows(
    id='string',
    nextToken='string',
    maxResults=123
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account to list Flows for.

type nextToken:

string

param nextToken:

The token for the next page of results.

type maxResults:

integer

param maxResults:

The maximum number of results to return per page.

rtype:

dict

returns:

Response Syntax

{
    'flows': [
        {
            'flowId': 'string',
            'flowName': 'string',
            'flowStatus': 'string',
            'flowCategories': [
                'SIGN_UP'|'SIGN_IN'|'APPOINTMENT_BOOKING'|'LEAD_GENERATION'|'SHOPPING'|'CONTACT_US'|'CUSTOMER_SUPPORT'|'SURVEY'|'OTHER',
            ],
            'validationErrors': [
                'string',
            ]
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • flows (list) --

      A list of Flow summaries.

      • (dict) --

        Contains summary information about a WhatsApp Flow, including its ID, name, status, and categories.

        • flowId (string) --

          The unique identifier of the Flow assigned by Meta.

        • flowName (string) --

          The name of the Flow.

        • flowStatus (string) --

          The lifecycle status of the Flow (DRAFT, PUBLISHED, DEPRECATED, BLOCKED, or THROTTLED).

        • flowCategories (list) --

          The categories that classify the business purpose of the Flow.

          • (string) --

            The category that classifies the business purpose of a WhatsApp Flow.

        • validationErrors (list) --

          A list of validation errors from Meta, if any.

          • (string) --

    • nextToken (string) --

      The token to retrieve the next page of results, if any.

GetWhatsAppFlowPreview (new) Link ¶

Generates a web preview URL for testing a WhatsApp Flow before publishing. Preview URLs expire in 30 days and can be shared with stakeholders for review.

See also: AWS API Documentation

Request Syntax

client.get_whats_app_flow_preview(
    id='string',
    flowId='string',
    invalidate=True|False
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account associated with this Flow.

type flowId:

string

param flowId:

[REQUIRED]

The unique identifier of the Flow to preview.

type invalidate:

boolean

param invalidate:

Set to true to force generation of a new preview URL. Use this if the previous URL has been compromised or you want a fresh expiration period.

rtype:

dict

returns:

Response Syntax

{
    'flowId': 'string',
    'preview': {
        'previewUrl': 'string',
        'expiresAt': 'string'
    }
}

Response Structure

  • (dict) --

    • flowId (string) --

      The unique identifier of the Flow.

    • preview (dict) --

      The preview URL and its expiration timestamp.

      • previewUrl (string) --

        The web URL for previewing the Flow. Can be shared with stakeholders for review.

      • expiresAt (string) --

        The timestamp when the preview URL expires.

DeprecateWhatsAppFlow (new) Link ¶

Deprecates a published WhatsApp Flow, marking it as no longer recommended for use. The Flow must be in PUBLISHED status. This is an irreversible operation.

See also: AWS API Documentation

Request Syntax

client.deprecate_whats_app_flow(
    id='string',
    flowId='string'
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account associated with this Flow.

type flowId:

string

param flowId:

[REQUIRED]

The unique identifier of the Flow to deprecate.

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

PublishWhatsAppFlow (new) Link ¶

Publishes a WhatsApp Flow, making it available for use in template messages. The Flow must be in DRAFT status with valid Flow JSON that passes Meta's validation. This is an irreversible operation.

See also: AWS API Documentation

Request Syntax

client.publish_whats_app_flow(
    id='string',
    flowId='string'
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account associated with this Flow.

type flowId:

string

param flowId:

[REQUIRED]

The unique identifier of the Flow to publish.

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

UpdateWhatsAppFlowAssets (new) Link ¶

Updates the Flow JSON definition (assets) of a WhatsApp Flow. Updating a published Flow's assets reverts it to DRAFT status, requiring re-publishing.

See also: AWS API Documentation

Request Syntax

client.update_whats_app_flow_assets(
    id='string',
    flowId='string',
    flowJson=b'bytes'
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account associated with this Flow.

type flowId:

string

param flowId:

[REQUIRED]

The unique identifier of the Flow whose assets to update.

type flowJson:

bytes

param flowJson:

[REQUIRED]

The updated Flow JSON definition. Maximum size is 10 MB.

rtype:

dict

returns:

Response Syntax

{
    'validationErrors': [
        'string',
    ]
}

Response Structure

  • (dict) --

    • validationErrors (list) --

      A list of validation errors returned by Meta, if any. Validation errors must be resolved before the Flow can be published.

      • (string) --

DeleteWhatsAppFlow (new) Link ¶

Deletes a WhatsApp Flow permanently. Only Flows in DRAFT status can be deleted. Published or deprecated Flows cannot be deleted.

See also: AWS API Documentation

Request Syntax

client.delete_whats_app_flow(
    id='string',
    flowId='string'
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account associated with this Flow.

type flowId:

string

param flowId:

[REQUIRED]

The unique identifier of the Flow to delete.

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

UpdateWhatsAppFlow (new) Link ¶

Updates the metadata of a WhatsApp Flow, such as its name or categories. This does not update the Flow JSON definition. Use UpdateWhatsAppFlowAssets to update the Flow JSON.

See also: AWS API Documentation

Request Syntax

client.update_whats_app_flow(
    id='string',
    flowId='string',
    flowName='string',
    categories=[
        'SIGN_UP'|'SIGN_IN'|'APPOINTMENT_BOOKING'|'LEAD_GENERATION'|'SHOPPING'|'CONTACT_US'|'CUSTOMER_SUPPORT'|'SURVEY'|'OTHER',
    ]
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account associated with this Flow.

type flowId:

string

param flowId:

[REQUIRED]

The unique identifier of the Flow to update.

type flowName:

string

param flowName:

The updated name for the Flow.

type categories:

list

param categories:

The updated categories for the Flow.

  • (string) --

    The category that classifies the business purpose of a WhatsApp Flow.

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

CreateWhatsAppFlow (new) Link ¶

Creates a new WhatsApp Flow. Flows enable businesses to create rich, interactive forms and experiences that users can complete without leaving WhatsApp. The Flow is created in DRAFT status. If publish is set to true and a valid flowJson is provided, the Flow is published immediately.

See also: AWS API Documentation

Request Syntax

client.create_whats_app_flow(
    id='string',
    flowName='string',
    categories=[
        'SIGN_UP'|'SIGN_IN'|'APPOINTMENT_BOOKING'|'LEAD_GENERATION'|'SHOPPING'|'CONTACT_US'|'CUSTOMER_SUPPORT'|'SURVEY'|'OTHER',
    ],
    flowJson=b'bytes',
    publish=True|False,
    cloneFlowId='string'
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account to associate with this Flow.

type flowName:

string

param flowName:

[REQUIRED]

The name of the Flow. Must be unique within the WhatsApp Business Account.

type categories:

list

param categories:

[REQUIRED]

The categories that classify the business purpose of the Flow. At least one category is required.

  • (string) --

    The category that classifies the business purpose of a WhatsApp Flow.

type flowJson:

bytes

param flowJson:

The Flow JSON definition that describes the screens, components, and logic of the Flow. Maximum size is 10 MB.

type publish:

boolean

param publish:

Set to true to publish the Flow immediately after creation. Requires a valid flowJson that passes Meta's validation.

type cloneFlowId:

string

param cloneFlowId:

The ID of an existing Flow within the same WhatsApp Business Account to clone.

rtype:

dict

returns:

Response Syntax

{
    'flowId': 'string',
    'validationErrors': [
        'string',
    ]
}

Response Structure

  • (dict) --

    • flowId (string) --

      The unique identifier assigned to the Flow by Meta.

    • validationErrors (list) --

      A list of validation errors returned by Meta, if any. Validation errors must be resolved before the Flow can be published.

      • (string) --

GetWhatsAppFlow (new) Link ¶

Retrieves the metadata and status of a WhatsApp Flow, including validation errors, preview information, and health status.

See also: AWS API Documentation

Request Syntax

client.get_whats_app_flow(
    id='string',
    flowId='string'
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account associated with this Flow.

type flowId:

string

param flowId:

[REQUIRED]

The unique identifier of the Flow to retrieve.

rtype:

dict

returns:

Response Syntax

{
    'flowId': 'string',
    'flowName': 'string',
    'flowStatus': 'string',
    'categories': [
        'SIGN_UP'|'SIGN_IN'|'APPOINTMENT_BOOKING'|'LEAD_GENERATION'|'SHOPPING'|'CONTACT_US'|'CUSTOMER_SUPPORT'|'SURVEY'|'OTHER',
    ],
    'validationErrors': [
        'string',
    ],
    'jsonVersion': 'string',
    'dataApiVersion': 'string',
    'endpointUri': 'string',
    'preview': {
        'previewUrl': 'string',
        'expiresAt': 'string'
    },
    'whatsAppBusinessAccount': {
        'id': 'string',
        'name': 'string',
        'currency': 'string',
        'timezoneId': 'string',
        'messageTemplateNamespace': 'string'
    },
    'application': {
        'link': 'string',
        'name': 'string',
        'id': 'string'
    },
    'healthStatus': {
        'canSendMessage': 'string',
        'entities': [
            {
                'entityType': 'string',
                'id': 'string',
                'canSendMessage': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    • flowId (string) --

      The unique identifier of the Flow.

    • flowName (string) --

      The name of the Flow.

    • flowStatus (string) --

      The lifecycle status of the Flow. Valid values are DRAFT, PUBLISHED, DEPRECATED, BLOCKED, and THROTTLED.

    • categories (list) --

      The categories that classify the business purpose of the Flow.

      • (string) --

        The category that classifies the business purpose of a WhatsApp Flow.

    • validationErrors (list) --

      A list of validation errors from Meta, if any.

      • (string) --

    • jsonVersion (string) --

      The version of the Flow JSON schema used by this Flow (for example, 7.3).

    • dataApiVersion (string) --

      The data API version for data exchange endpoint Flows.

    • endpointUri (string) --

      The endpoint URI for data exchange Flows, if configured.

    • preview (dict) --

      The preview URL and its expiration timestamp for testing the Flow.

      • previewUrl (string) --

        The web URL for previewing the Flow. Can be shared with stakeholders for review.

      • expiresAt (string) --

        The timestamp when the preview URL expires.

    • whatsAppBusinessAccount (dict) --

      The WhatsApp Business Account information from Meta associated with this Flow.

      • id (string) --

        The WhatsApp Business Account ID from Meta.

      • name (string) --

        The name of the WhatsApp Business Account.

      • currency (string) --

        The currency code for the WhatsApp Business Account (for example, USD).

      • timezoneId (string) --

        The timezone ID for the WhatsApp Business Account.

      • messageTemplateNamespace (string) --

        The message template namespace for the WhatsApp Business Account.

    • application (dict) --

      The Meta application information associated with this Flow.

      • link (string) --

        The URL link for the Meta application.

      • name (string) --

        The name of the Meta application.

      • id (string) --

        The unique identifier of the Meta application.

    • healthStatus (dict) --

      The health status information for this Flow from Meta.

      • canSendMessage (string) --

        The overall messaging availability status (for example, AVAILABLE, LIMITED, or BLOCKED).

      • entities (list) --

        A list of health status entities with per-entity availability information.

        • (dict) --

          Represents a single entity in the health status check for a WhatsApp Flow.

          • entityType (string) --

            The type of entity (for example, FLOW, WABA, BUSINESS, or APP).

          • id (string) --

            The unique identifier of the entity.

          • canSendMessage (string) --

            The messaging availability status for this entity (for example, AVAILABLE, LIMITED, or BLOCKED).

ListWhatsAppFlowAssets (new) Link ¶

Lists the assets (Flow JSON definition) of a WhatsApp Flow with presigned download URLs. Download URLs are generated by Meta and expire after a short period.

See also: AWS API Documentation

Request Syntax

client.list_whats_app_flow_assets(
    id='string',
    flowId='string',
    nextToken='string',
    maxResults=123
)
type id:

string

param id:

[REQUIRED]

The ID of the WhatsApp Business Account associated with this Flow.

type flowId:

string

param flowId:

[REQUIRED]

The unique identifier of the Flow whose assets to list.

type nextToken:

string

param nextToken:

The token for the next page of results.

type maxResults:

integer

param maxResults:

The maximum number of results to return per page.

rtype:

dict

returns:

Response Syntax

{
    'flowAssets': [
        {
            'name': 'string',
            'assetType': 'string',
            'downloadUrl': 'string'
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • flowAssets (list) --

      A list of Flow assets with download URLs.

      • (dict) --

        Represents a single asset file associated with a WhatsApp Flow, including a presigned download URL.

        • name (string) --

          The filename of the asset (for example, flow.json).

        • assetType (string) --

          The type of asset. Currently the only supported value is FLOW_JSON.

        • downloadUrl (string) --

          A presigned URL from Meta for downloading the asset. The URL expires after a short period.

    • nextToken (string) --

      The token to retrieve the next page of results, if any.