Skip to content

CRM Sync

FormFlow can automatically send submission data to your CRM whenever a customer fills out one of your forms. Syncing happens in the background — you don’t need to do anything after the initial setup.

CRMHow You Authenticate
HubSpotOAuth (Connect with HubSpot button)
Zoho CRMOAuth (Connect with Zoho button)
MailchimpAPI key + Audience ID
SalesforceOAuth (Connect with Salesforce button)
KlaviyoPrivate API Key
PipedriveOAuth (Connect with Pipedrive button)
ActiveCampaignAPI URL + API Key
  1. Go to Settings in the sidebar
  2. Find the CRM you want to connect and click on it
  3. Follow the steps below for your specific CRM
  4. Once connected, click Test Connection to verify everything is working

Once connected, new submissions will automatically be synced to that CRM.

Click Connect HubSpot and sign in with your HubSpot account. FormFlow will request permission to create and read contacts on your behalf.

After connecting, click Configure field mappings to map your form fields to HubSpot contact properties.

Click Connect Zoho CRM and sign in with your Zoho account. FormFlow will request permission to create and manage contacts on your behalf.

After connecting, click Configure field mappings to map your form fields to Zoho contact fields.

FieldDescription
API KeyYour Mailchimp API key
Audience IDThe ID of the Mailchimp Audience (list) to sync contacts into

After entering your credentials, click Test Connection to verify they work, then click Save.

Click Connect Salesforce and sign in with your Salesforce account. FormFlow will request permission to create and query contacts in your org.

After connecting, click Configure field mappings to map your form fields to Salesforce Contact fields.

Note: FormFlow checks for an existing Contact with the same email address before creating a new one — duplicate contacts are not created.

Sandbox accounts: If you want to connect a Salesforce sandbox, you will need to use a Connected App configured for sandbox access (login URL: test.salesforce.com). Standard production orgs use login.salesforce.com.

FieldDescription
Private API KeyYour Klaviyo Private API Key from Account → Settings → API Keys in your Klaviyo account

After entering your API key, click Save. The key is validated before saving. Once saved, you can click Test Connection to confirm the connection is working, then click Configure field mappings to map your form fields to Klaviyo profile properties.

When you enable Klaviyo on a form in the form builder, an optional List dropdown appears. If you select a list, profiles created from that form’s submissions will automatically be subscribed to that list. Leave it blank to create profiles without list assignment.

Supported profile properties:

Klaviyo PropertyDescription
emailEmail address (required for sync)
first_nameFirst name
last_nameLast name
phone_numberPhone number
organizationCompany or organization
titleJob title
location.cityCity
location.regionState or region
location.zipZip / postal code
location.countryCountry
location.address1Street address
FieldDescription
API URLYour account-specific API URL (e.g. https://youraccountname.api-us1.com), found in Settings → Developer
API KeyYour API Key, also found in Settings → Developer in your ActiveCampaign account

After entering both values, click Save. FormFlow validates the credentials before saving. Once saved, click Test Connection to confirm, then click Configure field mappings to map your form fields to ActiveCampaign contact fields.

When you enable ActiveCampaign on a form in the form builder, an optional List dropdown appears. If you select a list, contacts created from that form’s submissions will automatically be subscribed to that list. Leave it blank to create contacts without list assignment.

Note: ActiveCampaign’s sync endpoint handles create-or-update natively — if a contact with the same email address already exists, it will be updated rather than duplicated.

Supported contact fields:

ActiveCampaign FieldDescription
emailEmail address (required for sync)
firstNameFirst name
lastNameLast name
phonePhone number

Any custom fields you have created in ActiveCampaign will also appear in the field mapping list, identified by their field title.

Click Connect Pipedrive and sign in with your Pipedrive account. FormFlow will request permission to create and search for persons (contacts) in your Pipedrive account.

After connecting, click Configure field mappings to map your form fields to Pipedrive person fields.

Note: FormFlow searches for an existing Person with the same email address before creating a new one — duplicate person records are not created.

Supported person fields:

Pipedrive FieldDescription
nameFull name (required)
emailEmail address
phonePhone number
org_idOrganisation ID
labelLabel / tag (numeric ID from Pipedrive)
visible_toVisibility setting (17)

Any custom person fields you have created in Pipedrive will also appear in the field mapping list.

By default, FormFlow sends submission data to your CRM using the field names from your form. If your CRM uses different field names, you can set up field mappings.

To configure field mappings:

  1. Go to Settings and open your CRM tab
  2. Click Configure Field Mappings
  3. For each mapping, choose a source field (from your form submissions) and the matching target field in your CRM
  4. Click Save Mappings

Source fields are detected automatically from recent submissions. Target fields are loaded live from your CRM.

Each submission has a sync status that reflects what happened when FormFlow tried to send it:

StatusMeaning
PendingWaiting to be synced
SyncedSuccessfully sent to the CRM
FailedSomething went wrong — see Sync Logs for details

If a sync fails, FormFlow retries automatically. If it continues to fail:

  • The error is recorded in Sync Logs
  • You can retry manually from the Sync Logs page or from the Submissions page

If your credentials are invalid or have expired, the integration is automatically paused and a warning is shown on your Dashboard. Update your credentials in Settings to resume syncing.

You can manually sync one or more submissions from:

  • Submissions page — Select submissions and use the Sync selected bulk action
  • Sync Logs page — Click Retry on any failed log entry
  • Dashboard — Click Sync Now to re-attempt all pending and failed submissions