Este artículo describe cómo configurar Direct Message Injection (DMI) a través de Google en SMARTFENSE, creando un proyecto en Google Cloud, habilitando las APIs requeridas, generando una o varias cuentas de servicio y cargándolas en la plataforma. Es posible configurar múltiples cuentas de DMI en el mismo proyecto y distribuir los envíos entre ellas, aumentando la capacidad de envío y la resiliencia ante fallos o límites de cuota.
La configuración de DMI asegura que los correos de simulaciones lleguen a la bandeja de entrada de los usuarios y evita que se muestre el cartel gris de advertencia de Google: "Este mensaje no fue enviado a SPAM de acuerdo a las configuraciones de tu organización."
Puede encontrar este instructivo dentro de la plataforma de SMARTFENSE en Configuración > Simulaciones > Medio de envío, seleccionando: Direct Message Injection a través de Google.
Prerrequisitos
Antes de iniciar la configuración, asegúrese de cumplir con lo siguiente:
- El administrador que realice la configuración en Google debe tener el rol de superadministrador en Google Workspace.
- Debe contar además con un usuario administrador en SMARTFENSE. Esto es necesario porque la validación de la configuración se realiza mediante el botón Enviarme prueba, y solo los usuarios pertenecientes al dominio configurado pueden completar exitosamente esa comprobación. El administrador recibirá el correo de validación en su bandeja de entrada.
Instructivo de configuración de DMI a través de Google
1. Crear un proyecto en Google Cloud
- Ingrese a la siguiente URL para crear un proyecto en Google Cloud: https://console.cloud.google.com/projectcreate
- Defina un nombre representativo en "Project Name", por ejemplo: SMARTFENSE-DMI.
- Una vez creado, aparecerá el dashboard del proyecto.
2. Habilitar APIs requeridas
- Desde el panel de APIs, haga clic en "Go to APIs overview".
- Haga clic en "Enable APIs AND Services".
- Busque y habilite la API "Gmail API".
- Busque y habilite la API "Admin SDK API".
3. Crear credenciales y Service Account
- Haga clic en "APIs & Services > Credentials" en el menú lateral.
- Ubique el panel "Service Accounts" y haga clic en "Manage service accounts".
- Haga clic en "Create Service Account".
- Complete el formulario con un nombre y una descripción. Por ejemplo:
- Nombre: SMARTFENSE-DMI
- Descripción: Inyección de mensajes directos para correos electrónicos de simulación de SMARTFENSE
- Haga clic en "Continue".
- Haga clic en "Done".
4. Generar la Key (JSON) del Service Account
- Una vez creado el "Service Account", ingrese nuevamente para agregar una nueva "Key". Para volver a ingresar, haga clic en "APIs & Services > Credentials" en el menú lateral y luego en la cuenta de servicio creada.
- Haga clic en "Create new key".
- Seleccione la opción JSON y cree la "key".
- Al finalizar, se descargará automáticamente un archivo con extensión ".json". Guarde este archivo de manera segura.
Advertencia: el contenido del archivo JSON incluye credenciales sensibles. Limite su acceso al administrador responsable y evite compartirlo por canales no seguros.
5. Configurar delegación en Google Admin
- Ingrese a admin.google.com
- Acceda al menú "Controles de API".
- Haga clic en "Administrar la delegación de todo el dominio".
- Haga clic en "Agregar nuevo" y complete el ID de cliente con el correspondiente al "Service Account" creado.
- En los permisos de OAuth, copie los siguientes:
https://www.googleapis.com/auth/admin.directory.userhttps://www.googleapis.com/auth/gmail.inserthttps://www.googleapis.com/auth/gmail.readonly
Importante: SMARTFENSE no realiza otro uso de los permisos brindados más que los especificados aquí en el instructivo.
6. Cargar la cuenta en SMARTFENSE
- En la plataforma SMARTFENSE, haga clic en "+ Agregar cuenta", complete los siguientes campos:
- Label: ingrese un nombre descriptivo para identificar la cuenta (por ejemplo, Cuenta Principal).
- Service Account Email: la dirección de correo electrónico del "Service Account" creado en el paso 3. Crear credenciales y Service Account.
- JSON Private Key: pegue el contenido del archivo JSON descargado.
- Asigne un Peso de distribución, ver: Pesos de distribución
- Deje seleccionado: Activa
- En el campo Destinatario para prueba, ingrese un correo electrónico que pertenezca al dominio configurado en el Service Account. Por defecto se utiliza el correo del administrador que realiza la configuración.
- Para validar la configuración, haga clic en Enviar prueba. junto a la cuenta que desea validar individualmente, o en Enviar pruebas para validar todas las cuentas configuradas a la vez. Si se detecta algún error, se mostrará una notificación con el detalle.
-
Una vez que la prueba sea exitosa, haga clic en Guardar. El botón permanece deshabilitado hasta que la validación se complete correctamente.
Nota: la validación con Enviarme prueba solo será exitosa si el usuario que realiza la prueba pertenece al dominio configurado en el Service Account.
Configuración de múltiples cuentas de DMI
Es posible agregar varias cuentas de DMI dentro del mismo medio de envío. Esto permite distribuir los envíos entre las cuentas configuradas y mejorar la capacidad y resiliencia del envío de simulaciones.
No existe un límite máximo de cuentas configurables. La única restricción es que debe haber al menos una cuenta activa para poder utilizar DMI; si se desactivan todas, la plataforma lo valida al guardar la configuración.
¿Cuántas cuentas conviene configurar?
La recomendación se basa en dos ejes independientes: volumen y resiliencia.
Por volumen
La Gmail API tiene un límite diario de inserciones por Service Account. Cuando ese límite se agota, la plataforma pone la cuenta en cooldown durante 60 segundos y reintenta el envío con otras cuentas disponibles. Si no hay ninguna otra cuenta disponible, esos mensajes no se entregan ese día.
El criterio práctico es la cantidad de usuarios que reciben simulaciones en un mismo día:
- Hasta ~1.000 usuarios/día: una sola cuenta alcanza en la mayoría de los casos.
- Entre 1.000 y 3.000 usuarios/día: conviene contar con 2 cuentas, especialmente si las campañas se concentran en ventanas horarias cortas.
- Más de 3.000 usuarios/día: 3 o más cuentas con peso uniforme para distribuir la carga de forma equitativa.
La señal más directa de que conviene sumar cuentas es haber detectado errores de cuota diaria en los logs o notar que algunos usuarios no reciben la simulación en el día esperado.
Por resiliencia
Aunque los fallos de autenticación son poco frecuentes, contar con al menos 2 cuentas protege contra este tipo de error: si las credenciales de una cuenta quedan inválidas (por ejemplo, clave JSON vencida o permisos revocados en Google Admin), la otra cuenta absorbe todos los envíos sin interrupción. Con una sola cuenta configurada, este tipo de fallo detiene el envío por DMI hasta que se corrija manualmente.
Resumen de la recomendación
- 2 cuentas son recomendables para cualquier cliente que utilice DMI de forma productiva.
- 3 cuentas o más se justifican por volumen elevado o por campañas con ventanas de entrega muy acotadas.
Cómo agregar cuentas adicionales
- Repita los pasos 3 a 6 (Crear Service Account, generar la Key, configurar la delegación en Google Admin y cargar la cuenta en SMARTFENSE) dentro del mismo proyecto de Google Cloud para cada cuenta adicional.
- En SMARTFENSE, ingrese a la sección Cuentas de Direct Message Injection a través de Google y haga clic en + Agregar cuenta.
- Ingrese todos los datos requeridos: Label, Service Account Email y JSON Private Key. Asigne un peso de distribución a cada cuenta activa.
Pesos de distribución
El peso de distribución define la proporción de envíos que se asigna a cada cuenta. Se admiten tres esquemas principales:
- Peso uniforme: todas las cuentas con peso 1. Reparte los envíos de manera equitativa.
- Peso proporcional: si una cuenta tiene mayor cuota o mejor rendimiento, asígnele un peso mayor (por ejemplo, Cuenta A = 3, Cuenta B = 1).
- Peso de respaldo: asigne peso 1 a la cuenta de respaldo y pesos más altos (por ejemplo, 3 o 5) a las cuentas principales. Esto reduce la proporción de envíos que recibe la cuenta de respaldo sin llegar a cero.
Ejemplo de distribución con 3 cuentas:
| Cuenta | Peso | % de envíos |
|---|---|---|
| Cuenta A | 3 | 50% |
| Cuenta B | 1 | 17% |
| Cuenta C | 2 | 33% |
Comportamiento ante fallos
Cuando una cuenta presenta un error durante el envío, SMARTFENSE reintenta automáticamente con otra cuenta disponible (hasta 2 reintentos por mensaje), aplicando una redistribución inteligente según el tipo de error:
- Límite de envíos alcanzado (rate limit o cuota diaria agotada): la cuenta entra en un período de espera de 60 segundos y el mensaje se reintenta con otra cuenta.
- Error de autenticación (credenciales inválidas): la cuenta queda excluida por el resto de la sesión de envío y el mensaje pasa a otra cuenta.
- Error transitorio del servidor de Google: el mensaje se reintenta con otra cuenta sin penalizar a la cuenta original.
Estos cooldowns y exclusiones aplican solo durante la sesión de envío en curso, no modifican el estado de la cuenta en la plataforma ni la marcan como inactiva.
💡 Mejores prácticas
- Verifique que el administrador que realiza la configuración tenga rol de superadministrador en Google Workspace y usuario administrador en SMARTFENSE antes de iniciar el proceso.
- Use Enviar prueba. en cada cuenta al cargarla, o Enviar pruebas para validar todas a la vez, antes de guardar la configuración.
- Cree todas las cuentas adicionales dentro del mismo proyecto de Google Cloud para simplificar la administración y la auditoría.
- Guarde cada archivo ".json" en un repositorio seguro (por ejemplo, un gestor de secretos) y defina un proceso interno de acceso para el administrador responsable.
- Verifique que la delegación en "Administrar la delegación de todo el dominio" incluya exactamente los permisos indicados, para evitar errores de inyección y reducir riesgos.
- Mantenga documentado el Service Account Email y el Label de cada cuenta para facilitar auditoría y soporte técnico.
- Si trabaja con múltiples cuentas, revise periódicamente los pesos de distribución para alinearlos con la cuota disponible y el comportamiento real de cada cuenta.