Table of Contents
What Multi-Tiered Workflows Are (And When You Need Them)
The Limitation of Linear Workflows
A standard workflow on CEO.ai is linear: Trigger → Agent A → Agent B → Agent C → Output. Data flows in one direction. Each step happens after the previous step completes. This covers a huge range of business processes — and most teams should start here.
But some processes don't fit a straight line.
Consider an inbound request processing system for a 60-person services company:
- A request arrives (from a form, email, or messaging platform)
- It needs to be classified: is it a sales inquiry, a support issue, a partnership request, or a job application?
- Based on the classification, it routes to a completely different processing pipeline:
- Sales inquiries get qualified, scored, and routed to the right rep
- Support issues get triaged, prioritized, and either auto-resolved or escalated
- Partnership requests get evaluated against criteria and forwarded to the BD team
- Job applications get screened, scored, and entered into the hiring pipeline
- At the end of the day, all processed requests — regardless of type — feed into a daily summary report
This isn't one workflow. It's a system of workflows with:
- Conditional branching — different paths based on classification
- Parallel processing — different pipelines running independently
- Convergence — results from all pipelines feeding into one report
- Human checkpoints — approvals at different points in different pipelines
This is what multi-tiered workflows are built for.
The Definition
A multi-tiered workflow is a system of interconnected workflow stages where outputs from one tier feed into the next, with support for conditional routing, parallel execution, nested workflows, and cross-tier data sharing.
Think of it as workflow architecture rather than workflow configuration. You're designing a system, not a sequence.
When You Need Multi-Tiered Workflows
You need them when:
- ✓ A single trigger branches into multiple processing paths based on content
- ✓ Multiple independent processes converge into a combined output
- ✓ Your workflow has 6+ steps with branching logic
- ✓ Different stakeholders approve different parts
- ✓ A failure in one branch shouldn't halt other branches
- ✓ You need to orchestrate across multiple departments or systems
You don't need them when:
- — A linear workflow handles your process
- — The process has fewer than 5 steps with no branching
- — Every request follows the same path regardless of content
- — You're in your first 30 days on the platform (build confidence with standard workflows first)
The Four Execution Patterns
Every multi-tiered workflow is built from four fundamental patterns. Understanding these patterns — and knowing when to combine them — is the core skill of workflow architecture.
Pattern 1: Sequential
The foundation. Steps execute one after another. Output from step N becomes input for step N+1.
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ Agent A │────▶│ Agent B │────▶│ Agent C │────▶│ Output │ │ (Extract)│ │(Validate)│ │(Transform)│ │ (Store) │ └──────────┘ └──────────┘ └──────────┘ └──────────┘
When to use: When each step depends on the output of the previous step. Order matters. No step can start until the one before it finishes.
Example: Invoice processing — extract data from PDF → validate against PO → transform to accounting format → insert into accounting system.
Key design consideration: Sequential chains are only as fast as their slowest step. If one agent takes 30 seconds and the rest take 2 seconds each, the 30-second agent is your bottleneck. Consider whether the slow step can be decomposed into parallel sub-steps.
Pattern 2: Parallel
Multiple steps execute simultaneously. A single input fans out to multiple agents, and the results are collected when all complete.
┌──────────────┐
┌───▶│ Agent A │───┐
│ │ (Analyze) │ │
┌────────┐ │ └──────────────┘ │ ┌────────────┐
│ Input │──┤ ├───▶│ Collect │
│ (Split) │ │ ┌──────────────┐ │ │ (Merge) │
└────────┘ ├───▶│ Agent B │───┤ └────────────┘
│ │ (Research) │ │
│ └──────────────┘ │
│ ┌──────────────┐ │
└───▶│ Agent C │───┘
│ (Summarize) │
└──────────────┘
When to use: When multiple independent analyses or actions need to happen on the same input, and no step depends on another's output. All steps can start immediately.
Example: A new client project kickoff — simultaneously: Agent A creates the project workspace, Agent B generates the welcome email, Agent C produces the onboarding checklist, Agent D sets up billing. All four can happen at once because none depends on the others.
Key design consideration: Parallel steps need a collection mechanism. Design explicitly for: How do the results merge? What happens if one branch finishes before others? What happens if one branch fails? (See Error Handling below.)
Pattern 3: Conditional
The input is evaluated and routed to different processing paths based on its content, category, or other criteria.
┌──────────────┐
condition A │ Pipeline A │
┌─────────────▶│ (Sales flow) │
│ └──────────────┘
┌────────┐ │ ┌──────────────┐
│ Router │───┤ condition B │ Pipeline B │
│ Agent │ ├─────────────▶│(Support flow) │
└────────┘ │ └──────────────┘
│ ┌──────────────┐
│ condition C │ Pipeline C │
└─────────────▶│ (HR flow) │
└──────────────┘
When to use: When different types of input need fundamentally different processing. The router agent makes the classification decision, and each downstream pipeline is optimized for its specific input type.
Example: The inbound request system described in the introduction. A router agent classifies the request, then routes it to the appropriate department-specific pipeline.
Critical: The router agent is the single most important agent in a conditional workflow. If it misclassifies, the downstream pipeline may fail or produce wrong results. Invest heavily in the router's system prompt and RAG training. Include clear classification criteria and edge case guidance. Test the router with ambiguous inputs.
Pattern 4: Hybrid
Real-world processes almost always combine patterns. A conditional branch may contain parallel sub-steps. A sequential pipeline may fan out at one point and converge later. Hybrid patterns are the norm, not the exception.
┌─────────┐ ┌────────┐
│ Trigger │────▶│ Router │──────────────────────────────┐
└─────────┘ └────────┘ │
│ │
┌─────────┴──────────┐ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ PIPELINE A │ │ PIPELINE B │ │ PIPELINE C │
│ │ │ │ │ │
│ ┌────┐ ┌────┐│ │ ┌────┐ │ │ ┌────┐ │
│ │ A1 │ │ A2 ││ │ │ B1 │ │ │ │ C1 │ │
│ └──┬─┘ └──┬─┘│ │ └──┬─┘ │ │ └──┬─┘ │
│ └──┬───┘ │ │ ▼ │ │ ▼ │
│ ▼ │ │ ┌────┐ │ │ ┌─────┐ │
│ ┌────┐ │ │ │ B2 │ │ │ │Human│ │
│ │ A3 │ │ │ └──┬─┘ │ │ │Check│ │
│ └──┬─┘ │ │ ▼ │ │ └──┬──┘ │
│ ▼ │ │ ┌────┐ │ │ ▼ │
└───────┼──────┘ │ │ B3 │ │ │ ┌────┐ │
│ │ └──┬─┘ │ │ │ C2 │ │
│ └────┼─────────┘ │ └──┬─┘ │
│ │ └────┼─────────┘
│ │ │
└────────────┬────┴─────────────────────────┘
▼
┌──────────────┐
│ AGGREGATION │
│ (Collect + │
│ Report) │
└──────────────┘
In this hybrid:
- Conditional routing at the top (Router sends to Pipeline A, B, or C)
- Parallel execution within Pipeline A (A1 and A2 run simultaneously, then A3 collects their outputs)
- Sequential execution within Pipeline B (B1 → B2 → B3)
- Human-in-the-loop within Pipeline C (C1 → Human approval → C2)
- Convergence at the bottom (all pipeline outputs feed into an aggregation tier)
When to use: When your process genuinely requires this complexity. Don't build a hybrid workflow when a linear one will do — but don't force a complex process into a linear shape when it naturally branches and converges.
Designing Tier Boundaries: How to Decompose Complex Processes
The most important architectural decision in multi-tiered workflows is where to draw the boundaries between tiers. Get this right and your system is maintainable, debuggable, and extensible. Get it wrong and you have a tangled mess that's harder to fix than the manual process it replaced.
The Tier Boundary Principles
Each tier should have a single, clear responsibility.
A tier should be describable in one sentence: "This tier classifies incoming requests." "This tier processes sales inquiries." "This tier generates the daily summary." If you need a paragraph to describe what a tier does, it should probably be split into multiple tiers.
Tiers communicate through defined data contracts.
The output of one tier is the input of the next. Define explicitly what data flows between tiers — its structure, its format, and what's required vs. optional. This is the same principle as API contracts between microservices.
Example data contract between a classification tier and a processing tier:
{
"requestId": "req-12345",
"classification": "sales_inquiry",
"confidence": 0.94,
"extractedData": {
"contactName": "Sarah Chen",
"company": "Acme Manufacturing",
"interest": "workflow automation",
"urgency": "high"
},
"rawInput": "...",
"timestamp": "2025-01-15T09:30:00Z"
}
When the processing tier receives this payload, it knows exactly what to expect. No ambiguity. No implicit assumptions.
Tiers should be independently testable.
You should be able to test any tier in isolation by feeding it a sample input and verifying the output — without running the entire multi-tiered system. This is critical for debugging. When something goes wrong, you need to identify which tier is the problem. If tiers are tightly coupled, finding the fault is exponentially harder.
Failure in one tier should not cascade.
If the sales processing pipeline fails, it shouldn't affect the support pipeline. If the aggregation tier fails, the processing tiers should complete normally (and the aggregation can be re-run later). Design tiers with isolation in mind. Each tier should handle its own errors and report status independently.
A Decomposition Example
Business process: End-of-day operations close for an e-commerce company.
Monolithic (wrong) approach
One giant workflow that processes all pending orders, generates shipping labels, updates inventory, sends customer notifications, reconciles payments, generates the daily financial summary, alerts the warehouse, and posts to Slack. 15+ steps in one linear chain. If step 8 fails, steps 9-15 don't run. Debugging requires understanding the entire chain.
Tiered (correct) decomposition
Three tiers with clear boundaries: Tier 1 collects data; Tier 2 fans out to parallel pipelines (Fulfillment, Financial, Communication); Tier 3 aggregates and reports. Each tier is independent, testable, and can fail without blocking the others.
TIER 1: TRIGGER & DATA COLLECTION
┌─────────────────────────────────────────────┐
│ Schedule: 6pm daily │
│ Agent: Data Collector │
│ Responsibility: Pull all pending items from │
│ all systems into a unified daily payload │
│ Output: Structured daily data package │
└─────────────────┬───────────────────────────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
TIER 2A: TIER 2B: TIER 2C:
FULFILLMENT FINANCIAL COMMUNICATION
┌──────────┐ ┌──────────┐ ┌──────────┐
│Process │ │Reconcile │ │Customer │
│orders, │ │payments, │ │notifs, │
│shipping, │ │generate │ │internal │
│inventory │ │financial │ │alerts │
└────┬─────┘ │summary │ └────┬─────┘
│ └────┬─────┘ │
└─────────────┼─────────────┘
▼
TIER 3: AGGREGATION & REPORTING
┌─────────────────────────────────────────────┐
│ Collect results from all Tier 2 pipelines │
│ Generate daily close report │
│ Post to Slack, email to leadership │
└─────────────────────────────────────────────┘
Why this is better:
- Each tier has one job
- Tiers 2A, 2B, and 2C run in parallel — the close process finishes faster
- If fulfillment processing fails, financial reconciliation and customer communications still complete
- Each tier can be tested independently with sample data
- Adding a new Tier 2 pipeline (e.g., "Tier 2D: Analytics Update") requires no changes to existing tiers
Human-in-the-Loop Architecture: Approval Flows and Escalation
Human-in-the-loop (HITL) steps are where you insert human judgment, approval, or oversight into an automated workflow. In multi-tiered workflows, the design of these steps significantly impacts both the workflow's reliability and the humans' experience.
Placement Patterns
Gateway Approval
The human checkpoint sits between tiers. Nothing in the next tier starts until a human approves the output of the previous tier.
TIER 1 HUMAN TIER 2 ┌──────────┐ ┌──────────┐ ┌──────────┐ │ Generate │───▶│ Review & │───▶│ Send to │ │ proposal │ │ approve │ │ client │ └──────────┘ └──────────┘ └──────────┘
When to use: Before any external-facing output (sending emails to customers, publishing content, making financial transactions). The human is the quality gate between AI-generated output and the outside world.
Escalation Branch
The main flow runs automatically. A parallel branch notifies a human only when specific conditions are met (high value, low confidence, exception cases).
┌──────────┐
if flagged │ Human │
┌─────────────▶│ Review │──┐
│ └──────────┘ │
┌──────────┐ │ │ ┌──────────┐
│ Process │─┤ ├─▶│ Output │
│ (Agent) │ │ │ └──────────┘
└──────────┘ │ if normal ┌──────────┐ │
└─────────────▶│ Continue │──┘
│ (auto) │
└──────────┘
When to use: High-volume workflows where most items can be processed automatically, but some need human attention. Support ticket processing, invoice processing, lead scoring.
Parallel Notification
The workflow runs to completion. A human is notified after the fact for awareness — not approval. The human can intervene if something looks wrong, but the system doesn't wait.
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Process │────▶│ Complete │────▶│ Output │
│ (Agent) │ │ (Agent) │ │ (Store) │
└──────────┘ └─────┬────┘ └──────────┘
│
▼
┌──────────┐
│ Notify │
│ human │
│ (async) │
└──────────┘
When to use: Internal processes where speed matters more than pre-approval, but you want visibility. Daily reporting, data synchronization, monitoring.
HITL Design Best Practices
1 Tell the human exactly what they need to decide.
Don't dump the entire workflow context on a reviewer. The notification should include: what the workflow produced, what decision is needed ("Approve this proposal to send to client" — not "Please review"), relevant context (a 3-line summary, not a 50-page log), and the available options (Approve / Reject / Edit / Escalate).
2 Set SLAs on human steps.
A workflow paused for human approval that sits for 3 days defeats the purpose of automation. Design with timeouts: After 4 hours → send a reminder. After 24 hours → escalate to a backup approver. After 48 hours → auto-approve with a flag for retrospective review (if your business rules allow).
3 Log everything the human does.
Every approval, rejection, edit, and escalation should be logged with timestamp and identity. This creates an audit trail for compliance, data for improving agents (if humans consistently edit the same type of error, that's a training signal), and evidence of bottlenecks.
Event-Driven Design: Webhooks, Triggers, and Workflow Chaining
Multi-tiered workflows are inherently event-driven. Each tier fires based on an event — a schedule, a webhook, the completion of a previous tier, or an API call.
Webhook-Based Triggers
Webhooks are the backbone of event-driven workflows. An external system sends an HTTP request to a CEO.ai endpoint, and a workflow fires.
Common webhook sources:
| Source | Event | Triggers |
|---|---|---|
| Stripe | Payment received | Invoice workflow, onboarding workflow |
| GitHub | PR merged | Code review workflow, deployment workflow |
| Salesforce | Deal closed | Client onboarding workflow, provisioning workflow |
| Slack | Message in channel | Request processing workflow |
| Telegram | New message | Lead capture workflow |
| Form submission | New submission | Application processing workflow |
| Custom app | Any event | Any workflow (via Workflows API) |
Scroll horizontally to see all columns
Workflow Chaining
The most powerful pattern in multi-tiered design: the completion of one workflow triggers another.
WORKFLOW 1 WORKFLOW 2 WORKFLOW 3 ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ New lead │ fires │ Lead │ fires │ Welcome │ │ capture │────────▶│ qualification│────────▶│ sequence │ └──────────────┘ └──────────────┘ └──────────────┘
How it works: Workflow 1 completes and its output event triggers Workflow 2 via webhook or the Workflows API. Workflow 2 completes and triggers Workflow 3. Each workflow is independent — it can be tested, modified, and monitored without affecting the others.
Why chain instead of building one mega-workflow:
- Each workflow has a clear, single responsibility
- Failure in Workflow 2 doesn't affect Workflow 1 (the lead is already captured)
- You can update Workflow 2's logic without touching the others
- Different workflows can run on different schedules or triggers
- Monitoring and debugging are simpler — you can see exactly where in the chain something went wrong
The Workflows API (Enterprise)
For programmatic control, the Workflows API lets you trigger any workflow via HTTP:
// Trigger a workflow from your application
const response = await fetch('https://api.ceo.ai/workflows/wf-12345/run', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
inputData: {
requestType: 'sales_inquiry',
contactName: 'Sarah Chen',
company: 'Acme Manufacturing',
message: 'Interested in automating our lead capture...'
}
})
});
This enables:
- Your existing applications to trigger CEO.ai workflows as part of their logic
- External orchestration tools to manage workflow sequencing
- Custom dashboards that kick off workflows on demand
- Integration with existing event buses or message queues
Error Handling and Fallback Patterns
In a multi-tiered workflow, things will go wrong. An agent will produce unexpected output. An integration will time out. A human approver will be on vacation. Robust error handling is what separates a production system from a demo.
Pattern 1: Retry with Backoff
The simplest error handling. If a step fails, wait and try again.
┌──────────┐ fail ┌────────────┐ retry ┌──────────┐
│ Agent │───────────▶│ Wait │───────────▶│ Agent │
│ Step │ │ (backoff) │ │ Step │
└──────────┘ └────────────┘ │ (retry) │
└──────────┘
Configuration:
- Max retries: 2-3 (enough to handle transient failures; not so many that permanent failures burn credits)
- Backoff interval: exponential (5 seconds → 15 seconds → 45 seconds)
- After max retries: escalate to fallback pattern
Best for: Transient failures — API timeouts, temporary rate limits, momentary connectivity issues.
Pattern 2: Fallback Agent
If the primary agent fails, a simpler fallback agent handles the task with reduced functionality.
┌──────────┐ fail ┌──────────────┐ │ Primary │───────────▶│ Fallback │ │ Agent │ │ Agent │ │ (complex)│ │ (simpler) │ └──────────┘ └──────────────┘
Example: Your primary classification agent uses a high-capability model with complex RAG knowledge. If it fails, a simpler fallback agent using a lighter model classifies the input into broad categories — less precise, but the workflow doesn't halt.
Best for: Steps where some output is better than no output, and a degraded response is acceptable.
Pattern 3: Dead Letter Queue
Failed items are saved for later reprocessing rather than dropped or blocking the pipeline.
┌──────────┐ fail ┌──────────────┐
│ Agent │───────────▶│ Dead Letter │
│ Step │ │ Queue │
└──────────┘ │ (store for │
│ │ later) │
│ success └──────┬───────┘
▼ │
┌──────────┐ manual/scheduled
│ Next │ reprocessing
│ Step │ │
└──────────┘ ▼
┌──────────────┐
│ Reprocess │
└──────────────┘
Best for: High-volume workflows where you can't afford to hold up the pipeline for individual failures, but you can't afford to lose the failed items either. Invoice processing, lead capture, support ticket processing.
Pattern 4: Circuit Breaker
If a step fails repeatedly (indicating a systemic issue rather than a transient one), stop sending traffic to it and alert a human.
┌──────────┐ ┌──────────────┐
│ Incoming │ 5+ failures │ CIRCUIT │
│ requests │ in 10 minutes │ OPEN │
└──────┬───┘ ──────────▶ │ (stop all │
│ │ processing) │
│ │ Alert human │
▼ └──────────────┘
┌──────────┐
│ Agent │
│ Step │
└──────────┘
When to use: When a downstream system is down (Salesforce API is unreachable, an integration endpoint is returning 500s). Continuing to retry wastes credits and produces errors. Better to halt, alert, and wait for the system to recover.
Combining Error Patterns
In practice, you combine these patterns at different tiers:
| Tier | Error Strategy | Reasoning |
|---|---|---|
| Tier 1 (Intake) | Retry → Dead letter queue | Never lose an incoming request. If initial processing fails, save it for later. |
| Tier 2 (Processing) | Retry → Fallback agent | Processing should degrade gracefully, not halt. |
| Tier 2 (Integrations) | Retry → Circuit breaker | If an external system is down, stop hammering it. Alert and wait. |
| Tier 3 (Reporting) | Retry → Alert human | Reports can wait a few minutes. If they fail, a human can investigate and re-trigger. |
Scroll horizontally to see all columns
Testing and Debugging Multi-Tiered Workflows
Testing a multi-tiered workflow is fundamentally different from testing a linear one. You can't just run it end-to-end and hope it works. You need a systematic approach.
Tier-by-Tier Testing
Test each tier in isolation before connecting them.
For each tier:
- Define sample inputs — create 5-10 representative inputs that cover the common cases and 3-5 edge cases
- Run the tier manually with each sample input
- Verify the output matches what the next tier expects (check the data contract)
- Test failure cases — what happens when the input is malformed? When an agent produces unexpected output? When an integration times out?
- Document the results — expected inputs, actual outputs, any issues found
Only after each tier passes independently do you connect them.
The Test Matrix
For a multi-tiered workflow with conditional branching, you need a test matrix that covers every path:
| Test Case | Tier 1 Input | Expected Route | Expected Output | HITL Step |
|---|---|---|---|---|
| #1: Standard sales | Sales form submission | → Sales pipeline | Lead in CRM, rep notified | None |
| #2: High-value sales | Sales form, enterprise budget | → Sales pipeline (priority) | Lead in CRM, priority flag | Manager approval |
| #3: Support request | Support email | → Support pipeline | Response drafted, ticket created | Agent reviews draft |
| #4: Ambiguous request | Unclear email | → Classification review | Correctly routed after human input | Classification step |
| #5: Malformed input | Empty form submission | → Error handling | Error logged, admin alerted | None |
Scroll horizontally to see all columns
Debugging a Failed Workflow
When something goes wrong in production, use this diagnostic sequence:
Identify which tier failed.
Check the execution log. Each tier logs its start time, completion time, and status. Find the first tier with a non-success status.
Check the input to the failed tier.
Was the input from the previous tier what the failed tier expected? If not, the problem is in the previous tier's output — not the current tier's processing.
Check the agent within the failed tier.
Run the agent manually with the same input. Does it reproduce the failure? If yes, the issue is in the agent's configuration or knowledge. If no, the issue is environmental.
Check integrations.
If the tier involves external platform integrations, verify the connection. API keys valid? Endpoint reachable? Rate limits hit? Most "mysterious" failures trace back to integration issues.
Check the data.
Was the input data unusual? A field that's normally 50 characters but was 5,000? A language the agent wasn't trained for? Edge cases in data are the most common source of production failures.
Shadow Mode
For high-stakes multi-tiered workflows, run in shadow mode before going live:
- Deploy the workflow with all automations active
- Run it in parallel with the existing manual process
- Compare outputs: does the automated workflow produce the same results as the manual process?
- Monitor for 1-2 weeks
- Once confidence is established, switch over
This is time-consuming but eliminates the risk of deploying a complex workflow that hasn't been validated against real production data.
Performance Considerations at Scale
Multi-tiered workflows running at volume require attention to credit consumption, execution time, and system design.
Credit Consumption
Each agent step in a workflow consumes credits. In a multi-tiered workflow with conditional branches and parallel execution, the total credit consumption per run can be significant.
How to estimate: Map every possible execution path and count the agent steps in each:
| Path | Agent Steps | Est. Credits per Run |
|---|---|---|
| Sales inquiry (standard) | 5 agents | ~250 credits |
| Sales inquiry (high-value, with HITL) | 6 agents | ~320 credits |
| Support request (auto-resolved) | 4 agents | ~180 credits |
| Support request (escalated) | 5 agents | ~260 credits |
| Aggregation (daily report) | 3 agents | ~400 credits |
Scroll horizontally to see all columns
If this workflow runs 50 times per day:
Average credits per run: ~230 (weighted by path frequency)
Daily consumption: ~11,500 credits
Monthly consumption: ~345,000 credits
On Enterprise plans, credit allocations are custom. Use these estimates when discussing your allocation with the CEO.ai team during setup.
Optimization strategies:
- Use lighter/faster models for simple steps (classification, routing, data formatting)
- Reserve high-capability models for steps requiring complex reasoning (analysis, synthesis, content generation)
- Avoid redundant processing — if two branches need the same data transformation, do it once in Tier 1 before the branch point
- Monitor per-step credit consumption and identify disproportionately expensive steps
Execution Time
For time-sensitive workflows (real-time customer interactions, SLA-bound support processing), total execution time matters.
Optimization strategies:
- Parallelize wherever possible — if two steps don't depend on each other, run them simultaneously
- Use faster models for latency-sensitive steps
- Set timeouts on external integration calls (don't let a slow API block the entire pipeline)
- For HITL steps, set SLAs and escalation paths
- Pre-compute and cache data that multiple steps need
Monitoring at Scale
For workflows running hundreds of times per day, you need automated monitoring — not manual log review.
| Metric | Alert Threshold | Action |
|---|---|---|
| Success rate | Below 95% | Investigate failed runs; check for systemic issues |
| Avg. execution time | 2x baseline | Check for slow agents, integration latency, or queue buildup |
| Credit consumption per run | 1.5x estimate | Review agent model selection; check for unnecessary steps |
| Human step wait time | Above SLA | Escalate to backup approver; review staffing |
| Error rate by tier | Any tier above 5% | Isolate and debug the specific tier |
Scroll horizontally to see all columns
On Enterprise plans, CEO.ai provides workflow performance monitoring as part of ongoing optimization. Bring these metrics to your regular check-ins with the team.
Three Complete Architecture Examples
Each example below represents a real-world multi-tiered workflow pattern. These are the sections you'll want to reference — and share — when designing your own system.
Multi-Department Request Processing
70-person professional services firm · 50-80 inbound requests/day
TIER 1: INTAKE
┌────────────────────────────────────────────────────┐
│ Triggers: Webhook (form), Webhook (email parser), │
│ Webhook (Slack) │
│ Agent: Format Normalizer │
│ → Converts all inputs to unified format │
│ Agent: Classifier │
│ → Categorizes: sales | support | partnership | │
│ employment | other │
│ Output: Classified, normalized request object │
└──────────────────────┬─────────────────────────────┘
│
┌─────────┬───────┼────────┬──────────┐
▼ ▼ ▼ ▼ ▼
TIER 2A: TIER 2B: TIER 2C: TIER 2D: TIER 2E:
SALES SUPPORT PARTNER HR OTHER
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐
│Qualify│ │Triage │ │Eval │ │Screen │ │Route │
│Score │ │Draft │ │Qualify│ │Score │ │to │
│Route │ │Route │ │Human │ │Notify │ │admin │
│to CRM │ │to rep │ │review │ │to HR │ │team │
└───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘
└──────────┴────┬────┴─────────┴──────────┘
▼
TIER 3: DAILY AGGREGATION
┌────────────────────────────────────────────────────┐
│ Trigger: Daily at 6pm │
│ Agent: Aggregator — collects all processed requests│
│ Agent: Analyst — identifies patterns and volumes │
│ Agent: Report Writer — daily operations summary │
│ Output: Report → Slack + Email to leadership │
└────────────────────────────────────────────────────┘
Key design decisions:
- Tier 1 normalizes all input formats into a single structure so Tier 2 pipelines don't need to handle format differences
- Each Tier 2 pipeline is optimized for its department (different agents, different RAG knowledge, different HITL patterns)
- Tier 3 runs on a schedule, not on events — it collects from all Tier 2 outputs once per day
- The classifier agent in Tier 1 is the highest-priority agent for RAG training — misclassification cascades downstream
Client Onboarding Orchestration
SaaS company · Multi-step provisioning, communication & training
TIER 1: TRIGGER & DATA ENRICHMENT
┌────────────────────────────────────────────────────┐
│ Trigger: Webhook from CRM (deal status → Closed) │
│ Agent: Data Enrichment │
│ → Pulls client details from CRM, contract system │
│ → Generates onboarding data package │
│ Output: Complete client onboarding record │
└──────────────────────┬─────────────────────────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
TIER 2A: TIER 2B: TIER 2C:
PROVISIONING COMMUNICATION INTERNAL SETUP
┌────────────┐ ┌────────────┐ ┌────────────┐
│Create │ │Generate │ │Create │
│accounts │ │welcome │ │project in │
│in all │ │email │ │PM tool │
│systems │ │ ↓ │ │ ↓ │
│ ↓ │ │Human: │ │Assign │
│Configure │ │AM reviews │ │team │
│permissions │ │ ↓ │ │members │
│& settings │ │Send email │ │ ↓ │
└─────┬──────┘ └─────┬──────┘ │Schedule │
│ │ │kickoff │
│ │ └─────┬──────┘
└─────────────────┼───────────────┘
▼
TIER 3: VERIFICATION & FOLLOW-UP
┌────────────────────────────────────────────────────┐
│ Agent: Verification — confirms all systems │
│ provisioned, email sent, project created │
│ Agent: Follow-Up Scheduler │
│ → Queues check-in at Day 3, 7, 30 │
│ Agent: Handoff Summarizer │
│ → Generates AM briefing document │
│ Output: Onboarding complete status + briefing doc │
└────────────────────────────────────────────────────┘
Key design decisions:
- Tier 2 pipelines run in parallel — provisioning, communication, and internal setup don't depend on each other
- The human checkpoint is only in the communication branch (reviewing the welcome email before it goes to the client)
- Tier 3 waits for all Tier 2 branches to complete before running verification
- Follow-up scheduling in Tier 3 creates future events that trigger their own workflows
Agency Multi-Client Report Generation
Marketing agency · 20 clients · Weekly performance reports
TIER 1: INITIALIZATION
┌────────────────────────────────────────────────────┐
│ Trigger: Friday at 1pm │
│ Agent: Client Roster Loader │
│ → Loads active client list with configurations │
│ Output: List of 20 client report jobs │
└──────────────────────┬─────────────────────────────┘
│
Fan out to N parallel instances
│
┌───────┬───────┬────┴────┬───────┬───────┐
▼ ▼ ▼ ▼ ▼ ▼
TIER 2: PER-CLIENT REPORT PIPELINE (×20, parallel)
┌────────────────────────────────────────────────────┐
│ Agent: Data Collector (per-client data sources) │
│ → Pulls from GA, social, ads — client-specific │
│ Agent: Analyst (per-client KPIs and targets) │
│ → Calculates metrics, compares to targets │
│ Agent: Report Writer (per-client template & tone) │
│ → Generates report in client's preferred format │
│ HITL: Account Manager reviews before sending │
│ Agent: Distributor │
│ → Emails report to client + posts to client Slack │
│ Output: Report sent, status logged │
└──────────────────────┬─────────────────────────────┘
│
Fan in from all instances
│
▼
TIER 3: AGENCY-LEVEL SUMMARY
┌────────────────────────────────────────────────────┐
│ Agent: Cross-Client Analyzer │
│ → Identifies top performers, at-risk accounts │
│ Agent: Agency Report Writer │
│ → Generates internal agency performance summary │
│ Output: Agency summary → Slack + leadership email │
└────────────────────────────────────────────────────┘
Key design decisions:
- Each client report is an independent instance of the same pipeline — enabling parallel execution of all 20 reports
- Per-client configuration (data sources, KPIs, templates) is stored as RAG knowledge on per-client agents
- The HITL step allows each AM to review their own clients' reports independently
- If one client's report fails, the other 19 complete unaffected (isolation principle)
Getting Started with Multi-Tiered Workflows
Multi-tiered workflows are powerful — and complex. Here's the recommended path:
If you're new to CEO.ai:
Don't start here. Build 3-5 standard workflows first. Understand how agents work. Get comfortable with RAG training and single-tier workflows. Then come back to this guide when your needs outgrow linear automation.
If you're on the SMB plan:
You have access to custom workflows, schedules, triggers, and human-in-the-loop — everything you need for most multi-step automations. Many processes that feel like they need multi-tiered architecture can actually be handled with a well-designed linear or branching workflow at the SMB tier. Talk to your setup partner about your use case before assuming you need Enterprise.
If you're on the Enterprise plan (or evaluating it):
Book a call with the CEO.ai team to discuss your specific architecture. Bring the process you want to automate, a rough sketch of the tiers, and your volume expectations. We'll help you design the architecture, build it, and optimize it. Multi-tiered workflows are a core part of Enterprise setup.
What to Read Next
Workflow Design Patterns
7 multi-agent workflows every SMB should consider — proven patterns that cover most needs without multi-tier complexity.
Agent Builder & Manager
How to create, clone, and train the agents that populate your workflow steps.
SDK Documentation
The Node.js SDK for calling the Workflows API from your applications.
Book a Call
Enterprise setup includes architecture design sessions — discuss your specific multi-tiered needs.