How to Use Webhooks with Contact Forms on Static HTML Sites

Static HTML websites are fast, lightweight, and easy to deploy — but they come with one major limitation: no built-in backend to process form submissions.
So how do you collect form data from visitors and send it somewhere useful, like your email, CRM, Google Sheets, or Slack?
The answer is simple: webhooks.
In this guide, we’ll show you how to use webhooks with contact forms on static HTML sites, and how to do it without writing server-side code.
What Is a Webhook?
A webhook is a URL that accepts real-time data from your application — in this case, from your form. When someone submits your form, the data is sent (via HTTP POST) to a webhook endpoint, which can then process or forward it to another service.
Think of it as a triggered HTTP request that sends data to another app — no backend needed on your end.
Why Use Webhooks on Static Sites?
If your website is built with just HTML, CSS, and JavaScript — hosted on platforms like GitHub Pages, Netlify, or Vercel — you can’t run PHP or Node.js code to handle form submissions.
Webhooks solve this problem. They let you:
✅ Send data to Google Sheets, CRMs, or Slack
✅ Trigger emails or notifications
✅ Automate lead capture
✅ Avoid server-side hosting
Best of all, you can do this without building or deploying your own API.
The No-Code Way: Use ContactFormToAPI
ContactFormToAPI is the easiest way to connect a contact form on a static site to any webhook or API endpoint — no backend, no code, no hassle.
Key Benefits:
Works with any HTML form
No server or plugins required
Supports JSON, URL-encoded, and custom payloads
Integrates with Google Sheets, HubSpot, Airtable, Salesforce, and more
GDPR-compliant and secure
How to Use Webhooks with a Static HTML Contact Form (Step-by-Step)
Step 1: Create Your Contact Form
Here’s a simple HTML form:
<form action="https://your-webhook-url" method="POST">
<label>Name:</label>
<input type="text" name="name" required>
<label>Email:</label>
<input type="email" name="email" required>
<label>Message:</label>
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>
The action attribute should point to your webhook URL — which we'll get in the next step.
Step 2: Set Up Your Webhook Using ContactFormToAPI
Sign up for a free account
Click “Add New Form”
Set your destination — e.g., Google Sheets, Slack, HubSpot, etc.
Map form fields (e.g., name, email, message) to their API counterparts
Choose the format (JSON or form-urlencoded)
Save and copy your unique webhook URL
Step 3: Replace the Form Action
Update your form’s action with the webhook URL from ContactFormToAPI:
<form action="https://your-webhook.contactformtoapi.com/xyz123" method="POST">
...
</form>
That’s it! Now, every submission will be automatically sent to your API endpoint.
Optional: Redirect After Submission
Want to show a thank-you message or redirect users after they submit the form?
Use JavaScript like this:
<script>
document.querySelector("form").addEventListener("submit", function(e) {
e.preventDefault();
fetch(this.action, {
method: "POST",
body: new FormData(this)
}).then(response => {
if (response.ok) {
window.location.href = "/thank-you.html";
} else {
alert("Submission failed.");
}
});
});
</script>
Is It Secure?
Yes — as long as:
You use HTTPS for the webhook
You avoid exposing sensitive API keys in HTML
You use a trusted platform like ContactFormToAPI
The service supports secure headers, field validation, and GDPR compliance.
Use Cases
Personal portfolios – Send messages to Gmail or Slack
Landing pages – Capture leads into your CRM
Event registration – Store RSVPs in Google Sheets
Startup MVPs – Save data without writing backend code
Pro Tip
You can even use webhooks to chain automations with Make (formerly Integromat), Zapier, or Pabbly — no technical skills needed.
Final Thoughts
Using webhooks with contact forms on static HTML sites is not only possible — it’s incredibly easy with the right tools. With platforms like ContactFormToAPI, you can turn a basic form into a powerful data pipeline, no coding or backend required.
So if you’re building a site on Netlify, GitHub Pages, or any static host, don’t let the lack of a backend stop you from collecting data.
Subscribe to my newsletter
Read articles from steve jacob directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
