Webhooks
Real-time notification of changes to Talent data.
Peoplelogic.dev uses webhooks to push data or notify your applications when certain events happen.
There are a few different types of webhooks to be aware of. You may find yourself using some, none, or all of these depending on your application and use case.
What can you listen for?
Everything that happens within the system can trigger a webhook. This means that no matter whether you're working directly with the API to store your OKRs or Meetings or if you're connecting through the API to one of our partners (such as BetterWorks), the webhooks function the same.
In addition to listening to all events for any of the objects we support, you can limit your events to just creation events (*.post) or update events (*.patch) or even deletes (*.delete). You can then further refine your webhooks by only listening to events that update certain fields:
{
"ifUpdates": ["currentValue"]
}
Webhook Signature Verification
Because webhooks send potentially sensitive data to a server you specify, you should always implement webhook verification. To get started - you need to use your Organization token (or a token with ORG_ADMIN permission) to create a new webhook key:
POST https://api.peoplelogic.dev/api/v1/webhook-key
Content-Type: application/json
Authorization: Bearer {{orgBearer}}
{
"name": "demo key"
}
If this succeeds, you'll get a 201 response code indicating that your first webhook key has been successfully created.
Sample response:
{
"id": "f6a1c9b2-0000-1111-2222-aaaaaaaaaaaa",
"name": "demo key",
"secretBase64": "YWJjMTIzIT8kKiYoKSctPUB+",
"default": true,
"createdAt": "2025-05-28T14:21:00Z"
}
The first signing key that you create will be the default one used for all webhooks. Keep that secret handy - you won't be able to retrieve it again!
For more information on actually validating your calls with that key - be sure to check out our tutorial on listening to Objective changes to send Slack notifications.
If you create more than one key, you can optionally specify which one to use in the calls below.
Creating a new webhook
Now we can get to work creating a new webhook. Let's make a webhook specifically to listen to all events on Objectives:
POST https://api.peoplelogic.dev/api/v1/webhook
Authorization: Bearer {{orgBearer}}
Content-Type: application/json
{
"name": "Objectives Hook",
"url": "http://localhost:9000/7a069348-58f2-4c30-a262-66d2098e00f5",
"eventType": "objective.*"
}
Again, you'll get a 201 response code indicating that the webhook was successfully created.
{
"id": "a9b8c7d6-3333-4444-5555-bbbbbbbbbbbb",
"eventType": "objective.*",
"ifUpdates": [],
"url": "http://localhost:9000/7a069348-58f2-4c30-a262-66d2098e00f5",
"signingKey": "f6a1c9b2-0000-1111-2222-aaaaaaaaaaaa",
"active": true,
"createdAt": "2025-05-28T14:22:00Z"
}
Now just sit back and wait for the events to roll in as you use the APIs!
Last updated
Was this helpful?