Get Flow Details by Flow ID

GET Method

The Get Flow Details by Flow ID API allows you to retrieve the details of a specific flow using its unique identifier (Flow ID). By default, it will return the fields categories, id, name, status, and validation_error. You can request other fields by using the fields param in the request.

Prerequisites

  1. Before you get started, Create an API Key. To view the API Key and the SID, see View API Key and SID.
    A prerequisite for using Kaleyra WhatsApp APIs is to have an active WhatsApp plan on Kaleyra platform.
  2. To set up a WhatsApp account on Kaleyra platform, see Manual Signup
    and Embedded Signup.
  3. An active WhatsApp for Business API plan that includes:
    • A WhatsApp business number.
    • An associated profile with the business number.
    • A WhatsApp verified and approved profile.
    • A WABA ID onboarded on Kaleyra WhatsApp API V2.

Base URL

https://<api_domain>/v2/<SID>

API Domain and Value

api_domainValue
IN podapi.in.kaleyra.io
SG Podapi.kaleyra.io
EU Podapi.eu.kaleyra.io
NA podapi.na.kaleyra.ai

API request to get Flow Details by Flow ID

To get WhatsApp Flow Details by Flow ID, use the https://<api_domain>/v2/<sid>/whatsapp/<flow_id>'endpoint with the following request method.

Request Format

The following is the request format to get WhatsApp Flow Details by Flow ID:

curl --location GET 'https://<api_domain>/v2/<sid>/whatsapp/<flow_id>?fields=<fields>' \
--header 'api-key: <api-key>'

Sample Request Format

The following is the sample request format to get WhatsApp Flow Details by Flow ID:

curl --location GET 'https://api.in.kaleyra.io/v2/HXAP16XXXXXX97IN/whatsapp/11576XXXXXXXXXX0?fields=validation_errors%252Cjson_version%252Cdata_api_version%252Cendpoint_uri%252Cwhatsapp_business_account%252Capplication%252Chealth_status' \
--header 'api-key: Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3'

URL Parameters and Headers

Following is the list of parameters and headers to get WhatsApp Flow Details by Flow ID:

ParameterData TypeDescriptionExampleMandatory?
sidStringAccount SID (Security Identifier).HXAP16XXXXXX97INYes
flow_idStringThe unique ID for each flow.11576XXXXXXXXXX0Yes
api-keyStringAPI key generated from Kaleyra platform account.Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3Yes

Following is the list of values that can be used with the “field” query parameters to select which information of the WhatsApp Flow you want to be returned:

Values for the “fields” query parameterData TypeDescriptionExample of returned object when the given value is added to the “fields” query parameterMandatory?
validation_errorsJSON ObjectA list of validation errors detected in the Flow.
Note: See the specific table for details.
All errors must be fixed before Flow can be published.
[{"error": "INVALID_PROPERTY_VALUE" ,"error_type": "FLOW_JSON_ERROR","message": "Invalid value found for property 'type'.","line_start": 10,"line_end": 10,"column_start": 21,"column_end": 34,"pointers": [{"line_start": 10,"line_end": 10,"column_start": 21,"column_end": 34,"path": "screens [0]. layout.children [0].type"}]}]No
json_versionStringSpecifies the version of the JSON schema used in the flow.
Note:
The json_version must be a value between 1.0 to 7.1. (Recommended) as per last update from Meta.
For more information, see Meta Changelog.
3.0No
data_api_versionStringThe version of the Data API specified by the developer in the Flow JSON asset uploaded. Only for Flows with an Endpoint.
Note: The data_api_version must be a value between 1.0 to 7.1.
3.0No
endpoint_uriStringThe "endpoint_uri" is the specific URL on the client's server that WhatsApp sends requests to whenever certain events happen within the flow. https://www.tatacommunications.com/No
whatsapp_business_accountJSON ObjectThe WhatsApp Business Account (WABA) associated with the flow.
Note: See the specific table for details.
"whatsapp_business_account": {
"currency": "EUR",
"id": "121289XXXXXX655",
"message_template_namespace": "6418bd11_8f3c_41e2_9XXa_907697fXXXXX",
"name": "Kaleyra host",
"timezone_id": "74"
}
No
applicationJSON ObjectDefines the details about the application associated with the flow.
Note: See the specific table for details.
"application": {
"id": "app-1234XXXXX5",
"name": "My Sample App",
"link": "https://developers.facebook.com/apps/app-1234567XXX/"
}
No
health_statusJSON ObjectThis object contains information about the messaging health of various entities associated with the flow. The supported health_status is AVAILABLE, LIMITED or BLOCKED.
Note: See the specific table for details.
{
"can_send_message": "AVAILABLE",
"entities": [
{
"can_send_message": "AVAILABLE",
"entity_type": "FLOW",
"id": "156XXXXXXXXXXXXX"
},
{
"can_send_message": "AVAILABLE",
"entity_type": "WABA",
"id": "295XXXXXXXXXXXX"
},
{
"can_send_message": "AVAILABLE",
"entity_type": "BUSINESS",
"id": "109XXXXXXXXXXXX0"
},
{
"can_send_message": "AVAILABLE",
"entity_type": "APP",
"id": "115XXXXXXXXXXXXX"
}
]
}
No

The following table describes the different attributes of the 'validation_error' JSON object.

ParameterData TypeDescriptionExample
errorStringShort error code that identifies the type of validation error."INVALID_PROPERTY_VALUE"
error_typeStringDefines the type of error."FLOW_JSON_ERROR"
messageStringProvides a brief description of the validation error."Invalid value found for property 'type'"
line_startIntegerIndicates the line number where the error starts in the JSON document.10
line_endIntegerIndicates the line number where the error ends.10
column_startIntegerIndicates the column number where the error starts on the line.21
column_endIntegerIndicates the column number where the error ends.34
pointersArray of objectsA list of JSON Pointer-like objects indicating the affected paths in the flow.[{"line_start": 10,"line_end": 10,"column_start": 21,"column_end": 34,"path": "screens[0].layout.children[0].type"}]

The following table describes the different attributes of the 'pointers' array object.

ParameterData TypeDescriptionExample
line_startIntegerIndicates the line where the pointer starts.10
line_endIntegerIndicates the line where the pointer ends.10
column_startIntegerIndicates the column where the pointer starts.21
column_endIntegerIndicates the column where the pointer ends.34
pathStringSpecifies where the error is in the Flow JSON."screens[0].layout.children[0].type"

The following table describes the different attributes of the ''whatsapp_business_account" JSON object.

ParameterData TypeDescriptionExample
currencyStringCurrency code used for billing.
Supported types are INR, USD, EUR, and many more.
"EUR"
idStringUnique identifier for the WhatsApp Business Account (WABA)."21289XXXXXX655"
message_template_namespaceStringNamespace associated with the account’s message templates."6418bd11_8f3c_41e2_9XXa_907697fXXXXX"
nameStringDefines the display name of the WhatsApp Business Account."Kaleyra host"
time_zone_idStringTimezone configured for the account.74

The following table describes the different attributes of the ''application" JSON object.

ParameterData TypeDescriptionExampleMandatory?
idStringUnique identifier for the application."app-1234XXXXX5"Yes
nameStringName of the application."My Sample App"Yes
linkURLURL of the application.https://developers.facebook.com/apps/app-1234567XXX/"No

The following table describes the different attributes of the ''health_status" JSON object.

ParameterData TypeDescriptionExample
can_send_messageStringIndicates whether the flow is currently in a state where messages can be sent using it. Possible values are "AVAILABLE", "LIMITED", and "BLOCKED"."AVAILABLE"
entity_typeStringType of entity represented by this object."APP", “FLOW”, “WABA”, “BUSINESS”
idStringId of the entity (WABA id, Business id, App id, Flow Id)"115XXXXXXXXXXXXX"

Sample Success Response

The following is the success response with the Query Parameters:

{
    "application": {
        "id": "11576XXXXXXXXXX0",
        "link": "https://www.kaleyra.com/",
        "name": "WA Business APP"
    },
    "health_status": {
        "can_send_message": "AVAILABLE",
        "entities": [
            {
                "can_send_message": "AVAILABLE",
                "entity_type": "FLOW",
                "id": "156XXXXXXXXXXXXX"
            },
            {
                "can_send_message": "AVAILABLE",
                "entity_type": "WABA",
                "id": "295XXXXXXXXXXXX"
            },
            {
                "can_send_message": "AVAILABLE",
                "entity_type": "BUSINESS",
                "id": "109XXXXXXXXXXXX0"
            },
            {
                "can_send_message": "AVAILABLE",
                "entity_type": "APP",
                "id": "115XXXXXXXXXXXXX"
            }
        ]
    },
    "id": "612XXXXXXXXXXXX",
    "json_version": "3.0",
    "validation_errors": [],
    "whatsapp_business_account": {
        "currency": "INR",
        "id": "295XXXXXXXXXXXX",
        "message_template_namespace": "1c9639a3_37b1_4ca9_8b72_295eXXXXXXde",
        "name": "Kaleyra_ATU_STG",
        "timezone_id": "476"
    }
}

The following is the success response without the Query parameters:

{
    "categories": [
        "APPOINTMENT_BOOKING"
    ],
    "id": "1789XXXXXXXXXXXX",
    "name": "Demo Flow Stage 6",
    "status": "DRAFT",
    "validation_errors": []
}

Sample Failure Response

The following are the failure responses:

401 Unauthorized
{
    "code": "RBC001",
    "message": "Incorrect SID or API key.",
    "data": [],
    "error": {
        "error": "Incorrect SID or API key."
    }
}
400 Incorrect payload
{
    "code": "WA-400",
    "message": "Refer to correct payload format",
    "data": {},
    "error": {
        "payload": "Incorrect payload format"
    }
}
500 Internal Server Error
{
    "code": "WA-500",
    "message": "Please try again later",
    "data": {},
    "error": {
        "error": "Internal server error"
    }
}