ClawFlow

ClawFlow is the automation layer on top of Clawnify agents. A flow is a directed graph of steps that executes in response to a trigger — an inbound webhook, a cron schedule, a channel message, or a manual run — and can call tools, make LLM requests, branch on conditions, and send messages back through any connected channel.

Trigger types

  • Webhook — flows can be reached via a per-flow URL surfaced in the dashboard. Works with third-party integrations (Slack events, GitHub webhooks, inbound messaging) via the Clawnify webhook router.
  • Cron — recurring schedules defined per-flow, down to minute granularity.
  • Channel event — new message, reaction, or mention on any channel the agent is connected to.
  • Manual — run from the dashboard or CLI with arbitrary input.

Where it runs

ClawFlow runs on your Clawnify runtime alongside the agent and can call any of the agent’s tools — the browser, file I/O, integrations, and the Clawnify MCP server. Inbound webhook URLs are surfaced in the dashboard once a flow is published.

Authoring flows

The easiest way to get a flow is to ask your agent for one in chat (“every Monday, pull new signups and post a summary”). To author or maintain one directly, use the CLI:

clawnify flows list                    # what's on the server + published state
clawnify flows edit my-flow            # open the draft in your editor (or --file flow.json)
clawnify flows publish my-flow         # cut a new live version

A flow file starts as a draft. Publishing stamps an immutable, numbered version, and from then on runs and triggers always execute the latest published one — so editing the draft never changes what’s live until you publish again. (Before a flow’s first publish there’s nothing else to run, so it executes the draft as-is.) Definitions are validated on save and on publish, with per-node error messages when something’s off. Flows belong to the server’s main agent.

The plugin source lives at clawnify/clawflow.