campaign management with pardot forms

Recently, a client approached us with a challenging task to solve. We came up with 3 solutions using Pardot forms. Each of them catered for different levels of knowledge of Pardot and Salesforce with & without the help of a developer.

The situation

The challenge was to manage an event calendar with 50+ different events offered by 50+ different providers through Pardot. When enquiring about an event, the prospect needed to enter a nurture program and receive 3+ customised follow-up emails with the objective to sign up for the event.

In an ideal world, the prospect should receive those customised follow up emails per enquiry – meaning to re-enter if possible the same nurture (Pardot’s Engagement Studio Program) every time they would enquire (1st, 2nd, 3rd etc) and with the help of dynamic content, receive the respective content of their enquiry.

Entering and running through the same engagement program more than once is on Pardot’s roadmap for later this year, however, it is not released as of now. As an alternative, it was also suggested that the prospect would only enter the engagement program for their first enquiry and receive an autoresponder for the 2nd + enquiry.

Additionally, the prospect (lead/contact in Salesforce) needed to become a member of the respective Salesforce event campaign and ideally would be sent to a different thank you URLs upon form completion.

Solution No 1: One Pardot form per event campaign

This solution caters for a prospect being added to a list to enter an engagement program for their first enquiry and receiving dynamic autoresponders for their 2nd + enquiries. In this scenario the first email for any enquiry would always be the autoresponder while the engagement studio would send the 2nd + email.

For the purpose of the different solutions, we have created 3 different campaign events: Australia, New Zealand & Peru and their corresponding Salesforce campaigns:

In order to build an engagement program with dynamic content as well as Autoresponders with dynamic content, we’ve created one custom field in Salesforce and two in Pardot

  • Test Campaign ID 1 created in both Salesforce and Pardot and synced controlled by Salesforce
    • This field will update via completion actions on each form pending on the campaign enquired about. The dynamic content for the engagement studio emails is based on this field. In order for the dynamic content to stay the same even though the prospect enquired about a different campaign in their 2nd/3rd enquiry, this field is controlled by Salesforce and will always change back to its initial 1st enquiry value.
  • Test Campaign ID 2 created in Pardot only
    • This field will also update via completion actions on each form pending on the campaign enquired about. The dynamic content for the autoresponder is based on this field.

Once the custom fields are created, we crafted the respective dynamic content for the engagement program & autoresponders:

Above screenshot shows the example for creating dynamic content for Test Campaign ID 2 – however, the same applies for Test Campaign ID 1.

When creating the form, we’ve added the respective completion actions – the form below is an example for the form sitting on the Australia page event campaign:

  • Change prospect custom field Test Campaign ID 1 to Australia – this will ensure that the engagement program content will be about Australia
  • Change prospect custom field Test Campaign ID 2 to Australia – this will ensure that the autoresponder will be about Australia
  • Add to Salesforce campaign Australia
  • Add to list – this is the master list which is feeded into the engagement studio with dynamic content
  • Send Autoresponder email with dynamic content
  • Assign to user/use active Salesforce assignment rules

If this was the prospect’s first enquiry, they would have received an Autoresponder about Australia and have been added to both the Salesforce campaign Australia and list to the engagement program to receive emails about Australia.

If the prospect enquiries afterwards about New Zealand, both fields would have been updated to New Zealand and they would have been added to the Salesforce campaign New Zealand and received the Autoresponder about New Zealand. However, Campaign ID 1 would have changed back to Australia has it is controlled by Salesforce and hence the engagement studio content would still be about Australia.

As you can see in the screenshot below, we’ve tested all three campaigns and the test prospect has received the respective autoresponder with the correct dynamic content.

Solution No 2: One Pardot form across all event campaigns

One potential lower maintenance alternative to the above mentioned solution could be to use one Pardot form and utilise the hidden field in URL passing option for different event enquiries.

It would require a slightly different set up. As we can’t use completion actions to add prospects to a Salesforce campaign we could set up automation rules for this (i.e. if field value Test Campaign ID 1 is Australia, add to Salesforce campaign Australia). However, this is pending on our Pardot subscription and how many automation rules we have available (currently Pardot Standard gives you 50, whilst Pardot Pro gives you 100). So if we do not have enough automation rules, we’d need to manage this on the Salesforce end by creating a process builder rule which adds leads/contacts to a Salesforce campaign based on a field value.

For this reason, both above mentioned custom fields would need to be created in both Salesforce & Pardot and synced across, however, one controlled by Salesforce (1) to keep engagement studio content consistent, and one controlled by Pardot (2) which will continuously update so it can be used to add the respective SF campaign to the lead/contact:

The fields would be added to the form as hidden fields, please see below:

In order to pass the values of the 2 campaign ID fields, we would add the respective parameters to the URL of the form within the iFrame:

  • http://go.pardot.com/l/33202/2018-04-19/98wrs5?Test_Campaign_ID_1=Australia&Test_Campaign_ID_2=Australia
  • http://go.pardot.com/l/33202/2018-04-19/98wrs5?Test_Campaign_ID_1=New Zealand&ITest_Campaign_ID_2=New Zealand
  • http://go.pardot.com/l/33202/2018-04-19/98wrs5?Test_Campaign_ID_1=Peru&Test_Campaign_ID_2=Peru

So the complete iFrame to embed on the Australian event campaign page would look like this f.ex.

iFrame example

The remaining completion actions are achieved via

  • Add to Salesforce campaign – as mentioned above
  • Add to list – we would create an automation rule, see below

  • Send Autoresponder – stays as completion action and would work the same way as presented in solution 1
  • Assign to user/use active Salesforce assignment rules – see above

Solution No 3: One Pardot form across all event campaigns and prospects being sent through an engagement studio per enquiry

Now, this is where the magic happens. This scenario does not only use only one Pardot form to ensure low maintenance, it also caters for in our scenario up to 3 enquiries being sent to respective engagement programs with respective content.

However, there are a few things to consider / create upfront. This solution is an advanced topic which includes Javascript and you might want to ask a Developer for help. Additionally, we’d need to decide for up to how many enquiries a person can send we’d like to cater. In our example we are catering for up to 3 – however, pending on the amount you’d like to cater for, you’d need to create:

  • Custom fields in Salesforce and Pardot
  • Copies of the same Engagement Studio program
  • Dynamic lists with the respective rules to feed the engagement programs

So in case you are running 50+ different events and you’d want to cater for someone enquiring up to 50+ times (which by the way we’d be concerned someone having so much time and patience on their hand enquiring about 50 different campaigns), you’d need to create above mentioned assets 50+ times.

But let’s run with 3. We have created our 3 custom fields. The form will look like this:

Similar to solution 2, the form will know from a URL field value which value it would need to pass into the campaign fields, i.e. http://go.pardot.com/l/33202/2018-04-19/98wrs5?Test_Campaign_ID_1=Australia

However, Test Campaign ID 2 and Test Campaign ID 3 are progressive fields and are depending on each other. Test Campaign ID 2 will only be completed once Test Campaign ID 1 holds a value and Test Campaign ID 3 will only be completed once Test Campaign ID 2 holds a value:

Progressive Profiling Pardot form

This is how Pardot will know if it is the 1st, 2nd, 3rd etc. enquiry. However, in order for Pardot to know to pass the hidden field value URL into the 2nd, 3rd etc field if the field before has been completed already, we’ll need the help of a Javascript:

  1. Under Advanced we add “interest” to the CSS Classes field



    Note that you should not tick the box always display even if previously completed as that would overwrite the previous value and the method wouldn’t work.

  2. Under Look & Feel and the “Below Form” tab we’ll add a Javascript code

As you can see, the red marked values are those we have used in our scenario for the field names and the CSS Class parameter which you’d need to change to your own values respectively.

Now, this solution would complete your custom fields with the respective campaign event interest values and you would now create dynamic lists with the respective rules:

  1. Add everyone where Test Campaign ID 1 is not empty
  2. Add everyone where Test Campaign ID 2 is not empty
  3. Add everyone where Test Campaign ID 3 is not empty
  4. Etc

And these lists would feed into the respective Engagement program set up for campaign ID 1, 2, 3, etc.

With regards to the completion actions from our first solution:

  • We have our dynamic lists for each campaign
  • We do not need the Autoresponder as a form completion action but it would be the first email of the engagement program
  • Salesforce campaigns: same as in solution 2 we can use automation rules in Pardot or set up process builder rules in Salesforce to ensure that the prospects (leads/contacts) are being added to Salesforce campaigns
  • Assign to user/use active Salesforce assignment rules: same as in the other solutions

Last but not least, you’d even be able to have custom thank you URLs for solution 2 & 3 (solution 1 would work anyway with one form per event) by using a field as a placeholder in the thank you URL, please see below:

Dynamic redirect URL

Interest Campaign ID 1” is another custom field used as a placeholder and you’d also pass that through by adding the hidden field to the form and its value to the URL in the iFrame: http://go.pardot.com/l/33202/2018-04-19/98wrs5?Test_Campaign_ID_1=Australia&Interest_Campaign_ID_1=Australia@

So the redirect location URL would then look like www.test.com.au/Australia

Summary

So there you have it – three ways gauged to different needs & skills on how you can leverage Pardot forms to manage 50+ campaigns.

If you are now thinking, ok, but how do I decide which solution is right for me? Well – to answer that question, there’s always a lot of different ways which lead us to Rome.

However, a few things to consider regarding the above mentioned solutions which would help you pick the right one:

Solution 1

Advantages

  • Easiest way to set things up
  • Not many custom fields
  • Salesforce campaigns can be managed via completion actions
  • Different thank you URLs can be attached to each form
  • If form layout templates are different you could attach different layouts to each form
  • No advanced or coding knowledge needed

Disadvantages

  • If you’d want/need to make a change to a form or a field, you might have to do that 50+ times
  • It might get messy managing 50+ forms and inserting the different iFrame codes into the website pages
  • Only caters for 1st enquiry to be sent to an engagement program & autoresponder sent to 2nd + enquiry

Solution 2

Advantages

  • Easy to manage as only one form in use in case you’d need to make a change to a field
  • Clean management of codes inserting in website as it’s the same code and only the hidden field values need to be updated
  • Not many custom fields needed
  • You can even attach a dynamic thank you URL

Disadvantages

  • Only caters for 1st enquiry to be sent to an engagement program & autoresponder sent to 2nd + enquiry
  • Automation rules are needed to add members to Salesforce campaigns or process building in Salesforce if you do not have enough automation rules
  • You can’t attach different layout templates to each form (you might find a way to manage this via extra code within the form, however, it adds coding and complications to it)

Solution 3

Advantages

  • You can send a prospect down an engagement program per enquiry
  • Easy to manage as only one form in use in case you’d need to make a change to a field
  • Clean management of codes inserting in website as it’s the same code and only the hidden field values need to be updated
  • You can even attach a dynamic thank you URL

Disadvantages

  • You need to create as many custom fields as enquiries you’d like to cater for
  • You need to create as many engagement studios as enquiries you’d like to cater for
  • You need to create one dynamic list per custom field
  • Automation rules are needed to add members to Salesforce campaigns or process building in Salesforce if you do not have enough automation rules
  • You can’t attach different layout templates to each form (you might find a way to manage this via extra code within the form, however, it adds coding and complications to it)

Every Pardot environment and scenario is different. Please test and make sure any solution you put in place is right for your organisation.

We hope this helps making your decision. However, if you need support or like to learn more about Pardot or other Salesforce products, please contact us.