Mailchimp New Subscriber to CRM Lead
When a new subscriber joins a Mailchimp audience (web signup, landing page), the flow creates or updates a lead in Dataverse, tags the source, notifies the assigned rep in Teams for high-intent segments, and sends a welcome email. Turns email signups into tracked CRM leads with timely follow-up.
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 Mailchimp audience signups into tracked CRM leads in Microsoft Dataverse. When a new subscriber joins the configured Mailchimp audience (web signup, landing page, etc.), the flow upserts a lead record in a Dataverse table with source attribution, alerts the assigned sales rep by email for high-intent subscribers (VIP members or those meeting a configurable member-rating threshold), and sends the subscriber a welcome email.
Why it matters: Email subscribers are leads, but they sit in Mailchimp until someone exports them. Auto-creating/updating CRM leads enables timely, tracked follow-up with full source attribution and immediate sales attention on the hottest signals.
Built via the API-first / workflow-table path. Ships Off - going live requires only authorizing the three connections and setting the four environment-variable values.
Use Case
Marketing and Sales teams want every new Mailchimp subscriber captured automatically as a CRM lead with source attribution, deduped by email, with the assigned rep alerted on high-intent signups and the subscriber receiving a prompt welcome.
Flow Architecture
When a New Subscriber Joins the Audience
Mailchimp — OnMemberSubscribed (batch, splitOn members)Fires per new subscriber in the configured audience.
Initialize Lead Source
Initialize Variable (String)Source-attribution label from env var.
Initialize Sales Rep Email
Initialize Variable (String)Rep alert recipient from env var.
Initialize High Intent Min Rating
Initialize Variable (Integer)Parses the rating threshold from the string env var.
Initialize Subscriber Email
Initialize Variable (String)Dedupe key + welcome recipient.
Initialize Subscriber Name
Initialize Variable (String)Display name from FNAME/LNAME, falls back to email.
Get Existing Lead By Email
Microsoft Dataverse — ListRecordsLooks up an existing lead by email (upsert / dedupe).
Condition Lead Already Exists
IfTrue updates existing lead; False creates new lead.
Update Existing Lead
Microsoft Dataverse — UpdateRecordRefreshes fields, status = Updated.
Create New Lead
Microsoft Dataverse — CreateRecordNew lead row, status = New.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_AudienceId | String | REPLACE_WITH_AUDIENCE_ID | Mailchimp audience (list) id the trigger watches. Reused across FlowLibs Mailchimp solutions. |
| flowlibs_LeadSourceTag | String | Mailchimp Signup | Source-attribution label written to the lead's Lead Source field. |
| flowlibs_SalesRepEmail | String | sales-rep@yourcompany.com | Rep notified for high-intent subscribers. |
| flowlibs_HighIntentMinRating | String | 4 | Minimum Mailchimp member rating (1-5) flagging a subscriber high-intent. VIP members always qualify. Stored as String, parsed with int(). |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Mailchimp | shared_mailchimp | OnMemberSubscribed |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords CreateRecord UpdateRecord |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
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.
- Polling cadence
- The Mailchimp batch trigger runs on a recurrence (default every 5 minutes). Adjust for higher/lower freshness needs.
- High-intent definition
- Change flowlibs_HighIntentMinRating, or extend Condition High Intent Subscriber to read additional signals (signup source, location, language).
- Lead scoring
- Add a numeric score column and compute it from rating/VIP/source in the upsert branches.
- Territory routing
- Derive the rep email from the subscriber's location/segment instead of a single env var.
- Real CRM target
- Swap the demo flowlibs_mailchimpcrmlead table for the standard lead/contact entity, or push to an external CRM connector.
- Teams alert
- Add a Teams PostMessageToConversation action in the high-intent branch if a channel alert is preferred over the Outlook alert.
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.01splitOn (batch trigger)
Fans each new member into its own run.
EXPR.02Subscriber email
Reads the new subscriber's email.
EXPR.03Existing-lead gate
True when a matching lead exists.
EXPR.04Update record id
Target row id for the update branch.
EXPR.05High-intent gate
VIP or rating-threshold check.
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.