Ship api@2.3.0 to production?
CI is green and the release is staged. One tap promotes it.
- Version
- api@2.3.0
- Commits
- a1f3c2…9be4
- Changes
- 12 files
- Last deploy
- 6h ago
A notification that opens into a decision
Every Roundtrip request is one loop: something happens, a person decides on their phone, and the decision lands back in your app, signed.
- 1Trigger
The trigger
Your pipeline stages a release and reaches the human gate — the step that used to be a person watching a channel and clicking a link, or worse, a rubber-stamp nobody really reviews.
Your pipeline stages a release and reaches the human gate — the step that used to be a person watching a channel and clicking a link, or worse, a rubber-stamp nobody really reviews.
- 2Ask
The ask
Roundtrip pushes a card with the diff, the commit range, and the time since the last deploy, plus Approve / Hold buttons. The release manager decides from wherever they are.
Roundtrip pushes a card with the diff, the commit range, and the time since the last deploy, plus Approve / Hold buttons. The release manager decides from wherever they are.
- 3Response
What comes back
The tapped decision returns to your webhook, signed, carrying the release id you attached. Your pipeline promotes or holds automatically — no one re-runs a command by hand.
The tapped decision returns to your webhook, signed, carrying the release id you attached. Your pipeline promotes or holds automatically — no one re-runs a command by hand.
One request out, one signed response back
The card on the phone is rendered straight from the request body, not a mockup. When the recipient responds, Roundtrip POSTs a signed event to your webhook and retries until it lands.
{
"channels": [
"deploys"
],
"notification": {
"title": "Release · api@2.3.0",
"body": "CI green, staged for production — approve to ship."
},
"content": {
"title": "Ship api@2.3.0 to production?",
"description": "CI is green and the release is staged. One tap promotes it.",
"status": {
"label": "CI green",
"tone": "success"
},
"sections": [
{
"type": "keyvalue",
"columns": 2,
"items": [
{
"label": "Version",
"value": "api@2.3.0",
"mono": true
},
{
"label": "Commits",
"value": "a1f3c2…9be4",
"mono": true
},
{
"label": "Changes",
"value": "12 files"
},
{
"label": "Last deploy",
"value": "6h ago"
}
]
}
],
"actions": [
{
"id": "approve",
"label": "Promote",
"style": "primary"
},
{
"id": "hold",
"label": "Hold",
"style": "secondary"
}
]
},
"response": {
"mode": "required",
"webhook": "https://api.example.com/roundtrip"
}
}Ship api@2.3.0 to production?
CI is green and the release is staged. One tap promotes it.
- Version
- api@2.3.0
- Commits
- a1f3c2…9be4
- Changes
- 12 files
- Last deploy
- 6h ago
{
"requestId": "req_8Kx2…",
"channel": "deploys",
"kind": "tap",
"action": "approve",
"respondedAt": "2026-06-20T16:41:09Z"
}