Event Glossary

A reference for all webhook events emitted by Knit during syncs, bot / chat integrations, and record changes. Use these events to build real-time, event-driven integrations.

Knit uses webhook events to notify your server about changes in connected applications - such as new or modified employee records, sync progress, and bot/chat activity for communication apps.

Each event is delivered as a POST request to your configured webhook URL.

For details on verifying that a webhook is genuinely from Knit, see Authenticating Webhooks.

Record Events

These events track changes to individual records (e.g., employees in HRIS integrations, candidates in ATS integrations, deals in CRM integrations, etc.) in the connected application.

Here is a list of events you can expect in Knit Webhooks

Event IDEvent DescriptionNotes
record.newFired when a new record is encountered during a syncDuring an initial sync All active records are treated as new records. This gives you a complete baseline dataset to start with.
record.modifiedFired when an existing record has changed in the origin system.If any of the subscribed data fields / watch fields change for a record you will receive a record.modified event.
record.deletedFired when either an active record is marked as inactive in the origin system (ex: terminated employee) or an active record is no longer present in the origin system.Two distinct scenarios trigger this event: soft deletes (inactive status) and hard deletes (record removed). Handle both cases in your integration.

Sync Lifecycle Events

Event IDEvent DescriptionNotes
sync.heartbeatFired every 90 seconds during a long-running sync to indicate progressContains the count of records processed so far. Useful for monitoring long-running syncs.
sync.events.processedFired when a sync completes. And all the events have been emitted by Knit for a syncThis event will also contain count of records processed and events emitted. This event is always emitted, even if there are no new events to emit. So, use this track when your sync runs complete.
sync.events.allConsumedFired when all the events emitted during a sync have been consumed by your webhook.We mark an event as consumed once we receive an HTTP Response of status 200 from the webhook. See retry behavior below.
sync.failedFired when a sync run failsThis is a terminal event - if fired, neither sync.events.processed nor sync.events.allConsumed will be emitted for that sync run.

Webhook Retry Behavior

If your webhook returns a non-200 status, or if the connection is refused or closed, Knit will retry delivery multiple times over a 4-day window. Make sure your endpoint is idempotent to handle potential duplicate deliveries.


Typical Sync Event Sequence

To help you understand the order in which events fire during a normal sync:

record.new / record.modified / record.deleted
Fires per record change
↓
sync.events.processed
Fires when the sync run completes
↓
sync.events.allConsumed
Fires when all events are acknowledged by your webhook

Bot Events (Only For Communication App Integrations)

These events are fired when a bot (used in Communication integrations) is installed or uninstalled in a connected workspace.


Event IDDescriptionNotes
bot.installedFired after a bot has been installed in Teams or Slack workspace.You can only start using Knit's Communication APIs after receiving this event.
bot.uninstalledFired after a bot has been uninstalled from a Slack workspace or teams