Outlook Trigger Block
What it does: Start a workflow automatically when a new email arrives in your Microsoft Outlook inbox, with optional filters for sender, subject, folder, and more.
In simple terms: This trigger watches your Outlook inbox for new emails and kicks off your workflow whenever a matching message arrives. It uses polling to check for new messages at a configurable interval.
When to Use This
Use the Outlook Trigger when you need to:
- ✅ Start a workflow when a specific type of email arrives
- ✅ Process incoming emails automatically (extract data, route, respond)
- ✅ Monitor a shared mailbox for customer inquiries
- ✅ Trigger actions based on email attachments or importance levels
- ✅ Build email-driven approval or escalation workflows
Example: When a customer sends an email with "URGENT" in the subject to your support inbox, automatically create a high-priority ticket and notify the on-call team via Slack.
Features
- OAuth2 Authentication: Secure Microsoft identity platform connection via existing Outlook credentials
- Polling-Based Detection: Checks for new emails at a configurable interval
- Flexible Filters: Filter by sender, subject, folder, read status, and attachments
- Rich Response Data: Access full email metadata including body, recipients, importance, and attachments
- Variable Mapping: Map any email field to workflow variables for downstream use
This is a trigger block, not an action block. It starts a workflow -- it does not send emails. Place it at the beginning of your workflow as the entry point.
Setup
1. Connect Your Outlook Account
- Click Connect Outlook Account in the trigger settings
- Sign in with your Microsoft 365 or Outlook.com account
- Grant the requested permissions (Mail.Read or Mail.ReadWrite)
- Your account will be linked securely via OAuth2
2. Configure Polling Interval
Set how frequently the trigger checks for new emails:
Checking Interval: Every 5 minutesAvailable intervals typically range from 1 minute to 60 minutes. Shorter intervals detect emails faster but consume more API quota.
3. Configure Filters (Optional)
Apply filters to only trigger on specific emails:
From (Sender):
support@customer.comOnly trigger when the email is from this sender address.
Subject Contains:
URGENTOnly trigger when the subject line contains this text.
Folder:
InboxMonitor a specific folder (default: Inbox). You can also monitor subfolders or other mail folders.
Unread Only:
YesOnly trigger on unread messages (recommended to avoid reprocessing).
Has Attachments:
YesOnly trigger when the email has file attachments.
If you do not enable the Unread Only filter, the trigger may fire repeatedly for the same emails on each polling cycle. It is strongly recommended to filter for unread messages and mark them as read in your workflow after processing.
Trigger Events
| Event | Description |
|---|---|
| New Email Received | Fires when a new email matching the configured filters is detected in the mailbox |
This is a polling-based trigger. It does not use webhooks or push notifications. The workflow engine periodically queries the Outlook API for new messages based on your configured interval.
Response Mapping
When the trigger fires, the following email data is available as workflow variables:
| Field | Description | Example Variable |
|---|---|---|
| Date | When the email was received | {{trigger.date}} |
| Subject | Email subject line | {{trigger.subject}} |
| From | Sender email address | {{trigger.from}} |
| To | Recipient email addresses | {{trigger.to}} |
| Cc | CC recipient addresses | {{trigger.cc}} |
| Body Content | Full email body (HTML or text) | {{trigger.bodyContent}} |
| Body Preview | Short plain-text preview of the body | {{trigger.bodyPreview}} |
| Has Attachments | Whether the email has attachments (true/false) | {{trigger.hasAttachments}} |
| Importance | Email importance level (low, normal, high) | {{trigger.importance}} |
| Is Read | Whether the email has been read (true/false) | {{trigger.isRead}} |
| Full Data | Complete email object with all fields | {{trigger.fullData}} |
Example Usage in Workflow:
Condition: {{trigger.importance}} equals "high"
→ True: Create urgent ticket
→ False: Create normal ticket
Set Variable: ticketSubject = {{trigger.subject}}
Set Variable: customerEmail = {{trigger.from}}
Set Variable: issueDescription = {{trigger.bodyPreview}}Common Use Cases
1. Support Ticket Creation
Outlook Trigger: New email to support@company.com Filters: Unread only Workflow:
1. Extract sender: {{trigger.from}}
2. Extract subject: {{trigger.subject}}
3. Extract body: {{trigger.bodyPreview}}
4. Create ticket in Jira or Trello
5. Send auto-reply via Gmail: "We received your request..."
6. Mark email as read (if using additional Outlook action)2. Invoice Processing
Outlook Trigger: New email with attachments Filters: Subject contains "Invoice", Has Attachments = Yes Workflow:
1. Check attachment type from {{trigger.fullData}}
2. Download attachment content
3. Extract invoice data
4. Insert into SQL database
5. Upload PDF to OneDrive: /Invoices/{{date.year}}/
6. Notify accounting team via Slack3. Approval Workflow
Outlook Trigger: New email from approver Filters: Subject contains "RE: Approval Request" Workflow:
1. Parse body for approval/rejection keywords
2. Condition: Body contains "Approved"
→ True: Update status to Approved, notify requester
→ False: Update status to Rejected, request revision4. VIP Customer Alert
Outlook Trigger: New email Filters: From contains "@vip-customer.com", Importance = High Workflow:
1. Create Microsoft To Do task with high importance
2. Send Slack message to #vip-support channel
3. Log interaction in Dynamics 365Best Practices
Filter Configuration
- ✅ Always use the Unread Only filter to prevent reprocessing
- ✅ Use specific sender or subject filters to reduce false triggers
- ✅ Monitor a dedicated folder or shared mailbox for automated workflows
- ✅ Test filters with a few emails before enabling in production
Polling Interval
- ✅ Use 5-minute intervals for most use cases (good balance of speed and API usage)
- ✅ Use 1-minute intervals only for time-critical workflows
- ✅ Use 15-30 minute intervals for batch processing workflows
- ✅ Account for API quota limits when setting short intervals on multiple triggers
Workflow Design
- ✅ Handle the case where trigger data may be incomplete (e.g., no subject line)
- ✅ Use Body Preview for quick checks and Body Content for full processing
- ✅ Store trigger data in variables early in the workflow for reuse
- ✅ Add error handling for downstream steps that depend on email content
Security
- ✅ Be cautious with email body content -- it may contain malicious links or scripts
- ✅ Validate sender addresses before taking automated actions
- ✅ Do not automatically execute attachments or embedded code
- ✅ Log all trigger events for audit purposes
Troubleshooting
Trigger Not Firing
Check:
- The Outlook account is properly connected and the token has not expired
- The polling interval has passed since the last check
- New emails match all configured filters (sender, subject, folder, read status)
- The workflow is published and active (not in draft mode)
Duplicate Triggers
Solutions:
- Enable the Unread Only filter
- Add logic in your workflow to mark processed emails as read
- Use a deduplication check (store processed email IDs and skip duplicates)
Missing Email Data
Check:
- Some fields may be empty for certain emails (e.g., no CC recipients)
- Use conditional logic to handle missing fields gracefully
- Use
{{trigger.fullData}}to inspect all available data for debugging
Delayed Trigger
Understanding:
- Polling triggers have inherent delay equal to the polling interval
- An email arriving 1 second after a poll will not be detected until the next cycle
- For near-real-time needs, reduce the polling interval to 1 minute
Limitations
- Polling-Based: Not real-time -- there is always a delay up to the polling interval
- Single Mailbox: Each trigger instance monitors one mailbox; use multiple triggers for multiple mailboxes
- Attachment Content: Attachment metadata is available, but downloading attachment content may require additional workflow steps
- Shared Mailboxes: Accessing shared mailboxes requires the connected account to have delegate access
- API Quota: Microsoft Graph API has per-user rate limits; multiple short-interval triggers can consume quota quickly
- Historical Emails: The trigger only fires for emails arriving after the trigger is activated; it does not process historical emails
Tip: Combine the Outlook Trigger with a Condition block to route emails to different workflow paths based on sender, subject keywords, or importance level -- creating a sophisticated email triage system.
Related Blocks
- Gmail: Alternative email trigger and send capability
- Microsoft To Do: Create tasks from incoming emails
- Slack: Forward email notifications to Slack channels
- Jira: Create tickets from support emails
- Condition: Route emails based on content or metadata
- Set Variable: Extract and store email data for workflow use