Stripe New Customer Onboarding
When a new Stripe customer is created, the flow provisions their account in Dataverse, sends a welcome sequence, assigns a CSM by segment, creates onboarding tasks, and posts to the sales channel. Turns a first payment into a structured onboarding journey.
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 the creation of a new Stripe customer into a structured, governed onboarding journey. When Stripe reports a new customer, the flow retrieves the full customer record, derives a business segment, assigns a Customer Success Manager (CSM), provisions a CRM account in Dataverse, generates a set of onboarding tasks, emails the customer a welcome message, and notifies the sales channel — all idempotently, so an existing customer is never re-onboarded.
Why it matters: New customers need a fast, consistent start. Automating provisioning, ownership assignment, and the welcome sequence improves activation and retention while giving sales and CS a single governed record of every new account.
Status: Built. Ships Off (demo). Flow Checker: 0 errors / 0 warnings.
Use Case
A business wants every new Stripe customer to enter a standard onboarding flow automatically, rather than relying on manual CRM entry and ad-hoc welcome emails. This flow is the integration backbone: it listens for new Stripe customers, records them in Dataverse, routes ownership by segment, seeds onboarding tasks with due dates, and keeps both the customer and the sales team informed.
Flow Architecture
When a new Stripe customer is created
Stripe — OnNewCustomer (batch poll, 5 min, splitOn)Fires once per new Stripe customer.
Initialize CorrelationId
Initialize VariableMint a guid() trace id stamped on the account and every task.
Load configuration env vars
Initialize VariableSegment-to-CSM map, welcome template, onboarding tasks JSON, sales channel email, default segment, and enterprise threshold.
Initialize Customer Name / Email
Initialize VariableResolve a display name (description, then email, then 'New Customer') and capture the customer email.
Get Stripe Customer Details
Stripe — GetCustomerRetrieve the full customer record by id.
Initialize Segment / Assigned CSM
Initialize VariableDerive segment from account balance vs the threshold, then look up the CSM for that segment.
Check If Customer Already Onboarded
Microsoft Dataverse — ListRecordsFind any existing account for this Stripe customer id.
If New Customer
ConditionBranch on whether an account already exists (idempotency guard).
Provision Account In Dataverse
Microsoft Dataverse — CreateRecordCreate the CRM account row (name, Stripe id, email, segment, CSM, status, correlation id, provisioned date).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_SegmentCsmMap | String | {"enterprise":"csm-enterprise@yourcompany.com","mid":"csm-mid@yourcompany.com","smb":"csm-smb@yourcompany.com"} | JSON map of each segment to the assigned CSM email. |
| flowlibs_WelcomeTemplate | String | <html>Welcome {name}, your contact is {csm}.</html> | Welcome email body template with {name} and {csm} placeholders. |
| flowlibs_OnboardingTasks | String | [{"title":"Kickoff call","offsetDays":2},{"title":"30-day health check","offsetDays":30}] | JSON array of onboarding tasks ([{title, offsetDays}]) created per customer. |
| flowlibs_SalesChannelEmail | String | sales-onboarding@yourcompany.com | Mailbox that receives the onboarding notification. |
| flowlibs_DefaultSegment | String | smb | Segment used when below the enterprise threshold. |
| flowlibs_EnterpriseBalanceThreshold | String | 50000 | Stripe account_balance (cents) at or above which a customer is enterprise. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Stripe | shared_stripe | OnNewCustomer GetCustomer |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords 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.
- Welcome drip
- Extend Send Welcome Email into a multi-step series by adding Delay + additional SendEmailV2 actions, or hand off to a marketing platform.
- Segmentation logic
- Initialize Segment classifies on account_balance. To segment on plan/amount, call the Stripe REST API (GET /v1/customers/{id} exposes metadata) via an HTTP action and read metadata.plan, then keep the same SegmentCsmMap lookup. Add a third tier by replacing the binary if() with a nested expression.
- Task set
- Edit flowlibs_OnboardingTasks JSON to change task titles/offsets; no flow edit needed.
- CSM routing
- Edit flowlibs_SegmentCsmMap JSON to change ownership by segment.
- Sales notification
- Repoint flowlibs_SalesChannelEmail, or swap Notify Sales Channel for a Teams PostMessageToConversation if a Teams channel is preferred.
- 30-day health check
- The 30-day health check task is already seeded; wire a scheduled companion flow to act on Due On.
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.01Display name
Resolve a display name from description, then email, then a literal fallback.
EXPR.02Segment derivation
Classify the customer as enterprise vs the default segment by account balance.
EXPR.03CSM assignment
Look up the CSM for the segment, falling back to the default segment's CSM.
EXPR.04Idempotency guard
Proceed only when no account exists for this Stripe customer.
EXPR.05Task due date
Compute each onboarding task's due date from its offset.
EXPR.06Welcome merge
Merge the customer name and CSM into the welcome template.
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.