Run a workflow
Chain prompts, agents, and humans into ordered steps so repeat work always follows the same path — and watch each task move through the steps on a kanban board.
Plus: three Admin-Agent pasted briefs — sketching step order before dragging cards in the UI, working out why a task is stuck using audit-log rows, and deciding whether a sharper agent description would do the job better than building a workflow.
| Audience | Admins · Developers |
|---|---|
| Time | ~10 min |
| Prerequisites | An Auxot account on any tier. At least one custom agent ([Create an agent from scratch](/tutorials/create-an-agent-from-scratch)). Helpful: a recurring multi-step process you'd like to automate — something like 'customer signs up → research them → draft a welcome email → human approves → send it'. |
| You'll end up with | One runnable workflow spanning ≥2 steps — plus a clearer sense of **when a workflow is worth building** versus when a sharper single-agent description would do the job ([Give your agent its job description](/tutorials/give-your-agent-its-job-description)). |
When a tutorial shows italic text in quotation marks, it usually mirrors a label or helper string inside Auxot. Product copy changes between releases — if something reads differently in your workspace, trust what you see on screen.
Callouts with a Worth knowing gold accent are meant as must-read context before you move on. Blockquotes that open with Tip are lighter, optional depth.
Why this matters
Custom agents are great at handling one kind of work. But a lot of business work isn’t one kind of work: it’s a sequence. Customer signs up: research them, draft a welcome message, have a human approve it, and send it. Contract comes in: extract the key terms, run them past compliance rules, flag the deviations, and route to a human for review. Same shape every time, several handoffs along the way.
That’s a workflow.
A workflow in Auxot is a sequence of ordered steps, each handled by either a prompt (a one-shot text request), an agent (one of your custom agents), or a human (someone you assign). Tasks enter the workflow at the entry step and travel through the steps in order, with handoffs routing them along (and sometimes branching based on the step’s output).
You watch tasks move through the workflow on a kanban board. Each step is a column. Tasks land in the right column when they’re being worked on, and move to the next when the step completes. Done tasks land in “Recently completed.”
Today, build one skeleton board. Repeatable work still needs something to start each task (New task, webhook intake, or scheduled-agent glue per triggers below). Humans land only on steps you marked human. Nothing approves on its own.
Workflows move tasks through ordered steps once you create a task. Tasks usually start from New task or a webhook intake (authenticate with Create a shared Team API Key). For a recurring single-agent prompt on a clock, use Scheduled Tasks on that agent (Run an agent on a schedule): that’s separate from dragging workflow cards. Humans only sit on steps you marked human.
Quick start
- Sign in: open Auxot in your browser and log in.
- Open Workflows: click Workflows in the left menu.
- Click New workflow: name it (something like “Customer onboarding”), pick a team if prompted, save.
- Add a few steps: each step is either a prompt, an agent, or a human. Connect them with handoffs (the “Routes to: …” footer on each step card).
- Add a task: click New task to drop your first work item into the workflow’s entry step. Watch it move through the kanban board as each step completes.
Done? Your workflow ran end-to-end once. Adding more real traffic usually means New task or a webhook POST, unless you wired a scheduled agent or external cron into an intake (Run an agent on a schedule, Go deeper → Triggers below).
The agent can do that?
The Admin Agent doesn’t have tools to edit workflows for you yet, but it’s still worth pasting drafts there before you spend time dragging cards in the UI. Sketch, debug pasted logs, sanity-check repetition: prompt first, build with the mouse second.
1. Draft step/handler/handoff scaffolding from plain English
Open chat with the Admin Agent and describe the process you want to automate, then ask:
I want to automate this process: [describe what happens today, step by step in plain English — e.g., "When a customer signs up, we research the company, draft a welcome email, have a manager approve it, then send it"]. Sketch this as an Auxot workflow — what should the steps be, which should be prompts vs agents vs humans, and what handoffs (with conditions) should connect them? List the steps in order.
Why it’s non-obvious: Dragging cards is faster than thinking about it, until you’re eight steps in and realize you forgot a branch. Paste the plain-English description once; the reply maps each verb to prompt, agent, or human before you commit a shape. Humans still enact policy by clicking Publish afterward.
2. Decode a stalled column with pasted audit rows
When cards glue themselves somewhere odd, snag a handful of View your audit logs rows, then paste:
My "[workflow name]" workflow has a task that's been stuck at the "[step name]" step for [how long]. Here's what I see in the audit logs: [paste 3-5 relevant rows]. What's most likely happening, and what should I check first? If a handoff condition is wrong, tell me how to rewrite it.
Why it’s non-obvious: A stuck card can have several causes: handoff condition wrong, agent wording unreliable, payload missing fields. Paste the audit rows and your suspicion; the reply suggests where to look first because you asked. You still confirm by clicking through the workflow yourself when stakes warrant.
3. Decide board vs better job description
When you catch yourself doing the same multi-step thing in Auxot manually, ask:
I keep doing this same set of steps manually: [describe the steps you do, in order, every time it comes up — e.g., "Open the customer's email, ask my Research Agent for background, ask my Brand Voice Agent to draft a reply, copy it to my drafts, and send it"]. Should this be a workflow? If yes, sketch the workflow shape — what steps, what handoffs, and where should I put a human step. If no, tell me why a single agent (or another tool) would be better.
Why it’s non-obvious: Not every habit deserves infrastructure: sometimes Give your agent its job description trims the same minutes with less ceremony. Paste the honest habit list; whichever answer you get, you still enact it (tighter agent prose or dragging cards). Auxot never auto-spawns boards because you complained in chat.
Go deeper
When a workflow is the right tool (and when a single agent is)
A single agent is the right tool when:
- The work fits in one back-and-forth: one input, one answer.
- The agent has all the context, tools, and voice it needs to do the work alone.
- There’s no human approval step that needs to interrupt.
A workflow is the right tool when:
- The work has multiple stages, each requiring different specialization (research → draft → review → send).
- Different agents handle different stages (your Research Agent, your Brand Voice Agent, and your Compliance Agent).
- A human needs to approve or intervene at a specific point.
- The same shape repeats over and over with different input data, and you want every instance to follow the same path.
- You want to trigger the work from outside Auxot (a form, a webhook, or a schedule).
If the answer to “can a sharper agent description do this?” is yes, do that first (Give your agent its job description). If it’s no, build the workflow.
Step types: when to use prompt vs agent vs human
Prompt step:
- Self-contained transformation (translate, summarize, extract, or classify).
- Doesn’t need business context, tools, or your specific voice.
- Cheap and fast: uses whichever model your workflow routes to, no agent overhead.
Agent step:
- Needs your business voice, context files, or a specialized capability.
- Should integrate with the rest of your agent system: same tools, same knowledge, and same constraints.
- One agent might handle several steps in the same workflow if its job naturally spans them.
Human step:
- Requires judgment, approval, or accountability.
- Pauses the task until the assigned person marks it done: set expectations with whoever’s assigned (the workflow won’t progress until they act).
- Useful as a “safety valve” between two automated steps when the cost of a wrong answer is high.
Handoffs and branching
A handoff is “after this step completes, route the task to that step (or end the workflow), based on this condition.”
Conditions are how workflows branch:
- “approved” → route to the next step.
- “rejected” → route to a human-handles-the-rejection step (or back to the drafting step for another try).
- “default” → fallback when no other condition matches.
A single step can have multiple handoffs with different conditions. The output of the step (what the prompt/agent/human produced) determines which handoff fires.
For deterministic outputs, an output schema (JSON) makes branching reliable: the agent’s output is parsed, and conditions match against fields. For free-text outputs, the LLM that runs the next step infers the condition naturally.
Triggers: manual, webhook (intake), scheduled agents, and glue
Three common ways tasks enter a workflow:
- Manual: the New task button. Useful for testing, for one-offs, and for processes where a human always kicks things off.
- Webhook (Intake): an external service POSTs to the intake URL. Useful for integrations: a form submission, a Slack message, a CRM event, or a Stripe webhook.
- Scheduled agent + intake (glue): A Scheduled Task on an agent (Run an agent on a schedule) fires your cron and delivers your prompt to that agent on the clock. If that run should spawn workflow work, point the automation at your intake URL (directly or via a thin script), authenticated like any other webhook client. Check the Workflows UI for the latest if first-class “schedule this workflow” appears later: until then, glue stays explicit you-configured wiring.
Create a shared Team API Key covers Team API Keys, which is what you’d typically use to authenticate webhook calls into your intakes.
Troubleshooting
- A task arrives at the entry step but doesn’t move. Most likely no handoff is configured on that step. Click the step card, look for the “Routes to:” footer, add one.
- A task moves to the wrong next step. A handoff condition is matching when it shouldn’t. Check the conditions on the previous step: if you have multiple, the order they’re evaluated matters.
- A human step has been pending forever. Check who’s assigned. If they’re not in the system or didn’t get notified, no one’s going to act on it. Re-assign or follow up.
- An agent step keeps producing wrong-looking output. The issue is usually the agent’s Description (Give your agent its job description) or its attached context files (Add your first context file), not the workflow itself. Tighten the agent’s job description and try again.
- Intake POSTs return 401 Unauthorized. The Team API Key isn’t authenticating. Check the key is current (not revoked, not expired) and that it has access to the intake’s team.
- A task is stuck “running” with no progress. Check the workflow’s provider: if all routing options are over quota or offline, the task waits. Take Auxot’s pulse in 10 seconds (System Health) shows your providers’ status.
Variations & edge cases
- Free tier and Team tier support workflows the same way Business and Enterprise do: no tier-locking on the feature itself. Multi-team scoping (assigning workflows to specific teams) is Business and Enterprise only.
- Pausing a workflow. Use the Pause toggle on the detail page. The banner reads: “This workflow is paused. Tasks already running keep going, but new ones won’t start until you activate it.” Useful when you’re making changes and don’t want new tasks landing in a half-built shape.
- A workflow with no handoffs is a dead end. Tasks arriving at it sit forever. Auxot doesn’t auto-fail them. The workflow just stops.
- Step parallelism is per-provider, not per-workflow. If two tasks both hit the same step at the same time, they run in parallel up to the provider’s max-parallel limit. Beyond that, they queue. Auxot’s queue-don’t-fail design applies: tasks wait, they don’t error.
- There’s no built-in “retry on failure” at the workflow level. Failed tasks stay failed; you’d start a new task with the same input. (For agent-level retries within a step, the agent’s behavior or context files are the right fix.)
- No dedicated “Workflow Runs” page. Active tasks live on the kanban board; completed ones go to “Recently completed” (showing the 20 most recent). For older history, use View your audit logs: every workflow task creates jobs and threads that show up there.
- Workflows aren’t currently visible to the Admin Agent. He can’t list them, edit them, or trigger tasks via tool calls: those hooks aren’t in his set yet. Paste the sketches from power moves 1–3 first; everything draggable still happens in the UI.
Walkthrough
Step 1: Sign in
Open Auxot in your browser and sign in.
Step 2: Open Workflows
Click Workflows in the left menu. The page’s helper text frames the concept: “Run tasks through ordered steps — each handled by a prompt, an agent, or a person — so repeat work always follows the same path.”
If this is your first workflow, you’ll see an empty state: “No workflows yet. Create one to run tasks through a sequence of steps — each handled by a prompt, an agent, or a person.”
Step 3: Create a new workflow
Click New workflow. A modal opens. Fill in:
- Name: ”What this workflow does — a short handle you’ll see in the workflow list.” Keep it descriptive: ”Customer onboarding,” ”Contract intake,” or ”Press mention triage.” Required.
- Description: optional notes. Skip on the first one; come back later if it gets ambiguous.
- Team: only appears if your account has more than one team. Pick which team owns this workflow.
Click Create. Auxot drops you into the workflow’s detail page: an empty kanban board waiting for steps.
Step 4: Add steps to your workflow
The detail page has a “How workflows work” toggle that’s worth opening on your first time. The explainer says it well:
“Each step is handled by either a prompt, an agent, or a human — pick one:
- prompt — a text request (no tools, no context)
- agent — one of your agents (has its own tools and context)
- human — a person you assign (work pauses until they act)
Tasks move through the steps in order. The badge on each step shows who does the work.“
Three handler types, three different behaviors:
a. Prompt step
A prompt step is the simplest: a text instruction sent to whichever AI model your workflow’s provider routes to. Use a prompt step for a self-contained transformation that doesn’t need your business knowledge: ”Translate this text to Spanish” or “Extract the company name and contact email from the text below.”
b. Agent step
An agent step delegates the work to one of your custom agents. The agent uses its own context files, tools, and Description to handle the task. Use an agent step when the work needs your business voice, your context, or a specialized skill: ”Draft a customer welcome email” (your Customer Support Agent), “Research this company” (your Research Agent), or “Summarize this contract for compliance issues” (your Contract Reviewer).
c. Human step
A human step pauses the workflow and assigns the task to a person you specify. The task waits in that step’s column until the human marks it done. Use a human step when something requires judgment or approval: ”Approve this draft before sending,” “Confirm the contact info is right,” or “Pick the right escalation path.”
Click into each step card to configure it. Set the handler type, fill in the prompt/agent/instructions, and save. Steps default to position-ordered: drag to reorder if needed.
Step 5: Connect steps with handoffs
A workflow with steps but no handoffs doesn’t go anywhere: tasks would arrive at the entry step and just sit there. Handoffs are how a task moves from one step to the next.
On each step card, look for the “Routes to:” footer. Click Add next step (the dashed call-to-action when no handoff exists yet) and pick:
- Which step to route to: the next step in the sequence, or ”complete” (which ends the workflow for this task).
- A condition name: like ”approved,” ”rejected,” or ”default”, describing when this handoff fires. The condition is the workflow’s branching mechanism: a single step can have multiple handoffs going to different next steps based on the output.
- (Optional) An output schema: JSON schema describing what data this step produces and passes forward. Skip on your first workflow; come back when you need structured outputs.
A workflow with steps and handoffs forms a sequence (or a branching decision tree) that tasks travel through.
Tip: Sketch the workflow on paper or a napkin first: boxes for steps, arrows for handoffs, labels for conditions. Building it in the UI is faster when you already know what shape you’re aiming for. Power move 1 above drafts the same outline in Admin Agent chat after you paste the process prompt.
Step 6: Add a task and watch it run
Now the fun part. Click New task at the top of the workflow detail page. Tooltip: “Add a single task to this workflow by hand.” A small modal accepts the input (typically a piece of text, a name, or a request) that the entry step will receive.
Submit. The task drops into the entry step’s kanban column. Within a few seconds (depending on whether the step is a prompt, an agent, or a human), the task starts processing.
You’ll see it move:
- Entry step → next step as the first step completes.
- Through each step as handoffs route it along.
- Into the “Recently completed” column at the bottom right when it reaches a “complete” handoff.
If a step fails or hits an error, the task pauses there. Click into it to see the full execution log: which step handled it, the model used, tokens spent, and the error message if any.
Step 7 (optional): Set up an intake for webhook triggers
Manual “New task” is fine for testing. For real automation, you want intakes.
An intake is a webhook URL that external services can POST to. When something arrives, Auxot creates a new task and drops it into the workflow’s entry step automatically. Use intakes to wire workflows up to:
- A form submission (someone signs up → start the onboarding workflow).
- A Slack message (someone posts a question → start the triage workflow).
- A scheduled job (every Monday at 9am → start the weekly summary workflow).
- An external service’s webhook (Stripe, GitHub, or your CRM).
Click Intakes on the workflow detail page (tooltip: “Webhook URLs outside services can call to drop tasks into this workflow”) to see existing intakes or add a new one. Each intake gives you a URL to share with the external service plus authentication (typically a Team API Key: Create a shared Team API Key).
Hands-on 202, work_id, and polling lives in Trigger a workflow with an intake webhook; read that before pasting tokens into CI. Trigger a workflow from GitHub Actions carries the same pattern into workflow_dispatch YAML.
Tip: Authenticate intakes with a Team API Key, not a personal one. The intake will outlive any one person’s account.
What’s next
- → Know when Workflows beat a long Chat thread. Vocabulary for when a board beats a long Chat thread before you drag steps.
- → Use Auxot as glue between two SaaS tools. Systems-of-record map, triggers vs MCP, approval posture, then drill into mechanics below.
- → Trigger a workflow with an intake webhook. POST from outside Auxot, read
work_id, poll (or callback) until the run finishes. - → Trigger a workflow from GitHub Actions. Commit that POST and poll loop into GitHub Actions with repo secrets.
- → Batch spreadsheet rows through a workflow. Same board, many rows: stable
row_key, intake loops or batched New task, QC before scale. - → Use two-person rules for high-impact actions. Chain human steps so maker ≠ checker before agent steps that hold destructive tools.
- → View your audit logs. Every task that runs through a workflow generates audit-log entries: useful for monitoring and debugging.
- → Build your first Dashboard. Pin the recurring questions you’ll ask once workflows start generating steady job traffic.
- → Create a shared Team API Key. For authenticating external services that POST to your workflow intakes.
- → Create an agent from scratch. Workflow agent steps are only as good as the agents they call: sharper agents make better workflows.
Reference
- Pages in Auxot: Workflows (
/app/workflows), Workflow detail (/app/workflows/:id) - Three step handler types: prompt | agent | human
- Trigger paths: manual (New task button) | webhook (Intakes) | scheduled (via agent cron and intake URL)
- Branching mechanism: handoff conditions on each step (one step can have multiple handoffs)
- View modes: kanban board (active work) and Recently completed (last 20)
- Permissions: team-scoped: users see workflows on their teams; intake authentication via Team API Keys
- Tier: all tiers; multi-team scoping requires Business or Enterprise
- See also: Trigger a workflow with an intake webhook, Trigger a workflow from GitHub Actions, Create a shared Team API Key, View your audit logs, Build your first Dashboard