Skip to content

Repository files navigation

Página de contacto (Astro + Google Sheets)

Esta plantilla crea una página de contacto estática con Astro y un endpoint en Google Apps Script que escribe los envíos en Google Sheets.

Pasos rápidos:

  1. Instalar dependencias:
npm install
  1. (Opcional) Si usas reCAPTCHA, obtén la clave en https://www.google.com/recaptcha/admin y añádela en tu configuración. Si no la usas, no es necesario.

  2. Google Apps Script:

    • Crear nuevo proyecto en https://script.google.com
    • Pegar google-apps-script/Code.gs
    • En Script Properties añadir SPREADSHEET_ID.
    • Desplegar: "Deploy" → "New deployment" → tipo "Web app" → Ejecutar como: "Me" → Quién tiene acceso: "Anyone".
    • Copiar la URL y ponerla en APPS_SCRIPT_URL en .env.example y en src/scripts/contact.js.
  3. Ejecutar localmente:

npm run dev
  1. Deploy: genera npm run build y publica en GitHub Pages (rama gh-pages) o usa flujo CI.

Notas de seguridad y privacidad: revisar README del plan para requerimientos de GDPR, retención y consentimiento.

Integración con n8n

Si quieres procesar envíos con n8n (por ejemplo para enviar emails, crear tickets o enriquecer datos), sigue estos pasos:

  1. En n8n crea un nodo Webhook configurado para POST y copia la URL del webhook.
  2. En el editor de Apps Script añade las siguientes Script Properties (Project Properties):
    • SPREADSHEET_ID = ID de la hoja (si no existe ya)
    • N8N_WEBHOOK_URL = URL del webhook de n8n
    • N8N_SECRET = (opcional) secreto que Apps Script enviará en el header X-N8N-SIGNATURE
  3. El google-apps-script/Code.gs ya reenviará automáticamente el payload JSON a N8N_WEBHOOK_URL después de validar y guardar en la hoja.
    • El payload contiene: timestamp, name, email, phone, subject, message, consent.
  4. Ejemplo de workflow típico en n8n:
    • Webhook -> IF (verificar consent) -> Google Sheets (append) -> Send Email (SendGrid) -> Slack (notificación)
  5. Prueba rápida desde terminal (ejemplo):
curl -X POST 'https://tu-n8n.example/webhook/rest/contact-webhook' \
  -H 'Content-Type: application/json' \
  -d '{ "name":"Prueba", "email":"test@example.com", "message":"Hola" }'
  1. Seguridad: es recomendable configurar N8N_SECRET y validar el header X-N8N-SIGNATURE en n8n, o proteger el webhook mediante autenticación en tu instancia n8n.

Si quieres, puedo generar un ejemplo de workflow n8n en JSON o guiarte paso a paso para crear el webhook y la regla de validación en tu instancia.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages