> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Personio HRIS Integration

> Personio connector for Kombo's HRIS API

The Personio HRIS integration allows you to sync HRIS data between Personio and your application through Kombo's unified API. The tool slug for this connector is `personio`.

## Guides and Resources

<CardGroup cols={2}>
  <Card title="Connection Setup Guide" icon="link" href="https://help.kombo.dev/hc/en-us/articles/16968947636369-How-do-I-link-my-Personio-HRIS-account-">
    Step-by-step instructions to connect your Personio account to Kombo.
  </Card>

  <Card title="Sandbox Environment" icon="flask" href="https://www.personio.com/free-trial/">
    Access the Personio sandbox environment for testing and development.
  </Card>
</CardGroup>

## Supported Features & Coverage

<Tabs>
  <Tab title="Models">
    <Accordion title="Legal Entities">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
    </Accordion>

    <Accordion title="Work Locations">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | type                |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Employees">
      <Note>
        The `employment_type` is inferred from the work schedules (e.g., 40h/week -> FULL\_TIME) since Personio's API does not expose information about the `employment_type` otherwise. Although we have not seen any issues with this in-practice, if a Personio instance is unusually configured this may lead to issues with the correct `employment_type` being returned.
      </Note>

      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | employee\_number    |       |
      | first\_name         |       |
      | last\_name          |       |
      | nationality         |       |
      | display\_full\_name |       |
      | job\_title          |       |
      | work\_email         |       |
      | personal\_email     |       |
      | ssn                 |       |
      | gender              |       |
      | marital\_status     |       |
      | employment\_status  |       |
      | employment\_type    |       |
      | weekly\_hours       |       |
      | avatar              |       |
      | work\_location\_id  |       |
      | legal\_entity\_id   |       |
      | manager\_id         |       |
      | home\_address       |       |
      | bank\_accounts      |       |
      | date\_of\_birth     |       |
      | start\_date         |       |
      | termination\_date   |       |
      | remote\_created\_at |       |
      | custom\_fields      |       |
      | integration\_fields |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Absence Types">
      | Field                   | Notes |
      | ----------------------- | ----- |
      | id                      |       |
      | remote\_id              |       |
      | changed\_at             |       |
      | remote\_deleted\_at     |       |
      | name                    |       |
      | unit                    |       |
      | half\_days\_supported   |       |
      | exact\_times\_supported |       |
      | remote\_data            |       |
    </Accordion>

    <Accordion title="Absences">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | employee\_id        |       |
      | start\_date         |       |
      | end\_date           |       |
      | start\_half\_day    |       |
      | end\_half\_day      |       |
      | start\_time         |       |
      | end\_time           |       |
      | amount              |       |
      | unit                |       |
      | status              |       |
      | employee\_note      |       |
      | type\_id            |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Employments">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | employee\_id        |       |
      | job\_title          |       |
      | pay\_rate           |       |
      | pay\_period         |       |
      | pay\_frequency      |       |
      | employment\_type    |       |
      | pay\_currency       |       |
      | effective\_date     |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Groups">
      <Note>
        Personio does not support reading all groups via one endpoint.
      </Note>

      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | type                |       |
      | parent\_id          |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Time Off Balances">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | employee\_id        |       |
      | type\_id            |       |
      | balance             |       |
      | balance\_unit       |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Timesheets">
      | Field                  | Notes                                                                                       |
      | ---------------------- | ------------------------------------------------------------------------------------------- |
      | id                     |                                                                                             |
      | remote\_id             |                                                                                             |
      | changed\_at            |                                                                                             |
      | remote\_deleted\_at    |                                                                                             |
      | employee\_id           |                                                                                             |
      | started\_at            |                                                                                             |
      | ended\_at              |                                                                                             |
      | timezone               | We don't receive a timezone from Personio, so we assume a default timezone of Europe/Berlin |
      | unpaid\_break\_minutes |                                                                                             |
      | breaks                 |                                                                                             |
      | approval\_status       |                                                                                             |
      | comment                |                                                                                             |
      | custom\_fields         |                                                                                             |
      | integration\_fields    |                                                                                             |
      | remote\_data           |                                                                                             |
    </Accordion>

    <Accordion title="Employee Document Categories">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Employee <> Group">
      | Field               | Notes |
      | ------------------- | ----- |
      | employee\_id        |       |
      | team\_id            |       |
      | id                  |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
    </Accordion>
  </Tab>

  <Tab title="Actions">
    <Accordion title="Create absence">
      | Input Field       | Notes |
      | ----------------- | ----- |
      | employee\_id      |       |
      | absence\_type\_id |       |
      | status            |       |
      | start\_date       |       |
      | end\_date         |       |
      | start\_half\_day  |       |
      | end\_half\_day    |       |
      | employee\_note    |       |
      | start\_time       |       |
      | end\_time         |       |
    </Accordion>

    <Accordion title="Delete absence">
      | Input Field | Notes |
      | ----------- | ----- |
      | absence\_id |       |
    </Accordion>

    <Accordion title="Create employee">
      | Input Field             | Notes |
      | ----------------------- | ----- |
      | first\_name             |       |
      | last\_name              |       |
      | work\_email             |       |
      | gender                  |       |
      | job\_title              |       |
      | home\_address.street\_1 |       |
      | home\_address.city      |       |
      | home\_address.zip\_code |       |
      | home\_address.country   |       |
      | date\_of\_birth         |       |
      | start\_date             |       |
    </Accordion>

    <Accordion title="Create employee (v2)">
      <Info>For detailed information about [creating employees with form](/hris/implementation-guide/create-employee), please see the [**Create Employee with Form** tab](#create-employee-with-form) above.</Info>

      | Input Field          | Notes |
      | -------------------- | ----- |
      | staffing\_entity\_id |       |
      | properties           |       |
    </Accordion>

    <Accordion title="Add document to employee">
      | Input Field            | Notes |
      | ---------------------- | ----- |
      | employee\_id           |       |
      | category\_id           |       |
      | document.name          |       |
      | document.content\_type |       |
      | document.data\_url     |       |
      | document.data          |       |
    </Accordion>
  </Tab>

  <Tab title="Features">
    | Feature               | Notes |
    | --------------------- | ----- |
    | Connection Guide      |       |
    | Prerequisites         |       |
    | Create credentials    |       |
    | API Passthrough       |       |
    | Webhook Subscriptions |       |
    | Automatic Setup       |       |
    | Scope Testing         |       |
    | Per Model Tests       |       |
    | Per Field Tests       |       |
    | Delta Syncs           |       |
    | Group Types           |       |
    | TEAM                  |       |
    | DEPARTMENT            |       |
    | COST\_CENTER          |       |
    | Custom Field Explorer |       |
    | Employees             |       |
  </Tab>

  <Tab title="Create Employee with Form">
    <Info>
      Some **optional** form fields are referencing the following data models:

      * Employees
      * Groups
      * Locations

      Consider enabling these in your [scope configuration](/hris/features/scopes).
    </Info>

    <Warning>
      This form may contain additional custom fields that depend on your specific tool instance configuration. The exact custom fields available will vary based on your setup and cannot be displayed here.
    </Warning>

    <ResponseField name="email" type="text">**Private Email**<br />
    The private email address of the employee<br />
    Unified field: `private_email`</ResponseField>
    <ResponseField name="first_name" type="text" required>**First Name**<br />
    The first name of the employee<br />
    Unified field: `first_name`</ResponseField>
    <ResponseField name="last_name" type="text" required>**Last Name**<br />
    The last name of the employee<br />
    Unified field: `last_name`</ResponseField>
    <ResponseField name="preferred_name" type="text">**Name (preferred)**</ResponseField>
    <ResponseField name="gender" type="single_select">**Gender**<br />
    The gender of the employee<br />
    Unified field: `gender`</ResponseField>
    <ResponseField name="language_code" type="single_select">**Language**<br />
    Main language of the employee.</ResponseField>

    <ResponseField name="employments" type="object">
      **Employment**<br />
      Employment of the employee.

      <Expandable title="properties">
        <ResponseField name="supervisor" type="single_select">**Supervisor**<br />
        The supervisor of the employee.<br />
        References `/v1/hris/employees?remote_model=employee`</ResponseField>
        <ResponseField name="office" type="single_select">**Office**<br />
        The office of the employee.<br />
        Unified field: `location_id`<br />
        References `/v1/hris/locations?remote_model=location`</ResponseField>

        <ResponseField name="org_units" type="object">
          **Org Units**<br />
          All Org Units, i.e. department and team, that are to be associated with the Employment.

          <Expandable title="properties">
            <ResponseField name="department" type="single_select">**Department**<br />
            The department of the employee.<br />
            References `/v1/hris/groups?types=DEPARTMENT`</ResponseField>
            <ResponseField name="team" type="single_select">**Team**<br />
            The team of the employee.<br />
            References `/v1/hris/groups?types=TEAM`</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="legal_entity" type="single_select">**Legal Entity**<br />
        The legal entity of the employee.</ResponseField>
        <ResponseField name="position" type="text">**Position - Title**<br />
        The title of the position.</ResponseField>
        <ResponseField name="employment_start_date" type="date">**Start Date**<br />
        Start date of the employee. Also considered to be the hire date<br />
        Unified field: `start_date`</ResponseField>
        <ResponseField name="type" type="single_select">**Type**<br />
        The type of the employment.</ResponseField>
        <ResponseField name="contract_end_date" type="date">**Contract End Date**<br />
        The end date of the contract.</ResponseField>
        <ResponseField name="probation_period_length" type="number">**Probation Period Length**<br />
        The length of the probation period in months.</ResponseField>
        <ResponseField name="weekly_working_hours" type="number">**Weekly Working Hours**<br />
        The number of hours the employee works per week.</ResponseField>
        <ResponseField name="full_time_weekly_working_hours" type="number">**Full-Time Weekly Working Hours**<br />
        The number of hours per week that is considered full time for the employment.</ResponseField>

        <ResponseField name="cost_centers" type="array">
          **Cost Centers**<br />
          The weight distribution of this employment between different cost centers, using percentages.

          <Expandable title="items">
            <ResponseField name="id" type="single_select" required>**Cost Center Name**<br />
            References `/v1/hris/groups?types=COST_CENTER`</ResponseField>
            <ResponseField name="weight" type="number" required>**Weight**<br />
            The weight in percentage assigned to this Cost Center. The total of all Cost Center weights must be 100.</ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="custom_attributes" type="object">
      **Custom Attributes**

      <Expandable title="properties">
        <Warning>
          This object may contain additional custom fields that depend on your specific tool instance configuration. The exact custom fields available will vary based on your setup and cannot be displayed here.
        </Warning>
      </Expandable>
    </ResponseField>
  </Tab>
</Tabs>

## Integration Variants

**Current connector:** Personio

For **Personio**, we also offer the following other connector variants:

<CardGroup cols={2}>
  <Card title="Personio ATS" icon="https://storage.googleapis.com/kombo-assets/integrations/personio/icon.svg" href="/ats/connectors/personio">
    Personio for the ATS category
  </Card>
</CardGroup>
