Saltar al contenido principal

Descripción general

Las variables te permiten personalizar las instrucciones de tu agente con datos dinámicos. itellicoAI usa plantillas Jinja2.

Cómo funcionan las variables

Variables de contacto integradas

Si un contacto existe en tu cuenta de itellicoAI, estos 5 campos están disponibles automáticamente:
{{ contact.first_name }}
{{ contact.last_name }}
{{ contact.full_name }}
{{ contact.email }}
{{ contact.phone }}
Ejemplo:
Hola {{ contact.first_name }}!
Tu correo es {{ contact.email }}.
✅ No se necesita configuración - funciona automáticamente si el contacto existe

Todo lo demás: API de contexto dinámico

Todos los demás datos deben provenir de tu punto de acceso API de contexto dinámico como variables de nivel superior. Puedes devolver cualquier campo que desees. Por ejemplo:
{{ language }}
{{ account_tier }}
{{ company_name }}
{{ order_id }}
{{ customer_since }}
{{ any_field_you_need }}
Ejemplo - Tu API devuelve:
{
  "language": "es",
  "account_tier": "premium",
  "company_name": "Acme Corp"
}
Entonces tu agente puede usar:
{% if language == "es" %}
¡Hola! Trabajas para {{ company_name }}.
{% endif %}

{% if account_tier == "premium" %}
Soporte prioritario disponible.
{% endif %}
⚙️ Requiere configuración - consulta API de contexto dinámico

Variables disponibles

Variables de contacto integradas

Estas variables están disponibles automáticamente desde tus contactos de itellicoAI:
{{ contact.first_name }}
{{ contact.last_name }}
{{ contact.full_name }}
{{ contact.email }}
{{ contact.phone }}
Ejemplo de uso:
Estás hablando con {{ contact.first_name }} {{ contact.last_name }}.
Su correo es {{ contact.email | default("no proporcionado") }}.
Su número de teléfono es {{ contact.phone }}.

Los campos personalizados NO están anidados bajo contact. — son variables de nivel superior como {{ language }} o {{ account_tier }}. Debes proporcionarlos a través de tu API de contexto dinámico.

Variables de contexto dinámico

Cualquier dato personalizado que proporciones a través de tu punto de acceso API de contexto dinámico se vuelve disponible como variables de nivel superior:
{{ account_tier }}
{{ language }}
{{ company_name }}
{{ preferred_contact_method }}
Ejemplo con variables personalizadas:
{% if account_tier == "premium" %}
Como cliente premium, tienes soporte prioritario.
{% endif %}

{% if language == "es" %}
Habla español.
{% endif %}

Empresa: {{ company_name | default("cliente valorado") }}

Configura un punto de acceso API de contexto dinámico para proporcionar variables personalizadas. Cualquier campo JSON que devuelvas se convierte en variables de nivel superior (ej., {"language": "es"}{{ language }}).

Fecha y hora

La fecha y hora actuales están disponibles automáticamente como current_datetime en saludos e instrucciones:
{{ current_datetime }}                      # Marca de tiempo actual
{{ current_datetime.hour }}                 # Hora actual (0-23)
{{ current_datetime | datetime("%H:%M") }}  # Formato con filtro datetime
{{ current_datetime | datetime("%A") }}     # Nombre del día (Lunes, Martes, etc.)
Ejemplo de uso:
{% if current_datetime.hour < 12 %}
Buenos días, {{ contact.first_name }}!
{% elif current_datetime.hour < 17 %}
Buenas tardes, {{ contact.first_name }}!
{% else %}
Buenas noches, {{ contact.first_name }}!
{% endif %}
Usa current_datetime para construir lógica avanzada basada en tiempo como enrutamiento de horario comercial, saludos por hora del día o restricciones de programación sin necesidad de fuentes de datos externas.
Usa el filtro datetime para formateo. El método .strftime() no está disponible por restricciones de seguridad.

Lógica condicional

Declaración If

{% if condition %}
  Esto se muestra si la condición es verdadera
{% endif %}

If-Else

{% if account_tier == "VIP" %}
  Proporcionar servicio VIP
{% else %}
  Proporcionar servicio estándar
{% endif %}

If-Elif-Else

{% if account_value > 10000 %}
  Cliente de nivel Empresarial
{% elif account_value > 1000 %}
  Cliente de nivel Profesional
{% else %}
  Cliente de nivel Estándar
{% endif %}

Ejemplo del mundo real

{% if language == "es" %}
Responde en español. Usa tratamiento formal (usted).
{% elif language == "fr" %}
Responde en francés. Usa tratamiento formal (vous).
{% elif language == "de" %}
Responde en alemán. Usa tratamiento formal (Sie).
{% else %}
Responde en inglés. Usa tono amigable y conversacional.
{% endif %}

Filtros

Los filtros transforman valores de variables.

Filtros comunes

default: Proporcionar valor de respaldo
{{ contact.first_name | default("") }}
upper: Convertir a mayúsculas
{{ contact.last_name | upper }}
lower: Convertir a minúsculas
{{ contact.email | lower }}
title: Mayúscula inicial
{{ contact.first_name | title }}
length: Obtener longitud
{% if contact.phone | length > 10 %}
  Número internacional detectado
{% endif %}
datetime: Formatear objetos datetime
{{ current_datetime | datetime("%H:%M") }}         # 14:30
{{ current_datetime | datetime("%d.%m.%Y") }}      # 24.01.2025
{{ current_datetime | datetime("%A, %B %d") }}     # Lunes, 24 de enero

Encadenamiento de filtros

{{ contact.first_name | default("Amigo") | title }}

Bucles

Iterar sobre listas (caso de uso avanzado):
{% for item in list_variable %}
  Procesar {{ item }}
{% endfor %}

Ejemplos prácticos

Ejemplo 1: Saludo personalizado

{% if contact.first_name %}
Hola {{ contact.first_name }}, ¡es genial escucharte!
{% else %}
¡Hola! ¡Gracias por llamar!
{% endif %}

{% if contact.email %}
Tengo tu información de contacto en archivo, así que puedo enviarte una confirmación después de nuestra llamada.
{% endif %}

Ejemplo 2: Lógica empresarial personalizada (Requiere API de contexto dinámico)

{% if contact.first_name %}
Hola {{ contact.first_name }}, ¡gracias por llamar a {{ company_name }}!
{% else %}
¡Hola! ¡Gracias por llamar a {{ company_name }}!
{% endif %}

{% if account_tier == "premium" %}
Como cliente premium, tienes soporte prioritario. ¿En qué puedo ayudarte hoy?
{% else %}
¿En qué puedo ayudarte hoy?
{% endif %}
Variables como company_name y account_tier deben ser proporcionadas por tu punto de acceso API de contexto dinámico.

Ejemplo 3: Instrucciones basadas en tiempo

Hora actual: {{ current_datetime | datetime("%H:%M") }}

{% if current_datetime.hour >= 17 or current_datetime.hour < 9 %}
Fuera del horario comercial normal. Si el cliente necesita asistencia inmediata:
"Nuestro horario de soporte regular es de 9 AM a 5 PM. Para problemas urgentes, puedo tomar tu información y alguien te llamará a primera hora de la mañana, o puedes llamar a nuestra línea de emergencia al [número]."
{% else %}
Dentro del horario comercial. Soporte completo disponible.
{% endif %}

Ejemplo 4: Soporte multilingüe (Requiere API de contexto dinámico)

Idioma preferido del cliente: {{ language | default("es") }}

{% if language == "es" %}
Idioma: Español
Saludo: "¡Hola!"
Tono: Formal (usa "usted")
Colección de conocimientos: "FAQ Español"
{% elif language == "de" %}
Idioma: Alemán
Saludo: "Guten Tag!"
Tono: Formal (usa "Sie")
Colección de conocimientos: "FAQ Deutsch"
{% else %}
Idioma: Inglés
Saludo: "Hello!"
Tono: Amigable y conversacional
Colección de conocimientos: "FAQ English"
{% endif %}

Ejemplo 5: Lógica de nivel de cuenta

Valor de cuenta: ${{ account_value | default(0) }}

{% if account_value >= 50000 %}
🌟 CLIENTE EMPRESARIAL
- Ofrecer servicio white-glove
- Acceso directo al gerente de cuenta
- Tiempos de respuesta prioritarios
- Soluciones personalizadas disponibles
{% elif account_value >= 10000 %}
💼 CLIENTE PROFESIONAL
- Nivel de soporte premium
- Equipo de soporte dedicado
- Cola prioritaria
{% else %}
👤 CLIENTE ESTÁNDAR
- Soporte estándar
- Base de conocimientos primero
- Transferir para problemas complejos
{% endif %}

Probar variables

Probar con diferentes datos

  1. Ve a Llamada de prueba
  2. Prueba escenarios con diferentes datos de contacto:
    • Con nombre vs sin nombre
    • Cliente VIP vs cliente estándar
    • Diferentes idiomas
    • Diferentes zonas horarias

Problemas comunes

ProblemaCausaSolución
La variable se muestra en blancoNo se proporcionó valor predeterminadoAgrega | default("respaldo")
Error de sintaxisError tipográfico en nombre de variableVerifica ortografía contra variables disponibles
La condición no funcionaOperador de comparación incorrectoUsa == no =
El filtro no se aplicaEl filtro no existeVerifica ortografía del nombre del filtro

Mejores prácticas

Nunca asumas que una variable tiene un valor. Siempre proporciona valores predeterminados.Malo:
Hola {{ contact.first_name }}!
Bueno:
Hola {{ contact.first_name | default("") }}!
Las condiciones anidadas complejas son difíciles de depurar. Mantenlo simple.Demasiado complejo:
{% if account_tier == "VIP" and account_value > 10000 and region == "US" %}
Más simple:
{% if account_tier == "VIP" %}
Prueba con:
  • Datos faltantes (todos los campos vacíos)
  • Valores inesperados
  • Cadenas muy largas
  • Caracteres especiales

Próximos pasos