Using WordPress? Every integration here is also available as a plugin. Browse the plugin store →

Microsoft 365, on the website you already have

Microsoft 365 data, rendered on any page.

WPIntegrate puts live Microsoft 365 data — Bookings, Calendar, SharePoint documents, Persons, Forms and Power BI — on any website, delivered either as an embeddable web component or as a WordPress plugin.

No Azure app registration and no Graph code. Your IT approves once — or never, if you route Graph through your own proxy.

One element on a customer’s page

northwind-dental.example/appointments
Northwind Dental
New patient consultation 30 min · Microsoft Bookings
9Mon 10Tue 11Wed 12Thu 13Fri
09:00 09:30 10:00 11:15 13:00 14:30
Confirm 10:00 Times shown in the visitor’s timezone

Rendered on the customer’s page, in the customer’s brand. WPIntegrate styling stops at the boundary of our own properties.

8 released components
Bookings, Calendar, Documents, Video Gallery, Persons, Form Builder, Outlook Booking and Power BI. 4 more are built and in testing.
2 delivery models
An embeddable web component, or a WordPress plugin from the store. Both permanent, neither a funnel for the other.
2 Graph access modes
managed, where we hold the Azure credentials — or proxy, where you do and we never see a token.
WCAG 2.1 AA
Verified at token-generation time in both light and dark, because our contrast failures would land on your domain.

See it working

This is what lands on the page.

Three released components, drawn as they appear on somebody else’s website. Switch between them — the frame, the host page and the markup all change together.

riverside-physio.example/book
Riverside Physiotherapy
Initial assessment 45 min · with Dana Okafor
2Mon 3Tue 4Wed 5Thu 6Fri
08:30 10:00 11:30 14:00 15:30 17:00
Confirm 11:30 Written straight back into Microsoft Bookings
<script src="https://cdn.wpintegrate.com/v1/bookings.js"></script>
<wpi-bookings embed-key="your-embed-key"></wpi-bookings>
Illustrative markup. The real snippet, carrying your own embed key, comes from the builder.

Availability is read from Microsoft at the moment the visitor looks, and the confirmed appointment lands in Bookings as if it had been made on Microsoft’s own page.

The catalogue

Twelve components. One embed pattern.

Each one reads a Microsoft 365 source through Graph, is configured per instance, and ships as a single custom element. 8 of the 12 are released today; the other 4 are built and in testing.

Released

8
  • Bookings

    <wpi-bookings>

    Bookings shows your live Microsoft Bookings services, staff and open time slots on your own website, and writes the confirmed appointment straight back into Microsoft 365.

    Also a WordPress plugin

  • Calendar

    <wpi-calendar>

    Calendar publishes events from Outlook, a SharePoint Events list, an ICS feed or a JSON API on your site as a month grid, an agenda list or a grid of event cards.

    Also a WordPress plugin

  • Documents

    <wpi-documents>

    Documents puts a SharePoint library or a OneDrive folder on your website as a browsable, searchable file list, with folder navigation, in-page previews and downloads.

    Also a WordPress plugin

  • Video Gallery

    <wpi-video-gallery>

    Video Gallery gathers videos from SharePoint, OneDrive, YouTube, Vimeo and direct links into one grid on your site, with playback in the page.

    Also a WordPress plugin

  • Persons

    <wpi-persons>

    Persons publishes a staff directory on your website from Entra ID, a Microsoft 365 group or a SharePoint list, with photos, job titles and whichever contact details you choose to show.

    Also a WordPress plugin

  • Form Builder

    <wpi-form>

    Form Builder makes multi-step forms and quote calculators that deliver each submission to your inbox or a webhook, embedded inline or behind a floating button.

    Web component only

  • Outlook Booking

    <wpi-outlook-booking>

    Outlook Booking takes appointments and room reservations directly against Outlook calendars and room mailboxes, with no Microsoft Bookings licence required.

    Also a WordPress plugin

  • Power BI

    <wpi-powerbi>

    Power BI embeds a report, dashboard or single tile on your website — either a Publish-to-web link, or a secured token-based embed of a private report that visitors need no licence to see.

    Also a WordPress plugin

Coming soon

4

Built, in testing, not yet released. No dates announced.

  • Maps

    <wpi-maps>

    Maps plots the rows of a SharePoint list or an Excel workbook as pins on an interactive map, with clustering, a category filter and a location list beside it — built and in testing, not yet released to customers.

    Web component only

  • Teams Chat

    <wpi-teams-chat>

    Teams Chat puts a chat widget on your website whose messages land in a Microsoft Teams channel or group chat and whose replies come back to the page — built and in testing, not yet released to customers.

    Web component only

  • Photo Gallery

    <wpi-photo-gallery>

    Photo Gallery publishes images from a SharePoint library, a OneDrive folder or a SharePoint list as a grid, masonry, justified, carousel or slider gallery with an in-page lightbox — built and in testing, not yet released to customers.

    Web component only

  • Audio Gallery

    <wpi-audio-gallery>

    Audio Gallery turns a SharePoint library, a OneDrive folder or a SharePoint list of tracks into a playlist that plays in the page — built and in testing, not yet released to customers.

    Web component only

A WordPress plugin doing a similar job exists for 7 of these, and the plugin is the one you can buy today.

See the full product catalogue

Where it runs

If you can paste HTML, it renders.

A component is a script tag and a custom element. There is no build step, no framework requirement and nothing to install on the page — so the place your site is built is not a question you have to answer first.

  • WordPress
  • Webflow
  • Squarespace
  • Shopify
  • Wix
  • Astro
  • Next.js
  • Nuxt
  • Laravel
  • Drupal
  • Joomla
  • SharePoint pages
  • Plain HTML
  • Any static host

Named as examples of places HTML can be pasted. No partnership or endorsement is implied, and none of these are customers. WordPress is the one that gets more than an embed: the same jobs also ship as plugins with a Gutenberg block.

What you are actually installing

Five things that make this a component and not an iframe.

The embed

Two lines, and the page is done with you.

A script tag and one custom element carrying an embed key. Everything the widget needs — which Microsoft 365 source, which layout, which colours — resolves from that key at boot, so changing any of it later never means editing the page again.

<script src="https://cdn.wpintegrate.com/v1/calendar.js"></script>
<wpi-calendar embed-key="your-embed-key"></wpi-calendar>
Illustrative. cdn.wpintegrate.com stands in for the real bundle host.

The builder

Configured in a form, not in your codebase.

Layout, source, fields shown, locale, clock, colours and corner radius are settings on the instance. A marketing lead changing the arrangement of a team page does not become a deployment.

Layout

List Grid Compact

Accent

Fields shown

Job title Photo Email

White label

The host page’s brand wins, including its dark mode.

A tenant sets a brand theme once and every instance inherits it; any single instance can override it again. We supply defaults, never mandates — the widget is not a badge for us on somebody else’s site.

atlas-studio.example/schedule
Atlas Studio
Studio tour 20 min · in the host’s own palette
11:00 11:30 12:00

Live data

Read at request time, so there is no second copy to keep in step.

The library, the calendar and the directory stay where your team already maintains them. A file added in SharePoint or a leaver removed from a group shows up on the site without anyone touching the page.

  1. Host page

    The widget boots

    and asks for its configuration by embed key.

  2. WPIntegrate

    Our API answers

    after checking the subscription, then reads Graph.

  3. Microsoft 365

    The source of record

    returns only what the consented scopes allow.

Licensing

Enforced on the server, not in the browser.

Every configuration request is checked against the subscription before it returns, and an embed key only renders on the domains you list. A copied snippet does not work somewhere else.

GET /api/config/<embed-key>

{ "licensed": true, "config": { … } }

Refused for a domain that is not on the allowlist, and for a subscription that has lapsed.

Graph access

Two ways for us to reach Graph. One of them never lets us.

Every tenant runs in one mode or the other, and the choice belongs to the customer’s 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 per tenant. Your IT administrator grants consent once and is not asked for anything again.

  1. Host page

    The customer’s website

  2. WPIntegrate

    Our API calls Graph with our Azure credentials

  3. Microsoft

    Graph returns what the consented scopes allow

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.

  1. Host page

    Identical embed — nothing on the page changes

  2. WPIntegrate

    Our API forwards to your gateway

  3. Yours

    Your perimeter, your credentials, your audit log

  4. Microsoft

    Graph traffic never leaves your network

Two front doors

Ship it as a component, or ship it as a plugin.

Both lines are permanent and neither is a funnel for the other. Pick the one that matches the stack you already run.

Web component

Any site, any stack

A script tag and a custom element that behaves the same in Astro, Next.js, Webflow, a static HTML file or a WordPress page.

  • Each instance is configured in a builder and carries its own embed key.
  • Licensing is checked server-side on every configuration request.
  • Built on Fluent UI and shipped as custom elements, so host page styles stay out.
  • White-labelled: the tenant’s brand theme is the default, per-instance overrides win.

In pre-launch — not yet on sale.

Tell us what you need

WordPress plugin

If you live inside WordPress

A mature line of Office 365 plugins sold through our store. Install, activate, drop in the block or the shortcode.

  • Bought and licensed at plugins.wpintegrate.com.
  • A Gutenberg block, so editors place the widget without touching code.
  • Update metadata and licence checks come from api.wpintegrate.com.
  • The config-fetch proxy keeps the embed key on your own server.

On sale today.

Browse the plugin store

Questions

The things people ask before they buy.

What exactly do we paste into our site?

Two lines: a script tag pointing at the component bundle, and one custom element carrying an embed key. Everything else — the Microsoft 365 source, the layout, the theme — is configured against that key, so changing any of it never means editing the page again.

Do we have to register an Azure application?

No. In managed mode WPIntegrate holds the Azure credentials and your IT administrator grants consent once. In proxy mode you supply your own gateway base URL and API key, and Microsoft Graph traffic never leaves your perimeter.

Will the widget look like WPIntegrate?

Only if you want it to. Widgets are white-labelled: a tenant sets a brand theme and any single instance can override it. The design system supplies defaults rather than mandates, and WPIntegrate branding stops at the boundary of our own properties.

Does it work outside WordPress?

Yes. A custom element runs in any framework or in plain HTML with no build step, so the same embed works in Astro, Next.js, Webflow, Squarespace or a static file you edit by hand.

Are the WordPress plugins being replaced by components?

No. Both lines are permanent and neither is a funnel for the other. The plugins are for teams who live inside WordPress; the components are for everyone else, including WordPress sites that would rather embed.

Where does our data end up?

Nowhere new. Components read Microsoft 365 at request time rather than keeping a copy, so what is on the page is what is in SharePoint, Outlook or Entra ID. Form and booking submissions are held for seven days so they can be exported, then deleted.

Can we buy the web components today?

Not yet. The component platform is in pre-launch, so the channel open today is the WordPress plugin store at plugins.wpintegrate.com. If you want a component rather than a plugin, say so through the contact page and we will come back to you.

Will our existing plugin installs keep updating?

Yes. Installed plugins call api.wpintegrate.com for update metadata and licence checks, and that stays live. Nothing we ship is allowed to quietly break a site that has not upgraded.

Start with one page and one Microsoft 365 source.

The store sells the WordPress line today, with the same Microsoft 365 jobs behind it. If a web component is what you need instead, tell us and we will come back to you.