Triggers

Triggers control when Escalate auto-creates a deal channel for a qualifying CRM deal. Configured via /escalate config trigger; the trigger evaluates on every CRM stage transition (Salesforce: 5-min poll; HubSpot: stage-change webhook).

The 5 fields

Escalate's trigger config has exactly five fields. All five have sane defaults — you don't need to touch this surface to get started.

version

The schema version literal. Default: 1. A future evolution to the trigger DSL would introduce version: 2 with a discriminated union; today, all configs are version 1. Don't change this field manually.

minAmountUsd

The minimum deal amount (in USD) that qualifies. Deals below this are below the founder-attention threshold Escalate is built for.

Default: 75_000 ($75,000 USD). This number traces to the V1 ICP — $75K+ median ACV deals are the ones where a stall in the last-mile review cycle materially affects close timing.

To change: open the modal via /escalate config trigger and edit the numeric input.

qualifyingStages

The list of CRM stage names that fire trigger evaluation. A deal transitioning INTO one of these stages (from any other stage) fires the trigger check; if it also clears minAmountUsd, the deal channel auto-creates.

Default: ['Negotiation', 'Verbal Commit', 'Contract Sent', 'Proposal'].

These cover the most common late-stage Salesforce + HubSpot pipeline labels. If your pipeline uses different naming (e.g., "Closed Won — Pending Legal"), edit via the modal — the input is a tag-style multi-select.

Example pipeline mappings:

  • Salesforce default pipeline: Prospecting / Qualification / Needs Analysis / Value Proposition / Id. Decision Makers / Perception Analysis / Proposal/Price Quote → maps to your Proposal qualifier; Negotiation/Review → maps to Negotiation; Closed Won → too late to add coverage.
  • HubSpot default pipeline: Appointment Scheduled / Qualified to Buy / Presentation Scheduled / Decision Maker Bought-In / Contract Sent / Closed Won → Contract Sent is the typical qualifier.

matchMode

How stage names are compared against the CRM value.

Default: 'case-insensitive'.

The two options:

  • 'case-insensitive''Negotiation' matches 'NEGOTIATION' matches 'negotiation'. Recommended; CRM admins are inconsistent.
  • 'case-sensitive' — exact match. Use only if you have a pipeline with case-distinct stage names (rare).

requireAmount

Whether deals MUST have a populated amount field to qualify.

Default: true.

When requireAmount: true:

  • A deal with Amount = null (or unset) is NOT eligible regardless of stage.
  • A deal with Amount = $50,000 (below minAmountUsd) is NOT eligible.
  • Only deals with Amount >= minAmountUsd qualify.

When requireAmount: false:

  • Deals without amount fields qualify as long as they hit a qualifying stage. Use sparingly — this widens the net.

The default of true matches the V1 ICP: founders want signal on material deals, not on every Opportunity that crosses Negotiation.

How to configure

Run /escalate config trigger. The modal exposes:

  • Stages — multi-select tags. Type to add; click X to remove.
  • Minimum amount — numeric input in USD.
  • Match mode — radio buttons.
  • Require amount — checkbox.

version is not user-editable (always 1 in V1).

Saving applies immediately to the next CRM stage transition (5-min poll for Salesforce; webhook-driven for HubSpot, typically < 30s).

Retrofit + already-qualified deals

The trigger only fires on NEW stage transitions. Deals that were ALREADY in a qualifying stage at the time you installed Escalate are not auto-covered.

To catch them, run /escalate retrofit (admin) after install. The retrofit pass scans your full CRM, finds deals matching the current trigger config, and queues channel-creation for each.

Idempotent: running retrofit a second time doesn't re-create channels for deals already covered.

Common questions

What if my pipeline has a stage Escalate's defaults don't include?

Add it via the modal. The stage list is workspace-scoped; your config doesn't affect any other Escalate customer.

Can I set different minimums per stage?

V1: no. The minimum applies uniformly across qualifying stages. V1.5 candidate if customer demand surfaces; ping the founder.

The channel still creates. Unmapped roles get logged in the audit chain as gaps. Run /escalate config roles to fill them.

Why does my default-config'd workspace have 4 stages but the spec mentions 5 fields?

The 4 stages + 1 minimum + 1 match mode + 1 require-amount + 1 version literal = 5 fields. The stages list is one field that holds 4 values by default. Don't conflate "field count" with "stage count."

Can I disable triggers entirely?

Today: no — you can't have a covered workspace without a trigger config. To pause coverage, you'd cancel via the Customer Portal. V1.5 may add a "pause coverage" toggle if demand surfaces.

Next steps

  • Apply the trigger now: /escalate config trigger.
  • Catch already-qualified deals: /escalate retrofit.
  • Per-role business-day silence tuning: Thresholds.