Webhooks let an external service receive real-time push notifications whenever data in Workpath changes — so you can keep a data warehouse, BI tool, or custom dashboard in sync with your Goals, Key Results, and Initiatives without polling the Connect API.
You register an HTTPS endpoint and choose which events to subscribe to. Whenever a matching event occurs, Workpath sends a signed JSON request to your endpoint.
Note: The Webhooks API is currently in beta — usable now, but endpoint URLs, payload shapes, and behaviour may still change.
Before you start
- Only users with the admin role can create and manage webhook subscriptions.
- Your endpoint must be served over HTTPS — plain HTTP URLs are rejected.
Create a webhook subscription
- Go to Settings → Integrations → Webhooks.
- Click Add webhook.
- Enter a Title — a label describing what the webhook is for.
- Enter the Endpoint URL — the HTTPS address Workpath should send events to.
- Select the Events you want to subscribe to (see below).
- Make sure Active is on, then click Save.
You can edit a subscription at any time, switch Active off to pause delivery without deleting it, or delete it entirely.
Available events
You can subscribe to created, updated, and deleted events for Goals, Key Results, and Initiatives:
-
Goals —
goal.created,goal.updated,goal.deleted -
Key Results —
key_result.created,key_result.updated,key_result.deleted -
Initiatives —
initiative.created,initiative.updated,initiative.deleted
Update events fire only when an entity's own properties change (such as title, description, dates, progress, or confidence). Relation-only changes — like owner reassignments, label updates, or alignment links — do not trigger a webhook.
Verifying and processing events
Every request Workpath sends is signed, so your endpoint can confirm it genuinely came from Workpath before acting on it. Each delivery also carries an event ID you can use to safely ignore duplicate deliveries from retries.
The event payload contains the entity's core fields. To fetch related data, look the entity up via the Connect API.
Technical documentation
For the full technical details — payload format, signature verification, the public-key endpoint, retry behaviour, and a ready-to-run example listener — see the developer documentation: