Templates / Handle portfolio contact form submissions with webhook, SMTP and Google Sheets

Handle portfolio contact form submissions with webhook, SMTP and Google Sheets

Ready for 3.0

by Yash Kabra ✓ · 37 views · created 2026-06-30 · Ticket Management

Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.

Nodes used (6)

Google Sheets

What it does

Quick Overview This workflow receives portfolio contact form submissions via a webhook, validates and normalizes the input, then logs the message to Google Sheets and sends a confirmation email via SMTP before returning a JSON success or error response. How it works 1. Receives a POST request on a webhook endpoint for contact form submissions. 2. Validates that name, email, and message are present and within length/format limits, and returns a 400 JSON error response for invalid requests. 3. Normalizes the fields (trim text, lowercase email, set defaults, add timestamp and source) for valid submissions. 4. Appends the submission details to a Google Sheets spreadsheet. 5. Sends a personalized HTML confirmation email to the submitter using SMTP. 6. Returns a 200 JSON success response with basic submission details and CORS headers. Setup 1. Configure the webhook URL in your portfolio contact form and restrict allowed origins/CORS to your domain. 2. Add a Google Sheets OAuth2 credential and set the target spreadsheet and sheet where submissions should be appended. 3. Ensure the Google Sheet has columns that match the fields being written (Name, Email, Subject, Message, Phone, Timestamp, Source). 4. Add an SMTP credential and set the desired from address and email template content in the confirmation email step.

View the original on n8n.io → Check your own copy

Get the weekly “what broke” email

New templates, newly broken ones, and n8n release changes. One short email a week.

Form not loading? Subscribe here.