docs/.mintlify/skills/dashboard-workflows/references/step-conditions.md
Generate a JSONLogic condition for step execution in the Dashboard / Novu MCP.
true.null to remove the condition (the step always executes).When editing an existing condition via the Novu MCP, decide based on the user's intent:
| Intent | Behavior |
|---|---|
| ADD / EXTEND — "add", "also", "and", "in addition" | Combine existing condition with new using AND: { "and": [existing, new] } |
| REPLACE — "change to", "update to", "set to", "replace with" | Return the new condition entirely; ignore existing |
| REMOVE — "remove", "delete", "clear" | Return null |
Use var for variable references: { "var": "path.to.value" }.
| Namespace | Source |
|---|---|
payload.* | Trigger payload (e.g. payload.amount, payload.priority) |
subscriber.* | Subscriber data (e.g. subscriber.firstName, subscriber.isOnline) |
steps.* | Previous step state (e.g. steps.welcome-in-app.read, steps.welcome-in-app.seen) |
steps.<http-step-id>.* | HTTP step response properties defined in its responseBodySchema (e.g. steps.fetch-user.role) |
{ "==": [{ "var": "subscriber.isOnline" }, "false"] }
{ "==": [{ "var": "steps.<stepId>.read" }, "false"] }
{ "==": [{ "var": "steps.<stepId>.seen" }, "false"] }
{ "==": [{ "var": "steps.<http-step-id>.status" }, "active"] }
Only when the property is declared in the HTTP step's
responseBodySchema. Seehttp-request-step.md.
{ "==": [{ "var": "payload.priority" }, "high"] }
{ "!=": [{ "var": "payload.priority" }, "low"] }
{ "and": [condition1, condition2] }
{ "or": [condition1, condition2] }
{ "!": [condition] }
Return only the skip field: a JSONLogic object or null.
design-workflow/references/step-conditions.md — side-by-side Dashboard JSON-Logic vs Framework skip semantics, plus the full list of available subscriber.* properties and step-output pathshttp-request-step.md — declare responseBodySchema so an HTTP response field becomes addressable in steps.<http-step-id>.<property>design-workflow/references/channel-selection.md — when to use the "subscriber offline" gate on Push