Integration guide
Connect Google Sheets to SMTP with a webhook
A lot of tools can fire a webhook when something happens, and almost every mail service speaks SMTP. Put those two together with Google Sheets in the middle and you have a small, reliable pipeline: data arrives at a webhook, it gets logged to a sheet, and a confirmation goes out from your own domain over SMTP. There is no marketing platform in the loop and no per-send fee, just your server sending your mail. This works the same on Make.com, n8n, and Zapier, and it is the pattern behind order confirmations, form receipts, and internal alerts that need a paper trail.
What does a Google Sheets, SMTP, and webhook flow do?
It connects three simple parts. The webhook is the front door: any tool that can send an HTTP POST, a form, a payment provider, or another app, delivers a JSON payload to a URL you own. The Google Sheets step is the record: the payload is written to a new row so you keep a searchable history of everything that came in. The SMTP step is the reply: your own mail server sends a real email back, using values from that same row so the message is personalised. Because the send happens over plain SMTP, you can plug in Amazon SES, SendGrid, Mailgun, Brevo, or your web host's relay and keep your own deliverability and limits.
How do you connect Google Sheets to SMTP with a webhook?
- 1
Create a new scenario in Make.com, n8n, or Zapier with a webhook trigger, then copy the URL. Give this URL to the tool or form that should send you data.
- 2
Submit one real request to the URL, a test form entry or a sample POST, so the trigger captures the field names you will map in the next steps.
- 3
Add a Google Sheets 'Add a row' action, connect your account, pick the sheet and tab, and map each payload field to a column. Include a timestamp column so every record is dated.
- 4
Add a 'Send an email' action set to SMTP. Enter your host, port 587 for STARTTLS or 465 for SSL, your username, and your password or API key. Write the subject and body using fields from the row, so each email is filled with the sender's own details.
- 5
Fire one more test request. Confirm a row appears in the sheet and the confirmation email arrives from your domain, then activate the scenario.
Skip the build, get the ready-made template
An import-ready file with a setup guide, live in about fifteen minutes.
What can you build with a webhook, a sheet, and SMTP?
Form to receipt
A website form posts to the webhook, the entry is stored in a sheet, and the person gets a branded confirmation from your address within seconds.
Order alert with a record
A checkout or payment provider fires a webhook, the order lands in a reporting sheet, and your fulfilment inbox gets a plain-text alert it can reply to.
Internal notifications from your own server
Any app that can POST triggers a logged row and a notification sent over your SMTP relay, so you avoid a marketing tool's transactional pricing.
The result you get
A closed loop you control end to end: inbound data is captured to a sheet and a confirmation goes out from your own mail server, with no third-party send fees and no manual copy-paste.
Related integrations
Questions about the Google Sheets SMTP webhook setup
Which SMTP providers work here?
Any standard SMTP server. Amazon SES, SendGrid, Mailgun, Brevo, Postmark, Zoho, or your web host's relay all work. You need the host name, the port, a username, and a password or API key.
Port 587 or 465?
Use 587 with STARTTLS for most providers, and 465 when your provider asks for implicit SSL. Both are secure. If a send fails, switching between the two is the first thing to try.
Why not just use a Gmail send action?
SMTP sends from your own domain and server, so you keep your deliverability and avoid Gmail's daily send caps. That makes it the better fit for transactional mail like receipts and confirmations.
Can the email include data from the webhook?
Yes. Every field in the payload is available as a merge value, so the subject and body can include the person's name, their order number, or anything else that arrived in the request.