> ## Documentation Index
> Fetch the complete documentation index at: https://developers.insuranceboosters.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Paso Esperar

> Pausa una automatización por una duración o hasta una fecha y hora.

El paso `system.delay` pausa la ejecución y reanuda el siguiente paso cuando se cumple la condición de tiempo.

## Modos

### `duration` — esperar un intervalo

```json theme={null}
{
  "name": "Esperar 5 minutos",
  "actionKey": "system.delay",
  "input": {
    "mode": "duration",
    "amount": 5,
    "unit": "minutes"
  }
}
```

| Campo    | Valores                               |
| -------- | ------------------------------------- |
| `mode`   | `duration`                            |
| `amount` | Entero ≥ `1`                          |
| `unit`   | `seconds`, `minutes`, `hours`, `days` |

### `until` — esperar hasta una fecha/hora

```json theme={null}
{
  "name": "Esperar hasta el cobro",
  "actionKey": "system.delay",
  "input": {
    "mode": "until",
    "date": "{{trigger.body.fechaCobro}}",
    "time": "09:00",
    "timezone": "America/Mexico_City"
  }
}
```

| Campo      | Formato                                       |
| ---------- | --------------------------------------------- |
| `date`     | `YYYY-MM-DD` o plantilla                      |
| `time`     | `HH:mm` o `HH:mm:ss`, o plantilla             |
| `timezone` | Zona IANA (`America/Mexico_City`) o plantilla |

## Buen ejemplo: reintento diferido tras un webhook

```json theme={null}
{
  "steps": [
    {
      "name": "Esperar confirmación bancaria",
      "actionKey": "system.delay",
      "input": {
        "mode": "duration",
        "amount": 15,
        "unit": "minutes"
      }
    },
    {
      "name": "Consultar estatus",
      "actionKey": "http.request",
      "input": {
        "method": "GET",
        "url": "https://ejemplo.com/pagos/{{trigger.body.referencia}}"
      }
    }
  ]
}
```

## Malos ejemplos

### Usar `delayMs`

```json theme={null}
{
  "actionKey": "system.delay",
  "input": { "delayMs": 1000 }
}
```

El contrato válido es `mode` + `amount` + `unit` (o `until` con fecha/hora/zona).

### Fecha u hora mal formada

```json theme={null}
{
  "mode": "until",
  "date": "21/07/2026",
  "time": "9am",
  "timezone": "Mexico"
}
```

Usa `YYYY-MM-DD`, hora 24 h y una zona IANA válida.

### Simular esperas largas dentro de JavaScript

```javascript theme={null}
await sleep(60 * 60 * 1000);
output = { ok: true };
```

Para pausas largas usa `system.delay`. Reserva `sleep` en JavaScript para esperas cortas dentro de una integración.

## Salida del paso

```json theme={null}
{
  "delayed": true,
  "mode": "duration",
  "requestedAtMs": 1720000000000,
  "resumeAtMs": 1720000090000
}
```

## Relacionado

* [Tipos de paso](/automatizaciones/tipos-de-paso)
* [Ejecutar ahora (cron)](/automatizaciones/ejecutar-ahora) para probar automatizaciones programadas
