Skip to content
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

Workflow.create → Trigger.create
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.