integrate-whatsapp

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Integrate WhatsApp

集成WhatsApp

Setup

设置

Env vars:
  • KAPSO_API_BASE_URL
    (host only, no
    /platform/v1
    )
  • KAPSO_API_KEY
  • META_GRAPH_VERSION
    (optional, default
    v24.0
    )
Auth header (direct API calls):
X-API-Key: <api_key>
Install deps (once):
bash
npm i
环境变量:
  • KAPSO_API_BASE_URL
    (仅主机地址,不包含
    /platform/v1
  • KAPSO_API_KEY
  • META_GRAPH_VERSION
    (可选,默认值为
    v24.0
认证请求头(直接调用API时使用):
X-API-Key: <api_key>
安装依赖(仅需执行一次):
bash
npm i

Connect WhatsApp (setup links)

连接WhatsApp(设置链接)

Typical onboarding flow:
  1. Create customer:
    POST /platform/v1/customers
  2. Generate setup link:
    POST /platform/v1/customers/:id/setup_links
  3. Customer completes embedded signup
  4. Use
    phone_number_id
    to send messages and configure webhooks
Detect connection:
  • Project webhook
    whatsapp.phone_number.created
    (recommended)
  • Success redirect URL query params (use for frontend UX)
Provision phone numbers (setup link config):
json
{
  "setup_link": {
    "provision_phone_number": true,
    "phone_number_country_isos": ["US"]
  }
}
Notes:
  • Platform API base:
    /platform/v1
  • Meta proxy base:
    /meta/whatsapp/v24.0
    (messaging, templates, media)
  • Use
    phone_number_id
    as the primary WhatsApp identifier
典型的客户入驻流程:
  1. 创建客户:
    POST /platform/v1/customers
  2. 生成设置链接:
    POST /platform/v1/customers/:id/setup_links
  3. 客户完成嵌入式注册
  4. 使用
    phone_number_id
    发送消息并配置webhooks
检测连接状态:
  • 项目webhook
    whatsapp.phone_number.created
    (推荐使用)
  • 成功跳转URL的查询参数(用于前端用户体验优化)
预配电话号码(设置链接配置):
json
{
  "setup_link": {
    "provision_phone_number": true,
    "phone_number_country_isos": ["US"]
  }
}
注意事项:
  • 平台API基础路径:
    /platform/v1
  • Meta代理基础路径:
    /meta/whatsapp/v24.0
    (用于消息、模板、媒体相关操作)
  • 使用
    phone_number_id
    作为WhatsApp的主要标识

Receive events (webhooks)

接收事件(webhooks)

Use webhooks to receive:
  • Project events (connection lifecycle, workflow events)
  • Phone-number events (messages, conversations, delivery status)
Scope rules:
  • Project webhooks: only project-level events (connection lifecycle, workflow events)
  • Phone-number webhooks: only WhatsApp message + conversation events for that
    phone_number_id
  • WhatsApp message/conversation events (
    whatsapp.message.*
    ,
    whatsapp.conversation.*
    ) are phone-number only
Create a webhook:
  • Project-level:
    node scripts/create.js --scope project --url <https://...> --events <csv>
  • Phone-number:
    node scripts/create.js --phone-number-id <id> --url <https://...> --events <csv>
Common flags for create/update:
  • --url <https://...>
    - webhook destination
  • --events <csv|json-array>
    - event types (Kapso webhooks)
  • --kind <kapso|meta>
    - Kapso (event-based) vs raw Meta forwarding
  • --payload-version <v1|v2>
    - payload format (
    v2
    recommended)
  • --buffer-enabled <true|false>
    - enable buffering for
    whatsapp.message.received
  • --buffer-window-seconds <n>
    - 1-60 seconds
  • --max-buffer-size <n>
    - 1-100
  • --active <true|false>
    - enable/disable
Test delivery:
bash
node scripts/test.js --webhook-id <id>
Always verify signatures. See:
  • references/webhooks-overview.md
  • references/webhooks-reference.md
通过webhooks可接收以下事件:
  • 项目事件(连接生命周期、工作流事件)
  • 电话号码相关事件(消息、对话、送达状态)
范围规则:
  • 项目webhooks:仅接收项目级事件(连接生命周期、工作流事件)
  • 电话号码webhooks:仅接收该
    phone_number_id
    对应的WhatsApp消息和对话事件
  • WhatsApp消息/对话事件(
    whatsapp.message.*
    whatsapp.conversation.*
    仅支持通过电话号码webhooks接收
创建webhook:
  • 项目级:
    node scripts/create.js --scope project --url <https://...> --events <csv>
  • 电话号码级:
    node scripts/create.js --phone-number-id <id> --url <https://...> --events <csv>
创建/更新时的常用参数:
  • --url <https://...>
    - webhook目标地址
  • --events <csv|json-array>
    - 事件类型(Kapso webhooks)
  • --kind <kapso|meta>
    - Kapso(基于事件)或原生Meta转发
  • --payload-version <v1|v2>
    - 负载格式(推荐使用
    v2
  • --buffer-enabled <true|false>
    - 启用
    whatsapp.message.received
    事件的缓冲功能
  • --buffer-window-seconds <n>
    - 缓冲窗口时长,1-60秒
  • --max-buffer-size <n>
    - 最大缓冲数量,1-100
  • --active <true|false>
    - 启用/禁用webhook
测试事件送达:
bash
node scripts/test.js --webhook-id <id>
请始终验证签名,详情参考:
  • references/webhooks-overview.md
  • references/webhooks-reference.md

Send and read messages

发送与读取消息

Discover IDs first

先获取所需ID

Two Meta IDs are needed for different operations:
IDUsed forHow to discover
business_account_id
(WABA)
Template CRUD
node scripts/list-platform-phone-numbers.mjs
phone_number_id
Sending messages, media upload
node scripts/list-platform-phone-numbers.mjs
不同操作需要两个Meta ID:
ID用途获取方式
business_account_id
(WABA)
模板的增删改查
node scripts/list-platform-phone-numbers.mjs
phone_number_id
发送消息、上传媒体
node scripts/list-platform-phone-numbers.mjs

SDK setup

SDK设置

Install:
bash
npm install @kapso/whatsapp-cloud-api
Create client:
ts
import { WhatsAppClient } from "@kapso/whatsapp-cloud-api";

const client = new WhatsAppClient({
  baseUrl: "https://api.kapso.ai/meta/whatsapp",
  kapsoApiKey: process.env.KAPSO_API_KEY!
});
安装SDK:
bash
npm install @kapso/whatsapp-cloud-api
创建客户端:
ts
import { WhatsAppClient } from "@kapso/whatsapp-cloud-api";

const client = new WhatsAppClient({
  baseUrl: "https://api.kapso.ai/meta/whatsapp",
  kapsoApiKey: process.env.KAPSO_API_KEY!
});

Send a text message

发送文本消息

Via SDK:
ts
await client.messages.sendText({
  phoneNumberId: "<PHONE_NUMBER_ID>",
  to: "+15551234567",
  body: "Hello from Kapso"
});
通过SDK发送:
ts
await client.messages.sendText({
  phoneNumberId: "<PHONE_NUMBER_ID>",
  to: "+15551234567",
  body: "Hello from Kapso"
});

Send a template message

发送模板消息

  1. Discover IDs:
    node scripts/list-platform-phone-numbers.mjs
  2. Draft template payload from
    assets/template-utility-order-status-update.json
  3. Create:
    node scripts/create-template.mjs --business-account-id <WABA_ID> --file <payload.json>
  4. Check status:
    node scripts/template-status.mjs --business-account-id <WABA_ID> --name <name>
  5. Send:
    node scripts/send-template.mjs --phone-number-id <ID> --file <send-payload.json>
  1. 获取ID:
    node scripts/list-platform-phone-numbers.mjs
  2. assets/template-utility-order-status-update.json
    中获取模板负载示例
  3. 创建模板:
    node scripts/create-template.mjs --business-account-id <WABA_ID> --file <payload.json>
  4. 检查模板状态:
    node scripts/template-status.mjs --business-account-id <WABA_ID> --name <name>
  5. 发送模板消息:
    node scripts/send-template.mjs --phone-number-id <ID> --file <send-payload.json>

Send an interactive message

发送交互式消息

Interactive messages require an active 24-hour session window. For outbound notifications outside the window, use templates.
  1. Discover
    phone_number_id
  2. Pick payload from
    assets/send-interactive-*.json
  3. Send:
    node scripts/send-interactive.mjs --phone-number-id <ID> --file <payload.json>
交互式消息需要在24小时会话窗口内发送。如果是窗口外的主动通知,请使用模板消息。
  1. 获取
    phone_number_id
  2. assets/send-interactive-*.json
    中选择对应的负载
  3. 发送消息:
    node scripts/send-interactive.mjs --phone-number-id <ID> --file <payload.json>

Read inbox data

读取收件箱数据

Use Meta proxy or SDK:
  • Proxy:
    GET /{phone_number_id}/messages
    ,
    GET /{phone_number_id}/conversations
  • SDK:
    client.messages.query()
    ,
    client.conversations.list()
可通过Meta代理或SDK读取:
  • 代理方式:
    GET /{phone_number_id}/messages
    GET /{phone_number_id}/conversations
  • SDK方式:
    client.messages.query()
    client.conversations.list()

Template rules

模板规则

Creation:
  • Use
    parameter_format: "NAMED"
    with
    {{param_name}}
    (preferred over positional)
  • Include examples when using variables in HEADER/BODY
  • Use
    language
    (not
    language_code
    )
  • Don't interleave QUICK_REPLY with URL/PHONE_NUMBER buttons
  • URL button variables must be at the end of the URL and use positional
    {{1}}
Send-time:
  • For NAMED templates, include
    parameter_name
    in header/body params
  • URL buttons need a
    button
    component with
    sub_type: "url"
    and
    index
  • Media headers use either
    id
    or
    link
    (never both)
创建模板:
  • 推荐使用
    parameter_format: "NAMED"
    ,参数格式为
    {{param_name}}
    (优于位置参数)
  • 当在标题/正文中使用变量时,请包含示例
  • 使用
    language
    字段(而非
    language_code
  • 不要将QUICK_REPLY与URL/PHONE_NUMBER按钮混合使用
  • URL按钮的变量必须位于URL末尾,且使用位置参数
    {{1}}
发送模板消息:
  • 对于NAMED类型的模板,需在标题/正文参数中包含
    parameter_name
  • URL按钮需要包含
    button
    组件,其中
    sub_type: "url"
    并指定
    index
  • 媒体标题只能使用
    id
    link
    中的一个(不能同时使用)

WhatsApp Flows

WhatsApp Flows

Use Flows to build native WhatsApp forms. Read
references/whatsapp-flows-spec.md
before editing Flow JSON.
使用Flows构建原生WhatsApp表单。在编辑Flow JSON前,请先阅读
references/whatsapp-flows-spec.md

Create and publish a flow

创建并发布Flow

  1. Create flow:
    node scripts/create-flow.js --phone-number-id <id> --name <name>
  2. Update JSON:
    node scripts/update-flow-json.js --flow-id <id> --json-file <path>
  3. Publish:
    node scripts/publish-flow.js --flow-id <id>
  4. Test:
    node scripts/send-test-flow.js --phone-number-id <id> --flow-id <id> --to <phone>
  1. 创建Flow:
    node scripts/create-flow.js --phone-number-id <id> --name <name>
  2. 更新JSON:
    node scripts/update-flow-json.js --flow-id <id> --json-file <path>
  3. 发布Flow:
    node scripts/publish-flow.js --flow-id <id>
  4. 测试Flow:
    node scripts/send-test-flow.js --phone-number-id <id> --flow-id <id> --to <phone>

Attach a data endpoint (dynamic flows)

附加数据端点(动态Flow)

  1. Set up encryption:
    node scripts/setup-encryption.js --flow-id <id>
  2. Create endpoint:
    node scripts/set-data-endpoint.js --flow-id <id> --code-file <path>
  3. Deploy:
    node scripts/deploy-data-endpoint.js --flow-id <id>
  4. Register:
    node scripts/register-data-endpoint.js --flow-id <id>
  1. 设置加密:
    node scripts/setup-encryption.js --flow-id <id>
  2. 创建端点:
    node scripts/set-data-endpoint.js --flow-id <id> --code-file <path>
  3. 部署端点:
    node scripts/deploy-data-endpoint.js --flow-id <id>
  4. 注册端点:
    node scripts/register-data-endpoint.js --flow-id <id>

Flow JSON rules

Flow JSON规则

Static flows (no data endpoint):
  • Use
    version: "7.3"
  • routing_model
    and
    data_api_version
    are optional
  • See
    assets/sample-flow.json
Dynamic flows (with data endpoint):
  • Use
    version: "7.3"
    with
    data_api_version: "3.0"
  • routing_model
    is required (defines valid screen transitions)
  • See
    assets/dynamic-flow.json
静态Flow(无数据端点):
  • 使用
    version: "7.3"
  • routing_model
    data_api_version
    为可选参数
  • 示例参考
    assets/sample-flow.json
动态Flow(带数据端点):
  • 使用
    version: "7.3"
    并指定
    data_api_version: "3.0"
  • routing_model
    为必填参数(定义有效的页面跳转规则)
  • 示例参考
    assets/dynamic-flow.json

Data endpoint rules

数据端点规则

Handler signature:
js
async function handler(request, env) {
  const body = await request.json();
  // body.data_exchange.action: INIT | data_exchange | BACK
  // body.data_exchange.screen: current screen id
  // body.data_exchange.data: user inputs
  return Response.json({
    version: "3.0",
    screen: "NEXT_SCREEN_ID",
    data: { }
  });
}
  • Do not use
    export
    or
    module.exports
  • Completion uses
    screen: "SUCCESS"
    with
    extension_message_response.params
  • Do not include
    endpoint_uri
    or
    data_channel_uri
    (Kapso injects these)
处理器签名:
js
async function handler(request, env) {
  const body = await request.json();
  // body.data_exchange.action: INIT | data_exchange | BACK
  // body.data_exchange.screen: current screen id
  // body.data_exchange.data: user inputs
  return Response.json({
    version: "3.0",
    screen: "NEXT_SCREEN_ID",
    data: { }
  });
}
  • 不要使用
    export
    module.exports
  • 完成流程时使用
    screen: "SUCCESS"
    ,并搭配
    extension_message_response.params
  • 不要包含
    endpoint_uri
    data_channel_uri
    (Kapso会自动注入这些参数)

Troubleshooting

故障排除

  • Preview shows
    "flow_token is missing"
    : flow is dynamic without a data endpoint. Attach one and refresh.
  • Encryption setup errors: enable encryption in Settings for the phone number/WABA.
  • OAuthException 139000 (Integrity): WABA must be verified in Meta security center.
  • 预览时显示
    "flow_token is missing"
    :动态Flow未附加数据端点,请添加后刷新页面
  • 加密设置错误:在电话号码/WABA的设置中启用加密功能
  • OAuthException 139000(完整性):WABA必须在Meta安全中心完成验证

Scripts

脚本

Webhooks

Webhooks相关

ScriptPurpose
list.js
List webhooks
get.js
Get webhook details
create.js
Create a webhook
update.js
Update a webhook
delete.js
Delete a webhook
test.js
Send a test event
脚本用途
list.js
列出所有webhooks
get.js
获取webhook详情
create.js
创建webhook
update.js
更新webhook
delete.js
删除webhook
test.js
发送测试事件

Messaging and templates

消息与模板相关

ScriptPurposeRequired ID
list-platform-phone-numbers.mjs
Discover business_account_id + phone_number_id
list-connected-numbers.mjs
List WABA phone numbersbusiness_account_id
list-templates.mjs
List templates (with filters)business_account_id
template-status.mjs
Check single template statusbusiness_account_id
create-template.mjs
Create a templatebusiness_account_id
update-template.mjs
Update existing templatebusiness_account_id
send-template.mjs
Send template messagephone_number_id
send-interactive.mjs
Send interactive messagephone_number_id
upload-media.mjs
Upload media for send-time headersphone_number_id
脚本用途必填ID
list-platform-phone-numbers.mjs
获取business_account_id和phone_number_id
list-connected-numbers.mjs
列出WABA下的电话号码business_account_id
list-templates.mjs
列出模板(支持筛选)business_account_id
template-status.mjs
检查单个模板的状态business_account_id
create-template.mjs
创建模板business_account_id
update-template.mjs
更新现有模板business_account_id
send-template.mjs
发送模板消息phone_number_id
send-interactive.mjs
发送交互式消息phone_number_id
upload-media.mjs
上传用于消息标题的媒体文件phone_number_id

Flows

Flows相关

ScriptPurpose
list-flows.js
List all flows
create-flow.js
Create a new flow
get-flow.js
Get flow details
read-flow-json.js
Read flow JSON
update-flow-json.js
Update flow JSON (creates new version)
publish-flow.js
Publish a flow
get-data-endpoint.js
Get data endpoint config
set-data-endpoint.js
Create/update data endpoint code
deploy-data-endpoint.js
Deploy data endpoint
register-data-endpoint.js
Register data endpoint with Meta
get-encryption-status.js
Check encryption status
setup-encryption.js
Set up flow encryption
send-test-flow.js
Send a test flow message
delete-flow.js
Delete a flow
list-flow-responses.js
List stored flow responses
list-function-logs.js
List function logs
list-function-invocations.js
List function invocations
脚本用途
list-flows.js
列出所有Flow
create-flow.js
创建新Flow
get-flow.js
获取Flow详情
read-flow-json.js
读取Flow的JSON配置
update-flow-json.js
更新Flow的JSON配置(创建新版本)
publish-flow.js
发布Flow
get-data-endpoint.js
获取数据端点配置
set-data-endpoint.js
创建/更新数据端点代码
deploy-data-endpoint.js
部署数据端点
register-data-endpoint.js
在Meta注册数据端点
get-encryption-status.js
检查加密状态
setup-encryption.js
设置Flow加密
send-test-flow.js
发送测试Flow消息
delete-flow.js
删除Flow
list-flow-responses.js
列出已存储的Flow响应
list-function-logs.js
列出函数日志
list-function-invocations.js
列出函数调用记录

OpenAPI

OpenAPI相关

ScriptPurpose
openapi-explore.mjs
Explore OpenAPI (search/op/schema/where)
Examples:
bash
node scripts/openapi-explore.mjs --spec whatsapp search "template"
node scripts/openapi-explore.mjs --spec whatsapp op sendMessage
node scripts/openapi-explore.mjs --spec whatsapp schema TemplateMessage
node scripts/openapi-explore.mjs --spec platform ops --tag "WhatsApp Flows"
node scripts/openapi-explore.mjs --spec platform op setupWhatsappFlowEncryption
node scripts/openapi-explore.mjs --spec platform search "setup link"
脚本用途
openapi-explore.mjs
探索OpenAPI(搜索/操作/架构/筛选)
示例:
bash
node scripts/openapi-explore.mjs --spec whatsapp search "template"
node scripts/openapi-explore.mjs --spec whatsapp op sendMessage
node scripts/openapi-explore.mjs --spec whatsapp schema TemplateMessage
node scripts/openapi-explore.mjs --spec platform ops --tag "WhatsApp Flows"
node scripts/openapi-explore.mjs --spec platform op setupWhatsappFlowEncryption
node scripts/openapi-explore.mjs --spec platform search "setup link"

Assets

资源文件

FileDescription
template-utility-order-status-update.json
UTILITY template with named params + URL button
send-template-order-status-update.json
Send-time payload for order_status_update
template-utility-named.json
UTILITY template showing button ordering rules
template-marketing-media-header.json
MARKETING template with IMAGE header
template-authentication-otp.json
AUTHENTICATION OTP template (COPY_CODE)
send-interactive-buttons.json
Interactive button message
send-interactive-list.json
Interactive list message
send-interactive-cta-url.json
Interactive CTA URL message
send-interactive-location-request.json
Location request message
send-interactive-catalog-message.json
Catalog message
sample-flow.json
Static flow example (no endpoint)
dynamic-flow.json
Dynamic flow example (with endpoint)
webhooks-example.json
Webhook create/update payload example
文件描述
template-utility-order-status-update.json
带命名参数和URL按钮的UTILITY类型模板
send-template-order-status-update.json
order_status_update模板的发送负载
template-utility-named.json
展示按钮排序规则的UTILITY类型模板
template-marketing-media-header.json
带图片标题的MARKETING类型模板
template-authentication-otp.json
带COPY_CODE的AUTHENTICATION类型OTP模板
send-interactive-buttons.json
交互式按钮消息负载
send-interactive-list.json
交互式列表消息负载
send-interactive-cta-url.json
交互式CTA URL消息负载
send-interactive-location-request.json
位置请求消息负载
send-interactive-catalog-message.json
商品目录消息负载
sample-flow.json
静态Flow示例
dynamic-flow.json
动态Flow示例
webhooks-example.json
Webhook创建/更新负载示例

References

参考文档

  • references/getting-started.md - Platform onboarding
  • references/platform-api-reference.md - Full endpoint reference
  • references/setup-links.md - Setup link configuration
  • references/detecting-whatsapp-connection.md - Connection detection methods
  • references/webhooks-overview.md - Webhook types, signature verification, retries
  • references/webhooks-event-types.md - Available events
  • references/webhooks-reference.md - Webhook API and payload notes
  • references/templates-reference.md - Template creation rules, components cheat sheet, send-time components
  • references/whatsapp-api-reference.md - Meta proxy payloads for messages and conversations
  • references/whatsapp-cloud-api-js.md - SDK usage for sending and reading messages
  • references/whatsapp-flows-spec.md - Flow JSON spec
  • references/getting-started.md - 平台入驻指南
  • references/platform-api-reference.md - 完整端点参考
  • references/setup-links.md - 设置链接配置
  • references/detecting-whatsapp-connection.md - 连接状态检测方法
  • references/webhooks-overview.md - Webhook类型、签名验证、重试机制
  • references/webhooks-event-types.md - 支持的事件类型
  • references/webhooks-reference.md - Webhook API及负载说明
  • references/templates-reference.md - 模板创建规则、组件速查表、发送时组件说明
  • references/whatsapp-api-reference.md - 消息和对话的Meta代理负载
  • references/whatsapp-cloud-api-js.md - SDK发送和读取消息的使用指南
  • references/whatsapp-flows-spec.md - Flow JSON规范

Related skills

相关技能

  • automate-whatsapp
    - Workflows, agents, and automations
  • observe-whatsapp
    - Debugging, logs, health checks
<!-- FILEMAP:BEGIN -->
text
[integrate-whatsapp file map]|root: .
|.:{package.json,SKILL.md}
|assets:{dynamic-flow.json,sample-flow.json,send-interactive-buttons.json,send-interactive-catalog-message.json,send-interactive-cta-url.json,send-interactive-list.json,send-interactive-location-request.json,send-template-order-status-update.json,template-authentication-otp.json,template-marketing-media-header.json,template-utility-named.json,template-utility-order-status-update.json,webhooks-example.json}
|references:{detecting-whatsapp-connection.md,getting-started.md,platform-api-reference.md,setup-links.md,templates-reference.md,webhooks-event-types.md,webhooks-overview.md,webhooks-reference.md,whatsapp-api-reference.md,whatsapp-cloud-api-js.md,whatsapp-flows-spec.md}
|scripts:{create-flow.js,create-function.js,create-template.mjs,create.js,delete-flow.js,delete.js,deploy-data-endpoint.js,deploy-function.js,get-data-endpoint.js,get-encryption-status.js,get-flow.js,get-function.js,get.js,list-connected-numbers.mjs,list-flow-responses.js,list-flows.js,list-function-invocations.js,list-function-logs.js,list-platform-phone-numbers.mjs,list-templates.mjs,list.js,openapi-explore.mjs,publish-flow.js,read-flow-json.js,register-data-endpoint.js,send-interactive.mjs,send-template.mjs,send-test-flow.js,set-data-endpoint.js,setup-encryption.js,submit-template.mjs,template-status.mjs,test.js,update-flow-json.js,update-function.js,update-template.mjs,update.js,upload-media.mjs,upload-template-header-handle.mjs}
|scripts/lib:{args.mjs,cli.js,env.js,env.mjs,http.js,output.js,output.mjs,request.mjs,run.js,whatsapp-flow.js}
|scripts/lib/webhooks:{args.js,kapso-api.js,webhook.js}
<!-- FILEMAP:END -->
  • automate-whatsapp
    - 工作流、Agent、自动化
  • observe-whatsapp
    - 调试、日志、健康检查
<!-- FILEMAP:BEGIN -->
text
[integrate-whatsapp file map]|root: .
|.:{package.json,SKILL.md}
|assets:{dynamic-flow.json,sample-flow.json,send-interactive-buttons.json,send-interactive-catalog-message.json,send-interactive-cta-url.json,send-interactive-list.json,send-interactive-location-request.json,send-template-order-status-update.json,template-authentication-otp.json,template-marketing-media-header.json,template-utility-named.json,template-utility-order-status-update.json,webhooks-example.json}
|references:{detecting-whatsapp-connection.md,getting-started.md,platform-api-reference.md,setup-links.md,templates-reference.md,webhooks-event-types.md,webhooks-overview.md,webhooks-reference.md,whatsapp-api-reference.md,whatsapp-cloud-api-js.md,whatsapp-flows-spec.md}
|scripts:{create-flow.js,create-function.js,create-template.mjs,create.js,delete-flow.js,delete.js,deploy-data-endpoint.js,deploy-function.js,get-data-endpoint.js,get-encryption-status.js,get-flow.js,get-function.js,get.js,list-connected-numbers.mjs,list-flow-responses.js,list-flows.js,list-function-invocations.js,list-function-logs.js,list-platform-phone-numbers.mjs,list-templates.mjs,list.js,openapi-explore.mjs,publish-flow.js,read-flow-json.js,register-data-endpoint.js,send-interactive.mjs,send-template.mjs,send-test-flow.js,set-data-endpoint.js,setup-encryption.js,submit-template.mjs,template-status.mjs,test.js,update-flow-json.js,update-function.js,update-template.mjs,update.js,upload-media.mjs,upload-template-header-handle.mjs}
|scripts/lib:{args.mjs,cli.js,env.js,env.mjs,http.js,output.js,output.mjs,request.mjs,run.js,whatsapp-flow.js}
|scripts/lib/webhooks:{args.js,kapso-api.js,webhook.js}
<!-- FILEMAP:END -->