Dashboard Overview

Dashboards provide a batch-processing interface for AI Employees. Instead of real-time chat, dashboards process tabular data row by row through workflows. Each row can trigger a workflow execution, and results are written back to the dashboard as new columns.

Core Concepts

Dashboard Structure

A dashboard is a structured table associated with an AI Employee:

Dashboard
├── Schema (column definitions)
├── Rows[]
│ ├── Input Columns (user-provided data)
│ ├── Output Columns (workflow-generated results)
│ └── Row State (processing status)
└── Sub-Dashboards (filtered views)

Rows

Each row represents a single unit of work. A row has:

  • Input columns -- Data provided by the user (uploaded or manually entered)
  • Output columns -- Results generated by the workflow
  • State -- The processing status of the row
  • Metadata -- Timestamps, user info, workflow run references

Columns

Columns are defined by the workflow's input/output schema. Each column has:

  • A name and display name
  • A data type (string, number, boolean, date, URL, file, etc.)
  • A category (input vs. output)
  • Optional display configuration

Row States

StateDescription
NOT_STARTEDRow has not been processed
IN_PROGRESSWorkflow is currently executing
COMPLETEDWorkflow finished successfully
FAILEDWorkflow encountered an error
PAUSEDWorkflow paused for human-in-the-loop input

Complete list of DashboardRowState values.

Human-in-the-Loop (HITL) Support

When a workflow action requires human input, the dashboard row enters a PAUSED state. The user can:

  1. Retrieve the continuation message with GetContinuationMessageForRow
  2. View the HITL prompt (form, buttons, or text input)
  3. Submit a response with ContinueWorkflowForRow
  4. The workflow resumes processing from where it paused

Sub-Dashboards

Sub-dashboards are filtered views of the main dashboard. They allow users to organize rows by criteria such as status, date range, or custom filters without duplicating data.

Use Cases

  • Data enrichment -- Upload a list of companies, enrich each with research data
  • Document review -- Upload documents, extract key information from each
  • Lead qualification -- Upload leads, score and qualify each one
  • Compliance checking -- Upload records, check each against compliance rules
  • Bulk processing -- Any repetitive task that processes items individually

Interaction Patterns

Upload and Process

  1. Upload a file (CSV, XLSX) with upload-and-run-rows
  2. Each row is automatically created and triggered
  3. Poll get-row-result or get-all-row-results for completion

Manual Row Management

  1. Add rows individually with add-row or AddDashboardRow
  2. Trigger processing with trigger-row or TriggerWorkflowForRow
  3. Update row values with update-row or UpdateDashboardRow
  4. Delete rows with delete-rows or DeleteDashboardRows

Callback-Based Processing

The HTTP API supports callback URLs. When provided, Ema sends the processing result to your callback URL upon completion instead of requiring polling.

curl -X POST .../upload-and-run-rows \
 -H "Authorization: Bearer <token>" \
 -F "[email protected]" \
 -F "callback_url=https://your-server.com/webhook/dashboard-result"

Last updated: Jul 3, 2026