Office 365

Connect Office 365 with Webflow to send form submissions to Outlook, Excel, SharePoint, and Teams and embed Microsoft Forms and Bookings on your pages.

→
↗
►
↓
←
↑
Install app
→
↗
►
↓
←
↑
View website
→
↗
►
↓
←
↑
View lesson
→
↗
►
↓
←
↑
A record settings
→
↗
►
↓
←
↑
CNAME record settings
Office 365

Webflow forms store every submission and email a notification from Webflow's own no-reply address. Nothing in Webflow connects those submissions to Office 365 workflows. Sales and operations teams that work in Office 365 still copy lead data out of the site dashboard by hand.

Connecting Microsoft 365 (the current name for Office 365) with Webflow closes that gap. A form_submission webhook can distribute each lead across Microsoft 365. Microsoft Forms and Bookings pages embed directly on Webflow pages as iframes. Microsoft Graph and the Webflow Data API push SharePoint list items and Outlook events into Webflow CMS collections.

Marketing operations, sales operations, HR, and IT teams at organizations standardized on Microsoft 365 get the most from this pairing. Agencies building sites for insurance brokerages, clinics, schools, and nonprofits fit the pattern too. If your client already books consultations in Bookings or tracks leads in a shared Excel workbook, these methods keep that workflow intact.

How to integrate Office 365 with Webflow

What is Office 365? Office 365 is the consumer and small business branding Microsoft retired in favour of Microsoft 365 in April 2020, though Microsoft still ships Office 365 enterprise and education SKUs such as Office 365 E1, E3 and E5 and its own documentation still writes "Microsoft 365 or Office 365". It bundles Exchange Online mail, SharePoint Online and OneDrive storage, Teams chat, Forms, Bookings, and Power Automate. Microsoft Graph is the REST gateway to that data, with a v1.0 base URL of https://graph.microsoft.com/v1.0.

Teams reach for this pairing when the website runs on Webflow but the back office runs on Microsoft 365. Marketing publishes pages without waiting on a developer, and sales reads new leads in the channel it already watches rather than in a separate site dashboard. The same split covers appointment booking, document publishing, and editorial approval.

The Office 365-Webflow integration supports three approaches:

  • Code Embed elements place Microsoft Forms, Bookings pages, and OneDrive documents on Webflow pages without writing code.
  • Automation platforms connect Webflow form submissions, orders, and CMS events to Outlook, Excel, SharePoint, OneDrive, and Teams.
  • The Webflow Data API and Microsoft Graph give you full control over two-way sync between SharePoint, Outlook, and the CMS, but require server-side development.

Most implementations combine two or more of these methods depending on the complexity of the setup.

Embed Microsoft Forms, Bookings, and OneDrive documents with Code Embed elements

A Code Embed element holds the iframe snippet Microsoft generates for a form, a booking page, or a document. Open the Add panel, add a Code Embed element to the canvas, paste the snippet, and publish. Each element accepts up to 50,000 characters, far more than any Microsoft iframe needs. Site-wide the site-wide head and body fields are the wrong place for these snippets; they belong on the page the visitor sees.

Embed a Microsoft Form

Responses land in Forms and its auto-generated Excel workbook. The service handles surveys and quizzes, including polls. Microsoft’s sharing guide tells you to paste the embed code "into a web page, Sway, or a document," and a Webflow page is that web page.

To embed a form:

  1. Open the form in Microsoft Forms and select Collect responses.
  2. Set the audience to Anyone can respond so anonymous visitors can submit.
  3. Select the Embed button and copy the iframe code.
  4. In Webflow, open the Add panel, add a Code Embed element, and paste the code.
  5. Save the element and publish the site.

The other two audience options, "Only people in my organization can respond" and "Specific people in my organization can respond," require a work or school account, so public visitors hit a sign-in wall. If you serve a Content-Security-Policy on the page, its frame-src directive has to allow the Microsoft host the iframe loads from, or the frame renders empty with no visible error.

Embed a Microsoft Bookings page

Staff Outlook calendars determine the available slots on the published scheduling page, which is why this method suits teams whose availability already lives in Outlook. The Bookings FAQ states: "We provide a way for you to embed your Bookings calendar in your site via an iFrame." That same page lists which subscriptions include Bookings, and notes that Bookings "isn't available as a standalone app" and that Outlook on the web must be enabled to use it.

To embed a booking page:

  1. Open the app launcher, select Bookings, and choose the booking page.
  2. Open the Booking page tab and copy the iframe embed code.
  3. Leave "Require a Microsoft 365 or Office 365 account from my organization to book" unchecked for public sites.
  4. Paste the code into a Code Embed element in Webflow and publish.

Microsoft documents a ceiling of 100 staff members on a single booking page. Embed the public self-service booking URL rather than a tenant-restricted one: the checkbox "Require a Microsoft 365 or Office 365 account from my organization to book" limits the page to signed-in users in your tenant, which defeats the point of putting it on a public marketing site.

Embed OneDrive, Excel, Word, and PowerPoint files

Visitors can view embedded Word, Excel, and PowerPoint files stored in OneDrive or SharePoint without signing in. Use these view-only embed codes to publish rate cards and policy documents on resource pages; slide decks work too. Editable embeds on external domains do not work; SharePoint Online and Office for the web block them through CSP frame-ancestors restrictions.

To embed a document:

  • In OneDrive, select the file, choose </> Embed, then Generate, and copy the HTML.
  • For an Excel workbook, right-click it, choose Embed, then Generate. Add wdAllowInteractivity=True to the URL to allow filtering and PivotTable interaction.
  • For Word, go to File > Share > Embed this document and select Generate.
  • For PowerPoint, open the deck in PowerPoint for the web and go to File > Share > Embed this Presentation.

Paste the resulting iframe into a Code Embed element and publish.

Embed individual documents rather than whole SharePoint pages, which are not built to be framed by another site. Sharing policy is the other thing to check before you rely on this: a SharePoint administrator who turns off anonymous sharing for the tenant breaks every document embed on the Webflow site at once, and nothing on the Webflow side will report it. Outlook on the web can publish a read-only HTML and ICS calendar link, but that link is meant to be shared rather than framed, so treat a calendar as a link and a document as an embed.

Connect with Zapier, Make, Power Automate, or other automation tools

Zapier, Make, n8n, IFTTT, and viaSocket each pair a Webflow connector with Outlook and Teams connectors, and Power Automate receives Webflow webhooks through its HTTP trigger. Zapier's Webflow triggers cover New Form Submission, New Comment, New Order, New Resolved Comment Thread, and Updated Order, and Make carries its own Webflow and Microsoft 365 modules on both sides of the same flow. Latency is the thing to plan around, because these triggers poll rather than listen: Zapier's plan comparison puts polling time at 15 minutes on the free plan and 1 to 2 minutes on its paid tiers, so a lead can sit unread for a quarter of an hour before anything fires.

Verified trigger and action pairings include:

  • Webflow New Form Submission → Microsoft Outlook Send Email (Zapier template "Send Microsoft Outlook emails for new Webflow form submissions")
  • Webflow New Form Submission → Microsoft Excel Add Row to Table (Zapier; OneDrive for Business files only)
  • Webflow New Form Submission → Microsoft SharePoint Create List Item (Zapier)
  • Webflow Updated Order → Microsoft Teams Send Bot Message (Zapier; requires the Zapier app from the Teams Store)
  • Webflow New Form Submission → Microsoft OneDrive Upload File (Zapier)
  • Webflow Watch Events → Microsoft 365 Email Send an Email or Microsoft Teams Send Message (Make)
  • Microsoft Teams trigger → Webflow Create an Item, Publish an Item, or Publish a Site (Make)
  • Microsoft Excel Updated Row → Update Webflow live items (Zapier, polling)
  • Webflow "fires when a new product is added" → Microsoft Outlook, and Microsoft Teams → Publish a Webflow site (IFTTT)
  • Webflow New Form Submission → Office 365 Create Contact (viaSocket, which also exposes Site Published, Page Created, and Page Deleted triggers)
  • Webflow Trigger node → Microsoft Outlook, Teams, SharePoint, OneDrive, or To Do node, with the Webflow node's Create, Update, and Delete operations for the return trip (n8n)

Zapier has no Webflow pairing pages for Microsoft Forms or Microsoft To Do, and IFTTT lists no current Microsoft Forms service. For those services, and for any flow that must stay inside your tenant, Power Automate is the route.

Route Webflow webhooks into Power Automate

Power Automate receives Webflow events through its built-in When an HTTP request is received trigger. Point a Webflow form_submission webhook at that trigger, then use Standard-tier Microsoft 365 connectors downstream. A Microsoft 365 license covers the flow without a Premium license. Registering the webhook takes one API call, so this is a low-code setup.

To build the flow:

  1. In Power Automate, select Create > Automated cloud flow and add the When an HTTP request is received trigger. Save the flow and copy the generated URL.
  2. Set the trigger so it accepts the request. Webflow posts from outside your tenant and carries no Microsoft identity, so the generated URL and its signature are the only credential, which makes that URL a secret.
  3. Generate a site token under Site settings > Apps & integrations > API access with the sites:write and forms:read scopes. Only site administrators can create tokens.
  4. Register the webhook with POST https://api.webflow.com/v2/sites/{site_id}/webhooks, triggerType: "form_submission", and the flow URL as the destination. Store the secret key; it appears once.
  5. Add a Parse JSON action with a schema covering payload.name, payload.data, payload.submittedAt, and payload.formId.
  6. Add the action for the selected Microsoft 365 destination.

Your flow has to answer quickly, because Webflow treats a non-200, a redirect, an SSL problem or a slow response as a failed delivery: it retries 3 more times at 10-minute intervals, then deactivates the webhook and emails you. For the reverse direction, the Microsoft Bookings connector fires on appointment create, cancel and update. Microsoft documents two limits on it that decide whether this route is open to you at all: only Bookings admins can create flows using those appointment triggers, and only 5 flows can be created per Bookings mailbox.

Build with the Webflow Data API and Microsoft Graph

Direct API work gives you two-way sync with no middleware subscription and full control over field mapping. It requires server-side development: a hosted HTTPS endpoint to receive Webflow webhooks and Graph change notifications, plus token handling for both platforms. Engineering teams maintaining events calendars and document libraries at scale are the audience here. The same applies to lead pipelines.

The relevant APIs are:

The Excel add-row endpoint accepts delegated permissions only. Forms exposes no response endpoints in Graph v1.0. Bookings appointments are not a change-notification resource. These services stay on the Power Automate path.

Site tokens follow the same path as the Power Automate steps above. They expire after 365 consecutive days of inactivity, and each site allows a maximum of 5 tokens. On the Microsoft side, register an app in the Microsoft Entra admin center under Entra ID > App registrations > New registration to get an Application (client) ID. Add a credential under Certificates & secrets; Microsoft recommends certificates over secrets, caps lifetimes at 24 months, and shows a secret only once. Under API permissions, add Microsoft Graph application permissions and select Grant admin consent, which application permissions always require. Then request a token with the client credentials flow:

POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
grant_type=client_credentials
scope=https://graph.microsoft.com/.default
client_id={app_id}
client_secret={secret}

The returned bearer token goes in the Authorization header of every Graph call.

Send Webflow form submissions to Outlook with sendMail

This replaces Webflow's notification email with one sent from your own tenant, so replies land in a real mailbox and the message carries your domain. It also lets you branch on form fields, for example routing quote requests to one account executive and support requests to another. The webhook payload includes both the submitted values and a schema describing each field.

To implement this:

  1. Use the registered form_submission webhook; each site accepts up to 75 registrations per trigger type.
  2. On each POST, read payload.data for the key-value pairs and payload.schema for each field's fieldName, fieldType, and fieldElementId.
  3. Call POST https://graph.microsoft.com/v1.0/users/{id}/sendMail with the Mail.Send scope and build the message body from the submission.
  4. Return a 2xx status promptly; Webflow stores every submission independently, so a missed webhook can be recovered later through GET /v2/sites/{site_id}/form_submissions with forms:read.

Default Mail.Send admin consent grants the app access to every mailbox in the tenant; App RBAC, which replaced Exchange Application Access Policies, restricts that scope. Teams is harder. Application permission for POST /teams/{team-id}/channels/{channel-id}/messages is Teamwork.Migrate.All and is restricted to migration scenarios, so a daemon posting live messages needs delegated ChannelMessage.Send instead, with a signed-in user behind it.

Publish Outlook calendar events as CMS items

Staff can maintain a shared Outlook calendar without entering each event again in Webflow. Graph exposes a time-bounded calendar view, and the CMS accepts live items in a single call. Change notifications on the events resource keep the two in step after the initial load.

To implement this:

  1. Call GET /users/{id}/calendarView?startDateTime={start}&endDateTime={end} with Calendars.ReadBasic; both query parameters are required.
  2. Map each event's fields to your collection's field names and create items with POST https://api.webflow.com/v2/collections/{collection_id}/items/live with the cms:write scope. For a review step, use POST /items and then POST /items/publish instead.
  3. Subscribe to changes with POST https://graph.microsoft.com/v1.0/subscriptions, resource /users/{id}/events, and changeType created, updated, and deleted. Maximum lifetime is 10,080 minutes, or 1,440 minutes with includeResourceData: true.
  4. On each notification, call GET /users/{id}/calendarView/delta?startDateTime=...&endDateTime=... and apply the changes with PATCH /v2/collections/{collection_id}/items/{item_id}.

A mailbox allows 1,000 active subscriptions. Bulk updates through PATCH /v2/collections/{collection_id}/items accept up to 100 items per request, which suits a nightly full reconcile alongside the notifications.

Sync SharePoint list items into the Webflow CMS

Teams that won't open the CMS can use a SharePoint list as an editorial queue or product catalog. SharePoint list subscriptions support only the updated changeType and carry no item data, so every notification is followed by a delta query. The subscription lasts up to 42,300 minutes, roughly 30 days, and must be renewed before it expires.

To implement this:

  1. Find the site ID with GET /sites/{hostname}:/{server-relative-path} and the list ID with GET /sites/{site-id}/lists, both under Sites.Read.All.
  2. Create the subscription with POST https://graph.microsoft.com/v1.0/subscriptions, resource sites/{site-id}/lists/{list-id}, changeType updated, and an expirationDateTime under 42,300 minutes.
  3. Handle the validation handshake: Graph posts to https://{notificationUrl}?validationToken={token} and expects HTTP 200 OK with Content-Type: text/plain and the URL-decoded token as the body within 10 seconds.
  4. On each notification, call GET /sites/{siteId}/lists/{listId}/items/delta, follow @odata.nextLink until exhausted, and store the final @odata.deltaLink for the next cycle.
  5. Map column values to CMS field names, then create or update items with POST /v2/collections/{collection_id}/items/live or PATCH /v2/collections/{collection_id}/items/{item_id}.
  6. Renew with PATCH /subscriptions/{id} and a new expirationDateTime before expiry.

Graph sends lifecycle events instead of change notifications when something goes wrong. reauthorizationRequired calls for POST /subscriptions/{id}/reauthorize or a PATCH with a new expiry, subscriptionRemoved means you recreate the subscription, and missed means a full resync through the delta query. An expired subscription returns 404 Not Found on PATCH and cannot be revived. Your endpoint must answer every notification within 3 seconds; the delivery guide says an endpoint is marked slow once more than 10% of responses in a 10-minute window exceed that, after which new notifications are delayed by 10 minutes.

What you can build with the Office 365 Webflow integration

Integrating Office 365 with Webflow lets you route site leads, bookings, and documents through Microsoft 365 without exporting CSVs or re-keying data.

  • Lead intake for brokerages and B2B sales: A contact form on a Webflow site posts each inquiry to a Teams sales channel and appends a row to a shared Excel workbook through the Zapier template "Add new Webflow form submissions to Microsoft Excel as rows." Reps see the lead in the channel they already monitor, and the workbook stays as the record everyone can filter.
  • Consultation booking pages for clinics and coaches: A service page pairs a Bookings iframe with staff bios, and each appointment lands on the assigned Outlook calendar. Adding the Bookings connector's "When a appointment is Created" trigger in Power Automate, Microsoft’s own spelling, posts the new booking to Teams or logs it in a SharePoint list.
  • Internal request portal with an approval trail: An equipment or policy-acknowledgment form on a Webflow intranet page fires a form_submission webhook into Power Automate. The flow runs "Approvals - Start and wait for an approval," emails the manager through Office 365 Outlook, and records the outcome in a SharePoint list for audit.
  • SharePoint-fed resource library: A SharePoint list of policies or course descriptions syncs into a CMS collection through Graph change notifications, and a Collection List renders it as a filterable library page. Each item links to a view-only OneDrive embed of the underlying Word or Excel file, so the document team updates SharePoint and the site follows.

If you need more control over field mapping between SharePoint columns and CMS fields, the API path above covers those cases. See how the same lead route is wired end to end in automated lead notifications.

Frequently asked questions

  • Yes, with restrictions. The notification "To" field accepts any address, including a shared mailbox, but on the free Starter Site plan form notification emails are limited to five recipients, and all of them must be Workspace members. Upgrading the Site plan is what lets you add more recipients or notify people outside your Workspace. Role-based addresses such as admin@ or info@ carry a documented deliverability warning, and shared mailboxes usually fall into that category. Notifications send from the branded address no-reply-forms@webflow.com, or from the unbranded no-reply@webforms.io on a Growth Workspace, and there is no SMTP setting to change either. The To field takes addresses only; the variables such as {{siteName}} work in Reply to, Subject and Body. The form submissions article covers recipient limits, and the forms setup guide covers sender addresses and the webhook alternative.

  • Yes. The free Starter Site plan does not include the Code Embed element outside a paid Workspace. You need a Core, Growth, Agency, or Freelancer Workspace, or an active Site plan, to use the element. The 50,000-character limit per element cannot be raised. On the Microsoft side, Forms and Bookings embed codes come with a qualifying subscription; Microsoft’s Bookings FAQ says Bookings "isn't available as a standalone app" and that Outlook on the web must be enabled to use it. The Code Embed article lists the plan requirement, and Microsoft's share a form guide walks through the Embed button.

  • No. Webflow form notifications expose recipient, sender display name, reply-to, subject, and body, but no SMTP host, port, username, or password. Microsoft 365 does run a client submission endpoint at smtp.office365.com on port 587 with TLS 1.2 or 1.3, and SMTP AUTH is off by default for tenants created after January 2020. Microsoft's multifunction device guide documents that endpoint, and the SMTP AUTH deprecation timeline notes Basic Authentication turns off by default for existing tenants at the end of December 2026. For your own sending, use Graph POST /users/{id}/sendMail from a webhook receiver, or Azure Communication Services Email for transactional volume.

  • Team members can use Entra ID to log in to Webflow. Entra ID cannot gate visitor content. Workspace SSO through SAML or OAuth is available only on Enterprise Workspace plans, and the SSO article asks you to confirm your identity provider through the Enterprise portal because it does not name Entra ID explicitly. No pre-integrated Webflow app exists in the Entra gallery, so you configure a non-gallery SAML application. SCIM provisioning from Entra ID works once SSO is enabled, but role and group assignment from the IdP is not supported. SSO never covered the legacy Editor, which Webflow retired on August 4, 2026. For site visitors, User Accounts were disabled on all sites on January 29, 2026, per the User Accounts sunset notice. The current pattern, described in the Auth0 authentication post, serves protected content from a Webflow Cloud App endpoint that validates an Entra or Auth0 token server-side.

  • The Webflow MCP connector is the available connector. It is in Preview and exposes one InvokeServer action for AI agents. Microsoft classes it as Premium in Copilot Studio, Power Automate and Power Apps, and as Standard in Logic Apps. The connector provides no event triggers or conventional trigger/action integration. Availability excludes the US Government (GCC and GCC High), Department of Defense, and 21Vianet clouds. For inbound events, use the HTTP request trigger described above. For calling the Data API from a flow, the HTTP with Entra ID provides "Invoke an HTTP request," or you can build a custom connector from an OpenAPI definition. A Forms-to-CMS flow, for example, starts with the Microsoft Forms connector trigger "When a new response is submitted," calls "Get response details," and then posts to POST /v2/collections/{collection_id}/items through one of those two connectors.

Office 365
Office 365
Joined in

Description

Send Webflow form submissions and CMS events into Microsoft 365 through Zapier, Make, or Power Automate. Embed Microsoft Forms and Bookings with Code Embed elements, and sync SharePoint lists into the Webflow CMS with Microsoft Graph.

→
↗
►
↓
←
↑
Install app

This integration page is provided for informational and convenience purposes only.


Other Office suites integrations

Other Office suites integrations

Google Workspace (G Suite)

Google Workspace (G Suite)

Connect Google Workspace with Webflow to route form submissions into Google Sheets and publish spreadsheet rows as [Webflow CMS](https://help.webflow.com/hc/en-us/articles/33961307099027-Intro-to-the-Webflow-CMS) items.

Office suites
Learn more
Microsoft Dynamics 365 CRM

Microsoft Dynamics 365 CRM

Connect Microsoft Dynamics 365 CRM with Webflow to capture leads from forms, sync contact data, and automate sales workflows.

Office suites
Learn more
Microsoft 365

Microsoft 365

Connect Microsoft 365 with Webflow to automate workflows, embed Office documents, and connect CMS content.

Office suites
Learn more
Microsoft Teams

Microsoft Teams

Connect Microsoft Teams with Webflow to send form submissions, CMS updates, and site notifications to your team channels.

Office suites
Learn more
Microsoft Excel

Microsoft Excel

Excel has no Webflow app. Move data between the two with embeds, CSV imports, automation platforms, or the Webflow Data API and Microsoft Graph.

Office suites
Learn more
Google Workspace Admin

Google Workspace Admin

Building a custom integration between Google Workspace Admin and Webflow gives you complete control over user provisioning workflows and authentication systems

Office suites
Learn more
G Suite

G Suite

Embed Google Workspace files, formerly G Suite, in Webflow: publish a Doc, Sheet, Slides, or Form to the web, then paste the embed code into a Code Embed element.

Office suites
Learn more

Related integrations

No items found.

Get started for free

Try Webflow for as long as you like with our free Starter plan. Purchase a paid Site plan to publish, host, and unlock additional features.

Get started — it’s free