About Mike Creuzer

I blur the edges of what Pardot can do using the API and custom integrations One of the Pardot Marketing experts at Sercante (theSpotForPardot.com), focusing on the 'hard' bits of Pardot and Salesforce. I bend Pardot to my will and integrate it with other tools. I connect the massive marcom stack together in useful ways. My hammer is being a LAMP (Linux Apache MySQL PHP) stack developer yet I speak the lingo and operate with Sales and Marketing teams. I am a chronic tinkerer and fixer and blend all the hobbies together.

GDPR and Google Analytics Updates in 2022

We marketers have pivoted our strategies to comply with GDPR in the past, but a recent court ruling may have us scrambling to change the way we use Google Analytics with European website users.

In a groundbreaking court case, the Austrian Data Protection Authority decided that the use of Google Analytics is currently violating the GDPR. The primary reason Google Analytics is violating GDPR involves personal data privacy.

As a result, it’s time for marketers to wake up and pay closer attention to how they track and report on visitor data coming from European Union (EU) countries. 

What is GDPR?

The thing we’re talking about here is the General Data Protection Regulation (GDPR).  It’s a law passed by the EU in May 2017 that creates standards for organizations that market to, track, or handle personal data from EU residents.

GDPR applies to you if you’re doing business or marketing to people in the EU regardless of where your company is physically located.

Google Analytics is currently violating GDPR

The court case that led to the realization that Google Analytics violates GDPR stems from a complaint that landed on the doorstep of the Austrian Data Protection Authority (a.k.a. Datenschutzbehörde).

Here’s how it went down.

On August 14, 2020, a Google user accessed an Austrian website called NetDoktor, which has self-serve resources for learning about health issues. The website uses Google Analytics, which means data about the user is transmitted to Google. Website users have filed 100+ complaints since then with similar GDPR violations from Google Analytics. 

The issue at hand is that sensitive data about EU website users is traveling through Google’s servers and across the pond to the US and other non-EU countries. As a result, that data is not being subjected to the privacy standards established through GDPR. (official legal response from Google here🤓)

So, in December 2021, the Austrian Data Protection Authority determined that the NetDoktor website’s usage of Google Analytics does not comply with GDPR. Other cases have come forward since that first case, which means this is something that’s here to stay.

What marketers on Salesforce need to know about GDPR and Google Analytics

If you’re a marketer using Salesforce Marketing Cloud or Tableau and you’re importing website user data through integrations with Google Analytics, then you’ll want to listen up. This is especially important if a large portion of your website users are located in a European Union country.

How to take action to stay GDPR compliant

We knew you’re a good seed. Here’s what you need to know to stay on the GDPR compliant side.

You’re already ahead of the curve if you’ve made the switch to first-party web tracking cookies. However, you’ll need to take additional steps to avoid legal action from website users living in EU countries regardless of the type of web tracking cookies you use (and we think you should switch to first-party cookies).

Verify privacy policy is up-to-date and available

Google Analytics requires all website owners using the Google Analytics Advertising features to display the privacy policy link on websites that utilize the service. And if you’re using advanced features to track website user data, then it’s likely that you’re using Google Analytics Advertising features.

Here’s what to include in your privacy policy:
  • The Google Analytics Advertising Features you’ve implemented
  • How you and third-party vendors use first-party cookies (such as the Google Analytics cookie) or other first-party identifiers, and third-party cookies (such as Google advertising cookies) or other third-party identifiers together
  • How visitors can opt-out of the Google Analytics Advertising features you use. This includes features used through Ads Settings, Ad Settings for mobile apps, or any other available means (for example, the NAI’s consumer opt-out).

Enable cookie consent on your website

Letting your website users know you’re using tracking tools to gather data from them is a great way to stay compliant with GDPR while using analytics tools like Google Analytics.

You can use a cookie consent vendor, such as OneTrust, to collect informed consent prior to dropping the tracking cookies into the website user’s browser. Cookie consent vendors make it easy for you to deliver a banner to your website visitors that collects their consent for tracking website browsing data using tracking cookies before they are activated and set.

We recommend you enable IP anonymization on your Google Analytics account to ensure you use pseudonymous identifiers. In addition, you can set the time period before the data stored by Google Analytics is automatically deleted from servers. Then, include that time period in the Google Analytics cookie banner. 

The banner you use to collect cookie consent from website users should be a simple and clear message explaining:

  • How user data is collected
  • Purposes of data collection
  • Duration of the data collected
  • Vendors and technical details

If you’re using third-party cookies, the banner should also inform users that the website uses third-party cookies for profiling purposes to provide advertising insights.

What could happen if you take no action

So, maybe you missed the memo and you haven’t done anything to address your website’s usage of Google Analytics in EU countries. Or maybe you use some other analytics tracking tool, like Heap, Matomo, Statcounter, or Adobe Analytics, and didn’t realize this probably applies to you, too. 

Well, it’s a good thing you’re here. We advise you to do two things: 

  1. Notify your legal counsel that there is a potential risk.
  2. Get ahead of the regulations. 

Violating the regulations doesn’t necessarily mean the GDPR privacy police are going to show up on your doorstep tomorrow.  It means someone could complain about your collection of their web browsing data. That complaint could snowball into a lawsuit and all the expenses that go along with it.

That’s why it’s so important for you to collect informed consent before a cookie starts collecting data from a website user who’s visiting your site from an EU country. 

Still confused by all of this? Tell us about it in the comments section. 

The post GDPR and Google Analytics Updates in 2022 appeared first on The Spot for Pardot.

By |2022-04-06T02:09:00+00:00April 6th, 2022|Categories: Analytics & Reporting, Privacy & Compliance, Pro Tips|

How to address Pardot issues related to the Salesforce outage

On May 11, 2021, Salesforce and Pardot users experienced a Salesforce outage related to a domain name service (DNS) issue. Salesforce was down for about four hours because of an “emergency break fix” that wasn’t successful.

The Salesforce outage affected Pardot. However, Pardot remained up and running even if marketers couldn’t log in to their specific instances.

As always, you can check https://status.salesforce.com/ to find information about ongoing issues that could potentially affect your Salesforce org.

Around 5 p.m. Eastern Standard Time, marketers noticed they couldn’t log into the CRM or Pardot. Salesforce was actively restoring services at 8:30 p.m. EST, and the team restored many services that were impacted by that time.

Resolved-Multiple Salesforce Applications Disrupted

Were Pardot end users affected by the Salesforce outage?

Pardot end users likely did not experience the effects of the outage.

It is currently looking like the outage may have caused a few delayed emails and delayed sales people callbacks. However, we’re expecting these small delays to be all end users will experience during this outage event. 

How did the Salesforce outage affect Pardot?

Salesforce co-founder and chief technology officer Parker Harris commented on the outage via Tweet. He said the base issue causing the Salesforce outage was related to the domain name system (DNS). 

The DNS issue affected Pardot by restricting access to the CRM, which caused the Pardot-Salesforce connector to become unavailable. 

In addition, Pardot sends emails using Marketing Cloud send services (at least as far as DNS naming organizes them). So, Pardot was most likely unable to send emails during the outage.

Pardot authentication happens on Saleforce.com services, so Pardot users were not able to to log in during the outage. This login unavailability impacted both marketers trying to log in as well as API authentications. 

Next steps for Pardot users now that service is restored

The core of Pardot was unaffected. But we do have some things to check around the edges of Pardot where it interacts with other Salesforce services. 

Here’s how you can stay ahead of potential issues that may have been caused by the Salesforce outage:

Check new leads or prospects

Spot-check any leads that came in on form fills during the connectivity outage. Make sure new leads made their way into the CRM correctly. 

Look at your busiest forms and form handlers that have completion actions to sync to Salesforce. Make sure all prospects have the Salesforce cloud icons you expect. If they do not appear to be syncing, open the prospect record and click “Sync with CRM.”

Verify Pardot successfully delivered emails during Salesforce outage

The Salesforce outage may have delayed email delivery. It appears as though Pardot couldn’t communicate with outbound email servers. Look at reporting for any email campaigns or you scheduled for delivery on May 11, 2021. Also, check any autoresponders that may be connected to form fills to ensure everything was delivered as expected. 

Verifying Pardot sent your emails can give you assurance that the outage didn’t affect your campaigns. But remember, email is a fault-tolerant service, and any sending issues will fix itself automatically. Or, the Pardot team will push the buttons to make this right for us.

Monitor API integrations

Third-party integrations likely lost the ability to sync with Pardot during the outage event. However, the ways in which the outage affected APIs depends on how the integration was built to deal with these situations. 

Here are three ways your APIs may respond to outages.

The API:

  • Will automatically retry to connect, and the data should have made its way into Pardot with no issues. 
  • May have retried and stopped after too many unsuccessful attempts, so we don’t have the data in Pardot. 
  • May not retry to connect, so we don’t have the data in Pardot. 

You will need to check your Pardot tool integrations and figure out how to sync any missing data. You can likely sync missing data by manually pushing ‘retry’ in each tool. Or, you can use the normal export process to import data into Pardot just like we do when we don’t have the tools integrated. 

What is DNS?

DNS or Domain Name System is effectively the computers ‘phone book’. This is the system that translates ‘TheSpotForPardot.com’ to the IP address (kinda like a phone number) that computers use to talk to each other. So with a DNS issue, the computer’s phone books to each other don’t work right. They can’t correctly talk to each other. 

Pardot and the Pardot services didn’t have any DNS issues during this time, but rather the Saleforce platform infrastructure had DNS issues. So, the world could interact with Pardot services just fine — it continued to collect forms, deliver whitepapers, etc. 

Pardot just couldn’t talk to Salesforce services, which includes authentication for logging in.

If you’re seeing connector issues, check out this resource to troubleshoot for common Pardot-Salesforce connector issues.

Get help from Pardot consultants

If all else fails and you’re completely lost in Salesforce outage freakout mode, then we’d love to talk to you. 

The Sercante Pardot consultant team knows a thing or two about Salesforce outages and how they affect Pardot orgs. Contact us to chat.

The post How to address Pardot issues related to the Salesforce outage appeared first on The Spot For Pardot.

Considerations for Integrating Pardot + Sitecore

Pardot and Sitecore

Sitecore is a powerful Website Content Management System. We can use Sitecore and Pardot together to great effect. There are a few Sitecore capabilities which we will want to use to compliment Pardot, and a few features we want to use in conjunction with Pardot.

Language Management Workflow

Sitecore has Language Management workflows that allow us to build multi-language websites more robustly. To best take advantage of these workflows, we will want to use Pardot Form Handlers so we can allow Sitecore to manage the form presentation language. Having a Pardot form handler accept all the form fills from that form across all the languages simplifies processes in Pardot and reduces errors due to operating in unfamiliar languages. We will want to have Sitecore pass along the current language in use as a hidden field. Now we can have Pardot send emails in the correct language.

Using the language that was passed in by the form and dynamic content, we can create autoresponder emails in the correct language.

Organizations that work with multiple languages tend to be organized by country and think in country segmentations. This is natural as there are some very real legal and organizational country divisions which we operate in. We tend to see Pardot organized this same way, with country content and folders inside Pardot with a language overlay. If we instead flip this approach and try to structure Pardot around Language first, and then apply a country overlay, we can reduce duplication of effort inside Pardot greatly. You write a single language copy, then use Pardot dynamic content to ‘pull in’ that country/region-specific contact information or footer at the bottom of the email.

There are 34 million native Spanish speakers in Spain and 36 million native Spanish speakers in the USA. By operating Pardot language centric first, the USA marketing team doesn’t need to worry about Spanish language content for their audience as Spain already took care of it. The end-user gets a much better user experience, working in their native/more comfortable language. 

Files and Search

We can build a powerful search infrastructure that allows Sitecore to ‘search’ within Pardot documents by having a copy of the Pardot files documents in Sitecore. We search these docs using the search tool, but deliver the Pardot file URL when we present the download link to the web user.  This will take some tweaking to deliver a URL other than what we have in place on the server.

We can use this for gated content as well. When we have gated content Pardot form (handler)s, we can pass in the Pardot File URL and Pardot document name as hidden fields. When we send an autoresponder email, we can use these two fields plus the hidden language field to allow people to download Pardot Files from a Sitecore website search in their local language. 

Page Actions

Pardot Page Actions are a great tool and can allow Marketing to action content without needing to get the web team involved. The website team can do their thing, and the Pardot team can do our thing, and we can build great experiences together working our own strengths.

Some ideas to use Page Actions could be if somebody visits an important event page on our website, but doesn’t sign up. We can then action them in Pardot to encourage participation in that event.

Sitecore Experience Manager and xDB – Sitecore CRM Integration

While we don’t have a native Pardot and Sitecore connector, Sitecore has a couple of Salesforce CRM integration tools available to us. We can take advantage of this with our Pardot usage as well. Sitecore can collect the form data as it goes to Pardot, so Sitecore knows the just-prospects. And once we convert those to Leads & Contacts, we again have the ability for Sitecore and Pardot to update each other.

We can do ABM type content presentation on Sitecore and have Pardot send the same content types by email. That elusive omni-channel.

We can take advantage of the language workflows mentioned above for simplifying Pardot Language support, but that would force us to use Form Handlers, which means we lose Pardot Progressive Profiling. However, we can build this in Sitecore Experience Manager ourselves using the data we sync over from the CRM or that we already have in Sitecore for non-CRM records.


When utilized properly, Sitecore and Pardot can work together to offer great rewards. If you have questions about a Sitecore + Pardot integration, our Pardot development and engineering team would love to dive in with you on a solution.

The post Considerations for Integrating Pardot + Sitecore appeared first on The Spot For Pardot.

By |2021-01-07T17:21:00+00:00October 12th, 2020|Categories: Integration|

Pushing Pardot: How to use Dynamic Content With More Than 25 Options


Pardot Dynamic Content is great, but only if you need fewer than 25 variations for a piece of content.


…you might be thinking.

“Perhaps you need to be more specific with your audience segmentation!”

…you might say.

You might be right.

But for global marketing operations teams, 25 variations can be a vexing limitation if they want to keep things automated.

Think about the local contact information for an email footer that you’d like to use globally. You may need it in more than 25 versions to accommodate all the languages or countries you’re marketing to.

That kind of thinking can get a normal marketing person anxious. What if the data’s bad? How can we predict what will happen? WILL I GET FORWARDED ALL THE COMPLAINT EMAILS??

But not YOU. You’re a MOPS pro, and you’re going to use the power of Pardot’s newly launched Handlebars Merge Language (HML) to protect yourself against these possibilities!

The key here is nothing. Literally. It’s a blank.

We leave the “default” content blank on all sets of Dynamic Content, allowing the variable to cascade through the groups until it finds a match and displays what we want. If there is no match, the magic of HML provides that fallback value.

The Real World Example

Let’s use our local contact information requirement, and assume we need content for 50 countries (obviously you could use this with the 50 US states).

We will build the two Dynamic Content sets, 25 countries go into the first one with a blank default and the other 25 going into the second content piece, also with a blank default.

The blank default means that if the Prospect’s Country value doesn’t match anything in that Dynamic Content block, it’s not going to actually put anything there. That allows the values from the second Dynamic Content block to go to work and serve up a value when it finds a match.

Here’s how those two pieces of Dynamic Content would look:

A list of countries for dynamic content blocks
A list of countries for dynamic content blocks

The problem: This doesn’t account for any prospects whose Country field value is missing. In that case, the recipient wouldn’t get anything there. BAD UX.

To fill in a default “fallback” value we use an if/else HML structure. We will then put the Dynamic Content after the HML. In this case, we’ll put the corporate HQ address as the fallback.

*Note: programmers will want to put the dynamic content inside the HML “IF”, but this won’t work consistently in all use cases.*

Let’s break down the HML:

{{dynamic_content_1332}} {{dynamic_content_1334}}

This is where Pardot evaluates the Country field value, serving up the right address if the recipient’s country field matches. If it doesn’t match on Country Group A (Dynamic content 1332), it doesn’t display anything and moves on to Country Group B (Dynamic content 1334). If it still doesn’t match a country, it returns the default value, which is a blank.

{{#if Recipient.Country}}

This “#if” HML tag means “Let’s check this Prospect’s Country field for a value.”


This is the HML magic that says “If there is no value, put this stuff instead (Corporate HQ address)”


End if statement and therefore, the HML.

If you haven’t enabled HML…

You can still use this solution, but without the fallback value. This is fine if you’re absolutely confident in your data, or if you have a situation where serving up no data is better than the wrong data.

What are your ideas?

How could you use more than 25 variations of Dynamic Content? Let us know in the comments!

By |2020-04-03T14:16:00+00:00April 3rd, 2020|Categories: Uncategorized|

Behind the Pardot Curtain: New API Methods Are Here!


As one of the chief “Pardot API Geeks” here at Sercante (no, it’s not a real title, but I think it really should be) I’m really excited about two big changes to the Pardot API – one of which was confirmed on this week’s Pardot Product Roadmap webinar.

Wait, you don’t know what you can do with the Pardot API? Then you must’ve missed this post. I’ll forgive you if you open it a new tab and read it later.

What’s New with the Pardot API

These two new methods open up new capabilities for large and small Pardot users alike. The great thing about them both is – GEEK TERM ALERT – they are asynchronous, which means we can start processing a job and let it work while the code goes on to do other things. This is really great because the computer doesn’t have to wait and do nothing else while large amounts of data are being processed. We can parallel process and REALLY get a lot done without wasting processing power.

The first Pardot API change is Prospect Import.

We saw the Prospect Import at the 2019 Pardot Developer Experience Dreamforce session I was proud to co-host with my fellow Sercante Dragon Mike Fazio. Documentation can be found here for v4 or v3. As for what it does…Think about how you might import thousands of Prospects into Pardot today. Then throw that out and imagine it happens in the background, automatically, with as many fields as you want mapping over. Every day. Without you having to touch it.

If you have an Enterprise Data Warehouse or some other external source where you are getting records from (HINT HINT a little operation called “Salesforce” fits that description as well) and you want to be able to have the computer send large numbers of Prospects into Pardot without needing a person to manually do the import, this is the feature for you.

So again, powerful stuff on its own, but let’s take it to the next level. Imagine these possibilities:

  • On a regular basis, you could use code to clean up junk and normalize picklist field values – turn those “United States” or “U.S.” into US – all without touching Excel.
  • You could use code to add some data from a vendor by API before sending the data into Pardot.
  • And you could used code to fix every marketer’s Achilles Heel – those ALL CAP NAMES or all lower case names that show up randomly and without reason.

So Much Activity, so Little Time to Analyze

Now, the second API change will be a huge time saver as well. It involves Visitor Activity Export.

This will allow us to export ALL visitor activities a whole year at a time.

On the surface, you might wonder what you’d do with a year’s worth of data about how all your Prospects have been engaging with you. Think about…

  • Exporting it all into a BI tool to get all the bar, pie, and line charts you’d ever want
  • Export into a Analytics tool
  • Export into a Enterprise Data Warehouse which can interface with your BI/analytics tool on a regular basis to give you tasty marketing activity dashboards
  • Summarize into a spreadsheet (We do this with some of our Audits)
  • Export into your own database so you can do SQL queries for ad-hoc reporting (if that’s your sort of thing)

So yeah, COOL STUFF.

According to the docs v4 and v3, the only filtering currently available is date. So if we want to grab just a certain type of activity, such as email opens, we are going to have to pull down the entire data-set and then do our own filtering for email opens. This may mean that what we currently have available to us won’t work with your destination BI or analytics tool if it can’t filter for you.

Now, a quick pause to elucidate via true geek-speak for those who want the In the Weeds version:

The new methods don’t appear to be included in many wrapper libraries yet, but we are working on getting these added to a few. One thing to note is that they no longer use just GET/POST variables but rather a ContentType: application/json and a body with the JSON string. Thus you may need to make some adjustments to your code if you plan on using these new methods.

A Bright Future Ahead for the Pardot API

Looking at how the documentation is structured for these changes, we are optimistic! We think we’re seeing a new pattern for Bulk API calls and can likely expect additional Pardot record types to be built to follow these two new patterns. That means we’ll be able to surface even more Pardot data in our external tools of choice, and therefore marketers can show the business how Marketing is really bringing in more leads and revenue.

What’s Your Pardot Data Challenge?

Like I said, Sercante (heart emoji) the Pardot API. If you’re seeing data quality challenges on a regular basis that you’re spending a lot of time on manually correcting, let us know in the comments! We may be able to save you some major time through the magical API world.

By |2020-01-16T12:25:34+00:00January 16th, 2020|Categories: Uncategorized|