Skip to main content

Personio

Personio is a comprehensive HR management platform designed for small and medium-sized companies, providing tools for employee management, attendance tracking, time-off management, and HR processes automation to streamline human resources operations.

Personio icon

Power end-to-end data operations for your Personio API with Nexla. Our bi-directional Personio connector is purpose-built for Personio, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Personio or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Personio workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Personio credential, you need to obtain your Client ID and Client Secret from your Personio account. Personio uses token-based authentication, where your Client ID and Client Secret are used to obtain an API token that is then used for all subsequent API requests.

To obtain your Personio API credentials, follow these steps:

  1. Sign in to your Personio account using your administrator credentials.

  2. Navigate to your account settings or API management section in the Personio interface.

  3. Look for the API or API Credentials section in your account settings, or navigate to Settings > Integrations > API.

  4. If you don't have API credentials yet, look for the option to create or view your Client ID and Client Secret.

  5. Click Create API Credentials or Generate API Key to create new API credentials.

  6. Configure your API credentials:

    • Enter a name for the API credentials (e.g., "Nexla Integration")
    • Review and select the permissions or scopes for the credentials (if applicable)
  7. Click Create or Generate to create the API credentials.

  8. Your Client ID will be displayed immediately after creation. Copy the Client ID.

  9. Your Client Secret will be displayed immediately after creation. Copy the Client Secret immediately, as it may not be accessible again after you navigate away from the page.

  10. Store both credentials securely, as you will need them to configure your Nexla credential. The Client ID and Client Secret are sensitive information and should be kept confidential.

The Client ID and Client Secret are used to authenticate with the Personio API authentication endpoint (/v1/auth) to obtain an API token. The API token is then sent in the Authorization header with the Bearer prefix for all subsequent API requests to the Personio API. The API token is automatically obtained and refreshed by Nexla as needed. If your credentials are compromised, you should immediately revoke them in your Personio account settings and generate new ones. For detailed information about Personio authentication, API access, and available endpoints, refer to the Personio API documentation.

Authenticate

Credentials required

FieldRequiredSecretDescription
Client IDYesNoAPI Client ID
Client SecretYesYesAPI Client Secret

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

New Credential Overlay – Personio

PersonioCred.png
  1. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  2. Enter your Personio Client ID in the Client ID field. This is the Client ID you obtained from your Personio account settings (Settings > Integrations > API or API Credentials section). The Client ID is used along with the Client Secret to authenticate with the Personio API authentication endpoint and obtain an API token.

  3. Enter your Personio Client Secret in the Client Secret field. This is the Client Secret you obtained from your Personio account settings. The Client Secret is used along with the Client ID to authenticate with the Personio API authentication endpoint and obtain an API token. The Client Secret is sensitive information and must be kept confidential.

    Your Personio API credentials can be found in your Personio account settings under Settings > Integrations > API or API Credentials section. The Client ID and Client Secret are used to authenticate with the Personio API authentication endpoint (/v1/auth) to obtain an API token. The API token is then automatically sent in the Authorization: Bearer {token} header for all subsequent API requests to the Personio API.

    The API token is automatically obtained and refreshed by Nexla as needed. If your credentials are compromised, you should immediately revoke them in your Personio account settings and generate new ones. The Client ID and Client Secret provide access to your Personio account data and should be treated as sensitive information. Keep your credentials secure and do not share them publicly.

    For detailed information about Personio authentication, API access, and available endpoints, see the Personio API documentation.

  4. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Personio connector tile, then select the credential that will be used to connect to your Personio account, and click Next; or, create a new Personio credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Personio endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

Get Personnel Data

This endpoint template returns personnel data for the company from your Personio account. Use this template when you need to retrieve employee information, attendance data, or document categories from your Personio account.

  • Select the personnel data type from the Personnel Data Type pulldown menu. Available options include employees (fetches a list of employees in the company), attendances (fetches attendance data for the company employees), and document-categories (fetches a list of document categories). The data type determines which personnel data will be retrieved.

This endpoint returns personnel data for your company from your Personio account, including employees, attendance data, or document categories. The endpoint uses offset-based pagination to handle large datasets efficiently. Nexla will automatically fetch subsequent pages of data by incrementing the offset. The endpoint returns up to 10 records per page by default.

For detailed information about personnel data management, API response structures, pagination, and available data types, see the Personio API documentation.

Get Personnel Absence Data

This endpoint template fetches a list of absence periods for employees tracked in days or hours from your Personio account. Use this template when you need to retrieve absence data, time-off information, or absence periods for your employees.

  • Select the absence type from the Absence Type pulldown menu. Available options include hours (fetches absence periods for absences tracked in hours) and days (fetches absence periods for absences tracked in days). The absence type determines which type of absence data will be retrieved.
  • Enter the start date in the Start Date field. This should be the start date for the date range for which you want to retrieve absence data. The start date determines the beginning of the date range for absence data retrieval.
  • Enter the end date in the End Date field. This should be the end date for the date range for which you want to retrieve absence data. The end date determines the end of the date range for absence data retrieval.
  • Enter the employee IDs in the Employee Ids field. This should be a comma-separated list of employee IDs for which you want to retrieve absence data. The employee IDs determine which employees' absence data will be retrieved. Leave this field empty to retrieve absence data for all employees.

This endpoint fetches a list of absence periods for employees from your Personio account, including absence periods tracked in days or hours. The endpoint uses offset-based pagination to handle large datasets efficiently. Nexla will automatically fetch subsequent pages of data by incrementing the offset. The endpoint returns up to 10 records per page by default.

For detailed information about absence data management, API response structures, pagination, and available absence types, see the Personio API documentation.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Personio data sources can also be manually configured to ingest data from any valid Personio API endpoint, including endpoints not covered by the pre-built templates or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Personio API endpoints typically follow the pattern https://api.personio.de/v1/{resource_path} (e.g., https://api.personio.de/v1/company/employees, https://api.personio.de/v1/company/absence-periods), and typically use the GET method for retrieving data. Personio uses offset-based pagination with offset and limit parameters. For the Response Data Path, use $.data[*] to extract all items from the data array, or $ to extract the entire response for single record endpoints, depending on your endpoint.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Personio data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Personio destination, and select the Send to Destination option from the menu. Select the Personio connector from the list of available destination connectors, then select the credential that will be used to connect to your Personio account, and click Next; or, create a new Personio credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Personio endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Create Company Data

This endpoint template creates company data such as employees, attendance data, time-offs, or absence-periods in your Personio account using records from a Nexset. Use this template when you need to create new employees, attendance records, time-off requests, or absence periods in your Personio account.

  • Enter the data type in the Data Type field. This should be the type of company data you want to create (e.g., employees, attendances, time-offs, absence-periods). The data type determines which Personio resource will be created.

This endpoint sends data as JSON in the request body to create company data in your Personio account. Each record from your Nexset will be sent as a separate API request to create company data in Personio. The request body should contain the company data in the format required by the Personio API.

The company data structure must match the Personio API's expected format. For detailed information about company data creation, request body formats, available data types, and resource management, see the Personio API documentation.

Upload Documents

This endpoint template uploads documents for company employees in your Personio account using records from a Nexset. Use this template when you need to upload employee documents, such as contracts, certificates, or other employee-related documents.

  • This endpoint automatically uploads documents from your data. No additional configuration is required beyond selecting this endpoint template. The request body should contain the document data in JSON format matching the Personio API structure.

This endpoint sends data as JSON in the request body to upload documents for company employees in your Personio account. Each record from your Nexset will be sent as a separate API request to upload a document in Personio. The request body should contain the document data in the format required by the Personio API.

The document structure must match the Personio API's expected format. For detailed information about document upload, request body formats, available document properties, and document management, see the Personio API documentation.

Manual configuration

Personio destinations can also be manually configured to send data to any valid Personio API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Personio API endpoints typically follow the pattern https://api.personio.de/v1/{resource_path} (e.g., https://api.personio.de/v1/company/employees, https://api.personio.de/v1/company/documents), and typically use the POST method with JSON format for creating resources. The request body is typically {message.json} to send the entire Nexset data as JSON, or a custom JSON structure with specific field mappings matching the Personio API's expected format.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Personio endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Personio endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.