> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genieforge.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tutorial: Ops exception board

> Import weekly metrics, score exceptions, and clear a human review queue with alerts and digests.

# Tutorial: Ops exception board

Outcome: external numbers land in the app on a schedule; the system flags exceptions; humans review and resolve them. Same shape as ops dashboards and watch queues. Use your own CSV or API; keep the tutorial domain generic.

## What you will assemble

| Piece       | Role in the app                                           |
| ----------- | --------------------------------------------------------- |
| Roles       | `operator`, `manager`                                     |
| Data        | Import batches, metrics by period, alerts, resolutions    |
| Forms       | Upload CSV; edit alert thresholds; resolve alert          |
| Pages       | Period dashboard; alert queue; resolve / history; config  |
| Tools       | Import file, compute metrics, generate alerts, resolve    |
| Automations | Weekly import reminder or pull; morning open-alert digest |
| Event hooks | Notify manager when a high-severity alert is created      |
| Environment | API keys for an external source (if you sync, not upload) |

## Step 1 | Prompt in Build mode

> Build an operations exception board. Operators upload a weekly CSV of metrics (entity id, period, and a few numeric columns). The app stores the batch, computes simple rollups, and creates alerts when a row crosses configurable thresholds. Operators work an alert queue: acknowledge, resolve with a note, or escalate. Managers see a digest of open high-severity alerts on weekday mornings. Roles: operator, manager.

Approve when alerts are rows you can resolve, not only chart annotations.

## Step 2 | Import → metrics → alerts

**Upload form → import tool → compute metrics → generate alerts → alert queue page**

Use a small sample CSV. Failed rows should surface clearly (count + reason), not fail silently.

## Step 3 | Review queue

Wire **resolve alert** with a required note. Resolved items leave the open queue and appear in history. **Preview as** operator for the happy path.

## Step 4 | Thresholds and manager digest

1. Config form for thresholds (manager or operator, your choice; document it in Access).
2. Scheduled automation: email or in-app digest of open high-severity alerts to `manager`.
3. Confirm under **Executions** after a manual or scheduled run.

## Step 5 | Optional live sync

If you later connect an external API, store secrets as [environment variables](/building/secrets-and-safe-execution), never in tool source. Re-run Access and [Launch checklist](/getting-started/launch-checklist) before inviting the wider team.

## Related

* [Event hooks](/logic/event-hooks)
* [Scheduled automations](/logic/scheduled-automations)
* [Secrets and safe execution](/building/secrets-and-safe-execution)
* [Reviewing app access](/users-and-access/reviewing-app-access)
