Sales and customers
Announce every release
Every deployed Version gets changelog notes, and everyone who asked for what shipped gets an email.
For developers
Every deployed Version gets release notes on the changelog. Each Customer or Lead who asked for what shipped gets an email.
For developers
Needs Ship my changes
What you get
- 1changelog entry per release, written from its ChangesPost
- 1email per Customer or Lead whose request shippedMessage
- 1Workflow with three steps, each retried up to three timesWorkflow
- 1trigger on every deployed VersionTrigger
Your agent does
You, to your agent
Announce every release.
Post what shipped each time we deploy.
Tell customers when the feature they asked for ships.
# 1. Workflow.create
curl -X POST https: //api.sb/ leaseline.app/ workflows \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"steps": {"notes": "Write release notes from the Changes in the Version.", "post": "Publish them to the changelog.", "tell": "Email each Customer and Lead who asked for a shipped feature."}, "retries": 3}'
# 2. Trigger.create
curl -X POST https: //api.sb/ leaseline.app/ triggers \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"event": "Version.deployed"}'
import { $ } from 'startup-builder'
await $.Workflow.create({ steps: { notes: 'Write release notes from the Changes in the Version.', post: 'Publish them to the changelog.', tell: 'Email each Customer and Lead who asked for a shipped feature.' }, retries: 3 })
await $.Trigger.create({ event: 'Version.deployed' })
npx startup-builder do Workflow.create --json '{"steps": {"notes": "Write release notes from the Changes in the Version.", "post": "Publish them to the changelog.", "tell": "Email each Customer and Lead who asked for a shipped feature."}, "retries": 3}'
npx startup-builder do Trigger.create --json '{"event": "Version.deployed"}'
{
"name": "do",
"arguments": {
"code": "await $.Workflow.create({ steps: { notes: 'Write release notes from the Changes in the Version.', post: 'Publish them to the changelog.', tell: 'Email each Customer and Lead who asked for a shipped feature.' }, retries: 3 })\nreturn await $.Trigger.create({ event: 'Version.deployed' })"
}
}
Change it
- Skip releases that only fix bugs.
- Post to our social accounts too.
- Batch it into one email a week.
Under the hood
- Systems
- Changelog, Mailboxes
- Nouns
- Version, Change, Post, Message, Workflow, Trigger
- Events
Version.deployed,Workflow.created,Trigger.created
Telling people their request shipped is the cheapest retention there is. The Workflow reads each Change in the release, so the notes describe what shipped, not what was promised.