From alation
Create, run, schedule, and debug automated workflows and recurring jobs using Python CLI commands like 'python -m cli workflow create' and 'python -m cli schedule create'. For recurring tasks, not one-time queries.
npx claudepluginhub alation/alation-plugins --plugin alationThis skill uses the workspace's default tool permissions.
Create, manage, and debug automated workflows and schedules.
Provides proven architectural patterns for n8n workflows covering webhook processing, HTTP API integration, database operations, AI agents, batch processing, and scheduled tasks. Use when building or designing automations.
Guides workflow automation platforms (n8n, Temporal, Inngest, AWS Step Functions) and patterns for durable execution in AI agents and production workflows.
Manages n8n workflows via REST API: lists/activates/deactivates workflows, checks/monitors executions, triggers manually, debugs issues. For n8n automation tasks.
Share bugs, ideas, or general feedback.
Create, manage, and debug automated workflows and schedules.
| User Intent | CLI Command |
|---|---|
| List workflows | python -m cli workflow list |
| Create a workflow | python -m cli workflow create or python -m cli workflow create --from-template NAME |
| Run a workflow | python -m cli workflow execute ID [--dry-run] |
| Schedule a workflow | python -m cli schedule create |
| Enable/disable schedule | python -m cli schedule enable ID / python -m cli schedule disable ID |
| Debug a failing workflow | See Diagnostics section below |
askconfigurecurateKey distinction: "Set up a daily email report" is automate. "Set up an agent" is configure. The word "set up" alone is ambiguous — look for scheduling/recurring/automation language to choose automate.
Before building a flow, make sure the underlying query or task works interactively. Use the ask skill to run it once — if the query fails or the agent gives bad results, fix that before automating it. Debugging a broken query inside a scheduled flow is much harder than testing it interactively.
Before building a flow, identify which agent it should use. Both default agents (by ref name) and custom agents (by UUID) work in flows.
Use the configure skill's agent commands to look up agents:
# List all agents — look for the one that matches the user's intent
python -m cli agent list
# Get a specific agent's config, including its input_json_schema
python -m cli agent get <agent_uuid>
The agent's input_json_schema tells you exactly what inputs the flow node needs. This matters because different agents require different inputs — a custom agent might need project_name and report_type, not just message and data_product_id.
If the user has been working with a specific custom agent (e.g., they just created or configured one), use that agent's UUID — don't substitute a default agent.
Three templates are available — list with python -m cli workflow templates:
agent-only — Run a single agent. The simplest flow — good for running any agent on a schedule.
Required: name, agent_id, query
query-and-email — Query a data product, email the results.
Required: name, agent_id, data_product_id, query, tool_id (SMTP), email, subject
query-only — Query a data product (no email).
Required: name, agent_id, data_product_id, query
Example: python -m cli workflow create --from-template agent-only --agent-id <uuid> --query "Generate the weekly summary"
If the agent needs additional inputs beyond message (check input_json_schema), build the flow JSON from scratch instead. See references/agent-schemas.md for how to wire agent inputs into flow nodes — it covers both default and custom agents.
python -m cli schedule create \
--workflow-id <uuid> \
--name "Weekly sales report" \
--cron "0 9 * * 1" \
--timezone "America/Los_Angeles" \
--timeout 60
minute hour day month weekday (e.g., 0 9 * * 1 = Monday 9am)--timezone defaults to America/Los_Angeles--timeout defaults to 60 minutes--disabled creates the schedule in disabled state (useful for testing)python -m cli schedule list/get/enable/disable/deleteWhen a workflow or schedule isn't working, diagnose using the CLI:
Schedule not firing?
python -m cli schedule get <id> — check enabled and next_run_atpython -m cli schedule enable <id>next_run_at is in the past, the scheduler may be stalled — escalate to the user's adminExecution failing?
python -m cli workflow list — check recent execution statuspython -m cli tool list / python -m cli agent listIssues beyond CLI access (stuck executions, duplicate runs, scheduler pod health) require admin/SRE intervention. Describe the symptoms to the user and suggest they contact their Alation administrator.
Mistake: Creating a new SMTP tool when the user asks to email results.
Why it seems reasonable: the flow needs an email tool.
Instead: List existing tools first (python -m cli tool list). There is likely already an SMTP tool configured. Only create a new one if none exists.
Mistake: Using a default agent when the user has a custom agent for the task.
Why it seems reasonable: default agents are easier to reference.
Instead: If the user created or configured a custom agent, use its UUID. Check python -m cli agent list to find the right one. Look up its input_json_schema to know what inputs the flow node needs.
Mistake: Hardcoding agent/tool IDs in the flow definition without verifying they exist.
Why it seems reasonable: the user provided the names.
Instead: Look up IDs using python -m cli agent list or python -m cli tool list.
Mistake: Building a flow without checking what inputs the agent expects.
Why it seems reasonable: most agents just need message.
Instead: Run python -m cli agent get <uuid> and check input_json_schema. Custom agents often need additional inputs like data_product_id or domain-specific parameters.
After creating a workflow, share the url from the CLI response so the user can view it in the Alation UI. Schedule responses include a workflow_url pointing to the parent workflow.