Website Contact Forms logo

Website Contact Forms

WebhookLead sourceIncluded on Pro

Works with any custom-built website or landing page — React, Next.js, plain HTML, or any framework. Your form sends a JSON POST to Cratio, and every submission becomes a lead in real time. No plugin, no middleware.

What you can do

No plugin, no Zapier — send directly from your form to Cratio

A single fetch call in your form handler is all it takes. No third-party service sits in between.

Real-time delivery the moment a form is submitted

Cratio receives the POST and creates the lead instantly. No polling, no batch imports.

Works with any custom website, landing page, or framework

React, Next.js, Vue, plain HTML — if it can make an HTTP request, it works with Cratio.

Full control over what fields are sent and how they're named

You define the JSON payload. Map any field name to the corresponding CRM field in Cratio.

How it works

1

Create a webhook in Cratio

Cratio gives you a webhook URL — this is the endpoint your form will POST data to.

2

Add a POST request to your form handler

In your form's submit handler, send the form data as JSON to the Cratio webhook URL. Server-side is recommended for production.

3

Every submission becomes a lead

Cratio receives the POST, maps the fields to your CRM fields, and creates a lead in real time.

How to set it up

Takes about 5 minutes. No code required.

1

Create a webhook in Cratio

Go to Settings → Integrations → Webhooks. Click + New Webhook, choose Website Contact Form as the source, and copy the webhook URL.

2

Add the POST request — JavaScript

In your form's submit handler, add:

JavaScript (fetch)
fetch('YOUR_WEBHOOK_URL', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    name: formData.name,
    email: formData.email,
    phone: formData.phone,
    message: formData.message,
    source: 'Website Contact Form'
  })
});
3

Or test with cURL

Run this from your terminal to verify the webhook is working:

cURL
curl -X POST YOUR_WEBHOOK_URL \
  -H "Content-Type: application/json" \
  -d '{"name":"Test User","email":"test@example.com","phone":"+919876543210","message":"Test enquiry"}'
4

Test and check logs

Submit your form or run the cURL command. Check the webhook logs in Cratio.

5

Map fields

In Cratio, match your form field names (e.g., phone, contact_number) to CRM fields. Any unmapped fields go to Notes automatically.

Fields synced

How Website Contact Forms fields map to your Cratio CRM fields.

Website Contact Forms fieldCratio CRM field
name
Name
email
Email
phone
Phone
company
Company
city
City
message
Notes

Any unmapped or custom fields are saved to the lead's Notes automatically — no data is lost.

Frequently asked questions

Troubleshooting

Common issues and how to fix them.

CORS errors in browser
Send the POST from your server-side form handler, not directly from the browser.
Leads not appearing in Cratio
Check the webhook logs in Cratio for the raw payload. Confirm the request headers include Content-Type: application/json.
Wrong field names
Use the field mapping screen in Cratio to remap custom field names to the correct CRM fields.

Related integrations

View all integrations
Google Forms logo
Webhook

Google Forms

Lead source

Turn Google Form submissions into CRM leads automatically.

Set up
WordPress logo
Webhook

WordPress

Lead source

Sync leads from WPForms, CF7, Gravity Forms, and more.

Set up
Zapier logo
No-code

Zapier

Automation

Connect Cratio with 6,000+ apps — no code required.

Set up

Never miss a
sales lead again.

Automate. Track. Close. One platform, three capabilities. Pay after go-live.

Book a demo