WordPress Forms CRM Integration
Connect your WordPress form plugins to SkunkCRM to automatically capture leads and create contacts from every form submission. This guide covers Gravity Forms, Contact Form 7, WPForms, Fluent Forms, and more — most integrations take under five minutes to set up.
Why Connect WordPress Forms to Your CRM?
When a visitor fills out your contact form or lead gen form, that data needs to land somewhere useful. Without a CRM integration, form submissions sit in your inbox — easy to lose, impossible to action at scale.
Connecting your WordPress forms to SkunkCRM means:
- Every form submission becomes a CRM contact automatically — no manual entry
- Leads are captured instantly, with source tracking so you know which form they came from
- Follow-up automations can trigger immediately based on what the contact submitted
- No lead falls through the cracks, even during high-volume periods
This is the most common first automation WordPress site owners set up in SkunkCRM — and the one with the most immediate ROI.
Gravity Forms
Gravity Forms has excellent webhook support, making it the easiest WordPress form plugin to connect to SkunkCRM.
Setup Steps
-
Create Webhook Token in SkunkCRM:
- Go to SkunkCRM → Webhooks
- In the Incoming Webhook Tokens section, click "Create Token"
- Name it "Gravity Forms Integration"
- Copy the complete webhook URL provided
-
Install Webhooks Add-On (if not already installed):
- In WordPress admin, go to Forms → Add-Ons
- Install and activate the Webhooks Add-On
-
Configure Webhook in Form:
- Edit your Gravity Form
- Go to Settings → Webhooks
- Click "Add New"
- Name: "SkunkCRM Integration"
- Request URL:
https://yoursite.com/wp-json/skunkcrm/v1/webhook/{your-token} - Request Method: POST
- Request Format: JSON
-
Configure Request Body (in the webhook settings):
- In the Request Body field, paste this JSON structure
- Replace the field IDs (
{Name:1},{Email:2}, etc.) with your actual form field IDs
{ "action": "create_contact", "data": { "name": "{Name (First):1.3} {Name (Last):1.6}", "email": "{Email:2}", "phone": "{Phone:3}", "company": "{Company:4}", "message": "{Message:5}", "source": "gravity_forms", "form_source": "{form_title}" } } -
Find Your Field IDs:
- Go back to your form editor
- Click on each field to see its Field ID in the settings panel
- For Name fields:
{Name (First):1.3}means Field ID 1, input 3 (first name) - For simple fields:
{Email:2}means Field ID 2 - Update the JSON above with your actual field IDs
How to Find Gravity Forms Field IDs
- Edit your Gravity Form
- Click on any form field (like Name, Email, etc.)
- Look in the right sidebar — you'll see "Field ID"
- Note the Field ID number (like 1, 2, 3, etc.)
For complex fields (like Name):
- Name field might be Field ID
1 - First Name =
{Name (First):1.3} - Last Name =
{Name (Last):1.6}
For simple fields:
- Email field with ID
2={Email:2} - Phone field with ID
3={Phone:3}
Field Mapping Examples
Example Form with these Field IDs:
- Name Field (ID: 1) →
{Name (First):1.3} {Name (Last):1.6} - Email Field (ID: 2) →
{Email:2} - Phone Field (ID: 3) →
{Phone:3} - Company Field (ID: 4) →
{Company:4} - Message Field (ID: 5) →
{Message:5}
Your JSON would look like:
{ "action": "create_contact", "data": { "name": "{Name (First):1.3} {Name (Last):1.6}", "email": "{Email:2}", "phone": "{Phone:3}", "company": "{Company:4}", "message": "{Message:5}", "source": "gravity_forms" } }
Testing
- Submit a test form entry
- Check SkunkCRM → Webhooks and click "View Logs" on your webhook for delivery status
- Verify new contact appears in SkunkCRM → Contacts
Contact Form 7
Contact Form 7 doesn't have built-in webhook support, but you can integrate it with SkunkCRM using WordPress action hooks — no extra plugins required.
Setup with Action Hooks
Add this code to your theme's functions.php:
// Contact Form 7 to SkunkCRM Integration add_action('wpcf7_mail_sent', function($contact_form) { $submission = WPCF7_Submission::get_instance(); if ($submission) { $posted_data = $submission->get_posted_data(); // Map CF7 fields to SkunkCRM contact data $contact_data = array( 'name' => $posted_data['your-name'] ?? '', 'email' => $posted_data['your-email'] ?? '', 'phone' => $posted_data['your-phone'] ?? '', 'company' => $posted_data['your-company'] ?? '', 'message' => $posted_data['your-message'] ?? '', 'source' => 'contact_form_7', 'form_source' => $contact_form->title() ); // Create contact via SkunkCRM API if (function_exists('skunkcrm_create_contact')) { skunkcrm_create_contact($contact_data); } } });
Alternative: Webhook with Third-Party Plugin
If you prefer webhooks, install a CF7 webhook plugin:
-
Install Plugin: Search for "Contact Form 7 Webhook" in WordPress plugins
-
Configure Webhook:
- URL:
https://yoursite.com/wp-json/skunkcrm/v1/webhook/{your-token} - Method: POST
- Format: JSON
- URL:
-
Field Mapping:
{ "form_submission": { "name": "[your-name]", "email": "[your-email]", "phone": "[your-phone]", "message": "[your-message]", "form_source": "contact_form_7" } }
WPForms
WPForms Lite doesn't include webhook support, but WPForms Pro does. If you're on Lite, use the action hook method below.
WPForms Pro Setup
-
Create Webhook in form settings:
- Edit your WPForm
- Go to Settings → Webhooks
- Webhook URL:
https://yoursite.com/wp-json/skunkcrm/v1/webhook/{your-token} - Request Method: POST
-
Configure Data Format:
{ "contact": { "name": "{field_id=\"1\"}", "email": "{field_id=\"2\"}", "phone": "{field_id=\"3\"}", "company": "{field_id=\"4\"}", "message": "{field_id=\"5\"}", "source": "wpforms" } }
WPForms Lite Alternative
For WPForms Lite, use WordPress action hooks to send form data directly to SkunkCRM:
// WPForms to SkunkCRM Integration add_action('wpforms_process_complete', function($fields, $entry, $form_data) { $contact_data = array( 'name' => $fields[1]['value'] ?? '', // Adjust field IDs 'email' => $fields[2]['value'] ?? '', 'phone' => $fields[3]['value'] ?? '', 'company' => $fields[4]['value'] ?? '', 'message' => $fields[5]['value'] ?? '', 'source' => 'wpforms', 'form_source' => $form_data['settings']['form_title'] ); if (function_exists('skunkcrm_create_contact')) { skunkcrm_create_contact($contact_data); } }, 10, 3);
Ninja Forms
Ninja Forms has webhook capabilities in the premium version.
Setup Steps
-
Install Webhooks Add-on (Premium feature)
-
Configure Webhook:
- Edit your Ninja Form
- Add Webhook action
- URL:
https://yoursite.com/wp-json/skunkcrm/v1/webhook/{your-token} - Method: POST
-
Field Mapping:
{ "contact": { "name": "{field:name}", "email": "{field:email}", "phone": "{field:phone}", "company": "{field:company}", "message": "{field:message}", "source": "ninja_forms" } }
Formidable Forms
Formidable Forms Pro includes webhook functionality for sending form submissions to external services like SkunkCRM.
Configuration
-
Create Form Action:
- Edit your form
- Go to Settings → Form Actions
- Add Webhook action
-
Webhook Settings:
- URL:
https://yoursite.com/wp-json/skunkcrm/v1/webhook/{your-token} - Method: POST
- Format: JSON
- URL:
-
Data Mapping:
{ "form_submission": { "name": "[name]", "email": "[email]", "phone": "[phone]", "company": "[company]", "message": "[message]", "form_source": "formidable_forms" } }
Elementor Pro Forms
Elementor Pro includes native webhook actions — no extra plugins needed.
Setup Process
-
Edit Form Widget in Elementor:
- Select your form
- Go to Actions After Submit
- Add Webhook action
-
Webhook Configuration:
- Webhook URL:
https://yoursite.com/wp-json/skunkcrm/v1/webhook/{your-token} - Request Method: POST
- Webhook URL:
-
Field Mapping: Elementor automatically maps form fields. Ensure your form has fields named:
nameorfull_nameemailphone(optional)company(optional)message(optional)
Fluent Forms
Fluent Forms includes webhook integrations in its free and pro versions.
Configuration Steps
-
Edit Form → Settings → Integrations
-
Add Webhook Integration:
- Name: "SkunkCRM Integration"
- Webhook URL:
https://yoursite.com/wp-json/skunkcrm/v1/webhook/{your-token} - Method: POST
-
Data Format:
{ "contact": { "name": "{inputs.name}", "email": "{inputs.email}", "phone": "{inputs.phone}", "company": "{inputs.company}", "message": "{inputs.message}", "source": "fluent_forms" } }
Troubleshooting Common Issues
Forms Not Creating Contacts
- Check webhook logs in SkunkCRM admin
- Verify field mapping — ensure field names match
- Test webhook manually with curl
- Check form submission — ensure form actually submits
Duplicate Contacts
- Email deduplication — SkunkCRM can automatically prevent email duplicates
- Configure matching rules in SkunkCRM settings
- Use update actions instead of create actions
Missing Form Data
- Review field mapping — check that all form fields are mapped correctly
- Test with simple form — start with name and email only
- Check data types — ensure data formats match expected types
Best Practices
Form Design
- Keep forms simple — only ask for essential information
- Use clear labels — make field purposes obvious
- Add privacy notice — inform users about data usage
Data Quality
- Validate emails — use form validation to ensure valid email addresses
- Required fields — make essential fields (name/email) required
- Sanitize input — forms should sanitize user input
CRM Contact Management
- Use source tracking — pass
form_sourceto identify which form captured each lead - Tag by form type — use SkunkCRM automations to auto-tag contacts based on form source
- Set up follow-up sequences — trigger automated follow-ups the moment a contact is created from a form
Frequently Asked Questions
How do I connect a WordPress form to SkunkCRM?
The quickest method is via webhook. In SkunkCRM, go to Webhooks → Create Token to get your webhook URL. Then, in your form plugin's settings, add a webhook action pointing to that URL with your contact data as JSON. Most form plugins (Gravity Forms, WPForms Pro, Fluent Forms) have built-in webhook support. For Contact Form 7, use the action hook method in functions.php.
Does this work with Gravity Forms free or paid?
The Webhooks Add-On for Gravity Forms is a premium feature that requires a Gravity Forms license. If you're on the free version, you'll need to use a third-party webhook plugin or switch to a form plugin with free webhook support (like Fluent Forms).
Can I connect multiple WordPress forms to SkunkCRM?
Yes. You can create separate webhook tokens for each form in SkunkCRM, making it easy to track which form each contact came from. Alternatively, use a single token and pass a form_source field in your payload to differentiate them.
Will form submissions create duplicate contacts?
SkunkCRM checks for existing contacts by email before creating a new one. If a contact with the same email already exists, it will update their record instead of creating a duplicate. You can configure this deduplication behaviour in SkunkCRM settings.
What data can I send from a WordPress form to SkunkCRM?
You can send any field from your form: name, email, phone, company, message, custom fields, or metadata like the form name and page URL. Map fields in your webhook payload using the JSON format shown in each plugin's section above.
Next Steps
- Test your integration — Submit test forms to ensure contacts are being created correctly
- Set up automations — Use SkunkCRM automations to trigger follow-up emails or tasks when a contact is created from a form
- Monitor webhook logs — Check delivery status in SkunkCRM → Webhooks → View Logs
- Explore contact management — Learn how to manage and segment contacts in SkunkCRM
::rest-api-banner::
Need to connect a form plugin not listed here? Check our incoming webhooks guide for general webhook setup instructions.