Upstream webhooks
Kombo can subscribe to webhooks of the systems that your customers connect. We call this feature upstream webhooks. This document explains how they work and how you can leverage them.
Please be aware that this page covers upstream webhooks. These are webhooks that Kombo receives from the connected ATS/HRIS such as Personio or Recruitee. If you try to understand webhooks that Kombo sends to your system for new integrations or finished syncs, check out this page.
Concept
Kombo can subscribe to webhooks of the systems that your customers connect. We call this feature upstream webhooks. The goal of this system is to enable you to receive data in real-time without waiting for a normal sync to complete.
Setup
Upstream webhooks are available for a limited set of integrations as not all integrations support them yet. You can check out the coverage grid to understand which integrations support this feature.
The feature is by default on your environment but you also need to enable the feature in the scope config to use it.
Toggle this setting in the scope config on the dashboard.
This is what the end-customer will see in the connection flow.
When this setting is enabled, Kombo will call the connected system’s API to subscribe to the webhook. You can manage the webhook subscription in the Kombo dashboard as well.
End-Customer Experience
For most integrations, the end-customer only needs to grant a permission to the credentials to allow us to subscribe to webhooks.
Kombo will also diligently only subscribe to webhook event types that are compliant with the scope config. For example, if you disable candidates and only care about jobs, we will not subscribe to any candidate events.
Implementation Guide
This feature enables you to sync data in real-time to wait for a normal Kombo sync to complete. Kombo enables this by subscribing to the webhooks of the ATS/HRIS and then informing you about a handled event.
Set up the downstream event in the webhook config in the Kombo dashboard.
Reacting to the downstream event can be handled in the exact same way you would handle
sync-finished events. After receiving the event, you can call the Kombo API
with the updated_after
filter to only get entries that have changed since your
last sync with Kombo.
You can usually expect to receive events from the connected system within 10-20 seconds. Most systems take a few seconds before they send the webhook to Kombo.
Kombo will retry the request to your system for up to 5 times with exponential backoff.
Upstream webhooks in combination with syncs
Webhooks don’t replace syncs. They are a complement to syncs for getting data in real-time. Certain data models, integrations, or events might not support webhooks, so we will still rely on syncs for those.
When running faster sync frequencies (e.g. <10 minutes), we will reduce the sync frequency to the standard sync time - every 3 hours - for integrations where webhooks are used. Please reach out to Kombo in case this affects you.
Troubleshooting
Check out the logs in the Kombo dashboard to see every webhook event that we receive. The downstream request will also be logged there with any warnings or errors that we encountered while processing or forwarding the event.