# Preguntas Frecuentes

Respuestas rapidas a las dudas mas comunes sobre ReallyQuickEmails.

***

## Envio de Emails

### Cual es la diferencia entre send-email, send-template-email y send-batch?

| Endpoint                       | Mejor para                                                    | Destinatarios |
| ------------------------------ | ------------------------------------------------------------- | ------------- |
| `POST /v1/send-email`          | Emails individuales con HTML directo (transaccionales)        | 1             |
| `POST /v1/send-template-email` | Emails individuales usando un template guardado con variables | 1             |
| `POST /v1/send-batch`          | Envios masivos a multiples destinatarios                      | Hasta 12,500  |

**Usa `send-email`** cuando generas el HTML desde tu sistema (ej: confirmaciones de pago, alertas). **Usa `send-template-email`** cuando tienes templates diseñados en el editor visual y solo envias las variables. **Usa `send-batch`** cuando necesitas enviar el mismo email (o con variables personalizadas) a muchos destinatarios a la vez.

### Puedo enviar mas de 12,500 emails?

Si. Tienes dos opciones:

1. **Multiples llamadas a `/v1/send-batch`** — Divide tus destinatarios en lotes de hasta 12,500 y haz una llamada por lote.
2. **Campanas desde el Dashboard** — Crea una campana sin limite de destinatarios. El sistema procesa automaticamente en lotes de 500 con rate limiting integrado. Ideal para envios de 50k+ emails.

### Cuales son los limites de envio?

| Limite                       | Valor   |
| ---------------------------- | ------- |
| Emails por dia (AWS SES)     | 106,000 |
| Emails por segundo (AWS SES) | 16      |
| Emails por batch request     | 12,500  |
| Emails por mes (plataforma)  | 500,000 |

Estos limites pueden aumentar a medida que tu cuenta de SES madura. Contacta soporte si necesitas limites mas altos.

### Puedo programar un envio para despues?

Si. Usa el campo `scheduled_at` con una fecha ISO 8601:

```json
{
  "scheduled_at": "2026-04-01T10:00:00Z"
}
```

Funciona en `/send-email` y `/v1/send-batch`. Tambien soporta lenguaje natural como `"tomorrow at 3pm"` con el campo `timezone`. Ver [Programar Envios](/reallyquickemails-docs/guias/scheduling.md).

### Que pasa si envio un email a alguien que se dio de baja?

El email se omite automaticamente. La API retorna una respuesta exitosa (200) indicando que fue saltado:

```json
{
  "message": "Email skipped — recipient is suppressed",
  "skipped": true,
  "suppression_reason": "unsubscribed",
  "recipient": "usuario@ejemplo.com"
}
```

ReallyQuickEmails mantiene una lista de supresion automatica que incluye:

* **Unsubscribed**: Destinatarios que hicieron clic en el enlace de baja
* **Bounced**: Emails que rebotaron (hard bounce)
* **Complained**: Destinatarios que marcaron tu email como spam

No necesitas gestionar esto manualmente — la plataforma lo hace por ti.

### Como rastreo si un email fue entregado?

Cada email enviado retorna un `activity_id` (o `email_id`) en la respuesta. Los webhooks de AWS SES actualizan automaticamente el estado:

```
queued → sent → delivered (exito)
queued → sent → bounced (rebote)
queued → sent → complained (spam)
```

Puedes ver el estado de cada email en el Dashboard bajo **Actividad** de tu proyecto.

Para `send-batch`, la respuesta incluye un `activity_id` por cada destinatario, permitiendo rastreo individual.

***

## Dominios y Deliverability

### Por que mis emails llegan a spam?

Las causas mas comunes son:

1. **Dominio no verificado** — Asegurate de tener DKIM, SPF y DMARC configurados. Ve a [Dominios](/reallyquickemails-docs/referencia-api/domains.md) y verifica con `POST /domains/:domain/verify`.
2. **Dominio nuevo o frio** — Si acabas de registrar tu dominio o nunca has enviado emails desde el, necesitas hacer warming gradual:
   * Dia 1: \~50,000 emails
   * Dia 2: \~75,000 emails
   * Dia 3+: Resto Usa el [modo por lotes](/reallyquickemails-docs/referencia-api/campaigns.md) para automatizar esto.
3. **Contenido sospechoso** — Evita:
   * Muchos enlaces en un solo email
   * Uso excesivo de mayusculas o signos de exclamacion
   * Palabras como "GRATIS", "OFERTA", "URGENTE" en el asunto
   * Imagenes sin texto alternativo
4. **Alta tasa de rebotes o quejas** — Si mas del 2% de tus emails rebotan o mas del 0.1% son marcados como spam, tu reputacion se degrada. Limpia tu lista de contactos regularmente.
5. **No tienes enlace de baja** — ReallyQuickEmails agrega automaticamente headers `List-Unsubscribe` para cumplir con CAN-SPAM, pero asegurate de incluir un enlace visible de baja en el contenido de tu email.

### Como verifico mi dominio?

1. Registra tu dominio con `POST /domains/register`
2. Configura los 7 registros DNS en tu proveedor (GoDaddy, Cloudflare, Namecheap, etc.):
   * 1 TXT para verificacion SES
   * 3 CNAME para DKIM
   * 1 TXT para SPF
   * 1 TXT para DMARC
   * 1 CNAME para Return-Path
3. Espera 5-10 minutos para propagacion DNS
4. Verifica con `POST /domains/:domain/verify`
5. Cuando `can_send: true`, estas listo

Guia completa en [Dominios](/reallyquickemails-docs/referencia-api/domains.md).

### Cuanto tarda la verificacion DNS?

Depende de tu proveedor DNS:

| Proveedor      | Tiempo tipico  |
| -------------- | -------------- |
| Cloudflare     | 1-5 minutos    |
| GoDaddy        | 5-30 minutos   |
| Namecheap      | 5-30 minutos   |
| Route 53 (AWS) | 1-5 minutos    |
| Otros          | Hasta 48 horas |

Puedes verificar el estado en cualquier momento con `POST /domains/:domain/verify`.

***

## Templates

### Que sintaxis usan las variables?

ReallyQuickEmails soporta dos sintaxis equivalentes:

| Sintaxis     | Ejemplo      |
| ------------ | ------------ |
| Doble llave  | `{{nombre}}` |
| Llave simple | `{nombre}`   |

Ademas, puedes usar:

* **Fallback**: `{nombre || "Cliente"}` — usa "Cliente" si `nombre` no existe
* **HTML crudo**: `{!htmlContent}` — inserta HTML sin escapar
* **Loops**: `{{#each productos}}...{{/each}}` — itera sobre arrays
* **Condicionales**: `{{#if premium}}...{{/if}}` — muestra contenido condicionalmente

Guia completa en [Templates y Variables](/reallyquickemails-docs/guias/templates.md).

### Que helpers de formateo estan disponibles?

| Helper              | Uso                          | Ejemplo                                                        |
| ------------------- | ---------------------------- | -------------------------------------------------------------- |
| `formatCurrency`    | Formatea numeros como moneda | `{{formatCurrency total}}` → `$61,970.00`                      |
| `multiply`          | Multiplica dos valores       | `{{multiply cantidad precio}}`                                 |
| `formatDate`        | Formatea fecha ISO a legible | `{{formatDate fecha}}` → `15/3/2026`                           |
| `formatDate "long"` | Formato largo                | `{{formatDate fecha "long"}}` → `domingo, 15 de marzo de 2026` |
| `default`           | Valor por defecto            | `{{default nombre "Cliente"}}`                                 |
| `json`              | Serializa a JSON             | `{{json datos}}`                                               |

### Puedo usar el mismo template para send-email y send-batch?

Si. Los templates creados en el editor visual funcionan tanto para:

* `POST /v1/send-template-email` (individual, usa `template_id` + `variables`)
* `POST /v1/send-batch` (masivo, usa `templateId` + `data` por destinatario)
* Campanas desde el Dashboard

***

## Campanas

### Cual es la diferencia entre send-batch y una campana?

| Aspecto      | send-batch (API)            | Campana (Dashboard)                   |
| ------------ | --------------------------- | ------------------------------------- |
| Limite       | 12,500 por request          | Sin limite                            |
| Creacion     | Codigo (curl, SDK)          | Asistente visual de 5 pasos           |
| Template     | HTML directo o templateId   | Editor visual (GrapesJS + MJML)       |
| Variables    | `data` por destinatario     | CSV upload, mapeo de campos, defaults |
| Lotes        | Manual (multiples requests) | Automatico (500 por ciclo)            |
| Warming      | Manual                      | Modo por lotes configurable           |
| Reintentos   | No                          | Automatico                            |
| Estadisticas | Via activity\_id individual | Dashboard con metricas agregadas      |

**Regla general**: Usa `send-batch` para integraciones programaticas. Usa campanas para envios grandes gestionados desde la interfaz.

### Puedo pausar una campana en proceso?

Si. Desde el Dashboard puedes pausar una campana que esta en estado `processing`. Los emails ya encolados en BullMQ se seguiran enviando, pero no se despacharan nuevos lotes. Para reanudar, usa el boton en el Dashboard o `POST /trigger-campaign`.

### Que pasa si mi campana se queda en "rate\_limited"?

Significa que se alcanzo el limite de envio de SES (16 emails/segundo o 106k/dia). La campana se reanuda automaticamente cuando el limite se restablece. Tambien puedes reanudarla manualmente con `POST /trigger-campaign`.

***

## API y Autenticacion

### Donde encuentro mi API Key?

1. Ingresa al [Dashboard de ReallyQuickEmails](https://app.reallyquickemails.com)
2. Selecciona tu proyecto
3. Ve a **Configuracion** > **API Keys**
4. Copia tu **Secret Key** (`sk_proj_...`) — funciona para todos los endpoints

### Por que recibo error 401?

| Causa                           | Solucion                                                               |
| ------------------------------- | ---------------------------------------------------------------------- |
| Falta el header `Authorization` | Agrega `Authorization: Bearer sk_proj_tu_key`                          |
| Formato incorrecto              | Asegurate de usar `Bearer sk_proj_...` (con espacio despues de Bearer) |
| Key invalida o revocada         | Genera una nueva desde Configuracion > API Keys                        |

### La API tiene rate limiting?

Los endpoints de la API no tienen rate limiting propio. El limite lo impone AWS SES: 16 emails/segundo y 106,000 emails/dia. Si alcanzas el limite, los emails se encolan y se envian cuando haya capacidad.

***

## Soporte

### Como reporto un problema?

Contactanos en <soporte@reallyquickemails.com> incluyendo:

* Tu Project ID
* El endpoint y request body que usaste
* El error o respuesta que recibiste
* Timestamp aproximado del problema


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://reallyquickemails.gitbook.io/reallyquickemails-docs/guias/faq.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
