Examples
Ready-to-send request payloads, the same library that powers the Create tool in the app. Each one shows the raw JSON HTTP body and the equivalent @roundtrip/sdk call. Copy either and send it.
Notifications
Simple notification
A plain title + body push. No card, no buttons, nothing to respond.
{
"channels": [
"personal"
],
"notification": {
"title": "Backup complete",
"body": "Last night's backup finished successfully.",
"priority": "low"
}
}Mention
Someone mentioned the user — a plain informational push.
{
"channels": [
"personal"
],
"notification": {
"title": "Jordan mentioned you",
"body": "“can you take a look at the latest draft?”",
"priority": "normal"
}
}Critical alert
A high-urgency push with sound — title + body, no card, no actions.
{
"channels": [
"production-alerts"
],
"notification": {
"title": "Payments are down",
"body": "Checkout has been failing for 3 minutes.",
"priority": "critical",
"sound": true
}
}Approvals
Quote approval
Agent drafted a quote and needs a human to approve it.
{
"channels": [
"agent-tasks"
],
"notification": {
"title": "Approve quote email",
"body": "Agent drafted a quote email for Maria.",
"priority": "high"
},
"content": {
"title": "Quote approval needed",
"description": "Review and approve the quote before it is sent.",
"icon": "doc.text",
"sections": [
{
"type": "metric",
"label": "Quote amount",
"value": "$4,820",
"tone": "info"
},
{
"type": "text",
"value": "The agent recommends sending the quote today."
}
],
"actions": [
{
"id": "approve",
"label": "Approve & send",
"style": "primary"
},
{
"id": "reject",
"label": "Reject",
"style": "destructive"
},
{
"id": "details",
"label": "Review draft",
"style": "secondary",
"opensDetail": true
}
]
},
"detail": {
"title": "Review quote email",
"layout": [
{
"type": "markdown",
"value": "Hi Maria,\n\nBased on the selected **backsplash package**, the total quote is **$4,820**, including installation."
},
{
"type": "divider"
},
{
"type": "form",
"id": "feedback",
"fields": [
{
"type": "textarea",
"name": "notes",
"label": "Notes to the agent (optional)",
"placeholder": "Tell the agent what to change…"
}
],
"submit": {
"label": "Send feedback",
"action": "submit_feedback",
"style": "primary"
}
}
]
},
"response": {
"mode": "optional",
"allowText": true
}
}Expense reimbursement
Approve or decline an employee expense report over the limit.
{
"channels": [
"approvals"
],
"notification": {
"title": "Expense report needs approval",
"body": "Devon submitted $1,284 in travel expenses.",
"priority": "normal"
},
"content": {
"title": "Expense report — Devon Park",
"description": "Q2 client travel · 3 receipts attached.",
"sections": [
{
"type": "list",
"items": [
{
"label": "Total",
"value": "$1,284.00"
},
{
"label": "Category",
"value": "Travel"
},
{
"label": "Over policy by",
"value": "$284"
}
]
},
{
"type": "metric",
"label": "YTD travel budget used",
"value": "68%",
"delta": "+4%",
"tone": "warning"
}
],
"actions": [
{
"id": "approve",
"label": "Approve",
"style": "primary"
},
{
"id": "decline",
"label": "Decline",
"style": "destructive"
},
{
"id": "open",
"label": "View receipts",
"opensDetail": true
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "Line items"
},
{
"type": "list",
"items": [
{
"label": "Flight (SFO→AUS)",
"value": "$612.40"
},
{
"label": "Hotel (2 nights)",
"value": "$498.00"
},
{
"label": "Rideshare",
"value": "$173.60"
}
]
},
{
"type": "divider"
},
{
"type": "image",
"url": "https://picsum.photos/seed/receipt/600/300",
"alt": "Receipt scan",
"caption": "Hotel receipt · uploaded by Devon"
}
]
},
"response": {
"mode": "required"
}
}Access request
Grant or deny a teammate's request for production access.
{
"channels": [
"security"
],
"notification": {
"title": "Production access requested",
"body": "Sam is requesting read access to the prod database.",
"priority": "high"
},
"content": {
"title": "Access request",
"description": "Sam Rivera → prod-db (read only)",
"sections": [
{
"type": "list",
"items": [
{
"label": "Resource",
"value": "prod-db"
},
{
"label": "Scope",
"value": "read-only"
},
{
"label": "Duration",
"value": "24 hours"
},
{
"label": "Reason",
"value": "Debug billing export"
}
]
}
],
"actions": [
{
"id": "grant",
"label": "Grant 24h",
"style": "primary"
},
{
"id": "deny",
"label": "Deny",
"style": "destructive"
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "Audit context"
},
{
"type": "timeline",
"items": [
{
"title": "Request opened",
"description": "by Sam Rivera",
"timestamp": "10:02",
"tone": "info"
},
{
"title": "Manager approved",
"description": "Priya Shah",
"timestamp": "10:14",
"tone": "success"
},
{
"title": "Awaiting security review",
"timestamp": "now",
"tone": "warning"
}
]
},
{
"type": "divider"
},
{
"type": "code",
"language": "json",
"value": "{\n \"user\": \"sam@acme.io\",\n \"resource\": \"prod-db\",\n \"scope\": [\"read\"]\n}"
}
]
},
"response": {
"mode": "required"
}
}Content publish
Review a blog draft and approve, request edits, or open it.
{
"channels": [
"content"
],
"notification": {
"title": "Blog post ready to publish",
"body": "“Choosing the right backsplash” is ready for review.",
"priority": "low"
},
"content": {
"title": "Ready to publish",
"description": "Choosing the right backsplash · 1,240 words",
"sections": [
{
"type": "text",
"value": "SEO checks passed. Cover image attached below."
},
{
"type": "image",
"url": "https://picsum.photos/seed/blogcover/600/300",
"alt": "Cover image",
"caption": "Proposed cover image"
}
],
"actions": [
{
"id": "publish",
"label": "Publish now",
"style": "primary"
},
{
"id": "edits",
"label": "Request edits",
"style": "secondary",
"opensDetail": true
},
{
"id": "preview",
"label": "Open preview",
"url": "https://example.com/preview/backsplash"
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "Requested changes"
},
{
"type": "form",
"id": "edits",
"fields": [
{
"type": "textarea",
"name": "changes",
"label": "What should change?",
"placeholder": "Tighten the intro, add a CTA…",
"required": true
},
{
"type": "switch",
"name": "blocking",
"label": "Block publish until resolved",
"defaultValue": true
}
],
"submit": {
"label": "Send to writer",
"action": "request_edits",
"style": "secondary"
}
}
]
},
"response": {
"mode": "optional",
"allowText": true
}
}Alerts & incidents
Deploy failed
A production deploy failed; on-call needs to retry or roll back.
{
"channels": [
"production-alerts"
],
"notification": {
"title": "Deploy failed: api@3.14.2",
"body": "Health checks failed in us-east-1.",
"priority": "critical"
},
"content": {
"title": "Deploy failed",
"description": "api@3.14.2 — health checks failed in us-east-1.",
"status": {
"label": "Failed",
"tone": "danger",
"loud": true
},
"sections": [
{
"type": "metric",
"label": "Error rate",
"value": "37%",
"delta": "+34%",
"tone": "danger"
},
{
"type": "progress",
"label": "Rollout halted",
"value": 0.4
}
],
"actions": [
{
"id": "rollback",
"label": "Roll back",
"style": "primary"
},
{
"id": "retry",
"label": "Retry deploy",
"style": "secondary"
},
{
"id": "logs",
"label": "Open logs",
"url": "https://example.com/ci/runs/8841"
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "Failure timeline"
},
{
"type": "timeline",
"items": [
{
"title": "Build succeeded",
"timestamp": "14:02",
"tone": "success"
},
{
"title": "Canary deployed (5%)",
"timestamp": "14:05",
"tone": "info"
},
{
"title": "Health checks failing",
"description": "p99 latency 9.4s",
"timestamp": "14:07",
"tone": "danger"
},
{
"title": "Rollout halted",
"timestamp": "14:08",
"tone": "warning"
}
]
},
{
"type": "divider"
},
{
"type": "code",
"language": "log",
"value": "FATAL db.connect ECONNREFUSED 10.0.4.12:5432\n at Pool.connect (pg/pool.js:412)\n exit code 1"
}
]
},
"response": {
"mode": "required",
"allowText": true
}
}Database CPU high
Sustained high CPU on the primary database — page on-call.
{
"channels": [
"production-alerts"
],
"notification": {
"title": "DB CPU at 94%",
"body": "primary-db has been over 90% CPU for 12 minutes.",
"priority": "critical",
"sound": true
},
"content": {
"title": "Primary DB CPU critical",
"description": "Sustained load for 12 minutes.",
"status": {
"label": "Firing",
"tone": "danger",
"loud": true
},
"sections": [
{
"type": "metric",
"label": "CPU",
"value": "94%",
"delta": "+22%",
"tone": "danger"
},
{
"type": "metric",
"label": "Active connections",
"value": "812",
"delta": "+140",
"tone": "warning"
},
{
"type": "progress",
"label": "Connection pool",
"value": 0.92
}
],
"actions": [
{
"id": "ack",
"label": "Acknowledge",
"style": "primary"
},
{
"id": "escalate",
"label": "Escalate",
"style": "destructive"
},
{
"id": "graph",
"label": "Open dashboard",
"url": "https://example.com/grafana/db"
}
]
},
"response": {
"mode": "required"
}
}Suspicious login
Impossible-travel login detected — lock or allow the session.
{
"channels": [
"security"
],
"notification": {
"title": "Suspicious login detected",
"body": "New login from Lagos, NG for owner@acme.io.",
"priority": "critical"
},
"content": {
"title": "Suspicious login",
"description": "Impossible travel: Berlin → Lagos in 18 min.",
"status": {
"label": "Needs review",
"tone": "danger",
"loud": true
},
"sections": [
{
"type": "list",
"items": [
{
"label": "Account",
"value": "owner@acme.io"
},
{
"label": "Location",
"value": "Lagos, NG"
},
{
"label": "Device",
"value": "Unknown · Chrome"
},
{
"label": "IP",
"value": "102.89.x.x"
}
]
},
{
"type": "status",
"label": "MFA not used",
"tone": "warning",
"loud": true
}
],
"actions": [
{
"id": "lock",
"label": "Lock account",
"style": "destructive"
},
{
"id": "allow",
"label": "It was me",
"style": "secondary"
}
]
},
"response": {
"mode": "required",
"allowText": true
},
"expiresAt": "2026-12-31T23:59:00Z"
}Sales & CRM
New inbound lead
A hot lead came in — claim it or route it to a teammate.
{
"channels": [
"sales-leads"
],
"notification": {
"title": "New lead: Northwind Co.",
"body": "Requested a quote for a 40-unit install.",
"priority": "high"
},
"content": {
"title": "Northwind Co.",
"description": "Enterprise · requested a 40-unit quote",
"sections": [
{
"type": "metric",
"label": "Est. deal size",
"value": "$58k",
"tone": "success"
},
{
"type": "list",
"items": [
{
"label": "Contact",
"value": "Jordan Lee"
},
{
"label": "Source",
"value": "Website form"
},
{
"label": "Score",
"value": "92 / hot"
}
]
}
],
"actions": [
{
"id": "claim",
"label": "Claim lead",
"style": "primary"
},
{
"id": "route",
"label": "Route…",
"style": "secondary",
"opensDetail": true
},
{
"id": "crm",
"label": "Open in CRM",
"url": "https://example.com/crm/leads/nw-1"
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "Assign owner"
},
{
"type": "form",
"id": "route",
"fields": [
{
"type": "select",
"name": "owner",
"label": "Sales rep",
"required": true,
"options": [
{
"label": "Alex Kim",
"value": "alex"
},
{
"label": "Priya Shah",
"value": "priya"
},
{
"label": "Round robin",
"value": "auto"
}
]
},
{
"type": "text",
"name": "note",
"label": "Handoff note",
"placeholder": "Context for the rep…"
}
],
"submit": {
"label": "Assign",
"action": "route_lead",
"style": "primary"
}
}
]
},
"response": {
"mode": "optional"
}
}Deal moved to closing
A deal advanced to the closing stage — review next steps.
{
"channels": [
"sales-leads"
],
"notification": {
"title": "Deal advanced: Acme Tile",
"body": "Now in Closing — $124k.",
"priority": "normal"
},
"content": {
"title": "Acme Tile — Closing",
"description": "Stage changed by Priya · 2m ago",
"sections": [
{
"type": "metric",
"label": "Deal value",
"value": "$124k",
"delta": "+$12k",
"tone": "success"
},
{
"type": "progress",
"label": "Pipeline progress",
"value": 0.85
},
{
"type": "text",
"value": "Contract sent. Awaiting signature."
}
],
"actions": [
{
"id": "celebrate",
"label": "Nice!",
"style": "primary"
},
{
"id": "view",
"label": "View deal",
"opensDetail": true
}
]
},
"detail": {
"layout": [
{
"type": "section",
"title": "Activity",
"blocks": [
{
"type": "timeline",
"items": [
{
"title": "Proposal sent",
"timestamp": "Mon",
"tone": "info"
},
{
"title": "Verbal yes",
"timestamp": "Wed",
"tone": "success"
},
{
"title": "Contract out for signature",
"timestamp": "Today",
"tone": "neutral"
}
]
},
{
"type": "divider"
},
{
"type": "text",
"value": "Decision maker: Casey Tran (VP Ops)."
}
]
}
]
},
"response": {
"mode": "none"
}
}Churn risk flagged
An account's health dropped — decide on a save play.
{
"channels": [
"sales-leads"
],
"notification": {
"title": "Churn risk: Globex",
"body": "Health score dropped to 38.",
"priority": "high"
},
"content": {
"title": "Globex — at risk",
"description": "Usage down 40% over 30 days.",
"sections": [
{
"type": "metric",
"label": "Health score",
"value": "38",
"delta": "-22",
"tone": "danger"
},
{
"type": "list",
"items": [
{
"label": "MRR",
"value": "$2,400"
},
{
"label": "Last login",
"value": "16 days ago"
},
{
"label": "Open tickets",
"value": "3"
}
]
}
],
"actions": [
{
"id": "save_play",
"label": "Start save play",
"style": "primary"
},
{
"id": "snooze",
"label": "Snooze 7d",
"style": "secondary"
},
{
"id": "writeoff",
"label": "Mark lost",
"style": "destructive"
}
]
},
"response": {
"mode": "optional"
}
}AI agents
Agent tool call
An agent wants to run a side-effecting tool — approve it first.
{
"channels": [
"agent-tasks"
],
"notification": {
"title": "Agent wants to send 142 emails",
"body": "Confirm before the campaign goes out.",
"priority": "high"
},
"content": {
"title": "Approve tool call",
"description": "send_bulk_email → 142 recipients",
"icon": "bolt",
"sections": [
{
"type": "text",
"value": "The agent paused and needs approval to proceed."
},
{
"type": "metric",
"label": "Recipients",
"value": "142",
"tone": "info"
}
],
"actions": [
{
"id": "approve",
"label": "Approve",
"style": "primary"
},
{
"id": "deny",
"label": "Deny",
"style": "destructive"
},
{
"id": "inspect",
"label": "Inspect call",
"style": "secondary",
"opensDetail": true
}
]
},
"detail": {
"title": "Tool call: send_bulk_email",
"layout": [
{
"type": "heading",
"value": "Arguments"
},
{
"type": "code",
"language": "json",
"value": "{\n \"template\": \"spring_sale\",\n \"segment\": \"active_30d\",\n \"count\": 142\n}"
},
{
"type": "divider"
},
{
"type": "heading",
"value": "Reasoning"
},
{
"type": "markdown",
"value": "I selected the **active_30d** segment because they opened the last campaign. Estimated send cost: `$0.71`."
}
]
},
"response": {
"mode": "required",
"allowText": true
}
}Tool call (JSON + table)
Inspect an agent tool call: raw arguments as collapsible JSON plus an affected-rows table.
{
"channels": [
"agent-tasks"
],
"notification": {
"title": "Approve database migration",
"body": "Agent wants to run an ALTER on 3 tables.",
"priority": "high"
},
"content": {
"title": "Approve tool call",
"description": "run_migration → 3 tables affected",
"icon": "bolt",
"sections": [
{
"type": "keyvalue",
"items": [
{
"label": "Tool",
"value": "run_migration",
"mono": true
},
{
"label": "Environment",
"value": "production",
"tone": "danger"
},
{
"label": "Reversible",
"value": "Yes",
"tone": "success"
},
{
"label": "Est. duration",
"value": "~4s"
}
]
}
],
"actions": [
{
"id": "approve",
"label": "Approve",
"style": "primary"
},
{
"id": "deny",
"label": "Deny",
"style": "destructive"
},
{
"id": "inspect",
"label": "Inspect",
"style": "secondary",
"opensDetail": true
}
]
},
"detail": {
"title": "Tool call: run_migration",
"layout": [
{
"type": "heading",
"value": "Arguments"
},
{
"type": "json",
"label": "tool_call.arguments",
"collapsedDepth": 2,
"value": {
"migration": "2026_06_add_indexes",
"tables": [
"orders",
"customers",
"invoices"
],
"operations": [
{
"table": "orders",
"op": "CREATE INDEX",
"column": "created_at"
},
{
"table": "customers",
"op": "ADD COLUMN",
"column": "region"
}
],
"dryRun": false,
"lockTimeoutMs": 5000
}
},
{
"type": "divider"
},
{
"type": "heading",
"value": "Affected tables"
},
{
"type": "table",
"columns": [
{
"label": "Table"
},
{
"label": "Rows",
"align": "right"
},
{
"label": "Lock",
"align": "right"
},
{
"label": "Risk"
}
],
"rows": [
[
"orders",
"1.2M",
"none",
{
"value": "Low",
"tone": "success"
}
],
[
"customers",
"84k",
"brief",
{
"value": "Medium",
"tone": "warning"
}
],
[
"invoices",
"412k",
"none",
{
"value": "Low",
"tone": "success"
}
]
],
"caption": "Estimated from the current query planner stats."
}
]
},
"response": {
"mode": "required",
"allowText": true
}
}Agent run summary
An autonomous run finished — informational, no response needed.
{
"channels": [
"agent-tasks"
],
"notification": {
"title": "Nightly agent run complete",
"body": "18 tasks done, 1 needs attention.",
"priority": "low",
"badge": true
},
"content": {
"title": "Nightly run complete",
"description": "Inbox triage agent · 04:00 UTC",
"status": {
"label": "Done",
"tone": "success",
"loud": true
},
"sections": [
{
"type": "metric",
"label": "Tasks completed",
"value": "18",
"delta": "+3",
"tone": "success"
},
{
"type": "progress",
"label": "Success rate",
"value": 0.94
}
],
"actions": [
{
"id": "view",
"label": "View report",
"opensDetail": true
}
]
},
"detail": {
"layout": [
{
"type": "section",
"title": "What it did",
"blocks": [
{
"type": "list",
"items": [
{
"label": "Emails triaged",
"value": "63"
},
{
"label": "Auto-replied",
"value": "11"
},
{
"label": "Escalated",
"value": "1"
}
]
}
]
},
{
"type": "divider"
},
{
"type": "section",
"title": "Needs your attention",
"blocks": [
{
"type": "text",
"value": "A refund request exceeded the auto-approve limit."
}
]
},
{
"type": "actions",
"actions": [
{
"id": "approve_refund",
"label": "Approve refund",
"style": "primary"
},
{
"id": "rerun",
"label": "Re-run agent",
"style": "secondary"
},
{
"id": "open_log",
"label": "Open full log",
"url": "https://example.com/agents/runs/nightly"
}
]
}
]
},
"response": {
"mode": "optional"
}
}Agent needs input
An agent is blocked and needs the user to choose a path.
{
"channels": [
"agent-tasks"
],
"notification": {
"title": "Agent needs a decision",
"body": "Two flights match — which should I book?",
"priority": "normal"
},
"content": {
"title": "Which flight should I book?",
"description": "Both fit your constraints.",
"sections": [
{
"type": "list",
"items": [
{
"label": "Option A",
"value": "United · $312 · 1 stop"
},
{
"label": "Option B",
"value": "Delta · $356 · nonstop"
}
]
}
],
"actions": [
{
"id": "choose",
"label": "Choose flight",
"style": "primary",
"opensDetail": true
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "Pick one"
},
{
"type": "form",
"id": "choose_flight",
"fields": [
{
"type": "select",
"name": "flight",
"label": "Flight",
"required": true,
"defaultValue": "b",
"options": [
{
"label": "United — $312 (1 stop)",
"value": "a"
},
{
"label": "Delta — $356 (nonstop)",
"value": "b"
}
]
},
{
"type": "switch",
"name": "refundable",
"label": "Prefer refundable fare",
"defaultValue": false
}
],
"submit": {
"label": "Book it",
"action": "book_flight",
"style": "primary"
}
}
]
},
"response": {
"mode": "required",
"allowText": true
}
}Reports
Daily metrics digest
A morning rollup of yesterday's key numbers. Informational.
{
"channels": [
"daily-reports"
],
"notification": {
"title": "Your daily digest",
"body": "Revenue $12.4k · signups 38 · churn 0.4%.",
"priority": "low"
},
"content": {
"title": "Daily digest — Jun 18",
"description": "Yesterday at a glance.",
"sections": [
{
"type": "metric",
"label": "Revenue",
"value": "$12,430",
"delta": "+8.2%",
"tone": "success"
},
{
"type": "metric",
"label": "New signups",
"value": "38",
"delta": "-5",
"tone": "warning"
},
{
"type": "metric",
"label": "Churn",
"value": "0.4%",
"delta": "0%",
"tone": "neutral"
},
{
"type": "progress",
"label": "Monthly goal",
"value": 0.62
}
],
"actions": [
{
"id": "full",
"label": "Full report",
"opensDetail": true
},
{
"id": "dash",
"label": "Open dashboard",
"url": "https://example.com/metrics"
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "Top movers"
},
{
"type": "list",
"items": [
{
"label": "Best channel",
"value": "Organic search"
},
{
"label": "Top plan",
"value": "Pro (yearly)"
},
{
"label": "Refunds",
"value": "$120"
}
]
},
{
"type": "divider"
},
{
"type": "image",
"url": "https://picsum.photos/seed/digestchart/600/300",
"alt": "Revenue chart",
"caption": "7-day revenue trend"
}
]
},
"response": {
"mode": "none"
}
}Weekly report ready
A weekly business review with a SQL snippet and trends.
{
"channels": [
"daily-reports"
],
"notification": {
"title": "Weekly report ready",
"body": "Week 24 · MRR up 3.1%.",
"priority": "normal"
},
"content": {
"title": "Weekly report — Week 24",
"description": "Generated automatically.",
"sections": [
{
"type": "metric",
"label": "MRR",
"value": "$84.2k",
"delta": "+3.1%",
"tone": "success"
},
{
"type": "markdown",
"value": "Highlights: **enterprise** up, **self-serve** flat."
}
],
"actions": [
{
"id": "open",
"label": "Open report",
"opensDetail": true
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "How it was computed"
},
{
"type": "text",
"value": "MRR is normalized to monthly across all plans."
},
{
"type": "code",
"language": "sql",
"value": "SELECT date_trunc('week', created_at) AS wk,\n sum(mrr) AS mrr\nFROM subscriptions\nGROUP BY 1\nORDER BY 1 DESC;"
},
{
"type": "divider"
},
{
"type": "section",
"title": "By segment",
"blocks": [
{
"type": "list",
"items": [
{
"label": "Enterprise",
"value": "$51.0k (+6%)"
},
{
"label": "Self-serve",
"value": "$33.2k (+0%)"
}
]
},
{
"type": "progress",
"label": "Net revenue retention",
"value": 1.12
}
]
}
]
},
"response": {
"mode": "none"
}
}Build report (tree + table)
A CI build summary with a failing-suite table and the artifact file tree.
{
"channels": [
"daily-reports"
],
"notification": {
"title": "Build #4821 finished",
"body": "2 suites failed · 3 artifacts produced.",
"priority": "normal"
},
"content": {
"title": "Build #4821",
"description": "main · finished in 6m 12s",
"sections": [
{
"type": "keyvalue",
"items": [
{
"label": "Branch",
"value": "main",
"mono": true
},
{
"label": "Commit",
"value": "8fe0f57",
"mono": true
},
{
"label": "Duration",
"value": "6m 12s"
},
{
"label": "Triggered by",
"value": "push"
}
]
},
{
"type": "table",
"columns": [
{
"label": "Suite"
},
{
"label": "Tests",
"align": "right"
},
{
"label": "Result"
}
],
"rows": [
[
"unit",
"1,204",
{
"value": "Passed",
"tone": "success"
}
],
[
"integration",
"318",
{
"value": "2 failed",
"tone": "danger"
}
],
[
"e2e",
"44",
{
"value": "Passed",
"tone": "success"
}
]
]
}
],
"actions": [
{
"id": "rerun",
"label": "Re-run failed",
"style": "primary"
},
{
"id": "details",
"label": "View artifacts",
"opensDetail": true
},
{
"id": "ci",
"label": "Open in CI",
"url": "https://example.com/ci/4821"
}
]
},
"detail": {
"title": "Build #4821",
"layout": [
{
"type": "heading",
"value": "Artifacts"
},
{
"type": "tree",
"nodes": [
{
"label": "dist",
"icon": "folder",
"defaultOpen": true,
"children": [
{
"label": "app.js",
"icon": "code",
"value": "842 kB"
},
{
"label": "app.css",
"icon": "file",
"value": "61 kB"
},
{
"label": "assets",
"icon": "folder",
"children": [
{
"label": "logo.svg",
"icon": "image",
"value": "3 kB"
},
{
"label": "hero.png",
"icon": "image",
"value": "1.1 MB"
}
]
}
]
},
{
"label": "reports",
"icon": "folder",
"children": [
{
"label": "coverage.html",
"icon": "file",
"value": "84%",
"tone": "warning"
},
{
"label": "junit.xml",
"icon": "file",
"value": "2 failures",
"tone": "danger"
}
]
}
]
},
{
"type": "divider"
},
{
"type": "heading",
"value": "Failure detail"
},
{
"type": "json",
"label": "first_failure",
"value": {
"suite": "integration",
"test": "checkout › applies discount code",
"error": "AssertionError: expected 4820 to equal 4340",
"file": "tests/checkout.test.ts:118"
}
}
]
},
"response": {
"mode": "optional",
"allowText": true
}
}Forms
NPS survey
Collect a satisfaction score and an optional comment.
{
"channels": [
"personal"
],
"notification": {
"title": "Quick question",
"body": "How likely are you to recommend us?",
"priority": "low"
},
"content": {
"title": "How are we doing?",
"description": "Takes 15 seconds.",
"sections": [
{
"type": "text",
"value": "Your feedback shapes what we build next."
}
],
"actions": [
{
"id": "answer",
"label": "Answer",
"style": "primary",
"opensDetail": true
},
{
"id": "dismiss",
"label": "No thanks",
"style": "secondary"
}
]
},
"detail": {
"title": "Customer satisfaction",
"layout": [
{
"type": "heading",
"value": "Tell us more"
},
{
"type": "form",
"id": "nps",
"fields": [
{
"type": "select",
"name": "score",
"label": "How likely are you to recommend us?",
"required": true,
"options": [
{
"label": "9–10 · Very likely",
"value": "promoter"
},
{
"label": "7–8 · Neutral",
"value": "passive"
},
{
"label": "0–6 · Unlikely",
"value": "detractor"
}
]
},
{
"type": "textarea",
"name": "comment",
"label": "Anything we could improve?",
"placeholder": "Optional…"
},
{
"type": "switch",
"name": "follow_up",
"label": "OK to follow up by email",
"defaultValue": true
}
],
"submit": {
"label": "Submit",
"action": "submit_nps",
"style": "primary"
}
}
]
},
"response": {
"mode": "optional"
}
}Onboarding details
Collect full contact + account details with mixed field types.
{
"channels": [
"support"
],
"notification": {
"title": "Finish setting up your account",
"body": "We need a few details to get you started.",
"priority": "normal"
},
"content": {
"title": "Complete your profile",
"description": "Just a few fields to finish onboarding.",
"sections": [
{
"type": "progress",
"label": "Setup progress",
"value": 0.5
}
],
"actions": [
{
"id": "fill",
"label": "Fill in details",
"style": "primary",
"opensDetail": true
}
]
},
"detail": {
"title": "Your details",
"layout": [
{
"type": "heading",
"value": "Contact"
},
{
"type": "form",
"id": "onboarding",
"fields": [
{
"type": "text",
"name": "full_name",
"label": "Full name",
"placeholder": "Jordan Lee",
"required": true
},
{
"type": "email",
"name": "work_email",
"label": "Work email",
"placeholder": "you@company.com",
"required": true
},
{
"type": "number",
"name": "team_size",
"label": "Team size",
"placeholder": "10"
},
{
"type": "select",
"name": "industry",
"label": "Industry",
"options": [
{
"label": "Construction",
"value": "construction"
},
{
"label": "Retail",
"value": "retail"
},
{
"label": "Other",
"value": "other"
}
]
},
{
"type": "switch",
"name": "newsletter",
"label": "Send me product updates",
"defaultValue": false
}
],
"submit": {
"label": "Save & continue",
"action": "save_onboarding",
"style": "primary"
}
}
]
},
"response": {
"mode": "required"
}
}Settings menu (navlist)
A tappable card menu that drills into sub-screens — feels native.
{
"channels": [
"personal"
],
"notification": {
"title": "Payment settings",
"body": "Manage transfers and limits.",
"priority": "low"
},
"content": {
"title": "Payments",
"description": "Manage how money moves.",
"icon": "dollar",
"sections": [
{
"type": "navlist",
"items": [
{
"id": "transfer-limit",
"title": "Change transfer limit",
"description": "Adjust how much you can send from your balance.",
"icon": "settings",
"opensDetail": true
},
{
"id": "scheduled",
"title": "Scheduled transfers",
"description": "Set up a transfer to send at a later date.",
"icon": "calendar",
"badge": "3",
"opensDetail": true
}
]
}
]
},
"detail": {
"title": "Payments",
"layout": [
{
"type": "navlist",
"items": [
{
"id": "limit",
"title": "Transfer limit",
"description": "Per-transfer maximum.",
"icon": "settings",
"target": {
"title": "Transfer limit",
"layout": [
{
"type": "metric",
"label": "Current limit",
"value": "$10,000"
},
{
"type": "form",
"id": "set_limit",
"fields": [
{
"type": "number",
"name": "limit",
"label": "New limit (USD)",
"placeholder": "10000",
"required": true
}
],
"submit": {
"label": "Save limit",
"action": "set_limit",
"style": "primary"
}
}
]
}
},
{
"id": "schedule",
"title": "Scheduled transfers",
"description": "Send on a future date.",
"icon": "calendar",
"target": {
"title": "Schedule a transfer",
"layout": [
{
"type": "list",
"items": [
{
"label": "From",
"value": "Checking ••1234"
},
{
"label": "To",
"value": "Savings ••5678"
}
]
},
{
"type": "form",
"id": "schedule_transfer",
"fields": [
{
"type": "number",
"name": "amount",
"label": "Amount (USD)",
"placeholder": "250",
"required": true
},
{
"type": "select",
"name": "cadence",
"label": "Repeat",
"defaultValue": "once",
"options": [
{
"label": "Once",
"value": "once"
},
{
"label": "Weekly",
"value": "weekly"
},
{
"label": "Monthly",
"value": "monthly"
}
]
}
],
"submit": {
"label": "Schedule",
"action": "schedule_transfer",
"style": "primary"
}
}
]
}
},
{
"id": "statements",
"title": "Open statements",
"description": "View and download monthly statements.",
"icon": "folder",
"url": "https://example.com/statements"
}
]
}
]
},
"response": {
"mode": "optional"
}
}Plan details (accordion + multi-select)
Collapsible plan details plus a multi-select add-ons form.
{
"channels": [
"personal"
],
"notification": {
"title": "Review your plan",
"body": "Expand the details and pick add-ons.",
"priority": "low"
},
"content": {
"title": "Pro plan",
"description": "Review what’s included before you renew.",
"sections": [
{
"type": "metric",
"label": "Monthly",
"value": "$240",
"tone": "neutral"
}
],
"actions": [
{
"id": "review",
"label": "Review plan",
"opensDetail": true
}
]
},
"detail": {
"title": "Pro plan",
"layout": [
{
"type": "accordion",
"items": [
{
"title": "What’s included",
"description": "Seats, history, and limits",
"defaultOpen": true,
"blocks": [
{
"type": "list",
"items": [
{
"label": "Seats",
"value": "Unlimited"
},
{
"label": "History",
"value": "90 days"
},
{
"label": "API rate",
"value": "120 rpm"
}
]
}
]
},
{
"title": "Billing details",
"blocks": [
{
"type": "metric",
"label": "Next invoice",
"value": "$240",
"delta": "Jul 1"
},
{
"type": "text",
"value": "Billed monthly, cancel anytime."
}
]
}
]
},
{
"type": "divider"
},
{
"type": "form",
"id": "addons",
"fields": [
{
"type": "multiselect",
"name": "addons",
"label": "Add-ons",
"defaultValue": [
"audit_log"
],
"options": [
{
"label": "Audit log",
"value": "audit_log"
},
{
"label": "SSO / SAML",
"value": "sso"
},
{
"label": "Priority support",
"value": "priority"
},
{
"label": "Extra storage",
"value": "storage"
}
]
},
{
"type": "switch",
"name": "annual",
"label": "Switch to annual (save 20%)",
"defaultValue": false
}
],
"submit": {
"label": "Update plan",
"action": "update_plan",
"style": "primary"
}
}
]
},
"response": {
"mode": "optional"
}
}Rich media
Photo review
Approve a generated image — leading with a full-width photo.
{
"channels": [
"content"
],
"notification": {
"title": "New render ready",
"body": "Review the AI-generated hero image.",
"priority": "low"
},
"content": {
"title": "Hero image render",
"description": "Generated for the spring campaign.",
"sections": [
{
"type": "image",
"url": "https://picsum.photos/seed/hero/600/300",
"alt": "Generated hero image",
"caption": "Variant 1 of 4"
},
{
"type": "text",
"value": "Prompt: “sunlit modern kitchen, marble backsplash”."
}
],
"actions": [
{
"id": "use",
"label": "Use this",
"style": "primary"
},
{
"id": "regen",
"label": "Regenerate",
"style": "secondary"
},
{
"id": "discard",
"label": "Discard",
"style": "destructive"
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "All variants"
},
{
"type": "image",
"url": "https://picsum.photos/seed/hero2/600/300",
"alt": "Variant 2",
"caption": "Variant 2"
},
{
"type": "image",
"url": "https://picsum.photos/seed/hero3/600/300",
"alt": "Variant 3",
"caption": "Variant 3"
},
{
"type": "divider"
},
{
"type": "code",
"language": "yaml",
"value": "model: image-gen-3\nsteps: 28\nseed: 1842\naspect: 16:9"
}
]
},
"response": {
"mode": "optional"
}
}Photo gallery review
Approve a set of generated renders — a swipeable gallery in one card.
{
"channels": [
"content"
],
"notification": {
"title": "4 new renders ready",
"body": "Pick the hero image for the spring campaign.",
"priority": "low"
},
"content": {
"title": "Hero render — pick one",
"description": "Generated for the spring campaign.",
"sections": [
{
"type": "image",
"caption": "Tap any image to open the fullscreen viewer.",
"images": [
{
"url": "https://picsum.photos/seed/hero-a/900/900",
"alt": "Render A",
"caption": "A · warm tones"
},
{
"url": "https://picsum.photos/seed/hero-b/900/900",
"alt": "Render B",
"caption": "B · cool tones"
},
{
"url": "https://picsum.photos/seed/hero-c/900/900",
"alt": "Render C",
"caption": "C · high contrast"
},
{
"url": "https://picsum.photos/seed/hero-d/900/900",
"alt": "Render D",
"caption": "D · muted"
}
]
}
],
"actions": [
{
"id": "choose",
"label": "Choose…",
"style": "primary",
"opensDetail": true
},
{
"id": "regen",
"label": "Regenerate all",
"style": "secondary"
}
]
},
"detail": {
"title": "Choose a render",
"layout": [
{
"type": "form",
"id": "pick_render",
"fields": [
{
"type": "select",
"name": "render",
"label": "Which render?",
"required": true,
"options": [
{
"label": "A · warm tones",
"value": "a"
},
{
"label": "B · cool tones",
"value": "b"
},
{
"label": "C · high contrast",
"value": "c"
},
{
"label": "D · muted",
"value": "d"
}
]
}
],
"submit": {
"label": "Use this render",
"action": "pick_render",
"style": "primary"
}
}
]
},
"response": {
"mode": "required"
}
}Order shipped
A rich order-status card with a map image and tracking timeline.
{
"channels": [
"orders"
],
"notification": {
"title": "Your order shipped",
"body": "Order #10482 is on the way.",
"priority": "normal"
},
"content": {
"title": "Order #10482 shipped",
"description": "Arriving Thursday by 9pm.",
"sections": [
{
"type": "image",
"url": "https://picsum.photos/seed/shipmap/600/300",
"alt": "Delivery map",
"caption": "Out for delivery near Austin, TX"
},
{
"type": "progress",
"label": "Delivery progress",
"value": 0.7
}
],
"actions": [
{
"id": "track",
"label": "Track package",
"url": "https://example.com/track/10482"
},
{
"id": "details",
"label": "Order details",
"style": "secondary",
"opensDetail": true
}
]
},
"detail": {
"layout": [
{
"type": "heading",
"value": "Tracking"
},
{
"type": "timeline",
"items": [
{
"title": "Order placed",
"timestamp": "Mon 9:14",
"tone": "neutral"
},
{
"title": "Packed",
"timestamp": "Mon 16:02",
"tone": "info"
},
{
"title": "In transit",
"timestamp": "Tue 06:30",
"tone": "info"
},
{
"title": "Out for delivery",
"timestamp": "Thu 08:11",
"tone": "success"
}
]
},
{
"type": "divider"
},
{
"type": "section",
"title": "Items",
"blocks": [
{
"type": "list",
"items": [
{
"label": "Marble tile (sq ft)",
"value": "40"
},
{
"label": "Grout",
"value": "2 bags"
}
]
}
]
}
]
},
"response": {
"mode": "none"
}
}