Skip to content

Personio

Personio provides absences (vacation, sick leave, etc.) and your work schedule (weekly hours per day). Unlike the other services, Personio does not provide time entries — it supplements the timeline with context.

What You Need

SettingValue
Client IDPersonio API client ID
Client SecretPersonio API client secret
EmailYour Personio employee email (must match exactly)

Step-by-Step

1. Create API Credentials

INFO

API credentials are managed by your Personio administrator. If you don't have access, ask your HR or IT team.

  1. Log in to Personio as an admin
  2. Go to SettingsIntegrationsAPI Credentials
  3. Click Generate new credentials
  4. Set the required permissions:
    • Employees: Read
    • Absences: Read
  5. Copy the Client ID and Client Secret

WARNING

The Client Secret is shown only once. Store it securely.

2. Connect in roots

  1. Open the Connection Manager
  2. Select the Personio tab
  3. Enter Client ID and Client Secret
  4. Enter your employee email — this must match the email in your Personio profile exactly
  5. Click Connect

roots authenticates with the Personio API, looks up your employee record by email, and reads your work schedule.

What roots Fetches

DataDescription
AbsencesApproved time-offs (vacation, sick leave, etc.)
Work scheduleYour contracted hours per weekday (e.g. Mon–Fri 8h)
Absence balanceRemaining vacation days

Automatic Settings Sync

When Personio is connected, roots automatically:

  • Updates weekly hours from your work schedule (e.g. 8h Mon–Fri, 0h Sat–Sun)
  • Marks absence days in the calendar and timeline
  • Disables manual editing of weekly hours and absences (Personio is the source of truth)

Public Holidays

Public holidays are not imported from Personio (the Personio API does not expose the holiday calendar). Instead, public holidays come from Moco's schedule data.

TIP

If you disconnect Personio, manual editing of hours and absences is re-enabled.

Absence Types

roots maps Personio absence types to visual indicators:

TypeDisplay
VacationHighlighted in calendar
Sick leaveHighlighted in calendar
Public holidayHighlighted in calendar
Personal time offHighlighted in calendar
OtherHighlighted in calendar

Troubleshooting

"Employee not found"

  • The email you entered must exactly match your Personio profile email (case-sensitive)
  • Ask your admin to verify which email is on your Personio employee record

"Authentication failed"

  • Verify Client ID and Client Secret are correct
  • Check that the API credentials have Employee and Absence read permissions
  • API credentials may have been revoked — ask your admin to regenerate them

"Absences not showing"

  • Only approved absences are imported. Pending requests are not shown.
  • Check the date range — Personio returns absences for the queried period only.

Released under the MIT License.