Get notified in real time when your org chart changes. ChartPull sends HTTP POST requests to your endpoint whenever employees are created, updated, deleted, or moved — powered by Svix for reliable delivery.
Webhooks require the Integrations add-on. During your 14-day trial, all workspaces have full access to webhook configuration.
A webhook is a way for ChartPull to notify your systems when something changes. Instead of constantly polling the ChartPull API to check for updates, you give ChartPull a URL, and it sends data to that URL whenever an event occurs. Think of it as a push notification for your backend.
Common use cases include syncing employee changes to your HRIS, triggering Slack alerts when someone changes teams, updating an internal directory, or logging org changes for compliance.
Go to Admin › Webhooks
Open ChartPull and navigate to Admin › Webhooks in the sidebar. You will see a list of existing webhooks (if any) and a button to create a new one.
Click "Add Webhook"
A form appears where you enter the webhook URL (the HTTPS endpoint on your server that will receive the events), and optionally give it a descriptive name.
Choose which events to receive
Select the event types you want. You can choose all 8 event types or just the ones relevant to your use case. For example, if you only care about manager changes, select just employee.manager_changed.
Copy your signing secret
ChartPull generates a unique signing secret for this webhook. Copy it and store it securely in your server’s environment variables. You will use this secret to verify that incoming requests are genuinely from ChartPull.
Save and test
Click "Save." ChartPull sends a test ping to your endpoint to verify it is reachable. If the test succeeds, the webhook status shows "Active." If it fails, check that your endpoint is publicly accessible and returns a 2xx status code.
HTTPS required
Webhook endpoints must use HTTPS. ChartPull will not send events to plain HTTP URLs. This protects your data in transit.ChartPull supports 8 event types. Each event fires when a specific change is detected during a sync or manual edit.
| Event type | When it fires |
|---|---|
| employee.created | A new employee appears in the org chart (new hire or manual add). |
| employee.deleted | An employee is removed from the org chart (departure or manual removal). |
| employee.updated | An employee’s core fields change (name, title, location, phone). |
| employee.manager_changed | An employee’s manager changes (reassignment or reorg). |
| employee.department_changed | An employee moves to a different department. |
| employee.dotted_line_added | A dotted-line reporting relationship is added. |
| employee.dotted_line_removed | A dotted-line reporting relationship is removed. |
| employee.custom_field_updated | A custom field value changes for an employee. |
Every webhook delivery is an HTTP POST request with a JSON body. The payload follows a consistent structure across all event types:
{
"type": "employee.manager_changed",
"timestamp": "2026-02-27T09:15:00.000Z",
"data": {
"employeeId": "emp_abc123",
"email": "sarah.chen@example.com",
"name": "Sarah Chen",
"changes": {
"previousManager": {
"id": "emp_def456",
"name": "David Park",
"email": "david.park@example.com"
},
"newManager": {
"id": "emp_ghi789",
"name": "Maria Lopez",
"email": "maria.lopez@example.com"
}
}
}
}Here are example payloads for the most commonly used event types:
{
"type": "employee.created",
"timestamp": "2026-02-27T09:15:00.000Z",
"data": {
"employeeId": "emp_new001",
"email": "alex.kim@example.com",
"name": "Alex Kim",
"title": "Software Engineer",
"department": "Engineering",
"manager": {
"id": "emp_mgr001",
"name": "James Wu",
"email": "james.wu@example.com"
}
}
}ChartPull’s webhook infrastructure is powered by Svix, a battle-tested webhook delivery service trusted by companies like Clerk, Vercel, and Liveblocks. This gives you enterprise-grade reliability without any effort on your part.
Verify signatures in production
Always verify webhook signatures in production. The Svix documentation provides code snippets for Node.js, Python, Go, Ruby, and more. ChartPull includes thesvix-id, svix-timestamp, and svix-signature headers on every request.