Variables y Placeholders

Como usar datos dinamicos en automatizaciones y mensajes

variablesplaceholdersdinamicodatoscontextoexpresiones

Variables y Placeholders

Las variables permiten insertar datos dinamicos en tus automatizaciones y mensajes.

Sintaxis Basica

Placeholders

Los placeholders usan doble llave:

SintaxisDescripcion
{{variable}}Valor simple
{{objeto.propiedad}}Propiedad de objeto
{{array[0]}}Elemento de array
{{objeto.sub.prop}}Propiedad anidada

Ejemplos:

"Hola {{postulant.name}}" se convierte en "Hola Juan Perez"

"Tu score es {{matchScore}}%" se convierte en "Tu score es 85%"

Acceso a Propiedades

Punto (.) para acceder a propiedades:

  • {{postulant.name}} - Nombre del candidato
  • {{postulant.contact.email}} - Email anidado
  • {{job.requirements[0]}} - Primer requisito

Corchetes para arrays:

  • {{skills[0]}} - Primera skill
  • {{interviews[1].date}} - Fecha de segunda entrevista

Variables Disponibles

Datos del Candidato (postulant)

VariableDescripcion
{{postulant.id}}ID del candidato
{{postulant.name}}Nombre completo
{{postulant.firstName}}Solo nombre
{{postulant.lastName}}Solo apellido
{{postulant.email}}Email
{{postulant.phone}}Telefono
{{postulant.location}}Ubicacion
{{postulant.cvUrl}}URL del CV
{{postulant.profileUrl}}URL del perfil
{{postulant.createdAt}}Fecha de registro
{{postulant.tags}}Array de tags
{{postulant.customFields.*}}Campos personalizados

Datos de la Vacante (job)

VariableDescripcion
{{job.id}}ID de la vacante
{{job.title}}Titulo
{{job.department}}Departamento
{{job.location}}Ubicacion
{{job.type}}Tipo (full-time, etc.)
{{job.salary.min}}Salario minimo
{{job.salary.max}}Salario maximo
{{job.requirements}}Array de requisitos
{{job.benefits}}Array de beneficios
{{job.hiringManager}}ID del hiring manager
{{job.description}}Descripcion completa
{{job.slug}}URL slug

Datos de la Aplicacion (application)

VariableDescripcion
{{application.id}}ID de aplicacion
{{application.status}}Estado actual
{{application.source}}Origen (linkedin, etc.)
{{application.createdAt}}Fecha de aplicacion
{{application.rating}}Puntuacion (1-5)
{{application.notes}}Notas
{{application.customFields.*}}Campos personalizados

Datos del Proceso (process)

VariableDescripcion
{{process.id}}ID del proceso
{{process.name}}Nombre
{{task.id}}ID de la tarea
{{task.currentStep}}Etapa actual (objeto)
{{task.currentStep.name}}Nombre de etapa
{{task.notes}}Notas de la tarea
{{task.assignedTo}}Usuario asignado
{{task.createdAt}}Fecha de creacion

Datos de la Empresa (company)

VariableDescripcion
{{company.id}}ID de la empresa
{{company.name}}Nombre
{{company.logo}}URL del logo
{{company.website}}Sitio web
{{company.industry}}Industria
{{company.size}}Tamaño
{{company.description}}Descripcion

Datos de Eventos (event)

VariableDescripcion
{{event.id}}ID del evento
{{event.title}}Titulo
{{event.date}}Fecha
{{event.time}}Hora
{{event.location}}Ubicacion
{{event.meetingUrl}}Link de reunion
{{event.duration}}Duracion (minutos)
{{event.attendees}}Array de asistentes

Datos del Trigger

VariableDescripcion
{{trigger.type}}Tipo de trigger
{{trigger.timestamp}}Fecha/hora del evento
{{trigger.data.*}}Datos del evento
{{trigger.previousStep}}Etapa anterior (si aplica)
{{trigger.newStep}}Nueva etapa (si aplica)

Datos de Ejecucion

VariableDescripcion
{{execution.id}}ID de ejecucion
{{execution.startedAt}}Inicio
{{execution.status}}Estado
{{previousAction.result}}Resultado de accion anterior
{{context.*}}Contexto acumulado

Datos de Tiempo

VariableDescripcion
{{now}}Fecha/hora actual
{{today}}Fecha de hoy
{{tomorrow}}Fecha de mañana
{{now + 7 days}}En 7 dias
{{now - 1 hour}}Hace 1 hora

Filtros y Formateo

Filtros de Texto

FiltroResultado
{{name | uppercase}}"JUAN PEREZ"
{{name | lowercase}}"juan perez"
{{name | capitalize}}"Juan Perez"
{{name | trim}}Sin espacios extras
{{text | truncate:50}}Cortar a 50 caracteres
{{text | default:"N/A"}}Valor si es nulo

Filtros de Numeros

FiltroResultado
{{salary | currency}}"$45,000.00"
{{salary | currency:"MXN"}}"MXN $45,000.00"
{{score | percent}}"85%"
{{count | number}}"1,234"
{{price | round:2}}"123.46"

Filtros de Fechas

FiltroResultado
{{date | format:"DD/MM/YYYY"}}"15/01/2024"
{{date | format:"MMMM D, YYYY"}}"Enero 15, 2024"
{{date | format:"HH:mm"}}"14:30"
{{date | relative}}"hace 2 dias"
{{date | fromNow}}"en 3 dias"
{{date | dayOfWeek}}"Lunes"

Filtros de Arrays

FiltroResultado
{{items | length}}Numero de elementos
{{items | first}}Primer elemento
{{items | last}}Ultimo elemento
{{items | join:", "}}"a, b, c"
{{items | slice:0:3}}Primeros 3 elementos
{{items | sort}}Ordenado
{{items | reverse}}Invertido

Filtros Condicionales

default: Usa valor alternativo si es nulo

{{value | default:"Sin valor"}}

ifEmpty: Usa texto si esta vacio

{{value | ifEmpty:"No especificado"}}

ternary: Valor condicional

{{condition | ternary:"Si":"No"}} - "Si" si es true, "No" si es false

Expresiones

Operadores

Aritmeticos:

  • {{a + b}} - Suma
  • {{a - b}} - Resta
  • {{a * b}} - Multiplicacion
  • {{a / b}} - Division
  • {{a % b}} - Modulo

Comparacion:

  • {{a == b}} - Igualdad
  • {{a != b}} - Diferente
  • {{a > b}} - Mayor que
  • {{a >= b}} - Mayor o igual
  • {{a < b}} - Menor que
  • {{a <= b}} - Menor o igual

Logicos:

  • {{a AND b}} - Y logico
  • {{a OR b}} - O logico
  • {{NOT a}} - Negacion

Ejemplos de Expresiones

Calculo de salario:

{{salary * 12}} = Salario anual

Porcentaje:

{{(completed / total) * 100}}% = "75%"

Condicion:

{{score >= 80 ? "Aprobado" : "No aprobado"}} = "Aprobado"

Concatenacion:

{{firstName + " " + lastName}} = "Juan Perez"

Contexto de Variables

En Triggers

Cuando se dispara un trigger, las variables disponibles dependen del tipo de evento:

APPLICATION_CREATED:

  • {{postulant.*}}
  • {{job.*}}
  • {{application.*}}
  • {{trigger.data.*}}

TASK_MOVED:

  • {{postulant.*}}
  • {{process.*}}
  • {{task.*}}
  • {{trigger.previousStep}}
  • {{trigger.newStep}}

MESSAGE_RECEIVED:

  • {{postulant.*}}
  • {{message.content}}
  • {{message.channel}}
  • {{thread.*}}

En Acciones

Las acciones pueden usar:

  • Variables del trigger
  • Variables de acciones anteriores
  • Variables del contexto
  • Variables estaticas

Ejemplo de flujo:

  1. Trigger APPLICATION_CREATED

    • {{application.id}} disponible
  2. Accion ANALYZE_CV

    • Resultado: {{previousAction.result.skills}}
  3. Accion SEND_EMAIL

    • Puede usar ambos: {{application.id}} y {{skills}}

Guardar en Contexto

// Accion SET_VARIABLE guarda en contexto
{
  "actionType": "SET_VARIABLE",
  "configuration": {
    "name": "isQualified",
    "value": "{{matchScore >= 70}}"
  }
}

// Despues disponible como:
// {{isQualified}} → true/false

Variables en Mensajes

Email

Asunto:

"Bienvenido a {{company.name}}, {{postulant.firstName}}!"

Cuerpo:

"Hola {{postulant.name}},

Gracias por aplicar a {{job.title}}.

Tu aplicacion fue recibida el {{application.createdAt | format:'DD/MM/YYYY'}}.

Te mantendremos informado sobre el proceso.

Saludos, {{company.name}}"

WhatsApp

"¡Hola {{postulant.firstName}}!

Tu entrevista esta confirmada para:

  • {{event.date | format:'dddd D MMMM'}}
  • {{event.time}}
  • {{event.location | default:'Via Zoom'}}

{{#if event.meetingUrl}} Link: {{event.meetingUrl}} {{/if}}

¿Te funciona este horario?"

Notificacion

Titulo: "Nueva aplicacion: {{postulant.name}}"

Mensaje: "Aplico a {{job.title}} desde {{application.source}}"

Bloques Condicionales

If/Else en Templates

{{#if condition}}
  Contenido si verdadero
{{else}}
  Contenido si falso
{{/if}}

Ejemplo:

{{#if event.meetingUrl}}
  Link de reunion: {{event.meetingUrl}}
{{else}}
  La reunion sera presencial en: {{event.location}}
{{/if}}

Unless

{{#unless condition}}
  Contenido si falso
{{/unless}}

Ejemplo:

{{#unless hasCv}}
  Recuerda subir tu CV para continuar.
{{/unless}}

Each (Loops)

{{#each items}}
  - {{this.name}}: {{this.value}}
{{/each}}

Ejemplo:

Documentos pendientes:
{{#each pendingDocuments}}
  - {{this.name}} (vence: {{this.dueDate | format:'DD/MM'}})
{{/each}}

Depuracion

Ver Variables Disponibles

En modo debug, puedes ver todas las variables:

CategoriaVariables
postulantid: 123, name: "Juan Perez", email: "juan@email.com", ...
jobid: 456, title: "Desarrollador", ...
contextmatchScore: 85, isQualified: true

Probar Expresiones

En el editor, preview de expresiones:

InputOutput
{{postulant.name | uppercase}}"JUAN PEREZ"
{{salary | currency:"MXN"}}"MXN $45,000.00"
{{score >= 80 ? "✓" : "✗"}}"✓"

Buenas Practicas

Nombrado

DO:

  • Nombres descriptivos
  • camelCase para variables
  • Documentar variables custom
  • Usar defaults para opcionales

DON'T:

  • Variables con nombres genericos (x, temp)
  • Asumir que existen
  • Hardcodear valores
  • Expresiones muy complejas

Seguridad

Cuidado con:

  • Datos sensibles en logs
  • Inyeccion de codigo
  • Variables de usuarios externos
  • Exponer datos internos

Siempre:

  • Validar entrada
  • Usar filtros apropiados
  • Escapar HTML si necesario
  • Limitar acceso a datos

Proximos Pasos

¿No encontraste lo que buscabas?

Nuestro equipo de soporte está listo para ayudarte.

Contactar Soporte