# Microsoft Outlook Email AI employee

Viktor is an AI employee that connects to Microsoft Outlook Email and helps you stay on top of your inbox and get replies out, running 26 Microsoft Outlook Email actions for you like Send Email, Get Folder, and Find Email. Ask in plain English from your workspace; Viktor does the work in Microsoft Outlook Email and reports back. Viktor connects in one click via OAuth.

- Tool: Microsoft Outlook Email
- Category: Communication
- Connection: One-click OAuth
- Actions available: 26
- Currently available in: Slack and Microsoft Teams
- Page: https://viktor.com/integrations/microsoft-outlook-email

## What can you ask Viktor to do in Microsoft Outlook Email?

- "Summarize everything new in Microsoft Outlook Email from the last 24 hours and flag what needs a reply."
- "Draft a reply to the latest Microsoft Outlook Email thread about the renewal and send it after I approve."
- "Search Microsoft Outlook Email for the conversation about the Q3 launch and pull out the action items."
- "Watch Microsoft Outlook Email for anything mentioning invoices and log it in a sheet every Friday."

## What can Viktor do in Microsoft Outlook Email? (26 actions)

- **Update Contact** - Update an existing contact.
- **Send Email** - Send a new email, reply to an existing message, or save a draft — all in one tool. Omit inReplyToMessageId to send a new email. Provide inReplyToMessageId to reply to an existing message (threads correctly). Set isDraft: true to save to Drafts instead of sending immediately. Attach files by passing URLs or /tmp paths to files. Example (send new): send-email(recipients=["you@example.com"], subject="Hello", content="Hi there") Example (reply): send-email(inReplyToMessageId="AAMk...", content="Thanks for your note") Example (draft): send-email(recipients=["boss@example.com"], subject="Weekly report", content="...", isDraft=true) Use Find Email to locate a message id before replying.
- **Save Contact** - Create or update an Outlook contact (upsert). Omit contactId to create a new contact; provide contactId to update an existing one. Use Find Contacts first to look up a contact's id before updating. Example (create): save-contact(givenName="Cosmo", surname="Kramer", emailAddresses=["kramer@kramerica.com"]) → creates contact, returns new contact object with id. Example (update): save-contact(contactId="AQMk...", businessPhones=["+1-555-0100"]) → patches the existing contact. See the create documentation See the update documentation.
- **Reply to Email** - Reply to an email in Microsoft Outlook.
- **Remove Label from Email** - Removes a label/category from an email in Microsoft Outlook.
- **Move Email to Folder** - Moves an email to the specified folder in Microsoft Outlook.
- **Modify Email** - Apply one or more state mutations to an email message: mark read/unread, add/remove categories, move to a folder, or change the flag status. All params except messageId are optional — only the ones you provide are applied. Use Find Email to obtain a message id before modifying. Recipes: Mark read: isRead: true | Mark unread: isRead: false Add category: addCategories: ["Follow Up"] | Remove category: removeCategories: ["Follow Up"] Move to archive: destinationFolderId: "archive" | Move to inbox: destinationFolderId: "inbox" Flag: flagStatus: "flagged" | Unflag: flagStatus: "notFlagged" | Mark complete: flagStatus: "complete" Example: modify-email(messageId="AAMk...", isRead=true) → marks the message as read. Example: modify-email(messageId="AAMk...", addCategories=["Eval-Seinfeld"], destinationFolderId="archive") → adds a category AND moves to archive in a single call.
- **List Shared Folders** - Retrieves mail folders from a shared or delegated mailbox (routes to /users/{userId}/mailFolders). Returns { count, folders } where folders contains each folder's id, displayName, parentFolderId, childFolderCount, totalItemCount, and unreadItemCount. The count field reflects the true API total when Microsoft Graph returns @odata.count; when Include Subfolders is true or Graph does not return @odata.count for the requested filter, count equals the number of folders actually retrieved. Use this action to resolve a shared mailbox folder display name to its ID — set Display Name to filter by exact name. Use Get Shared Folder instead when you already have the folder ID.
- **List Labels** - Get all the labels/categories that have been defined for a user.
- **List Important Mail** - Get the most important mail from the user's Inbox (messages with high importance or flagged status). Returns { count, data } where count is the true total matching message count reported by Microsoft Graph (@odata.count for the applied filter) and data is the array of retrieved messages (up to maxResults).
- **List Folders** - Retrieves mail folders for the authenticated user. Returns { count, folders } where folders contains each folder's id, displayName, parentFolderId, childFolderCount, totalItemCount, and unreadItemCount. The count field reflects the true API total when Microsoft Graph returns @odata.count (supported for top-level mailFolders queries); when Include Subfolders is true or Graph does not return @odata.count for the requested filter, count equals the number of folders actually retrieved. Use this action to resolve a folder display name to its ID — set Display Name to filter by exact name. Use Get Folder instead when you already have the folder ID.
- **List Folder IDs to Monitor Options** - Retrieves available options for the Folder IDs to Monitor field.
- **List Contacts** - Get a contact collection from the default contacts folder. Returns { count, contacts } where count is the true total number of contacts in the collection as reported by Microsoft Graph (@odata.count), and contacts is the array of retrieved contact records (up to maxResults).
- **List Contact Options** - Retrieves available options for the Contact field.
- **Get Shared Folder** - Retrieve a single folder from a shared mailbox by its ID. Returns the folder's id, displayName, parentFolderId, childFolderCount, totalItemCount, and unreadItemCount. If you only have a display name and need the ID, use List Shared Folders first.
- **Get Message** - Fetch a single email message by its Microsoft Graph message ID, including full body and optional attachments. Use Find Email first to search for messages and obtain a message id; then call this tool to retrieve the full content. Set includeAttachments: true to expand attachment metadata — the id field of each attachment is required by Download Attachment. Example: after find-email(search="Eval-Festivus") returns a message with id: "AAMk...", call get-message(messageId="AAMk...", includeAttachments=true) to get the body text and attachment list.
- **Get Folder** - Retrieve a single mail folder by its ID. Returns the folder's id, displayName, parentFolderId, childFolderCount, totalItemCount, and unreadItemCount. If you only have a display name and need the ID, use List Folders first.
- **Get Current User** - Returns the authenticated Microsoft user's ID, display name, email, and principal name via Microsoft Graph. Call this first when the user says 'my emails', 'my inbox', or needs identity context. Use the returned id to scope queries in Find Email or identify the sender in email results.
- **Find Shared Folder Email** - Search for an email in a shared folder in Microsoft Outlook.
- **Find Email** - Search and filter email messages in Microsoft Outlook. Returns metadata only (subject, from, date, isRead, hasAttachments, etc.) — body is excluded from list results. Use Get Message to fetch the full body or attachment details for a specific message ID. Use Get Current User first when the user says 'my email' to confirm identity. Set isRead: false to find unread messages — builds the OData filter automatically, no filter syntax required. Set folderScope: "inbox" to restrict results to the inbox only, preventing Sent/Drafts/Junk from inflating counts. Set countOnly: true to return { count: N } in a single API call without paginating — ideal for 'how many unread' queries. search and isRead can be used together — when both are set, search is automatically converted to contains(subject,...) so both constraints are applied (Graph cannot combine KQL $search with OData $filter natively). Note: this narrows the match scope to subject only, whereas a bare $search also matches body and from. countOnly cannot be combined with search. For shared mailboxes, set both userId and sharedFolderId. Example: find-email(isRead=false, folderScope="inbox", countOnly=true) → { count: 47 } for unread inbox count. Example: find-email(search="Eval-Festivus", folderScope="inbox", maxResults=5) → array of messages with id, subject, from, receivedDateTime, isRead (no body — call Get Message next for body).
- **Find Contacts** - Search and list contacts in the authenticated user's Outlook contacts. Returns { count, contacts } where count is the Graph-reported total contact count (@odata.count) and contacts is the filtered result array. Omit searchString to return all contacts up to maxResults. When searchString is provided, filters contacts by displayName, givenName, surname, or email address (case-sensitive substring match). Important: maxResults now bounds how many contacts are fetched from Graph before filtering — contacts beyond that window will not be searched. Example: find-contacts(searchString="George Costanza", maxResults=200) → scans the first 200 contacts and returns matches. Example: find-contacts(searchString="george@vandelay.com") → matches by email address. Use the returned contact id with Save Contact to update the contact.
- **Download Attachment** - Download an email attachment to /tmp. Use Find Email to locate the message, then Get Message with includeAttachments: true to get the messageId and attachment id fields. Example: after get-message(messageId="AAMk...", includeAttachments=true) returns attachments: [{ id: "AQMk...", name: "report.pdf" }], call download-attachment(messageId="AAMk...", attachmentId="AQMk...", filename="report.pdf") → writes to /tmp/report.pdf. Set convertToPdf: true to convert images, HTML, plain text, or DOCX files to PDF. For text attachments (text/, JSON), the response includes fileContent with the decoded text (truncated at 100 KB, flagged by contentTruncated), so the content can be read directly without fetching the file.
- **Create Draft Reply** - Create a draft reply to an email.
- **Create Draft Email** - Create a draft email.
- **Create Contact** - Add a contact to the root Contacts folder.
- **Add Label to Email** - Adds a label/category to an email in Microsoft Outlook.

## How does Viktor work with Microsoft Outlook Email?

1. Open Viktor in a supported workspace.
2. Connect Microsoft Outlook Email with one-click OAuth - Viktor handles authentication.
3. Ask in plain English. Viktor runs the Microsoft Outlook Email actions, chains them with your other tools when needed, and reports back. Sensitive actions wait for your approval.

## What is a Microsoft Outlook Email AI agent?

A Microsoft Outlook Email AI agent is an AI that connects to your Microsoft Outlook Email account and completes work in it - it doesn't just answer questions about Microsoft Outlook Email, it takes the actions. Viktor is an AI employee that works in Microsoft Outlook Email on your behalf and delivers the finished result to your workspace.

Unlike workflow builders such as Zapier or Make, there is nothing to configure - no triggers to map, no workflows to maintain. You describe the outcome in plain English, and Viktor picks the right Microsoft Outlook Email actions, chains them with the other 3,200+ tools it connects to, and asks for approval before anything sensitive runs.

### About Microsoft Outlook Email

Microsoft Outlook lets you bring all your email accounts and calendars in one convenient spot.

## Security and permissions

- One-click OAuth - Viktor never sees your password, and you can revoke access at any time.
- Review-first approvals: sensitive Microsoft Outlook Email actions wait for your sign-off before they run.
- Isolated compute per team, encrypted in transit and at rest - and your data is never used to train models.
- SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

## FAQ

### Does Viktor integrate with Microsoft Outlook Email?

Yes. Microsoft Outlook Email is one of the 3,200+ tools Viktor connects to, via a managed connector. Once connected, anyone on your team can put Viktor to work in Microsoft Outlook Email from their workspace - no workflow builder, no code.

### How do I connect Microsoft Outlook Email to Viktor?

Ask Viktor in your workspace to connect Microsoft Outlook Email, then approve the one-click OAuth prompt. Viktor never sees your password, handles authentication itself, and starts working right away. Setup takes about two minutes, and you can revoke access at any time.

### What can Viktor do in Microsoft Outlook Email?

Viktor can run 26 Microsoft Outlook Email actions, including Send Email, Get Folder, and Find Email - and chain them with other tools in a single request. In practice that means Viktor helps you stay on top of your inbox and get replies out. If a task spans several actions, Viktor plans the sequence itself and reports back when the work is done.

### Do I need to build workflows to automate Microsoft Outlook Email?

No. Viktor isn't a workflow builder - there are no triggers to map and no workflows to maintain. You ask for the outcome in plain English in your workspace, and Viktor decides which Microsoft Outlook Email actions to take, runs them, and reports back.

### Is my Microsoft Outlook Email data secure with Viktor?

Yes. Viktor connects to Microsoft Outlook Email in one click via OAuth, runs in an isolated environment per team, and never trains models on your data. Sensitive actions wait for your approval, and you can revoke access at any time. Viktor is SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

### How much does the Microsoft Outlook Email integration cost?

Nothing extra - every integration, including Microsoft Outlook Email, is available on every plan. You can start free with up to $100 in credits, no credit card required; paid plans start at $50/month.

### Can Viktor use Microsoft Outlook Email together with my other tools?

Yes - that's the point. Viktor connects to 3,200+ tools and works across them in a single run: it can pull data from Microsoft Outlook Email, cross-reference it with another tool - for example Gmail or Google Sheets, and deliver the finished result in your workspace.

## Viktor uses Microsoft Outlook Email together with

- [Gmail](https://viktor.com/integrations/gmail)
- [Google Sheets](https://viktor.com/integrations/google-sheets)
- [HubSpot](https://viktor.com/integrations/hubspot)
- [Notion](https://viktor.com/integrations/notion)
- [Salesforce](https://viktor.com/integrations/salesforce)
- [Stripe](https://viktor.com/integrations/stripe)

## More Communication integrations

- [Slack](https://viktor.com/integrations/slack)
- [Slackbot](https://viktor.com/integrations/slackbot)
- [Telegram](https://viktor.com/integrations/telegram)
- [Zoom Admin](https://viktor.com/integrations/zoom-admin)
- [Outlook](https://viktor.com/integrations/outlook)
- [Bot for Slack](https://viktor.com/integrations/bot-for-slack)
- [Twilio](https://viktor.com/integrations/twilio)
- [Discord Bot](https://viktor.com/integrations/discord-bot)

## Get started

Viktor is free to start - up to $100 in credits, no credit card required. All 3,200+ integrations are included on every plan. Sign up at https://viktor.com or browse all integrations at https://viktor.com/integrations.
