Integrating Formulayt with Pardot
Formulayt forms can send submissions to Pardot via HTTPS POST to capture user data within your Pardot instance. Additionally, Formulayt can retrieve contact information for form pre-population using the Pardot tracking cookie and API.
Form Submission Capture
Basic Setup
Create a Pardot form handler to capture data from Formulayt form submissions:
Typically, only a single Pardot form handler is needed
Include all possible fields from all Formulayt form types, including hidden fields
Disable validation on all fields (validation rules can cause silent submission failures)
Ensure all Formulayt field names match the HTML names of receiving fields on your Pardot forms
Add the Pardot form submission URL in the Formulayt Apps area
Multiple Form Handlers
If you plan to use multiple form handlers:
Use the URL override functionality within the Formulayt form type editor
This controls which Pardot form each Formulayt form type will send submissions to
Note that Formulayt gates can only submit to one Pardot form at a time
Pre-Population Data Setup
Contact data can be retrieved from your Pardot account via the Pardot API (V4) to pre-populate Formulayt forms. This requires creating an External Client App within your Salesforce account.
Creating an External Client App
You will need to have Salesforce admin access to follow these steps:
Go to the Gear Icon > Setup.
Type in "External Client App Manager" in the settings search bar and select "External Client App Manager".
Select "New External Client App".
Name the app "Formulayt", and enter the Contact Email as "development@formulayt.com".
The "API Name" should auto-populate when you provide an app name.
Expand the API section and check the "Enable OAuth" box.
Retrieve your dedicated Callback URL from the Formulayt platform and enter this in the Callback URL box
To find your Callback URL, within Formulayt navigate to Apps > Pardot. Note that each Pardot connection you create within Formulayt uses a dedicated URL. Keep this page open within Formulayt so you can paste in the Client ID and Key later.
Add the following OAuth scopes into the list of Selected OAuth scopes:
Manage Pardot services (pardot_api)
Perform requests at any time (refresh_token, offline_access)
In the Flow Enablement section, check "Enable Authorization Code and Credentials Flow
In the Security section, leave “Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows” enabled. In Formulayt, keep “Use PKCE for OAuth?” enabled. The Salesforce and Formulayt settings must match. Only disable PKCE when reconnecting a legacy External Client App that was deliberately configured without it.
Click "Save".
On the app’s Manage Policies page, set Refresh Token Policy to “Expire refresh token if not used for” and enter 30 days. Do not select “Refresh token is valid until revoked”. If Salesforce issues a replacement refresh token during authentication, Formulayt saves it automatically. A connection that is unused for more than 30 days can still expire and must then be reconnected in Formulayt.
Retrieve the consumer key and consumer secret for the app. These can be found in the Settings tab > OAuth settings > Consumer Key and Secret
Retrieving the Pardot Business Unit ID
Go to the Gear Icon > Setup
Type "Business Unit Setup" in the settings search bar and select "Business Unit Setup"
Record the business unit ID(s) for the business unit you plan to integrate with
Note: Business unit IDs are always 18 characters long
Additional Information Needed
Your Pardot account ID (you can find this in a Pardot Form Handler URL and is a 4-7 digit number)
Salesforce User Credentials with Pardot login rights and API permissions:
This user needs a "Salesforce Integration" user licence and an assigned profile of "Minimum Access - API Only Integrations”.
You should also create a user in Pardot with the same email address that is set to sync with Salesforce (CRM). That user should have read access rights to Prospects, Visitors and Prospect Accounts in Pardot.
You will grant permission for Formulayt to access your Pardot instance via OAuth using this user account in the next step.
See the section below for full steps.
Set up the Account Engagement integration user
First, follow "Create a Salesforce integration user for Formulayt": https://support.gatedcontent.com/en/articles/16642898-create-a-salesforce-integration-user-for-formulayt
The user used to authorise Formulayt must also be configured as an Account Engagement user. Salesforce requires the API user to be SSO-enabled and to have access to the relevant Account Engagement business unit.
Create an Account Engagement role
1. Navigate to Account Engagement → Account Engagement Settings → User Management → Roles.
2. Select Add Custom Role.
3. Name the role, for example Formulayt Integration.
4. Grant only these permissions:
• Prospect → Visitors → View
• Prospect → Prospects → View
• Prospect → Prospects → View prospects not assigned to self
• Prospect → Prospect Accounts → View
• Prospect → Prospect Accounts → View accounts not assigned to self
A standard Marketing role can also be used, but it may grant more access than Formulayt requires. A custom least-privilege role is recommended.
Create the Account Engagement user
1. Navigate to Account Engagement → Account Engagement Settings → User Management → Users.
2. Select Add User.
3. Enter the user’s details.
4. Use the same email address as the dedicated Salesforce integration user.
5. In CRM Username, select the corresponding Salesforce integration user.
6. Assign the Formulayt Integration role created above.
7. All email preferences can be unticked for this service user.
The matching CRM Username associates the Account Engagement user with the Salesforce identity used during OAuth authorisation.
Activating the Integration
In Formulayt, navigate to Apps → Pardot and enable “Use the Pardot API for pre-population?”.
Select API version v4.
If the Salesforce organisation uses My Domain, enter the full URL including https://. For a sandbox with its own My Domain, enter the full sandbox URL. Otherwise leave this blank and enable Sandbox mode where applicable.
Keep “Use PKCE for OAuth?” enabled for the External Client App configured above.
Enter the Consumer Key, Consumer Secret and Pardot Business Unit ID.
Click “Connect your SFDC Pardot account” and authorise using the Salesforce integration user.
Once fully configured, you'll be able to specify which Pardot contact fields should pre-populate which Formulayt form fields from the field editor within Formulayt.
After changing Salesforce My Domain, Sandbox mode, PKCE, Consumer Key or Consumer Secret, disconnect and reconnect the connection so Salesforce can authorise the new settings.
Important Note
For pre-population to work, add the tracking script generated by the relevant Account Engagement campaign to every page containing a Formulayt gate. The visitor must also be known to Pardot. Pardot normally associates the tracking cookie with a prospect after that browser submits a Pardot form or form handler. Formulayt then reads the visitor cookie and retrieves the associated prospect through the Pardot API.
