Linking Deel as a source
Let AI connect your sources for you
Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Contents
This source is currently in alpha. The interface and available tables may change.
The Deel connector automatically pulls your Deel workforce and payroll data into the PostHog data warehouse.
Adding a data source
- Go to the sources tab of the data pipeline section in PostHog.
- Click + New source and then click Link next to Deel.
- You need a Deel API token. In your Deel admin console, go to Settings and create an organization API token. Enable the read scope for each dataset you want to sync (see required scopes below).
- Back in PostHog, enter the token in the API token field and click Next.
- Select the tables you want to sync, set the sync method and frequency, then click Import.
Once the syncs are complete, you can start using Deel data in PostHog.
Use an organization API token rather than a personal API token. Personal tokens expire when the user leaves the organization, which causes syncs to fail.
Available tables
| Table | Description | Sync method |
|---|---|---|
people | Employee and contractor records | Full refresh |
contracts | Contract details for workers | Full refresh |
invoices | Invoice records | Full refresh |
invoice_adjustments | Adjustments made to invoices | Full refresh |
it_seats | IT seat assignments for workers | Full refresh |
it_clearance_requests | Device clearance request records | Full refresh |
time_off_policies | Time-off policy configurations | Full refresh |
equity_awards | Equity award records | Full refresh |
Full refresh tables sync all records on each run. Deel's API doesn't expose updated-since filters for these resources.
Required scopes
Deel API tokens are scoped per dataset. Your token needs the read permission for each table you want to sync. If a scope is missing, that specific table fails with a permissions error while other tables continue to sync normally.
| Table | Required scope |
|---|---|
people | people:read |
contracts | contracts:read |
invoices | invoices:read |
invoice_adjustments | invoice_adjustments:read |
it_seats | it-seats:read |
it_clearance_requests | it-service-requests:read |
time_off_policies | time-off:read |
equity_awards | equities:read |
Configuration
| Option | Type | Required |
|---|---|---|
API token | password | Yes |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
people | A worker in the organization — an employee or contractor managed in Deel. | Full refresh | — | — |
contracts | A work agreement between the organization and a worker in Deel. | Full refresh | — | — |
invoices | An invoice issued for a contract or payroll cycle in Deel. | Full refresh | — | — |
invoice_adjustments | An adjustment (bonus, deduction, expense, etc.) applied to a Deel invoice. | Full refresh | — | — |
timesheets | A time entry submitted against a Deel contract, used to bill hourly and pay-as-you-go work. | Full refresh | — | — |
payments | A payment made to Deel, covering the invoices settled in one transaction. | Full refresh | — | — |
payment_breakdowns | One contract's share of a payment, split into work, bonuses, expenses and fees. | Full refresh | — | — |
legal_entities | A legal entity in the organization that contracts and invoices are issued under. | Full refresh | — | — |
cost_centers | A cost center defined on a legal entity, used to book worker costs. | Full refresh | — | — |
time_offs | A time-off request made by a worker, with the days it covers. | Full refresh | — | — |
time_off_events | A lifecycle event on a worker's time-off policy, such as a birth or adoption that triggers leave. | Full refresh | — | — |
departments | A department in the organization's structure, used to group workers on people rows. | Full refresh | — | — |
teams | A team within the organization, used to group workers on people rows. | Full refresh | — | — |
groups | A group in the organization, used to organize workers and assign managers. | Full refresh | — | — |
onboarding_tracker | The onboarding state of a worker joining the organization. | Full refresh | — | — |
offboarding_tracker | The offboarding state of a worker leaving the organization. | Full refresh | — | — |
payroll_cycles | A payroll cycle run for a legal entity, and whether a gross-to-net report exists for it. | Full refresh | — | — |
payroll_reports | A global payroll event for a legal entity, with the period it covers and its status. | Full refresh | — | — |
payroll_gross_to_net | The gross-to-net cost breakdown for one contract in a payroll cycle. | Full refresh | — | — |
countries | A country Deel supports, and what it supports there — the lookup behind country codes on contracts and people. | Full refresh | — | — |
currencies | A currency Deel supports — the lookup behind currency codes on contracts, invoices and payments. | Full refresh | — | — |
job_titles | A job title Deel recognizes — the lookup behind job title ids on contracts and people. | Full refresh | — | — |
seniorities | A seniority level Deel recognizes — the lookup behind seniority ids on contracts. | Full refresh | — | — |
it_seats | A seat in the organization's Deel IT seat subscription, and the worker holding it. | Full refresh | — | — |
it_clearance_requests | A request the organization raised to retire a device for resale value or certified data erasure. | Full refresh | — | — |
time_off_policies | A time-off policy configured for the organization, with its allowances and tracking rules. | Full refresh | — | — |
equity_awards | An equity award granted by the organization, as ingested from Shareworks. | Full refresh | — | — |