URL: /revenue/when-to-reach-out · Id: `page:/revenue/when-to-reach-out`

# When to reach out: the Event and the window

> Every Event that starts an Outreach Play, the window it stays open and the payload it carries.

When to reach out lists every [Event](https://startupbuilder.dev/business/nouns/event) that starts an [Outreach](/plays?kind=outreach) [Play](https://startupbuilder.dev/business/nouns/play), the window it stays open and the payload it carries. A [Trigger](https://startupbuilder.dev/business/nouns/trigger) costs $0; each touch costs what its email costs.

```text title="Ask"
Which Events start our outreach, how long does each stay open, and send me each one as it happens.
```

```ts title="SDK"
import { $ } from 'startup-builder'

const { triggers } = await $.Trigger.list({ limit: 20 })   // what starts each Play, and its selector
const { events: [last] } = await $.Event.list({ where: 'name = "Conversation.answered"', limit: 1 })   // the latest reply that names a date to write again
await $.Watch.create({ selector: 'Conversation.answered', url: 'https://leaseline.app/hooks/sb' }, { mode: 'try' })   // each delivery signed
return triggers
```

```json title="Response · sample"
{
  "triggers": [
    {
      "$id": "https://api.sb/leaseline.app/triggers/not-now-date",
      "$type": "Trigger",
      "event": "Conversation.answered",
      "where": "reply.kind = 'not-now' and reply.date <= now"
    },
    {
      "$id": "https://api.sb/leaseline.app/triggers/pricing-visit",
      "$type": "Trigger",
      "event": "Visit.recorded",
      "where": "page.path = '/pricing'"
    },
    {
      "$id": "https://api.sb/leaseline.app/triggers/form-submitted",
      "$type": "Trigger",
      "event": "Lead.created"
    }
  ]
}
```

## What it does
| What you pay for | Price per unit (sample) | The call |
| --- | --- | --- |
| A Trigger | $0 | <Op verb="Trigger.create" /> |
| A signed delivery to your endpoint | $0 | <Op verb="Watch.create" /> |

## Run it
| Step | Call | What it does here |
| --- | --- | --- |
| <a id="step-1"></a>1 | <Op verb="Trigger.list" /> | what starts each Play, and its selector |
| <a id="step-2"></a>2 | <Op verb="Event.list" /> | the latest reply that names a date to write again |
| <a id="step-3"></a>3 | <Op verb="Watch.create" /> | each delivery signed |

## Set it up
| Check | On the day-0 Startup | Fix | Your time | Wait | Then |
| --- | --- | --- | --- | --- | --- |
| <a id="check-inbound-source"></a>`inbound-source` | fail | connect the form, inbox or ad source whose Events start your Plays | 5 min | none | <Op verb="Integration.connect" /> |

<div className="sbO-divider" role="separator" aria-label="Reference" data-divider="reference">Reference</div>

## The records
```json title="One Trigger · sample"
{
  "trigger": {
    "$id": "https://api.sb/leaseline.app/triggers/not-now-date",
    "$type": "Trigger",
    "event": "Conversation.answered",
    "where": "reply.kind = 'not-now' and reply.date <= now"
  }
}
```

| When | Event | Starts on | Window | Plays | Payload |
| --- | --- | --- | --- | --- | --- |
| <a id="trigger-introducer-answer"></a>Introducer answer | `Action.answered` | event where `action.kind = 'intro-ask'` | 1d | [Warm intros](/plays/warm-intros) | `{ action }` · [payload](#event-action-answered) |
| <a id="trigger-target-opt-in"></a>Target opt-in | `Action.answered` | event where `answer = 'yes'` | 2d | [Warm intros](/plays/warm-intros) | `{ action }` · [payload](#event-action-answered) |
| <a id="trigger-organization-ad-engagement"></a>Organization ad engagement | `Ad.clicked` | threshold where `3 or more clicks, or 1 lead-form open, from a treated company in 14 days` | 14d | [Buying committee](/plays/buying-committee) | Not live yet |
| <a id="trigger-introducer-joined"></a>Introducer joined | `Agreement.signed` | event where `kind in ('holder', 'advisor') or customer.outcomeAt < now - 30d` | 14d | [Warm intros](/plays/warm-intros) | `{ agreement }` · [payload](#event-agreement-signed) |
| <a id="trigger-account-touch-hold"></a>Account touch hold | `Approval.approved` | event where `kind = 'account-touch'` | 14d | [Lead nurture](/plays/lead-nurture), [Product signals](/plays/product-signals) | `{ approval }` · [payload](#event-approval-approved) |
| <a id="trigger-voice-requested"></a>Voice requested | `Call.requested` | event where `channel = 'voice'` | 1h | [Waitlist interviews](/plays/signup-interviews) | Not live yet |
| <a id="trigger-inbound-call"></a>Inbound call | `Channel.called` | event where `direction = 'inbound'` | 1h | [Outbound calling](/plays/outbound-calling) | Not live yet |
| <a id="trigger-dropped-call"></a>Dropped call | `Channel.missed` | event where `answered = false or callbackAsked = true` | 1d | [Outbound calling](/plays/outbound-calling) | Not live yet |
| <a id="trigger-cap-mismatch"></a>Cap mismatch | `Check.failed` | event where `page.cap differs from waitlist.cap` | 1d | [Waitlist interviews](/plays/signup-interviews) | Not live yet |
| <a id="trigger-checkout-exit"></a>Checkout exit | `Checkout.abandoned` | state where `status = 'abandoned' on a started signup or checkout` | 7d | [Product-led growth](/plays/product-led) | Not live yet |
| <a id="trigger-public-filing"></a>Public filing | `Company.filed` | event where `a permit, lease, license or registration the ICP files` | 14d | [Cold email](/plays/cold-email) | Not live yet |
| <a id="trigger-funding"></a>Funding | `Company.funded` | at where `day 21 to day 45 after a priced round or grant is announced` | 45d | [Cold email](/plays/cold-email) | Not live yet |
| <a id="trigger-named-organization-moment"></a>Named organization moment | `Company.funded` | event where `funding, hiring, a technology change, a filing or a rival complaint at a treated company` | 30d | [Buying committee](/plays/buying-committee), [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-voice-consent-form"></a>Voice consent form | `Consent.granted` | event where `purpose = 'ai-voice-call'` | 1d | [Outbound calling](/plays/outbound-calling) | Not live yet |
| <a id="trigger-member-role-change"></a>Member role change | `Contact.enriched` | event where `a mapped member left, or someone new took a mapped role` | 30d | [Buying committee](/plays/buying-committee) | `{ contact }` · [payload](#event-contact-enriched) |
| <a id="trigger-dormant-connection"></a>Dormant connection | `Contact.imported` | state where `first-degree, ICP-fit, no Message from the Human in 180 days` | 30d | [LinkedIn outbound](/plays/linkedin-outbound) | Not live yet |
| <a id="trigger-records-imported"></a>Records imported | `Contact.imported` | event where `each row carries its collecting Form, Registration or trial` | 730d | [Lead reactivation](/plays/lead-reactivation) | Not live yet |
| <a id="trigger-stalled-signup"></a>Stalled signup | `Contact.stalled` | state where `status = 'stalled': signed up, no conversion Event` | 30d | [Product-led growth](/plays/product-led) | Not live yet |
| <a id="trigger-answer-owed"></a>Answer owed | `Content.published` | event where `matches a ghosted Form’s question at 0.8 or more` | 30d | [Lead reactivation](/plays/lead-reactivation) | `{ content }` · [payload](#event-content-published) |
| <a id="trigger-outcome-fact"></a>Outcome fact | `Content.published` | event where `kind = 'outcome' and verified` | 30d | [Lead reactivation](/plays/lead-reactivation) | `{ content }` · [payload](#event-content-published) |
| <a id="trigger-form-non-booker"></a>Form non-booker | `Conversation.answered` | state where `a booking link offered and no Meeting.booked 24 hours after the answer` | 7d | [Lead nurture](/plays/lead-nurture) | `{ conversation }` · [payload](#event-conversation-answered) |
| <a id="trigger-not-now-date"></a>Not now date | `Conversation.answered` | at where `the date the Person’s own reply named` | 14d | [Cold email](/plays/cold-email) | `{ conversation }` · [payload](#event-conversation-answered) |
| <a id="trigger-referral-named"></a>Referral named | `Conversation.answered` | event where `the reply names a colleague and agrees to be mentioned` | 7d | [Cold email](/plays/cold-email) | `{ conversation }` · [payload](#event-conversation-answered) |
| <a id="trigger-chat-non-booker"></a>Chat non-booker | `Conversation.closed` | state where `an address captured, a booking link offered and no Meeting.booked within 1 hour` | 7d | [Lead nurture](/plays/lead-nurture) | `{ conversation }` · [payload](#event-conversation-closed) |
| <a id="trigger-customer-words-batch"></a>Customer words batch | `Conversation.closed` | threshold where `newQuotes >= 30` | 30d | [Positioning tournament](/plays/positioning-tournament) | `{ conversation }` · [payload](#event-conversation-closed) |
| <a id="trigger-call-me-reply"></a>Call me reply | `Conversation.labeled` | event where `label = 'call-me'` | 1d | [Outbound calling](/plays/outbound-calling) | Not live yet |
| <a id="trigger-activation-reached"></a>Activation reached | `Customer.activated` | event where `first = true` | 72h | [Lead nurture](/plays/lead-nurture), [Product-led growth](/plays/product-led), [Waitlist interviews](/plays/signup-interviews) | `{ customer }` · [payload](#event-customer-activated) |
| <a id="trigger-senior-signup"></a>Senior signup | `Customer.activated` | event where `the Person's own stated role is director or above, at a strong-fit Organization` | 7d | [Product signals](/plays/product-signals) | `{ customer }` · [payload](#event-customer-activated) |
| <a id="trigger-dormant-signup"></a>Dormant signup | `Customer.stalled` | state where `status = 'stalled': no activation Event 7 days after signup` | 14d | [Product signals](/plays/product-signals) | Not live yet |
| <a id="trigger-heatmap-due"></a>Heatmap due | `Dashboard.scheduled` | at where `month.start` | 7d | [Positioning tournament](/plays/positioning-tournament) | `{ dashboard }` · [payload](#event-dashboard-scheduled) |
| <a id="trigger-sso-objection-lost"></a>Single sign-on objection lost | `Deal.lost` | event where `reason mentions 'single-sign-on'` | 180d | [Lead reactivation](/plays/lead-reactivation) | `{ deal }` · [payload](#event-deal-lost) |
| <a id="trigger-decision-hold"></a>Decision hold | `Deal.proposed` | state where `status in ('proposed', 'contract')` | 90d | [Gifting](/plays/gifting) | `{ deal }` · [payload](#event-deal-proposed) |
| <a id="trigger-quiet-deal"></a>Quiet deal | `Deal.stalled` | state where `status = 'open' and a Meeting held and no member reply for 10 business days` | 30d | [Gifting](/plays/gifting) | Not live yet |
| <a id="trigger-free-limit-near"></a>Free limit near | `Entitlement.checked` | threshold where `used / bound >= 0.8 on a free meter` | 7d | [Lead nurture](/plays/lead-nurture) | `{ allowed, entitlement, remaining, resetsAt, upgrade }` · [payload](#event-entitlement-checked) |
| <a id="trigger-limit-approach"></a>Limit approach | `Entitlement.checked` | threshold where `used / bound at 0.8 or more this period` | 7d | [Agent-to-agent selling](/plays/agent-to-agent) | `{ allowed, entitlement, remaining, resetsAt, upgrade }` · [payload](#event-entitlement-checked) |
| <a id="trigger-limit-pair"></a>Limit pair | `Entitlement.checked` | threshold where `allowed = false for 2 or more People at one Organization on the same Limit` | 7d | [Product signals](/plays/product-signals) | `{ allowed, entitlement, remaining, resetsAt, upgrade }` · [payload](#event-entitlement-checked) |
| <a id="trigger-limit-pressure"></a>Limit pressure | `Entitlement.checked` | threshold where `used / bound >= 0.8 inside the first 30 paid days, or a member refused a Verb the next Offer grants` | 3d | [Product-led growth](/plays/product-led) | `{ allowed, entitlement, remaining, resetsAt, upgrade }` · [payload](#event-entitlement-checked) |
| <a id="trigger-limit-reached"></a>Limit reached | `Entitlement.checked` | threshold where `used past bound; the Offer's atBound runs` | 1d | [Agent-to-agent selling](/plays/agent-to-agent) | `{ allowed, entitlement, remaining, resetsAt, upgrade }` · [payload](#event-entitlement-checked) |
| <a id="trigger-locked-verb-call"></a>Locked verb call | `Entitlement.checked` | event where `a locked Verb, unclaimed: claim-required` | 24h | [Agent-to-agent selling](/plays/agent-to-agent) | `{ allowed, entitlement, remaining, resetsAt, upgrade }` · [payload](#event-entitlement-checked) |
| <a id="trigger-usage-threshold"></a>Usage threshold | `Entitlement.checked` | threshold where `allowed = false, or 20 % or less of the grant left` | 2d | [Product-led growth](/plays/product-led) | `{ allowed, entitlement, remaining, resetsAt, upgrade }` · [payload](#event-entitlement-checked) |
| <a id="trigger-lead-pricing-return"></a>Lead pricing return | `Event.captured` | threshold where `pricing or plan Page views on 2 or more days in 7` | 72h | [Lead nurture](/plays/lead-nurture) | `{ event }` · [payload](#event-event-captured) |
| <a id="trigger-org-visit"></a>Organization visit | `Event.captured` | event where `page in ('pricing', 'comparison', 'docs') and the Organization resolved` | 3d | [LinkedIn outbound](/plays/linkedin-outbound) | `{ event }` · [payload](#event-event-captured) |
| <a id="trigger-paid-predictor"></a>Paid predictor | `Event.captured` | threshold where `the fitted usage Event reaches its fitted count within 7 days of signup` | 7d | [Product-led growth](/plays/product-led) | `{ event }` · [payload](#event-event-captured) |
| <a id="trigger-team-cluster"></a>Team cluster | `Event.captured` | threshold where `3 or more active People at one free or trial Organization within 14 days` | 14d | [Product signals](/plays/product-signals) | `{ event }` · [payload](#event-event-captured) |
| <a id="trigger-commitment-stated"></a>Commitment stated | `Evidence.created` | event where `kind = 'commitment'` | 3d | [Waitlist interviews](/plays/signup-interviews) | `{ evidence }` · [payload](#event-evidence-created) |
| <a id="trigger-read-me-request"></a>Read-me request | `Form.submitted` | event where `form = 'read-me', from a company outside the census` | 24h | [Benchmark rows](/plays/benchmark-rows) | Not live yet |
| <a id="trigger-regrade-request"></a>Regrade request | `Form.submitted` | event where `form = 'regrade', from the row Page or a reply` | 24h | [Benchmark rows](/plays/benchmark-rows) | Not live yet |
| <a id="trigger-row-dispute"></a>Reading dispute | `Form.submitted` | event where `form = 'dispute', from the row Page or a reply` | 2d | [Benchmark rows](/plays/benchmark-rows) | Not live yet |
| <a id="trigger-gathering-announced"></a>Gathering announced | `Gathering.opened` | event where `a topic or series a pooled Person registered for` | 21d | [Lead reactivation](/plays/lead-reactivation) | Not live yet |
| <a id="trigger-registrant-silent"></a>Registrant silent | `Gathering.registered` | state where `last Registration 180 days old, with no reply, Registration or Deal since` | 365d | [Lead reactivation](/plays/lead-reactivation) | `{ registration, gathering }` · [payload](#event-gathering-registered) |
| <a id="trigger-fixable-error"></a>Fixable error | `Interface.called` | event where `an error kind with a recorded fix, or a new kind` | 7d | [Agent-to-agent selling](/plays/agent-to-agent) | Not live yet |
| <a id="trigger-principal-quiet"></a>Principal quiet | `Interface.called` | state where `no call for 14 days after 4 weeks of weekly paid calls` | 30d | [Agent-to-agent selling](/plays/agent-to-agent) | Not live yet |
| <a id="trigger-unclaimed-use"></a>Unclaimed use | `Interface.called` | threshold where `the third successful non-empty call while unclaimed` | 48h | [Agent-to-agent selling](/plays/agent-to-agent) | Not live yet |
| <a id="trigger-interview-abandoned"></a>Interview abandoned | `Interview.abandoned` | event where `kind = 'signup'` | 7d | [Waitlist interviews](/plays/signup-interviews) | Not live yet |
| <a id="trigger-interview-completed"></a>Interview completed | `Interview.completed` | event where `kind = 'signup'` | 1h | [Waitlist interviews](/plays/signup-interviews) | Not live yet |
| <a id="trigger-ad-lead-form"></a>Ad lead form | `Lead.created` | event | 1d | [Instant response](/plays/instant-response) | `{ lead }` · [payload](#event-lead-created) |
| <a id="trigger-form-submitted"></a>Form submitted | `Lead.created` | event | 1d | [Instant response](/plays/instant-response) | `{ lead }` · [payload](#event-lead-created) |
| <a id="trigger-nurture-handoff"></a>Nurture handoff | `Lead.nurtured` | at where `60 days after a silent or ceiling exit from lead-nurture` | 365d | [Lead reactivation](/plays/lead-reactivation) | `{ lead }` · [payload](#event-lead-nurtured) |
| <a id="trigger-lead-routed-nurture"></a>Lead routed to nurture | `Lead.qualified` | event where `route in ('nurture', 'self-serve')` | 24h | [Lead nurture](/plays/lead-nurture) | `{ deal, lead }` · [payload](#event-lead-qualified) |
| <a id="trigger-signup-matured"></a>Tournament signup matured | `Lead.qualified` | event where `experiment != null and age = 14d` | 14d | [Positioning tournament](/plays/positioning-tournament) | `{ deal, lead }` · [payload](#event-lead-qualified) |
| <a id="trigger-strong-fit-lead"></a>Strong fit lead | `Lead.qualified` | event where `fit = 'strong' and intent = 'strong' and voiceConsent = false` | 1d | [Outbound calling](/plays/outbound-calling) | `{ deal, lead }` · [payload](#event-lead-qualified) |
| <a id="trigger-meeting-no-show"></a>Meeting no-show | `Meeting.booked` | state where `missed and not rebooked within 2 hours` | 72h | [Lead nurture](/plays/lead-nurture) | `{ meeting }` · [payload](#event-meeting-booked) |
| <a id="trigger-onboarding-held"></a>Onboarding held | `Meeting.held` | event where `kind = 'onboarding'` | 7d | [Waitlist interviews](/plays/signup-interviews) | Not live yet |
| <a id="trigger-chat-app-message"></a>Chat app message | `Message.created` | event where `direction = 'inbound'` | 1d | [Instant response](/plays/instant-response) | `{ message }` · [payload](#event-message-created) |
| <a id="trigger-direct-message"></a>Direct message | `Message.created` | event where `direction = 'inbound'` | 1d | [Instant response](/plays/instant-response) | `{ message }` · [payload](#event-message-created) |
| <a id="trigger-inbound-email"></a>Inbound email | `Message.created` | event where `direction = 'inbound'` | 1d | [Instant response](/plays/instant-response) | `{ message }` · [payload](#event-message-created) |
| <a id="trigger-site-chat-opened"></a>Site chat opened | `Message.created` | event where `direction = 'inbound'` | 1h | [Instant response](/plays/instant-response) | `{ message }` · [payload](#event-message-created) |
| <a id="trigger-address-given"></a>Address given | `Message.received` | event where `direction = 'inbound' and postalAddress is set` | 30d | [Gifting](/plays/gifting) | Not live yet |
| <a id="trigger-intro-made"></a>Intro made | `Message.received` | event where `participants include the introducer and the target` | 4h | [Warm intros](/plays/warm-intros) | Not live yet |
| <a id="trigger-linkedin-reply"></a>LinkedIn reply | `Message.replied` | event where `direction = 'inbound'` | 1h | [LinkedIn outbound](/plays/linkedin-outbound) | Not live yet |
| <a id="trigger-output-disputed"></a>Output disputed | `Message.replied` | event where `says an output fact is wrong` | 1d | [Waitlist interviews](/plays/signup-interviews) | Not live yet |
| <a id="trigger-air-cover-requested"></a>Air cover requested | `Message.scheduled` | event where `step = 1 and sendAt >= now + 9d` | 14d | [Cold email](/plays/cold-email), [Moment outreach](/plays/moment-outreach), [LinkedIn outbound](/plays/linkedin-outbound), [Account visits](/plays/account-visits) | `{ message }` · [payload](#event-message-scheduled) |
| <a id="trigger-pool-threshold"></a>Pool threshold | `Metric.watched` | threshold where `month-to-date pool cost reaches 80 % or 100 %` | 1d | [Product-led growth](/plays/product-led) | `{ watch, metric }` · [payload](#event-metric-watched) |
| <a id="trigger-stance-decay"></a>Stance decay | `Metric.watched` | threshold where `rate <= 0.7 × verdictRate` | 30d | [Positioning tournament](/plays/positioning-tournament) | `{ watch, metric }` · [payload](#event-metric-watched) |
| <a id="trigger-verb-cost-shift"></a>Verb cost shift | `Metric.watched` | threshold where `a Verb's p95 cost per call moves 30 % or more against its prior 28 days` | 7d | [Product-led growth](/plays/product-led) | `{ watch, metric }` · [payload](#event-metric-watched) |
| <a id="trigger-cell-filled"></a>Cell filled | `Monitor.checked` | threshold where `rivalsSaying(winningCell) >= 2` | 14d | [Positioning tournament](/plays/positioning-tournament) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-fix-live"></a>Fix live | `Monitor.checked` | event where `the fix named in the row is live on the company's page` | 30d | [Benchmark rows](/plays/benchmark-rows) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-index-due"></a>Index due | `Monitor.checked` | at where `7 days after the last reading, or 14 days before the quarterly publication` | 7d | [Benchmark rows](/plays/benchmark-rows) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-lead-silent-90"></a>Lead silent 90 | `Monitor.checked` | state where `90 days since the last Lead Event` | 1d | [Lead nurture](/plays/lead-nurture), [Lead reactivation](/plays/lead-reactivation) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-open-issue"></a>Open issue | `Monitor.checked` | state where `status = 'open' and unassigned, in the Product's domain, that takes outside fixes` | 30d | [Proof-of-work outreach](/plays/proof-of-work-outreach) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-public-change"></a>Public change | `Monitor.checked` | event where `a content change on one of the company's measured public Pages` | 24h | [Benchmark rows](/plays/benchmark-rows) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-public-surface-change"></a>Public surface change | `Monitor.checked` | event where `the changed surface is one the Product's cheapest Verb can assess` | 14d | [Proof-of-work outreach](/plays/proof-of-work-outreach) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-rank-move"></a>Rank move | `Monitor.checked` | threshold where `value moved by the smallest real change, and percentile by 5 points or more` | 3d | [Benchmark rows](/plays/benchmark-rows) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-rival-claim-change"></a>Rival claim change | `Monitor.checked` | event where `changed = true` | 30d | [Positioning tournament](/plays/positioning-tournament) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-row-ready"></a>Ready row | `Monitor.checked` | state where `gap over the floor, a reproducible fix, and a verified address for the owning role` | 7d | [Benchmark rows](/plays/benchmark-rows) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-technology-change"></a>Technology change | `Monitor.checked` | event where `a product the Startup integrates with or replaces is added or dropped` | 30d | [Cold email](/plays/cold-email) | `{ monitor }` · [payload](#event-monitor-checked) |
| <a id="trigger-offer-changed"></a>Offer changed | `Offer.published` | event where `answers a blocker a pooled Person stated` | 30d | [Lead reactivation](/plays/lead-reactivation) | `{ offer }` · [payload](#event-offer-published) |
| <a id="trigger-first-paid"></a>First paid | `Offer.subscribed` | event where `the first Price above 0` | 30d | [Product-led growth](/plays/product-led) | `{ subscription, offer }` · [payload](#event-offer-subscribed) |
| <a id="trigger-trial-ending"></a>Trial ending | `Offer.trialed` | at where `3 days before trialEndsAt, unpaid` | 3d | [Lead nurture](/plays/lead-nurture) | `{ subscription, offer }` · [payload](#event-offer-trialed) |
| <a id="trigger-trial-lapsed"></a>Trial lapsed | `Offer.trialed` | at where `60 days after trial access ended with no paid Period` | 365d | [Lead reactivation](/plays/lead-reactivation) | `{ subscription, offer }` · [payload](#event-offer-trialed) |
| <a id="trigger-hiring"></a>Opening published | `Opening.published` | event where `the opening is for the role the Product serves or replaces` | 30d | [Cold email](/plays/cold-email) | Not live yet |
| <a id="trigger-checkout-abandoned"></a>Checkout abandoned | `Order.started` | state where `a known Lead and no Order.placed within 60 minutes` | 48h | [Lead nurture](/plays/lead-nurture) | `{ order }` · [payload](#event-order-started) |
| <a id="trigger-acquisition-hold"></a>Acquisition hold | `Organization.acquired` | state where `hold = 'acquisition'` | 90d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-renewal-window"></a>Renewal window | `Organization.adopted` | at where `termEnds - 75d` | 45d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-stated-initiative"></a>Stated initiative | `Organization.announced` | event where `topic = 'renewals'` | 30d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-new-leader"></a>New leader | `Organization.appointed` | event where `function = 'operations'` | 60d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-alternative-outage"></a>Alternative outage | `Organization.degraded` | event where `severity = 'major'` | 90d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-upstream-deprecation"></a>Upstream deprecation | `Organization.deprecated` | at where `endOfLife - 90d` | 90d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-crisis-hold"></a>Crisis hold | `Organization.disrupted` | state where `hold = 'crisis'` | 30d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-layoff-hold"></a>Layoff hold | `Organization.downsized` | state where `hold = 'layoff'` | 14d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-fiscal-year-end"></a>Fiscal year end | `Organization.filed` | at where `fiscalYearEnd - 56d` | 28d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-site-change"></a>Site change | `Organization.published` | event where `path in ('trust', 'enterprise', 'pricing')` | 30d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-stale-job-post"></a>Stale job post | `Organization.reposted` | threshold where `openDays >= 60` | 30d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-alternative-price-rise"></a>Alternative price rise | `Organization.repriced` | event where `namedByOrganization = true` | 60d | [Moment outreach](/plays/moment-outreach) | Not live yet |
| <a id="trigger-tender-hold"></a>Tender hold | `Organization.tendered` | event where `status = 'open'` | 90d | [Gifting](/plays/gifting) | Not live yet |
| <a id="trigger-active-pricing"></a>Active pricing | `Page.viewed` | event where `path = '/pricing', at an Organization with use in the last 7 days` | 3d | [Product signals](/plays/product-signals) | Not live yet |
| <a id="trigger-customer-pricing-visit"></a>Customer pricing visit | `Page.viewed` | event where `path in ('/pricing', '/billing', '/cancel'), by a paying Customer` | 7d | [Product signals](/plays/product-signals) | Not live yet |
| <a id="trigger-sample-forwarded"></a>Sample forwarded | `Page.viewed` | threshold where `the Sample Page read from 3 or more places at one Organization within 14 days` | 14d | [Proof-of-work outreach](/plays/proof-of-work-outreach) | Not live yet |
| <a id="trigger-sample-viewed"></a>Sample viewed | `Page.viewed` | event where `path = the Person's own Sample Page; it raises the next touch's score and never starts a Message alone` | 30d | [Proof-of-work outreach](/plays/proof-of-work-outreach) | Not live yet |
| <a id="trigger-announced-moment"></a>Announced moment | `Person.announced` | event where `kind in ('new-role', 'funding', 'hiring', 'launch')` | 21d | [LinkedIn outbound](/plays/linkedin-outbound) | Not live yet |
| <a id="trigger-rival-post-commenter"></a>Rival post commenter | `Person.commented` | event where `on a rival’s or an ICP creator’s public Post, pasted by the Human` | 7d | [LinkedIn outbound](/plays/linkedin-outbound) | Not live yet |
| <a id="trigger-request-accepted"></a>Request accepted | `Person.connected` | event | 3d | [LinkedIn outbound](/plays/linkedin-outbound) | Not live yet |
| <a id="trigger-problem-post"></a>Problem post | `Person.posted` | event where `about the Problem, on a Venue with a read path or shared by the Human` | 7d | [LinkedIn outbound](/plays/linkedin-outbound) | Not live yet |
| <a id="trigger-own-post-reactor"></a>Own post reactor | `Person.reacted` | event where `on the Human’s own Post, with no words, pasted by the Human` | 7d | [LinkedIn outbound](/plays/linkedin-outbound) | Not live yet |
| <a id="trigger-tournament-funded"></a>Tournament funded | `PlayMix.compiled` | threshold where `budget >= 1500` | 7d | [Positioning tournament](/plays/positioning-tournament) | `{ playMix }` · [payload](#event-playmix-compiled) |
| <a id="trigger-event-trip"></a>Event trip | `Post.published` | event where `kind = 'event-attendance'` | 21d | [Gifting](/plays/gifting) | `{ post }` · [payload](#event-post-published) |
| <a id="trigger-cold-call-reason"></a>Cold call reason | `Prospect.created` | event where `reason != null and businessNumber != null` | 7d | [Outbound calling](/plays/outbound-calling) | `{ prospect }` · [payload](#event-prospect-created) |
| <a id="trigger-member-engaged"></a>Member engaged | `Prospect.engaged` | event where `replies, accepts a Meeting, or views the committee Page` | 14d | [Buying committee](/plays/buying-committee) | `{ lead, prospect }` · [payload](#event-prospect-engaged) |
| <a id="trigger-member-hand-raise"></a>Member hand raise | `Prospect.engaged` | event where `asks for a Meeting, a Price, a pilot or the security report` | 24h | [Buying committee](/plays/buying-committee) | `{ lead, prospect }` · [payload](#event-prospect-engaged) |
| <a id="trigger-product-hand-raise"></a>Product hand raise | `Prospect.engaged` | event where `the answer is to a touch of this Play, read as interested` | 1d | [Product signals](/plays/product-signals) | `{ lead, prospect }` · [payload](#event-prospect-engaged) |
| <a id="trigger-public-ask"></a>Public ask | `Question.asked` | event where `asks for a link, an asset, a demo, a price or a private answer` | 24h | [Proof-of-work outreach](/plays/proof-of-work-outreach) | Not live yet |
| <a id="trigger-competitor-complaint"></a>Competitor complaint | `Review.published` | event where `a public review or thread names an alternative` | 7d | [Cold email](/plays/cold-email) | `{ review }` · [payload](#event-review-published) |
| <a id="trigger-admit-due"></a>Admit due | `Schedule.fired` | at where `each Monday 09:00 in the founder’s time zone` | 1d | [Waitlist interviews](/plays/signup-interviews) | Not live yet |
| <a id="trigger-slots-published"></a>Slots published | `Schedule.fired` | at where `each Friday 16:00 in the founder’s time zone` | 7d | [Waitlist interviews](/plays/signup-interviews) | Not live yet |
| <a id="trigger-story-ungraded"></a>Story ungraded | `Story.revised` | state where `stance.backedBy = null` | 30d | [Positioning tournament](/plays/positioning-tournament) | Not live yet |
| <a id="trigger-subscription-ended"></a>Subscription ended | `Subscription.ended` | state where `status = 'ended' after a cancel` | 60d | [Product-led growth](/plays/product-led) | Not live yet |
| <a id="trigger-agent-provision"></a>Agent provision | `Tenant.provisioned` | event where `the caller has no API Key` | 72h | [Agent-to-agent selling](/plays/agent-to-agent) | `{ tenant }` · [payload](#event-tenant-provisioned) |
| <a id="trigger-claim-expiry-due"></a>Claim expiry due | `Tenant.provisioned` | at where `24 hours before expiresAt` | 24h | [Agent-to-agent selling](/plays/agent-to-agent) | `{ tenant }` · [payload](#event-tenant-provisioned) |
| <a id="trigger-sibling-cell-claim"></a>Sibling cell claim | `Territory.requested` | event where `cell = winningCell` | 7d | [Positioning tournament](/plays/positioning-tournament) | Not live yet |
| <a id="trigger-intro-path"></a>Intro path | `Thing.related` | event where `grade >= 70 or grade rose by 20` | 30d | [Warm intros](/plays/warm-intros) | `{ relationship, thing }` · [payload](#event-thing-related) |
| <a id="trigger-interest-match"></a>Interest match | `Version.deployed` | event where `matches the Lead’s recorded interest` | 30d | [Lead nurture](/plays/lead-nurture) | `{ version }` · [payload](#event-version-deployed) |
| <a id="trigger-loss-reason-resolved"></a>Loss reason resolved | `Version.deployed` | event where `matches a recorded loss reason` | 30d | [Lead reactivation](/plays/lead-reactivation) | `{ version }` · [payload](#event-version-deployed) |
| <a id="trigger-need-shipped"></a>Need shipped | `Version.deployed` | event where `answers a need a pooled Person stated` | 30d | [Lead reactivation](/plays/lead-reactivation) | `{ version }` · [payload](#event-version-deployed) |
| <a id="trigger-reason-fixed"></a>Reason fixed | `Version.deployed` | event where `the Change names a churn reason code in its fixes` | 30d | [Product-led growth](/plays/product-led) | `{ version }` · [payload](#event-version-deployed) |
| <a id="trigger-claim-page-open"></a>Claim page open | `Visit.recorded` | event where `the claim Page, left without claiming` | 24h | [Agent-to-agent selling](/plays/agent-to-agent) | Not live yet |
| <a id="trigger-evaluation-visit"></a>Evaluation visit | `Visit.recorded` | event where `page in ('setup docs', 'API reference', 'integration', 'case study', 'security') and organization resolved` | 7d | [Account visits](/plays/account-visits) | Not live yet |
| <a id="trigger-pricing-visit"></a>Pricing visit | `Visit.recorded` | event where `a resolved company reads the pricing or comparison Pages` | 72h | [Cold email](/plays/cold-email) | Not live yet |
| <a id="trigger-repeat-visit"></a>Repeat visit | `Visit.recorded` | threshold where `a buying Page on a second day within 7 days` | 7d | [Account visits](/plays/account-visits) | Not live yet |
| <a id="trigger-activation-stalled"></a>Activation stalled | `Visitor.identified` | state where `no activation Event 24 hours after signup` | 7d | [Lead nurture](/plays/lead-nurture) | `{ contact, visitor }` · [payload](#event-visitor-identified) |
| <a id="trigger-form-ghosted"></a>Form ghosted | `Visitor.identified` | state where `made by a Form, 30 days old, no Worker reply, no Enrollment and no Deal` | 730d | [Lead reactivation](/plays/lead-reactivation) | `{ contact, visitor }` · [payload](#event-visitor-identified) |
| <a id="trigger-known-return"></a>Known return | `Visitor.identified` | event where `a pooled Contact, known by the Startup’s own first-party id` | 72h | [Lead reactivation](/plays/lead-reactivation) | `{ contact, visitor }` · [payload](#event-visitor-identified) |
| <a id="trigger-organization-surge"></a>Organization surge | `Visitor.identified` | threshold where `3 or more Visitors resolved to one treated company within 7 days` | 7d | [Buying committee](/plays/buying-committee), [Account visits](/plays/account-visits) | `{ contact, visitor }` · [payload](#event-visitor-identified) |
| <a id="trigger-person-match"></a>Person match | `Visitor.identified` | threshold where `match confidence above the floor and the notice accepted` | 72h | [Account visits](/plays/account-visits) | `{ contact, visitor }` · [payload](#event-visitor-identified) |
| <a id="trigger-admitted-unbooked"></a>Admitted unbooked | `Waitlist.admitted` | state where `admittedAt < now - 2d and onboardingMeeting is null` | 5d | [Waitlist interviews](/plays/signup-interviews) | `{ leads, waitlist }` · [payload](#event-waitlist-admitted) |
| <a id="trigger-waitlist-admitted"></a>Waitlist admitted | `Waitlist.admitted` | event | 7d | [Lead nurture](/plays/lead-nurture) | `{ leads, waitlist }` · [payload](#event-waitlist-admitted) |
| <a id="trigger-waitlist-joined"></a>Waitlist joined | `Waitlist.joined` | event where `waitlist.status = 'open'` | 7d | [Waitlist interviews](/plays/signup-interviews) | `{ lead, waitlist }` · [payload](#event-waitlist-joined) |

146 Triggers on 86 Events. An Event the snapshot lacks waits on the hub and reads Not live yet.

## Calls
| Call | What it does | What else happens | Event |
| --- | --- | --- | --- |
| <Op verb="Trigger.list" /> | Not in the hub registry snapshot. | Today: — | — |
| <Op verb="Trigger.create" /> | Not in the hub registry snapshot. | Today: — | — |
| <Op verb="Event.list" /> | Not in the hub registry snapshot. | Today: — | — |
| <Op verb="Watch.create" /> | Not in the hub registry snapshot. | Today: — | — |

## Events
<a id="event-trigger-created"></a>

```json title="Trigger.created · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Trigger.created",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "trigger": {
      "$id": "https://api.sb/leaseline.app/triggers/trigger_1",
      "$type": "Trigger",
      "event": "Example event",
      "schedule": "Example schedule"
    }
  }
}
```

<a id="event-watch-created"></a>

```json title="Watch.created · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Watch.created",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "watch": {
      "$id": "https://api.sb/leaseline.app/watches/watch_1",
      "$type": "Watch",
      "selector": "Example selector",
      "url": "https://leaseline.app"
    }
  }
}
```

Each live Event below is the signed delivery a Watch on it receives, projected from the hub’s registry. Reproduce one in test with `npx startup-builder trigger <Event>`, then `npx startup-builder clock advance --by <window>`.

<a id="event-action-answered"></a>

```json title="Action.answered · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Action.answered",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "action": {
      "$id": "https://api.sb/leaseline.app/actions/action_1",
      "$type": "Action",
      "status": "pending",
      "mode": "try"
    }
  }
}
```

<a id="event-agreement-signed"></a>

```json title="Agreement.signed · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Agreement.signed",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "agreement": {
      "$id": "https://api.sb/leaseline.app/agreements/agreement_1",
      "$type": "Agreement",
      "status": "signed"
    }
  }
}
```

<a id="event-approval-approved"></a>

```json title="Approval.approved · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Approval.approved",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "approval": {
      "$id": "https://api.sb/leaseline.app/approvals/approval_1",
      "$type": "Approval",
      "status": "pending",
      "mode": "try"
    }
  }
}
```

<a id="event-contact-enriched"></a>

```json title="Contact.enriched · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Contact.enriched",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "contact": {
      "$id": "https://api.sb/leaseline.app/contacts/contact_1",
      "$type": "Contact",
      "email": "dana@leaseline.app",
      "phone": "Example phone"
    }
  }
}
```

<a id="event-content-published"></a>

```json title="Content.published · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Content.published",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "content": {
      "$id": "https://api.sb/leaseline.app/content/content_1",
      "$type": "Content",
      "title": "Leaseline Pro"
    }
  }
}
```

<a id="event-conversation-answered"></a>

```json title="Conversation.answered · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Conversation.answered",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "conversation": {
      "$id": "https://api.sb/leaseline.app/conversations/conversation_1",
      "$type": "Conversation",
      "subject": "Example subject",
      "answeredAt": "2026-10-22T12:00:00Z"
    }
  }
}
```

<a id="event-conversation-closed"></a>

```json title="Conversation.closed · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Conversation.closed",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "conversation": {
      "$id": "https://api.sb/leaseline.app/conversations/conversation_1",
      "$type": "Conversation",
      "subject": "Example subject",
      "answeredAt": "2026-10-22T12:00:00Z"
    }
  }
}
```

<a id="event-customer-activated"></a>

```json title="Customer.activated · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Customer.activated",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "customer": {
      "$id": "https://api.sb/leaseline.app/customers/customer_1",
      "$type": "Customer",
      "since": "2026-10-22T12:00:00Z"
    }
  }
}
```

<a id="event-dashboard-scheduled"></a>

```json title="Dashboard.scheduled · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Dashboard.scheduled",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "dashboard": {
      "$id": "https://api.sb/leaseline.app/dashboards/dashboard_1",
      "$type": "Dashboard",
      "scope": "Startup"
    }
  }
}
```

<a id="event-deal-lost"></a>

```json title="Deal.lost · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Deal.lost",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "deal": {
      "$id": "https://api.sb/leaseline.app/deals/deal_1",
      "$type": "Deal",
      "status": "Lost"
    }
  }
}
```

<a id="event-deal-proposed"></a>

```json title="Deal.proposed · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Deal.proposed",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "deal": {
      "$id": "https://api.sb/leaseline.app/deals/deal_1",
      "$type": "Deal",
      "status": "Proposed"
    }
  }
}
```

<a id="event-entitlement-checked"></a>

```json title="Entitlement.checked · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Entitlement.checked",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "allowed": true,
    "entitlement": {
      "$id": "https://api.sb/leaseline.app/entitlements/entitlement_1",
      "$type": "Entitlement",
      "verb": "verb_1"
    },
    "remaining": 1,
    "resetsAt": "2026-10-22T12:00:00Z",
    "upgrade": {
      "$id": "https://api.sb/leaseline.app/offers/offer_1",
      "$type": "Offer",
      "price": {
        "amount": 29,
        "currency": "USD"
      }
    }
  }
}
```

<a id="event-event-captured"></a>

```json title="Event.captured · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Event.captured",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "event": {
      "$id": "https://api.sb/leaseline.app/events/event_1",
      "$type": "Event",
      "name": "Leaseline",
      "at": "2026-10-22T12:00:00Z"
    }
  }
}
```

<a id="event-evidence-created"></a>

```json title="Evidence.created · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Evidence.created",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "evidence": {
      "$id": "https://api.sb/leaseline.app/evidence/evidence_1",
      "$type": "Evidence",
      "grade": "Behavior"
    }
  }
}
```

<a id="event-gathering-registered"></a>

```json title="Gathering.registered · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Gathering.registered",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "registration": {
      "$id": "https://api.sb/leaseline.app/registrations/registration_1",
      "$type": "Registration",
      "status": "invited"
    },
    "gathering": {
      "$id": "https://api.sb/leaseline.app/gatherings/gathering_1",
      "$type": "Gathering",
      "title": "Leaseline Pro",
      "at": "2026-10-22T12:00:00Z"
    }
  }
}
```

<a id="event-lead-created"></a>

```json title="Lead.created · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Lead.created",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "lead": {
      "$id": "https://api.sb/leaseline.app/leads/lead_1",
      "$type": "Lead",
      "status": "new"
    }
  }
}
```

<a id="event-lead-nurtured"></a>

```json title="Lead.nurtured · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Lead.nurtured",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "lead": {
      "$id": "https://api.sb/leaseline.app/leads/lead_1",
      "$type": "Lead",
      "status": "new"
    }
  }
}
```

<a id="event-lead-qualified"></a>

```json title="Lead.qualified · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Lead.qualified",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "deal": {
      "$id": "https://api.sb/leaseline.app/deals/deal_1",
      "$type": "Deal",
      "status": "Open"
    },
    "lead": {
      "$id": "https://api.sb/leaseline.app/leads/lead_1",
      "$type": "Lead",
      "status": "new"
    }
  }
}
```

<a id="event-meeting-booked"></a>

```json title="Meeting.booked · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Meeting.booked",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "meeting": {
      "$id": "https://api.sb/leaseline.app/meetings/meeting_1",
      "$type": "Meeting",
      "at": "2026-10-22T12:00:00Z"
    }
  }
}
```

<a id="event-message-created"></a>

```json title="Message.created · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Message.created",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "message": {
      "$id": "https://api.sb/leaseline.app/messages/message_1",
      "$type": "Message",
      "medium": "email",
      "direction": "inbound",
      "body": "Example body"
    }
  }
}
```

<a id="event-message-scheduled"></a>

```json title="Message.scheduled · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Message.scheduled",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "message": {
      "$id": "https://api.sb/leaseline.app/messages/message_1",
      "$type": "Message",
      "medium": "email",
      "direction": "inbound",
      "body": "Example body"
    }
  }
}
```

<a id="event-metric-watched"></a>

```json title="Metric.watched · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Metric.watched",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "watch": {
      "$id": "https://api.sb/leaseline.app/watches/watch_1",
      "$type": "Watch",
      "selector": "Example selector",
      "url": "https://leaseline.app"
    },
    "metric": {
      "$id": "https://api.sb/leaseline.app/metrics/metric_1",
      "$type": "Metric",
      "query": "Example query",
      "status": "draft"
    }
  }
}
```

<a id="event-monitor-checked"></a>

```json title="Monitor.checked · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Monitor.checked",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "monitor": {
      "$id": "https://api.sb/leaseline.app/monitors/monitor_1",
      "$type": "Monitor",
      "kind": "internal",
      "target": "/health"
    }
  }
}
```

<a id="event-offer-published"></a>

```json title="Offer.published · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Offer.published",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "offer": {
      "$id": "https://api.sb/leaseline.app/offers/offer_1",
      "$type": "Offer",
      "price": {
        "amount": 29,
        "currency": "USD"
      }
    }
  }
}
```

<a id="event-offer-subscribed"></a>

```json title="Offer.subscribed · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Offer.subscribed",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "subscription": {
      "$id": "https://api.sb/leaseline.app/subscriptions/subscription_1",
      "$type": "Subscription",
      "status": "active"
    },
    "offer": {
      "$id": "https://api.sb/leaseline.app/offers/offer_1",
      "$type": "Offer",
      "price": {
        "amount": 29,
        "currency": "USD"
      }
    }
  }
}
```

<a id="event-offer-trialed"></a>

```json title="Offer.trialed · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Offer.trialed",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "subscription": {
      "$id": "https://api.sb/leaseline.app/subscriptions/subscription_1",
      "$type": "Subscription",
      "status": "active"
    },
    "offer": {
      "$id": "https://api.sb/leaseline.app/offers/offer_1",
      "$type": "Offer",
      "price": {
        "amount": 29,
        "currency": "USD"
      }
    }
  }
}
```

<a id="event-order-started"></a>

```json title="Order.started · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Order.started",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "order": {
      "$id": "https://api.sb/leaseline.app/orders/order_1",
      "$type": "Order",
      "total": {
        "amount": 29,
        "currency": "USD"
      },
      "status": "placed"
    }
  }
}
```

<a id="event-playmix-compiled"></a>

```json title="PlayMix.compiled · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "PlayMix.compiled",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "playMix": {
      "$id": "https://api.sb/leaseline.app/play-mixes/play_mix_1",
      "$type": "PlayMix",
      "version": 1,
      "plays": {},
      "compiledAt": "2026-10-22T12:00:00Z"
    }
  }
}
```

<a id="event-post-published"></a>

```json title="Post.published · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Post.published",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "post": {
      "$id": "https://api.sb/leaseline.app/posts/post_1",
      "$type": "Post",
      "format": "Example format",
      "status": "draft"
    }
  }
}
```

<a id="event-prospect-created"></a>

```json title="Prospect.created · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Prospect.created",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "prospect": {
      "$id": "https://api.sb/leaseline.app/prospects/prospect_1",
      "$type": "Prospect",
      "foundIn": "Example found in",
      "basis": "Example basis"
    }
  }
}
```

<a id="event-prospect-engaged"></a>

```json title="Prospect.engaged · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Prospect.engaged",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "lead": {
      "$id": "https://api.sb/leaseline.app/leads/lead_1",
      "$type": "Lead",
      "status": "new"
    },
    "prospect": {
      "$id": "https://api.sb/leaseline.app/prospects/prospect_1",
      "$type": "Prospect",
      "foundIn": "Example found in",
      "basis": "Example basis"
    }
  }
}
```

<a id="event-review-published"></a>

```json title="Review.published · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Review.published",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "review": {
      "$id": "https://api.sb/leaseline.app/reviews/review_1",
      "$type": "Review",
      "rating": 1,
      "status": "submitted"
    }
  }
}
```

<a id="event-tenant-provisioned"></a>

```json title="Tenant.provisioned · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Tenant.provisioned",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "tenant": {
      "$id": "https://api.sb/leaseline.app/tenants/tenant_1",
      "$type": "Tenant",
      "placement": "path",
      "apiVersion": "v2"
    }
  }
}
```

<a id="event-thing-related"></a>

```json title="Thing.related · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Thing.related",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "relationship": {
      "$id": "https://api.sb/leaseline.app/relationships/relationship_1",
      "$type": "Relationship",
      "predicate": "Example predicate",
      "inverse": "Example inverse"
    },
    "thing": {
      "$id": "https://api.sb/leaseline.app/things/thing_1",
      "$type": "Thing",
      "id": "Example id",
      "type": [
        "noun_1"
      ]
    }
  }
}
```

<a id="event-version-deployed"></a>

```json title="Version.deployed · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Version.deployed",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "version": {
      "$id": "https://api.sb/leaseline.app/versions/version_1",
      "$type": "Version",
      "fingerprint": "sha256:9f2c4e1a7b3d"
    }
  }
}
```

<a id="event-visitor-identified"></a>

```json title="Visitor.identified · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Visitor.identified",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "contact": {
      "$id": "https://api.sb/leaseline.app/contacts/contact_1",
      "$type": "Contact",
      "email": "dana@leaseline.app",
      "phone": "Example phone"
    },
    "visitor": {
      "$id": "https://api.sb/leaseline.app/visitors/visitor_1",
      "$type": "Visitor",
      "firstSeenAt": "2026-10-22T12:00:00Z"
    }
  }
}
```

<a id="event-waitlist-admitted"></a>

```json title="Waitlist.admitted · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Waitlist.admitted",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "leads": [
      {
        "$id": "https://api.sb/leaseline.app/leads/lead_1",
        "$type": "Lead",
        "status": "new"
      }
    ],
    "waitlist": {
      "$id": "https://api.sb/leaseline.app/waitlists/waitlist_1",
      "$type": "Waitlist",
      "invited": 1,
      "rank": "signup"
    }
  }
}
```

<a id="event-waitlist-joined"></a>

```json title="Waitlist.joined · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1",
  "$type": "Event",
  "name": "Waitlist.joined",
  "at": "2026-10-22T12:00:00Z",
  "seq": 1,
  "data": {
    "lead": {
      "$id": "https://api.sb/leaseline.app/leads/lead_1",
      "$type": "Lead",
      "status": "new"
    },
    "waitlist": {
      "$id": "https://api.sb/leaseline.app/waitlists/waitlist_1",
      "$type": "Waitlist",
      "invited": 1,
      "rank": "signup"
    }
  }
}
```

## Refuses when
| Check | Refuses | Fix | Then |
| --- | --- | --- | --- |
| [`suppressed-contact`](/code/refusals#check-suppressed-contact) | a send or Sequence step to a Contact on a Suppression, from any Play | Leave them out: run the List again, which drops every suppressed Contact. | <Op verb="Collection.query" /> |
| [`no-consent`](/code/refusals#check-no-consent) | a send or Sequence step whose purpose the Contact has given no Consent for | Record the Contact’s yes, with where they gave it, before the first send. | <Op verb="Consent.create" /> |

```json title="422 · sample"
{
  "type": "https://startupbuilder.dev/errors/refused",
  "title": "Refused",
  "status": 422,
  "detail": "Step two to Lakeside Rentals’ owner did not send: they asked us to stop on Oct 12.",
  "checks": [
    {
      "check": "suppressed-contact",
      "status": "fail",
      "observed": "Suppression suppression_6, unsubscribed 2026-10-12",
      "doc": "/code/refusals#check-suppressed-contact",
      "fix": "Leave them out: run the List again, which drops every suppressed Contact.",
      "then": "Collection.query"
    }
  ]
}
```


```json title="422 · sample"
{
  "type": "https://startupbuilder.dev/errors/refused",
  "title": "Refused",
  "status": 422,
  "detail": "Pinecrest Homes’ second visitor was not enrolled: no Consent on record for sales email.",
  "checks": [
    {
      "check": "suppressed-contact",
      "status": "pass"
    },
    {
      "check": "no-consent",
      "status": "fail",
      "observed": "no Consent for purpose sales-email",
      "doc": "/code/refusals#check-no-consent",
      "fix": "Record the Contact’s yes, with where they gave it, before the first send.",
      "then": "Consent.create"
    }
  ]
}
```

## Pauses when
| Stop | Pauses when | Fix | Then |
| --- | --- | --- | --- |
| [`kill-switch`](/code/refusals#stop-kill-switch) | you press it, or the injection Stop fires | Review what fired, then turn the Process back on. | <Op verb="Process.enable" /> |

```json title="Campaign.paused · kill-switch · Not live yet, gaps #2 · sample"
{
  "$id": "https://api.sb/leaseline.app/events/event_951",
  "$type": "Event",
  "name": "Campaign.paused",
  "at": "2026-10-19T16:45:00Z",
  "data": {
    "campaign": {
      "$id": "https://api.sb/leaseline.app/campaigns/cold-email",
      "$type": "Campaign"
    },
    "reason": {
      "limit": "kill-switch",
      "observed": "pressed by worker_1",
      "bound": "off",
      "window": "now"
    }
  }
}
```

## Plays that use it
| Play | What it does | Its Metric |
| --- | --- | --- |
| [Instant response](/plays/instant-response) | Answers every form and email within 5 minutes from your own pages, books the call, starts the trial or hands it to the right person. | `inbound-meeting-rate` |
| [Cold email](/plays/cold-email) | Writes first to people at companies that showed two fresh public reasons to talk, three short emails at most, and answers every reply by kind. | `positive-reply-rate` |
| [Warm intros](/plays/warm-intros) | Finds who already knows each company you want, and that person asks them first, from their own account, before any introduction. | `intro-acceptance-rate` |
| [Proof-of-work outreach](/plays/proof-of-work-outreach) | Sends each Prospect one finished piece of your product’s work, made from their own public data, in a plain email that asks for nothing. | `proof-reply-rate` |
| [LinkedIn outbound](/plays/linkedin-outbound) | Picks each day’s People on LinkedIn, drafts the connection note and the Messages, and queues them in your send tray; you press every send. | `linkedin-reply-rate` |
| [Outbound calling](/plays/outbound-calling) | A disclosed voice agent calls back anyone who asks within 60 seconds and answers your number; a person dials every cold call. | `callback-meeting-rate` |
| [Gifting](/plays/gifting) | Sends one gift the Person picks after two relevant touches at a live moment, with you approving each, and counts the Meetings it adds. | `gift-meetings-per-100` |
| [Lead reactivation](/plays/lead-reactivation) | Writes once to each old Lead nobody works, only when something new answers what they asked, from their last contact at the Startup. | `reactivated-pipeline` |
| [Lead nurture](/plays/lead-nurture) | Follows up each unbought Lead with notes keyed to what they did, most in month one, until they buy, reply or go quiet 90 days. | `nurture-conversion` |
| [Account visits](/plays/account-visits) | Finds the fitting companies behind visits to your own buying pages and writes to the right person there, from facts, never from the visit. | `visit-reply-lift` |
| [Product signals](/plays/product-signals) | Finds teams getting value on a free account and writes to the right person, citing only their own usage, after you approve the first send. | `pql-deal-rate` |
| [Buying committee](/plays/buying-committee) | Writes to 3 or more roles at each named company, one a week, and hands each engaged company to your AE within a day. | `committee-deal-lift` |
| [Waitlist interviews](/plays/signup-interviews) | Interviews each Waitlist signup with your disclosed agent, admits by fit under a published cap, and sends a result built on their company. | `interview-activation-rate` |

Cost only: it moves no Metric itself, and what it costs counts against each Play that uses it.

## Hub guides it deepens
| On startupbuilder.dev | Id | What it holds |
| --- | --- | --- |
| [Trigger](https://startupbuilder.dev/business/nouns/trigger) | `noun:trigger` | the record, its fields and every call on it |
| [Event](https://startupbuilder.dev/business/nouns/event) | `noun:event` | the record, its fields and every call on it |
| [Schedules](https://startupbuilder.dev/code/platform/schedules) | `capability:schedules` | the System, its capability and its calls |

## Example
| Leaseline, when | What happened | Cost (sample) |
| --- | --- | --- |
| 2026-10-19 | Lee at Northgate Rentals writes “Try us again in January” | — |
| 2027-01-05 | the Trigger fires inside its 14-day window, and the SDR agent writes once | $0.04 |