# Outlook AI employee

Viktor works in Outlook for you. Ask in Slack or Microsoft Teams.

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

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

## What can your AI employee do in Outlook?

Viktor connects to your Outlook account and completes work in it. He doesn't just answer questions about Outlook, he takes the actions 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 Outlook actions, chains them with the other 9,800+ tools he connects to, and asks for approval before anything sensitive runs.

### About Outlook

Outlook is Microsoft's email and calendaring platform integrating contacts and scheduling, enabling users to manage communications and events in a unified workspace

### How a run works

1. **You ask in your workspace** - Describe what you need in plain English
2. **Viktor picks the actions** - Selects from 26 Outlook actions, chains them together
3. **Runs in Outlook** - Helps you stay on top of your inbox and get replies out - your real data.
4. **Reports back** - Delivers the finished result to your workspace

## Use Outlook from Slack and Microsoft Teams

Message Viktor in a Slack channel, a Microsoft Teams chat or a direct message. He opens Outlook, does the work and posts the result in the same thread, so nobody has to switch tabs.

He can also run Outlook work on a schedule, like a weekly Outlook summary posted to your team's channel. Anything sensitive waits for your approval before it runs.

## Security and permissions

- One-click OAuth - Viktor never sees your password, and you can revoke access at any time.
- Review-first approvals: sensitive Outlook 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.
- Viktor is not affiliated with or endorsed by Outlook.

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

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

## How does Viktor work with Outlook?

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

## What can Viktor do in Outlook? (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".
- **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.
- **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.
- **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.
- **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.
- **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.

## Viktor uses Outlook together with

- [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)
- [GitHub](https://viktor.com/integrations/github)

## More Communication integrations

- [Slack](https://viktor.com/integrations/slack)
- [Slackbot](https://viktor.com/integrations/slackbot)
- [Circle](https://viktor.com/integrations/circle)
- [Telegram](https://viktor.com/integrations/telegram)
- [Zoom Admin](https://viktor.com/integrations/zoom-admin)
- [Microsoft Outlook Email](https://viktor.com/integrations/microsoft-outlook-email)
- [Bot for Slack](https://viktor.com/integrations/bot-for-slack)
- [Gmail](https://viktor.com/integrations/gmail)

## FAQ

### Does Viktor integrate with Outlook?

Yes. Outlook is one of the 9,800+ tools Viktor connects to, in one click via OAuth. Once connected, anyone on your team can put Viktor to work in Outlook from their workspace - no workflow builder, no code.

### How do I connect Outlook to Viktor?

Ask Viktor in your workspace to connect Outlook, 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 Outlook?

Viktor can run 26 Outlook 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 for Outlook?

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

### Is my Outlook data secure with Viktor?

Yes. Viktor connects to Outlook 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 Outlook integration cost?

Nothing extra - every integration, including Outlook, is available on every plan. You can start free with up to $100 in credits, no credit card required; the Team plan is $100 a month.

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

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

## Get started

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