Workflows are built using modular blocks, each performing a specific function — from document ingestion to routing results or involving human review.
Below is a detailed overview of each block type and its use cases.
| Block | Purpose | Example Use Case |
|---|
| File Upload | Ingest documents directly from Doscumo uploads. | A user uploads PDFs or images to start document processing. |
| Email Document Upload | Automatically ingest attachments from incoming emails. | Forward vendor invoices to a specific email address for auto-processing. |
| API Ingestion | Accept documents or data via API calls from external systems. | Connect a third-party app that sends documents programmatically for extraction. |
| Block | Purpose | Example Use Case |
|---|
| Data Extraction | Extract structured data from a document using a trained model. | Parse invoice totals, vendor names, and dates from scanned PDFs. |
| Block | Purpose | Example Use Case |
|---|
| Merge JSON | Merge multiple JSON outputs into one structured payload. | Combine outputs from multiple model runs into a single data object. |
| Python Code (Pre-processing) | Run a small code snippet or AI-generated logic on input data before extraction. | Clean up raw text fields, normalize formats, or prepare data for extraction. |
| Block | Purpose | Example Use Case |
|---|
| Document Type Classifier | Automatically detect the type of document (e.g., invoice, receipt, ID). | Route each document to the correct extraction model based on type. |
| Block | Purpose | Example Use Case |
|---|
| Python Code (Post-processing) | Apply transformations or calculations to extracted data. | Compute tax values, reformat dates, or combine extracted fields. |
| Categorize with AI | Automatically group or label data into predefined categories. | Categorize transactions by expense type or client account. |
| Block | Purpose | Example Use Case |
|---|
| Human in the Loop | Pause the flow for manual review or decision-making. | Ask a human to verify a low-confidence extraction result before continuing. |
| Block | Purpose | Example Use Case |
|---|
| Router | Add conditional logic (IF/ELSE) based on extracted data values. | If total amount > $10,000 → send for review, else → auto-approve. |