Intercom VIP Customer Routing
When an Intercom conversation starts, the flow checks the contact against a VIP list in Dataverse; on a match it raises priority, assigns the dedicated VIP team, applies a VIP tag, and alerts the account manager in Teams with the customer's context. Ensures strategic accounts get white-glove chat support automatically.
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 gives strategic accounts a fast-lane in Intercom. When a new conversation starts, it looks up the contact against a VIP list in Dataverse and, on a match, assigns the conversation to the dedicated VIP team, applies a VIP tag, posts an internal priority note on the conversation, and alerts the account manager in Microsoft Teams with the customer's context and a deep link.
Why it matters: VIP customers shouldn't wait in the general queue. Automatic detection and routing delivers white-glove handling without relying on an agent recognizing the account.
Use Case
A support/sales org with named strategic accounts wants their Intercom chats auto-prioritized to a senior team, with the account manager looped in. The VIP list lives in Dataverse so business owners can maintain it without touching the flow.
Flow Architecture
When a new Intercom conversation is created
Intercom TrigNewConversationBatch poll every 3 min, splitOn so each conversation runs separately.
Initialize variables (x10)
Initialize VariableCorrelation id + bind each environment variable to a working variable.
Get Contact
Intercom GetLead (GET /contacts/{id})Read the contact (email, name) that started the conversation.
Compose Contact Facts
ComposeNormalize email, derive company domain, pick a display name.
Lookup VIP
Dataverse ListRecordsQuery the VIP list by email or company domain.
Condition Is VIP
If (length(value) > 0)Branch on whether a VIP record was found.
Assign Conversation To VIP Team
HTTP POST /conversations/{id}/partsAssign the conversation to the dedicated VIP team.
Apply VIP Tag
HTTP POST /conversations/{id}/tagsApply the VIP tag.
Add VIP Priority Note
HTTP POST /conversations/{id}/replyPost an internal priority note.
Alert Account Manager
Teams PostMessageToConversationPost VIP context + conversation link to the account-team channel.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_VipTable | String | flowlibs_vipaccounts | Dataverse entity set name of the VIP list (ListRecords). |
| flowlibs_VipTeamId | String | __SET_INTERCOM_VIP_TEAM_ID__ | Intercom team id VIP conversations are assigned to. |
| flowlibs_VipTagId | String | __SET_INTERCOM_VIP_TAG_ID__ | Intercom tag id applied to VIP conversations. |
| flowlibs_IntercomApiBase | String | https://api.intercom.io | Intercom REST base URL. |
| flowlibs_IntercomApiToken | String | REPLACE_WITH_INTERCOM_TOKEN | Intercom access token (Bearer) - contact read + conversation write. |
| flowlibs_IntercomVersion | String | 2.11 | Intercom-Version header value. |
| flowlibs_IntercomAdminId | String | (configure) | Intercom admin id = actor for the assignment/tag/note. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Teams team (group) id of the account-team channel. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Teams channel id of the account-team channel. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Intercom | shared_intercom | TrigNewConversation GetLead POST /conversations/{id}/parts POST /conversations/{id}/tags |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords |
| 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.
- Match strategy
- The VIP gate matches flowlibs_email or flowlibs_companydomain. Populate domains to catch any contact from a strategic account; populate emails for individual named contacts.
- Entitlements
- Add contract/SLA-tier columns to the VIP table and surface them in the AM alert and the priority note.
- Tiered routing
- Store a per-tier team id and pick the assignee dynamically instead of a single flowlibs_VipTeamId.
- Auto-CC the AM
- Add the account manager as a conversation participant via an extra POST /conversations/{id}/parts (assignment/admin).
- Polling cadence
- Adjust the trigger recurrence (default every 3 minutes) to your volume.
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.01VIP gate
True when a VIP record matched.
EXPR.02Contact domain
Derive the company domain from the email.
EXPR.03VIP filter (OData)
Match by email or domain.
EXPR.04Matched VIP field
Read the matched account manager.
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.