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"
  }
}