Workflows¶
Workflows are multi-step automated processes that handle complex document operations. While rules handle simple "if-then" automation, workflows orchestrate sequences of actions including AI processing, human approvals, and integrations.
What Are Workflows?¶
A workflow is a series of connected steps that process documents automatically. Each step can:
- Process - AI analysis, extraction, summarization
- Route - Send to different paths based on conditions
- Notify - Alert users or systems
- Wait - Pause for human input or external events
- Integrate - Connect to other systems
Workflow Concepts¶
Nodes¶
Each step in a workflow is a node. Nodes connect to form the workflow path.
graph LR
A[Start] --> B[Classify]
B --> C{Route}
C -->|Invoice| D[Extract Data]
C -->|Contract| E[Legal Review]
D --> F[Approve]
E --> F
F --> G[Complete] Connections¶
Connections link nodes and define the flow. Connections can be:
- Sequential - One node after another
- Conditional - Different paths based on conditions
- Parallel - Multiple nodes running simultaneously
Creating a Workflow¶
Step 1: Start a New Workflow¶
Go to Settings > Automation > Workflows and click Create Workflow.
Step 2: Add Nodes¶
Drag nodes from the palette onto the canvas:
| Category | Nodes |
|---|---|
| AI Processing | Classify, Extract, Summarize, Analyze |
| Human Tasks | Approve, Review, Assign |
| Routing | Condition, Branch, Merge |
| Actions | Move, Tag, Notify, Webhook |
| Integration | MCP Tool, External API |
Step 3: Connect Nodes¶
Click and drag from one node's output to another node's input to create connections.
Step 4: Configure Each Node¶
Click on a node to configure its settings:
- Inputs - What data the node receives
- Settings - Node-specific configuration
- Outputs - What data the node produces
Step 5: Set Triggers¶
Define what starts the workflow:
- Document Upload - New document added
- Tag Applied - Specific tag added to document
- Schedule - Run at specific times
- Manual - User-initiated
- API - External system triggers
Node Types¶
AI Nodes¶
Classify
Identify document type using AI.
- Input: Document
- Output: Document type, confidence score
- Use: Route documents by type
Extract
Pull structured data from documents.
- Input: Document
- Output: Extracted fields (vendor, amount, dates, etc.)
- Use: Populate metadata, feed to other systems
Summarize
Generate document summaries.
- Input: Document
- Output: Summary text
- Use: Quick document overviews
Analyze
Deep analysis with custom prompts.
- Input: Document, custom prompt
- Output: Analysis results
- Use: Risk assessment, compliance checking
Human Nodes¶
Approve
Request approval from specified users.
- Input: Document, context
- Output: Approved/Rejected, comments
- Settings: Approvers, timeout, escalation
Review
Request human review without explicit approval.
- Input: Document, instructions
- Output: Review notes
- Settings: Reviewers, deadline
Assign
Assign document to a user for action.
- Input: Document
- Output: Assignment confirmation
- Settings: Assignee, instructions, due date
Routing Nodes¶
Condition
Branch based on conditions.
- Input: Any data
- Output: Multiple paths
- Use: Route by amount, type, or any field
Branch
Split into parallel paths.
- Input: Any data
- Output: Multiple simultaneous paths
- Use: Run multiple operations in parallel
Merge
Combine parallel paths.
- Input: Multiple paths
- Output: Single path
- Use: Wait for all parallel operations
Action Nodes¶
Move
Move document to a folder.
- Input: Document
- Settings: Target folder
Tag
Apply or remove tags.
- Input: Document
- Settings: Tags to add/remove
Notify
Send notifications.
- Input: Context
- Settings: Recipients, message template
Webhook
Call external system.
- Input: Data to send
- Settings: URL, headers, payload template
Workflow Examples¶
Invoice Processing¶
graph TD
A[Document Upload] --> B[Classify Document]
B --> C{Is Invoice?}
C -->|Yes| D[Extract Invoice Data]
C -->|No| E[Route to Other Workflow]
D --> F{Amount > $5000?}
F -->|Yes| G[Manager Approval]
F -->|No| H[Auto-Approve]
G --> I[Update ERP]
H --> I
I --> J[Archive] Configuration:
- Classify Document - Use AI to identify document type
- Condition - Check if type is "invoice"
- Extract Invoice Data - Pull vendor, amount, date, line items
- Condition - Check if amount exceeds threshold
- Manager Approval - High-value invoices need approval
- Update ERP - Send data to accounting system
- Archive - Move to completed folder
Contract Review¶
graph TD
A[New Contract] --> B[Extract Terms]
B --> C[Risk Analysis]
C --> D{High Risk?}
D -->|Yes| E[Legal Review]
D -->|No| F[Standard Approval]
E --> G{Legal Approved?}
G -->|Yes| H[Execute]
G -->|No| I[Reject/Negotiate]
F --> H
H --> J[Archive] Human-in-the-Loop¶
How It Works¶
When a workflow reaches a human node, it pauses and waits:
- Notification - Assigned user receives notification
- Task Queue - Task appears in user's queue
- Action - User reviews and takes action
- Resume - Workflow continues based on response
Timeouts and Escalation¶
Configure what happens if humans don't respond:
| Setting | Description |
|---|---|
| Timeout | How long to wait (e.g., 24 hours) |
| Escalation | Who to notify after timeout |
| Auto-Action | What to do if still no response |
Example Escalation¶
Wait for: Manager Approval
Timeout: 24 hours
Escalate to: Department Head
Final timeout: 48 hours
Auto-action: Reject with notification
Conditional Routing¶
Simple Conditions¶
Route based on extracted data:
Complex Conditions¶
Combine multiple conditions:
Multi-Path Routing¶
Route to different paths based on value:
SWITCH on document_type:
"Invoice" -> Invoice Processing
"Contract" -> Contract Review
"Receipt" -> Expense Workflow
DEFAULT -> Manual Classification
Parallel Processing¶
Branch and Merge¶
Run multiple operations simultaneously:
graph LR
A[Start] --> B[Branch]
B --> C[Legal Review]
B --> D[Finance Review]
B --> E[Security Check]
C --> F[Merge]
D --> F
E --> F
F --> G[Final Decision] All three reviews happen in parallel. The merge waits for all to complete.
Parallel with First-Wins¶
Continue when any path completes:
graph LR
A[Start] --> B[Branch]
B --> C[Provider 1]
B --> D[Provider 2]
C --> E[First Response]
D --> E
E --> F[Continue] Monitoring Workflows¶
Execution Status¶
Track running workflows:
- Pending - Waiting to start
- Running - Currently executing
- Waiting - Paused for human input
- Completed - Successfully finished
- Failed - Encountered an error
Workflow History¶
View past executions:
- Start and end times
- Path taken through workflow
- Node-by-node execution details
- Errors and retries
Debugging¶
When workflows fail:
- View the failed execution
- Identify the failing node
- Review error details
- Fix and retry or manually complete
Best Practices¶
Start Simple¶
Begin with straightforward workflows and add complexity as needed.
Test Thoroughly¶
Use test documents to verify workflow behavior before production use.
Handle Errors¶
Add error handling for critical workflows:
- Retry logic for transient failures
- Error notification for critical failures
- Fallback paths for edge cases
Document Your Workflows¶
Use clear naming and add descriptions to explain workflow purpose.
Monitor Performance¶
Track execution times and failure rates to identify issues.
Availability¶
Workflow capabilities vary by subscription tier:
| Feature | Free | Starter | Pro | Team | Enterprise |
|---|---|---|---|---|---|
| Basic Workflows | - | - | Limited | Yes | Yes |
| Human Nodes | - | - | - | Yes | Yes |
| Parallel Processing | - | - | - | Yes | Yes |
| External Integrations | - | - | - | Yes | Yes |
| Custom Nodes | - | - | - | - | Yes |
Next Steps¶
- Rules - Simple automated actions
- Document Intelligence - AI capabilities
- Workspaces - Organizing your work