Skip to main content
Exclusive Discount Deal
upto-55%-off
Offer ends in:
00

days day

00

hours hour

00

Mins Min

00

Secs Sec

Claim Your Deal

WPForms Salesforce Integration for Free: Send Form Entries to Salesforce Without Elite

blog author logo
Ashraf Sadeque
Reviewed By:
Onie Dutta
16-Sep-2026
Reading Time: 10 mins
WPForms Salesforce Integration for Free: Send Form Entries to Salesforce Without Elite

WPForms ships a native Salesforce add-on, but it sits behind the Elite license. On Lite, Basic, Plus, or Pro, the Salesforce option is simply not in the builder.

There is another affordable solution named Bit Integrations. Using the Bit Integrations automation plugin, you can connect WPForms to Salesforce even with the free version. Bit Integrations treats a WPForms submission as a trigger and a Salesforce record as the action.

Both halves are in the free version, so the WPForms to Salesforce connection works on any WPForms plan, Lite included.

Here is the relationship in one sentence: WPForms captures the submission, Bit Integrations reads the mapped fields and calls the Salesforce REST API from your own WordPress site, and Salesforce creates the record.

No automation subscription sits in the middle, and the form data does not pass through a third-party cloud.

This guide covers the full setup, from installing the plugin to watching the first record land in Salesforce, then the configuration details and errors that catch people out.

TL;DR 

WPForms locks its native Salesforce add-on to the Elite plan. Bit Integrations connects the two on any WPForms plan, including Lite, because the WPForms trigger and the Salesforce action are both in the free version.

  • What you need: a Salesforce org with API access, plus a Client ID and Client Secret from an app you create in Salesforce Setup.
  • Setup path: WPForms as the trigger, your form, Salesforce as the action, authorize, pick a record type, map the fields.
  • Records you can create: contact, lead, account, campaign, campaign member, task, opportunity, event, case.
  • Result: each submission creates a new Salesforce record. Conditional logic controls which ones get sent.

What you need before you start

Two systems have to be ready before the plugin can do anything. Most failed setups trace back to something missing on this list rather than to a wrong click later on.

On the WordPress side

  • WPForms installed with at least one published form. Any version works, Lite included.
  • Bit Integrations installed and activated. The WPForms trigger is available in the free version, so you don’t need a paid licence to follow along.
  • Your site is loading over HTTPS. The Salesforce authorization sends the user back to a callback URL on your domain, and Salesforce will not redirect to an insecure one.
  • Administrator access to the WordPress dashboard. 

On the Salesforce side

  • A Salesforce org with API access enabled.
  • Permission to create an app in Salesforce Setup, which is where the Client ID and Client Secret come from.
  • A clear idea of which object the form should write to. Contact and lead behave very differently once the record exists, and switching later means rebuilding the field map.
Check API access before anything else
API access is enabled by default in Enterprise, Performance, Unlimited, and Developer edition orgs. Professional Edition can add API access as a paid add-on. Group and Essentials orgs cannot.

If the org has no API access, every integration that writes through the REST API fails with API_DISABLED_FOR_ORG, and that includes the native WPForms add-on. This is the one requirement no plugin can work around, so confirm it first.

How to Create WPForms Salesforce Integration with Bit Integrations

Here is the complete setup. Each step has a screenshot, so you can check your screen against the one below it.

Step 1. Install and activate the Bit Integrations plugin.

In your WordPress dashboard, go to Plugins, then Add New, and search for Bit Integrations. Install it, then click Activate. The free version is all you need for this workflow.

Step 2. Click Create Integration

Open Bit Integrations from the WordPress menu and click the Create Integration button. This starts the two-part setup: first the trigger, then the action.

Step 3. Search for WPForms and select it as your trigger.

You land on the trigger selection screen. Type WPForms into the search box and click the WPForms card. Cards marked Pro need a license, but WPForms is not one of them.

Step 4. Choose the form you want to connect.

Pick the form whose entries should reach Salesforce from the Select a Form dropdown, then click Next. If you run several forms, build a separate integration for each one rather than trying to cover them all with a single setup.

Step 5. Search for Salesforce and select it as your action.

You are now on the action screen. Search for Salesforce and click the card. The action is the destination, which is where your form data ends up.

Step 6. Authorize your Salesforce account.

Give the integration a name you will recognise later, then click Add new connection. The screen shows a Homepage URL and a Callback URL generated for your site, plus empty Client ID and Client Secret fields.

Copy the Callback URL into the app you create in Salesforce, then paste the app credentials back here. Salesforce calls them Consumer Key and Consumer Secret; the plugin calls them Client ID and Client Secret. They are the same two values.

To create a Salesforce Client ID and Client Secret, follow our Salesforce integration documentation, which walks through the app setup screen by screen, including the OAuth scopes and the settings that keep the connection alive.

Click Authorize. Salesforce asks you to allow access, then returns you to the plugin. Once the connection name appears in the Salesforce Connections dropdown, the credentials are stored, and the Next button becomes available.

If authorization fails on the first attempt

Salesforce takes up to ten minutes to publish a newly created app. If the authorization is rejected right after you create it, wait and try again before changing anything.

The Callback URL in Salesforce has to match the one shown in the plugin character for character, trailing slash included.

Step 7. Choose the Salesforce action event.

Open the Action dropdown and pick the record you want each submission to create. The available events are:

  • Create Contact
  • Create Lead
  • Create Account
  • Create Campaign
  • Add Campaign Member
  • Create Task
  • Create Opportunity
  • Create Event
  • Create Case

Choose based on what the form actually is. The next section covers how to decide if you are unsure.

Step 8. Map your WPForms fields to Salesforce fields.

Once the action is selected, the field map appears. WPForms fields sit on the left, and Salesforce fields on the right. Pair them up and use the plus icon to add more rows.

The first row is the field Salesforce requires for that record type, and it cannot be removed. For a contact, that is, Last Name. In the example below, First Name, Last Name, Email, and Comment or Message from a contact form are mapped to their matching Salesforce fields.

Utilities change with the record type

Below the field map is a utilities row. Which options appear depends on the action you picked, which surprises people who set up one integration and expect the next to look the same.

On Create Contact, you get Update Record, which needs the Pro version, and Record Owner, which does not. Record Owner assigns the new record to a specific Salesforce user instead of the default owner.

On Create Lead, the same row carries more options: Update Record, Lead Source, Lead Status, Rating, and Industry all require Pro, while Record Owner stays available on the free version.

Add conditional logic if only some entries should go through.

Switch on Conditional Logic and build a rule if you want to filter submissions, such as sending an entry to Salesforce only when a dropdown matches a certain value. Leave it off, and every submission goes through. Conditional logic is available on the free version.

Click Next to save and finish the integration.

Step 9. Send a test submission.

Do not skip this. Fill in your form on the front end and submit it, then open the matching tab in Salesforce. The entry should appear as a new record with each mapped field in place.

Then check the integration timeline in the plugin. Every run is listed with a status and the API response. A working integration shows a success status and the created record.

If a run fails, the response names the cause, and the re-execute button sends it again once you have fixed it.

Which Salesforce record should your form create?

This is the decision that matters most, and it is easy to get wrong because contact and lead look interchangeable from the WordPress side. They are not. A lead lives in the pipeline until someone qualifies and converts it. 

A contact is already attached to an account and belongs in the customer record. Picking the wrong one puts your form entries in a part of Salesforce nobody on the team is watching.

If the form isCreate this record
A general inquiry or contact form from someone already in your worldCreate Contact
A quote, demo, or pricing request from a new prospectCreate Lead
A support request or complaintCreate Case
A webinar or event signup tied to a campaign you already builtAdd Campaign Member
A deal registration or partner form with a known close dateCreate Opportunity
A callback request or consultation bookingCreate Task or Create Event
A business signup where the organization is the record, not the personCreate Account

Required fields by record type

Each record type has fields Salesforce will not accept a record without. The plugin marks them and locks them into the first mapping rows. Check this list against your form before you start, because a missing required field is the single most common reason a run fails.

Salesforce actionFields marked as required
Create ContactLast Name
Create LeadLast Name, Email, Company
Create AccountAccount Name
Create CampaignName
Create OpportunityName, Close Date
Create EventStart Date, End Date
Create CaseName
Create Task, Add Campaign MemberField list loads from your org once the action is selected
The Company field is required on Create Lead 

Create Lead requires Company, and a standard WPForms contact form does not collect it. Every submission will be rejected until that field exists on the mapping.

Two ways out: add a Company field to the form, or map a static value so every lead arrives under the same placeholder company name and gets corrected during qualification. Neither is wrong, but decide before you launch rather than after the first failed entry.

Configuration details worth knowing

A handful of behaviors are worth understanding up front. None of them are difficult, but each one has caught someone out.

Dates have to be ISO 8601

Salesforce expects dates as YYYY-MM-DD and datetimes as YYYY-MM-DDThh:mm:ssZ, where Z means UTC. A WPForms date field set to the default m/d/Y format will be rejected by any date field on the Salesforce side, which affects Create Opportunity and Create Event in particular. Change the format on the form field rather than trying to fix it in the mapping.

Every submission creates a new record on the free version.

The integration creates rather than updates. If the same person submits twice, Salesforce gets two records. The Update Record utility, which matches an existing record instead, requires the Pro version. If deduplication matters to your workflow, plan for it now rather than discovering the duplicates in a report three weeks later.

One form can feed several destinations.

The same WPForms form can act as the trigger for more than one integration, so a single submission can create a Salesforce record and also reach a spreadsheet or an email tool. Each destination is its own integration built on the same trigger, which is also how free WPForms email marketing integrations are set up alongside a CRM.

Failure alerts have to be enabled before you create the integration.

Bit Integrations can email you when a run fails, but the setting has to be switched on beforehand. It cannot be applied retroactively to an integration that already exists. On a form that generates real leads, turn it on from Settings. 

The integration runs synchronously.

Because the API call happens on the same request as the submission, a slow response from Salesforce is felt at submit time. On a high-traffic form, keep the field map lean and map only what you actually need in the CRM.

Wrapping up

Once WPForms is set as a trigger, Salesforce does not have to be the end of it. The same submission can feed a spreadsheet, an email platform, or a project tool through additional integrations on the same form.

There is a broader walkthrough on automating WPForms entries if you want to build on this one.

If you are still weighing which CRM to point your forms at, the overview of WPForms CRM integration options compares the routes across plans, and the wider WPForms integrations guide covers what else a form submission can reach.


You may ask this question

Can WPForms Lite send data to Salesforce?

Not on its own. The native Salesforce add-on is an Elite feature, and Lite includes no CRM add-ons. Bit Integrations plugin can still do it, because it reads the submission through WordPress rather than relying on an add-on tied to your WPForms licence.

Which WPForms plan includes the Salesforce add-on?

The Elite plan. Salesforce is not part of Basic, Plus, or Pro. The add-on also requires the site to load over HTTPS and the Salesforce org to support API access.

Do I need Zapier to connect WPForms to Salesforce?

No. A one-step handoff from a form to a CRM record does not need a cloud automation platform. Those make sense when a workflow needs branching, delays, lookups, or several applications chained together.

Does the integration create a lead or a contact?

Whichever you choose. The action dropdown offers contact, lead, account, campaign, campaign member, task, opportunity, event, and case. One integration creates one record type, so use two integrations if a submission should produce two records.

Do I have to create an app inside Salesforce myself?

Yes. Salesforce issues API credentials per app, so you create one in Setup and copy its Consumer Key and Consumer Secret into the plugin as the Client ID and Client Secret. This is true of the native WPForms add-on as well, so it is not extra work created by the plugin route.

Which Salesforce editions work with this?

Any edition with API access. It is enabled by default in Enterprise, Performance, Unlimited, and Developer editions. Professional Edition can be bought as an add-on. Without API access, no integration can write records, regardless of which plugin you use.

Does my form data pass through a third-party server?

No. Bit Integrations runs on your WordPress site and calls the Salesforce API directly from it. There is no intermediate service holding the submission.

Can one submission go to Salesforce and somewhere else at the same time?

Yes. The same form can trigger more than one integration, so a single entry can create a Salesforce record and also reach a spreadsheet, an email list, or a messaging tool. But you will need to create separate integrations for each platform.

Why do I keep seeing sessions expired or invalid?

The connected app was created without the scope that allows requests at any time, so no refresh token exists to renew the session. Add that scope, set the refresh token policy to valid until revoked, and relax the IP restrictions on the app.

Can I send only some submissions to Salesforce?

Yes. Turn on conditional logic during setup and build a rule, such as sending an entry only when a dropdown matches a chosen value. It is available on the free version.

Ashraf-Sadeque
Written by
Ashraf Sadeque
A WordPress content writer who enjoys creating simple, engaging content and guiding users on WordPress automation to make their workflow easier and more efficient.

Related Blog

Bit Integrations footer logo
Connect WordPress to Every Tool You Already Use
logo list