Compare
Evaluate two values with operators like equals, contains, and starts with — supports automatic type detection and case sensitivity.
The Compare step evaluates two values and returns true or false. Use it to build conditional branches in your agent — route a conversation based on a classification result, check whether a score exceeds a threshold, or verify that a date falls within range.
Compare automatically detects whether the values are numbers, dates, booleans, or strings and applies the appropriate comparison logic. No manual type casting required.
Configuration
The first value to compare. Accepts plain text or an expression like {{Steps.Classifier.Value}}.
The comparison to perform. See the full operator table below.
The second value. Not required for Is Empty and Is Not Empty operators.
Toggle for string comparisons. Off by default — "hello" matches "Hello". Turn on when exact casing matters.
Operators
These work with all detected types — numbers, dates, booleans, and strings.
| Operator | What it checks |
|---|---|
| Equals | Left is exactly equal to Right |
| Not Equals | Left differs from Right |
Automatic type detection
Compare inspects both values and picks the best type in this order:
| Priority | Detected as | Example values | Notes |
|---|---|---|---|
| 1 | Boolean | true, false | Only Equals / Not Equals are valid |
| 2 | Number | 42, 3.14, -100, 1e-5 | Parsed as decimal for precision |
| 3 | Date | 2026-03-26T14:30:00Z | ISO 8601 with timezone required |
| 4 | String | Everything else | Fallback — all operators available |
Type detection runs on the resolved values, not the raw expression text. If {{Steps.Score.Value}} resolves to "85", it will be detected as a number, not a string.
Output
The step returns a boolean: true if the comparison passes, false if it does not.
Use the output to drive conditional routing downstream:
{{Steps.Compare.Value}} → true / falseUse case: route by customer tier
An e-commerce agent receives an order and needs to apply different handling based on the customer's annual spend.
Agent flow:
Input → Fetch Customer (HTTP) → Compare → [Branch]
├─ true → VIP Handler (AI Model)
└─ false → Standard Handler (AI Model)Compare configuration:
| Field | Value |
|---|---|
| Left | {{Steps.Fetch_Customer.Output.Body.annualSpend}} |
| Operator | Greater Than or Equal |
| Right | 10000 |
| Case sensitive | — (not applicable for numbers) |
When the customer's annual spend is 10,000 or more, the Compare step returns true and the agent routes to the VIP handler. Otherwise, it routes to the standard handler.
Tips
Combine Compare with a conditional {{ if }} block in a downstream prompt to act on the result:
{{ if Steps.Compare.Value == 'True' }}
This customer qualifies for priority support.
{{ else }}
Follow standard support procedures.
{{ end }}String-only operators (Contains, Starts With, Ends With) will fail at runtime if the resolved values are detected as numbers or dates. If you need substring matching on a value that looks like a number (e.g., a product SKU like "12345"), ensure at least one value contains non-numeric characters so it falls through to string detection.