Microsoft
Vibe is an AI assistant built by Mistral AI. It connects to Microsoft 365 services through Connectors: secure OAuth 2.0 integrations that let users interact with their Microsoft data using natural language.
When a user connects a Microsoft service, Vibe can read and search data in that service, and act on it with explicit user approval, always as the signed-in user. Every write action requires the user's confirmation before it runs. Vibe never stores Microsoft passwords: authentication goes through Microsoft Entra ID OAuth 2.0, and Vibe stores the OAuth credentials that maintain the connection in encrypted form.
Delegated permissions model
All Microsoft Graph permissions that Vibe requests are delegated permissions: the connector acts as the signed-in user and can only reach the data that this user can already access, under the existing policies of your tenant. Vibe requests no app-only (application) permissions and uses no service account. Tenant-wide admin consent authorizes the Vibe application in your tenant. It doesn't give any user access to additional mailboxes, calendars, sites, or files.
A Microsoft Graph permission can authorize broader API access than the Vibe tools use. For example, Mail.ReadWrite also permits updating and deleting mail through the Microsoft Graph API, but the connector only implements the documented actions, and Vibe never requests Mail.Send. The service sections in Supported Microsoft services define the effective tool coverage. The Microsoft Graph permissions reference describes what each scope technically allows.
Vibe requests offline_access alongside the Microsoft Graph scopes. This Microsoft identity platform scope lets Vibe refresh access tokens without repeated sign-ins, subject to the session and Conditional Access policies of your tenant. It grants no rights on Microsoft 365 data.
Supported Microsoft services
Vibe integrates with the following Microsoft services:
| Service | What Vibe does |
|---|---|
| Outlook | Search email, read messages, browse mail folders, create drafts for manual review, organize messages, and read shared mailboxes. |
| Outlook Calendar | List and search events, create, update, or delete events, respond to invitations, and check attendee availability. |
| SharePoint | Search files, browse sites and document libraries, read file content, create, move, and share files and folders, and manage lists, items, and columns. |
| Microsoft Teams | List teams, channels, chats, and members, read channel and chat messages, and post messages. |
The SharePoint connector also covers the OneDrive for Business files that the connected user can access, with the same permissions.
Outlook
Vibe uses the Outlook Mail API (Microsoft Graph) to help users manage their email through natural language (for example, "Summarize the last email from the procurement team" or "Draft a reply to this message").
Scopes requested:
Mail.ReadWrite: Search messages by keyword, sender, recipient, date, or folder; open message bodies; browse mail folders and subfolders; create email drafts and draft replies for the user to review; and move messages between folders, such as the archive. Vibe never sends drafts: the user reviews and sends them from Outlook. Vibe requestsMail.ReadWriterather thanMail.Readbecause drafts and moves are write operations. It doesn't requestMail.Sendand can't send email.Mail.Read.Shared: Search and read messages in shared or delegated mailboxes that the user can already access in Exchange, when the tenant enables this. This scope is read-only for shared mailboxes and grants no Send As or Send on Behalf rights.User.Read: Read the basic profile of the signed-in user to identify the connected account. It doesn't grant directory-wide administration.offline_access: Refresh access tokens between sessions. For more information, see Delegated permissions model.
Outlook Calendar
Vibe uses the Outlook Calendar API (Microsoft Graph) to help users manage their schedule (for example, "Find a free slot for a 30-minute meeting with Alice next week" or "Schedule a project review with a Teams meeting link").
Scopes requested:
Calendars.ReadWrite: List and search events, retrieve event details, create one-off or recurring events, update, cancel, or delete events, and accept or decline invitations. Events can include a Teams meeting link when the account of the user supports it. The read-onlyCalendars.Readscope isn't enough because Vibe also creates, updates, and deletes events for the user.MailboxSettings.Read: Read the mailbox settings of the user, in particular the time zone, to schedule events in the local time of the user. This scope doesn't allow changing mailbox settings.offline_access: Refresh access tokens between sessions.
Attendee availability results follow the free/busy sharing rules of Microsoft 365. Vibe doesn't get full access to the calendars of attendees.
Vibe uses the Microsoft Graph API to help users find and work with SharePoint content (for example, "Find the latest project delivery plan and summarize it" or "Create a folder for the review documents"). The SharePoint connector retrieves content live through Microsoft Graph: it doesn't ingest documents into a search index and doesn't replicate SharePoint permissions. Microsoft checks access as the signed-in user at request time.
Scopes requested:
Files.ReadWrite.All: Search files and folders by keyword across accessible sites; browse document libraries and folders; read supported file content and metadata; create text files, binary files, and folders; rename, move, copy, delete, and share files; copy a file from a SharePoint or OneDrive URL; and apply or remove sensitivity labels on files. The scope is bounded by the rights of the signed-in user across SharePoint and OneDrive for Business: it isn't app-only access to every file in the tenant.Sites.ReadWrite.All: Find sites and subsites; create, update, and delete SharePoint lists, list items, and columns; and grant permissions on lists, for the sites that the user can access.InformationProtectionPolicy.Read: Read the sensitivity labels and label policies available to the user, when your tenant configures them. Vibe uses this scope withFiles.ReadWrite.Allto apply sensitivity labels to files. It doesn't allow decrypting protected files, overriding access restrictions, or changing policies.User.Read: Read the basic profile of the signed-in user to identify the connected account.offline_access: Refresh access tokens between sessions.
- Search quality: The Microsoft Graph Search API returns the search results. Microsoft ranks them, and they're keyword-based and file-level. Vibe adds no semantic index or passage-level retrieval.
- Access controls: The connector can't enforce its own allowlist or denylist of sites, folders, or OneDrive content. Microsoft controls access as the signed-in user, under the policies of your tenant.
- Protected content: Sensitivity labels don't exclude documents from search. Vibe can't read content encrypted beyond the rights of the user.
- File support: Reading extracts text from supported formats (PDF, Office documents, plain text, and common code or data formats). Binary downloads and file creation are capped at 5 MB per file. Vibe can't read image-only or scanned documents without a text layer.
- Throttling: Every call goes directly to the Microsoft Graph API and is subject to the per-user and per-application throttling limits of Microsoft.
- Service coverage: The connector supports SharePoint Online only, not SharePoint Server on-premises.
Microsoft Teams
Vibe uses the Microsoft Graph Teams API to help users follow and contribute to team conversations (for example, "Summarize today's messages in the delivery channel" or "Post the weekly update to the team channel").
Scopes requested:
Team.ReadBasic.All: List the teams that the user is a member of, with their display names.Channel.ReadBasic.All: List the channels of those teams.ChannelMessage.Read.All: Read channel messages and their thread replies.ChannelMessage.Send: Post new messages in channels and reply inside existing threads.Chat.Read: List the one-on-one and group chats of the user and read their messages.ChatMessage.Send: Send messages in those chats.TeamMember.Read.All: List the members of a team so that users can find and mention people. It doesn't grant member administration.User.Read: Read the basic profile of the signed-in user to identify the connected account.offline_access: Refresh access tokens between sessions.
Vibe sends posted messages as the connected user, and they appear immediately. The Vibe approval flow gates each post before it runs. For more information, see User consent and approval.
Set up and validate for your organization
Microsoft Entra administrators control how the Vibe connector application can be used in the tenant. To validate the integration end to end, follow these steps:
- Grant admin consent. Microsoft requires administrator consent for the Teams scopes
ChannelMessage.Read.AllandTeamMember.Read.Allbefore users can connect. Users can consent to the other scopes, depending on the user consent settings of your tenant. To grant consent, sign in with a Microsoft Entra administrator account during a connector setup and selectConsent on behalf of your organization. You can also grant tenant-wide consent from the Microsoft Entra admin center underIdentity>Applications>Enterprise applications>Permissions>Grant admin consentafter a first user has connected. For the classification of each permission, see the Microsoft Graph permissions reference. - Verify the consent screen. The Microsoft consent prompt must show Mistral AI as the application publisher and the exact scopes listed in Supported Microsoft services. By default, users can consent to permissions that don't require administrator consent. Microsoft recommends allowing user consent only for apps from verified publishers: check that the user consent settings of your tenant match your policy.
- Validate with a test account. On the
Connectorspage, connect a low-privilege test account for each service, run a search and a read, then run one write action and confirm that the approval prompt behaves as expected. This test confirms that the scopes and write approvals work as documented. - Audit connections. The connector application appears in the Microsoft Entra admin center under
Enterprise applications. Review the sign-in logs and any Graph activity reports there. Each user connection is a separate user consent. - Restrict and revoke. Users can disconnect from the
Connectorspage, and an administrator can revoke consent or disable the application tenant-wide at any time fromEnterprise applications. Revocation immediately stops future access from Vibe.
Vibe refreshes tokens server-side for the user. Conditional Access policies that require compliant devices or trusted network locations can block connector traffic between refreshes. If you enforce such policies, configure an appropriate exclusion for the connector application.
Vibe authenticates against the Microsoft global cloud (login.microsoftonline.com). It doesn't support tenants in Microsoft 365 Government Community Cloud (GCC) High, DoD, or the cloud operated by 21Vianet.
If your organization requires a dedicated connector application, for example in a private-cloud deployment, you can arrange one with Mistral AI. Mistral AI then confirms the exact scope set before tenant approval.
Use your own Microsoft Entra application
Coming soon. You can't bring your own Entra application to the built-in Microsoft Connectors yet: they authenticate through the Mistral AI application, and Vibe doesn't expose fields for your own client credentials. The sections below describe the flow as it will work when the feature is available.
By default, the Microsoft Connectors authenticate through the Mistral AI Microsoft Entra application. To control the consent screen, scopes, and access policies yourself, register an application in your own Microsoft Entra tenant.
Before you start, make sure that you have the Application Administrator or Cloud Application Administrator role in Microsoft Entra ID. Both roles can register applications and grant tenant-wide admin consent for delegated Microsoft Graph permissions.
1. Register the application
- In the Microsoft Entra admin center, go to
Identity>Applications>App registrationsand clickNew registration. - Enter a
Name(for example,Vibe Connectors) and select aSupported account type:Accounts in this organizational directory only(recommended): single tenant. Only users in your tenant can connect, and you don't need publisher verification.Accounts in any organizational directory: multitenant, subject to the publisher verification requirements.
- Click
Registerand copy theApplication (client) ID.
2. Add the redirect URI
The redirect URI domain depends on your Vibe deployment. On a Mistral-managed deployment (for example, a private cloud) or a self-hosted deployment, replace callback.mistral.ai with the domain of your deployment:
https://callback.<your-mistral-deployment-domain>/v1/integrations_auth/oauth2_callback-
In your app registration, go to
Authentication>Add a platform>Web. -
Under
Redirect URIs, enter the following URI exactly:https://callback.mistral.ai/v1/integrations_auth/oauth2_callback -
Click
Configure.
3. Add the delegated permissions
-
Go to
API permissions>Add a permission>Microsoft Graph>Delegated permissions. -
Add the permissions of the services that you plan to connect:
offline_access User.Read Mail.ReadWrite Mail.Read.Shared Calendars.ReadWrite MailboxSettings.Read Files.ReadWrite.All Sites.ReadWrite.All InformationProtectionPolicy.Read Team.ReadBasic.All Channel.ReadBasic.All ChannelMessage.Read.All ChannelMessage.Send Chat.Read ChatMessage.Send TeamMember.Read.All -
Click
Grant admin consent for {your tenant}so that users don't get a consent prompt. Microsoft requires administrator consent forChannelMessage.Read.AllandTeamMember.Read.All.
4. Create a client secret
- Go to
Certificates & secrets>Client secretsand clickNew client secret. - Select an expiry and click
Add. - Copy the
Valueof the secret immediately.
Microsoft shows the client secret value only once. Store it in a secret manager and track its expiry date: Vibe loses access when the secret expires. To avoid downtime, add a new secret before you revoke the old one.
5. Connect with your application
To use your application, enter the Application (client) ID and the client secret value when you configure the Microsoft Connectors in Vibe, then connect your account. The Microsoft consent screen shows your application name instead of Mistral AI. If your tenant blocks user consent, an administrator still needs to approve the application once.
Publisher verification for multitenant apps
A single-tenant application only works inside your tenant and needs no further validation from Microsoft. For a multitenant application that requests Microsoft Graph permissions from other organizations, we recommend publisher verification. To mark the app as a verified publisher on the consent screen, link a Microsoft Partner Center account with a verified Microsoft AI Cloud Partner Program ID. Microsoft recommends that tenants allow user consent only for apps from verified publishers, so an unverified multitenant app can require administrator approval in many organizations.
Troubleshooting
The following table lists common errors when users connect a Microsoft service:
| Error | Fix |
|---|---|
AADSTS50011 | The redirect URI doesn't match. Check that it matches exactly, with no trailing slash. |
AADSTS700016 | Microsoft can't find the application in the tenant. If you use your own application, connect with an account from the tenant of your app registration. |
AADSTS65001 | The user or administrator hasn't consented. Grant admin consent or adjust the user consent settings. |
AADSTS90094 or Need admin approval | The tenant blocks user consent, or a scope requires administrator consent. |
AADSTS50020 | The account isn't a Microsoft Entra ID work or school account. Vibe doesn't support personal accounts. |
AADSTS53003 or AADSTS50076 | A Conditional Access policy or a multifactor authentication requirement blocked the sign-in. Review the policy and its exclusions. |
401 Unauthorized on Graph calls | Reconnect the account in Vibe to refresh the granted scopes. |
429 Too Many Requests | Microsoft throttles the requests. Wait and retry. |
Access denied on a SharePoint write | The user lacks the underlying rights, or the tenant requires read-only consent. Ask your administrator. |
User consent and approval
Vibe follows a strict consent model:
- OAuth consent: Users authenticate directly with Microsoft Entra ID and see exactly which permissions Vibe requests before they grant access. The Microsoft Connectors share the consent granted to the application.
- Per-action approval: Every write action (creating a draft, scheduling an event, posting a Teams message, writing a SharePoint file) requires the user's explicit approval in Vibe before it runs. Users can approve, decline, or pre-authorize specific actions. For more information, see Safety and approvals.
- Disconnect at any time: Users can revoke Vibe access from the
Connectorspage, and an administrator can revoke the consent of the application in the Microsoft Entra admin center. Disconnecting immediately stops all access.
Data handling and privacy
- Real-time Connectors (Outlook, Outlook Calendar, SharePoint, Teams): Vibe fetches data in real time for the current request and doesn't store it on our servers. The Microsoft Connectors create no search index of your Microsoft content. Returned content can remain in the conversation history, under the retention settings of the deployment.
- No training: data accessed through Connectors is never used to train or fine-tune Mistral AI models, regardless of the user's plan.
- European infrastructure: all data processing and storage occurs in Mistral AI's European data centers.
- Encryption: all communication with Microsoft Graph uses TLS encryption in transit, and Vibe stores OAuth credentials in encrypted form.
For full details, see the Mistral AI Privacy Policy and Trust Center.
Microsoft APIs terms
Vibe uses information received from Microsoft APIs and handles user data in accordance with the Microsoft APIs Terms of Use and the Microsoft Privacy Statement. Vibe requests only the delegated permissions that the documented features need, uses data only to fulfill the requests of the user, and never shares Microsoft data with third parties.