Using Custom Logic in Workflow Triggers
Last updated: August 28, 2026
Overview
When you set up a CRM trigger for a Workflow, you define one or more conditions that a record must meet before OnRamp creates a project. By default, all of your conditions must be true — but you can now control exactly how those conditions combine using All, Any, or Custom logic.
This gives you the flexibility to build rules like "fire when the deal is Closed Won, OR the amount is over $100,000, AND the owner is on the Enterprise team" — not just a simple list of AND conditions.
Where to find it
Open your Workflow and go to the Trigger step.
Add your conditions as usual — each condition appears as a numbered row in the list.
Above the condition list, you'll see a mode selector: All / Any / Custom.
The three modes
Mode | Behavior |
|---|---|
All | Every condition must be true (this is the default, and matches how triggers have always worked). |
Any | At least one condition must be true. |
Custom | You write your own logic using the condition numbers. |
Existing triggers you built before this feature shipped are unaffected — they continue to behave exactly as they did, using All.
Writing custom logic
Switching to Custom reveals an expression box above your numbered conditions. Reference each condition by its number and combine them with AND, OR, and parentheses. For example, with three conditions:
Stage is "Closed Won"
Amount is greater than 100
Owner is "ada"
You could write:
(1 AND 2) OR 3As you type, OnRamp translates your expression into plain language underneath the box, so you can confirm it says what you mean before you publish. Use that live readout in the product as your source of truth — it always reflects exactly what you typed.
Editing your conditions
Once you're in Custom mode, editing the condition list is handled safely:
Reordering a condition (drag it to a new position) automatically renumbers your logic to match, so the rule keeps working exactly as before. For example, if your logic is
((1 AND 2) OR 3)and you drag condition C into position 2, your logic becomes((1 AND 3) OR 2)— same rule, new numbers. You'll see a confirmation when you do this, since the numbers can end up out of sequence.Deleting a condition that your logic refers to does not silently rewrite your rule. Instead, the trigger is flagged as invalid and publishing is blocked until you fix it, with a message like:
Condition 4 doesn't exist. Your logic refers to condition 4, but this trigger only has 3 conditions. Update the logic, or add the missing condition.
This is intentional — OnRamp will never guess which condition you meant to re-point a rule at.
Notes
Custom logic is available for both Salesforce and HubSpot triggers.
NOTis supported in custom expressions (e.g.NOT(2)) for advanced use, even though there's no dedicated button for it.If you leave the Custom expression box blank or malformed, the trigger can't be published until it's fixed.
FAQ
Do I need to update my existing triggers? No. Any trigger created before this feature was released keeps working under the implicit All (AND) behavior — nothing changes unless you opt into Any or Custom mode.
Can I mix operators like "contains" and "is empty" with custom logic? Yes — custom logic controls how your conditions combine; it doesn't change what each individual condition checks.
What happens if my custom logic has a typo or references a condition that doesn't exist? The trigger card will show an inline error and block publishing until the logic is valid and every referenced condition exists.