Builds trigger-transform-action automation chains on the iii engine. Use when building Zapier/n8n-style automations, webhook-to-action pipelines, or simple event-driven chains where each node is a small registered function chained via named queues.
83
78%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/iii-low-code-automation/SKILL.mdComparable to: n8n, Zapier, LangFlow
Use the concepts below when they fit the task. Not every automation needs all of them.
TriggerAction.Enqueue — easy to add, remove, or reorder stepsAutomation 1: Form → Enrich → Store → Notify
HTTP webhook → auto::enrich-lead → auto::store-lead → auto::notify-slack
Automation 2: Cron → Fetch → Transform → Store
Cron (daily) → auto::fetch-rss → auto::transform-articles → auto::store-articles
Automation 3: Payment webhook → Validate → Update → Notify
HTTP webhook → auto::validate-payment → auto::update-order → publish(payment.processed)| Primitive | Purpose |
|---|---|
registerWorker | Initialize the worker and connect to iii |
registerFunction | Define each automation node |
trigger({ ..., action: TriggerAction.Enqueue({ queue }) }) | Chain nodes via named queues |
trigger({ function_id: 'state::set', payload }) | Persist data between nodes |
trigger({ ..., action: TriggerAction.Void() }) | Fire-and-forget notifications |
registerTrigger({ type: 'http' }) | Webhook entry points |
registerTrigger({ type: 'cron' }) | Scheduled automations |
See ../references/low-code-automation.js for the full working example — three automation chains: form-to-Slack notification, RSS feed aggregation, and payment webhook processing.
Code using this pattern commonly includes, when relevant:
registerWorker(url, { workerName }) — worker initializationtrigger({ function_id, payload, action: TriggerAction.Enqueue({ queue: 'automation' }) }) — node chainingregisterFunction with auto:: prefix IDstrigger({ function_id: 'state::set', payload: { scope, key, value } }) — persist between nodesconst logger = new Logger() — structured logging per nodeUse the adaptations below when they apply to the task.
iii-workflow-orchestration.iii-agentic-backend.iii-low-code-automation when the primary concern is simple trigger-transform-action chains with minimal orchestration overhead.iii-low-code-automation in the iii engine.8921efa
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.