activepieces
Use when building or editing any Activepieces flow — trigger flows, the candidate flow, piece steps, CODE steps, sandbox steps, routers, loops — when…
Skill by Katch-AI
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/katch-ai-activepieces
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/activepieces
What's inside
- Skill name
activepieces- Description
- Use when building or editing any Activepieces flow — trigger flows, the candidate flow, piece steps, CODE steps, sandbox steps, routers, loops — when installing or referencing a piece, when sampling a piece action's output, when reading flow JSON shapes or calling the `activepieces_*` tools, or when debugging a runtime mismatch between a piece's declared schema and its actual output. Domain reference.
- License
- MIT
- Instructions
- 56 lines in SKILL.md · view on GitHub
Files (10)
- SKILL.md
- api-endpoints.md · references/
- code-step-authoring.md · references/
- flow-json-shape.md · references/
- piece-schedule.md · references/
- piece-slack.md · references/
- piece-store.md · references/
- piece-webhook.md · references/
- pieces-catalog.md · references/
- sandbox-environments.md · references/
SKILL.md (first lines)
# Activepieces
Activepieces (AP) runs the flows. Hegl sits above it: it owns agents, decision boxes, and run records, and dispatches the candidate flow.
## Mental model
- **Project**: one per organization. The tools for flows, runs, pieces, connections, sampling and webhooks, and `activepieces_request`, take `agent_id` and run in that agent's organization project; the calls below omit it. Their `flow_id` is the AP flow id (`activepiecesFlowId` on `get_agent`), not `flw-…`.
- **Flow**: a versioned tree of steps with a root **trigger**. A flow must be `ENABLED` (`LOCK_AND_PUBLISH`) before it accepts calls; otherwise webhooks answer 410.
- **Steps**: `PIECE` (a piece action), `CODE` (TypeScript), `ROUTER`, `LOOP_ON_ITEMS`. Names match `^[a-zA-Z_][a-zA-Z0-9_]*$`; no hyphens.
- **Sandbox step**: the Hegl piece's `execute_snapshot_command` runs your command in a container you set up yourself (root; `pip`, `npm`, `apt`, any language). Use it wherever a CODE step's bare isolate is too small: a library, another language, an integration with an SDK but no piece. `references/sandbox-environments.md`.
- **Piece**: an integration package (`@activepieces/piece-slack`) with actions and triggers, pinned by exact version. `list_activepieces_pieces` is the authoritative list of installed versions; `references/pieces-catalog.md` is a snapshot for discovery, not for pinning. Most pieces also expose `custom_api_call`, which reuses the connection's auth against the vendor API and returns `{status, headers, body}`; reach for it when the piece lacks an action, before `calling-custom-apis`.
- **Connection**: a credential the user creates in the dashboard. A step references it as `"{{connections['<externalId>']}}"` (AP resolves by `externalId`, never by display name); read it back from `get_agent` (`connectionRequirements[].connection.externalId`) or `list_activepieces_connections(piece_name)`. `status: ACTIVE` only means no refresh has failed yet; on a runtime 401 the user must reauthorize it in the dashboard — never borrow another connection instead. Never write or upsert the managed Hegl connections, even to fix an outage.
- **Trigger flows** hand external events to Hegl (`trigger_flow` action). **The candidate flow** starts with the Hegl piece's `marcus_triggered` trigger, which verifies Hegl's signature, then `start_flow_run` → work → `finish_flow_run` / `fail_flow_run`.
## The Hegl pieces
`@marcus-ai/piece-marcus` is built into the image and its connection is provisioned per agent. Never install it, never `request_connection` for it, never put a token or URL in flow JSON. Every step that uses it, including the `marcus_triggered` trigger, takes `auth: "{{connections['<platform connection external id>']}}"`; the id is `platformConnectionExternalId` on `get_agent`. Same for `@marcus-ai/piece-marcus-llm`, the way to call an LLM from a flow, with `platformLlmConnectionExternalId` from `get_agent`. `@marcus-ai/piece-marcus-custom-api` calls HTTP APIs with no piece (`calling-custom-apis`). `@hegl-ai/piece-template` renders Liquid templates into HTML, Markdown, Slack, or plain text with escaping (`rendering-templates`).
Use the piece actions for every Hegl call. A CODE step cannot call Hegl anyway: in production it runs in a bare V8 isolate with no `fetch`, `require`, `console`, timers, or npm packages. CODE steps are for pure computation over `inputs`; `references/code-step-authoring.md` has the contract and gotchas.
## Discovering a piece's inputs and outputs
Use the tools, not the AP source tree, and do it in a subagent (the payloads are large).
- **Inputs**: `get_activepieces_piece(piece_name, version?, action?, trigger?)` → `actions[<name>].props` / `triggers[<name>].props`, with `type`, `required`, defaults; `action:` or `trigger:` returns just that one props schema, and the full piece can exceed the harness's tool-result limit, so pass the filter when you know the action. Never guess prop names. `auth` is one object or, on multi-auth pieces (GitHub, Slack), an array. A `DROPDOWN` or `DYNAMIC` prop with a refresher needs `get_activepieces_piece_options(piece_name, piece_version, action_or_trigger_name, property_name, flow_id, flow_version_id, input)`; wire the returned values, not the labels — Google Sheets `insert_row.values` is keyed by column letter (`A`, `B`…), and header-name keys silently append an empty row.
- **Outputs are undeclared; sample them.** On the scratch flow (`scratchActivepiecesFlowId` on `get_agent`, disabled, never fires): `apply_activepieces_flow_operation(flow_id, "ADD_ACTION", request)` a step named `inv_<uuid>` (underscore, so the weekly sweep can find it) with `auth: "{{connections['<externalId>']}}"` (sampling resolves by external id, not display name), then `sample_activepieces_step(flow_version_id, step_name)` with the draft's `versionId` from `get_activepieces_flow(flow_id)`. It is async: poll `get_activepieces_flow_run(flow_run_id)` to a terminal status and read `steps.inv_<uuid>.output`. `DELETE_ACTION` afterwards and re-fetch the flow to confirm. `get_activepieces_sample_data` reads only samples saved with `SAVE_SAMPLE_DATA`. Side effects fire, so sample read actions or a sandbox channel.
- Triggers have no sample endpoint. Document the expected payload from the piece's semantics and check it against the first real run.
## Pitfalls
- Every reference is `{{ <step>.output.<field> }}` (flow schema 22). A wrong path, including the bare `{{ <step>.<field> }}` form, resolves to an empty string with no error. Anchor every reference to a sampled output.
- `{{ }}` is full JavaScript. A whole-value template keeps the native type; a template embedded in text is spliced raw, so never build a JSON body by templating into a JSON-shaped string. Pass an object with templated leaves.
- No env-var expansion in `input`; pass real strings.
- Hegl creates every AP flow (`create_flow`, `create_trigger_flow`, the scratch flow); there is no tool to create one yourself.
- `IMPORT_FLOW` at `schemaVersion: "22"` rejects the whole tree with `400 Invalid input` unless every step carries `lastUpdatedDate`. A 200 does not mean every step is valid either; re-fetch with `get_activepieces_flow` and check `stepsValid`.
- `DYNAMIC` props take an object keyed by the inner prop name (`"url": { "url": "/path" }`, `"body": { "data": {…} }` plus `body_type`), not a string. On GET/HEAD omit `body` or set `body_type: "none"`.
- The http piece rebuilds the query string, so `%20` arrives as `+`; if the target tells them apart, send the URL in a POST body instead.
- After a publish, every step operation edits a new draft; runs keep using `publishedVersionId` until you `LOCK_AND_PUBLISH` again.
- A run is killed after 30 minutes (`TIMEOUT`) with no failure branch; cap long loops by elapsed time and carry the remainder to the next run.
- AP normalizes `pieceVersion` and drops `propertySettings` from non-piece steps on write; compare specific fields, not whole blobs.
## Debugging with the AP source
Only when the API was followed and the flow still misbehaves at runtime. Clone once with `git clone --depth 1 https://github.com/activepieces/activepieces.git ./activepieces` and have a subagent read `packages/pieces/{core,community}/<piece>/src/lib/{actions,triggers}/<name>.ts` (http, store, schedule, webhook are under `core/`), returning one answer with a file and line range. Never commit the checkout or paste it into documents.
## References
- `references/flow-json-shape.md` — step JSON, the trigger and candidate flow examples, operations (`IMPORT_FLOW`, `ADD_ACTION`, `LOCK_AND_PUBLISH`…), router and loop semantics, `execute_snapshot_command`.
- `references/code-step-authoring.md` — the CODE step contract, the isolate's limits, the decision-box pair.
- `references/api-endpoints.md` — the `activepieces_request` allowlist, the tool for each path, response shapes.
- `references/sandbox-environments.md` — sandbox steps: build → test → snapshot → wire.
- `references/pieces-catalog.md`, `references/piece-schedule.md`, `references/piece-slack.md`, `references/piece-store.md`, `references/piece-webhook.md`.
Still stuck: fetch the page at https://www.activepieces.com/docs/endpoints/<endpoint>, then probe the live API with a `GET` through `activepieces_request`.From Katch-AI/hegl-plugin, MIT.
More from Katch-AI/hegl-plugin
- 0.570score
fetching-data-via-pieces
Katch-AI
Use when you need records from an external system the organization has a connection for — pulling past examples for an eval set, checking what a connection…
SkillAFreshness: AClaude Code +9 - 0.570score
platform-api
Katch-AI
Use when deciding which Hegl tool performs an operation (agent documents, decision boxes, flows, trigger flows, connections and config, piece installs…
SkillAFreshness: AClaude Code +9 - 0.570score
implementing-decision-boxes
Katch-AI
Use when the candidate flow is scaffolded and smoke-tested, to turn stub decision boxes into real implementations and improve them.
SkillAFreshness: AClaude Code +9 - 0.570score
asciidoc
Katch-AI
Use when writing an artifact body (the AsciiDoc documents recorded with the Hegl piece's `record_artifact` action and validated with `validate_artifact`), or…
SkillAFreshness: AClaude Code +9 - 0.565score
rendering-templates
Katch-AI
Use when a flow must compose human-readable text from data — an email body, a Slack message, a Markdown summary, a plain-text notice.
SkillAFreshness: AClaude Code +9 - 0.565score
linking-to-the-dashboard
Katch-AI
Use when you mention anything the user can look at in the Hegl dashboard (an agent, a run, a version, a decision box, an experiment, a form, a connection…
SkillAFreshness: AClaude Code +9 - 0.565score
building-the-automation
Katch-AI
Use when asked to build the user's automation and no candidate flow exists yet.
SkillAFreshness: AClaude Code +9 - 0.565score
composing-email-html
Katch-AI
Use when authoring the htmlBody of any send_email step — during Execute when building flow steps that send email, and during Plan when sketching email content.
SkillAFreshness: AClaude Code +9 - 0.565score
mermaid
Katch-AI
Use when writing or editing any Mermaid diagram the user will see — the flow diagram in plan.md, anything pushed to flowDescription, a diagram in a spec.
SkillAFreshness: AClaude Code +9 - 0.565score
hegl
Katch-AI
Use when starting any work on a Hegl agent (building an automation, improving a decision box, inspecting runs or feedback) and whenever unsure which Hegl…
SkillAFreshness: AClaude Code +9 - 0.560score
calling-custom-apis
Katch-AI
Use when the customer's agent must call an HTTP API that has no dedicated Activepieces piece — internal services, undocumented vendor APIs, anything reachable…
SkillAFreshness: AClaude Code +9 - 0.558score
fix-errors
Katch-AI
Use when the user runs `/hegl:fix-errors` or asks why an agent's runs are failing, or about an incident.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (6 days ago)
- Last release
- Oct 23, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Katch-AI/hegl-plugin
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Katch-AI
- 0.570score
asciidoc
Katch-AI
Use when writing an artifact body (the AsciiDoc documents recorded with the Hegl piece's `record_artifact` action and validated with `validate_artifact`), or…
SkillAFreshness: AClaude Code +9 - 0.570score
platform-api
Katch-AI
Use when deciding which Hegl tool performs an operation (agent documents, decision boxes, flows, trigger flows, connections and config, piece installs…
SkillAFreshness: AClaude Code +9 - 0.570score
fetching-data-via-pieces
Katch-AI
Use when you need records from an external system the organization has a connection for — pulling past examples for an eval set, checking what a connection…
SkillAFreshness: AClaude Code +9 - 0.570score
implementing-decision-boxes
Katch-AI
Use when the candidate flow is scaffolded and smoke-tested, to turn stub decision boxes into real implementations and improve them.
SkillAFreshness: AClaude Code +9 - 0.565score
mermaid
Katch-AI
Use when writing or editing any Mermaid diagram the user will see — the flow diagram in plan.md, anything pushed to flowDescription, a diagram in a spec.
SkillAFreshness: AClaude Code +9 - 0.565score
composing-email-html
Katch-AI
Use when authoring the htmlBody of any send_email step — during Execute when building flow steps that send email, and during Plan when sketching email content.
SkillAFreshness: AClaude Code +9
Cite this page
activepieces skill. Agent Mart. https://agentmart.dev/skills/katch-ai-activepieces (last updated 2026-10-24)