Notion Helpdesk Intake from Shared Mailbox
When an email arrives in a shared support mailbox, the flow creates a ticket page in a Notion support database with sender, subject, body, and a default status, sends the requester an acknowledgement with the ticket reference, and posts new tickets to a Teams support channel. Turns an inbox into a structured Notion ticket queue.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow turns a shared support mailbox into a structured Notion ticket queue. When a new email arrives, it creates a ticket page in a Notion support database (sender, subject, summary, received date, default status), acknowledges the requester from the shared mailbox with a short ticket reference, and posts a new-ticket alert to a Teams support channel.
Why it matters: Email-based support is hard to track. Landing each request as a Notion ticket gives the team a queryable queue with statuses and assignment — without a dedicated helpdesk tool — while the requester gets an immediate, professional acknowledgement.
Status: Built and verified (Flow Checker 0 errors / 0 warnings). Ships Off — going live only requires authorizing the three connections and setting the four environment variable values.
Use Case
A small team runs support from a shared inbox (e.g. support@contoso.com) and manages work in Notion. They want every inbound email captured as a ticket, the requester acknowledged automatically, and the team notified in Teams in real time.
Flow Architecture
When a New Email Arrives in Support Mailbox
Office 365 Outlook SharedMailboxOnNewEmailV2Fires on each new email in the mailbox named by flowlibs_SupportMailbox (folder Inbox).
Initialize configuration variables
Initialize Variable (String)Holds the Notion support DB id, the Teams group/channel ids, the default ticket status (New), and the ticket source label (Email).
Create Notion Ticket Page
Notion CreateaPageCreates the ticket page (sender, subject, summary, received date, source, status = New).
Compose Ticket Reference
ComposeBuilds a short ticket reference from the first 8 characters of the new page id.
Acknowledge Requester
Office 365 Outlook SharedMailboxSendEmailV2Replies to the sender from the shared mailbox, quoting the ticket reference.
Notify Support Channel
Microsoft Teams PostMessageToConversationPosts a new-ticket alert (requester, subject, reference, Notion link) to the support channel.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_SupportMailbox | String | support@contoso.com | SMTP address of the monitored shared mailbox (trigger + send-as). |
| flowlibs_NotionSupportDatabaseId | String | REPLACE_WITH_NOTION_SUPPORT_DATABASE_ID | Notion database id of the support ticket DB. |
| flowlibs_TeamsGroupId | String | REPLACE_WITH_TEAMS_GROUP_ID | AAD group id of the Team hosting the support channel (reused, shared). |
| flowlibs_TeamsChannelId | String | REPLACE_WITH_TEAMS_CHANNEL_ID | Channel id of the support channel (reused, shared). |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Office 365 Outlook | shared_office365 | SharedMailboxOnNewEmailV2 SharedMailboxSendEmailV2 |
| Notion | shared_notionip | CreateaPage |
| Microsoft Teams | shared_teams | PostMessageToConversation |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Threading instead of new replies
- To keep the acknowledgement inside the original email thread, swap SharedMailboxSendEmailV2 for ReplyToV3 (path message_id = triggerOutputs()?['body/id']); match later replies to an existing ticket via the [Ticket #...] reference in the subject and append them as Notion comments.
- Priority routing
- Add a Compose/Condition that sets a Priority Notion property from the email importance field or from keywords/sender domain, and branch the Teams alert for urgent tickets.
- AI triage
- Insert an Azure OpenAI ChatCompletions call before Create Notion Ticket Page to classify category/sentiment and write it to a Category property.
- Attachments
- Set the trigger's includeAttachments to true and add a step to store attachments (e.g. SharePoint/OneDrive) and link them on the ticket.
- De-duplication
- Key new tickets on internetMessageId (available on the trigger) against a recent-tickets query to avoid duplicates on mailbox reprocessing.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Ticket reference
Short ticket reference from the first 8 characters of the new page id.
EXPR.02Acknowledgement subject
Subject line carrying the ticket reference.
EXPR.03Sender (To / Requester)
The email sender, used as requester and reply target.
EXPR.04Body summary
Short body preview stored as the ticket summary.
EXPR.05Received date
Email received timestamp.
EXPR.06Notion page link (Teams)
Deep link to the new Notion ticket.
Customize & download
Generate a ready-to-import copy of this solution with your environment-variable values baked in — available on Base, Pro, or Team.
Upgrade to customize
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.