How to Integrate Pardot with WordPress via Contact Form 7

In Web Design and Development by Matt Chiera35 Comments

We needed to output WordPress contact forms to Pardot for a few clients. We weren’t able to find much information on this integration so I figured we would write up our process – which works quite well – so that other people can benefit from our blood, sweat, and tears.

To get this to work, this is what you’ll need:

  1. A WordPress Website
  2. Contact Form 7  – WordPress Plugin (updated to most recent version)
  3. Contact Form 7 – Success Page Redirects – WordPress Plugin (this plugin is no longer supported but worked in our WP v4.7 testing). Update 6-2-20: I don’t recommend using this plugin any longer. The guide below includes this plugin, however, since it is now unsupported I recommend using the Redirection for Contact Form 7 plugin instead. It will accomplish the same thing.
  4. Forms: 3rd Party Integration – WordPress Plugin (updated to most recent version, it’s called 3rdparty Services once installed)
  5. Pardot and the ability to create a Form Handler

Step 1

Create your Contact Form 7 form that you want to output to Pardot. Make sure to note each of the Contact Form 7 fields you’re using. My CF7 fields for the form below would be text-894, text-895, your-email, tel-227, text-989, your-message.

Step 2

In Pardot, create a Form Handler for the fields you want to output from CF7 to Pardot.

Go to Pardot > Forms > Form Handlers

In “Form Field Mappings” specify “External Field Names” that you’ll use to match up to the fields in CF7. You can name these whatever you want, but make sure to note the verbatim spelling – you’ll need it later. The “Field” themselves are where the data will be input in your Pardot. See example below.

Next, in the Pardot Form Handler “Summary” section you must create the “Endpoint URL” (Pardot Form Handler URL), which is what we’re going to use in Step 3 for our 3rd Party Service to connect Pardot to CF7.

NOTE: If you mark a field as “Required” in the Pardot Form Handler, but it is not required in your CF7 form and a user leaves it blank, the form data will not output to Pardot.

Next, add a “Success Location URL” –  this is the “thank you” page URL that someone would be redirected to after successfully submitting a form. I have not tested without using a “Success Location URL” – it may or may not work without it. We always use unique “thank you” page URLs for conversion tracking / to provide post-submission value (directing people to blog posts, etc.) so I have not tried without this.

I also recommend keeping the “Data Forwarding” box checked.

NOTE: The Pardot Endpoint URL typically looks something like this: http://go.website.com/l/306213851/2017-08-16/5k23b8. The Success Location URL could be something like this: https://yourwebsite.com/thank-you-for-contacting-us

Step 3

Go into your WordPress back-end. Go to Contact > 3rdparty Services

You’ll now create the “Service” which connects CF7 to your Pardot Form Handler.

In 3rdparty Services, add a new 3rd Party Service by clicking the [+] icon next to “3rd Party Service”. You can add more services (CF7 to Pardot connectors) by clicking the “Add Another Service” button at the bottom of the service. The location of this button doesn’t make a ton of sense, but alas, that’s up to the plugin developer.

NOTE: The “Service Name” doesn’t matter for this to work, name it whatever is best to help you to keep your services organized.

In the “Service” section you must add the Pardot Form Handler URL as the “Submission URL”. Make sure to also select the individual CF7 form that you’re looking to connect and double-check that it’s the right CF7 form. Also, I recommend setting “Request timeout” at “10” and then you can leave the rest of the “Service” fields blank.

NOTE: the “Submission URL” in 3rd-Party Service must be HTTPS or the process won’t work. This plugin doesn’t work with an HTTP URL.

Next, match up your CF7 fields in the “Form Submission Field” column and your Pardot Form Handler fields in the “3rd-Party Field” column. For your Pardot fields, you’ll use the “External Field Name” from your Pardot Form Handler. See example below.

Very, very importantly, these fields must match up verbatim for this to work. One extra character or space and the whole process breaks. I learned this the hard way. Make sure your fields match up exactly. Don’t forget to click the “Save” button when you’re done.

NOTE: This will work without adding anything in the “Label” column – it’s up to you if you want to add labels to make things easier to keep track of.

Step 4

Next, we need to use our “Contact Form 7 – Success Page Redirects” WordPress plugin. Update 6-2-20: This plugin is no longer supported. Use Redirection for Contact Form 7 plugin instead. It will accomplish the same thing.

Go to your WordPress back-end > Contact > Go to the specific CF7 you’re setting up > “Redirect Settings” > Set the page to the SAME URL that you specified as the “Success Location URL” in your Pardot Form Handler. Don’t forget to click the “Save” button when you’re done.

NOTE: This plugin automatically pulls the title of the page for you instead of the URL itself. Also, I’ve tried manually creating a redirect in the “Additional Settings” tab in the CF7, and it did not work.

Step 5

Put through a form submission on your WordPress page (make sure that the page has the correct CF7 form you’re looking to test). The form information should be output via your settings in Contact Form 7 as well as input into Pardot via your Pardot Form Handler.

Voila! Rinse and repeat for your other forms.

About the Author

Matt Chiera

Matt Chiera is Founder & Principal Consultant at Ice Nine Online. Since forming the company in 2014, he’s helped Ice Nine Online’s clients generate millions of dollars in revenue from digital marketing. Matt taught digital marketing strategy and tactics at the Tribeca School’s Digital Professional Institute. Matt’s book “Digital Marketers Sound Off” has been ranked as the #1 book in the Web Marketing category on Amazon.

Share this Post

Comments

  1. I was also getting the “Too many redirects” error.
    This was also causing 6 duplicated submissions in Pardot.

    The solution that worked for me was here:
    https://wordpress.org/support/topic/repeated-results-in-pardot/

    Basically in the Pardot form handler you need to adjust 2 settings:
    “Success Location” = “Specific URL”
    and
    “Success Location” = “THE_URL_OF_YOUR_THANK_YOU_PAGE”

    The forms in CF7 need to redirect to that page set in the form handler Success Location.

  2. any known issues with the “Redirect Settings” tab not appearing in contact form 7, even after installing Contact Form 7 – Success Page Redirects? ive installed, but im still not seeing the redirect settings tab

  3. It works perfectly for me, the data of the form is getting captured in the pardot.

    However on the redirection i m getting an error :

    This is a form handler page with no content. Use the form’s direct URL instead.

    Does anyone have a solution to this ?

  4. Matt, Thank you so much for this tutorial! Thank you for taking the time to come up with this excellent step-by-step guide. What I thought was going to be a custom code job turned out to be totally doable with these plugins. I just completed the process with a few form handlers and it worked flawlessly.

    If you don’t mind, I have one suggestion: It would be great to have a screenshot of the Redirection for Contact Form 7 plugin tab (Step 4) and how one might fill it out as it took a few tries for me to get it just right.

    Again, thank you for making my job easier

    1. Author

      For sure, I’m glad it helped you! Good call re: Step 4. I’ll put something together to better outline this step.

  5. This post was fantastic. Thanks for taking the time to explain this, it really saved me time trying to figure out how to implement Pardot Form Handlers with Contact Forms 7.

  6. Have you tried with multiselect Picklists with success before? Having issues as salesforce do not recognize , as a default selector and post value needs to be separated by ; to work.

    1. Author

      Hi Jimmy, I have not tried multiselect picklists for this integration. I might try to reach out to Pardot support to see if they can outline a solution.

  7. I followed all of your steps but keeping receiving the error below. Any idea how to resolve?

    There was an error when trying to integrate with the 3rd party service {Pardot – Tell Us What You Need} (https://go.parmetech.com/l/698113/2019-02-22/7q1).

    **FORM**
    Title: Request A Quote 2
    Intended Recipient: sales@parmetech.com
    Source: https://www.parmetech.com/wp-json/contact-form-7/v1/contact-forms/2075/feedback

    **SUBMISSION**
    Array
    (
    [timeout] => 10
    [body] => Array
    (
    [First Name] => Final Test
    [Email] => testfinal@test.com
    [Company] => Test Final
    [Job title] => Test Final

    [Phone] =>
    )

    )

    **RAW RESPONSE**
    Array
    (
    [safe_message] => error object
    [object] => WP_Error Object
    (
    [errors] => Array
    (
    [http_request_failed] => Array
    (
    [0] => Too many redirects
    )

    )

    [error_data] => Array
    (
    )

    )

    )

    1. Author

      Hi! Apologies for the delay. Were you able to get the process to work or are you still having the same issue?

  8. Hi Matt!!

    Thank you for your guidance here. However, i have tried using your method to create this connection between pardot and salesforce several times with different website, yet to get a good proper connection. Wonder if you may have a solution for me? 🙂

    Here’s the problem:

    *** Response ***
    WP_Error Object
    (
    [errors] => Array
    (
    [http_request_failed] => Array
    (
    [0] => Too many redirects
    )

    )

    [error_data] => Array
    (
    )

    )

    1. Author

      Apologies on the delay. Were you able to get this work? It seems other people are having a similar issue.

  9. Hi

    Thanks for the guide, got the forms working well but am having an issue with the tacking of other website activities in Pardot. All leads are being tagged as in the UK using the ‘Auto-fill Prospect Location Data from IP Address’ feature in Pardot. This is not a major issue really. The main problem I am having is that none of the other activities are being tacked (ie pages visited before form submission, pages visited after submission) within Pardot. Any idea what is causing this? I have not rolled our ContactForm7 across the site and can confirm that these features are working on standard HTML forms.

    Any help would be greatly appreciated.

    1. Author

      Hi Neil, unfortunately I have not come across that issue – perhaps check with Pardot support. Sorry I can’t be of more help on that one.

  10. Hi,

    I’m using same method to send data to pardot, then pardot is sending emails to selected users, but the problem is, pardot sending notification mails 6 times in a row to selected users.

    Can you tell me how do I solve it?

    1. Author

      Hi Abhishek, unfortunately I have not seen that issue before. I would check with Pardot support.

  11. Hi Matt,
    I have set up a form and realized that I don’t see the ‘redirect settings’ tab in contact form 7. I have made sure that I have the latest version by doing an update. Just wanting to know if I’m missing something or need to enable something?
    Will this be the reason my tests are not working?

    1. Author

      Hey Mark, you’ll need to add the Contact Form 7 – Success Page Redirects plugin as outlined in #3 in the “To get this to work, this is what you’ll need:” section at the top of the post.

    2. its been a while, but did you ever figure out the issue as to why you didnt see the redirect settings tab?
      ive installed the item in step 3 ( Contact Form 7 – Success Page Redirects), but im still not seeing the redirects tab when i pull up my forms in contact form 7

  12. Korey Again – 1st) Contact Form 7 – Success Page Redirects interferes with Captcha, so this doesn’t work for me. I did successfully submit the form once, and it did capture the data, but hasn’t worked since. Every submission now errors with

    *** Response ***
    WP_Error Object
    (
    [errors] => Array
    (
    [http_request_failed] => Array
    (
    [0] => Too many redirects
    )

    )

    [error_data] => Array
    (
    )

    )

    Seems like a few forums have users saying the same thing.

    1. Author

      Hey Korey, darn, yes it seems like the addition of certain plugins, or in this case Captcha causes the process to break. I’ll see if I can dig up a workaround, but this is kind of a delicate patchwork of plugins so it might be challenging to debug.

  13. Will this work if you add other add-on plugins to contact form 7, like conditional fields and multiple pages? Is this something your company would do as a service?

    1. Author

      Hi Kyle, I’m not sure about conditional fields and multiple pages – have not tested. Only way to find out is to test and see if the process works with those plugins active. Yes, this is something we offer as a service. You can contact me at messages@icenineonline.com if you’d like to discuss more.

Leave a Comment