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 Receives a POST request on a webhook endpoint for contact form submissions. Validates that name, email, and message are present and within length/format limits, and returns a 400 JSON error response for invalid requests. Normalizes the fields (trim text, lowercase email, set defaults, add timestamp and source) for valid submissions. Appends the submission details to a Google Sheets spreadsheet. Sends a personalized HTML confirmation email to the submitter using SMTP. Returns a 200 JSON success response with basic submission details and CORS headers. Setup Configure the webhook URL in your portfolio contact form and restrict allowed origins/CORS to your domain. Add a Google Sheets OAuth2 credential and set the target spreadsheet and sheet where submissions should be appended. Ensure the Google Sheet has columns that match the fields being written (Name, Email, Subject, Message, Phone, Timestamp, Source).
Tags
Related workflows
See all Email Send→Send Typeform results to Google Sheet, Slack and email
Trigger on new Typeform form submission Write data to Google Sheet Check severity of problem If very severe post message to Slack If not so severe just send an email Assumptions Google Sheet Sheet in Spreadsheet called "Problems". Columns Names: Name Email Severity Problem Example Sheet: https://docs.google.com/spreadsheets/d/17fzSFl1BZ1njldTfp5lvh8HtS0-pNXH66b7qGZIiGRU Typeform Typeform formular with questions named exactly like the columns of the Google Sheet.
Create an invoice in Google Sheets based on Typeform submission
This form takes data from a Typeform submission and creates an invoice on Google Sheets
Notify about Google Sheet changes in Slack and email
To notify by Slack and mail all modification on a Google Sheet