Make incluye una biblioteca extensa de funciones para transformar datos sin código. Estas funciones se aplican directamente en los campos de mapeo, permitiendo modificar información al vuelo.
Funciones Generales Esenciales
1. get (objeto o array; ruta)
Extrae valores específicos de objetos o arrays anidados utilizando notación de punto.
Sintaxis: get(objeto; ruta.al.valor)
Ejemplo 1 - Extraer email del primer usuario:
get(usuarios; 1.email)
Si usuarios contiene [{nombre: "Ana", email: "ana@empresa.com"}, {nombre: "Luis", email: "luis@empresa.com"}], la función devuelve ana@empresa.com.Ejemplo 2 - Obtener código postal de dirección anidada:
get(cliente; direccion.ciudad.codigoPostal)
Navega por la estructura cliente → direccion → ciudad → codigoPostal y retorna el valor.
Caso de uso empresarial: Al integrar con APIs que devuelven JSON complejos, usa get() para extraer únicamente los datos relevantes sin procesar toda la estructura.
2. if (expresión; valor1; valor2)
Evalúa una condición y devuelve un valor u otro según el resultado.
Sintaxis: if(condición; si_verdadero; si_falso)
Ejemplo 1 - Aprobar/Rechazar transacción:
if(saldo >= totalCompra; "Aprobado"; "Rechazado")
Ejemplo 2 - Determinar prioridad de ticket:
if(tiempoEspera > 24; "URGENTE"; "Normal")
Caso de uso empresarial: En flujos de facturación, determina automáticamente si una factura requiere revisión manual o puede procesarse automáticamente según el monto.
3. switch (expresión; valor1; resultado1; valor2; resultado2; else)
Evalúa múltiples condiciones secuencialmente, similar a una estructura switch-case.
Ejemplo 1 - Asignar nivel de acceso:
switch(rolUsuario; "Admin"; "Acceso Completo"; "Editor"; "Acceso Parcial"; "Usuario"; "Acceso Básico"; "Sin acceso")
Ejemplo 2 - Traducir códigos de idioma:
switch(codigoIdioma; "es"; "Español"; "en"; "Inglés"; "fr"; "Francés"; "pt"; "Portugués"; "Idioma no soportado")
4. omit (colección; clave1; clave2)
Elimina propiedades específicas de un objeto, útil para limpiar datos antes de enviarlos a APIs.
Ejemplo 1 - Eliminar campos sensibles:
omit(datosUsuario; "password"; "tarjetaCredito")
Ejemplo 2 - Preparar datos para API externa:
omit(producto; "idInterno"; "fechaCreacion"; "usuarioCreador")
Caso de uso empresarial: Al sincronizar con sistemas externos, elimina campos internos que no deben compartirse por seguridad o relevancia.
5. pick (colección; clave1; clave2)
Operación inversa a omit(): selecciona únicamente las propiedades especificadas.
Ejemplo 1 - Extraer datos de contacto:
pick(cliente; "nombre"; "email"; "telefono")
Ejemplo 2 - Preparar resumen de transacción:
pick(pedido; "id"; "total"; "fecha"; "estado")
Funciones de Array para Manipulación de Conjuntos
6. add (array; valor1; valor2)
Añade elementos a un array existente.
Ejemplo:
add(productosCarrito; "Producto A"; "Producto B")
Caso de uso: En carritos de compra, agrega productos dinámicamente según las selecciones del usuario.
7. contains (array; valor)
Verifica si un array contiene un elemento específico, devuelve true o false.
Ejemplo 1 - Verificar permisos:
contains(permisosUsuario; "admin")
Ejemplo 2 - Validar suscripción:
contains(planesActivos; "Premium")
Aplicación práctica: En lógica condicional con routers, verifica si un usuario tiene permisos específicos antes de ejecutar acciones sensibles.
8. map (array complejo; clave)
Extrae un campo específico de cada objeto en un array, generando un array simplificado.
Ejemplo 1 - Extraer emails de contactos:
map(contactos; email)
Input: [{nombre: "Ana", email: "ana@mail.com"}, {nombre: "Luis", email: "luis@mail.com"}]
Output: ["ana@mail.com", "luis@mail.com"]Ejemplo 2 - Filtrar por etiqueta:
map(contactos; email; etiqueta; "cliente"; "prospecto")
Extrae emails únicamente de contactos con etiqueta "cliente" o "prospecto".
Caso de uso avanzado: Al enviar emails masivos, usa map() para extraer todas las direcciones de email de un CRM y pasarlas al módulo de envío.
9. merge (array1; array2)
Combina dos o más arrays en uno solo.
Ejemplo:
merge(productosNuevos; productosPromocionales)
10. sort (array; orden; clave)
Ordena elementos de un array. Valores de orden: asc, desc, asc ci (insensible a mayúsculas), desc ci.
Ejemplo 1 - Ordenar por nombre:
sort(contactos; asc; nombre)
Ejemplo 2 - Ordenar facturas por monto:
sort(facturas; desc; total)
Funciones de Fecha y Hora para Cálculos Temporales
11. formatDate (fecha; formato; zona_horaria)
Convierte fechas a formatos legibles personalizados.
Ejemplo 1 - Formato español:
formatDate(fechaPedido; "DD/MM/YYYY")
Output: 19/03/2025Ejemplo 2 - Formato con hora:
formatDate(fechaEvento; "DD/MM/YYYY HH:mm"; "Europe/Madrid")
Output: 19/03/2025 15:30Tokens de formato más usados:
DD: Día con cero inicial (01-31)
MM: Mes con cero inicial (01-12)
YYYY: Año completo (2025)
HH: Hora 24h (00-23)
mm: Minutos (00-59)
12. addDays (fecha; número)
Suma o resta días a una fecha.
Ejemplo - Calcular fecha de vencimiento:
addDays(fechaCompra; 30)
Caso de uso: En automatizaciones de facturación, calcula automáticamente fechas de pago añadiendo 30 días a la fecha de emisión.
13. addHours / addMinutes / addMonths
Funcionan igual que addDays() pero con horas, minutos o meses.
Ejemplo - Programar recordatorio:
addHours(fechaReunion; -1)
Calcula una hora antes de la reunión para enviar recordatorio.
Funciones Matemáticas para Análisis de Datos
14. sum (array de valores)
Calcula la suma total de elementos numéricos.
Ejemplo - Total de ventas:
sum(ventasDiarias)
15. average (array de valores)
Calcula el promedio aritmético.
Ejemplo - Calificación promedio:
average(puntuacionesClientes)
Caso de uso: En dashboards automatizados, calcula métricas promedio para reportes mensuales.
16. max / min (array de valores)
Identifican el valor máximo o mínimo en un conjunto.
Ejemplo - Detectar venta más alta:
max(ventasSemanales)
Funciones de Texto para Transformación de Strings
17. lower / upper / capitalize
Convierten texto a minúsculas, mayúsculas o capitalizan la primera letra.
Ejemplo - Normalizar emails:
lower(emailUsuario)
Convierte "USUARIO@MAIL.COM" en "usuario@mail.com".
18. trim (texto)
Elimina espacios al inicio y final de una cadena.
Ejemplo:
trim(" Juan Pérez ")
Output: "Juan Pérez"
Aplicación: Al recibir datos de formularios, usa trim() para limpiar inputs antes de procesarlos.
19. replace (texto; búsqueda; reemplazo)
Sustituye una cadena por otra.
Ejemplo - Formatear números telefónicos:
replace(telefono; "-"; "")
Convierte "555-1234-5678" en "55512345678".
20. split (texto; separador)
Divide una cadena en un array según un separador.
Ejemplo - Separar etiquetas:
split("marketing,ventas,soporte"; ",")
Output: ["marketing", "ventas", "soporte"]