---
title: "Disparadores y filtros de los flujos de trabajo"
description: "Los cuatro eventos que inician un flujo de trabajo y las condiciones opcionales que deciden si se ejecuta para una reserva: grupos O unidos con Y, los campos por los que puedes filtrar y los operadores de cada tipo de campo."
canonical_url: "https://requiply.com/docs/es/guides/automations/workflows/triggers-and-filters"
---
# Disparadores y filtros de los flujos de trabajo

> Los cuatro eventos que inician un flujo de trabajo y las condiciones opcionales que deciden si se ejecuta para una reserva: grupos O unidos con Y, los campos por los que puedes filtrar y los operadores de cada tipo de campo.

Un [flujo de trabajo](https://requiply.com/docs/es/guides/automations/workflows) empieza con un disparador y puede llevar filtros que deciden si se ejecuta para una reserva concreta. Ambos están en la parte superior de los formularios de creación y edición, encima de la [acción](https://requiply.com/docs/es/guides/automations/workflows/actions).

## Disparadores

Eliges un tipo de disparador y el formulario muestra solo los campos que le corresponden.

- **Status reached** (estado alcanzado): se ejecuta cuando una reserva entra en un estado concreto. Eliges el estado de la lista de estados configurados en tu organización; cada opción se muestra como una etiqueta del color de su estado. La primera vez que eliges este tipo de disparador, toma por defecto tu **Default status for new bookings** (estado por defecto de las reservas nuevas): *New*, salvo que lo hayas cambiado en [Creación de reservas](https://requiply.com/docs/es/guides/settings/bookings/booking-creation#elegir-los-estados-iniciales).
- **Payment status reached** (estado de pago alcanzado): se ejecuta cuando el pago de una reserva llega a un estado concreto (por ejemplo, *Completed* o *Refunded*). El desplegable muestra cada estado de pago como una etiqueta de color. Por defecto, *Completed*.
- **Booking created** (reserva creada): se ejecuta una vez, cuando se crea una reserva nueva. No necesita más configuración.
- **Relative time reached** (momento relativo alcanzado): se ejecuta con un desfase configurado antes o después del inicio o del fin de una reserva. Eliges:

  - **Relative to** (respecto a): *Booking start time* o *Booking end time* (inicio o fin de la reserva).
  - **Direction** (dirección): *Before* o *After* (antes o después; un botón segmentado que debe tener un valor).
  - **Offset** (desfase): un número con un selector de unidad de tiempo (el selector numérico recuerda la unidad, así que un desfase guardado en minutos se puede seguir editando en horas o días). Debe ser mayor que cero.

Estos cuatro son los únicos tipos de disparador. Elijas el que elijas, los [filtros](#filtros-ejecutar-este-flujo-de-trabajo-solo-cuando) opcionales del flujo de trabajo se comprueban justo después de que se cumpla el disparador e inmediatamente antes de ejecutar la acción.

## Filtros: "Ejecutar este flujo de trabajo solo cuando…"

Los filtros son un bloque **opcional** de condiciones de cada flujo de trabajo. Están entre las secciones **Trigger** y **Action** del formulario, bajo el título **Filters** con la ayuda *"Only run this workflow when these conditions are met. Leave empty to always run."* (ejecutar este flujo de trabajo solo cuando se cumplan estas condiciones; déjalo vacío para que se ejecute siempre). En la **Preview** en tiempo real, las condiciones aparecen bajo el título **"Only when"**, entre la tarjeta del disparador y la de la acción.

![Editor de filtros con dos grupos AND: una condición Booking total cost, un separador "&" y una condición Client pricing discount](https://requiply.com/docs/assets/settings/workflows/workflows/filters-builder.png)

### Cómo funciona la coincidencia: AND de grupos OR

Los filtros se organizan en **grupos**:

- Las condiciones **dentro del mismo grupo** se combinan con **OR** (o): basta con que se cumpla una de ellas para que se cumpla el grupo. El editor muestra un conector **OR** entre las filas.
- Los **grupos distintos** se combinan con **AND** (y): se tienen que cumplir todos los grupos. El editor muestra un separador **& / AND** entre los grupos.

Así, la regla completa se lee como *(A o B) y (C o D)*. Es exactamente como lo evalúa Requiply en el servidor: cada grupo necesita al menos una condición que se cumpla, y tienen que pasar todos los grupos.

<note>

**Sin filtros, se ejecuta siempre.** Si no configuras ningún filtro (o dejas todos los grupos vacíos), el flujo de trabajo se ejecuta cada vez que se cumple su disparador. Quitar todas las condiciones es la forma de volver a "ejecutarse en todas las reservas que cumplan el disparador".

</note>

Los filtros se comprueban en **todos** los tipos de disparador (incluidos los flujos de trabajo de tiempo relativo, que procesa más tarde una tarea en segundo plano), después de que se cumpla el disparador y justo antes de ejecutar la acción.

### Por qué puedes filtrar

Los campos se agrupan en **Booking** (reserva) y **Client** (cliente), cada uno con sus campos predefinidos más los campos personalizados que hayas configurado.

**Booking (predefinidos):**

<table>
<thead>
  <tr>
    <th>
      Campo
    </th>
    
    <th>
      Tipo
    </th>
    
    <th>
      Notas
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Booking status
    </td>
    
    <td>
      Select
    </td>
    
    <td>
      Las opciones son los estados de reserva de tu organización, con sus colores.
    </td>
  </tr>
  
  <tr>
    <td>
      Total cost
    </td>
    
    <td>
      Number
    </td>
    
    <td>
      
    </td>
  </tr>
  
  <tr>
    <td>
      Start date
    </td>
    
    <td>
      Date
    </td>
    
    <td>
      
    </td>
  </tr>
  
  <tr>
    <td>
      End date
    </td>
    
    <td>
      Date
    </td>
    
    <td>
      
    </td>
  </tr>
  
  <tr>
    <td>
      Created at
    </td>
    
    <td>
      Date
    </td>
    
    <td>
      
    </td>
  </tr>
</tbody>
</table>

**Client (predefinidos):**

<table>
<thead>
  <tr>
    <th>
      Campo
    </th>
    
    <th>
      Tipo
    </th>
    
    <th>
      Notas
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      First name
    </td>
    
    <td>
      Text
    </td>
    
    <td>
      
    </td>
  </tr>
  
  <tr>
    <td>
      Last name
    </td>
    
    <td>
      Text
    </td>
    
    <td>
      
    </td>
  </tr>
  
  <tr>
    <td>
      Email
    </td>
    
    <td>
      Text
    </td>
    
    <td>
      
    </td>
  </tr>
  
  <tr>
    <td>
      Phone
    </td>
    
    <td>
      Text
    </td>
    
    <td>
      
    </td>
  </tr>
  
  <tr>
    <td>
      Pricing discount
    </td>
    
    <td>
      Select
    </td>
    
    <td>
      Las opciones son los descuentos de tu organización.
    </td>
  </tr>
  
  <tr>
    <td>
      Telegram connected
    </td>
    
    <td>
      Checkbox
    </td>
    
    <td>
      Si el cliente se ha conectado a tu <a href="https://requiply.com/docs/es/guides/settings/integrations/communications#conectar-a-los-clientes-con-tu-bot-de-telegram">
        bot de Telegram
      </a>
      
      . Úsalo para enviar mensajes de Telegram solo a los clientes que pueden recibirlos de verdad.
    </td>
  </tr>
</tbody>
</table>

**Campos personalizados:** también aparece cualquier campo de entidad que hayas configurado en el nivel Booking o Client, agrupado en **Booking custom fields** / **Client custom fields** (campos personalizados de la reserva o del cliente). El tipo de valor de cada uno (texto, número, fecha, lista, lista múltiple o casilla) sigue el tipo del propio campo personalizado.

### Operadores según el tipo de campo

Los operadores disponibles dependen del tipo de campo:

<table>
<thead>
  <tr>
    <th>
      Tipo de campo
    </th>
    
    <th>
      Operadores
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Text
    </td>
    
    <td>
      contains, is, is not, is empty, is not empty (contiene, es, no es, está vacío, no está vacío)
    </td>
  </tr>
  
  <tr>
    <td>
      Number
    </td>
    
    <td>
      is, is not, greater than, less than, is between, is empty, is not empty (es, no es, mayor que, menor que, está entre, está vacío, no está vacío)
    </td>
  </tr>
  
  <tr>
    <td>
      Date
    </td>
    
    <td>
      is before, is after, is between, is empty, is not empty (es anterior a, es posterior a, está entre, está vacío, no está vacío)
    </td>
  </tr>
  
  <tr>
    <td>
      Select
    </td>
    
    <td>
      is, is not, is any of, is none of, is empty, is not empty (es, no es, es alguno de, no es ninguno de, está vacío, no está vacío)
    </td>
  </tr>
  
  <tr>
    <td>
      Multiselect
    </td>
    
    <td>
      contains any of, contains all of, is empty, is not empty (contiene alguno de, contiene todos, está vacío, no está vacío)
    </td>
  </tr>
  
  <tr>
    <td>
      Checkbox
    </td>
    
    <td>
      Yes, No (sí, no)
    </td>
  </tr>
</tbody>
</table>

El campo del valor se adapta al campo y al operador que elijas:

- **is empty / is not empty**, y los operadores de casilla **Yes / No**, **no muestran ningún campo de valor**.
- **is between** (número o fecha) muestra **dos campos** (un par mínimo/máximo o un intervalo de fechas).
- **is any of / is none of** (Select) y los operadores de Multiselect muestran un **selector múltiple de chips**.
- Todo lo demás muestra un único campo de texto, número, fecha o lista adaptado al campo.

Al cambiar el campo, el operador vuelve al valor por defecto de ese tipo de campo y se borra el valor; al cambiar solo el operador, se borra el valor.

### Lo que conviene saber sobre cómo se cumplen las condiciones

- Las comparaciones de **texto** (*is*, *is not*, *contains*) **no distinguen mayúsculas de minúsculas**, y un *contains* con el valor vacío nunca se cumple.
- Los valores de **número** y de **fecha** que no se pueden leer se consideran no coincidentes, así que un flujo de trabajo nunca se ejecuta con un valor que no ha podido interpretar.
- Las condiciones de **Select** guardan el valor interno de la opción (por ejemplo, el id de un estado); la vista previa lo convierte por ti en el nombre legible.
- Una condición cuyo valor dejas en blanco simplemente no se cumple: no deja que el flujo de trabajo se ejecute por accidente.

<warning>

**Los filtros fallan de forma segura.** Si Requiply no puede cargar los datos que necesita un filtro para una reserva concreta, el flujo de trabajo **no** se ejecuta para esa reserva. Así se evita enviar un mensaje equivocado cuando falta algo.

</warning>

### Crear y editar filtros

- Si todavía no hay condiciones, ves un único botón **Add filter** (añadir filtro).
- En cuanto añades una, cada grupo es una tarjeta con filas OR. Dentro de la tarjeta hay un botón **Add OR condition** (añadir condición OR) y un botón **Remove group** (quitar grupo); debajo de las tarjetas hay un botón **Add AND group** (añadir grupo AND) para empezar un grupo nuevo, con un separador **&** entre los grupos. Cada fila tiene además una **×** para quitar solo esa condición. Los nombres de los campos del desplegable llevan delante su origen, por ejemplo *Booking · Total cost* o *Client · Pricing discount*.
- Al guardar, se eliminan los grupos vacíos. Si no queda nada, el flujo de trabajo se guarda sin filtros y vuelve a ejecutarse cada vez que se cumple el disparador.


## Sitemap

See the full [sitemap](https://requiply.com/docs/sitemap.md) for all pages.
