Preguntas frecuentes
Respuestas rápidas a los problemas habituales.
En esta página
- ¿BloomX funciona con Gmail, Outlook o IMAP?
- ¿Necesito desplegar mi propio backend?
- ¿Qué secretos tengo que compartir entre frontend y backend?
- ¿Qué es el "modo legado"?
- ¿Es obligatorio `WEBHOOK_SECRET`?
- El login de un administrador da 503
- ¿Quién tiene MFA obligatorio?
- ¿Puedo rotar `NEXTAUTH_SECRET`?
- ¿Por qué mis campañas de Elixir no avanzan?
- ¿Es seguro el envío sellado?
- ¿Las extensiones están aisladas del sistema?
- Mi tema de empresa no se ve
- El editor dice que mi color se corrigió
- Guardé el tema y se perdió la landing (o la paleta)
- ¿Cómo oculto esta documentación a mis usuarios?
- ¿Hay deshacer envío, posponer o cancelar programados?
- ¿Puedo enviar sin conexión?
- ¿Qué tamaño de adjunto se admite?
- ¿Qué variable configura la IA?
- ¿Cómo añado un idioma?
- Encontré algo que no coincide con el código
¿BloomX funciona con Gmail, Outlook o IMAP?#
No como buzones. El correo entra por webhook de Resend y sale por la API de Resend; no hay cliente IMAP/SMTP. Sí existe la sincronización de calendario y contactos de Google (unidireccional). Ver Arquitectura.
¿Necesito desplegar mi propio backend?#
No necesariamente. El backend es compartido y multi-tenant: puedes registrar tu dominio en uno existente (register-domain + verify-domain). Si lo despliegas tú, consulta Despliegue.
¿Qué secretos tengo que compartir entre frontend y backend?#
Ninguno. Cada frontend usa su propio NEXTAUTH_SECRET; la autenticación hacia el backend es con la clave Ed25519 de tu instancia. Ver Arquitectura.
¿Qué es el "modo legado"?#
Si tu dominio no tiene clave pública registrada, el backend acepta cabeceras sin firma, sin services privilegiados (EMAIL_RECEIVED, CRON, services.mail); las extensiones siguen usando sus credenciales y cada ejecución se audita. Responde X-BloomX-Auth: legacy. Registra tu clave para salir de él (protocolo).
¿Es obligatorio `WEBHOOK_SECRET`?#
No: es opcional y lo decide cada organizador. Con él se exige firma Svix válida; sin él el webhook se acepta sin firma (aviso en el log). En producción se recomienda definirlo. Lo mismo vale para RESEND_WEBHOOK_SECRET. Ver Correo.
El login de un administrador da 503#
Falta la tabla UserMfa. Ejecuta npm run db:ensure en la base de datos de destino.
¿Quién tiene MFA obligatorio?#
Los correos de ADMIN_EMAILS (desactivable con MFA_ENFORCE_ADMIN=false) y todos si MFA_REQUIRED_ALL=true. Es TOTP con códigos de recuperación. Ver Seguridad.
¿Puedo rotar `NEXTAUTH_SECRET`?#
Sí, pero cierra todas las sesiones. Antes fija MFA_RECOVERY_PEPPER y una DATA_ENCRYPTION_KEY dedicada si dependías de la reserva, o perderás los códigos de recuperación y el contenido cifrado.
¿Por qué mis campañas de Elixir no avanzan?#
Elixir no tiene cron declarado en vercel.json. Configura un cron por minuto o un pinger externo sobre /api/cron/elixir con Authorization: Bearer <CRON_SECRET>. Ver Despliegue.
¿Es seguro el envío sellado?#
El contenido se cifra en tu navegador, pero la clave viaja en el enlace del correo. Sin contraseña, quien lea el correo puede descifrarlo; con contraseña compartida por otro canal, no. No admite adjuntos y evade el DLP. Ver Sealer.
¿Las extensiones están aisladas del sistema?#
Parcialmente: corren en worker_threads con límites de memoria y tiempo y red filtrada, pero no es una frontera fuerte. Instala solo extensiones en las que confíes (Extensiones).
Mi tema de empresa no se ve#
Comprueba que GET /api/config devuelve tu theme, que hay al menos un color (radio o fuente solos no crean temas de empresa) y que borraste la cookie bloomx-theme/localStorage del navegador si quieres ver defaultMode. Ver Temas.
El editor dice que mi color se corrigió#
Con autoFixContrast activo (por defecto) el color que no llega a AA se sustituye por el más cercano que sí cumple. Si necesitas el tuyo tal cual, pon autoFixContrast: false (solo se avisa). Ver Temas.
Guardé el tema y se perdió la landing (o la paleta)#
PUT /api/admin/domain reemplaza el theme completo. Envía siempre el objeto completo (colores, palette y landing). Ver Landing y login.
¿Cómo oculto esta documentación a mis usuarios?#
Con landing.docs.visible = false (Ocultar o mostrar docs). Es ocultación de interfaz; no sustituye a no desplegarla.
¿Hay deshacer envío, posponer o cancelar programados?#
No hay "deshacer envío" con retardo. Posponer (snooze) y cancelar un envío programado existen solo como API, sin interfaz. Ver Funciones.
¿Puedo enviar sin conexión?#
No: la cola offline solo cubre acciones por lote de la lista (archivar, borrar, marcar…). Enviar un correo sin red no se encola. Ver Funciones.
¿Qué tamaño de adjunto se admite?#
Hasta 200 MB por archivo con subida previa, y 35 MB en total si van incrustados en base64 en el envío; hasta 25 adjuntos por correo.
¿Qué variable configura la IA?#
Ninguna: la IA se configura por instancia en /admin/ai. AI_KEY, AI_PROVIDER y AI_MODEL son un respaldo heredado y deprecado. Ver IA.
¿Cómo añado un idioma?#
Amplía LOCALES, crea el diccionario y regístralo; para la landing, amplía también LANDING_LOCALES en ambos repositorios. Ver Funciones.
Encontré algo que no coincide con el código#
Esta documentación se verificó contra el código y un test comprueba enlaces y variables, pero puede quedar desfasada. El código manda: abre una incidencia indicando la página y la sección.