managed
We hold the credentials
WPIntegrate runs the client-credentials flow for your tenant. Your administrator grants consent once and is not asked again.
Using WordPress? Every integration here is also available as a plugin. Browse the plugin store →
Released component
Persons publishes a staff directory on WordPress or any site, read live from Entra ID, a Microsoft 365 group or a SharePoint list — no copy to maintain.
The component platform is in pre-launch, so Office 365 Persons Display for WordPress is the route open today — the same Microsoft 365 job, delivered as a WordPress plugin. If the web component is what you need, tell us and we will come back to you.
Persons itself, running here on a fictional host — the released bundle from our CDN, loaded the same way your own page would load it. The data behind it is sample data of our own invention; on your site the same component reads your Microsoft 365 tenant.
Putting it on the page
Two lines, and neither of them is a build step. Everything the component shows is resolved from the key at request time, so the markup on the page is the last markup anyone writes.
What it does
Persons publishes a staff directory — an employee directory, a team page, a departmental contact list — from people who already exist in Microsoft 365. It reads the members of a group, users in the Entra ID directory matched by a Graph filter, or the rows of a SharePoint list, and renders them as cards or rows. It is a script tag and a custom element, so the same directory renders on WordPress, on Drupal, or on a hand-written page. Card style, photo crop, column count and which fields appear are builder settings. When the source is a SharePoint list, each standard field is mapped to the column that holds it.
A team page goes stale the day somebody joins or leaves, because it is a hand-maintained copy of information that already exists in the directory. The usual fix is a custom post type, or a listing of the website’s own user accounts, and both are the same copy with a nicer editor on top: somebody still has to keep it honest for the life of the site. Reading the directory means the page is right whenever the directory is right, and nobody has to remember it.
<wpi-persons>managed or proxy — the tenant choosesWhere it runs
A custom element needs no build step and no framework, so where your site is built is not a question you have to answer before this one.
Named as examples of places HTML can be pasted. No partnership is implied, none of these are customers, and the marks beside them are our own drawings rather than any vendor's logo. WordPress is the one that gets more than an embed — the same Microsoft 365 jobs also ship as plugins with a Gutenberg block.
In detail
12 capabilities, every one of them resolved from the embed key rather than written into the page.
The members of a Microsoft 365 group, users in the Entra ID directory narrowed by a Graph filter, or the rows of a SharePoint list you maintain yourself. Whichever you pick, the component fetches it when a visitor loads the page. There is no import step and no staff list retyped into the website.
Point it at a SharePoint list and map each standard field onto the column that holds it. SharePoint addresses columns by their internal name rather than the label you see, so the builder reads the list’s columns and you pick which one is the name, job title, biography, email, phone, photo, LinkedIn URL and sort order.
The directory source takes a Graph filter, so narrowing on department or another user property produces a page for one team out of the same tenant that serves the rest. A group source does it by membership instead: whoever is in the group is on the page.
Two, three or four columns of cards, or a single column — a staff list, one person per row, rather than a wall of photographs. Column count is a builder setting and holds at that count on every screen, so pick two for a page that has to work on a phone.
Classic photo-above-text, a full-bleed photo with the text over a gradient, a centred circular avatar, or a compact row with a small avatar beside the text.
Circle, square or rounded crops, an optional default image for people who have no photo, and drawn initials when there is neither.
Photo, job title, biography, email, phone and LinkedIn are separately switchable, and the three contact fields are off by default. Switch email and phone on and the same component is a staff contact list; leave them off and a public team page carries names, titles and photos only. One source, two audiences.
A page size adds a pager once the directory runs past one screen, up to a hundred people to a page, or shows everybody at once when it is set to zero.
A maximum-results limit stops a large directory being pulled in full when only one department belongs on the page.
The embed renders only on domains you list, a Google Tag Manager container id can be attached, and custom CSS covers anything the settings do not.
A card opens a panel over the directory with a larger photo and the biography in full, rather than truncated to fit a card. Escape closes it and focus returns to the card it came from.
There is no write path back to Microsoft 365. A job title is corrected in Entra ID or in the SharePoint list, once, and every page carrying the component follows. Nobody needs an account on your website to appear on it, so a new starter is not an account to create and a leaver is not an account to delete.
Office 365 Persons Display for WordPress is on sale in the store now and does this job inside WordPress. The web component is in pre-launch — if that is the delivery you need, tell us and we will come back to you.
Reaching your tenant
Every tenant runs in one mode or the other, and the choice belongs to your IT rather than to us. It is the reason this works inside organisations that will not delegate Graph access to a vendor.
managed
We hold the credentials
WPIntegrate runs the client-credentials flow for your tenant. Your administrator grants consent once and is not asked again.
proxy
You hold the credentials
You supply a base URL and an API key for your own gateway. We store that key encrypted at rest and never hold a Graph token at all.
Questions
If yours is not here, ask it — the answers come back from a person rather than a form.
From Microsoft 365, in one of three ways: the members of a Microsoft 365 group, users in the Entra ID directory matched by a Graph filter, or the rows of a SharePoint list you maintain yourself. There is no fourth way, no import step, and no copy of the directory kept on your website.
Yes. Paste two lines into the page and the names come from Microsoft 365 rather than from posts somebody has to keep editing. Nothing about the component is WordPress-specific, so the same two lines work on Drupal, on a static site, or inside another CMS.
Yes, and the difference between them is not only the packaging. Office 365 Persons Display is an employee directory WordPress plugin you install and licence; this page describes the web component, which is a script tag and a custom element. The choice that decides it: the plugin renders a search box over your directory, and this component renders none. If visitors have to search the directory themselves, take the plugin. If you want the same directory on a site that is not WordPress, take this.
Yes, under the current names. Office 365 became Microsoft 365, and the directory behind it became Entra ID, formerly Azure AD. The component reads that directory through Microsoft Graph, so an Office 365 employee directory and a Microsoft 365 employee directory are the same page here.
Not in this component. There is no search box and no filter control on the rendered page. Narrowing happens once, by whoever configures the embed: a Graph filter on the directory source, a group whose membership is the audience, or a SharePoint list that already holds the right people. If a visitor-facing search is a requirement, the WordPress plugin has one and this does not — better to know that now than after the install.
No. People come from Microsoft 365, so nobody needs a WordPress account, a login on your site, or a profile somebody has to create for them. A directory built from your website’s own user accounts makes every new starter an account to provision and every leaver an account to remove, on a public site. This has neither.
Yes. The directory source accepts a Graph filter, so filtering on department or any other user property produces a page for one team. A Microsoft 365 group does the same by membership: whoever is in the group is on the page.
Only the ones you switch on. Email, phone and LinkedIn are off by default, so a team page publishes names, job titles, photos and biographies unless you decide otherwise. That default is deliberate. Publishing a directory should not publish everybody’s phone number by accident.
For staff contact details, yes. Switch email and phone on and the same component is a staff contact list. Where a WordPress contact list plugin asks you to type the addresses in and keep them right, these are the addresses Microsoft 365 already holds. The compact card style and the list layout suit that better than large photographs: a row per person, a small avatar, name, job title and how to reach them.
Yes. Layout is grid or list. A staff list is one column, one person per row; the grid is two, three or four columns of cards. Both come from the same source and the same settings, so switching between them is a choice rather than a rebuild.
Where the source is a group or the directory, yes — the photo is the one on the person’s Microsoft 365 profile. Where the source is a SharePoint list, the photo is whatever the column you mapped holds, which is a file you maintain rather than their profile picture. For either, you can supply a default image for people who have none, and initials are drawn when there is neither.
No. The component reads. Correcting a job title happens in Microsoft 365 or in the SharePoint list, and the page follows. Nothing on your website can change the directory.
No, and it is worth being plain about that. A WordPress employee management plugin handles records, leave, onboarding and reviews, and none of that is here. This publishes people who already exist in Microsoft 365 onto a web page. The managing happens in Microsoft 365 and in your HR system, and none of it happens on your website.
One thing, once. In managed mode we hold the Azure credentials and a tenant administrator grants consent a single time; in proxy mode you supply a base URL and an API key for your own gateway, and we hold no credential for your tenant. After that the directory is readable and nothing else is asked of IT.