Claude
Chat app · Skill upload
In Claude, open Customize → Skills and use Create skill to upload the ZIP. Skill availability depends on your plan and workspace settings.
Official Claude setup →Community skill · Free instruction package
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.
Community instruction package. Read the full workflow below, then choose your app in the setup guide. Package instructions and compatibility claims have not been individually verified; check dependencies and license before use.
CHOOSE YOUR AI APP
Choose your app below for setup instructions. Keep the complete downloaded folder together. Each package may need tools, dependencies or permissions that your app does not provide.
Chat app · Skill upload
In Claude, open Customize → Skills and use Create skill to upload the ZIP. Skill availability depends on your plan and workspace settings.
Official Claude setup →Chat app · Access varies
Where Skills is available, open Plugins → Skills → Create → Upload from your computer. Otherwise, copy the instructions into a chat and add your brief; this does not install a skill or include its supporting files.
Official ChatGPT setup →Agent · Project skills
Extract the complete skill folder into your project’s .agents/skills directory. Ask the agent to use the skill for your task.
.agents/skills/automate-whatsapp/SKILL.mdOfficial Google Antigravity setup →Code editor · Project skills
Extract the complete folder into .cursor/skills. Check the editor’s skill settings and ask the agent to use it.
.cursor/skills/automate-whatsapp/SKILL.mdOfficial Cursor setup →Coding agent · Project skills
Extract the complete folder into .claude/skills. Ask Claude to use the named skill, or use its slash command when available.
.claude/skills/automate-whatsapp/SKILL.mdOfficial Claude Code setup →For text-only workflows, you can also paste the instructions into an AI conversation. Copying text does not enable scripts, connect accounts or grant tool access. App subscriptions may cost extra. Logos identify the products; KuchhBhi is independent and is not endorsed by these companies.
Use this skill to build and run WhatsApp automations: workflow CRUD, graph edits, triggers, executions, function management, app integrations, and D1 database operations.
Env vars:
KAPSO_API_BASE_URL (host only, no /platform/v1)KAPSO_API_KEYnode scripts/get-graph.js <workflow_id> (note the lock_version)node scripts/validate-graph.js --definition-file <path>node scripts/update-graph.js <workflow_id> --expected-lock-version <n> --definition-file <path>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.
node scripts/list-triggers.js <workflow_id>node scripts/create-trigger.js <workflow_id> --trigger-type <type> --phone-number-id <id>node scripts/update-trigger.js --trigger-id <id> --active true|falsenode scripts/delete-trigger.js --trigger-id <id>For inbound_message triggers, first run node scripts/list-whatsapp-phone-numbers.js to get phone_number_id.
node scripts/list-executions.js <workflow_id>node scripts/get-execution.js <execution-id>node scripts/get-context-value.js <execution-id> --variable-path vars.foonode scripts/list-execution-events.js <execution-id>node scripts/create-function.js --name <name> --code-file <path>node scripts/deploy-function.js --function-id <id>node scripts/get-function.js --function-id <id>node scripts/list-provider-models.jsnode scripts/list-accounts.js --app-slug <slug> (use pipedream_account_id)node scripts/search-actions.js --query <word> --app-slug <slug> (action_id = key)node scripts/create-integration.js --action-id <id> --app-slug <slug> --account-id <id> --configured-props <json>flow_agent_app_integration_toolsnode scripts/list-tables.jsnode scripts/query-rows.js --table <name> --filters <json>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.
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 objectAlways use this structure:
vars - user-defined variablessystem - system variablescontext - channel datametadata - request metadata| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| Script | Purpose |
|--------|---------|
| openapi-explore.mjs | Explore OpenAPI (search/op/schema/where) |
Install deps (once):
npm i
Examples:
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 queryDatabaseRows
--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 itRead before editing:
Other references:
| 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 |
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}
<!-- FILEMAP:END -->The instruction package is free to download. Your AI app, model usage, connected services and third-party assets may have separate costs.
It is a set of instructions for a compatible AI assistant. It does not run by itself, connect accounts or install an MCP server.
Check that the named folder contains SKILL.md directly, not a second nested ZIP folder. Confirm that your editor supports skills and that its current settings allow this location. See the official documentation below.