Overview
A people directory shows data about every employee, so it is usually reviewed more carefully than other web parts. This article describes, for the current version of Vitextra Employee Directory, exactly what the product reads, where it keeps settings and personal data, and what leaves the browser. It is the Employee Directory–specific companion to the general article KB10363. Where Vitextra Products Store Your Data: Privacy, Data Residency and GDPR.
The solution package contains three web parts: Employee Directory, Employee Directory (Entra ID) and New Employees. Unless a section says otherwise, the statements apply to all three. The facts below are taken from the source code of the product.
Summary for security reviewers
| Question | Answer |
|---|---|
| Where is people data processed? | In the browser of the signed-in user, on the SharePoint page or in the Microsoft Teams client |
| Under whose identity? | The signed-in user. All Microsoft Graph permissions are delegated; there is no service account and no app-only access |
| What does it read? | Directory profiles, photos, presence, free/busy, manager and direct reports, "people I work with" from Microsoft Graph; user profiles, skills and recent documents from SharePoint search |
| Does it write to Microsoft 365? | It reads employee data; editing a web part saves its configuration in the SharePoint page |
| Where are the settings stored? | In the web part properties on the page; the optional default for the Teams personal app is stored on vitextra.com per tenant |
| What is kept in the browser? | The user's favorites (all web parts) and a compressed directory cache (Employee Directory (Entra ID) only), in the local storage of the browser |
| What do Vitextra services receive? | The license check identifiers, the saved Teams personal-app settings and usage telemetry. No directory data, profiles, photos, presence or calendar data |
| Data residency | Microsoft 365 is the source of directory and profile data. Browser caches, favorites and downloaded files also hold copies on users’ devices; Vitextra does not copy or index the directory |
What Employee Directory reads
The web parts call Microsoft Graph and the SharePoint Search REST API directly from the browser with a token issued for the signed-in user. The following data is read; the permission column shows the delegated Microsoft Graph permission that the feature relies on.
| Data | Source | Permission | Used for |
|---|---|---|---|
| User accounts and profile attributes: name, job title, department, company, office location, e-mail, phone numbers, address, employee ID and type, account status, user type, creation date, assigned licenses, on-premises extension attributes and the custom attributes an editor adds | Microsoft Graph /users | User.Read.All | The directory list, search, refiners, filters, New Employees |
| Details of one person: about me, interests, skills, schools, past projects | Microsoft Graph /users/{id} | User.Read.All | The details pane |
| Manager and direct reports | Microsoft Graph /users/{id}/manager, /directReports, /me/manager, /me/directReports | User.Read.All | The Manager column, the details pane, the My team quick filter |
| Profile photos | Microsoft Graph /users/{id}/photo/$value | User.Read.All | Cards, list and details pane |
| Members of directory roles and the list of groups | Microsoft Graph /directoryRoles, /groups | Directory.Read.All | Filter conditions by user role and by group |
| Presence and out-of-office message | Microsoft Graph /users/{id}/presence | Presence.Read.All | The presence indicator |
| Free/busy and working hours for today | Microsoft Graph /me/calendar/getSchedule | Calendars.Read | The Availability and Local time sections of the details pane |
| The people the user works with most | Microsoft Graph /me/people | People.Read | The People I work with quick filter |
| User profiles | SharePoint search (People results) | None (the user's own search rights) | The User profiles data source of the Employee Directory web part |
| Skills | SharePoint search (People results) | None (the user's own search rights) | Search by skills |
| Recent documents of a person | SharePoint search: the five documents authored by that person with the most recent modification dates | None (the user's own search rights) | The Recent Documents section of the details pane |
The permissions are requested by the solution package and approved once by a Global Administrator; see KB10360. How to Approve Microsoft Graph API Permissions for Vitextra Solutions in the SharePoint Admin Center. A feature-by-feature explanation of each permission is in KB10463. Microsoft Graph Permissions Required by Employee Directory.
Because every request runs as the signed-in user:
- Access follows the delegated token. The available data depends on the approved API permissions and the signed-in user’s effective access. It need not match the people or attributes shown by another Microsoft 365 interface.
- SharePoint search is security-trimmed. User profiles hidden from the address book are excluded unless the editor turns on Show hidden users, and the Recent Documents section lists only documents that the viewer is allowed to open.
- Calendars show only free/busy. The Availability section shows the status of each half-hour slot (free, tentative, busy, out of office); meeting subjects and locations are not displayed.
📝 Note
Guest accounts are excluded from the main Entra ID directory: Employee Directory (Entra ID) filters them in the browser, while the Graph source of Employee Directory excludes them in its query. SharePoint profile results depend on the search index and query. Personal quick filters use separate lists; in the Entra ID web part they are intersected with the loaded directory after exclusions and the predefined filter.
Employee Directory reads employee data
The web parts do not modify employee profiles, directory accounts or calendar items and do not create SharePoint lists. Reading data requires the relevant Microsoft Graph and SharePoint permissions. Editing the web part saves its configuration in the SharePoint page and requires permission to edit that page.
Users can save directory data to their own device in two ways:
- Export - when the Microsoft Excel spreadsheet option of the Export group is on, the user can download the results as the file employee-directory.xlsx. The file is built in the browser and contains the visible columns except the photo and presence.
- vCard - the Download vCard action saves the contact card of one person as a file.
Actions such as Chat in Teams, Call in Teams or Send E-mail only open Microsoft Teams or the user's e-mail program; the web part does not send messages itself.
Where the settings are stored
Web part properties. All settings an editor makes in the property pane - data source, columns, filters, layout, quick filters, actions - are stored in the properties of the web part, inside the page in the Site Pages library. They are versioned with the page and readable by everyone who can read the page. They contain configuration only, not employee records.
Default for the Teams personal app. In SharePoint, the property pane of Employee Directory and Employee Directory (Entra ID) contains the group Personal app (Microsoft Teams) with the text "You can save the current configuration as a default one for your tenant. Personal App hosted in Microsoft Teams uses this configuration." and the Save Settings button. Selecting the button sends the current settings to vitextra.com, where they are stored for your tenant ID and the product ID of the web part. When the web part opens as a personal app in Microsoft Teams (not as a channel tab), it reads this record and applies it over its own properties.

The saved record contains exactly the following settings and nothing else:
| Area | Employee Directory | Employee Directory (Entra ID) |
|---|---|---|
| Data source | Data source, Predefined Query, Show hidden users, Show only users with non-empty department | The options of the Exclude Employees group, the filter conditions |
| Columns and search | Columns (including which are searchable), custom attributes, search box and its placeholder, Search by skills | Columns (including which are searchable), custom attributes, search box, A–Z navigation, Search by skills |
| Layout | View, compact view, card fields and card size, grouping, sorting, page size, paging, maximum number of items, total number of results, the details pane | View, compact view, card fields and card size, grouping, sorting, page size, display of all items, total number of results |
| Refinement panel | On/off, position, refiners | On/off, position, refiners |
| Details pane | Availability, Local time and working hours, Recent Documents | Availability, Local time and working hours, Recent Documents |
| Actions and filters | The six actions of the Context Menu and of Quick Actions, the four Quick Filters, the Export option | The six actions of the Context Menu and of Quick Actions, the four Quick Filters, the Export option |
The web part title and the other toggles of the Panel group (Manager, Direct Reports, About Me, Interests, Skills) are not part of the saved record. The New Employees web part has no Teams default.
❗ Important
The saved record contains no directory data, but it does contain whatever an editor typed into the settings - for example a department name in a filter condition, the text of a Predefined Query or the names of custom attributes. Keep personal data out of these settings. To stop using the Teams default, save a configuration you are comfortable with, or ask Vitextra support to delete the record for your tenant.
Favorites in the browser
The Favorites quick filter (see KB10214. Employee Directory Quick Filters: My Department, My Team, People I Work With, Favorites) keeps the people a user has starred with Add to favorites in the local storage of the browser. Nothing is written to Microsoft 365 or sent to Vitextra.
- Key.
Vitextra.EmployeeDirectory.Favorites.<object ID>, where the object ID is the Microsoft Entra ID object ID of the signed-in user. Each user who signs in to the same browser profile therefore has a separate list. - Content. A snapshot of each starred person’s loaded profile attributes and custom attributes. Presence, the manager object, assigned licenses, groups and roles are removed before saving. The snapshot remains until the favorite is removed. Employee Directory displays these saved copies; Employee Directory (Entra ID) uses the IDs to select current loaded records that pass its exclusions and predefined filter, so a stored favorite need not be visible.
- Scope. The list is shared by Employee Directory web parts on the same SharePoint domain in the same browser profile. Changes notify other browser tabs through the storage event. Another web part on the same page may need a reload.
- No roaming. Favorites do not follow the user to another device, browser or browser profile. The Microsoft Teams client keeps its own storage, so favorites set in Teams are separate from those set in the browser.
- Removal. The user removes a person with Remove from favorites. All favorites are removed when the browser data of the SharePoint site is cleared (see How to clear the data kept in the browser).
Directory cache of the Entra ID web part
To open quickly in large tenants, the Employee Directory (Entra ID) web part loads the whole user list from Microsoft Graph and keeps it in the local storage of the browser.
- Key.
Vitextra.EmployeeDirectory.Data. The value is a compressed JSON document with the load time and the list of users. - Content. The profile attributes returned by Microsoft Graph, including managers when requested. Guest accounts remain in the cache but are excluded from display. Disabled accounts are excluded when Exclude blocked users is on; when it is off, they can remain in the cache and appear in the list.
- Refresh. On the next visit the list is shown from the cache immediately. If the cache is older than 24 hours, the web part reloads the list from Microsoft Graph in the background. Above the results, the web part shows Last updated: with the age of the data and a Refresh link that reloads the list at once. Changing the exclusion options or the custom attributes of the web part also reloads the list. The 24-hour threshold is checked when cached data is loaded; it is not a periodic timer or a guaranteed refresh interval. If a refresh fails and a nonempty list with a load date is already available, that list stays visible with a warning; without such data, a loading error is shown. The stored cache is replaced only after a successful load and write to browser storage.
- Scope. One cache per browser profile and SharePoint domain, without separation by user or web part. If saving fails, the current list remains usable, but an older saved copy can remain. A full load is needed on the next visit only when no usable cache exists.

The Employee Directory web part (both data sources) and the New Employees web part keep no directory cache; they query Microsoft 365 each time the page opens. Profile photos are kept in memory only while the page is open.
❗ Important
On shared or kiosk computers, the cached directory is readable by the next person who uses the same browser profile, and it contains attributes such as phone numbers and addresses of all employees. Give each person a separate Windows account or browser profile, use a private window, or apply a policy that clears site data when the browser closes.
How to clear the data kept in the browser
Users and administrators can remove the favorites and the directory cache at any time:
- For one user, in the browser. Clear the cookies and site data of your SharePoint domain (for example
https://contoso.sharepoint.com) in the browser settings. This removes the favorites, the directory cache and the sign-in cookies of the site, so SharePoint asks you to sign in again. - For a single key. In Microsoft Edge or Google Chrome, open the developer tools (F12), select Application > Local storage > your SharePoint domain, and delete
Vitextra.EmployeeDirectory.DataorVitextra.EmployeeDirectory.Favorites.<object ID>. - Only the cache. Select Refresh to request current data. This does not delete the stored copy; it is replaced only if loading and saving succeed.
- In Microsoft Teams. The Teams client keeps its own storage; clear it with Microsoft's procedure for clearing the Teams cache.
- For a fleet of devices. Use a browser policy that clears site data on exit, or private browsing, on shared devices.

What is sent to Vitextra and to Application Insights
No request to Vitextra contains employee records, profile attributes, photos, presence, calendar data, favorites or search terms. The product sends only the following:
| Purpose | What is sent | Where |
|---|---|---|
| License check | Tenant ID, the object ID of the signed-in user, the address of the site (in Teams, the SharePoint host name), the product ID, the web part name and version | vitextra.com |
| Teams personal-app settings | When an editor selects Save Settings: the tenant ID, the product ID and the settings listed in Where the settings are stored. When the personal app opens: the tenant ID and the product ID, to read the record | vitextra.com |
| Usage telemetry | One "Load Web Part" event per render: the web part name and version, the ID and address of the site, the object ID of the user, the language of the site and of the interface, and whether the web part runs in Teams. For errors: the web part name, solution ID and version, the site address and the error details | Azure Application Insights |
| Product files | Ordinary file requests for the scripts of the web parts | static.vitextra.com |
In all of these, the user is identified by the object ID of the account - a GUID - not by name or e-mail address. Like any Application Insights client, the telemetry SDK adds its standard technical context to each record, such as an anonymous session identifier and browser information. The license status is shown in the About group of the property pane; if vitextra.com cannot be reached, the web parts still work.
📝 Note
The processing of the license and telemetry identifiers by Vitextra is described in the Privacy Policy. Vitextra does not receive the content of your directory.
Network hosts to allow
If outbound connections are restricted, the browsers and the Teams clients of the users need HTTPS access to:
- your SharePoint domain (
<tenant>.sharepoint.com) andgraph.microsoft.com- all directory, profile, search, presence and calendar data; static.vitextra.com- the scripts of the web parts (required: without it the web parts cannot load);vitextra.com- license check and the Teams personal-app settings;dc.services.visualstudio.com- Application Insights telemetry (optional: if blocked, the web parts work without it);spoprod-a.akamaihd.netand the Microsoft content delivery networks that SharePoint already uses - file-type icons in Recent Documents and the Fluent UI icons;teams.microsoft.com- only when users select Chat in Teams, Call in Teams or Schedule a meeting.
Data protection and GDPR
- Controller and processor. The directory data belongs to your Microsoft 365 tenant; you are the controller and Microsoft is your processor. Employee Directory displays this data to users who are already allowed to see it in Microsoft 365.
- Data minimization. Administrators decide which columns, custom attributes and details-pane sections are shown. Turn off sections you do not need, such as Availability or Recent Documents, and do not add sensitive custom attributes.
- Retention on devices. Favorites remain until the user removes them or clears browser data. The directory cache has no automatic deletion deadline: after 24 hours, loading it triggers a background refresh attempt. A successful load replaces the stored copy if browser storage permits; a failed refresh leaves the old copy in place.
- Right to erasure. A person deleted in Microsoft Entra ID disappears from the directory after the next successful data load; there is no guaranteed 24-hour removal deadline. Copies in favorites remain until users remove them. See KB10363. Where Vitextra Products Store Your Data: Privacy, Data Residency and GDPR.
💡 Tip
For a security questionnaire, combine this article with KB10463. Microsoft Graph Permissions Required by Employee Directory for the permission justification and KB10363. Where Vitextra Products Store Your Data: Privacy, Data Residency and GDPR for the company-wide statements. For a data processing agreement, contact Vitextra support.
Related articles
- KB10363. Where Vitextra Products Store Your Data: Privacy, Data Residency and GDPR
- KB10463. Microsoft Graph Permissions Required by Employee Directory
- KB10360. How to Approve Microsoft Graph API Permissions for Vitextra Solutions in the SharePoint Admin Center
- KB10214. Employee Directory Quick Filters: My Department, My Team, People I Work With, Favorites