Monroe

Documentation

Run receipt format

Every completed Monroe run posts a 2-line receipt in-channel. The format is consistent across Slack and Teams.

Visual format

Monroe · 2m ago
✓ Summarized last 24h of #customer-feedback — 3 themes, 4 follow-ups owned
   120 credits · Slack, Notion · view details ↗

The first line is the action + outcome. The second line shows resource usage + tools touched + a deep-link to the full audit entry.

Programmatic format

Receipts are also emitted as structured events on the audit log API:

{
  "type": "run_receipt",
  "run_id": "run_xyz",
  "workspace_id": "ws_001",
  "channel": "C0123456789",
  "started_at": "2026-05-26T15:42:00Z",
  "completed_at": "2026-05-26T15:42:23Z",
  "request": "summarize last 24h of #customer-feedback",
  "summary": "3 themes, 4 follow-ups owned",
  "credits_used": 120,
  "tools_used": ["slack:history", "notion:search"],
  "approvals_required": 0,
  "approvals_granted": 0,
  "output_url": "https://app.getmonroe.com/runs/run_xyz",
  "model_used": "anthropic/claude-haiku-4.5"
}

Subscribe to receipts via the webhook API by setting metadata.subscribe_receipts: true on the trigger payload, or via the persistent webhook endpoint (Enterprise).

Customizing the in-channel format

Live today: pick the default channel where receipts post in Settings → Default channel for run receipts.

Roadmap for the next release: per-receipt toggles for whether to include tools, credit count, and the deep-link to the run detail page — useful for compliance-sensitive workspaces and broader-audience channels where credit counts are noisy. Enterprise customers can have these toggles set server-side today.

Approval receipts

When a run requires approval, Monroe posts an approval-requested message (not a receipt yet) with two buttons. After approval, the run completes and posts a normal receipt. If denied, Monroe posts a denial receipt:

Monroe · 30s ago
✕ Denied: Send email to customer@acme.com
   Cancelled by @aidan · 0 credits charged

Failure receipts

If a run errors out, Monroe posts:

Monroe · 1m ago
⚠ Failed: Could not reach HubSpot API (502 after 3 retries)
   140 credits charged · correlation_id mr_xyz · support@getmonroe.com

Credits for partial work are still charged — the model calls happened, they cost real money.

Next: changelog.