On this page

Too long? Read this
- WPForms can post each submission to a webhook; VGraple CRM turns it into a contact, a lead and a WhatsApp follow-up template in seconds
- Three routes: the plugin's webhook to Zapier, Make, Pabbly or n8n; a direct server-side call to the REST API; or replacing the form with VGraple CRM's native form
- The follow-up must be an approved utility template because the visitor has not messaged you yet; an acknowledgement costs Rs 0.115 and usually earns a reply that opens a free window
- Field mapping, consent wording, spam filtering, testing steps and the WhatsApp alert to your own team
A WPForms submission usually becomes an email that someone reads an hour later. Connected to WhatsApp, it becomes three things within seconds: a contact and a lead in your CRM with every answer attached, an alert to the right salesperson's phone, and an approved WhatsApp message to the visitor acknowledging what they asked for, which earns a reply and opens a free conversation. This guide shows the three ways to build it with WPForms, the field mapping, the consent wording, and how to test it.
What you are building
| Step | What happens | Where |
|---|---|---|
| 1 | Visitor submits the WPForms form with name, phone, email, what they need, and a WhatsApp consent box | Your WordPress site |
| 2 | WPForms posts the submission as JSON to a webhook URL | The WPForms Webhooks add-on (Elite licence) under the form's Settings, then Webhooks, with method POST and format JSON |
| 3 | The automation layer maps fields and calls VGraple CRM | Zapier, Make, Pabbly, n8n, or your own code calling the REST API |
| 4 | Create or Update Contact (upsert by phone), Create Lead in a pipeline, Send Template Message | VGraple CRM |
| 5 | The visitor receives a utility acknowledgement; the assigned salesperson gets a push notification; the reply lands in the inbox | WhatsApp and VGraple CRM |
Route one: WPForms webhook to Zapier
- In VGraple CRM, go to Settings, then API Keys, create a key named "Zapier" and copy it (Owner only).
- In Zapier, create a Zap with the Webhooks by Zapier trigger (Catch Hook) and copy its URL. In WPForms, open the form's Settings, then Webhooks, add a webhook, paste the URL, choose POST and JSON, and map the fields to keys.
- Submit a test entry so Zapier catches a sample.
- Add a Formatter step to put the phone into international format: remove spaces, remove a leading zero, prepend the country code if the form did not collect it.
- Add the VGraple CRM Create or Update Contact action: phone, name, email, tags (for example "website-form"), consent fields mapped from the checkbox.
- Add Create Lead: pipeline "Website", the service or subject as a custom field, source and campaign from hidden fields.
- Add Send Template Message: choose the approved utility template (for example form_received) and map name and subject to its variables.
- Test each step, then turn the Zap on.

Route two: webhook to Make, Pabbly or n8n
The same shape with a different middle: the plugin posts to a Custom webhook (Make), a Webhook trigger (Pabbly) or a Webhook node (n8n); an HTTP module calls POST https://crm.vgraple.co.in/api/v1/contacts, POST /api/v1/leads and POST /api/v1/messages with Authorization: Bearer <key>. This costs less per submission at volume and gives full control of the payload. The REST API quickstart has the request bodies.
Route three: direct from WordPress
A small server-side snippet in a child theme or a custom plugin can call the REST API on the plugin's submission hook, with no automation platform at all. Keep the API key in wp-config, not in the theme, and send the phone in international format. A sample payload for the contact call:
{
"phone": "{{field_phone}}",
"name": "{{field_name}}",
"email": "{{field_email}}",
"tags": ["website-form", "wpforms"],
"consent_marketing": "{{field_consent}}"
}
Field mapping
| WPForms field | VGraple CRM field | Notes |
|---|---|---|
| Name | Contact name | Split first and last if the form separates them |
| Phone | Contact phone | International format, no spaces or leading zero |
| Contact email | Matches web chat and email records | |
| Service or subject | Lead custom field | Create the field in VGraple CRM first |
| Message | Lead note | Visible to the assigned salesperson |
| WhatsApp consent checkbox | Marketing consent, source "WPForms form" | Marketing later only if true |
| Hidden utm_source, utm_campaign, page URL | Lead source and campaign | Feeds source reports |
The follow-up template
The visitor has not messaged your number, so the first message must be an approved template. An acknowledgement about their own submission is utility (Rs 0.115 in India): "Hi {{1}}, thanks for your enquiry about {{2}}. Reply here with any questions, or tap Book to pick a time." with a quick reply button. Most visitors reply, which opens a free 24-hour window for the real conversation. Do not put an offer in it; that makes it marketing and requires consent the form may not have collected.
Consent wording that holds up
An unticked checkbox: "Send me updates and occasional offers on WhatsApp at this number. Reply STOP any time." Record the value with the submission. Without the box, the acknowledgement about the enquiry is still fine; marketing later is not. The opt-in rules guide covers the detail.
Alerting your own team
Creating the lead is the alert: the assignment rule for the Website pipeline assigns a salesperson, who gets a push notification on the Android app with the lead's details and the conversation a tap away. For a shared channel, add a Slack step to the Zap or a template to a team number.
Testing
- Submit the form with your own number and a country code.
- Check the contact and the lead in VGraple CRM: fields, source, consent.
- Check the WhatsApp message on your phone and reply to it; the reply should land in the inbox under the lead.
- Submit with a phone missing the country code and confirm the Formatter fixes it, or the form rejects it.
- Turn the workflow on and watch the first day's runs.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| No webhook arrives | The plugin's webhook is not enabled for this form, or the URL is wrong | Re-check the form's webhook settings and resubmit |
| Contact created, no WhatsApp message | Phone not in international format, or the template is not approved | Fix the Formatter; check template status |
| Message failed with 131026 | The number is not on WhatsApp | Expected for wrong numbers; the contact is marked |
| Lead in the wrong pipeline | No pipeline chosen in the Create Lead step | Pick it explicitly |
| Duplicate contacts | Phone formats differ between submissions | Normalise before the upsert |
WPForms is one of five WordPress form plugins covered the same way; the WordPress forms help article collects them, and the forms feature page shows the native alternative that skips the middle layer.