Skip to main content

Client Events

Client events publish the current organization-configured Client data together with stable Sakneen identifiers.

Event types

EventEmitted when
client.createdA Client is created in Sakneen
client.updatedA Client is updated in Sakneen

Both use eventVersion: 1, resource.type: "client", and the Client's integration version as resource.version.

Client deletion

client.deleted is reserved in the subscription catalog but is not currently emitted.

Data contract

FieldTypeRequiredDescription
clientIdstringYesCanonical Sakneen Client identifier
clientCodenumberYesOrganization-scoped Sakneen Client code
Organization-configured fieldsJSON valuesVariesCurrent fields configured for the organization's Client record

The data object is a current-state snapshot, not a field-level diff. Custom Client fields can differ between Sakneen organizations.

The canonical clientId and clientCode values always override dynamic Client fields with the same names.

The payload does not include Sakneen user attribution, sales ownership, view configuration, or fields outside the external Client event contract.

client.created example

{
"eventId": "019c0ea7-6316-7ff2-a880-cf6a7a659a9e",
"eventType": "client.created",
"eventVersion": 1,
"occurredAt": "2026-07-30T10:30:00.000Z",
"source": "sakneen",
"organizationId": "64f1a0d6d5d0a14a5c0e8a10",
"correlationId": "019c0ea7-6316-7ab4-8be3-c2f5bca42287",
"resource": {
"type": "client",
"id": "64f1a0d6d5d0a14a5c0e8a20",
"version": 1
},
"data": {
"clientId": "64f1a0d6d5d0a14a5c0e8a20",
"clientCode": 1234,
"name": "Ahmed Ali",
"emailAddress": "[email protected]",
"phoneNumber": "+201000000000",
"phoneNumber2": "+201100000000"
}
}

client.updated example

{
"eventId": "019c0eb1-8038-7c97-985e-3d36c0272fa0",
"eventType": "client.updated",
"eventVersion": 1,
"occurredAt": "2026-07-30T10:45:00.000Z",
"source": "sakneen",
"organizationId": "64f1a0d6d5d0a14a5c0e8a10",
"correlationId": "019c0eb1-8038-77d2-b91f-b27761d7387c",
"resource": {
"type": "client",
"id": "64f1a0d6d5d0a14a5c0e8a20",
"version": 3
},
"data": {
"clientId": "64f1a0d6d5d0a14a5c0e8a20",
"clientCode": 1234,
"name": "Ahmed Aly",
"emailAddress": "[email protected]",
"phoneNumber": "+201000000000"
}
}

For update handling, replace your stored Client snapshot only when the incoming resource.version is newer than the version you have already processed.