Closed-lost re-engagement at a glance
The steps below use Salesforce. HubSpot works the same way with Company and Deal, with 1 difference
in how the deal is found. See Salesforce and HubSpot differences.
Setup for closed-lost workflows
How a workflow finds a closed-lost opportunity
Default has no closed-lost flag of its own, so the workflow asks your CRM. In Salesforce, a Match Record node on Opportunity looks for an opportunity whose Account ID is the account you matched and whose Stage isClosed Lost. Match means the account has a closed-lost
opportunity, and later nodes can use its owner, name, and close date. No Match means it has none.
The Account Signal and Form Submission triggers don’t know your CRM accounts. The
Account Signal carries the visitor’s company domain, and a form carries an email. A first
Match Record turns either one into the CRM account. See
Match an account by company domain.
If your CRM already keeps a field on the account for this, for example a checkbox or a last
closed-lost date that a Salesforce flow or HubSpot workflow sets, you can skip the opportunity match
and branch on that field with Multi-Branch after you match the account.
Play 1: revisit a deal some time after it closes lost
This example alerts the opportunity owner 90 days after a Salesforce opportunity closes lost, unless someone reopened it in the meantime.1
Add the trigger
In Workflows, create a workflow and add CRM Record Updated. Set CRM to
Salesforce and Record to Opportunity. Under Condition, add 2 conditions joined
with and: Stage equals
Closed Lost, and Fields Updated contains any of Stage. The second condition
starts the workflow only when the stage changes, not on every later edit to a lost opportunity.2
Wait
Add Time Delay and set it to 90 days. The longest delay you can set is 365 days.
3
Check that the deal is still lost
Add Match Record. Set CRM to Salesforce and Record to Opportunity. Under
Match Details, match Opportunity ID to the opportunity ID from the trigger, and Stage to
Closed Lost. An opportunity someone reopened during the wait takes No Match, and the run
ends there.4
Alert the owner
On Match, add Send Slack Message. Set Recipients to the owner of the matched
opportunity. In Message, type
{{ to insert the opportunity name, the account, and the close
date. To also post to a team channel, set Slack channels.5
Test and publish
A test waits the full delay, so set Time Delay to 1 minute while you test. Select Test
and fill in the ID of a test opportunity that is closed lost in Salesforce. The test checks the
trigger’s Condition, so also set
StageName to Closed Lost and add StageName to the
fieldsUpdated list. Select Run Test. When the Slack message arrives, set the delay back to
90 days and select Publish. Check that the status
next to the deployment switch reads Live. A new workflow
goes live when you first publish it. If the status reads Paused, turn the switch on.A run that is waiting shows Suspended in Runs until the delay ends. It keeps the version of
the workflow it started with: publishing changes doesn’t change it, and pausing the workflow stops
new runs but not runs already waiting. The check after the delay is what keeps a reopened deal from
sending an alert.
Re-engage checkbox. Then start the
Default workflow with CRM Record Updated and a Fields Updated condition on that field, and
leave out the Time Delay.
Play 2: alert the owner when a closed-lost account visits your site
This example tells the opportunity owner when someone from an account with a closed-lost opportunity views your pricing page.1
Add the trigger
In Workflows, create a workflow. Select Add Node, then Triggers, and choose
Account Signal. Set Page URL pattern to
/pricing and select Create Trigger.2
Find the account
Add Match Record. Set CRM to Salesforce and Record to Account. Under
Match Details, choose Website with the domain matches operator, and pick the company
domain from the trigger.
3
Look for a closed-lost opportunity
On Match, add a second Match Record with Record set to Opportunity. Under
Match Details, match Account ID to the ID of the account from the previous node, and Stage to
Closed Lost. Under Prioritize matched records by, select Add tiebreaker and sort by Close
Date, Newest first, so the most recent loss wins.4
Alert the owner
On the second node’s Match branch, add Send Slack Message. Set Recipients to the owner
of the matched opportunity, and insert the account name, the page, and the opportunity’s close
date in Message. Leave both No Match branches empty, or send them to your usual visitor
workflow. See Website visitor to outbound.
5
Test and publish
Select Test, fill in the domain of an account that has a closed-lost opportunity, and select
Run Test. Then select Publish and check that the status reads Live. If it reads
Paused, turn the switch on.
Play 3: route a returning form submission to the previous owner
- Start the workflow with Form Submission and set Connected Form to your form.
- Add Match Record on Account. Match Website with domain matches to the email from the form, and choose Domain from email.
- On Match, add the closed-lost opportunity Match Record from play 2.
- On its Match branch, if the form shows a calendar, add Display Scheduler, turn off Use event hosts, and set the host to the owner of the matched opportunity. Set Fallback Host (Optional) for when they’re away. See Connect a scheduler to your form.
- Add Send Slack Message to the same owner. With a scheduler, put it on the Booked and Not booked branches, so the alert doesn’t delay the calendar.
- Send every No Match branch to your usual routing, for example a Round-Robin node.
Salesforce and HubSpot differences
HubSpot: find a closed-lost Deal
HubSpot: find a closed-lost Deal
For play 1, set CRM to HubSpot and Record to Deal, with the conditions Deal Stage
equals your closed lost stage and Fields Updated contains any of Deal Stage. To check the deal after
the delay, match the Deal by its Record ID and Deal Stage.For plays 2 and 3, match the Company by its Company Domain Name with domain matches. To
find the Deal, add Match Record on Deal and turn on Match by association. Set
Source record type to Company and Source record to the matched company. With
association on, Match Details doesn’t apply, so:
- Under Prioritize matched records by, add Prefer records where Deal Stage is your closed lost stage, then sort by Close Date, Newest first.
- Add Multi-Branch with a branch where the matched deal’s Deal Stage is your closed lost stage. Send the alert from that branch, and leave Else empty.
Several pipelines or lost stages
Several pipelines or lost stages
In HubSpot, each pipeline has its own closed lost stage. Pick the closed lost stage of every
pipeline you sell through. In Salesforce, if you renamed the lost stage or use more than 1, match
Closed equals true and Won equals false instead of Stage.
Lost reasons
Lost reasons
If you record why a deal was lost, for example HubSpot’s Closed Lost Reason property or a custom
Salesforce field, add a Multi-Branch condition on it before the alert. Leave out deals lost for
reasons that don’t change, such as
No fit.How changes reach Default
How changes reach Default
Salesforce pushes opportunity changes to Default as they happen. Default checks HubSpot for updated
deals every few minutes, so play 1 starts a little later in HubSpot. See
How Salesforce changes reach Default
and How HubSpot changes reach Default.
Check that closed-lost re-engagement works
- Runs: open the workflow and select Runs. Play 1 runs read Suspended while they wait. Filter by status to see every run still waiting. See Run logs.
- Run Details: each Match Record step shows the condition and the record it matched. Expand Show data under a step to see the values it read and wrote.
- Watched fields: on the Salesforce or HubSpot page in Settings → Integrations, Opportunity or Deal no longer reads No active triggers once a play 1 workflow is published.
- Account Signal: it starts 1 run per company per hour, so a second visit within the hour doesn’t start another run. Visitors on home networks or a VPN often stay anonymous.
Troubleshoot closed-lost workflows
Related: Sales workflow software from Default