Pardot Marketing Data Sharing

Wait, what is Marketing Data Sharing?!? If you are not familiar with Marketing Data Sharing, it essentially allows you to restrict which leads, contacts, opportunities, and/or custom objects are eligible to sync from Salesforce to Pardot. Let’s break this down and discuss its requirements, use cases, and setup. 

What is Marketing Data Sharing?

Marketing Data Sharing (MDS) allows you to restrict which leads, contacts, opportunities, and/or custom objects are eligible to sync from Salesforce to Pardot. This is especially useful if only a subset of your leads and contacts are marketable. If you are using multiple Pardot Business Units, MDS enables you to specify which leads, contacts, etc. sync to which Business Units. 

Requirements for MDS

MDS is available in the Pardot Lightning app for Advanced and Premium Pardot editions. Your Pardot instance also needs to be using the V2 Connector. The V2 Connector is the default for any Pardot accounts purchased after February 2019, but if you purchased before then you can learn how to upgrade your connector here

How does Marketing Data Sharing work?

MDS relies on one rule per object and objects that match the rule’s criteria sync to Pardot. For example, say your Leads and Contacts have a checkbox field called “Marketable”. If “Marketable” is checked (true) the Lead or Contact is eligible to sync to Pardot. If the “Marketable” field is unchecked (false) the Lead or Contact is ineligible to sync to Pardot. If an existing Pardot Prospect’s “Marketable” field changes from checked to unchecked, they will be archived. 

Considerations and Gotchas

Most of Marketing Data Sharing considerations are pretty straightforward:

  • Both Lead and Contacts must have MDS criteria. You cannot use MDS to only control which Leads sync but not Contacts, or vice versa.
  • If you have multiple business units, you will need to set up MDS for both Lead and Contacts in every business unit.
  • If a Lead or Contact no longer matches the MDS criteria, the corresponding Prospect record will be sent to the Pardot recycle bin.

But then the documentation gets a little murky with these two:

  • “If you update a prospect record in Pardot but not the corresponding record in Salesforce, you can unintentionally archive prospects.” 
  • “Imported prospects that don’t match Marketing Data Sharing rules are automatically archived.”

Essentially what this means is that you should not add the field that is used in your MDS criteria to Pardot because if you do, you can accidentally archive the prospect before it even has a chance to get to Salesforce. Keeping the MDS field out of Pardot means that Pardot-only prospects can never unmatch the MDS rules. 

Finally, two big gotchas I learned from recently setting up MDS

  • Make sure the connector user or B2BMA Integration user (depending on your Connector) has view and edit permissions to the field controlling MDS.
  • Add the MDS field to your page layouts as a read-only field so it is easy to see which leads/contacts/etc. are syncing to Pardot.

How To Setup Pardot Marketing Data Sharing

It’s best to set up MDS with a dedicated Salesforce field that is solely used to control syncing to Pardot. You don’t want to try and repurpose a field that other users may change and not realize there are downstream effects. This field should have pre-determined values (i.e. not a text field) and should only exist in Salesforce. 

When you are ready to turn on MDS rules, open Pardot in the Lightning App (you cannot set this up in classic)

  1. Navigate to the Pardot Settings tab and select Connectors
  2. Select the action wheel next to your Salesforce Connector and select Edit Setting
  1. Select the Marketing Data Sharing tab and use the down arrow to edit the Criteria for your first object
  1. Select “Use explicit criteria” and set your rule
  1. Repeat for the other object(s)

Conclusion 

Marketing Data Sharing is a valuable tool, especially if only a subset of your leads and contacts are marketable and if you are using multiple Pardot Business Units. Are you currently utilizing Marketing Data sharing rules? We’d love to hear your experience and share any insights in the comments. 

The post Pardot Marketing Data Sharing appeared first on The Spot For Pardot.

By |2021-03-19T14:44:17+00:00March 19th, 2021|Categories: Data Management|

Single Pardot Form, Multiple Completion Actions

Have you ever wished you could have multiple conditional form completion actions in a single Pardot form?

If you answered “OF FREAKIN’ COURSE I HAVE”, you’re in luck because I am going to teach you how in just 5 easy steps.

As you know it is super easy to add a single completion action to a Pardot form. But what would you do if you wanted to add multiple completion actions to a form and tie those actions to specific form elements. 

I know, it’s a head scratcher right (and you’ve probably heard: “Nope, can’t do it”)? Never fear I’ll guide you through the dragon’s den.

When we combine the magic of Pardot together with the superpowers of JavaScript anything is possible.

But, before we take our first step down the path to knowledge, let’s set the scene. Imagine that we are promoting multiple webinar events with a single registration form.

In this scenario, we want to have one landing page that has a list of upcoming webinars. Visitors can choose one or more of those webinars to attend and only need to fill out one Pardot form. Then, we need that registration information to register the visitor (now a Prospect) in the appropriate GoToWebinar sessions.

So where do we start?

Step 1: Configure the form and form handlers.

Our first step is to identify the field(s) we will use on the form and to which form elements we will apply the conditional completion actions. 

We need to note the API field name (field ID) for the field(s) we’ve selected. These can be found with one of the following navigations depending upon your chosen experience:

  • In Pardot (classic), navigate to Admin | Configure Fields | Prospect Fields.
  • In the Pardot Lightning app, click the Pardot Settings tab, then click Object and Field Configuration | Prospect Fields.

For our scenario we’ll create 4 custom fields for 4 upcoming webinars so our future prospects can register for any or all of our webinar options.

Our list of the unique Field IDs:

  1. Webinar_topic_1
  2. Webinar_topic_2
  3. Webinar_topic_3
  4. Webinar_topic_4

Keep these IDs somewhere you can access them easily. They’ll be needed in our final step.

Step 2: Create a Pardot form (or edit an existing one)

Make sure to select the fields that you wish to use for your completion actions and make sure they are checkbox fields, text fields, or radio buttons. If they are Checkbox fields, they must have EXACTLY ONE selection option. When selecting your inputs make sure to uncheck the required option. 

For our scenario, I’ve created 4 custom checkbox fields and added each to the form. Each has exactly one value, and was step up like this:

First select the Prospect Field “Webinar Topic 1”, select type of Checkbox and Data Form of “Text”. 

Now click on the Values tab. Enter the Value that you want to display on the form (in this case, our Value is Webinar Event 1). Keep a record of this value handy. We’ll need it in step 5 when we start customizing our JavaScript.

Note that for each form field value on which you want to apply a unique completion action, you will need to create a unique form handler. In our example we’ll be using 4 completion actions and therefore 4 form handlers.

These are our Field ID and Value pairs so far:

  1. FieldID: Webinar_topic_1
    Form Value: Webinar Event 1
  2. FieldID: Webinar_topic_2
    Form Value: Webinar Event 2
  3. FieldID: Webinar_topic_3
    Form Value:  Webinar Event 3
  4. FieldID: Webinar_topic_4
    Form Value: Webinar Event 4

I know the naming is not 100% awesome. I want to keep it generic though so Fields can be reused as needed. If we gave each one very specific names our solution would be too brittle (meaning easy to break, hard to scale). 

Step 3: Create a Pardot form handler for each field value you’d like to apply completion actions.

Start by only adding the email field to the form handler. Then, add the corresponding completion action for each value. Save. Take note of the form handler endpoint URL (ideally the HTTPS version) as you’ll need this in step 5 and match it to the related Values from the form.

As we continue with our multiple webinar example, I’ve repeated the step 4 times and created a form handler to use for each of the 4 custom fields created in step 2.

Here is a list of the 4 form handlers and their endpoint URLs and how they map to the field values set up above:

  1. FieldID: Webinar_topic_1
    Form Value: Webinar Event 1
    Form Handler URL: https://sercante.com/l/876401/2020-11-30/gny9d5
  2. FieldID: Webinar_topic_2
    Form Value: Webinar Event 2
    Form Handler URL: https://sercante.com/l/876401/2020-11-30/gny9df
  3. FieldID: Webinar_topic_3
    Form Value:  Webinar Event 3
    Form Handler URL: https://sercante.com/l/876401/2020-11-30/gny9dk
  4. FieldID: Webinar_topic_4
    Form Value: Webinar Event 4

Form Handler URL: https://sercante.com/l/876401/2020-11-30/gny9dh 

Step 4: Copy this script and paste into your Pardot form’s Thank You Code:

Copy the code below and paste directly into the Thank You “Code” in Pardot’s “Completion Actions” tab. 

<script>
var fieldsConfig = [
{//this block of lines is for option 1
    ‘fieldValue’:’%%your_field_id_1{js}%%’,
    ‘checkboxVal’:’VALUE_1′,
    ‘endpointUrl’:’FORM_HANDLER_1_URL’
},
{//this block of lines is for option 2
    ‘fieldValue’:’%%your_field_id_2{js}%%’,
    ‘checkboxVal’:’VALUE_2′,
    ‘endpointUrl’:’FORM_HANDLER_2_URL’
}
//add more blocks if you need them
];
// DO NOT CHANGE BELOW THIS LINE
var email = encodeURIComponent(‘%%email{js}%%’);
var thankYouContainer = document.querySelector(‘.form-thank-you’);

fieldsConfig.forEach(function (field) {
  if (field.checkboxVal === field.fieldID) {
    var iframe = document.createElement(‘iframe’);
    iframe.setAttribute(‘height’, ‘1px’);
    iframe.setAttribute(‘width’, ‘1px’);
    iframe.setAttribute(‘src’, `${field.endpointUrl}?email=${email}`);
    thankYouContainer.append(iframe);
  }
});
</script>

After pasting the code into the thank you code input area make sure the “Always display form after submission” checkbox is checked — otherwise this method will not work and the script will run in a loop! Which will cause a total computer meltdown and all pictures of cats on the internet to disappear. Ok that last bit is a small exaggeration but seriously don’t forget the checkbox. You’ve been warned.

Step 5: Time to modify some JavaScript

The code we pasted into our thank you content in step 4 is a bit of boilerplate to get us started. It will need to be updated for each unique use. I know it’s a bit daunting but we’ll take it slow and be very mindful of the characters we adjust.

For our webinar scenario I’ve duplicated the first code block two additional times for a total of 4 blocks of field/value/url. This is a necessary step because we have 4 form handlers and custom fields to match up. If we were only working with 2 we would not need to duplicate this code block. 

Notice how each code block is contained in a set of curly braces and separated by a comma. There is no trailing comma on the last block:

{//this block of lines is for option 1
    fieldValue:’%%your_field_id_1{js}%%’,
    checkboxVal:’VALUE_1′,
    endpointUrl:’FORM_HANDLER_1_URL’
},
{//this block of lines is for option 2
    fieldValue:’%%your_field_id_2{js}%%’,
    checkboxVal:’VALUE_2′,
    endpointUrl:’FORM_HANDLER_2_URL’
},{//this block of lines is for option 3
    fieldValue:’%%your_field_id_3{js}%%’,
    checkboxVal:’VALUE_3′,
    endpointUrl:’FORM_HANDLER_3_URL’
},{//this block of lines is for option 4
    fieldValue:’%%your_field_id_4{js}%%’,
    checkboxVal:’VALUE_4′,
    endpointUrl:’FORM_HANDLER_4_URL’
}

First thing we need to update is your_field_id_1. Let’s replace that with the Pardot field ID that you want to perform completion actions on. A couple of things to note: 

  1. the name must be wrapped in %%, and
  2. a {js} modifier must be added at the end of the name. 
  3. For example, if your field id is custom_field_1, it should look like %%custom_field_1{js}%% not %%custom_field_1%% or %custom_field_1{js}%

Now that we know what to watch out for let’s start making edits. First we’ll replace the “your_field_id” placeholders with the values of prospect field IDs (step 1):

  1.  %%your_field_id_1{js}%% = %%Webinar_topic_1{js}%%
  2.  %%your_field_id_2{js}%% = %%Webinar_topic_2{js}%%
  3. %%your_field_id_3{js}%% = %%Webinar_topic_3{js}%%
  4.  %%your_field_id_4{js}%% = %%Webinar_topic_4{js}%%

Next, we replace the placeholder values for “VALUE”. Using our example, the values are what we used in the Pardot form checkbox value tab – Please note that if there are special characters like ampersands (&) in the form values, they MUST be replaced with HTML entity code like: &amp; (that’s the & symbol followed by the letters amp and ended with a semicolon. Probably best to avoid special characters in the Values if at all possible):

  1. VAULE_1 = Webinar Event 1
  2. VAULE_2 = Webinar Event 2
  3. VALUE_3 = Webinar Event 3
  4. VALUE_4 = Webinar Event 4

Finally, each value that we’re searching for in our form will trigger a unique form handler. So, each code block will need to be updated with the correct endpoint URL. Make sure to match the correct endpoint URL with the correct form field.

Here the endpoints created in step 3 are used in place of the FORM_HANDLER_1_URL variables. 

  1. FORM_HANDLER_1_URL = https://sercante.com/l/876401/2020-11-30/gny9d5
  2. FORM_HANDLER_2_URL = https://sercante.com/l/876401/2020-11-30/gny9df
  3. FORM_HANDLER_3_URL = https://sercante.com/l/876401/2020-11-30/gny9dk
  4. FORM_HANDLER_4_URL = https://sercante.com/l/876401/2020-11-30/gny9dh

The final block of code from our example looks like this:

<script>
var fieldsConfig = [
{//this block of lines is for option 1
    fieldValue:’%%Webinar_topic_1{js}%%’,
    checkboxVal:’Webinar Event 1′,
    endpointUrl:’https://sercante.com/l/876401/2020-11-30/gny9d5&#8242;
},
{//this block of lines is for option 2
    fieldValue:’%%Webinar_topic_2{js}%%’,
    checkboxVal:’Webinar Event 2′,
    endpointUrl:’https://sercante.com/l/876401/2020-11-30/gny9df&#8217;
},
{//this block of lines is for option 3
    fieldValue:’%%Webinar_topic_3{js}%%’,
    checkboxVal:’Webinar Event 3′,
    endpointUrl:’https://sercante.com/l/876401/2020-11-30/gny9dk&#8217;
},
{//this block of lines is for option 4
    fieldValue:’%%Webinar_topic_4{js}%%’,
    checkboxVal:’Webinar Event 4′,
    endpointUrl:’https://sercante.com/l/876401/2020-11-30/gny9dh&#8217;
}
];
// DO NOT CHANGE BELOW THIS LINE
var email = encodeURIComponent(‘%%email{js}%%’);
var thankYouContainer = document.querySelector(‘.form-thank-you’);

fieldsConfig.forEach(function (field) {
  if (field.checkboxVal === field.fieldID) {
    var iframe = document.createElement(‘iframe’);
    iframe.setAttribute(‘height’, ‘1px’);
    iframe.setAttribute(‘width’, ‘1px’);
    iframe.setAttribute(‘src’, `${field.endpointUrl}?email=${email}`);
    thankYouContainer.append(iframe);
  }
});
</script>

Step 6: Just kidding there is no step six

While it’s technically true for the purpose of this blog post, there is no step 6, butif there was it would look something like this:

Test, Test, Test.
Make sure to thoroughly test your landing page, form and JavaScript to ensure everything is working as expected.

And there you have it. Our future prospects will be able to select multiple webinar events with our form checkboxes. Then our unique form actions will run based on the prospect action of selecting one or more of the form elements.

Let’s take a moment to recap what we’ve learned today:

  • We created a custom solution that allows multiple completion actions to fire based on a value recorded by Pardot form in 5 easy steps. 
  • In our imaginary situation we want a user to be able to register for multiple webinar events in one simple form. 
  • We started by creating Prospect Fields and connected form inputs to them. 
  • After linking all the values and Prospect fields we created Pardot form handlers for each form element we want to interact with. 
  • Next we copied a bit of boilerplate JavaScript into the forms Thank you content section and updated the code replacing the generic values with our real content. 
  • Finally we made sure to test all the things and confirm everything is working correctly.

Huge congratulations for making it all the way through the Dragon den of awesome Pardot solutioning with us. Give yourself a big pat on the back and make sure everyone at your company knows how awesome you are with your newly gained wizardry. Come back to visit any time. 

If you have any questions or would like help solving other interesting ideas in Pardot don’t hesitate to reach out to the amazing team of talent individuals and dragons that make up Sercante.

The post Single Pardot Form, Multiple Completion Actions appeared first on The Spot For Pardot.

By |2021-01-25T14:06:00+00:00January 25th, 2021|Categories: Data Management, Email Marketing, Event Management|

Single Pardot Form, Multiple Completion Actions

Have you ever wished you could have multiple conditional form completion actions in a single Pardot form?

If you answered “OF FREAKIN’ COURSE I HAVE”, you’re in luck because I am going to teach you how in just 5 easy steps.

As you know it is super easy to add a single completion action to a Pardot form. But what would you do if you wanted to add multiple completion actions to a form and tie those actions to specific form elements. 

I know, it’s a head scratcher right (and you’ve probably heard: “Nope, can’t do it”)? Never fear I’ll guide you through the dragon’s den.

When we combine the magic of Pardot together with the superpowers of JavaScript anything is possible.

But, before we take our first step down the path to knowledge, let’s set the scene. Imagine that we are promoting multiple webinar events with a single registration form.

In this scenario, we want to have one landing page that has a list of upcoming webinars. Visitors can choose one or more of those webinars to attend and only need to fill out one Pardot form. Then, we need that registration information to register the visitor (now a Prospect) in the appropriate GoToWebinar sessions.

So where do we start?

Step 1: Configure the form and form handlers.

Our first step is to identify the field(s) we will use on the form and to which form elements we will apply the conditional completion actions. 

We need to note the API field name (field ID) for the field(s) we’ve selected. These can be found with one of the following navigations depending upon your chosen experience:

  • In Pardot (classic), navigate to Admin | Configure Fields | Prospect Fields.
  • In the Pardot Lightning app, click the Pardot Settings tab, then click Object and Field Configuration | Prospect Fields.

For our scenario we’ll create 4 custom fields for 4 upcoming webinars so our future prospects can register for any or all of our webinar options.

Our list of the unique Field IDs:

  1. Webinar_topic_1
  2. Webinar_topic_2
  3. Webinar_topic_3
  4. Webinar_topic_4

Keep these IDs somewhere you can access them easily. They’ll be needed in our final step.

Step 2: Create a Pardot form (or edit an existing one)

Make sure to select the fields that you wish to use for your completion actions and make sure they are checkbox fields, text fields, or radio buttons. If they are Checkbox fields, they must have EXACTLY ONE selection option. When selecting your inputs make sure to uncheck the required option. 

For our scenario, I’ve created 4 custom checkbox fields and added each to the form. Each has exactly one value, and was step up like this:

First select the Prospect Field “Webinar Topic 1”, select type of Checkbox and Data Form of “Text”. 

Now click on the Values tab. Enter the Value that you want to display on the form (in this case, our Value is Webinar Event 1). Keep a record of this value handy. We’ll need it in step 5 when we start customizing our JavaScript.

Note that for each form field value on which you want to apply a unique completion action, you will need to create a unique form handler. In our example we’ll be using 4 completion actions and therefore 4 form handlers.

These are our Field ID and Value pairs so far:

  1. FieldID: Webinar_topic_1
    Form Value: Webinar Event 1
  2. FieldID: Webinar_topic_2
    Form Value: Webinar Event 2
  3. FieldID: Webinar_topic_3
    Form Value:  Webinar Event 3
  4. FieldID: Webinar_topic_4
    Form Value: Webinar Event 4

I know the naming is not 100% awesome. I want to keep it generic though so Fields can be reused as needed. If we gave each one very specific names our solution would be too brittle (meaning easy to break, hard to scale). 

Step 3: Create a Pardot form handler for each field value you’d like to apply completion actions.

Start by only adding the email field to the form handler. Then, add the corresponding completion action for each value. Save. Take note of the form handler endpoint URL (ideally the HTTPS version) as you’ll need this in step 5 and match it to the related Values from the form.

As we continue with our multiple webinar example, I’ve repeated the step 4 times and created a form handler to use for each of the 4 custom fields created in step 2.

Here is a list of the 4 form handlers and their endpoint URLs and how they map to the field values set up above:

  1. FieldID: Webinar_topic_1
    Form Value: Webinar Event 1
    Form Handler URL: https://sercante.com/l/876401/2020-11-30/gny9d5
  2. FieldID: Webinar_topic_2
    Form Value: Webinar Event 2
    Form Handler URL: https://sercante.com/l/876401/2020-11-30/gny9df
  3. FieldID: Webinar_topic_3
    Form Value:  Webinar Event 3
    Form Handler URL: https://sercante.com/l/876401/2020-11-30/gny9dk
  4. FieldID: Webinar_topic_4
    Form Value: Webinar Event 4

Form Handler URL: https://sercante.com/l/876401/2020-11-30/gny9dh 

Step 4: Copy this script and paste into your Pardot form’s Thank You Code:

Copy the code below and paste directly into the Thank You “Code” in Pardot’s “Completion Actions” tab. 

<script>
var fieldsConfig = [
{//this block of lines is for option 1
    ‘fieldValue’:’%%your_field_id_1{js}%%’,
    ‘checkboxVal’:’VALUE_1′,
    ‘endpointUrl’:’FORM_HANDLER_1_URL’
},
{//this block of lines is for option 2
    ‘fieldValue’:’%%your_field_id_2{js}%%’,
    ‘checkboxVal’:’VALUE_2′,
    ‘endpointUrl’:’FORM_HANDLER_2_URL’
}
//add more blocks if you need them
];
// DO NOT CHANGE BELOW THIS LINE
var email = encodeURIComponent(‘%%email{js}%%’);
var thankYouContainer = document.querySelector(‘.form-thank-you’);

fieldsConfig.forEach(function (field) {
  if (field.checkboxVal === field.fieldID) {
    var iframe = document.createElement(‘iframe’);
    iframe.setAttribute(‘height’, ‘1px’);
    iframe.setAttribute(‘width’, ‘1px’);
    iframe.setAttribute(‘src’, `${field.endpointUrl}?email=${email}`);
    thankYouContainer.append(iframe);
  }
});
</script>

After pasting the code into the thank you code input area make sure the “Always display form after submission” checkbox is checked — otherwise this method will not work and the script will run in a loop! Which will cause a total computer meltdown and all pictures of cats on the internet to disappear. Ok that last bit is a small exaggeration but seriously don’t forget the checkbox. You’ve been warned.

Step 5: Time to modify some JavaScript

The code we pasted into our thank you content in step 4 is a bit of boilerplate to get us started. It will need to be updated for each unique use. I know it’s a bit daunting but we’ll take it slow and be very mindful of the characters we adjust.

For our webinar scenario I’ve duplicated the first code block two additional times for a total of 4 blocks of field/value/url. This is a necessary step because we have 4 form handlers and custom fields to match up. If we were only working with 2 we would not need to duplicate this code block. 

Notice how each code block is contained in a set of curly braces and separated by a comma. There is no trailing comma on the last block:

{//this block of lines is for option 1
    fieldValue:’%%your_field_id_1{js}%%’,
    checkboxVal:’VALUE_1′,
    endpointUrl:’FORM_HANDLER_1_URL’
},
{//this block of lines is for option 2
    fieldValue:’%%your_field_id_2{js}%%’,
    checkboxVal:’VALUE_2′,
    endpointUrl:’FORM_HANDLER_2_URL’
},{//this block of lines is for option 3
    fieldValue:’%%your_field_id_3{js}%%’,
    checkboxVal:’VALUE_3′,
    endpointUrl:’FORM_HANDLER_3_URL’
},{//this block of lines is for option 4
    fieldValue:’%%your_field_id_4{js}%%’,
    checkboxVal:’VALUE_4′,
    endpointUrl:’FORM_HANDLER_4_URL’
}

First thing we need to update is your_field_id_1. Let’s replace that with the Pardot field ID that you want to perform completion actions on. A couple of things to note: 

  1. the name must be wrapped in %%, and
  2. a {js} modifier must be added at the end of the name. 
  3. For example, if your field id is custom_field_1, it should look like %%custom_field_1{js}%% not %%custom_field_1%% or %custom_field_1{js}%

Now that we know what to watch out for let’s start making edits. First we’ll replace the “your_field_id” placeholders with the values of prospect field IDs (step 1):

  1.  %%your_field_id_1{js}%% = %%Webinar_topic_1{js}%%
  2.  %%your_field_id_2{js}%% = %%Webinar_topic_2{js}%%
  3. %%your_field_id_3{js}%% = %%Webinar_topic_3{js}%%
  4.  %%your_field_id_4{js}%% = %%Webinar_topic_4{js}%%

Next, we replace the placeholder values for “VALUE”. Using our example, the values are what we used in the Pardot form checkbox value tab – Please note that if there are special characters like ampersands (&) in the form values, they MUST be replaced with HTML entity code like: &amp; (that’s the & symbol followed by the letters amp and ended with a semicolon. Probably best to avoid special characters in the Values if at all possible):

  1. VAULE_1 = Webinar Event 1
  2. VAULE_2 = Webinar Event 2
  3. VALUE_3 = Webinar Event 3
  4. VALUE_4 = Webinar Event 4

Finally, each value that we’re searching for in our form will trigger a unique form handler. So, each code block will need to be updated with the correct endpoint URL. Make sure to match the correct endpoint URL with the correct form field.

Here the endpoints created in step 3 are used in place of the FORM_HANDLER_1_URL variables. 

  1. FORM_HANDLER_1_URL = https://sercante.com/l/876401/2020-11-30/gny9d5
  2. FORM_HANDLER_2_URL = https://sercante.com/l/876401/2020-11-30/gny9df
  3. FORM_HANDLER_3_URL = https://sercante.com/l/876401/2020-11-30/gny9dk
  4. FORM_HANDLER_4_URL = https://sercante.com/l/876401/2020-11-30/gny9dh

The final block of code from our example looks like this:

<script>
var fieldsConfig = [
{//this block of lines is for option 1
    fieldValue:’%%Webinar_topic_1{js}%%’,
    checkboxVal:’Webinar Event 1′,
    endpointUrl:’https://sercante.com/l/876401/2020-11-30/gny9d5&#8242;
},
{//this block of lines is for option 2
    fieldValue:’%%Webinar_topic_2{js}%%’,
    checkboxVal:’Webinar Event 2′,
    endpointUrl:’https://sercante.com/l/876401/2020-11-30/gny9df&#8217;
},
{//this block of lines is for option 3
    fieldValue:’%%Webinar_topic_3{js}%%’,
    checkboxVal:’Webinar Event 3′,
    endpointUrl:’https://sercante.com/l/876401/2020-11-30/gny9dk&#8217;
},
{//this block of lines is for option 4
    fieldValue:’%%Webinar_topic_4{js}%%’,
    checkboxVal:’Webinar Event 4′,
    endpointUrl:’https://sercante.com/l/876401/2020-11-30/gny9dh&#8217;
}
];
// DO NOT CHANGE BELOW THIS LINE
var email = encodeURIComponent(‘%%email{js}%%’);
var thankYouContainer = document.querySelector(‘.form-thank-you’);

fieldsConfig.forEach(function (field) {
  if (field.checkboxVal === field.fieldID) {
    var iframe = document.createElement(‘iframe’);
    iframe.setAttribute(‘height’, ‘1px’);
    iframe.setAttribute(‘width’, ‘1px’);
    iframe.setAttribute(‘src’, `${field.endpointUrl}?email=${email}`);
    thankYouContainer.append(iframe);
  }
});
</script>

Step 6: Just kidding there is no step six

While it’s technically true for the purpose of this blog post, there is no step 6, butif there was it would look something like this:

Test, Test, Test.
Make sure to thoroughly test your landing page, form and JavaScript to ensure everything is working as expected.

And there you have it. Our future prospects will be able to select multiple webinar events with our form checkboxes. Then our unique form actions will run based on the prospect action of selecting one or more of the form elements.

Let’s take a moment to recap what we’ve learned today:

  • We created a custom solution that allows multiple completion actions to fire based on a value recorded by Pardot form in 5 easy steps. 
  • In our imaginary situation we want a user to be able to register for multiple webinar events in one simple form. 
  • We started by creating Prospect Fields and connected form inputs to them. 
  • After linking all the values and Prospect fields we created Pardot form handlers for each form element we want to interact with. 
  • Next we copied a bit of boilerplate JavaScript into the forms Thank you content section and updated the code replacing the generic values with our real content. 
  • Finally we made sure to test all the things and confirm everything is working correctly.

Huge congratulations for making it all the way through the Dragon den of awesome Pardot solutioning with us. Give yourself a big pat on the back and make sure everyone at your company knows how awesome you are with your newly gained wizardry. Come back to visit any time. 

If you have any questions or would like help solving other interesting ideas in Pardot don’t hesitate to reach out to the amazing team of talent individuals and dragons that make up Sercante.

The post Single Pardot Form, Multiple Completion Actions appeared first on The Spot For Pardot.

By |2021-01-25T14:06:00+00:00January 25th, 2021|Categories: Data Management, Email Marketing, Event Management|

Pardot Goodies from the Salesforce IdealExchange

This past year has been a great year for Pardot Admins everywhere. With each new release, Pardot has grown in functionality and has also become more integrated with Salesforce. This is fantastic as it allows for tighter data control, better personalization when communicating with prospects, improved user management processes. and an overall better user experience. In the wake of the new year, check out the newest Pardot features and updates on the Salesforce Spring 21 release notes to gain insights into what is coming in 2021.

As Pardot Admins, we often run into corners of the platform that require a little more creativity in order to solve a specific business need. Oftentimes, you can just “Google it” and voilà! Many in the Pardot community have the exact same question or problem you do, and although you find the answer (which is a huge relief), wouldn’t it be fantastic if there was a way for Pardot simply to add a fix for everyone?

Well my friend, grab a seat and let’s head over to the IdeaExchange!

What is the IdeaExchange anyway?

Back in 2006, the #Ideaexchange was born as a way to involve its customers (big and small) in a modern effort to crowdsource ideas for its product roadmap. This would ensure that the community got a platform that they could use to contribute their ideas and wishes. A place where the Pargods could go for inspiration if you will as they build the world of tomorrow.

How does one enter their idea into the IdeaExchange?

  • Come up with an idea and submit it to the exchange
  • You then get trapped and spend 2-4 hours going through other people’s ideas (definitely optional, but highly encouraged). 
  • If your idea gets enough votes (10+ points for you) then a Product Manager gets involved
  • The idea is developed and then delivered, and we all cheer!

Need more details? We wrote a little about the history of the AppExchange.

Our List of Top IdeaExchange Items 

To celebrate the IdeaExchange 14th anniversary this year, here are 14 wonderful ideas worth upvoting and adding to your wishlist, just in time for the new year.

Data Management

1. Ability to set field character limit for custom fields on Pardot side
This feature would help reduce conflicts between both platforms when it comes to character limits. We wrote about
how to fix this with Javascript.
Upvote >>

2. Country lists match between Salesforce and Pardot
This feature would help create more symmetry when it comes to Country values between the two instances. Currently, there are several different values between both. We wrote about how to fix this with Heroku
Upvote >>

3. Customize all list view columns
This feature would allow you to customize list columns for easy scanning of field completions and provide reporting-like capabilities.
Upvote >>

4. Notification on SFDC connector errors
This feature would allow Pardot admins to create notifications in summary of sync errors to make sure they are resolved promptly.
Upvote >>

5. Parameter in automation rules for “is changed”
This feature would allow you to see if there was a change in a field to trigger an action based on the change.
Upvote >>

Marketing Operations

6. Allow custom object fields to be used as email tags
This feature would allow email marketers the ability to inject values from custom objects into emails and other pieces of Pardot generated content.
Upvote >>

7. Ability to block competitor domains from all emails including autoresponders
This feature would ensure that none of your competitors receive the email you set up with your forms or enter your nurture series. 
Upvote >>

8. Conditional options for completion actions
This feature would allow marketing operations teams to save on automation rules and contain automations at the form level with some IF/THEN preferences based on user input on forms.
Upvote >>

9. Dynamic content based on list membership
This feature would enable you to do dynamic content criteria based on list membership effectively allowing you to use more than one data point as your criteria.
Upvote >>

10. Email Templates with Completion Actions
This feature would make it easier to build email templates that scale without the need to use Engagement Studio or other automations to prioritize actions. 
Upvote >>

11. SEO/Social media friendly Pardot landing pages: Images and meta tags
This feature would make it easier for marketers to update meta tags and social cards to share content using Pardot native social media capabilities.
Upvote >>

12. Time zone dependent delivery for list emails
This feature would allow marketing operations to choose one time and send it across that time in different time zones. It would save the User from creating multiple list emails with the same content.
Upvote >>

Sales Operations

13. Allow customization of notification email subject/content
This feature would allow you to use Dynamic Content and Variable tags on the subject line of notification emails (e.g. Notify User [when someone fills out the Contact Us form]) which currently is auto generated and cannot be updated.
Upvote >>

14. Allow variable fields in SFDC tasks
This feature would allow you to add variable tags to the Salesforce task you assigned to the User. Currently the message is static and everyone gets the same.
Upvote >>

You can find more ideas to browse while you binge-watch the ParDreamin’ 2020 videos.

Will your Pardot dreams ever come true?

While some Pardot Admin recommendations get picked up and implemented faster than others, it all depends on community participation and perceived need from the Pardot product team. In fact, to help drive ideas, Salesforce created a prioritization system (the next cycle starts in mid January 2021) where you can see top feature suggestions across the ecosystem battle it out!

You may be wondering, do any ideas actually make it to the product? The answer is yes.

Dreams do come true! In fact, these two ideas were just releases in the last release.

Our friend Jen Kazin recently discussed the new Email Builder at ParDreamin earlier this month. You can watch a quick demo of the feature by Salesforce here

Are there any features or functionality you wish you could see? If so, let us know below. With a little bit of luck and support from your Pardot and Salesforce Ohana, you might also uncover the secrets of the IdeaExchange and get your idea on the scoreboard.

Don’t forget to vote for these ideas, submit your own and chat with us on Twitter, LinkedIn or simply subscribe to the blog on the left side of the page.

The post Pardot Goodies from the Salesforce IdealExchange appeared first on The Spot For Pardot.

By |2021-01-19T19:02:01+00:00January 19th, 2021|Categories: Content Marketing, Data Management, Email Marketing, Experiments, Integration|

How To Map Lookup Fields in Pardot

BY CELINE NEWSOME AND MIKE CREUZER 

Have you tried to map an important Salesforce field in Pardot, only to realize it’s not available in the Pardot field mapping dropdown list? Yeah, me too. The most common reason for this…It’s a dang lookup field in Salesforce, and Pardot doesn’t like lookup fields. 

If you’re wondering what a lookup field is, it’s when a field value is being sourced from another field or object.

Side note: User lookup fields are an exception here. Salesforce user lookup fields can be mapped to Pardot CRM User type fields.

If you’re still thinking you need that field in Pardot even though standard functionality won’t allow it, lucky for you, we have three solutions so you can still create and map the field you need in Pardot.

1. Create a Flow or Process Builder in Salesforce

This solution is great when you want to automatically trigger a record sync as field values change.

Step 1: Create a custom text field on the desired object in Salesforce

Step 2: Create criteria in Process Builder for the object of interest (see screenshot below)

Step 3: Define the criteria for the action group (see screenshot below)

Step 4. Create and map your new field in Pardot

Viola! Problem solved. 

2. Custom Formula Field

Formula Fields can grab any specific field in the lookup object and pull its data into a new field that you can map in Pardot.  A couple things to note about using a formula field as your solution:

  • This isn’t a great option when your lookup fields change frequently, because formula fields do not trigger a sync.
  • Avoid confusion when looking at another field on the object by making this field hidden for all users except the Pardot Connector User.

Step 1: Create a Lookup Field on your object of choice (Lead/Contact/Account)

Step 2: Create a new Formula Field on the same object

Step 3: Create a formula for “Insert Field” and pick the field on the Lookup Field object (see screenshot below)

Step 4: Save the formula

Step 5. Create and map your new field in Pardot

Viola, again! Another solution.

  1. Custom Object

This could be the solution when you can’t use a default object, meaning you don’t have a one-to-one data relationship but you want to use complex filtering within Pardot. 

Custom Objects are available in Pardot Advanced Edition and Available for an additional cost in Pardot Plus Edition

For this solution we would be pulling in the ‘Individual’ Salesforce object into Pardot. Pardot can run automation around a custom object in your CRM that is not a Pardot default object. The custom object must be tied to a Pardot prospect record through a prospect ID. You can create and sync a custom object from any queryable object that is linked to a contact, lead, or account in your CRM.

Step 1: Create a Custom Object in Pardot (Custom Objects must be enabled in your account first)

Step 2: Use criteria in Pardot to pull the data in a list. To use this field as a custom object, we need to ‘relate’ the value back to the prospect. This is done with the “Prospect Custom Object” related with properties.

Step 3: Click Run Rules and use your list as you normally would.

And, there you have it, our final voila! 

Have you found another solution to map lookup fields into Pardot? Comment below and share.

The post How To Map Lookup Fields in Pardot appeared first on The Spot For Pardot.

By |2020-09-09T19:12:08+00:00September 9th, 2020|Categories: Data Management|