Registro de Trabajo de Correo Electrónico del Cuestionario
1. Por qué Cloud Run → Google Sheet se estancó
- El plan original enrutaba los envíos de cuestionarios a través de
growth-quiz-writeren Cloud Run y luego capturaba cada cliente potencial en una hoja de cálculo de Google para que el equipo pudiera inspeccionar las puntuaciones y los niveles. Un POSTcurlahttps://growth-quiz-writer-825297113896.asia-southeast1.run.appseguía devolviendo HTTP 403 (Prohibido), y ni Netlify ni Cloud Run registraban la invocación porque el servicio nunca recibía una solicitud válida. - Ejecutar
gcloud run services add-iam-policy-binding growth-quiz-writer --member="allUsers" --role="roles/run.invoker" --region="asia-southeast1" --project=growth-archetype-quizfalló conPERMISSION_DENIEDenlocations/asia-southeast1.El comando se autenticó como el propietario de la organización, pero una política de la organización no permite el enlace, por lo que Cloud Run permaneció bloqueado y nada llegó a la hoja de cálculo de Google. - Debido a que el servicio Cloud Run nunca registró ningún intento de cuestionario, dejamos de seguir esa ruta y construimos la lógica de grabación dentro de este repositorio (
netlify/functions/record-quiz.js) para que podamos iterar localmente y observar los registros de Netlify.
2. Función Netlify + retransmisión MailerSend
- Netlify ahora recibe cada envío de cuestionario y llama a
email-quiz-lead.js, que habla con MailerSend. Los primeros intentos de probar el nuevo punto final produjeron{"message":"Invalid JSON"}porque la carga útil JSON incluía nuevas líneas perdidas. El patrón confiable es volcar la carga útil en un archivo temporal a través deprintfy dejar quecurl -d @/tmp/quiz-payload.jsonlo envíe. - Las cuentas de prueba de MailerSend introdujeron sus propias barreras. Después de cambiar al nuevo flujo, vimos
{"message":"Trial accounts can only send emails to the administrator's email. #MS42225","errors":{"to":["Trial accounts can only send emails to the administrator's email. #MS42225"],"from.email":["The from.email domain must be verified in your account to send emails. #MS42207"]}}. La solución fue:- Establecer la dirección
toigual al correo electrónico del administrador de MailerSend (el mismo queGROWTHQUIZ_EMAIL_TOdurante el desarrollo). - Verificar el dominio del remitente dentro de MailerSend para que
from.emailesté permitido.
- Establecer la dirección
- Una vez que esos interruptores estuvieron en su lugar, el mismo comando
curldevolvió{"message":"Email sent"}y los registros de Netlify registraronrecord-quizinvocando la retransmisión para el correo electrónico enviado.
3. Lista de verificación de pruebas
- Ejecute la vista previa de documentos (
npm run docs:preview) y visite/es/quizzes/revenue-ops/. - Ingrese un correo electrónico de trabajo, responda las siete preguntas y confirme que aparece la pantalla de nivel final con un mensaje de estado como
Enviando su diagnóstico de Revenue Ops.... - Inspeccione los registros de Netlify
record-quiz; deberían mostrarTriggering email relay for <email>yEmail relay succeeded for <email>. - Para reproducir la carga útil del cuestionario manualmente, use este fragmento de shell seguro:
bash
printf '%s' '{"email":"moses@growthflowengineering.xyz","answers":[5,3,1,5,3,1,5],"score":27,"tier":{"label":"Functional but Unstable Revenue Ops","description":"Growth is unpredictable and valuation multiples are suppressed.","action":"Align rituals, reporting, and incentives across GTM pods."}}' >/tmp/quiz-payload.json
curl -X POST https://websitegfe.netlify.app/.netlify/functions/email-quiz-lead \
-H "Content-Type: application/json" \
-H "x-growth-quiz-secret: GFEgfe@123#" \
-d @/tmp/quiz-payload.json- El modo de prueba de MailerSend aún requiere que la dirección de administrador verificada coincida con el campo
toy que el dominio del remitente esté verificado antes de que pueda salir cualquier correo.
4. Resultado y próximos pasos
- El cuestionario de Revenue Ops ahora refleja el flujo de Arquetipo de Crecimiento: captura de correo electrónico primero, centro de preguntas secuencial, resumen de nivel y retransmisión de MailerSend. La interfaz suma las respuestas numéricas, elige un nivel, muestra la copia y envía
{ email, answers, score, tier }arecord-quiz. - Cuando cree futuros cuestionarios, copie
docs/en/quizzes/quiz-template.md, actualice los valores de las preguntas y siga reutilizando el ayudanterecord-quiz+ MailerSend. Si eventualmente necesita escribir en Sheets u otro almacén de datos nuevamente, extiendarecord-quizantes de la llamada de correo electrónico para que ninguna ruta única bloquee la retransmisión de correo electrónico.

