Skip to content

Personio ​

Personio is a human resources management software that helps businesses streamline HR processes, including recruitment, employee data management, and payroll, in one platform.

Bruin supports Personio as a source for Ingestr assets, and you can use it to ingest data from Personio into your data platform.

To set up a Personio connection, you must add a configuration item in the .bruin.yml and asset file. You need client_id and client_secret. For details on how to obtain these credentials, please refer here

Follow the steps below to set up Personio correctly as a data source and run ingestion.

Configuration ​

Step 1: Add a connection to the .bruin.yml file ​

In order to set up Personio connection, you need to add a configuration item in the .bruin.yml file and asset file. This configuration must comply with the following schema:

yaml
connections:
      personio:
        - name: "personio"
          client_id: "id_123"
          client_secret: "secret_123"
  • client_id (required): It is the client_id which is used for authenticating the request.
  • client_secret (required): It is the client_secret which is used for authenticating the request.

Step 2: Create an asset file for data ingestion ​

To ingest data from Personio, you need to create an asset configuration file. This file defines the data flow from the source to the destination. Create a YAML file (e.g., personio_ingestion.yml) inside the assets folder and add the following content:

yaml
name: public.personio
type: ingestr

parameters:
  source_connection: personio
  source_table: 'employees'

  destination: postgres
  • name: The name of the asset.
  • type: Specifies the asset’s type. Set this to ingestr to use the ingestr data pipeline. For Personio, it will be always ingestr.
  • source_connection: The name of the Personio connection defined in .bruin.yml.
  • source_table: The name of the table in Personio to ingest.

Available Source Tables ​

TablePKInc KeyInc StrategyDetails
employeesidlast_modified_atmergeRetrieves company employees details.
absence_typesid–replaceRetrieves list of various types of employee absences Retrieves absence periods for absences tracked in days.
absencesidupdated_atmergeFetches absence periods for absences with time unit set to days.
attendancesidupdated_atmergeRetrieves attendance records for each employee
projectsid–replaceRetrieves a list of all company projects
document_categoriesid–replaceRetrieves all document categories of the company
custom_reports_listid–replaceRetrieves metadata about existing custom reports in your Personio account, such as report name, report type, report date / timeframe.
employees_absences_balance[employee_id,id]–mergeRetrieves the absence balance for a specific employee
  • destination: The destination platform/type, for example postgres.

Step 3: Run asset to ingest data ​

bash
bruin run assets/personio_asset.yml

As a result of this command, Bruin will ingest data from the given Personio table into your Postgres database.

personio