Contact Form 7 Pipedrive Integration
WordPress Plugin

Create a person, organization and deal using Contact Form 7 submission values when a form is submitted.

This plugin is in early beta and I invite you to try it. I will make changes and continue to extend the functionality of the plugin based on your input. So please let me know what you think and contact me with your input or suggestions.


Download Plugin from the WordPress Plugin Directory


Installation Instruction & Configuration

Download the Plugin

Download the plug-in from the plugin directory and install it at http://yourwebsite/wp-admin/plugin-install.php by clicking the “upload plugin” button.

Once the plugin is installed and activated You’ll find the settings page under the Contact menu item created by Contact Form 7. It is titled, “Pipedrive Integration.”

Update the General Settings

Here is the general settings page before an API key is entered:

Enter your API Key and save. Then you’ll see the option to select which Contact form should submit data to Pipedrive. Like here:

Once you save the setting having selected some contact forms, you’ll see tabs for each contact form selected.

Update Individual Contact form Settings

Individual Contact Form settings can be found for each contact form by clicking the contact form’s tab on the Pipedrive Integration Settings page. Each tab has a list of Pipedrive fields and a dropdown of the available Contact Form 7 input fields that can populate the Pipedrive fields.It should look something like this:

The rest is magic. When a user submits a Contact Form 7 and it successfully sends the information you requested is also sent to Pipedrive.


How do I add Pipedrive fields? Including custom fields?

There are 3 filters included in the plugin that allow you to alter the Pipedrive fields available. Those filters are:

1. cf7_pipedrive_organization_fields
2. cf7_pipedrive_person_fields
3. cf7_pipedrive_deal_fields

An example of using a filter can be seen here:

add_filter('cf7_pipedrive_deal_fields', 'update_fields');
function update_fields($fields) { 
    $fields['your-custom-field-api-key'] = array( 'api_key' => 'your-custom-field-api-key', 'display_name' => 'Custom Field Display Name'); 
    return $fields;

So if I have a custom field that looks like this in Pipedrive:

My code would look like this. Note. The api_key you see in the code is the api_key for the custom field you want to include. Not your Pipedrive API Key.

add_filter('cf7_pipedrive_deal_fields', 'update_fields');
function update_fields($fields) { 
    $fields['0a3330a673bae5d571ebb6c4b265b1c93d5337ab'] = array( 'api_key' => '0a3330a673bae5d571ebb6c4b265b1c93d5337ab', 'display_name' => 'My Custom Field'); 
    return $fields;

If you’ve never worked with filters before, this code would go in your theme’s functions.php file. If you want to add a custom field for a deal use the cf7_pipedrive_deal_fields filter, for an organization use cf7_pipedrive_organization_fields, and for a person use the cf7_pipedrive_person_fields.

There is brief discussion on the basics of using a filter here. If you still have question please reach out via the Plugin Support Forum or email me directly.

What if I want a Pipedrive field to have a static value, not one from an input field?

While I plan to allow you to submit values that are not Contact Form 7 input values in the future, in the meantime you can use hidden fields. These are essentially fields that you can set the value for, but will not be visible to the user. You can read more about hidden fields for Contact Form 7 on the official website’s tutorial.

It’s not working. What should I do?

1. Is your Contact Form 7 plugin up to date?
2. Is our Pipedrive API correct?
3. Are the values being submitted to Pipedrive valid? For example, we can’t use characters for a phone number field in Pipedrive.
4. Submit an issue to the plugin support form and I’ll get in touch with a solution.

Contact Me, the Developer

This plugin is in beta and is actively being developed. Do you have suggestions, bugs, want to request a customization, or input of any kind? Please reach out. Any comment is a good one.