# Revive deals that went cold

You have access to a CRM, a scraping tool, a professional network, an
issue tracker, email, and a messaging tool. Run this monthly across
**[deals marked lost more than 90 days ago]**.

## 0. Set up (skip if you're already connected)

If you don't already have live tool access for this, connect it
first. This prompt is only as real as the tools behind it:

1. Get a Tulina account: book a demo at https://tulina.ai/book.
2. Add Tulina's MCP server to your assistant: https://mcp.tulina.ai/mcp
3. In Tulina, connect your own API keys for the tools this
   prompt uses: your CRM, a scraping tool, a professional network,
   your issue tracker, your email, and your team's messaging tool.

Once connected, your assistant has real tool access and the rest of
this prompt runs as written.

## 0b. Already on Tulina? Three things around the run

An account and the MCP server are not the whole setup. Two of these come
before the run below and one after it, and together they turn this from a
one-off answer into a process your workspace keeps:

1. **Activate this process's connectors first.** Call
   `oto_connector(op="list")`, match it against the tools named in step 3
   above, and `oto_connector(op="select", name="...")` every one that
   isn't active yet. Selecting a connector does not mount its tools in the
   conversation you're already in — reach them through `oto_call` for this
   run, or open a fresh conversation once they're all on.
2. **Attach the work to an existing project.** `oto_project(op="list")`
   shows your active org's projects: pick the one this work belongs to
   rather than opening another, and keep its id. The project is where this
   process, the tables it writes to and the connectors it uses hang
   together.
3. **When the run is done, save it as a process — with its graph.** Write
   the body with `oto_procedure(op="set", ...)`, then attach it with
   `oto_project(op="link", project_id=..., target_type="procedure",
   target_ref="<your slug>")`. The body has to carry a drawing: read
   `oto_guide(op="read", slug="procedure-flowchart")` and follow it
   exactly — ONE untagged fenced block in that grammar, opening with the
   trigger and a quoted example of what you'd type to start a run. Tulina
   parses that drawing back into the graph it renders as the process's
   default view, which is what makes it come out in the same style as
   every other process in the app; a drawing the grammar can't read falls
   back to raw characters instead. Saving a process needs org-admin
   rights — without them, hand the finished body to someone who has them.

## 1. List deals lost more than 90 days ago

Ninety days is the floor. Inside it the reason for losing is almost
always still true, and the email reads as not having listened.

Put a ceiling at twenty-four months as well. Past that the people
involved have moved on and this is a cold email wearing a follow-up's
clothes.

Exclude outright:

- Deals lost to a competitor on a multi-year contract that has not yet
  expired. Check the term if it was recorded.
- Anyone who asked not to be contacted again.
- Accounts with an open opportunity right now.

## 2. Establish why each one was lost

Read the deal's full history: notes, logged calls, the email thread,
and the closed-lost reason field. The field alone will not do. It is a
dropdown someone picked under time pressure, and "price" often turns
out to mean "no budget this year" or "could not get the security
review through".

Classify each into one of four, and record the evidence you used:

- Timing or budget.
- A missing capability, with the specific capability named. Step 5
  depends on this being precise.
- Lost to a competitor.
- No decision, went quiet.

## 3. Find what changed at each company

Look for what has happened at the company since the loss, with a date
on each item:

- Hiring, especially for the function you sell into. A posting is
  dated, public, and someone at that company approved it.
- Funding, acquisition, a new office, a new market.
- Leadership changes in or above the buying role.

Keep the source URL for anything you plan to reference. A win-back
that cites something the reader can go and check is a different
message from one that gestures at momentum.

## 4. Confirm who is still there

Verify each contact against their public profile before writing
anything. Three outcomes matter:

- Still there. Write to them.
- Gone, with a replacement findable in the same role. Write to the
  replacement, and never open by referencing a conversation they were
  not part of.
- Gone to a company already in your CRM. That is a warm introduction
  at the new account, which is frequently worth more than the win-back
  itself. Flag it separately.

## 5. Spot what has shipped since

For every deal lost over a missing capability, search the issue
tracker for what has been released since that deal closed.

Match on the substance of what they asked for, not on their wording. A
buyer who wanted "a way to see who changed what" and a shipped issue
titled "audit log" are the same thing, and a literal match will miss
it.

Record the release date. A capability that shipped last week is a
reason to write today; one that shipped fourteen months ago raises the
question of why nobody told them at the time, and the email should
acknowledge that rather than pretend it is news.

## 6. Pick the deals worth reopening

Now put the four inputs side by side for each account: the original
loss reason, the fresh signals, the contact situation, and anything
that has since shipped.

A deal is worth reopening when the loss reason has been answered by
one of the others:

- Lost on a missing capability, and that capability now exists.
- Lost on timing or budget, and there is a funding round, a new fiscal
  year, or a new person in the buying role.
- Lost to a competitor, and their contract is near its renewal window.
- Went quiet, and the person who went quiet has been replaced.

Where nothing answers the loss reason, drop the deal and count it. A
win-back with nothing new to say is how a sender gets marked as spam,
and these accounts already said no once.

## 7. Draft emails, post the batch for review

One email per account: what happened, what changed, one question.

Reference the original conversation specifically, including roughly
when it was. Name the change plainly. If a capability shipped, say
what it does rather than promising "exciting updates".

Draft it, do not send it. Then post to the team channel: how many
deals were in scope, how many were dropped and why, and the drafts
grouped by loss reason so whoever owns the account can scan their own.

## Output

Report: deals in scope, dropped by exclusion rule, dropped for nothing
having answered the loss reason, contacts that had left, champions
found at accounts you already hold, capabilities matched to shipped
work, and drafts written.
