We are improving how you fetch data from Kombo. If you are looking for the old
guide, please visit Syncing Data (Old Approach). If you
are looking to migrate to the new approach, please visit Migrate to Data
Changed.
- Listen to our data-changed webhook to receive notifications of data changes.
- Fetch only updated data.
- Periodically fetch all data to fully align your dataset and correct any potential data drift.
- Combine both strategies for a setup that is robust and efficient.
Overview
Listening to data-changed webhook
We provide a webhook calleddata-changed
. This is sent to your system whenever data has changed inside Kombo. For example, after:
- We finish syncing (full or delta sync)
- We receive an update through upstream webhooks
/employees
endpoint to fetch both employees and their employments and team memberships.
Furthermore, after every successful fetch from us, store the timestamp of when the respective fetch started. Use this timestamp during your next fetch and pass it with your requests to the Kombo API as the updated_after
query parameter. Kombo will then only return the entries that changed since that timestamp.
Read more about this here.
Good to know: The updated_after
filter also considers changes in models that are returned by the endpoint as nested values. For example, the /employees
endpoint will include every employee that has had changes to related employments or team memberships, even if the employee profile itself did not change.
All models
You should call the endpoints you care about based on the models we tell you have changed. The following table shows endpoints connected to the relevant models that will be part of the data-changed webhook. We recommend the following approach:- Decide which endpoints are relevant for your use case (e.g., if your system is centered around employees, you primarily use Get employees).
- Map changed models to those endpoints using the table.
For instance, if both hris_employees and hris_employments are listed in the webhook, but you primarily care about employees, you only need to call Get employees, since employment and team membership data is included there too.
Endpoint | Models |
---|---|
Get absences | hris_absences hris_absence_types |
Get employees | hris_employees hris_employments hris_join_employees_teams hris_legal_entities hris_locations hris_teams hris_time_off_balances |
Get employments | hris_employments |
Get groups | hris_teams |
Get time off balances | hris_time_off_balances hris_absence_types |
Get timesheets | hris_timesheets |
Preventing Data Drift
In addition to fetching data from Kombo’s endpoints in response to receiving the data-changed webhook, we recommend running a periodic full data fetch for the data models you care about. In most cases, a 7-day schedule is ideal. This helps to remedy any drift that may occur in your data, e.g. from accidental manual changes or lost webhooks. To implement this, perform GET requests for the Kombo data models you care about without passing theupdated_after
query parameter. Then upsert the data returned by Kombo and merge it with your existing data copy.