Linking HoorayHR as a source

Alpha release

This source is currently in alpha. The interface and available tables may change.

The HoorayHR connector syncs your HR data (employees, time off, sick leave, contracts, time tracking, and more) into the PostHog Data warehouse, so you can analyze it alongside your product data.

Prerequisites

You need the admin role in your HoorayHR company to create an API key. Personal API keys act as the user who created them.

Adding a data source

  1. In PostHog, go to the Sources tab of the data pipeline section.
  2. Click + New source and click Link next to this source.
  3. Enter your credentials (see Configuration below) and click Next.
  4. Select the tables you want to sync, choose a sync method and frequency, then click Import.

Once the syncs are complete, you can start querying this data in PostHog.

When linking HoorayHR, you'll need:

  • API key – in HoorayHR, go to Settings → API keys and click "New API key". The key (prefixed pk_) is shown only once, so copy it right away.

Sync modes

Each table can be synced in one of several modes, depending on what the source supports:

  • Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
  • Incremental – only new or updated rows are synced on each run, using a cursor field (such as an updated_at timestamp). Cheaper than a full refresh, but deletes aren't captured.
  • Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
  • Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.

See sync methods for a full explanation of how each mode works and how to choose between them.

This source is full-refresh only. HoorayHR's API exposes no pagination, cursors, or timestamp filters, so every table is fully re-synced on each run.

Configuration

OptionTypeRequired
API keypasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
users

An employee (or other user) in the HoorayHR company, with personal, contact, and employment details.

Full refresh
time_off

A time-off item: leave requests, holidays, overtime, and budget transactions.

Full refresh
leave_types

A leave type configured for the company (e.g. vacation, parental leave), including budget calculation rules.

Full refresh
contracts

An employment contract belonging to a user.

Full refresh
sick_leave_dossiers

A sick leave dossier for a user, grouping the phases of one continuous case of absence.

Full refresh
sick_leave_phases

A phase within a sick leave dossier, tracking (partial) absence over a period.

Full refresh
time_tracking

A time tracking entry: hours a user logged on a day, split into activities.

Full refresh
availability

A user's work schedule (availability), used to calculate leave budgets and calendar days.

Full refresh
entities

A legal entity of the company that users can belong to.

Full refresh
labels

A label used to categorize items across HoorayHR services (documents, workflows, time off, and more).

Full refresh
employment_terms

An employment term (e.g. salary, hours) that can be assigned to users.

Full refresh
employment_term_assignments

An assignment of an employment term to a user, with its value over a period.

Full refresh
document_categories

A document category. COMPANY categories hold shared documents; PERSONAL categories hold per-user documents.

Full refresh
work_location_categories

A work location category (e.g. office, home) users can select when indicating where they work.

Full refresh
teams_information

A team in the company, with its leaders and members.

Full refresh

Troubleshooting

  • If you see an authentication error, your API key is invalid or has been revoked. Create a new key under Settings → API keys in HoorayHR, then reconnect.
  • If you see a permissions error, the user who created the key may have lost the admin role. API keys act as the user who created them, so make sure that user is still an admin.

If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.

Community questions

Was this page useful?