Webhooks
Webhook event types
On this page
- People
- person.hired
- person.updated
- person.job_changed
- person.terminated
- person.rehired
- person.erased
- Structure
- unit.created
- unit.updated
- unit.archived
- location.created
- location.updated
- location.archived
- legal_entity.created
- legal_entity.updated
- legal_entity.archived
- Members
- member.role_changed
- member.invited
- member.joined
- Positions
- position.created
- position.updated
- position.filled
- Approvals
- approval.decided
- Checklists
- checklist.started
- checklist.completed
- Documents
- document.added
- document.updated
- document.deleted
Every event type, with when Bizisy sends it, the fields of data and a payload example. Choose them per endpoint in Settings → Webhooks. Every event's data has organization_id; events about a record also carry its snapshot (public and job details only), filled in when each attempt is sent.
Settings → Webhooks also has Send test event, which sends a webhook.test event signed like any other.
People#
person.hired#
Someone was added with their first job (start_date may be in the future). When no manager was given and the team lead became the manager, manager_source is "team_lead" and manager_lead_unit_id the team.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
person_id | string | |
start_date | string | |
manager_source | "team_lead" | Only on some of these events (see the description). |
manager_lead_unit_id | string | Only on some of these events (see the description). |
person | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "person.hired",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"person_id": "p1",
"start_date": "2026-11-02",
"manager_source": "team_lead",
"manager_lead_unit_id": "<manager_lead_unit_id>",
"person": {
"id": "p1",
"name": "Ana Ferreira",
"given_name": "Ana",
"family_name": "Ferreira",
"preferred_name": null,
"work_email": "ana@acme.test",
"work_phone": "+351 210 000 000",
"pronouns": "she/her",
"status": "active",
"start_date": "2024-01-15",
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
},
"job": {
"id": "j1",
"valid_from": "2024-01-15",
"valid_to": null,
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"legal_entity": {
"id": "e1",
"name": "Acme Lda"
},
"employment_type": "full_time",
"fte": 1,
"reason": "hire",
"contract_type": "fixed_term",
"contract_end_date": "2026-01-14",
"probation_end_date": "2024-07-14",
"weekly_hours": 40,
"notice_period_days": 30,
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
}
},
"custom": [
{
"key": "t_shirt_size",
"label": "T-shirt size",
"type": "select",
"tier": "public",
"value": "M"
},
{
"key": "remote",
"label": "Remote allowance",
"type": "boolean",
"tier": "job",
"value": null
}
]
}
}
}person.updated#
Public or job details of a person changed: name, work email or phone, pronouns, photo, a public or job custom field, or a corrected job history row (job_id). A correction that defaulted the manager to the team lead (a CSV or org_setup_apply moving someone not started yet) carries manager_source "team_lead" and manager_lead_unit_id.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
person_id | string | |
job_id | string | Only on some of these events (see the description). |
manager_source | "team_lead" | Only on some of these events (see the description). |
manager_lead_unit_id | string | Only on some of these events (see the description). |
person | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "person.updated",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"person_id": "p1",
"job_id": "j1",
"manager_source": "team_lead",
"manager_lead_unit_id": "<manager_lead_unit_id>",
"person": {
"id": "p1",
"name": "Ana Ferreira",
"given_name": "Ana",
"family_name": "Ferreira",
"preferred_name": null,
"work_email": "ana@acme.test",
"work_phone": "+351 210 000 000",
"pronouns": "she/her",
"status": "active",
"start_date": "2024-01-15",
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
},
"job": {
"id": "j1",
"valid_from": "2024-01-15",
"valid_to": null,
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"legal_entity": {
"id": "e1",
"name": "Acme Lda"
},
"employment_type": "full_time",
"fte": 1,
"reason": "hire",
"contract_type": "fixed_term",
"contract_end_date": "2026-01-14",
"probation_end_date": "2024-07-14",
"weekly_hours": 40,
"notice_period_days": 30,
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
}
},
"custom": [
{
"key": "t_shirt_size",
"label": "T-shirt size",
"type": "select",
"tier": "public",
"value": "M"
},
{
"key": "remote",
"label": "Remote allowance",
"type": "boolean",
"tier": "job",
"value": null
}
]
}
}
}person.job_changed#
A job change was recorded from effective_date (title, team, manager, location, contract terms…). When no manager was given and the team lead became the manager, manager_source is "team_lead" and manager_lead_unit_id the team.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
person_id | string | |
effective_date | string | |
reason | string | |
manager_source | "team_lead" | Only on some of these events (see the description). |
manager_lead_unit_id | string | Only on some of these events (see the description). |
person | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "person.job_changed",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"person_id": "p1",
"effective_date": "2026-11-01",
"reason": "promotion",
"manager_source": "team_lead",
"manager_lead_unit_id": "<manager_lead_unit_id>",
"person": {
"id": "p1",
"name": "Ana Ferreira",
"given_name": "Ana",
"family_name": "Ferreira",
"preferred_name": null,
"work_email": "ana@acme.test",
"work_phone": "+351 210 000 000",
"pronouns": "she/her",
"status": "active",
"start_date": "2024-01-15",
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
},
"job": {
"id": "j1",
"valid_from": "2024-01-15",
"valid_to": null,
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"legal_entity": {
"id": "e1",
"name": "Acme Lda"
},
"employment_type": "full_time",
"fte": 1,
"reason": "hire",
"contract_type": "fixed_term",
"contract_end_date": "2026-01-14",
"probation_end_date": "2024-07-14",
"weekly_hours": 40,
"notice_period_days": 30,
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
}
},
"custom": [
{
"key": "t_shirt_size",
"label": "T-shirt size",
"type": "select",
"tier": "public",
"value": "M"
},
{
"key": "remote",
"label": "Remote allowance",
"type": "boolean",
"tier": "job",
"value": null
}
]
}
}
}person.terminated#
Employment ends after last_day (may be in the future).
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
person_id | string | |
last_day | string | |
person | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "person.terminated",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"person_id": "p1",
"last_day": "2026-12-31",
"person": {
"id": "p1",
"name": "Ana Ferreira",
"given_name": "Ana",
"family_name": "Ferreira",
"preferred_name": null,
"work_email": "ana@acme.test",
"work_phone": "+351 210 000 000",
"pronouns": "she/her",
"status": "active",
"start_date": "2024-01-15",
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
},
"job": {
"id": "j1",
"valid_from": "2024-01-15",
"valid_to": null,
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"legal_entity": {
"id": "e1",
"name": "Acme Lda"
},
"employment_type": "full_time",
"fte": 1,
"reason": "hire",
"contract_type": "fixed_term",
"contract_end_date": "2026-01-14",
"probation_end_date": "2024-07-14",
"weekly_hours": 40,
"notice_period_days": 30,
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
}
},
"custom": [
{
"key": "t_shirt_size",
"label": "T-shirt size",
"type": "select",
"tier": "public",
"value": "M"
},
{
"key": "remote",
"label": "Remote allowance",
"type": "boolean",
"tier": "job",
"value": null
}
]
}
}
}person.rehired#
A former employee starts a new employment on start_date. When no manager was given and the team lead became the manager, manager_source is "team_lead" and manager_lead_unit_id the team.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
person_id | string | |
start_date | string | |
manager_source | "team_lead" | Only on some of these events (see the description). |
manager_lead_unit_id | string | Only on some of these events (see the description). |
person | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "person.rehired",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"person_id": "p1",
"start_date": "2026-11-02",
"manager_source": "team_lead",
"manager_lead_unit_id": "<manager_lead_unit_id>",
"person": {
"id": "p1",
"name": "Ana Ferreira",
"given_name": "Ana",
"family_name": "Ferreira",
"preferred_name": null,
"work_email": "ana@acme.test",
"work_phone": "+351 210 000 000",
"pronouns": "she/her",
"status": "active",
"start_date": "2024-01-15",
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
},
"job": {
"id": "j1",
"valid_from": "2024-01-15",
"valid_to": null,
"title": "Engineer",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Head office"
},
"legal_entity": {
"id": "e1",
"name": "Acme Lda"
},
"employment_type": "full_time",
"fte": 1,
"reason": "hire",
"contract_type": "fixed_term",
"contract_end_date": "2026-01-14",
"probation_end_date": "2024-07-14",
"weekly_hours": 40,
"notice_period_days": 30,
"manager": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
}
},
"custom": [
{
"key": "t_shirt_size",
"label": "T-shirt size",
"type": "select",
"tier": "public",
"value": "M"
},
{
"key": "remote",
"label": "Remote allowance",
"type": "boolean",
"tier": "job",
"value": null
}
]
}
}
}person.erased#
A former employee's personal data was erased: delete what you keep about them.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
person_id | string |
Example payload
{
"type": "person.erased",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"person_id": "p1"
}
}Structure#
unit.created#
A division, department or team was created.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
unit_id | string | |
unit | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "unit.created",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"unit_id": "u2",
"unit": {
"id": "u2",
"name": "Engineering",
"kind": "department",
"parent_id": "u1",
"head": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
},
"archived": false,
"member_count": 4
}
}
}unit.updated#
A unit was renamed, moved or got a new team lead (head).
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
unit_id | string | |
unit | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "unit.updated",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"unit_id": "u2",
"unit": {
"id": "u2",
"name": "Engineering",
"kind": "department",
"parent_id": "u1",
"head": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
},
"archived": false,
"member_count": 4
}
}
}unit.archived#
A unit was archived.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
unit_id | string | |
unit | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "unit.archived",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"unit_id": "u2",
"unit": {
"id": "u2",
"name": "Engineering",
"kind": "department",
"parent_id": "u1",
"head": {
"id": "p2",
"name": "Rui Costa",
"title": "CTO"
},
"archived": false,
"member_count": 4
}
}
}location.created#
A location was created.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
location_id | string | |
location | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "location.created",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"location_id": "l1",
"location": {
"id": "l1",
"name": "Head office",
"country": "PT",
"city": "Lisboa",
"timezone": "Europe/Lisbon",
"remote": false,
"archived": false
}
}
}location.updated#
A location changed.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
location_id | string | |
location | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "location.updated",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"location_id": "l1",
"location": {
"id": "l1",
"name": "Head office",
"country": "PT",
"city": "Lisboa",
"timezone": "Europe/Lisbon",
"remote": false,
"archived": false
}
}
}location.archived#
A location was archived.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
location_id | string | |
location | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "location.archived",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"location_id": "l1",
"location": {
"id": "l1",
"name": "Head office",
"country": "PT",
"city": "Lisboa",
"timezone": "Europe/Lisbon",
"remote": false,
"archived": false
}
}
}legal_entity.created#
A legal entity (employing company) was created.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
legal_entity_id | string | |
legal_entity | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "legal_entity.created",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"legal_entity_id": "e1",
"legal_entity": {
"id": "e1",
"legal_name": "Acme Lda",
"country": "PT",
"tax_id": null,
"archived": false
}
}
}legal_entity.updated#
A legal entity changed.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
legal_entity_id | string | |
legal_entity | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "legal_entity.updated",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"legal_entity_id": "e1",
"legal_entity": {
"id": "e1",
"legal_name": "Acme Lda",
"country": "PT",
"tax_id": null,
"archived": false
}
}
}legal_entity.archived#
A legal entity was archived.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
legal_entity_id | string | |
legal_entity | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "legal_entity.archived",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"legal_entity_id": "e1",
"legal_entity": {
"id": "e1",
"legal_name": "Acme Lda",
"country": "PT",
"tax_id": null,
"archived": false
}
}
}Members#
member.role_changed#
A member's role changed (owner, admin, hr, viewer or member).
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
membership_id | string | |
person_id | string | null | |
role | string | |
previous_role | string |
Example payload
{
"type": "member.role_changed",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"membership_id": "m2",
"person_id": "p1",
"role": "member",
"previous_role": "<previous_role>"
}
}member.invited#
A person was invited to sign in, with the role the invite grants.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
person_id | string | |
role | string |
Example payload
{
"type": "member.invited",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"person_id": "p1",
"role": "member"
}
}member.joined#
A person accepted their invite: their login exists now.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
person_id | string | |
membership_id | string |
Example payload
{
"type": "member.joined",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"person_id": "p1",
"membership_id": "m2"
}
}Positions#
position.created#
An open position was opened or put on hold for the first time (drafts send nothing until they open). Never its budget or notes.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
position_id | string | |
position | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "position.created",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"position_id": "pos1",
"position": {
"id": "pos1",
"title": "Data Engineer",
"status": "open",
"reason": "replacement",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Lisbon"
},
"legal_entity": {
"id": "e1",
"name": "Acme Lda"
},
"reports_to_position": null,
"contract_type": "permanent",
"weekly_hours": 40,
"target_start_date": "2026-12-01",
"filled_on": null,
"created_at": "2026-10-04T10:00:00.000Z",
"updated_at": "2026-10-04T10:00:00.000Z",
"reports_to_person": {
"id": "p1",
"name": "Ana Ferreira",
"title": "CTO"
},
"filled_by": null
}
}
}position.updated#
An open position changed: its details, its status (open, on hold, cancelled, reopened) or who it reports to.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
position_id | string | |
position | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "position.updated",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"position_id": "pos1",
"position": {
"id": "pos1",
"title": "Data Engineer",
"status": "open",
"reason": "replacement",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Lisbon"
},
"legal_entity": {
"id": "e1",
"name": "Acme Lda"
},
"reports_to_position": null,
"contract_type": "permanent",
"weekly_hours": 40,
"target_start_date": "2026-12-01",
"filled_on": null,
"created_at": "2026-10-04T10:00:00.000Z",
"updated_at": "2026-10-04T10:00:00.000Z",
"reports_to_person": {
"id": "p1",
"name": "Ana Ferreira",
"title": "CTO"
},
"filled_by": null
}
}
}position.filled#
Someone was hired into an open position (person_id; person.hired is sent too).
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
position_id | string | |
person_id | string | |
position | object | null | The record as it is when the attempt is sent: public and job details only. null when it no longer exists. |
Example payload
{
"type": "position.filled",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"position_id": "pos1",
"person_id": "p1",
"position": {
"id": "pos1",
"title": "Data Engineer",
"status": "open",
"reason": "replacement",
"unit": {
"id": "u2",
"name": "Engineering"
},
"location": {
"id": "l1",
"name": "Lisbon"
},
"legal_entity": {
"id": "e1",
"name": "Acme Lda"
},
"reports_to_position": null,
"contract_type": "permanent",
"weekly_hours": 40,
"target_start_date": "2026-12-01",
"filled_on": null,
"created_at": "2026-10-04T10:00:00.000Z",
"updated_at": "2026-10-04T10:00:00.000Z",
"reports_to_person": {
"id": "p1",
"name": "Ana Ferreira",
"title": "CTO"
},
"filled_by": null
}
}
}Approvals#
approval.decided#
A job change or termination request was approved (the change applied: its person event is sent too) or rejected (status). Nothing is sent while a request waits or when it is withdrawn; pay change requests send no webhook.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
approval_id | string | |
person_id | string | |
kind | "job_change" | "termination" | |
status | "approved" | "rejected" |
Example payload
{
"type": "approval.decided",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"approval_id": "ap1",
"person_id": "p1",
"kind": "job_change",
"status": "approved"
}
}Checklists#
checklist.started#
An onboarding, offboarding or custom checklist started for a person (run_id, person_id, kind).
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
run_id | string | |
person_id | string | |
kind | "onboarding" | "offboarding" | "custom" |
Example payload
{
"type": "checklist.started",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"run_id": "r1",
"person_id": "p1",
"kind": "onboarding"
}
}checklist.completed#
Every task of a checklist is done or skipped (run_id, person_id, kind).
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
run_id | string | |
person_id | string | |
kind | "onboarding" | "offboarding" | "custom" |
Example payload
{
"type": "checklist.completed",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"run_id": "r1",
"person_id": "p1",
"kind": "onboarding"
}
}Documents#
document.added#
A company or person document was added (document_id, subject, person_id). Never its title, file name or category.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
document_id | string | |
subject | "person" | "company" | |
person_id | string | null |
Example payload
{
"type": "document.added",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"document_id": "d1",
"subject": "person",
"person_id": "p1"
}
}document.updated#
A document's details or who can see it changed (document_id, subject, person_id).
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
document_id | string | |
subject | "person" | "company" | |
person_id | string | null |
Example payload
{
"type": "document.updated",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"document_id": "d1",
"subject": "person",
"person_id": "p1"
}
}document.deleted#
A document and its file were deleted (document_id, subject, person_id). Delete any copy you keep.
data field | Type | Notes |
|---|---|---|
organization_id | string | Your company's id. |
document_id | string | |
subject | "person" | "company" | |
person_id | string | null |
Example payload
{
"type": "document.deleted",
"timestamp": "2026-10-05T10:00:00.000Z",
"data": {
"organization_id": "01k5q8m2v3c4d5e6f7g8h9j0ka",
"document_id": "d1",
"subject": "person",
"person_id": "p1"
}
}Something missing or wrong on this page? Write to hello@bizisy.com.