Connect to Microsoft Outlook via MS Graph API to read and send emails directly from your FlowX.AI processes, using Azure AD authentication for native Outlook integration.
Microsoft Outlook is a data source type in Integration Designer that provides native Outlook connectivity through the Microsoft Graph API. Unlike the Email Trigger (IMAP) and Email Sender (SMTP) data sources, Microsoft Outlook uses Azure AD authentication and the MS Graph API for a unified read and send experience.Use cases include:
Email-triggered workflows: Automatically start processes when emails arrive in an Outlook mailbox
Customer communication: Send emails and replies directly from business processes
Document processing: Trigger workflows when emails with attachments are received
Unified inbox management: Read and send from the same data source configuration
Microsoft Outlook supports three scope modes:
Read Emails — monitor a mailbox and trigger processes
Send Emails — send emails from processes via notification templates
Read & Send Emails — both capabilities in a single data source
When to use Microsoft Outlook vs Email Trigger / Email Sender
FlowX.AI offers two ways to connect to email: Microsoft Outlook (MS Graph API) and Email Trigger / Email Sender (IMAP/SMTP). Choose based on your mail provider and requirements.
Microsoft Outlook
Email Trigger + Email Sender
Protocol
MS Graph API
IMAP (read) + SMTP (send)
Authentication
Azure AD (client credentials)
Username + password / app password
Read + Send
Single data source (Read & Send scope)
Two separate data sources
Reply threading
Native — uses MS Graph message ID to maintain conversation threads
Manual — requires Message-ID header forwarding
Provider support
Microsoft 365 / Outlook only
Any IMAP/SMTP-compatible mail server
Best for
Organizations using Microsoft 365
Gmail, self-hosted mail servers, or mixed environments
If your organization uses Microsoft 365, the Outlook data source is the recommended approach. It simplifies configuration by combining read and send into a single data source with Azure AD authentication.
Create an app registration in Azure AD with the required MS Graph permissions for your scope.
2
Create a Microsoft Outlook data source
Configure the connection in Integration Designer with your Azure AD credentials and select the desired scope.
3
Connect to processes
For Read scope: link to a Message Start Event node and activate from Manage Triggers.
For Send scope: link to a notification template and use the Send Notification action.
4
Process emails
FlowX.AI monitors the mailbox (Read) or sends emails (Send) through the MS Graph API.
Before configuring a Microsoft Outlook data source, ensure you have:
Access to Integration Designer with appropriate permissions
An Azure AD app registration with the required MS Graph API permissions:
Scope
Required permissions (any one)
Read Emails
Mail.Read, Mail.ReadBasic, or Mail.ReadWrite
Send Emails
Mail.Send or Mail.ReadWrite
Read & Send Emails
One read permission + one send permission
Azure AD credentials: Tenant ID, Client ID, and a Client Secret (or, starting with 5.9.1, a certificate — see Step 2)
MS Graph permissions must be configured as Application permissions (not Delegated) in your Azure AD app registration, since the connection uses client credentials flow.
Available starting with FlowX.AI 5.9.1. Authenticate to Microsoft Graph with a certificate instead of a client secret. When you turn this ON, the Client Secret above is ignored and the certificate is used to authenticate. Configure:
Certificate type — how the certificate is provided: Base64 (paste the encoded certificate content) or Path (a path to the certificate file reachable by the integration).
Format — the certificate format: PEM or PKCS12.
Password — the certificate password. Required only when the format is PKCS12.
This field accepts configuration parameters. Store the certificate content or path and the password in configuration parameters and reference them with ${configParam} syntax.
Click the Test Connection button to verify your Azure AD credentials:
Result
Message
Action
✅ Success
”Established connection”
Proceed to configure scope
❌ Error
”Failed to establish connection”
Check Azure AD credentials and permissions
The data source can be created even if the test connection fails. If the test fails on creation, you will be redirected to the Authorization tab with a failed connection message instead of the Settings page.
Displays the scope selected during creation. This field is read-only.
Send-only data sources do not display the Mailbox Folder or Attachment Validations fields, since those apply only to the Read scope. Sent emails are automatically saved to the Sent Items folder.
Available starting with FlowX.AI 5.9.1. Use a certificate instead of the client secret. When turned ON, the Client Secret is ignored. Set the Certificate type (Base64 or Path), the Format (PEM or PKCS12), and, for PKCS12, the certificate Password. See Step 2: Configure authentication for details.
Click Test Connection to verify the credentials. The test validates both the authentication and the required MS Graph permissions for the configured scope.
Open your process definition and add a Message Start Event (Start Catch Message) node.
2
Select Microsoft Outlook as trigger type
In the node configuration, set Trigger Type to Microsoft Outlook. Then select the Microsoft Outlook data source (only data sources with Read or Read & Send scope are shown).
3
Activate the trigger
Navigate to Runtime Settings → Manage Triggers and activate the trigger.
The trigger must be activated from Manage Triggers in Runtime Settings before email monitoring begins.
The Microsoft Outlook data source polls for new emails every 30 seconds by default, using the same polling scheduler as the Email Trigger (configurable via EMAIL_GATEWAY_IMAP_POLLING_INTERVAL). Each polling cycle processes up to 50 messages (configurable via EMAIL_GATEWAY_MS_GRAPH_MAX_MESSAGES_PER_POLL). Emails with the same timestamp as the last processed email are deduplicated automatically using their internet message ID.
Open a notification template and set Email Server to Predefined Email Connection. Select the Microsoft Outlook data source (only data sources with Send or Read & Send scope are shown).
2
Add a Send Notification action
Add a Send Notification action to a process node and select the notification template.
Microsoft Outlook supports replying to emails received via the Read scope, maintaining the original conversation thread in the recipient’s inbox.
1
Configure the Send Notification action
Add a Send Notification action to a process node. In the action configuration, turn on the Reply to received emails toggle.
2
Set the Reply to Email Header
Specify the process key that holds the original email’s header parameters (e.g., emailMessage.headerParams). This is required when the reply toggle is on.
3
Configure recipients (optional)
By default, the reply is sent to the original sender. You can override this by adding explicit Receivers, CC, or BCC addresses. Duplicate recipients are automatically removed.
The reply mechanism uses the x-ms-graph-message-id header from the original email to thread the reply correctly. If this header is not available, the system falls back to the standard Message-ID header and looks up the original message via the MS Graph API. Sent replies are automatically saved to the Sent Items folder.
When emails fail validation or processing errors occur, they appear in the Failed Triggers section under Runtime Settings.Failed triggers display the timestamp, trigger name, cause type, context (e.g., sender address), and detailed error messages. Click a row to open the details page with full diagnostic information.
Message: “The file {filename} could not be uploaded because it is not on the list of permitted file types.”Resolution: Update the Allowed File Types in the data source Settings tab, or ask the sender to use an accepted format.
Message: “{filename} is too large. Maximum allowed: 25 MB”Resolution: The attachment exceeds the configured maximum file size. Ask the sender to reduce the file size.
Message: “File limit exceeded. For this trigger there is a limit of {limit} per email.”Resolution: The email has more attachments than allowed. Ask the sender to split attachments across multiple emails.
Message: “MS Graph connection failed: [error details]”Resolution: Azure AD credentials may have expired or been revoked. The system retries once on 401/403 errors by refreshing the cached client. If the retry also fails, go to the Authorization tab, verify the Tenant ID, Client ID, and Client Secret, and click Test Connection. Regenerate the client secret in Azure AD if it has expired.
Message: “MS Graph application is missing required permissions: [list]. Please add these as Application permissions in Azure AD and grant admin consent.”Resolution: The Azure AD app registration is missing one or more required MS Graph permissions. Add the listed permissions as Application permissions (not Delegated) in the Azure portal and ensure admin consent has been granted.
This example walks through a complete email-triggered workflow: an email with an attachment arrives, the process extracts and classifies the document, then replies to the sender with a confirmation.
1
Create a Microsoft Outlook data source
Configure a data source with Read & Send Emails scope, pointed at your intake mailbox (e.g., documents@company.com). Set attachment validations to accept PDF and DOCUMENT types with a 25 MB size limit.
2
Design the process
Create a process with a Message Start Event node configured to trigger from the Outlook data source. The email data is available in process variables under emailMessage.
3
Access email data in downstream nodes
Use the email schema fields in Script or Business Rule nodes to route the process:
// Access email fields in a Script nodevar subject = input.get("emailMessage").get("subject");var sender = input.get("emailMessage").get("sender");var attachments = input.get("emailMessage").get("fileAttachments");// Route based on subject keywordsif (subject.contains("invoice")) { output.put("documentType", "INVOICE");} else { output.put("documentType", "GENERAL");}
4
Process the attachment
Use the fileAttachments[].downloadPath to retrieve the file from the Document Plugin for classification, data extraction, or storage.
5
Reply to the sender
Add a Send Notification action with the Reply to received emails toggle turned on. Set the reply header to emailMessage.headerParams. The reply is threaded under the original email in the sender’s inbox.
6
Activate the trigger
Navigate to Runtime Settings → Manage Triggers and activate the trigger to begin monitoring.