Saltar al contenido principal
Actualizado el Aug 4, 2026

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

El editor de expresiones CEL mostrando un campo de Condición con una expresión 'true', una insignia de modo CEL y un botón Expandir

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

Un campo de mensaje del sistema abierto para editarlo, mostrando una expresión CEL multilínea con el alternador CEL/template en el encabezado

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:

ModoEjemploCuá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ónQué hace
En caso de errorQué 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 resultadoTipo de salida esperado (any — el predeterminado — string, number, boolean, date, array u object)
Valor de reservaUna 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 entorno de trabajo CEL con el panel Explorer abierto, mostrando un árbol de variables buscable y una lista de funciones

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ónVariables disponibles
Pre-acciones / post-acciones del agentecontact, contactMessage, conversation, company, step(0), step(1), ...
Mensajes del sistema del agentecompany, 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 — escribe contact.name en las expresiones. (Las versiones más antiguas lo etiquetaban como client en el árbol del Explorer; la clave en tiempo de ejecución siempre ha sido contact.)

Prueba

El entorno de trabajo CEL con el panel Prueba abierto, mostrando un editor de variables JSON y un área de resultado vacía

El panel Prueba te permite evaluar la expresión con valores de variables personalizados sin afectar una conversación real:

  1. Edita el JSON de la izquierda para definir valores de prueba para las variables (ej.: establece contact.name como "Alice")
  2. Haz clic en Ejecutar (o presiona Ctrl+Enter)
  3. 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:

VariableDescripción
contactEl contacto que envió el mensaje — contact.name, contact.contactIdentification, contact.tags, contact.customAttributes, etc.
contactMessageEl mensaje entrante — contactMessage.body.text, contactMessage.type, etc.
conversationLa sesión de la conversación — conversation.contactId, conversation.lastMessageAt, conversation.isGroup, etc.
companyEl 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 employee de nivel superior en los contextos de los agentes. Obtén los datos de empleado/profesional mediante un paso de datos y léelos desde step(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 de error en su estado colapsado, mostrando 'Error del asistente', una insignia CelEvaluationError y el mensaje 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

La burbuja de error expandida mostrando cuatro secciones en acordeón: Expresión CEL, Metadatos, Variables CEL y Payload Completo

El panel expandido tiene cuatro secciones:

SecciónContenido
Expresión CELLa expresión exacta que falló — cópiala para pegarla en el entorno de trabajo y probarla
MetadatosDó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 CompletoLos datos crudos del error en JSON

Sección de Variables CEL

El acordeón de Variables CEL expandido, mostrando un campo de filtro y una lista de variables con sus tipos

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

  1. Expande la burbuja de error con .
  2. En Expresión CEL, copia la expresión que falló.
  3. En Metadatos, anota la sección y el índice para encontrar el campo correcto en el editor del agente.
  4. En Variables CEL (requiere nivel de registro Debug), busca la variable que usa la expresión y verifica su valor real.
  5. Abre el editor del agente, ve a la pestaña relevante y haz clic en Expandir en el campo problemático.
  6. Pega la expresión en la pestaña Prueba, ingresa valores de variables realistas y ejecútala para reproducir el error.
  7. Corrige la expresión y guarda. La burbuja de error dejará de aparecer una vez que la expresión sea exitosa.