Mailchimp Event-Triggered Journey Enrolment
When a business event occurs in Dataverse (purchase, signup, milestone), the flow adds the contact to the matching Mailchimp tag/journey to start an automated email sequence, sets merge fields for personalization, and logs the enrolment. Drives lifecycle email automation from operational events with consent respected.
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 operational Dataverse business events (purchase, signup, milestone) into Mailchimp lifecycle email automation. When a Journey Event row is created, the flow resolves which journey the event maps to, and — only if the contact has granted marketing consent — enrols the contact into the matching Mailchimp journey audience with FNAME/LNAME personalization, logs the enrolment to Dataverse, and notifies marketing ops.
Why it matters: The best emails are triggered by what customers do. Connecting CRM/operational events to Mailchimp journeys delivers timely, relevant sequences automatically — with consent respected and a full audit trail.
Build status: Built API-first into solution FlowLibs - Mailchimp Event-Triggered Journey Enrolment. Flow ships Off. Flow Checker: 0 errors / 0 warnings.
Use Case
Marketing/Operations want Mailchimp automations triggered by CRM and business events (purchases, signups, milestones) — not just list signups. A new Journey Event row in Dataverse (written by any upstream system) drives the enrolment, so the journey logic lives in one governed place and every enrolment is auditable.
Flow Architecture
When a Business Event Row Is Created
Microsoft Dataverse — SubscribeWebhookTriggerFires on create of a flowlibs_journeyevent row (message=1, scope=Organization).
Initialize Correlation Id
Initialize Variable (String)@guid() for end-to-end traceability.
Initialize Audience Id
Initialize Variable (String)Mailchimp journeys audience (list id) from env var.
Initialize Contact Email
Initialize Variable (String)Member key from the trigger.
Initialize First Name
Initialize Variable (String)FNAME merge value.
Initialize Last Name
Initialize Variable (String)LNAME merge value.
Initialize Event Type
Initialize Variable (String)purchase / signup / milestone.
Initialize Journey Tag
Initialize Variable (String)Resolve journey name from the event-to-journey map (fallback to default).
Initialize Journey Merge Key
Initialize Variable (String)Configurable Mailchimp merge field key (documentation/portability).
Initialize Log Table
Initialize Variable (String)Enrolment log table (env var, portability).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_AudienceId | String | <configure> | Mailchimp journeys audience / list id to enrol contacts into |
| flowlibs_EventJourneyMap | String | {"purchase":"customer-onboarding","signup":"welcome-series","milestone":"loyalty-track"} | JSON map: event type to journey/tag name (recorded; admin maps tag to the Mailchimp automation) |
| flowlibs_DefaultJourneyTag | String | general-nurture | Fallback journey tag when the event type has no mapping |
| flowlibs_JourneyMergeFieldKey | String | JOURNEY | Mailchimp merge field an admin maps the journey tag onto (documentation/portability) |
| flowlibs_EnrolmentLogTable | String | flowlibs_journeylogs | Dataverse table (entity set) used to log enrolments |
| flowlibs_NotificationEmail | String | marketing-ops@flowlibs.local | Recipient for enrolment confirmation / skip notifications |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Mailchimp | shared_mailchimp | updatemember_v2 |
| Microsoft Dataverse | shared_commondataserviceforapps | SubscribeWebhookTrigger CreateRecord |
| 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.
- Point at your audience
- Set flowlibs_AudienceId to your Mailchimp list/audience id whose subscription triggers the journey.
- Map events to journeys
- Edit flowlibs_EventJourneyMap JSON to map each event type to a journey/tag name; set flowlibs_DefaultJourneyTag for unmapped types.
- Suppression
- Add a Filter/Condition to skip contacts already in a conflicting journey before enrolling.
- Frequency cap
- Query flowlibs_journeylog for recent enrolments of the same contact and short-circuit if over a threshold.
- Exit / conversion
- Extend with a second flow that updates the member (or removes the tag) on conversion to end the sequence.
- Richer personalization
- Add more business-event columns and pass them through FNAME/LNAME-equivalent merge fields your audience defines (mirroring the leaf-path pattern).
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.01Consent gate
Only consented contacts proceed to enrolment.
EXPR.02Journey tag resolve
Maps the event type to a journey tag, falling back to the default.
EXPR.03Correlation id (trace)
Run-unique id stamped on the log row and notification.
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.