ctrl_create_workflow
Create a CTRL workflow draft. ONE trigger + an ordered chain of up to 20 actions/conditions/utilities. Returns { workflowId, activateUrl }. Pass targetChain to pick which chain the workflow runs on — "base" (default, launchpads + Aerodrome + UniV4) or "ethereum" (UniV3 only, no launchpads, no clanker/zora). CRITICAL: call ctrl_get_block_catalog FIRST (with the same chain value) to discover field names — every key in trigger.config and chain[].config must exactly match catalog fields[].key. Populate EVERY field the user expressed intent for. For pool.created (Token Launch, Base-only) set launchpad (e.g. ["bankr"]), keywordIncludes ("ai,agent,claw"), keywordMatchMode "any", keywordCategories (["ai_agents"]), safetyEnabled true, safetyRejectHoneypot true, safetyMinScore 50. For cypher.swap set tokenIn ("ETH"), tokenOut ("{{trigger.tokenAddress}}"), tokenOutMode "dynamic", amount (ETH units, e.g. 0.005 — ASK USER if not specified), slippage (15 for snipes), and autoSell* if user wants an exit (autoSellEnabled true, autoSellMode "multiple", autoSellMultiplier 2, autoSellPercent 100, autoSellReceiveToken "USDC"). For notify.telegram set message with {{token}}/{{amount}}/{{txHash}} placeholders. Interview the user for missing critical fields (amount, exit strategy, keywords) — do not silently default.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| chain | Yes | ||
| trigger | Yes | ||
| description | No | ||
| targetChain | No | Chain to run the workflow on. Default: "base". "ethereum" disables launchpad-only blocks (pool.created/clanker/zora/bankr/flaunch) and UniV4/Aerodrome routing. |