Skip to content

Mailboxes

The addresses your agents send from, warmed, rested and authenticated, with every Suppression and Consent read before each send.

System
Mailboxes
Nouns
4
Verbs
9
Events
9
Message.broadcast
You, to your agent

Email the launch-day note to my waitlist at 8 a.m. Pacific on November 4.

curl -X POST "https://api.sb/leaseline.app/messages/broadcast?mode=try" \
  -H "Authorization: Bearer $SB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message":"msg_Wl5tQ8nB2r","audience":"audience_Wt3kP9sL4e","at":"2026-11-04T16:00:00Z"}'
npx startup-builder do Message.broadcast --try --data '{"message":"msg_Wl5tQ8nB2r","audience":"audience_Wt3kP9sL4e","at":"2026-11-04T16:00:00Z"}'
{
  "name": "do",
  "arguments": {
    "mode": "try",
    "code": "return await $.Message.broadcast({ message: 'msg_Wl5tQ8nB2r', audience: 'audience_Wt3kP9sL4e', at: '2026-11-04T16:00:00Z' })"
  }
}
import { $ } from 'startup-builder'

const result = await $.try.Message.broadcast({ message: 'msg_Wl5tQ8nB2r', audience: 'audience_Wt3kP9sL4e', at: '2026-11-04T16:00:00Z' })
Response
{
  "api": "https://api.sb/leaseline.app",
  "message": {
    "$id": "https://api.sb/leaseline.app/messages/msg_Wl5tQ8nB2r",
    "$type": "Message",
    "medium": "email",
    "direction": "outbound",
    "from": "dana@leaseline.app",
    "subject": "Leaseline is live on Product Hunt today",
    "purpose": "launch"
  },
  "messages": [
    {
      "$type": "Message",
      "to": "leo@birchline-homes.example",
      "subject": "Leaseline is live on Product Hunt today",
      "body": "Leo, you joined the waitlist in September. Leaseline is live today: rent and every lease renewal tracked in one place, each notice sent 60 days out."
    }
  ],
  "counts": {
    "audience": 640,
    "sending": 611,
    "skippedNoConsent": 21,
    "skippedSuppressed": 8
  },
  "action": {
    "operation": "Message.broadcast",
    "mode": "try",
    "status": "done"
  }
}
Try mode reads, stores nothing and spends nothingAPI referenceIts Nouns

Nouns

NounWhat it is
MailboxA Mailbox is an email Channel at a Domain, held by a startup, a Role, or a Worker, so every Agent has its own.
MessageA Message is one communication from any party over one medium, such as email, SMS, or chat, inbound or outbound.
SuppressionA Suppression is an address a Company never sends commercial Messages to, read before every send from any of its startups.
ConsentA Consent is a person’s grant for one Purpose, with its basis, region, notice, evidence, and expiry.

Properties

The hub defines each Noun’s core Properties; Mailboxes adds the ones a sale needs.

Mailbox

PropertyTypeWhat it holdsDefined by
addressemailThe email address.The hub
streamstringWhat it sends: receipts and resets, broadcasts, or cold outbound; one stream per Mailbox.The hub
dailyCapintegerSends allowed today, raised by the warmup ramp and cut by the brakes.The hub
statusstringWhere the Mailbox stands in its warmup and rest cycle.The hub
tenanttenantThe Tenant it sends for, at a Domain that Tenant’s customer holds; replies land in the Tenant’s Threads.The hub
domainDomainIts domain; cold outbound lives only on a second domain, never your primary.Mailboxes
bounceRatenumberHard bounces over the last 7 days; over 2% rests the Mailbox.Mailboxes
spamRatenumberComplaints reported by the inbox providers; over 0.3% rests it.Mailboxes

Message

PropertyTypeWhat it holdsDefined by
mediumstringOne of email, sms, voice, or chat.The hub
directionstringOne of inbound or outbound.The hub
bodytextWhat it says.The hub
fromstringThe sender: an address, a number, or a Channel id.The hub
tostringThe recipient: an address, a number, or a Person id.The hub
subjectstringThe subject line, for email.The hub
purposestringWhy it goes out, such as onboarding; consent and suppression rules read it.The hub
mailboxMailboxThe Mailbox it sends from, which sets its daily cap.Mailboxes
threadstringThe thread it belongs to, so a follow-up lands under the first email.Mailboxes

Suppression

PropertyTypeWhat it holdsDefined by
addressstringThe email address or phone number.The hub
reasonstringWhy it is suppressed, such as an opt-out or a bounce.The hub
PropertyTypeWhat it holdsDefined by
regionstringThe jurisdiction whose rules apply.The hub
withdrawnAtdatetimeWhen the person withdrew it.The hub

Lifecycle

Every move names the Verb that makes it, or the Event it waits on.

Mailbox

StateWhat it meansMoves to
warming (first)Its daily sends ramp toward its cap over two to four weeks.active by Mailbox.warm; retired by Mailbox.retire
activeIt sends up to its cap while its readings stay inside their brakes.resting by Mailbox.rest; retired by Mailbox.retire
restingA brake fired, so it sends nothing until the reading clears.active by Mailbox.warm; retired by Mailbox.retire
retiredIt sends nothing again; its address, Messages and sending history stay.None: it ends here.

Verbs

VerbWhat it doesApproval
Message.scheduleHolds one email until the minute you set, such as 9:10 in the buyer’s morning, then sends it from your Mailbox.Runs on its own On each site Gmail, LinkedIn, Outlook, X Limits Cold first touches send only from a warmed second domain: 2 Mailboxes at 25 a day each after a 14-day ramp, 50 a day in all. Warm intros and replies send from your primary domain.
Message.broadcastSends one email to a whole Audience, such as your waitlist, now or at a set time.Goes out on its own On each site Gmail, Outlook Limits Only to people who opted in; a broadcast never goes to a cold list.
Mailbox.warmRamps a new Mailbox from 5 sends a day to 25 over 14 days, before any cold email leaves it.Runs on its own On each site None. Limits Fourteen days from 5 sends a day to 25; no cold email leaves a Mailbox still warming.
Mailbox.restPauses a Mailbox’s sending when a brake fires, such as bounces over 2%, and resumes it when the reading clears.Runs on its own
Domain.authenticateWrites your domain’s SPF, DKIM and DMARC records and checks them before its first send.Runs on its own
Mailbox.retireStops a Mailbox for good and keeps its address, Messages and sending history.Runs on its own
Contact.suppressAdds an address to the one list every send reads first, honored by every startup, forever.Runs on its own
Contact.unsubscribeStops commercial email to a person in one click, for one topic or all, at once.Runs on its own On each site Gmail, Outlook
Consent.withdrawEnds a Consent at once: sending for its purpose stops, and the record stays.Runs on its own

Events

EventEmitted by
Message.scheduledMessage.schedule
Message.broadcastedMessage.broadcast
Mailbox.warmedMailbox.warm
Mailbox.restedMailbox.rest
Mailbox.retiredMailbox.retire
Domain.authenticatedDomain.authenticate
Contact.suppressedContact.suppress
Contact.unsubscribedContact.unsubscribe
Consent.withdrawnConsent.withdraw

A Trigger can start a Workflow on any of them, and a Watch delivers each to your endpoint, signed (Events and webhooks).

Who operates it

PartMailboxes
AccountableProspector
Also calls its VerbsCustomer lead, Marketing lead, Onboarding Specialist, Billing Specialist, Success Manager, Partner Manager
SeatAn agent holds each seat until you seat a person in it.
Asks you firstNone of its Verbs: each runs within its seat’s Limits

Integrations

Gmail · Outlook

Import and export

DirectionWhatHow
ImportYour existing inbox and its threadsIntegration.connect for Gmail or Outlook; replies land in the thread they answer
ImportYour Suppressions from another toolContact.suppress for each address; suppressions are never removed
ExportEvery Message, with its reply and outcomeCollection.export

Example

A second domain, warmed before the first cold email.

  1. Domain.authenticate writes SPF, DKIM and DMARC for tryleaseline.app and checks each one.
  2. Mailbox.warm ramps dana@tryleaseline.app and ops@tryleaseline.app from 5 a day to 25 over 14 days.
  3. On day 15, Message.schedule holds each first touch for 9:10 in the buyer’s time zone: 50 a day across the two.
  4. A bounce spike past 2% on one Mailbox fires its brake; Mailbox.rest pauses it until the reading clears.

Contents