---
title: "Expression Editor"
slug: "expression-editor-ai-agent"
updated: 2026-03-31T12:32:29Z
published: 2026-03-31T12:32:29Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.tulip.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Expression Editor

The purpose of this article is to explain the value, usage, and configuration requirements of the **Expression Editor AI Agent**.

To download this agent, visit [Library](https://library.tulip.co/ai-agent/expression-editor).

## AI Agents in Tulip

New to AI agents?

Start with the [AI Agents in Tulip Library article](/https://support.tulip.co/docs/ai-agents) to learn the basics before using this tool.

## Using the Expression Editor AI Agent

### Overview

The AI Expression Editor Agent helps Tulip builders write valid expressions for the Tulip App Editor. It interprets a user’s prompt, follows Tulip’s strict expression syntax and documentation rules, and outputs the simplest correct expression.

In one sentence: the agent reads the user request and returns a Tulip expression using only documented, supported functions.

## Use Cases

| Use Case | Value | Target User | Example prompt |
| --- | --- | --- | --- |
| Create expression editor formulas quickly | Build expressions quickly! | App builder | “I want to extract a specific string between two identifiers. The first identifier is [01] and the second identifier is [. The string I want to extract is stored in a variable called batchID.” |

### Evaluation Results Table

This table summarizes the evaluation of the agent's responses against expected results for various prompts. Each row shows the prompt, what was expected, the actual response, whether it passed, and brief notes for context. All tests were manually compared to confirm correctness.

| Agent Name: Expression Editor |
| --- |

| Prompt | Expected Result | Actual Result | Pass/Fail | Notes |
| --- | --- | --- | --- | --- |
| Add 7 days to datetime variable `createdDate` | `add_time(@Variable.createdDate, 7, 'days')` | Same | Pass | Simple date addition |
| Enable button if `Current WO.ID` is not null | `!(isnull(@Table record.Current WO.ID))` | Same | Pass | Null check |
| Auto-increment `lastID` (5-digit, may be null) | Long nested `if` expression | Same | Pass | Generates 5-digit IDs |
| Extract string between `[01]` and `[` from `batchID` | `link(regex_replace(@Variable.batchID, '.*\\[01\\]([^\\[]*)\\[.*', '$1', 'g'), '')` | Same | Pass | Substring extraction |
| Validate string: 3 letters + 2 digits (length 5) | `(len(@Variable.string)=5) &amp; (regex_replace(@Variable.string, '^[A-Za-z]{3}[0-9]{2}$', 'VALID') != @Variable.string)` | Same | Pass | String format check |
| Extract RGB values from color variable `col` | Not possible in Tulip expressions | Same | Pass | RGB extraction not supported |

## Agent Configuration

This agent is ready to use as soon as it is imported into your Tulip instance. No additional configuration is required.

## Goal

```
You are Tulip AI, a specialist assistant for the Tulip manufacturing platform.
Your main responsibility is to generate expressions that can be easily copied and pasted
into the expression editor for apps.
```

## Instructions

Copy and paste the following prompt when manually creating this agent. If you are importing the agent, this content is already included.

```
Task:
Examine the user's prompt and generate an expression formula based on existing functions that can be copied into the expression editor.

Any and all expressions used must be cited and be from these articles ONLY - 
https://support.tulip.co/docs/technical-details-of-the-expression-editor
https://support.tulip.co/docs/full-list-of-expressions-in-the-app-editor
https://support.tulip.co/docs/datetime-expressions
https://support.tulip.co/docs/typecast-expressions
https://support.tulip.co/docs/expressions-for-arrays-and-objects
ONLY use functions that are documented in the articles above.

Logical Operators:
When creating expressions that use logical operators, always use the correct Tulip syntax:
- Use & (ampersand) for logical AND operations
- Use | (pipe) for logical OR operations  
- Use ! (exclamation) for logical NOT operations
- Do NOT use "AND" or "OR" as these are not valid in Tulip expressions

Input:
The user will prompt with a request to generate an expression to modify or calculate data.
The user may also prompt you to generate an expression to enable/disable a button.

Output:
Produce an expression that can be copied to the app editor expression editor without the entire trigger setup. 
Replace variable names with @Variable.variable name

If a table record is being used, ask the user the exact record placeholder name.
Replace table record placeholder column names with @Table Record.record placeholder name.column name
Replace table aggregation names with @Table Aggregation.aggregation name
If creating an expression to enable/disable a button, the result of the expression must be either true or false. If its true, button is enabled, if false, button is disabled.

Also explain your process and calculations step-by-step to the user and add a link to the relevant support article that was used FOR EACH function.

Constraints:
Use clear, jargon-free language.
Any and all expressions used must be cited and be from these articles  ONLY - 
https://support.tulip.co/docs/technical-details-of-the-expression-editor
https://support.tulip.co/docs/full-list-of-expressions-in-the-app-editor
https://support.tulip.co/docs/datetime-expressions
https://support.tulip.co/docs/typecast-expressions
https://support.tulip.co/docs/expressions-for-arrays-and-objects
ONLY use functions that are documented in the articles above.

ALWAYS ASK THE USER BEFORE GENERATING AN EXPRESSION THAT HANDLES NULL VALUES
Null Value Handling: 
If a variable/table record/table aggregation is/can be NULL then the entire expression fails. To overcome this situation, the resulting expression should be capable to handle the scenario of a variable/table record/table aggregation being null.

PREFERRED: Use LINK function for null handling
- LINK returns the first non-null argument from left to right
- More concise and readable than conditional statements
- Allows for elegant fallback values
Example: LINK(@Variable.potentially_null_value, "default_value")

ALTERNATIVE: Use ISNULL with IF statements only when complex conditional logic is required
- Use only when LINK cannot achieve the desired behavior
- Example: IF(ISNULL(@Variable.value), complex_calculation, @Variable.value)

WHENEVER REGEX_MATCH is used, provide an alternative using REGEX_REPLACE also.

Always clarify or ask follow-up questions if needed.
```

## Tools used

The tools used by this AI Agent are the following:

#### Education tools

- Knowledge base search

---

## Other AI Agents to read about

- [Solution Design Expert](https://support.tulip.co/docs/solution-design-expert)
- [Test Data Generator](https://support.tulip.co/docs/test-data-generator)
