Pipedrive Won Deal to Onboarding Kickoff
When a Pipedrive deal is marked Won, the flow creates a customer/project record in Dataverse, generates an onboarding task checklist, spins up a Teams channel or thread for the account, emails the welcome pack to the customer, and notifies delivery. Turns a closed sale into a fully kicked-off engagement 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 turns a closed Pipedrive sale into a fully kicked-off engagement. On a schedule it polls Pipedrive for deals marked Won, and for each newly won deal it creates a customer/project record in Dataverse, generates an onboarding task checklist, spins up a dedicated Microsoft Teams channel and posts a kickoff message, emails the customer a welcome pack, and notifies the delivery team — all automatically.
Why it matters: The sales-to-delivery handoff is where momentum is lost. Automating kickoff means delivery starts immediately with the project, tasks, collaboration space, and customer welcome already in place.
Build status: Built & verified (Flow Checker 0 errors / 0 warnings). Ships Off (demo).
Why a poll, not a "deal won" trigger: the Pipedrive connector exposes only TrigNewDeal, TrigNewDealV2, and TrigNewActivity triggers — there is no native "deal won" / status-change trigger. The connector-first pattern is a scheduled poll + Dataverse idempotency ledger: a Recurrence trigger calls ListDeals, filters to status = 'won', and a lookup against the Kickoff Project table ensures each deal is kicked off exactly once.
Use Case
A services or SaaS team wants every won deal to instantly create the project record, onboarding tasks, a collaboration channel, and a customer welcome — with zero manual handoff between sales and delivery.
Flow Architecture
Recurrence
Schedule (15 min)Polls Pipedrive for won deals (the connector has no native deal-won trigger).
Initialize configuration
Initialize Variable x5Kickoff project table name, delivery handoff email, fallback customer email, Teams group id, and the JSON onboarding checklist template.
List and filter won deals
Pipedrive ListDeals + Filter (status = won)Retrieves all deals and keeps only won deals.
Per won-deal idempotent kickoff
Apply to each Won Deal (concurrency 1)Enriches via Pipedrive GetDeal, checks the Dataverse project ledger by deal id, and only kicks off unprocessed deals. Mints a correlation id.
Create project, tasks, channel
Dataverse CreateRecord + Teams CreateChannel + PostMessageToConversationCreates the kickoff project record and one task row per checklist item (due = today + offsetDays), creates a dedicated account Teams channel, and posts a kickoff summary.
Welcome and handoff emails
Outlook SendEmailV2 x2Emails the customer a welcome pack and notifies the delivery team (High importance).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_KickoffProjectTable | String | flowlibs_kickoffprojects | Project table entity-set name (documentation). |
| flowlibs_OnboardingTemplate | String | [{"title":"Schedule kickoff call","offsetDays":2},{"title":"Provision customer accounts","offsetDays":3},{"title":"Assign delivery team","offsetDays":1},{"title":"Prepare welcome pack","offsetDays":1},{"title":"Set up project workspace","offsetDays":4},{"title":"30-day success check-in","offsetDays":30}] | Onboarding checklist template [{title, offsetDays}]. |
| flowlibs_DeliveryEmail | String | delivery@contoso.com | Delivery-team handoff recipient. |
| flowlibs_DefaultCustomerEmail | String | customer@example.com | Fallback welcome recipient (no contact email). |
| flowlibs_TeamsGroupId | String | REPLACE_WITH_TEAMS_GROUP_ID | AAD group id of the Team hosting the new channel. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Pipedrive | shared_pipedrive | ListDeals GetDeal |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords CreateRecord |
| Microsoft Teams | shared_teams | CreateChannel PostMessageToConversation |
| Office 365 Outlook |
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.
- Poll frequency
- Adjust the Recurrence interval (default 15 min) to match how quickly kickoff should follow a won deal.
- Onboarding checklist
- Edit flowlibs_OnboardingTemplate (JSON) to add/remove tasks or change due-date offsets; no flow-logic change needed.
- Channel strategy
- CreateChannel adds a channel to the Team in flowlibs_TeamsGroupId. To post into an existing channel instead, replace with a single PostMessageToConversation using a fixed channel id.
- Contract / welcome PDF
- Generate an SOW or welcome PDF (e.g. Adobe PDF Services / Word Online templates) and attach it to the welcome email.
- CSM assignment
- Add a step to assign a customer-success owner by segment or deal value.
- Kickoff meeting
- Schedule a kickoff via Bookings/Outlook Calendar from the same loop.
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.01Filter to won deals
Keeps only won deals.
EXPR.02Idempotency $filter
OData filter on the deal id ledger key.
EXPR.03New-deal gate
True only for unprocessed deals.
EXPR.04Task due date
Kickoff + offsetDays.
EXPR.05Customer email (with fallback)
Contact email or fallback.
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.