Editor de Expresiones CEL
AutoTalk usa expresiones CEL (Common Expression Language) en agentes de IA y workflows para hacer el comportamiento dinamico — personalizando mensajes del sistema con nombres de clientes, ejecutando pasos condicionalmente, calculando valores en tiempo de ejecucion y mas.
Esta pagina explica como escribir y probar expresiones CEL usando el editor integrado.
Donde aparecen las expresiones
Las expresiones CEL aparecen dondequiera que veas el emblema CEL en la interfaz de configuracion:
- Agente > Pestana Mensajes — contenido del mensaje del sistema (ej.: inyectar el nombre del cliente en un prompt)
- Agente > Pestana Acciones — el campo Condicion en cada paso de pre-accion o post-accion
- Workflow > Pasos — condiciones de pasos y mapeos de salida
El editor de expresiones

Cuando abres un paso de accion para edicion, el campo Condicion muestra el editor de expresiones compacto. Tiene:
- Resaltado de sintaxis — palabras clave, strings y operadores estan coloreados
- Validacion en tiempo real — un emblema verde Valido aparece cuando la expresion es correcta; un emblema rojo de error aparece con el mensaje de error exacto cuando no lo es
- Boton Formatear — formatea automaticamente la expresion (atajo de teclado:
Ctrl+Shift+F) - Boton 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 creacion, alternados por el boton CEL en el encabezado del campo:
| Modo | Ejemplo | Cuando usar |
|---|---|---|
| CEL Simple (SCEL) | Hello {{client.name}}! | Sintaxis mas simple para texto con sustituciones de variables |
| CEL Crudo | "Hello " + client.name + "!" | Sintaxis CEL completa cuando necesitas logica, condicionales o llamadas a funciones |
Ambos modos producen el mismo resultado. La sintaxis {{variable}} se convierte automaticamente a CEL crudo cuando guardas.
Opciones avanzadas de campo
Expande el cajon Avanzado debajo de cualquier campo de expresion para configurar:
| Opcion | Que hace |
|---|---|
| En caso de fallo | Que sucede si la expresion genera un error en tiempo de ejecucion: detener la accion (throw), retornar vacio (""), o retornar null |
| Tipo de resultado | Tipo de salida esperado (string, boolean, number, object, array) |
| Fallback | Una segunda expresion para evaluar si la primaria falla |
El entorno de trabajo completo
Haz clic en Expandir en cualquier editor de expresion para abrir el entorno de trabajo completo en una vista dedicada.
Pestana Explorador

La pestana Explorador muestra todo lo disponible en el contexto actual:
- Arbol de variables — todas las variables que puedes referenciar en esta expresion, expandibles para ver campos anidados. Haz clic en cualquier variable o campo para insertarlo en el cursor.
- Lista de funciones — todas las funciones integradas con su firma y descripcion. Haz clic para insertar.
- Caja de busqueda — filtra tanto variables como funciones mientras escribes.
Las variables mostradas dependen de donde se encuentra la expresion:
| Ubicacion | Variables disponibles |
|---|---|
| Pre-acciones / post-acciones del agente | client, contactMessage, conversation, company, step(0), step(1), ... |
| Mensajes del sistema del agente | client, company, employee, y variables de sesion definidas por pre-acciones anteriores |
| Pasos del Workflow | _workflow, occurrenceDate, entradas del disparador, step(0), ... |
Pestana Prueba

La pestana Prueba te permite evaluar la expresion con valores de variables personalizados sin afectar una conversacion real:
- Edita el JSON a la izquierda para definir valores de prueba para variables (ej.: establece
client.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 estan disponibles dentro de expresiones de agentes:
| Variable | Descripcion |
|---|---|
client | El contacto que envio el mensaje — client.name, client.phoneNumber, client.email, client.tags, etc. |
contactMessage | El mensaje entrante — contactMessage.body.text, contactMessage.type, etc. |
conversation | La sesion de la conversacion — conversation.status, conversation.metadata, etc. |
company | El perfil de tu empresa — company.name, company.options, etc. |
employee | El profesional/profesional asignado (disponible en mensajes del sistema) |
step(N) | Salida de un paso anterior en el indice N — ej.: step(0).jwt, step(2).data[0], o get(step(1), 'executionContext.status') |
Verificaciones comunes de resultado de pasos
Usa las funciones auxiliares de paso para verificaciones concisas de estado de pasos:
step_ok(0) // true si el paso 0 completo 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 nivel mas bajo:
get(step(0), 'executionContext.status') == 'completed'
get(step(1), 'executionContext.safeError.code') == 'unsupported_media_format'
get(step(2), 'executionContext.safeResult.reason') == 'condition_false'
safeError esta destinado para depuracion y ramificacion seguras. No expone stack traces crudos, secretos o payloads de proveedores.
Consulta la Referencia de Funciones CEL para la lista completa de funciones.
Depurar errores de expresion
Cuando una expresion CEL falla durante una conversacion real, una burbuja de error aparece en el chat — visible solo para tu equipo, no para el cliente.
Leer la burbuja de error

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

El panel expandido tiene cuatro secciones:
| Seccion | Contenido |
|---|---|
| Expresion CEL | La expresion exacta que fallo — copiala para pegarla en el entorno de trabajo para pruebas |
| Metadatos | Donde ocurrio el error: que seccion de la configuracion del agente, que indice de mensaje o accion |
| Variables CEL | (Solo nivel de log Debug) La lista completa de variables y sus valores en el momento del error |
| Payload Completo | Los datos crudos del error en JSON |
Seccion de Variables CEL

La seccion de Variables CEL es la mas util para diagnosticar problemas:
- Usa la caja de filtro para buscar la variable que tu expresion referencia
- Expande cualquier variable para inspeccionar su valor y estructura reales
- Variables etiquetadas como truncadas son objetos grandes que fueron abreviados
Nota: Variables CEL solo aparecen cuando el Nivel de Log del agente esta configurado como Debug. Ve a la pestana Avanzado del agente para aumentar el nivel de log, luego reducelo nuevamente despues de corregir el problema.
Depuracion paso a paso
- Expande la burbuja de error con Expandir.
- En Expresion CEL, copia la expresion que fallo.
- En Metadatos, anota la
secciony elindicepara encontrar el campo correcto en el editor del agente. - En Variables CEL (requiere nivel de log Debug), busca la variable que la expresion usa y verifica su valor real.
- Abre el editor del agente, ve a la pestana relevante y haz clic en Expandir en el campo problematico.
- Pega la expresion en la pestana Prueba, ingresa valores de variables realistas y ejecuta para reproducir el error.
- Corrige la expresion y guarda. La burbuja de error dejara de aparecer una vez que la expresion sea exitosa.