kapso-automation

Use this skill to build and run Kapso automation: workflow CRUD, graph edits, triggers, executions, function management, and D1 database operations.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "kapso-automation" with this command: npx skills add gokapso/agent-skills/gokapso-agent-skills-kapso-automation

Kapso Automation

When to use

Use this skill to build and run Kapso automation: workflow CRUD, graph edits, triggers, executions, function management, and D1 database operations.

Setup

Env vars:

  • KAPSO_API_BASE_URL (host only, no /platform/v1 )

  • KAPSO_API_KEY

How to

Edit a workflow graph

  • Fetch graph: node scripts/get-graph.js <workflow_id> (note the lock_version )

  • Edit the JSON (see graph rules below)

  • Validate: node scripts/validate-graph.js --definition-file <path>

  • Update: node scripts/update-graph.js <workflow_id> --expected-lock-version <n> --definition-file <path>

  • Re-fetch to confirm

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

  • List: node scripts/list-triggers.js <workflow_id>

  • Create: node scripts/create-trigger.js <workflow_id> --trigger-type <type> --phone-number-id <id>

  • Toggle: node scripts/update-trigger.js --trigger-id <id> --active true|false

  • Delete: node 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 .

Debug executions

  • List: node scripts/list-executions.js <workflow_id>

  • Inspect: node scripts/get-execution.js <execution-id>

  • Get value: node scripts/get-context-value.js <execution-id> --variable-path vars.foo

  • Events: node scripts/list-execution-events.js <execution-id>

Create and deploy a function

  • Write code with handler signature (see function rules below)

  • Create: node scripts/create-function.js --name <name> --code-file <path>

  • Deploy: node scripts/deploy-function.js --function-id <id>

  • Verify: node scripts/get-function.js --function-id <id>

Set up agent node with app integrations

  • Find model: node scripts/list-provider-models.js

  • Find account: node scripts/list-accounts.js --app-slug <slug> (use pipedream_account_id )

  • Find action: node scripts/search-actions.js --query <word> --app-slug <slug> (action_id = key)

  • Create integration: node scripts/create-integration.js --action-id <id> --app-slug <slug> --account-id <id> --configured-props <json>

  • Add tools to agent node via flow_agent_app_integration_tools

Database CRUD

  • List tables: node scripts/list-tables.js

  • Query: node scripts/query-rows.js --table <name> --filters <json>

  • Create/update/delete with row scripts

Graph rules

  • Exactly one start node with id = start

  • Never change existing node IDs

  • Use {node_type}_{timestamp_ms} for new node IDs

  • Non-decide nodes have 0 or 1 outgoing next edge

  • Decide edge labels must match conditions[].label

  • Edge keys are source /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" })); }

  • Do NOT use export , export default , or arrow functions

  • Return a Response object

Execution context

Always use this structure:

  • vars

  • user-defined variables

  • system

  • system variables

  • context

  • channel data

  • metadata

  • request metadata

Scripts

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

Notes

  • Prefer file paths over inline JSON (--definition-file , --code-file )

  • action_id is the same as key from search-actions

  • --account-id uses pipedream_account_id from list-accounts

  • Variable CRUD (variables-set.js , variables-delete.js ) is blocked - Platform API doesn't support it

  • Raw SQL execution is not supported via Platform API

References

Read before editing:

  • references/graph-contract.md - Graph schema, computed vs editable fields, lock_version

  • references/node-types.md - Node types and config shapes

  • references/workflow-overview.md - Execution flow and states

Other references:

  • references/execution-context.md - Context structure and variable substitution

  • references/triggers.md - Trigger types and setup

  • references/app-integrations.md - App integration and variable_definitions

  • references/functions-reference.md - Function management

  • references/functions-payloads.md - Payload shapes for functions

  • references/databases-reference.md - Database operations

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

  • whatsapp-messaging

  • WhatsApp messaging and templates

  • whatsapp-flows

  • WhatsApp Flows

  • kapso-api

  • Platform API and customers

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

integrate-whatsapp

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

automate-whatsapp

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

observe-whatsapp

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

whatsapp-messaging

No summary provided by upstream source.

Repository SourceNeeds Review