> For the complete documentation index, see [llms.txt](https://docs.distro.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.distro.so/guides/closed-lost.md).

# Closed-lost re-engagement

Bring closed-lost deals back to sales some months after the loss, or when the account shows interest again.

Closed lost is a deal your team didn't win: a Salesforce Opportunity in `Closed Lost`, or a HubSpot Deal in a pipeline's closed-lost stage. Re-engagement brings those deals back when the timing may have changed. A workflow notices the moment, finds the lost deal in your CRM, and alerts the team.

## The plays

| Play                         | Trigger                                                             | Steps                                                         | Result                                                          |
| ---------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------- | --------------------------------------------------------------- |
| 1. Revisit later             | **Salesforce object updated**, Opportunity changes to `Closed Lost` | **Wait**, **Match Salesforce Record**, **Notify in Slack**    | The team hears about the deal again, for example 90 days later. |
| 2. Lost account on your site | **Visitor identified** (company reveal)                             | Two matches (account, lost opportunity), **Notify in Slack**  | The team hears the account is back.                             |
| 3. Lost account fills a form | **New form submission**                                             | The same matches, then **Show Scheduler** with the deal owner | The person books with the rep who worked the deal.              |

## Play 1: revisit after 90 days

{% stepper %}
{% step %}

### Trigger on the loss

**Salesforce object updated**, `Opportunity`, with **Start only when** `StageName` **Equals** `Closed Lost` and a checkbox such as `Reengage_Started__c` **Does not equal** `true`. Then add **Update Salesforce Record** that sets `Reengage_Started__c` to `true`. The condition is checked after every change, so the mark stops later edits to the lost deal from starting more runs.
{% endstep %}

{% step %}

### Wait

Add **Wait** for 90 days. The longest wait is 365 days. A waiting run keeps the version it started with.
{% endstep %}

{% step %}

### Check the deal is still lost

**Match Salesforce Record** on `Opportunity` with `Id` from the trigger and `StageName` = `Closed Lost`. A reopened deal takes **Not matched** and the run ends.
{% endstep %}

{% step %}

### Alert the team

On **Matched**, **Notify in Slack** your re-engagement channel with the opportunity name, account, and close date.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Notify in Slack** sends to members, channels, or a rep picked earlier in the run. It can't message a CRM record's owner directly, so post to a channel your reps watch, or use **Show Scheduler** with **CRM record owner** where the person can book.
{% endhint %}

## Play 2: lost account back on your pricing page

1. **Visitor identified**, company reveals, **Page URL contains** `/pricing`.
2. **Match Salesforce Record** on `Account` by domain.
3. On **Matched**, **Match Salesforce Record** on `Opportunity` with `AccountId` from the account and `StageName` = `Closed Lost`, picking **Highest value of a field** `CloseDate` so the most recent loss wins.
4. On **Matched**, alert the channel. To skip accounts with a new open deal, add a third match on open stages and alert only from its **Not matched**.

## Play 3: returning form submission

Start from **New form submission**, match the account by the email's domain, then the lost opportunity. On **Matched**, **Show Scheduler** with **CRM record owner** set to the opportunity's owner and a **Fallback host**. Post the alert on **Booked** and **Not booked**, so it doesn't delay the calendar.

## HubSpot

Use **Hubspot record updated** on Deals with **Only when selected properties change**: `dealstage`. To find a company's deal, use **Match HubSpot Record** with **Match by association** from the company, then **Branch** on the deal stage, because a company with no lost deal still matches its other deals.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.distro.so/guides/closed-lost.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
