Editor de Expresiones CEL
AutoTalk usa expresiones CEL (Common Expression Language) en los agentes de IA y los workflows para hacer que el comportamiento sea dinámico — personalizando los mensajes del sistema con nombres de contactos, ejecutando pasos condicionalmente y calculando valores en tiempo de ejecución.
Esta página explica cómo escribir y probar expresiones CEL usando el editor integrado.
Dónde aparecen las expresiones
Las expresiones CEL aparecen dondequiera que veas la insignia CEL en la interfaz de configuración:
- Agente > pestaña Mensajes — contenido del mensaje del sistema (ej.: inyectar el nombre del contacto en un prompt)
- Agente > pestaña Acciones — el campo Condición en cada paso de pre-acción o post-acción
- Workflow > Pasos — condiciones de pasos y mapeos de salida
El editor de expresiones

Cuando abres un paso de acción para editarlo, el campo Condición muestra el editor de expresiones compacto. Tiene:
- Resaltado de sintaxis — las palabras clave, strings y operadores están coloreados
- Validación en tiempo real — aparece una insignia roja de error con el mensaje de error exacto cuando la expresión es inválida (la insignia verde Válido está en el entorno de trabajo expandido, no en el campo compacto)
- Botón Formatear — formatea automáticamente la expresión (atajo de teclado:
Ctrl+Shift+F) - Botón Expandir — abre el entorno de trabajo completo (ver abajo)
CEL simple vs CEL crudo

Los campos de mensaje del sistema (y otros campos de texto) ofrecen dos modos de creación, alternados por el botón CEL en el encabezado del campo:
| Modo | Ejemplo | Cuándo usar |
|---|---|---|
| CEL Simple (SCEL) | Hello {{contact.name}}! | Sintaxis más simple para texto con sustituciones de variables |
| CEL Crudo | "Hello " + contact.name + "!" | Sintaxis CEL completa cuando necesitas lógica, condicionales o llamadas a funciones |
Ambos modos producen el mismo resultado. La sintaxis {{variable}} se convierte automáticamente a CEL crudo cuando guardas.
Opciones avanzadas de campo
Expande el cajón Avanzado debajo de cualquier campo de expresión para configurar:
| Opción | Qué hace |
|---|---|
| En caso de error | Qué sucede si la expresión genera un error en tiempo de ejecución: lanzar el error (throw, el predeterminado), retornar null, recurrir a una string de reserva, o mantener la expresión original |
| Tipo de resultado | Tipo de salida esperado (any — el predeterminado — string, number, boolean, date, array u object) |
| Valor de reserva | Una string literal usada como resultado cuando En caso de error está configurado como Recurrir a una string |
El entorno de trabajo completo
Haz clic en Expandir en cualquier editor de expresión para abrir el entorno de trabajo completo en una vista dedicada. Su barra de herramientas tiene los botones de alternancia Explorer y Prueba, que abren un panel flotante sobre el editor.
Explorer

El panel Explorer muestra todo lo disponible en el contexto actual:
- Árbol de variables — todas las variables que puedes referenciar en esta expresión, expandibles para ver los campos anidados. Haz clic en cualquier variable o campo para insertarlo en la posición del cursor.
- Lista de funciones — todas las funciones integradas con su firma y descripción. Haz clic para insertar.
- Caja de búsqueda — filtra tanto las variables como las funciones mientras escribes.
Las variables que se muestran dependen de dónde se encuentre la expresión:
| Ubicación | Variables disponibles |
|---|---|
| Pre-acciones / post-acciones del agente | contact, contactMessage, conversation, company, step(0), step(1), ... |
| Mensajes del sistema del agente | company, contact, contactMessage, conversation, y cualquier resultado de herramientas en context.tools.* |
| Pasos del Workflow | _workflow, occurrenceDate, entradas del disparador, step(0), ... |
Nota: el contacto se expone como la variable
contact— escribecontact.nameen las expresiones. (Las versiones más antiguas lo etiquetaban comoclienten el árbol del Explorer; la clave en tiempo de ejecución siempre ha sidocontact.)
Prueba

El panel Prueba te permite evaluar la expresión con valores de variables personalizados sin afectar una conversación real:
- Edita el JSON de la izquierda para definir valores de prueba para las variables (ej.: establece
contact.namecomo"Alice") - Haz clic en Ejecutar (o presiona
Ctrl+Enter) - El resultado aparece a la derecha — ya sea el valor calculado o un mensaje de error formateado
Referencia de variables
Para una lista completa de todas las funciones disponibles, consulta la Referencia de Funciones CEL.
Estas variables están disponibles dentro de las expresiones de los agentes:
| Variable | Descripción |
|---|---|
contact | El contacto que envió el mensaje — contact.name, contact.contactIdentification, contact.tags, contact.customAttributes, etc. |
contactMessage | El mensaje entrante — contactMessage.body.text, contactMessage.type, etc. |
conversation | La sesión de la conversación — conversation.contactId, conversation.lastMessageAt, conversation.isGroup, etc. |
company | El perfil de tu empresa — company.companyName, company.options, etc. |
step(N) | Salida de un paso anterior en el índice N — ej.: step(0).jwt, step(2).data[0], o get(step(1), 'executionContext.status') |
No existe una variable
employeede nivel superior en los contextos de los agentes. Obtén los datos de empleado/profesional mediante un paso de datos y léelos desdestep(N).data[0].
Verificaciones comunes de resultado de pasos
Usa las funciones auxiliares de paso para hacer verificaciones concisas del estado de los pasos:
step_ok(0) // true si el paso 0 se completó exitosamente
step_data(0, "title") // obtener data.title del paso 0
step_data(1, "choices.0.message.content", "") // respuesta del LLM con fallback
step_error(2) // {code, user_message, retryable} o null
O usa step(N).executionContext directamente para verificaciones de más bajo nivel:
get(step(0), 'executionContext.status') == 'completed'
get(step(1), 'executionContext.safeError.code') == 'unsupported_media_format'
get(step(2), 'executionContext.safeResult.reason') == 'condition_false'
safeError está pensado para depuración y ramificación seguras. No expone stack traces crudos, secretos ni payloads de proveedores.
Consulta la Referencia de Funciones CEL para conocer la lista completa de funciones.
Depurar errores de expresión
Cuando una expresión CEL falla durante una conversación real, aparece una burbuja de error en el chat — visible solo para tu equipo, no para el contacto.
Leer la burbuja de error

La burbuja colapsada muestra el tipo de error y un mensaje de una línea. Haz clic en ▼ Expandir para ver el panel de detalles completo.
Vista expandida

El panel expandido tiene cuatro secciones:
| Sección | Contenido |
|---|---|
| Expresión CEL | La expresión exacta que falló — cópiala para pegarla en el entorno de trabajo y probarla |
| Metadatos | Dónde ocurrió el error: qué sección de la configuración del agente, qué índice de mensaje o acción |
| Variables CEL | (Solo con nivel de registro Debug) La lista completa de variables y sus valores en el momento del error |
| Payload Completo | Los datos crudos del error en JSON |
Sección de Variables CEL

La sección de Variables CEL es la más útil para diagnosticar problemas:
- Usa la caja de filtro para buscar la variable que tu expresión referencia
- Expande cualquier variable para inspeccionar su valor y estructura reales
- Las variables etiquetadas como truncadas son objetos grandes que fueron abreviados
Nota: Variables CEL solo aparece cuando el Nivel de registro del agente está configurado como Debug. Ve a la pestaña Opciones del agente para aumentar el nivel de registro y luego vuelve a bajarlo después de corregir el problema.
Depuración paso a paso
- Expande la burbuja de error con ▼.
- En Expresión CEL, copia la expresión que falló.
- En Metadatos, anota la
seccióny elíndicepara encontrar el campo correcto en el editor del agente. - En Variables CEL (requiere nivel de registro Debug), busca la variable que usa la expresión y verifica su valor real.
- Abre el editor del agente, ve a la pestaña relevante y haz clic en Expandir en el campo problemático.
- Pega la expresión en la pestaña Prueba, ingresa valores de variables realistas y ejecútala para reproducir el error.
- Corrige la expresión y guarda. La burbuja de error dejará de aparecer una vez que la expresión sea exitosa.