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
Proposalqualifier; Negotiation/Review → maps toNegotiation; 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 Sentis 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(belowminAmountUsd) is NOT eligible. - Only deals with
Amount >= minAmountUsdqualify.
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.
What if a deal qualifies but Legal isn't assigned in CRM?
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.