AutomatizaciónAutomation · 2026
Formulario de contacto automatizadoAutomated Contact Form
Automatización del formulario de contacto del portfolio: cada mensaje se valida contra spam, se guarda en Google Sheets, avisa por Telegram y le envía al visitante una respuesta automática en su idioma.
Automation for the portfolio's contact form: every message is checked against spam, saved to Google Sheets, announced on Telegram and answered with an automatic reply in the visitor's language.
El problema
Un formulario de contacto que solo manda un mail tiene tres problemas: el mensaje puede perderse entre otros correos, no queda un registro ordenado de los contactos y la persona que escribe no sabe si su mensaje llegó.
A eso se suma el spam: un formulario público es un blanco fácil para bots, y una respuesta automática mal hecha puede usarse para mandar correos a terceros.
A contact form that only sends an email has three problems: the message can get lost among other emails, there is no organized record of contacts, and the person writing doesn't know whether their message arrived.
Then there is spam: a public form is an easy target for bots, and a badly built auto-reply can be abused to send emails to third parties.
La solución
El backend en Vercel filtra antes de hacer nada: verifica el origen, limita los envíos por IP, usa un campo trampa (honeypot), mide el tiempo de llenado y valida el desafío de Cloudflare Turnstile. Recién ahí envía el mensaje por mail con Resend.
Después pasa el contacto a un webhook de Make.com (protegido con un secreto), que lo agrega como fila en Google Sheets y manda un aviso a Telegram. Al visitante le llega una respuesta automática en su idioma, enviada desde el dominio propio verificado en Resend, con un texto fijo que no repite su mensaje para que el formulario no sirva para enviar spam.
Si Make o la respuesta automática fallan, el formulario igual confirma el envío y el error queda registrado: lo importante, que el mensaje llegue, nunca depende de los pasos extra.
The Vercel backend filters before doing anything: it checks the origin, rate-limits by IP, uses a honeypot field, measures how long the form took to fill in and validates the Cloudflare Turnstile challenge. Only then does it send the message by email through Resend.
It then hands the contact to a Make.com webhook (protected with a secret), which adds a row to Google Sheets and sends a Telegram alert. The visitor gets an automatic reply in their language, sent from the custom domain verified in Resend, with a fixed text that never repeats their message so the form can't be used to send spam.
If Make or the auto-reply fail, the form still confirms the message was sent and the error is logged: what matters, the message arriving, never depends on the extra steps.


