Diamond: Class 2 not started
The student has not started class 2 in the expected time. The event is spyhub.diamond.class_2_not_initiated.
Example body
{
"version": "1",
"event": "spyhub.diamond.class_2_not_initiated",
"event_id": "01K5QW7M2Z3Y4X5W6V7U8T9S0R",
"data": {
"framework": {
"id": 0,
"email": {
"active": false,
"reply_to": "string",
"sender": "string",
"subject": "string",
"tags": [
"string"
],
"text": "string"
},
"links": {
"checkout": "https://example.com",
"class_1": "https://example.com",
"class_2": "https://example.com",
"class_3": "https://example.com",
"login": "https://example.com"
},
"sms": {
"active": false,
"message": "string"
},
"whatsapp": {
"active": false,
"message": "string"
}
},
"user": {
"id": 1042,
"access": {
"first_at": {
"iso": "2025-09-23T12:00:00-03:00",
"unix": "1758639600"
},
"last_at": {
"iso": "2025-09-23T12:00:00-03:00",
"unix": "1758639600"
}
},
"created": {
"at": {
"iso": "2025-09-23T12:00:00-03:00",
"unix": "1758639600"
}
},
"document": "string",
"email": "string",
"first_name": "Maria",
"magic_login_token": "string",
"magic_login_url": "https://example.com",
"name": "Maria Souza",
"phone": "string",
"src": {
"utm_campaign": "string",
"utm_content": "string",
"utm_medium": "string",
"utm_source": "string",
"utm_term": "string"
}
}
}
}Fields
| Field | Type | Required | Description |
|---|---|---|---|
version | string | yes | The payload version set in the webhook. One of 1, 2. |
event | string | yes | Always spyhub.diamond.class_2_not_initiated. |
event_id | string | yes | Unique id of the delivery (ULID). Retries of the same delivery keep it, so use it to ignore duplicates. |
data | object | yes | |
data.framework | object | yes | The funnel step: links for the messages and the channels configured for it. |
data.framework.id | integer | yes | The funnel. |
data.framework.email | object | yes | |
data.framework.email.active | boolean | yes | |
data.framework.email.reply_to | string | yes | |
data.framework.email.sender | string | null | yes | |
data.framework.email.subject | string | null | yes | |
data.framework.email.tags | array of string | yes | |
data.framework.email.text | string | null | yes | |
data.framework.links | object | yes | |
data.framework.links.checkout | string | null | yes | |
data.framework.links.class_1 | string | null | yes | |
data.framework.links.class_2 | string | null | yes | |
data.framework.links.class_3 | string | null | yes | |
data.framework.links.login | string | null | yes | |
data.framework.sms | object | yes | |
data.framework.sms.active | boolean | yes | |
data.framework.sms.message | string | yes | |
data.framework.whatsapp | object | yes | |
data.framework.whatsapp.active | boolean | yes | |
data.framework.whatsapp.message | string | yes | |
data.user | object | yes | The student in the funnel. |
data.user.id | integer | yes | |
data.user.access | object | yes | |
data.user.access.first_at | object | no | A point in time, as Unix seconds (a string) and ISO 8601 with the offset. Both are null when there is no date. |
data.user.access.first_at.iso | string | null | yes | |
data.user.access.first_at.unix | string | null | yes | |
data.user.access.last_at | object | no | A point in time, as Unix seconds (a string) and ISO 8601 with the offset. Both are null when there is no date. |
data.user.access.last_at.iso | string | null | yes | |
data.user.access.last_at.unix | string | null | yes | |
data.user.created | object | yes | |
data.user.created.at | object | no | A point in time, as Unix seconds (a string) and ISO 8601 with the offset. Both are null when there is no date. |
data.user.created.at.iso | string | null | yes | |
data.user.created.at.unix | string | null | yes | |
data.user.document | string | null | yes | |
data.user.email | string | null | yes | |
data.user.first_name | string | yes | |
data.user.magic_login_token | string | yes | The sign-in token used by magic_login_url. |
data.user.magic_login_url | string | yes | Link that signs the student in when opened. Treat it as a password. |
data.user.name | string | null | yes | |
data.user.phone | string | null | yes | |
data.user.src | object | yes | Attribution captured at sign-up. |
data.user.src.utm_campaign | string | null | no | |
data.user.src.utm_content | string | null | no | |
data.user.src.utm_medium | string | null | no | |
data.user.src.utm_source | string | null | no | |
data.user.src.utm_term | string | null | no |
Your endpoint answers with any 2xx status to confirm the delivery. See Deliveries and retries.