Skip to content

Employees data map

Domain: employeesStatus: implementedReviewed: 2026-07-15

Personio is the inbound HR source. Microsoft 365 is provisioned from core, receives changes on its scheduled sync, and never acts as an inbound authority.

flowchart LR
  personio["Personio"]:::ext --> mirror["PersonioEmployee"]:::vend
  mirror --> core["Employee"]:::corebox
  core --> ms["Microsoft 365"]:::ext
  classDef ext fill:#f9d6d6,stroke:#b04,color:#000
  classDef vend fill:#fde8e8,stroke:#b04,color:#000
  classDef corebox fill:#cfeec9,stroke:#2a6,color:#000

Canonical field matrix

Core field Type Personio field Microsoft Graph field Flow / authority
first_name string(255) attributes.first_name.value part of displayName Personio → core → MS365
last_name string(255) attributes.last_name.value part of displayName Personio → core → MS365
email email attributes.email.value userPrincipalName, mailNickname Personio authority; required identity
position string(255) attributes.position.value jobTitle Personio → core → MS365
status enum attributes.status.value accountEnabled Personio translated; non-active disables MS365
supervisor employee reference attributes.supervisor.value.attributes.id.value manager relationship resolved after inbound rows; pushed after manager exists
created_at timestamp — — generated internally
updated_at timestamp — tracked by MS365 mirror generated internally

Status translation

Personio Core EmployeeStatus Microsoft 365
active active account enabled
onboarding onboarding not provisioned as active
leave active account enabled
inactive or unknown inactive account disabled when it exists
absent Personio row terminated account disabled on the next push

Personio mirror-only snapshot fields

Field Purpose
external_id Stable Personio id, stored as the common mirror identity.
observed Personio fields including company_employee_id and vendor timestamps.
last_synced_at, sync_error, deleted_at Operational state and soft deletion.
core_employee Crosswalk to the canonical employee.

Microsoft 365 observed snapshot fields

Field Source / meaning
external_id Graph object id, stored as the common mirror identity.
observed Last confirmed Graph values: user_principal_name, display_name, job_title, manager_microsoft_id, account_enabled, and Graph timestamps.
last_synced_at Delivery timestamp in the common mirror envelope.

Personio references supervisors by Personio id. Resolution is a second pass after all rows land, so row ordering cannot create a false missing-manager error. Microsoft manager updates retry when the supervisor has not yet been provisioned.