🇪🇸 Español 🇬🇧 English 🇧🇷 Português

Trigger: Deal Lost

Fires a workflow automatically whenever a CRM deal is marked as lost.

Jul 11, 2026

The Deal Lost trigger fires a workflow the instant a CRM deal is marked lost, in any pipeline (or a specific one). It's the ready-made version of the generic "stage changed" trigger, pre-filtered for status = lost.

When to use it

  • Alert the sales manager when an opportunity is lost.
  • Auto-log a follow-up note on the contact's record.
  • Kick off a "win-back" sequence via WhatsApp or email weeks later.
  • Move a related card on a Boards project to "Closed – lost".

Requirements

You need the CRM module (Deals/Pipelines) enabled on your workspace, plus the Workflows engine on your plan.

Variables available

  • $trigger.title, $trigger.stage_name, $trigger.status (always "lost")
  • $trigger.contact_id plus every contact variable: $contact.display_name, $contact.email, $contact.phone, $contact.company
  • ⚠️ $trigger.amount and $trigger.pipeline_idnot available on this trigger: the "lost" event travels as a stage change, and that payload only includes title, stage, status, and contact — not the deal's amount or pipeline. If you use them in a message, the result comes back empty.

How to build it

  1. Go to Workflows in the left sidebar and click New workflow (or open an existing one).
  2. Drag the Trigger node onto the canvas and pick Deal Lost (under the CRM & records category).
  3. Optionally filter by a specific pipeline; leave it blank to match any pipeline.
  4. Add action steps — Notify team, Log activity, etc. — pulling tokens from the Available variables panel.
  5. Save and turn the workflow Active.

Example

A workflow named "Deal lost alert": fires on any pipeline → Notify team in the "Sales" space with ❌ Lost {{trigger.title}} from {{contact.display_name}} (don't include {{trigger.amount}}, it comes back empty today) → Log activity on the contact titled "Deal lost".

Tips

  • If you need to escalate only large deals, you can't condition on $trigger.amount (it's not available here); consider adding a node that looks up the deal via $record.object_id to get the real amount.
  • If you run several pipelines per team, filter by pipeline so each team only gets its own alerts.

Troubleshooting

  • If the workflow never fires, confirm the deal was actually moved to "lost" from the CRM board (editing other fields isn't enough) and that the workflow is Active, not just saved.
  • If your message shows blank where you expected {{$trigger.amount}} or {{$trigger.pipeline_id}}: that's a known issue, those variables don't travel in the stage-change event that feeds this trigger.
Was this helpful?

Related articles