Intercom Qualified Lead to CRM
When an Intercom conversation is tagged as a qualified lead (or a visitor leaves contact details), the flow creates or updates a lead in Dataverse, assigns it to the right rep, alerts that rep in Teams with the conversation context, and writes the CRM link back to the Intercom conversation. Turns sales chats into tracked CRM leads instantly.
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 Intercom leads into tracked Dataverse CRM leads. When a visitor leaves contact details in Intercom (a new lead is created), the flow scores the lead, and if it qualifies it upserts a CRM lead record, round-robin assigns a sales rep, alerts that rep in Teams with the lead context, and writes a CRM-link note back onto the Intercom contact.
Why it matters: Sales chats in Intercom get lost if they're never captured in the CRM. Instant scoring, lead creation and rep assignment means no hot lead goes cold, and the rep sees the full context immediately.
Use Case
A sales/marketing team uses Intercom for website chat and lead capture and wants qualified leads promoted to a governed CRM (Dataverse), owned by a rep and followed up promptly - with a link back to the source contact in Intercom.
Flow Architecture
When a New Lead Is Created
Intercom TrigNewLeadFires once per new Intercom lead (visitor left contact details).
Get Lead Details
Intercom GetLeadRetrieves the full contact (email, phone, name, location) by id.
Initialize variables
Initialize VariableCorrelation id, score threshold, rep rotation list, Teams ids, record id.
Compute Lead Score
ComposeScores the lead 0-100 (email 40, phone 30, name 30).
Compute Assigned Rep
ComposeDeterministic round-robin: rep by email-length mod list size.
Check If Lead Is Qualified
Condition (If)Gate: score >= threshold.
List Existing CRM Leads
Dataverse ListRecordsDe-dup lookup by Intercom contact id.
Create / Update CRM Lead
Dataverse CreateRecord / UpdateRecordUpsert the CRM lead.
Alert Assigned Rep In Teams
Teams PostMessageToConversationNotifies the rep with lead context + CRM deep link.
Write Lead Note Back To Intercom
HTTP POST /contacts/{id}/notesWrites the CRM link back onto the Intercom contact.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_LeadQualMinScore | String | 50 | Minimum score to qualify a lead. |
| flowlibs_RepRotationList | String | rep1@yourcompany.com,rep2@yourcompany.com,rep3@yourcompany.com | Comma list of reps for round-robin. |
| flowlibs_LeadSource | String | Intercom | Source label shown in the Teams alert. |
| flowlibs_CrmRecordBaseUrl | String | https://yourorg.crm.dynamics.com | Base org URL for the CRM deep link. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Target Teams team (group) id. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Target Teams channel id. |
| flowlibs_IntercomApiBase | String | https://api.intercom.io | Intercom REST base (note write-back). |
| flowlibs_IntercomApiToken | String | REPLACE_WITH_INTERCOM_TOKEN | Intercom access token (Bearer). |
| flowlibs_IntercomVersion | String | 2.11 | Intercom-Version header. |
| flowlibs_IntercomAdminId |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Intercom | shared_intercom | TrigNewLead GetLead POST /contacts/{id}/notes |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords CreateRecord UpdateRecord |
| 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.
- Lead scoring
- Adjust the weights in Compute Lead Score, or add Intercom custom-attribute signals, then tune flowlibs_LeadQualMinScore.
- Rep routing
- Swap the email-length round-robin for territory/region or product routing, or drive it from a Dataverse owners table.
- Different CRM
- Repoint the upsert to Salesforce/HubSpot/Dynamics Sales instead of the flowlibs_crmlead table.
- Company enrichment
- Add an Intercom companies lookup (HTTP) to populate company / job title.
- Trigger cadence
- Change the trigger recurrence (currently every 3 minutes).
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.01Lead score
Score the lead 0-100.
EXPR.02Round-robin rep
Pick a rep deterministically.
EXPR.03De-dup filter
Find an existing CRM lead.
EXPR.04CRM deep link
Build the CRM record deep link.
EXPR.05Qualification gate
Only act on qualified leads.
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.