automate-whatsapp
Automation & Intégrations"Build WhatsApp automations with Kapso workflows: configure WhatsApp triggers, edit workflow graphs, manage executions, deploy functions, and use databases/integrations for state. Use when automating WhatsApp conversations and event handling."
Documentation
Automate WhatsApp
When to use
Use this skill to build and run WhatsApp automations: workflow CRUD, graph edits, triggers, executions, function management, app integrations, and D1 database operations.
Setup
Env vars:
KAPSO_API_BASE_URL (host only, no /platform/v1)KAPSO_API_KEYHow to
Edit a workflow graph
node scripts/get-graph.js (note the lock_version)node scripts/validate-graph.js --definition-file node scripts/update-graph.js --expected-lock-version --definition-file For small edits, use edit-graph.js with --old-file and --new-file instead.
If you get a lock_version conflict: re-fetch, re-apply changes, retry with new lock_version.
Manage triggers
node scripts/list-triggers.js node scripts/create-trigger.js --trigger-type --phone-number-id node scripts/update-trigger.js --trigger-id --active true|false node scripts/delete-trigger.js --trigger-id For inbound_message triggers, first run node scripts/list-whatsapp-phone-numbers.js to get phone_number_id.
Debug executions
node scripts/list-executions.js node scripts/get-execution.js node scripts/get-context-value.js --variable-path vars.foo node scripts/list-execution-events.js Create and deploy a function
node scripts/create-function.js --name --code-file node scripts/deploy-function.js --function-id node scripts/get-function.js --function-id Set up agent node with app integrations
node scripts/list-provider-models.jsnode scripts/list-accounts.js --app-slug (use pipedream_account_id)node scripts/search-actions.js --query --app-slug (action_id = key)node scripts/create-integration.js --action-id --app-slug --account-id --configured-props flow_agent_app_integration_toolsDatabase CRUD
node scripts/list-tables.jsnode scripts/query-rows.js --table --filters Graph rules
id = start{node_type}_{timestamp_ms} for new node IDsnext edgeconditions[].labelsource/target/label (not from/to)For full schema details, see references/graph-contract.md.
Function rules
async function handler(request, env) {
// Parse input
const body = await request.json();
// Use env.KV and env.DB as needed
return new Response(JSON.stringify({ result: "ok" }));
}export, export default, or arrow functionsResponse objectExecution context
Always use this structure:
vars - user-defined variablessystem - system variablescontext - channel datametadata - request metadataScripts
Workflows
| Script | Purpose |
|--------|---------|
| list-workflows.js | List workflows (metadata only) |
| get-workflow.js | Get workflow metadata |
| create-workflow.js | Create a workflow |
| update-workflow-settings.js | Update workflow settings |
Graph
| Script | Purpose |
|--------|---------|
| get-graph.js | Get workflow graph + lock_version |
| edit-graph.js | Patch graph via string replacement |
| update-graph.js | Replace entire graph |
| validate-graph.js | Validate graph structure locally |
Triggers
| Script | Purpose |
|--------|---------|
| list-triggers.js | List triggers for a workflow |
| create-trigger.js | Create a trigger |
| update-trigger.js | Enable/disable a trigger |
| delete-trigger.js | Delete a trigger |
| list-whatsapp-phone-numbers.js | List phone numbers for trigger setup |
Executions
| Script | Purpose |
|--------|---------|
| list-executions.js | List executions |
| get-execution.js | Get execution details |
| get-context-value.js | Read value from execution context |
| update-execution-status.js | Force execution state |
| resume-execution.js | Resume waiting execution |
| list-execution-events.js | List execution events |
Functions
| Script | Purpose |
|--------|---------|
| list-functions.js | List project functions |
| get-function.js | Get function details + code |
| create-function.js | Create a function |
| update-function.js | Update function code |
| deploy-function.js | Deploy function to runtime |
| invoke-function.js | Invoke function with payload |
| list-function-invocations.js | List function invocations |
App integrations
| Script | Purpose |
|--------|---------|
| list-apps.js | Search integration apps |
| search-actions.js | Search actions (action_id = key) |
| get-action-schema.js | Get action JSON schema |
| list-accounts.js | List connected accounts |
| create-connect-token.js | Create OAuth connect link |
| configure-prop.js | Resolve remote_options for a prop |
| reload-props.js | Reload dynamic props |
| list-integrations.js | List saved integrations |
| create-integration.js | Create an integration |
| update-integration.js | Update an integration |
| delete-integration.js | Delete an integration |
Databases
| Script | Purpose |
|--------|---------|
| list-tables.js | List D1 tables |
| get-table.js | Get table schema + sample rows |
| query-rows.js | Query rows with filters |
| create-row.js | Create a row |
| update-row.js | Update rows |
| upsert-row.js | Upsert a row |
| delete-row.js | Delete rows |
OpenAPI
| Script | Purpose |
|--------|---------|
| openapi-explore.mjs | Explore OpenAPI (search/op/schema/where) |
Install deps (once):
npm iExamples:
node scripts/openapi-explore.mjs --spec workflows search "variables"
node scripts/openapi-explore.mjs --spec workflows op getWorkflowVariables
node scripts/openapi-explore.mjs --spec platform op queryDatabaseRowsNotes
--definition-file, --code-file)action_id is the same as key from search-actions--account-id uses pipedream_account_id from list-accountsvariables-set.js, variables-delete.js) is blocked - Platform API doesn't support itReferences
Read before editing:
Other references:
Assets
| File | Description |
|------|-------------|
| workflow-linear.json | Minimal linear workflow |
| workflow-decision.json | Minimal branching workflow |
| workflow-agent-simple.json | Minimal agent workflow |
| workflow-customer-support-intake-agent.json | Customer support intake |
| workflow-interactive-buttons-decide-function.json | Interactive buttons + decide (function) |
| workflow-interactive-buttons-decide-ai.json | Interactive buttons + decide (AI) |
| workflow-api-template-wait-agent.json | API trigger + template + agent |
| function-decide-route-interactive-buttons.json | Function for button routing |
| agent-app-integration-example.json | Agent node with app integrations |
Related skills
integrate-whatsapp - Onboarding, webhooks, messaging, templates, flowsobserve-whatsapp - Debugging, logs, health checks[automate-whatsapp file map]|root: .
|.:{package.json,SKILL.md}
|assets:{agent-app-integration-example.json,databases-example.json,function-decide-route-interactive-buttons.json,functions-example.json,workflow-agent-simple.json,workflow-api-template-wait-agent.json,workflow-customer-support-intake-agent.json,workflow-decision.json,workflow-interactive-buttons-decide-ai.json,workflow-interactive-buttons-decide-function.json,workflow-linear.json}
|references:{app-integrations.md,databases-reference.md,execution-context.md,function-contracts.md,functions-payloads.md,functions-reference.md,graph-contract.md,node-types.md,triggers.md,workflow-overview.md,workflow-reference.md}
|scripts:{configure-prop.js,create-connect-token.js,create-function.js,create-integration.js,create-row.js,create-trigger.js,create-workflow.js,delete-integration.js,delete-row.js,delete-trigger.js,deploy-function.js,edit-graph.js,get-action-schema.js,get-context-value.js,get-execution-event.js,get-execution.js,get-function.js,get-graph.js,get-table.js,get-workflow.js,invoke-function.js,list-accounts.js,list-apps.js,list-execution-events.js,list-executions.js,list-function-invocations.js,list-functions.js,list-integrations.js,list-provider-models.js,list-tables.js,list-triggers.js,list-whatsapp-phone-numbers.js,list-workflows.js,openapi-explore.mjs,query-rows.js,reload-props.js,resume-execution.js,search-actions.js,update-execution-status.js,update-function.js,update-graph.js,update-integration.js,update-row.js,update-trigger.js,update-workflow-settings.js,upsert-row.js,validate-graph.js,variables-delete.js,variables-list.js,variables-set.js}
|scripts/lib/databases:{args.js,filters.js,kapso-api.js}
|scripts/lib/functions:{args.js,kapso-api.js}
|scripts/lib/workflows:{args.js,kapso-api.js,result.js}Compétences similaires
Explorez d'autres agents de la catégorie Automation & Intégrations
dx-optimizer
Developer Experience specialist. Improves tooling, setup, and
tiktok-automation
"Automate TikTok tasks via Rube MCP (Composio): upload/publish videos, post photos, manage content, and view user profiles/stats. Always search tools first for current schemas."
gemini-api-dev
Use this skill when building applications with Gemini models, Gemini API, working with multimodal content (text, images, audio, video), implementing function calling, using structured outputs, or needing current model specifications. Covers SDK usage (google-genai for Python, @google/genai for JavaScript/TypeScript), model selection, and API capabilities.