Skip to content

Enrollment.finished

A Contact passed the last step of a Sequence with no exit Event, so the run ends with exitReason finished.

PropertyValue
Raised byNo Verb: the runtime raises it
NounEnrollment
MovesEnrollment active to exited
WakesNone.

Payload

Each delivery is an Event record. data holds the Enrollment as it stands, and previous holds the state it left.

FieldTypeRequiredDescription
namestringrequiredEnrollment.finished.
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.enrollmentEnrollmentrequiredThe Enrollment as the change left it.
data.enrollment.statusstringrequiredWhere the run stands.
data.enrollment.stepstringrequiredThe Sequence step the person is on.
data.enrollment.nextAtdatetimeWhen the next step fires; empty while paused or exited.
data.enrollment.branchesstring[]The branches taken so far, in order.
data.enrollment.exitReasonstringWhy the run ended.
data.previous.statusstringrequiredThe status before this Event: active.

Example

JSON
{
  "$id": "https://api.sb/leaseline.app/events/evt_1A8LSZTwSf",
  "$type": "Event",
  "name": "Enrollment.finished",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "enrollment": {
      "$id": "https://api.sb/leaseline.app/enrollments/enrollment_t2LKaLorKn",
      "$type": "Enrollment",
      "status": "exited",
      "step": "Example step",
      "nextAt": "2026-10-22T12:00:00Z",
      "branches": [
        "Example branches"
      ],
      "exitReason": "replied"
    },
    "previous": {
      "status": "active"
    }
  },
  "seq": 1695
}