> ## 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.

# Test absentify before your rollout (UAT)

> Plan a user acceptance test (UAT) before you roll out absentify: test any plan free for one month and work through ready-made test cases.

Before you roll out absentify to everyone, let a small group test it. In a user acceptance test (UAT), your testers check that absentify, set up the way you configured it, supports your leave processes. This guide shows you how to prepare the test and gives you test cases to start from.

<Tip>
  **Test any plan free for one month.** Email [support@absentify.com](mailto:support@absentify.com) at any time and tell us which plan you want to test. You can run your whole UAT in that month.
</Tip>

## What a UAT checks

You don't test absentify in general. You test your setup:

* Do allowances, public holidays, and schedules deduct what your policy expects?
* Do requests reach the right approvers?
* Do users see only what your privacy settings allow?
* Do the Microsoft 365 features and integrations you use work in your tenant?

The test ends with a sign-off: those responsible confirm that absentify can go live.

## Prepare the test

<Steps>
  <Step title="Request your free test month">
    Email [support@absentify.com](mailto:support@absentify.com) and name the plan you want to use after the rollout. Test with that plan, so the test covers the features you will actually use. In the same email, you can ask for the test cases below as an Excel template. Compare plans in the [plan feature matrix](/docs/en/roles/hr_admins/settings/plan-feature-matrix).
  </Step>

  <Step title="Set up your workspace">
    Work through the [checklist before adding users](/docs/en/roles/hr_admins/settings/users/invite_users#checklist-before-adding-users). Use the workspace you will go live with. Your tested configuration then carries over to the rollout.
  </Step>

  <Step title="Choose test users">
    Pick at least one user per role: employee, manager or approver, HR admin, and Microsoft 365 admin. Add the special cases of your policies, such as part-time users, users with another public holiday calendar, or users with two approvers.

    Activate only your test users. Everyone else stays inactive: inactive users cannot sign in and do not receive emails. See [Account status](/docs/en/roles/hr_admins/settings/users/edit/access-permissions#account-status).

    To test Teams, Outlook, and calendar sync, test users must sign in with Microsoft 365.
  </Step>

  <Step title="Note your expected values">
    For each test case, write down what your policy expects, for example how many days a request should deduct. Testers compare the result with these values.
  </Step>

  <Step title="Agree on the rules">
    Decide who tests which cases, how long the test runs, and when it counts as passed. For example: every relevant test case passed, or every failed case has an accepted workaround. Also decide who signs off.
  </Step>
</Steps>

## Run the test

1. Each tester works through their test cases and records the result and a status: **Passed**, **Failed**, **Blocked**, or **Not relevant**. **Blocked** means the case could not run, for example because a permission is missing.
2. For a failed case, add a screenshot and note the user, the dates, and the leave type.
3. If a result differs from your expected value, open the linked guide first. A deviation often comes from a setting, such as the schedule, the public holiday calendar, or the approver.
4. If absentify still behaves differently than described, contact [support](/docs/en/introduction#how-to-get-further-assistance) with the test case ID and your notes.

## After the test

* Cancel test requests that should not stay in your users' calendars.
* Delete test users you no longer need. Deleting removes their data and frees their seat. Archiving does not free a seat.
* Record the sign-off.
* Switch to the tested plan under [Upgrade](/docs/en/roles/hr_admins/settings/upgrade).
* Activate the remaining users with the [checklist before activating users](/docs/en/roles/hr_admins/settings/users/invite_users#checklist-before-activating-users), and send them the [employee guide](/docs/en/roles/employee/welcome).

## Test cases

The test cases cover the processes most companies use. Remove the ones you don't need and add your own. The linked guides describe the expected behavior in detail. Where the result depends on your settings, such as the number of days deducted, compare it with your expected values.

<Info>
  Want the test cases as an Excel file with columns for results, status, and sign-off? Ask [support@absentify.com](mailto:support@absentify.com) for the UAT template.
</Info>

### Sign-in and access

| ID | Role | Test case | Expected result | Guide |
| - | - | - | - | - |
| AC-01 | Microsoft 365 admin, employee | Grant admin consent for absentify. Then a test user signs in with Microsoft 365. | The user signs in without a consent prompt. | [Admin consent](/docs/en/roles/m365admins/getting_started/microsoft_account_integration#granting-admin-consent) |
| AC-02 | Employee | Open absentify in Microsoft Teams. | absentify is available under **Apps** or in the search, or pinned if your policy pins it. The user is signed in with Microsoft 365. Policy changes can take up to 24 hours. | [Enable in Teams](/docs/en/roles/m365admins/getting_started/enable_absentify_in_teams_and_outlook#enable-absentify-in-teams) |
| AC-03 | Employee | Open absentify in Outlook, if you deploy the add-in. | The add-in appears in the **Apps** sidebar or under **More options**. | [Sign in on Outlook](/docs/en/roles/employee/sign_in#sign-in-on-outlook) |
| AC-04 | Employee | Open absentify in the Teams app on a phone. | absentify opens inside Teams. Users don't install a separate app. | [Mobile setup](/docs/en/roles/m365admins/getting_started/mobile_setup#central-deployment-via-microsoft-teams) |
| AC-05 | HR admin | Add a user and leave the account inactive. The user tries to sign in. | Sign-in is refused because the account is inactive. The user receives no emails. | [Account status](/docs/en/roles/hr_admins/settings/users/edit/access-permissions#account-status) |
| AC-06 | HR admin | Set a test user to **Active**. | The user receives a welcome email with sign-in instructions and can sign in. | [Account status](/docs/en/roles/hr_admins/settings/users/edit/access-permissions#account-status) |

### Requests and allowances

| ID | Role | Test case | Expected result | Guide |
| - | - | - | - | - |
| RQ-01 | Employee | Open **My calendar** and check the allowance card. | The card shows the allowance you expect for this user. | [Allowance summary](/docs/en/roles/employee/my_calendar#allowance-summary) |
| RQ-02 | Employee | Request a week of vacation. | Before sending, the form shows **Takes** with the expected number of days. After **Send request**, the request is pending and the approver is notified. | [Create a request](/docs/en/roles/employee/create_an_absence_request#how-to-create-an-absence-request) |
| RQ-03 | Employee | A part-time employee requests a full week off. | Only the employee's working days are deducted. | [Schedule](/docs/en/roles/hr_admins/settings/users/edit/schedule) |
| RQ-04 | Employee | Request leave over a public holiday. | The form shows how many public holidays fall in the period. The holiday is not deducted, unless the leave type ignores public holidays. | [Create a request](/docs/en/roles/employee/create_an_absence_request#how-to-create-an-absence-request) |
| RQ-05 | Employee | Request half a day, if a leave type allows half days. | The form deducts ½ day. | [Create a request](/docs/en/roles/employee/create_an_absence_request#how-to-create-an-absence-request) |
| RQ-06 | Employee | Request more days than are available. | absentify does not accept the request and shows the available amount. With **Ignore limit** on the allowance, the request goes through. | [Insufficient allowance](/docs/en/roles/employee/create_an_absence_request#why-is-my-allowance-insufficient) |
| RQ-07 | Employee | Record sick leave for yesterday. | The request is saved. Start dates up to 30 days in the past are possible within the current fiscal year. Older dates cannot be selected. | [Past dates](/docs/en/roles/employee/create_an_absence_request#create-a-request-for-a-past-date) |
| RQ-08 | Employee | Request a leave type that doesn't require approval. | The absence is recorded right away, without an approver. A leave type without an allowance shows **No deduction from allowance**. | [Leave type behavior](/docs/en/roles/hr_admins/settings/leave_types/create-leave-types#behavior) |
| RQ-09 | Employee | Cancel a request that hasn't started. | The request disappears from the calendar, and the days are available again. Approvers and other involved users are notified. | [Cancel a request](/docs/en/roles/employee/cancel_a_request#steps-to-cancel-a-request) |
| RQ-10 | Employee | Change the dates of a pending request, if the leave type allows changes. | The approvers decide again. The request shows the **Changed** badge. | [Change a request](/docs/en/roles/employee/cancel_a_request#change-a-request) |
| RQ-11 | Employee, representative | Request a leave type that requires a representative. | The representative confirms first. Only then does the approver receive the request. | [Representatives](/docs/en/roles/employee/approval_requests#viewing-and-managing-representative-assignments) |
| RQ-12 | Employee | Create a recurring request, such as home office every Friday (Essentials or Plus). | The preview lists every date and shows conflicts before you send the request. | [Recurring requests](/docs/en/roles/employee/create_an_absence_request#create-a-recurring-absence-request) |

### Approvals

| ID | Role | Test case | Expected result | Guide |
| - | - | - | - | - |
| AP-01 | Approver | A test user submits a request. | The bell icon shows a badge for the request. The approver also gets an email or a Teams message, depending on their notification settings. | [Notifications](/docs/en/roles/manager/approval_requests#notifications-for-pending-approval-requests) |
| AP-02 | Approver | Approve the request. | The request is approved, and the requester is notified. | [Approval requests](/docs/en/roles/employee/approval_requests#viewing-and-managing-approval-requests) |
| AP-03 | Approver | Decline a request and enter a reason. | The requester is notified and sees the reason. | [Approval requests](/docs/en/roles/employee/approval_requests#viewing-and-managing-approval-requests) |
| AP-04 | Approver | Approve or decline from the absentify card in Teams. | The decision is saved directly from Teams. **Decline** asks for a reason. | [Teams bot](/docs/en/roles/employee/teams_bot#notifications) |
| AP-05 | Approvers | Test your approval flow with two approvers (Essentials or Plus). | **Linear**: the approvers receive the request one after another. **Parallel**: all approvers receive it at once. **All must agree**: approved only when every approver approves. **One must agree**: one approval is enough. | [Approval process](/docs/en/roles/hr_admins/settings/departments#approval-process) |
| AP-06 | Manager | Approve a request that is waiting for another approver in your department. | The request is approved. The employee and the original approver are notified. | [Override requests](/docs/en/roles/manager/approval_requests#overriding-requests-in-your-department) |
| AP-07 | Manager | Create a request for an employee in your department. | The request appears in the employee's calendar and follows the same approval rules. | [Requests for employees](/docs/en/roles/manager/create_an_absence_request_for_employees#create-a-request-for-an-employee) |
| AP-08 | Manager | Cancel an employee's future request. | The request disappears from the calendar. The employee and the approvers get an email. | [Cancel for employees](/docs/en/roles/manager/cancel_employee_requests#cancel-a-future-absence-request) |
| AP-09 | Employee | Request leave when your department's **Maximum absent** limit is reached. | absentify blocks the request. An admin can override the limit when booking for a user. | [Maximum absent](/docs/en/roles/hr_admins/settings/departments#maximum-absent) |
| AP-10 | Manager | Create a group request for a department (Essentials or Plus). | absentify books the absence for each user. Users who already have an absence in the period are skipped and listed with a note. | [Group requests](/docs/en/roles/manager/group_requests#creating-a-group-request) |

### Rules and visibility

| ID | Role | Test case | Expected result | Guide |
| - | - | - | - | - |
| RU-01 | HR admin | Open a test user's **Allowance** tab under **Settings > Users**. | The rule and the yearly amount match your policy. | [Review an allowance](/docs/en/roles/hr_admins/settings/users/edit/allowance#reviewing-an-allowance) |
| RU-02 | HR admin | Check a user who joins during the year. | The first year is prorated as set in **How is a partial year counted?** and rounded as set under **Rounding**. | [Partial years](/docs/en/roles/hr_admins/settings/allowances#how-is-a-partial-year-counted) |
| RU-03 | HR admin | Invite a user into a department that has its own allowance rule. | The new user gets the department's rule. | [Department rules](/docs/en/roles/hr_admins/settings/departments#allowance-rules-for-new-employees) |
| RU-04 | HR admin | Enter a user's remaining leave from your previous system as **Carryover**. | **Remaining** includes the amount. absentify records the change with your reason. | [Edit a year](/docs/en/roles/hr_admins/settings/users/edit/allowance#editing-a-manually-managed-year) |
| RU-05 | Employee | Open **How this allowance works** on the allowance card. | It shows the rule, including the carry-over limit and deadline your policy sets. | [Check the calculation](/docs/en/roles/employee/my_calendar#how-can-i-check-the-calculation) |
| RU-06 | Employee | Open the team overview while a colleague is absent with a private leave type, such as sick leave. | The colleague's absence shows as **Absent**. Department managers, assigned approvers, and admins see the actual leave type. | [Absence privacy](/docs/en/roles/hr_admins/guides/absence-privacy) |
| RU-07 | Employee | Open the team overview. | The user sees their own department. Other departments appear only if **Other departments** is on. | [Other departments](/docs/en/roles/hr_admins/settings/general/privacy#other-departments) |
| RU-08 | Employee | A user with a different public holiday calendar opens **My calendar**. | The calendar shows the holidays of the user's own calendar. | [Assign calendars](/docs/en/roles/hr_admins/settings/public-holidays#assigning-calendars-to-users) |
| RU-09 | Manager | Try to cancel an employee's absence that has already started. | This works only if **Retroactive absence management by department manager** is on. Otherwise only admins can do it. | [Retroactive management](/docs/en/roles/hr_admins/settings/general/privacy#retroactive-absence-management-by-department-manager) |
| RU-10 | HR admin | Create the export you use for payroll or reporting under **Settings > Export**. | The file is **Ready** under **Recent exports**. It contains the approved test absences with the same deducted amounts as absentify. | [Export](/docs/en/roles/hr_admins/settings/export#export-format) |

### Microsoft 365 and integrations

Test only what you use.

| ID | Role | Test case | Expected result | Guide |
| - | - | - | - | - |
| IN-01 | Employee | Submit a request with a leave type that creates Outlook entries. | The entry appears in the user's Outlook calendar, on request or after approval, as set on the leave type. The subject matches **Event's subject**. | [Calendar settings](/docs/en/roles/hr_admins/settings/leave_types/create-leave-types#calendar) |
| IN-02 | Employee | Cancel that request. | absentify removes the entry from Outlook. | [Calendar entries](/docs/en/roles/m365admins/permissions/outlook_calendar_synchronization#when-personal-calendar-entries-are-updated-or-removed) |
| IN-03 | Employee | Save an out-of-office template and select **Send test email**. Then book an absence. | The test message arrives in the user's inbox. absentify schedules the automatic reply in Outlook for the absence. | [Out-of-office replies](/docs/en/roles/employee/automatic_out_of_office_replies#how-automatic-out-of-office-replies-work) |
| IN-04 | HR admin | Sync a department to a shared or group calendar (Mini or higher). Then approve a matching request. | The absence appears in the shared calendar. | [Shared calendars](/docs/en/roles/hr_admins/settings/integrations/shared_calendar_synchronization) |
| IN-05 | Microsoft 365 admin | Add a user to an Entra ID group that syncs to a department, with auto-creation on. | The user appears under **Settings > Users** as inactive, in the synced department. The group owners get an email to activate the user. | [Group sync](/docs/en/roles/hr_admins/settings/integrations/teams_group_entra_id_group_sync#enable-auto-creation-of-user-accounts) |
| IN-06 | Microsoft 365 admin | Change a user's manager in Entra ID. The user's approver is synced from the Microsoft profile. | After the next profile sync, the new manager is the user's approver. | [Approver from Microsoft](/docs/en/roles/hr_admins/settings/users/edit/approver#2-microsoft-profile-synchronization) |
| IN-07 | HR admin | Assign a new user to a group provisioned by SCIM, with auto-creation on (Plus). | The account is created as inactive in the synced department. Admins get an email to activate it. | [SCIM](/docs/en/roles/hr_admins/settings/integrations/scim#enable-auto-creation-of-user-accounts) |
| IN-08 | HR admin | Subscribe a webhook to **Request created** and submit a request (Essentials or Plus). | Your endpoint receives the event. The **Notification Log** lists it with the status **Success**. | [Webhook history](/docs/en/roles/hr_admins/settings/integrations/webhooks#step-4-view-webhook-history) |
| IN-09 | HR admin | Run a Power Automate flow with the trigger **When a new request is created** (Essentials or Plus). | The flow runs when a request is submitted. | [Create a flow](/docs/en/roles/hr_admins/settings/integrations/power_automate#step-3-create-a-flow) |
| IN-10 | Approver | Approve a request for a user in a team connected to Microsoft Shifts (Essentials or Plus). | The time off appears in the team's Shifts timeline. Pending and declined requests do not. Canceling removes the entry. | [Shifts sync](/docs/en/roles/hr_admins/settings/integrations/microsoft_shifts#how-the-synchronization-works) |
| IN-11 | HR admin | Create the **DATEV LODAS (ASCII import)** export for a month (Essentials or Plus). | The file is **Ready** under **Recent exports**. It contains approved absences only, with the **Custom ID** as personnel number. | [DATEV LODAS export](/docs/en/roles/hr_admins/settings/export#datev-lodas) |
| IN-12 | Employee | Request a full day of home office with work location sync on. An approver approves it. | The day shows as Remote in the Outlook calendar and on the Teams people card. | [Work location](/docs/en/roles/m365admins/permissions/work_location#what-the-integration-does) |
| IN-13 | HR admin | Approve an absence for a user in a department synced to timeghost. | An absence entry appears in timeghost, in the category you selected. | [timeghost](/docs/en/roles/hr_admins/settings/integrations/timeghost#setting-up-the-integration) |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.