Skip to content

Renewal.opened

Emitted each time a Renewal is opened.

Renewal.open emits Renewal.opened when it completes on a Renewal.

PropertyValue
Emitted byRenewal.open
NounRenewal
WakesNone.

Payload

Each delivery is an Event record. data holds what Renewal.open returns.

FieldTypeRequiredDescription
namestringrequiredRenewal.opened.
atdatetimerequiredWhen it happened.
seqintegerIts position in the namespace, one more than the Event before; any seq is a cursor into the history.
datajsonrequiredThe Thing as the Action left it.
data.renewalRenewalrequiredThe open Renewal.
data.renewal.statusstringrequiredOne of Open, Qualified, Proposed, Won, or Lost.
data.renewal.valuemoneyWhat the Deal is worth if won.
data.renewal.ownerWorkerThe Worker who runs it.
data.renewal.closesOndateThe date the buyer expects to decide.
data.renewal.statusSincedatetimeWhen it entered its current status, computed from its Events.
data.renewal.nextSteptextThe next dated step agreed with the buyer.
data.renewal.termEndsAtdatetimerequiredWhen the current term ends, read from the Subscription.
data.renewal.openedAtdatetimerequiredWhen it opened: by default 90 days before the term ends.
data.renewal.usageReviewtextUsage against each Entitlement over the term, written before any Quote.
data.renewal.noticeSentAtdatetimeWhen the renewal notice the legal floor requires went out, with the date, Price and cancel link.
data.renewal.saveOffertextThe one save offer shown on cancel; it never blocks the cancel.
data.renewal.outcomestringOne of renewed, expanded, contracted, or churned, computed from the Subscription’s Events at the term end.

Example

JSON
{
  "$id": "https://api.sb/tutorloop.com/events/event_1",
  "$type": "Event",
  "name": "Renewal.opened",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "renewal": {
      "$id": "https://api.sb/tutorloop.com/renewals/renewal_1",
      "$type": "Renewal",
      "status": "Open",
      "value": {
        "amount": 60,
        "currency": "USD"
      },
      "owner": "worker_1",
      "closesOn": "2026-10-22",
      "statusSince": "2026-10-22T12:00:00Z",
      "nextStep": "Example next step",
      "termEndsAt": "2026-10-22T12:00:00Z",
      "openedAt": "2026-10-22T12:00:00Z",
      "usageReview": "Example usage review",
      "noticeSentAt": "2026-10-22T12:00:00Z",
      "saveOffer": "Example save offer",
      "outcome": "renewed"
    }
  },
  "seq": 1
}