*Workflows › Referencia › Funciones*

# Funciones

> Las funciones del lenguaje de expresiones, por categoría.

## Aritmética

| Nombre | Firma |
| --- | --- |
| Valor absoluto | `abs(anyNumberExpression)` |
| Sumar | `add(...anyNumberExpression)` |
| Redondeo arriba | `ceil(anyNumberExpression)` |
| Dividir | `divide(anyNumberExpression, anyNumberExpression)` |
| Redondeo abajo | `floor(anyNumberExpression)` |
| Módulo | `mod(anyNumberExpression, anyNumberExpression)` |
| Multiplicar | `multiply(...anyNumberExpression)` |
| Potencia | `pow(anyNumberExpression, anyNumberExpression)` |
| Redondear | `round(anyNumberExpression, anyNumberExpression)` |
| Restar | `subtract(anyNumberExpression, anyNumberExpression)` |
| Truncar | `trunc(anyNumberExpression, anyNumberExpression)` |

## Booleanas

| Nombre | Firma |
| --- | --- |
| Y | `and(...anyBooleanExpression)` |
| No | `not(anyBooleanExpression)` |
| O | `or(...anyBooleanExpression)` |

## Comparación

| Nombre | Firma |
| --- | --- |
| Igual | `eq(anyExpression, anyExpression)` |
| Mayor que | `gt(anyNumberExpression, anyNumberExpression)` |
| Mayor o igual | `gte(anyNumberExpression, anyNumberExpression)` |
| Menor que | `lt(anyNumberExpression, anyNumberExpression)` |
| Menor o igual | `lte(anyNumberExpression, anyNumberExpression)` |
| Distinto | `ne(anyExpression, anyExpression)` |
| Empieza por | `startsWith(anyStringExpression, anyStringExpression)` |
| Termina en | `endsWith(anyStringExpression, anyStringExpression)` |
| Contiene | `contains(anyStringExpression, anyStringExpression)` |

## Texto

| Nombre | Firma |
| --- | --- |
| Concatenar | `concat(...anyStringExpression)` |
| Recortar inicio | `ltrim(anyStringExpression)` |
| Recortar final | `rtrim(anyStringExpression)` |
| Dividir texto | `split(anyStringExpression, anyStringExpression)` |
| Longitud | `strLen(anyStringExpression)` |
| Subcadena | `substring(anyStringExpression, anyNumberExpression, anyNumberExpression)` |
| Minúsculas | `toLower(anyStringExpression)` |
| Mayúsculas | `toUpper(anyStringExpression)` |
| Recortar | `trim(anyStringExpression)` |

## Fechas

| Nombre | Firma |
| --- | --- |
| Sumar días | `addDays(dateValueExpression, anyNumberExpression)` |
| Restar días | `subtractDays(dateValueExpression, anyNumberExpression)` |
| Días entre fechas | `dateDiff(dateValueExpression, dateValueExpression)` |
| Formatear fecha | `formatDate(dateValueExpression, anyStringExpression)` |

## Arrays

| Nombre | Firma |
| --- | --- |
| Filtrar | `filter({ input: anyArrayExpression, as: textExpression, cond: anyBooleanExpression })` |
| Primero | `first(anyArrayExpression)` |
| Último | `last(anyArrayExpression)` |
| Longitud | `length(anyArrayExpression)` |
| Máximo | `max(anyArrayExpression)` |
| Mínimo | `min(anyArrayExpression)` |
| Quitar último | `pop(anyArrayExpression)` |
| Quitar primero | `shift(anyArrayExpression)` |
| Invertir | `reverseArray(anyArrayExpression)` |
| Array a objeto | `arrayToObject(anyArrayExpression)` |
| Concatenar arrays | `concatArrays(...anyArrayExpression)` |
| Todos | `every({ input: anyArrayExpression, as: textExpression, cond: anyBooleanExpression })` |
| Alguno | `some({ input: anyArrayExpression, as: textExpression, cond: anyBooleanExpression })` |
| Buscar | `find({ input: anyArrayExpression, as: textExpression, cond: anyBooleanExpression })` |
| Buscar índice | `findIndex({ input: anyArrayExpression, as: textExpression, cond: anyBooleanExpression })` |
| Mapear | `map({ input: anyArrayExpression, as: textExpression, in: anyExpression })` |
| Reducir | `reduce({ input: anyArrayExpression, initialValue: anyExpression, in: anyExpression })` |
| Primeros N | `firstN({ n: anyNumberExpression, input: anyArrayExpression })` |
| Últimos N | `lastN({ n: anyNumberExpression, input: anyArrayExpression })` |
| Máximos N | `maxN({ n: anyNumberExpression, input: anyArrayExpression })` |
| Mínimos N | `minN({ n: anyNumberExpression, input: anyArrayExpression })` |
| Elemento en | `arrayElemAt(anyArrayExpression, anyNumberExpression)` |
| Índice de | `indexOfArray(anyArrayExpression, anyExpression)` |
| Contiene | `in(anyExpression, anyArrayExpression)` |
| Añadir al final | `push(anyArrayExpression, anyExpression)` |
| Añadir al inicio | `unshift(anyArrayExpression, anyExpression)` |
| Trocear | `slice(anyArrayExpression, anyNumberExpression, anyNumberExpression)` |
| Ordenar | `sortArray({ input: anyArrayExpression, sortBy: anyNumberExpression })` |
| Empalmar | `splice({ input: anyArrayExpression, start: anyNumberExpression, deleteCount: anyNumberExpression, items: anyArrayExpression })` |

## Condicionales

| Nombre | Firma |
| --- | --- |
| Condición | `cond({ if: anyBooleanExpression, then: anyExpression, else: anyExpression })` |
| Switch | `switch({ branches: { type: "array", data: { type: "object", data: { case: anyBooleanExpression, then: anyExpression } }[] }, default: anyExpression })` |

## Objetos

| Nombre | Firma |
| --- | --- |
| Obtener valor | `getValue({ input: anyObjectExpression, key: anyStringExpression })` |
| Asignar valor | `setValue({ input: anyObjectExpression, key: anyStringExpression, value: anyExpression })` |
| Fusionar objetos | `mergeObjects(...anyObjectExpression)` |
| Objeto a array | `objectToArray(anyObjectExpression)` |

---

URL canónica: https://docs.filmo.io/es/workflows/reference/functions  
Última actualización: 2026-10-25