Event Types
Hermon emits real-time events for contract, payment, appointment, and lead activity. Every payload is wrapped in the standard envelope (id, event_type, occurred_at, organization_id, data). Below are the schemas and examples for each event type.
Contract Events
| Field | Type | Description |
|---|---|---|
| contract_id | string | UUID of the contract |
| contract_type | string | Contract type (e.g. STANDARD) |
| status | string | Current contract status (e.g. DRAFT, SENT, SIGNED) |
| total_value | number | null | Total contract value in major currency units |
| currency | string | ISO 4217 currency code (e.g. USD) |
| notes | string | null | Latest note on the contract |
| program | object | null | Associated program ({ id, name }) — null when unavailable |
| lead | object | Lead summary (see below) |
| closer | object | null | Assigned closer — null when unassigned |
| triager | object | null | Assigned triager — null when unassigned |
| setter | object | null | Assigned setter — null when unassigned |
| created_at | string | ISO 8601 timestamp of contract creation |
| updated_at | string | ISO 8601 timestamp of last update |
| sent_at | string | null | ISO 8601 timestamp of when the contract was sent |
| signed_at | string | null | ISO 8601 timestamp of signing — null until signed |
| custom_fields | object[] | Exposed custom fields (see below) |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the lead |
| first_name | string | Lead's first name |
| last_name | string | null | Lead's last name |
| full_name | string | Concatenated first + last name |
| string | Lead's email address | |
| phone_e164 | string | null | Phone number in E.164 format |
Each assigned-role object shares the same shape and is resolved from the matching Assigned role on the record (falling back to the linked lead, exactly as the setter is resolved). Any role that is unassigned is delivered as null.
| Field | Type | Description |
|---|---|---|
| id | string | User ID of the assigned team member |
| first_name | string | User's first name |
| last_name | string | User's last name |
| profile_image_url | string | null | URL of the user's profile image |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the custom field definition |
| label | string | Display label of the field |
| type | string | Field type (e.g. TEXT, NUMBER, SELECT, DATE) |
| options | string[] | null | Allowed options for SELECT-type fields, otherwise null |
| display_order | number | Ordering index of the field |
| visibility | string[] | Surfaces the field is exposed on |
| value | string | number | boolean | null | The record's value for this field |
Example Payload
{
"id": "evt_1712577600000_ab12cd34ef56",
"event_type": "CONTRACT_CREATED",
"occurred_at": "2026-04-08T12:00:00.000Z",
"organization_id": "org_2abc",
"data": {
"contract_id": "uuid-contract-123",
"contract_type": "STANDARD",
"status": "DRAFT",
"total_value": 5000.00,
"currency": "USD",
"notes": "Follow up before kickoff call",
"program": {
"id": "uuid-program-123",
"name": "12-Week Coaching"
},
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671"
},
"closer": {
"id": "user_2closer",
"first_name": "Hermon",
"last_name": "Closer",
"profile_image_url": "https://img.clerk.com/closer.png"
},
"triager": {
"id": "user_2triager",
"first_name": "Tina",
"last_name": "Triager",
"profile_image_url": null
},
"setter": {
"id": "user_2setter",
"first_name": "Sam",
"last_name": "Setter",
"profile_image_url": null
},
"created_at": "2026-04-08T12:00:00.000Z",
"updated_at": "2026-04-08T12:00:00.000Z",
"sent_at": null,
"signed_at": null,
"custom_fields": []
}
}Example Payload
{
"id": "evt_1712577600000_ab12cd34ef56",
"event_type": "CONTRACT_UPDATED",
"occurred_at": "2026-04-08T12:00:00.000Z",
"organization_id": "org_2abc",
"data": {
"contract_id": "uuid-contract-123",
"contract_type": "STANDARD",
"status": "DRAFT",
"total_value": 5000.00,
"currency": "USD",
"notes": "Follow up before kickoff call",
"program": {
"id": "uuid-program-123",
"name": "12-Week Coaching"
},
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671"
},
"closer": {
"id": "user_2closer",
"first_name": "Hermon",
"last_name": "Closer",
"profile_image_url": "https://img.clerk.com/closer.png"
},
"triager": {
"id": "user_2triager",
"first_name": "Tina",
"last_name": "Triager",
"profile_image_url": null
},
"setter": {
"id": "user_2setter",
"first_name": "Sam",
"last_name": "Setter",
"profile_image_url": null
},
"created_at": "2026-04-08T12:00:00.000Z",
"updated_at": "2026-04-08T12:00:00.000Z",
"sent_at": null,
"signed_at": null,
"custom_fields": []
}
}| Field | Type | Description |
|---|---|---|
| contract_id | string | UUID of the contract |
| contract_type | string | Contract type (e.g. STANDARD) |
| total_value | number | null | Total contract value in major currency units |
| currency | string | ISO 4217 currency code (e.g. USD) |
| status | string | Current contract status (e.g. SIGNED) |
| signed_at | string | ISO 8601 timestamp of signing |
| sent_at | string | null | ISO 8601 timestamp of when the contract was sent |
| created_at | string | ISO 8601 timestamp of contract creation |
| custom_fields | object[] | Exposed custom fields (see below) |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the lead |
| first_name | string | Lead's first name |
| last_name | string | null | Lead's last name |
| full_name | string | Concatenated first + last name |
| string | Lead's email address | |
| phone_e164 | string | null | Phone number in E.164 format |
| source | string | Lead source enum (e.g. LANDING_PAGE) |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the program |
| name | string | Program display name |
| price | number | Program price in major currency units |
| payment_type | string | PIF, INSTALMENT, SUBSCRIPTION, etc. |
| billing_interval | string | null | Billing cycle — null for one-time payments |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the subscription |
| billing_interval | string | Billing cycle (e.g. MONTHLY, WEEKLY) |
| amount_per_cycle | number | Amount charged per cycle in major currency units |
| currency | string | ISO 4217 currency code |
| status | string | Subscription status (e.g. ACTIVE, CANCELLED) |
| payment_provider | string | Payment provider (e.g. STRIPE) |
| billing_cycles_paid | number | Number of billing cycles successfully charged |
| total_collected | number | Total amount collected so far in major currency units |
| current_period_start | string | null | ISO 8601 start of current billing period |
| current_period_end | string | null | ISO 8601 end of current billing period |
| next_billing_date | string | null | ISO 8601 date of the next scheduled charge |
| started_at | string | null | ISO 8601 timestamp of when the subscription started |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the custom field definition |
| label | string | Display label of the field |
| type | string | Field type (e.g. TEXT, NUMBER, SELECT, DATE) |
| options | string[] | null | Allowed options for SELECT-type fields, otherwise null |
| display_order | number | Ordering index of the field |
| visibility | string[] | Surfaces the field is exposed on |
| value | string | number | boolean | null | The record's value for this field |
Example Payload
{
"id": "evt_1712577600000_cd34ef56ab12",
"event_type": "CONTRACT_SIGNED",
"occurred_at": "2026-04-08T12:00:00.000Z",
"organization_id": "org_2abc",
"data": {
"contract_id": "uuid-contract-123",
"contract_type": "STANDARD",
"total_value": 5000.00,
"currency": "USD",
"status": "SIGNED",
"signed_at": "2026-04-08T12:00:00.000Z",
"sent_at": "2026-04-08T11:00:00.000Z",
"created_at": "2026-04-08T10:00:00.000Z",
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671",
"source": "LANDING_PAGE"
},
"program": {
"id": "uuid-program-123",
"name": "12-Week Coaching",
"price": 5000.00,
"payment_type": "PIF",
"billing_interval": null
},
"subscription": {
"id": "uuid-sub-123",
"billing_interval": "MONTHLY",
"amount_per_cycle": 1500.00,
"currency": "USD",
"status": "ACTIVE",
"payment_provider": "STRIPE",
"billing_cycles_paid": 1,
"total_collected": 1500.00,
"current_period_start": "2026-04-08T12:00:00.000Z",
"current_period_end": "2026-05-08T12:00:00.000Z",
"next_billing_date": "2026-05-08T12:00:00.000Z",
"started_at": "2026-04-08T12:00:00.000Z"
},
"custom_fields": []
}
}Payment Events
| Field | Type | Description |
|---|---|---|
| payment_id | string | UUID of the payment |
| contract_id | string | UUID of the associated contract |
| program | object | null | Program the parent contract belongs to ({ id, name }) |
| type | string | Payment type (e.g. PIF, INSTALMENT, SUBSCRIPTION) |
| payment_provider | string | Payment provider (e.g. STRIPE, MANUAL) |
| status | string | Payment status (PAID, FAILED, REFUNDED) |
| amount | number | Net payment amount in major currency units |
| contracted_amount | number | null | Total contracted value in major units |
| amount_paid_on_contract | number | Sum of all PAID payments on the parent contract |
| mandate | object | null | Mandate backing installments ({ id, status, payment_provider, method }) |
| vat_rate | number | VAT rate applied (e.g. 0.21, or 0 when exempt) |
| vat_amount | number | VAT amount in major units, computed from amount |
| gross_amount | number | amount + vat_amount — what the customer was charged |
| vat_exempt | boolean | Whether VAT was waived for this payment |
| processor_fee_amount | number | null | Provider transaction fee in major units (null when unreported) |
| processor_fee_currency | string | null | Settlement currency of processor_fee_amount |
| currency | string | ISO 4217 currency code (e.g. USD) |
| due_date | string | null | ISO 8601 due date of the payment |
| paid_at | string | null | ISO 8601 timestamp of payment completion |
| failure_reason | string | null | Reason for failure (when status is FAILED) |
| billing_cycle_number | number | null | Billing cycle index for subscription payments |
| external_payment_id | string | null | Provider's own payment identifier |
| lead | object | Lead summary (see below) |
| billing_details | object | null | Checkout-time billing details (see below) |
| closer | object | null | Assigned closer — null when unassigned |
| triager | object | null | Assigned triager — null when unassigned |
| setter | object | null | Assigned setter — null when unassigned |
| refunded_at | string | null | ISO 8601 refund timestamp (payment.refunded only) |
| refund_reason | string | null | Reason for the refund (payment.refunded only) |
| created_at | string | ISO 8601 creation timestamp |
| updated_at | string | ISO 8601 last update timestamp |
| custom_fields | object[] | Exposed custom fields (see below) |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the lead |
| first_name | string | Lead's first name |
| last_name | string | null | Lead's last name |
| full_name | string | Concatenated first + last name |
| string | Lead's email address | |
| phone_e164 | string | null | Phone number in E.164 format |
| Field | Type | Description |
|---|---|---|
| business_name | string | null | Registered business name |
| address | string | Billing street address |
| zipcode | string | Postal / ZIP code |
| province | string | State / province |
| country | string | ISO country code |
| vat_number | string | null | VAT registration number |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the mandate |
| status | string | Mandate status (e.g. ACTIVE) |
| payment_provider | string | Provider backing the mandate |
| method | string | null | Payment method (e.g. card, sepa_debit) |
Each assigned-role object shares the same shape and is resolved from the matching Assigned role on the record (falling back to the linked lead, exactly as the setter is resolved). Any role that is unassigned is delivered as null.
| Field | Type | Description |
|---|---|---|
| id | string | User ID of the assigned team member |
| first_name | string | User's first name |
| last_name | string | User's last name |
| profile_image_url | string | null | URL of the user's profile image |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the custom field definition |
| label | string | Display label of the field |
| type | string | Field type (e.g. TEXT, NUMBER, SELECT, DATE) |
| options | string[] | null | Allowed options for SELECT-type fields, otherwise null |
| display_order | number | Ordering index of the field |
| visibility | string[] | Surfaces the field is exposed on |
| value | string | number | boolean | null | The record's value for this field |
Example Payload
{
"id": "evt_1712577600000_pay01paid02",
"event_type": "PAYMENT_PAID",
"occurred_at": "2026-04-08T12:15:00.000Z",
"organization_id": "org_2abc",
"data": {
"payment_id": "uuid-payment-123",
"contract_id": "uuid-contract-123",
"program": {
"id": "uuid-program-123",
"name": "12-Week Coaching"
},
"type": "INSTALMENT",
"payment_provider": "STRIPE",
"status": "PAID",
"amount": 1500.00,
"contracted_amount": 5000.00,
"amount_paid_on_contract": 1500.00,
"mandate": {
"id": "uuid-mandate-123",
"status": "ACTIVE",
"payment_provider": "STRIPE",
"method": "card"
},
"vat_rate": 0.21,
"vat_amount": 315.00,
"gross_amount": 1815.00,
"vat_exempt": false,
"processor_fee_amount": 44.85,
"processor_fee_currency": "USD",
"currency": "USD",
"due_date": "2026-04-08T00:00:00.000Z",
"paid_at": "2026-04-08T12:15:00.000Z",
"failure_reason": null,
"billing_cycle_number": 1,
"external_payment_id": "pi_3ABC",
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671"
},
"billing_details": {
"business_name": "Acme LLC",
"address": "123 Main St",
"zipcode": "94105",
"province": "CA",
"country": "US",
"vat_number": null
},
"closer": {
"id": "user_2closer",
"first_name": "Hermon",
"last_name": "Closer",
"profile_image_url": "https://img.clerk.com/closer.png"
},
"triager": {
"id": "user_2triager",
"first_name": "Tina",
"last_name": "Triager",
"profile_image_url": null
},
"setter": {
"id": "user_2setter",
"first_name": "Sam",
"last_name": "Setter",
"profile_image_url": null
},
"refunded_at": null,
"refund_reason": null,
"created_at": "2026-04-08T12:10:00.000Z",
"updated_at": "2026-04-08T12:15:00.000Z",
"custom_fields": []
}
}Example Payload
{
"id": "evt_1712577600000_pay01paid02",
"event_type": "PAYMENT_FAILED",
"occurred_at": "2026-04-08T12:15:00.000Z",
"organization_id": "org_2abc",
"data": {
"payment_id": "uuid-payment-123",
"contract_id": "uuid-contract-123",
"program": {
"id": "uuid-program-123",
"name": "12-Week Coaching"
},
"type": "INSTALMENT",
"payment_provider": "STRIPE",
"status": "FAILED",
"amount": 1500.00,
"contracted_amount": 5000.00,
"amount_paid_on_contract": 1500.00,
"mandate": {
"id": "uuid-mandate-123",
"status": "ACTIVE",
"payment_provider": "STRIPE",
"method": "card"
},
"vat_rate": 0.21,
"vat_amount": 315.00,
"gross_amount": 1815.00,
"vat_exempt": false,
"processor_fee_amount": 44.85,
"processor_fee_currency": "USD",
"currency": "USD",
"due_date": "2026-04-08T00:00:00.000Z",
"paid_at": null,
"failure_reason": "insufficient_funds",
"billing_cycle_number": 1,
"external_payment_id": "pi_3ABC",
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671"
},
"billing_details": {
"business_name": "Acme LLC",
"address": "123 Main St",
"zipcode": "94105",
"province": "CA",
"country": "US",
"vat_number": null
},
"closer": {
"id": "user_2closer",
"first_name": "Hermon",
"last_name": "Closer",
"profile_image_url": "https://img.clerk.com/closer.png"
},
"triager": {
"id": "user_2triager",
"first_name": "Tina",
"last_name": "Triager",
"profile_image_url": null
},
"setter": {
"id": "user_2setter",
"first_name": "Sam",
"last_name": "Setter",
"profile_image_url": null
},
"refunded_at": null,
"refund_reason": null,
"created_at": "2026-04-08T12:10:00.000Z",
"updated_at": "2026-04-08T12:15:00.000Z",
"custom_fields": []
}
}Example Payload
{
"id": "evt_1712577600000_pay01paid02",
"event_type": "PAYMENT_REFUNDED",
"occurred_at": "2026-04-08T12:15:00.000Z",
"organization_id": "org_2abc",
"data": {
"payment_id": "uuid-payment-123",
"contract_id": "uuid-contract-123",
"program": {
"id": "uuid-program-123",
"name": "12-Week Coaching"
},
"type": "INSTALMENT",
"payment_provider": "STRIPE",
"status": "REFUNDED",
"amount": 1500.00,
"contracted_amount": 5000.00,
"amount_paid_on_contract": 1500.00,
"mandate": {
"id": "uuid-mandate-123",
"status": "ACTIVE",
"payment_provider": "STRIPE",
"method": "card"
},
"vat_rate": 0.21,
"vat_amount": 315.00,
"gross_amount": 1815.00,
"vat_exempt": false,
"processor_fee_amount": 44.85,
"processor_fee_currency": "USD",
"currency": "USD",
"due_date": "2026-04-08T00:00:00.000Z",
"paid_at": "2026-04-08T12:15:00.000Z",
"failure_reason": null,
"billing_cycle_number": 1,
"external_payment_id": "pi_3ABC",
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671"
},
"billing_details": {
"business_name": "Acme LLC",
"address": "123 Main St",
"zipcode": "94105",
"province": "CA",
"country": "US",
"vat_number": null
},
"closer": {
"id": "user_2closer",
"first_name": "Hermon",
"last_name": "Closer",
"profile_image_url": "https://img.clerk.com/closer.png"
},
"triager": {
"id": "user_2triager",
"first_name": "Tina",
"last_name": "Triager",
"profile_image_url": null
},
"setter": {
"id": "user_2setter",
"first_name": "Sam",
"last_name": "Setter",
"profile_image_url": null
},
"refunded_at": "2026-04-08T12:20:00.000Z",
"refund_reason": "requested_by_customer",
"created_at": "2026-04-08T12:10:00.000Z",
"updated_at": "2026-04-08T12:15:00.000Z",
"custom_fields": []
}
}offset_days before it. Both share the same payload shape.| Field | Type | Description |
|---|---|---|
| payment_id | string | UUID of the payment |
| contract_id | string | UUID of the associated contract |
| type | string | Payment type (e.g. INSTALMENT, SUBSCRIPTION) |
| payment_provider | string | Payment provider (e.g. STRIPE, MANUAL) |
| status | string | Open payment status (DRAFT or PENDING) |
| amount | number | Payment amount in major currency units |
| currency | string | ISO 4217 currency code (e.g. USD) |
| due_date | string | ISO 8601 due date |
| billing_cycle_number | number | null | Billing cycle index for subscription payments |
| external_payment_id | string | null | Provider's own payment identifier |
| payment_link | string | null | Active hosted payment link, when one exists |
| lead | object | Lead summary (see below) |
| closer | object | null | Assigned closer — null when unassigned |
| triager | object | null | Assigned triager — null when unassigned |
| setter | object | null | Assigned setter — null when unassigned |
| offset_days | number | Days before due date the event fired (0 for due today) |
| fire_time_of_day | string | Configured time of day the reminder fired (e.g. 09:00) |
| created_at | string | ISO 8601 creation timestamp |
| updated_at | string | ISO 8601 last update timestamp |
| custom_fields | object[] | Exposed custom fields (see below) |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the lead |
| first_name | string | Lead's first name |
| last_name | string | null | Lead's last name |
| full_name | string | Concatenated first + last name |
| string | Lead's email address | |
| phone_e164 | string | null | Phone number in E.164 format |
Each assigned-role object shares the same shape and is resolved from the matching Assigned role on the record (falling back to the linked lead, exactly as the setter is resolved). Any role that is unassigned is delivered as null.
| Field | Type | Description |
|---|---|---|
| id | string | User ID of the assigned team member |
| first_name | string | User's first name |
| last_name | string | User's last name |
| profile_image_url | string | null | URL of the user's profile image |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the custom field definition |
| label | string | Display label of the field |
| type | string | Field type (e.g. TEXT, NUMBER, SELECT, DATE) |
| options | string[] | null | Allowed options for SELECT-type fields, otherwise null |
| display_order | number | Ordering index of the field |
| visibility | string[] | Surfaces the field is exposed on |
| value | string | number | boolean | null | The record's value for this field |
Example Payload
{
"id": "evt_1712577600000_due01today02",
"event_type": "PAYMENT_DUE_TODAY",
"occurred_at": "2026-04-08T09:00:00.000Z",
"organization_id": "org_2abc",
"data": {
"payment_id": "uuid-payment-456",
"contract_id": "uuid-contract-123",
"type": "INSTALMENT",
"payment_provider": "STRIPE",
"status": "PENDING",
"amount": 1500.00,
"currency": "USD",
"due_date": "2026-04-08T00:00:00.000Z",
"billing_cycle_number": 2,
"external_payment_id": null,
"payment_link": "https://pay.hermon.io/l/abc123",
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671"
},
"closer": {
"id": "user_2closer",
"first_name": "Hermon",
"last_name": "Closer",
"profile_image_url": "https://img.clerk.com/closer.png"
},
"triager": {
"id": "user_2triager",
"first_name": "Tina",
"last_name": "Triager",
"profile_image_url": null
},
"setter": {
"id": "user_2setter",
"first_name": "Sam",
"last_name": "Setter",
"profile_image_url": null
},
"offset_days": 0,
"fire_time_of_day": "09:00",
"created_at": "2026-04-01T12:00:00.000Z",
"updated_at": "2026-04-08T09:00:00.000Z",
"custom_fields": []
}
}Example Payload
{
"id": "evt_1712577600000_due01today02",
"event_type": "PAYMENT_DUE_UPCOMING",
"occurred_at": "2026-04-08T09:00:00.000Z",
"organization_id": "org_2abc",
"data": {
"payment_id": "uuid-payment-456",
"contract_id": "uuid-contract-123",
"type": "INSTALMENT",
"payment_provider": "STRIPE",
"status": "PENDING",
"amount": 1500.00,
"currency": "USD",
"due_date": "2026-04-08T00:00:00.000Z",
"billing_cycle_number": 2,
"external_payment_id": null,
"payment_link": "https://pay.hermon.io/l/abc123",
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671"
},
"closer": {
"id": "user_2closer",
"first_name": "Hermon",
"last_name": "Closer",
"profile_image_url": "https://img.clerk.com/closer.png"
},
"triager": {
"id": "user_2triager",
"first_name": "Tina",
"last_name": "Triager",
"profile_image_url": null
},
"setter": {
"id": "user_2setter",
"first_name": "Sam",
"last_name": "Setter",
"profile_image_url": null
},
"offset_days": 3,
"fire_time_of_day": "09:00",
"created_at": "2026-04-01T12:00:00.000Z",
"updated_at": "2026-04-08T09:00:00.000Z",
"custom_fields": []
}
}Appointment Events
| Field | Type | Description |
|---|---|---|
| appointment_id | string | UUID of the appointment |
| appointment_type | string | null | Event type name of the appointment |
| call_category | string | Call category (e.g. COACHING_CALL) |
| schedule_time | string | ISO 8601 scheduled time of the call |
| outcome | object | Logged outcome ({ id, name, role }) |
| no_show | boolean | Whether the lead failed to attend |
| source | string | Booking source (e.g. CALENDLY) |
| notes | string | null | Latest note on the appointment |
| host | object | null | Call host / closer — null when unassigned |
| setter | object | null | Assigned setter — null when unassigned |
| triager | object | null | Assigned triager — null when unassigned |
| lead | object | Lead summary (see below) |
| custom_fields | object[] | Exposed custom fields (see below) |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the outcome |
| name | string | Outcome display name |
| role | string | Outcome role (e.g. WON, NO_SHOW, FOLLOW_UP) |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the lead |
| first_name | string | Lead's first name |
| last_name | string | null | Lead's last name |
| full_name | string | Concatenated first + last name |
| string | Lead's email address | |
| phone_e164 | string | null | Phone number in E.164 format |
Each assigned-role object shares the same shape and is resolved from the matching Assigned role on the record (falling back to the linked lead, exactly as the setter is resolved). Any role that is unassigned is delivered as null.
| Field | Type | Description |
|---|---|---|
| id | string | User ID of the assigned team member |
| first_name | string | User's first name |
| last_name | string | User's last name |
| profile_image_url | string | null | URL of the user's profile image |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the custom field definition |
| label | string | Display label of the field |
| type | string | Field type (e.g. TEXT, NUMBER, SELECT, DATE) |
| options | string[] | null | Allowed options for SELECT-type fields, otherwise null |
| display_order | number | Ordering index of the field |
| visibility | string[] | Surfaces the field is exposed on |
| value | string | number | boolean | null | The record's value for this field |
Example Payload
{
"id": "evt_1712577600000_call01out02",
"event_type": "CALL_OUTCOME_LOGGED",
"occurred_at": "2026-04-08T13:00:00.000Z",
"organization_id": "org_2abc",
"data": {
"appointment_id": "uuid-appt-123",
"appointment_type": "Discovery Call",
"call_category": "COACHING_CALL",
"schedule_time": "2026-04-08T12:30:00.000Z",
"outcome": {
"id": "uuid-outcome-123",
"name": "Closed Won",
"role": "WON"
},
"no_show": false,
"source": "CALENDLY",
"notes": "Great fit, signed on the call",
"host": {
"id": "user_2closer",
"first_name": "Hermon",
"last_name": "Closer",
"profile_image_url": "https://img.clerk.com/closer.png"
},
"setter": {
"id": "user_2setter",
"first_name": "Sam",
"last_name": "Setter",
"profile_image_url": null
},
"triager": {
"id": "user_2triager",
"first_name": "Tina",
"last_name": "Triager",
"profile_image_url": null
},
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671"
},
"custom_fields": []
}
}Lead Events
| Field | Type | Description |
|---|---|---|
| lead | object | Lead summary (see below) |
| status | object | New sales status ({ id, name, role }) |
| setter | object | null | Assigned setter — null when unassigned |
| closer | object | null | Assigned closer — null when unassigned |
| triager | object | null | Assigned triager — null when unassigned |
| custom_fields | object[] | Exposed custom fields (see below) |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the lead |
| first_name | string | Lead's first name |
| last_name | string | null | Lead's last name |
| full_name | string | Concatenated first + last name |
| string | Lead's email address | |
| phone_e164 | string | null | Phone number in E.164 format |
| source | string | Lead source enum (e.g. LANDING_PAGE) |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the sales status |
| name | string | Status display name |
| role | string | Status role (e.g. NEW_LEAD, APPOINTMENT_BOOKED, WON) |
Each assigned-role object shares the same shape and is resolved from the matching Assigned role on the record (falling back to the linked lead, exactly as the setter is resolved). Any role that is unassigned is delivered as null.
| Field | Type | Description |
|---|---|---|
| id | string | User ID of the assigned team member |
| first_name | string | User's first name |
| last_name | string | User's last name |
| profile_image_url | string | null | URL of the user's profile image |
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the custom field definition |
| label | string | Display label of the field |
| type | string | Field type (e.g. TEXT, NUMBER, SELECT, DATE) |
| options | string[] | null | Allowed options for SELECT-type fields, otherwise null |
| display_order | number | Ordering index of the field |
| visibility | string[] | Surfaces the field is exposed on |
| value | string | number | boolean | null | The record's value for this field |
Example Payload
{
"id": "evt_1712577600000_lead01stat02",
"event_type": "LEAD_STATUS_CHANGED",
"occurred_at": "2026-04-08T14:00:00.000Z",
"organization_id": "org_2abc",
"data": {
"lead": {
"id": "uuid-lead-123",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"email": "john@example.com",
"phone_e164": "+14155552671",
"source": "LANDING_PAGE"
},
"status": {
"id": "uuid-status-123",
"name": "Appointment Booked",
"role": "APPOINTMENT_BOOKED"
},
"setter": {
"id": "user_2setter",
"first_name": "Sam",
"last_name": "Setter",
"profile_image_url": null
},
"closer": {
"id": "user_2closer",
"first_name": "Hermon",
"last_name": "Closer",
"profile_image_url": "https://img.clerk.com/closer.png"
},
"triager": {
"id": "user_2triager",
"first_name": "Tina",
"last_name": "Triager",
"profile_image_url": null
},
"custom_fields": []
}
}