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

# Microsoft integration

> Learn how to set up and use absentify’s Microsoft integration features for automated absence management and streamlined workflows.

absentify’s Microsoft integration provides powerful tools to automate and enhance your absence management workflows. With seamless synchronization between absentify and the Microsoft ecosystem, including Outlook, Teams, and Azure Active Directory (Entra ID), you can save time, reduce manual effort, and ensure your organization operates smoothly.

## Prerequisites for using Microsoft integrations

To use the features described on this page, make sure the following requirements are met:

1. **Microsoft account connection**\
   Your workspace and users must be connected to Microsoft accounts.\
   Follow the [Microsoft account integration guide](/docs/en/roles/m365admins/getting_started/microsoft_account_integration#advantages-of-using-microsoft-accounts).

2. **Tenant admin rights**\
   You need to have Microsoft tenant administrator rights in your company’s environment to accept and grant the necessary permissions for absentify.

***

### Tenant admin approval for Microsoft permissions

To approve the required Microsoft permissions for absentify, you need tenant admin rights. If your company has not yet approved these permissions, a pop-up window appears when you try to connect absentify to Microsoft services.

<iframe src="https://demo.arcade.software/JfI6cRXpjDP0j2pzcpFE?embed&embed_mobile=inline&embed_desktop=inline&show_copy_link=false" title="Managing users in absentify" frameborder="0" loading="lazy" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="clipboard-write" className="responsive-iframe" />

1. **If you are a tenant admin**:
   * Select **Approve rights** to grant the necessary permissions.

2. **If you are not a tenant admin**:
   * You have two options:
     * **Copy the approval link** and send it to your IT team.
     * **Open an automatically filled-out email template** to request the necessary permissions.

<Info>
  Microsoft permissions must be approved at the **tenant level** to enable seamless integration with Outlook, Teams, and Entra ID.
</Info>

***

## Key features of Microsoft integration

### 1. Outlook calendar synchronization

Automatically sync absences with employees’ Outlook calendars.

* **Manual invite:** By default, users receive an iCal email for each absence, which they can manually add to their Outlook calendar.
* **Automatic sync:** Enable direct calendar synchronization to bypass emails and ensure all absences are automatically added.

**Configuration options per leave type:**

* Synchronize upon request creation.
* Synchronize only after approval.
* Disable synchronization for specific leave types.

For detailed instructions, see our [Outlook Calendar Synchronization guide](/docs/en/roles/m365admins/permissions/outlook_calendar_synchronization).

<Tip>
  **Upgrade benefits with the Essentials or Plus plan**\
  Upgrading to the Essentials plan or higher removes the "created with absentify" label from Outlook calendar entries — both for iCal downloads and automatic synchronization.

  Additionally, the user's assigned [public holiday calendar](/docs/en/roles/hr_admins/settings/public-holidays) is synced to Outlook with an Essentials or Plus plan.
  Unlike absence entries, syncing public holidays may take up to 60 minutes. Once completed, all holidays from absentify will appear in the user's Outlook calendar automatically.
</Tip>

***

### 2. Outlook out-of-office reply

Automate out-of-office replies to ensure clear communication during absences.

* Users can set up individual message templates for each leave type under [My Preferences](/docs/en/roles/employee/automatic_out_of_office_replies).
* Admins can configure [company-wide templates](/docs/en/roles/hr_admins/settings/users/bulk_edit/company_out_of_office_replies) for consistent messaging.

<Note>
  This feature requires the **mailbox** permission to be **activated** in the Microsoft Integration settings. Additionally, each user must have a **linked Microsoft account** and the `MailboxSettings.ReadWrite` permission must be granted for the user's **Microsoft tenant**. Users who do not meet these requirements will see a message explaining why the feature is unavailable. For full details, see the [Outlook out-of-office permissions guide](/docs/en/roles/m365admins/permissions/outlook_out_of_office_reply).
</Note>

***

### 3. Manager synchronization

Sync approvers with managers from your directory. How managers reach absentify depends on your provisioning method:

* **Microsoft Graph**: Auto-assign Microsoft Entra ID managers as approvers. Requires the **User.Read.All** permission. See the [Manager Synchronization guide](/docs/en/roles/m365admins/permissions/manager_synchronization).
* **SCIM**: Receive profile manager relationships through the enterprise `manager` attribute. No Microsoft Graph permission is required for this. See the [SCIM provisioning guide](/docs/en/roles/hr_admins/settings/integrations/scim).

<Info>
  In both cases, managers must already exist as users in your absentify organization before they can be assigned as approvers.
</Info>

***

### 4. Group calendar synchronization

Enable this permission to sync absences with Microsoft 365 group calendars or shared calendars.

* Display department-wide absences directly in shared Outlook group calendars.
* Improve team coordination and planning by providing a centralized view of team absences.
* Ensure that group calendars stay up to date automatically without manual calendar entries.

<Info>
  Learn more in the [Group Calendar Synchronization guide](/docs/en/roles/m365admins/permissions/group_calendar_synchronization).
</Info>

***

### 5. Entra ID group synchronization

Automatically import Entra ID groups as departments in absentify to mirror your organizational structure.

* Automatically update department memberships when users are added to or removed from Microsoft groups.
* Sync group managers with department managers in absentify.
* Pre-fill Excel imports with data from Entra ID.
* Enable searching directly in Azure Active Directory when adding new users.

<Info>
  Learn more in the [Entra ID Group Synchronization guide](/docs/en/roles/m365admins/permissions/teams_entra_id_synchronization).
</Info>

***

### 6. Microsoft Shifts synchronization

Push approved absences into a Microsoft Teams Shifts schedule as time-off entries so shift planners and colleagues see who is off directly in the timeline.

* Configure which team, departments, and leave types sync under **Settings > Integrations > Microsoft Shifts**.
* The synced time-off period follows the employee's absentify working schedule, not their Shifts shift assignments.
* Available on the **Essentials** and **Plus** plans.

<Info>
  Learn more in the [Shifts synchronization permissions guide](/docs/en/roles/m365admins/permissions/shifts_synchronization) and the [Microsoft Shifts integration guide](/docs/en/roles/hr_admins/settings/integrations/microsoft_shifts).
</Info>

***

### 7. Azure AI integration

Leverage Azure AI to streamline absence management through automation.

* Use the Teams Bot to record absences automatically.
* Save time with smart absence processing integrated into Microsoft Teams.

<Warning>
  This feature is only available on the **Plus plan** and is disabled by default to ensure no data is shared unless activated. For details, visit the [Azure AI Integration documentation](/docs/en/roles/m365admins/permissions/azure_ai_integration).
</Warning>

***

## Microsoft sync logs

Admins can use the **Sync Logs** view in absentify to monitor and troubleshoot all Microsoft Graph and external synchronization operations.
This view provides full transparency into what actions were taken, what succeeded, what failed, and why — helping ensure data consistency across platforms and enabling confident, real-time management of all absence-related processes.

Sync logs are especially helpful for:

* Diagnosing **permission or token issues** affecting sync reliability
* Verifying **profile updates** triggered by Microsoft Entra ID group configurations
* Confirming whether **absences were synced** to external systems
* Tracking **automated actions** such as out-of-office reply updates

<iframe src="https://demo.arcade.software/QDkj1zdSQxmvc4pNqLjF?embed&embed_mobile=inline&embed_desktop=inline&show_copy_link=false" title="Managing users in absentify" frameborder="0" loading="lazy" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="clipboard-write" className="responsive-iframe" />

### Sync overview

To access the logs, go to **Settings > Microsoft** and select the **View sync logs** button located under the Microsoft permissions section. At the top of the Sync Logs page, you'll see a summary of all synchronization activity:

* **Total Syncs**: The total number of sync operations triggered.
* **Successful**: Number of syncs that completed without issues.
* **Failed**: Number of syncs that encountered errors.
* **Skipped**: Syncs that were skipped automatically (e.g. no changes detected, or calendar sync paused pending re-authorization).
* **Success Rate**: Overall percentage of successful sync operations.

Additionally, a list of **Common Errors** is shown to help identify recurring problems, including but not limited to:

* `PROFILE_UPDATE_ERROR`
* `UPDATE_FAILED`
* `PERMISSION_DENIED`
* `TOKEN_REFRESH_FAILED`
* `SYNC_FAILED`
* `GROUP_OWNER_NOT_IN_WORKSPACE` — a group owner is not part of the absentify workspace; manager sync was disabled automatically
* `USER_EXISTS_IN_OTHER_WORKSPACE` — a user already exists in another absentify workspace and cannot be added automatically

### Viewing sync details

Each individual sync operation is listed with the following details:

* **Date and time** of the sync
* **Member** affected by the operation
* **Operation** type (e.g. Update Profile, Add to Departments, Set Out of Office)
* **Status** (Success, Skipped, Failed)
* **Error** (if any)
* **Duration** of the sync

Selecting a sync entry opens a detailed view with enriched metadata depending on the operation type. This may include:

* **Event ID** – a unique identifier assigned to each sync operation
* **Sync type** – indicates the source or method of the sync, such as Webhook, timeghost, Calendar sync, Outlook mailbox sync, or Shifts\_TimeOff (Microsoft Shifts)
* **Trigger** – for calendar-event deletion operations; shows why the event was removed (e.g. Request rejected, Request cancelled, Request deleted, Calendar sync settings saved, Calendar sync settings deleted, Calendar disconnected, or Reconciliation job)
* **Leave request data** – for absence-related syncs (including calendar-event deletions); includes details such as leave type, date range, request status (e.g. Approved, Pending), and subject
* **Public holiday sync details** – for calendar entries created via public holiday sync; includes the holiday name, date, duration (e.g. FullDay), and confirmation message
* **Profile update data** – displays updated user attributes retrieved from Microsoft Entra ID, such as display name, profile photo, job title, manager, or department
* **Workspace ID**, **User ID**, and **Item ID** – technical identifiers used for referencing data across external systems
* **Error code and message** – provides specific error details if the sync was skipped or failed
* **Linked request reference** – enables direct access to the related absence request, holiday entry, or user profile for quick troubleshooting or review

<Info>
  **Targeted sync notifications**: For group sync errors such as `GROUP_OWNER_NOT_IN_WORKSPACE` or `USER_EXISTS_IN_OTHER_WORKSPACE`, email notifications are sent to the admin who originally configured the group sync. If that admin is no longer available, all workspace admins with sync notifications enabled will receive the email instead.
</Info>

This level of detail enables admins to fully understand the context and impact of each sync event, validate expected behavior, and quickly identify and resolve any issues.

### Why sync logs matter

The sync logs are more than just a technical record — they are a crucial resource for administrators to maintain control, transparency, and reliability in their absence management process. Below are key scenarios where sync logs provide essential insights:

<AccordionGroup>
  <Accordion title="Track automatic replies and out-of-office settings">
    When an employee goes on leave, absentify can trigger automatic replies through Microsoft 365. Sync logs allow you to verify whether the **out-of-office message was successfully activated** and what settings were applied.
  </Accordion>

  <Accordion title="Verify calendar syncs and invitations">
    For every absence request — and for public holiday entries (if your workspace is on the Essentials plan or higher) — you can verify whether the event was successfully synced to:

    * The user’s personal Microsoft calendar
    * A shared or group calendar

    Sync logs also show whether the event was added via **automatic sync** or sent as an **iCal (.ics) calendar invitation**. For deletion operations, the **Trigger** field indicates why the calendar event was removed — for example, because the request was rejected, cancelled, or deleted, or because calendar sync settings were changed.
  </Accordion>

  <Accordion title="Ensure timeghost integrations are working">
    Absences can be synced with [timeghost time tracking](/docs/en/roles/hr_admins/settings/integrations/timeghost). Logs will confirm:

    * Whether the sync was triggered successfully
    * Which absence (leave type and dates) was pushed
    * Any errors during the operation

    This is critical for billing, reporting, or project-based time evaluations.
  </Accordion>

  <Accordion title="Monitor profile updates from Microsoft Entra ID">
    When user data is synced from Microsoft Entra ID (e.g. via group sync), the logs show if a **new profile was created** or an **existing profile was updated**, including department and role assignments.
  </Accordion>

  <Accordion title="Trace changes to department managers and approvers">
    If group owners or Microsoft-assigned managers are updated in Azure, sync logs reflect changes to a user's **Manager** or **Approver** in absentify. This ensures proper approval workflows remain intact.
  </Accordion>
</AccordionGroup>
