Account Engagement (formerly known as Pardot), is a popular marketing automation tool for Salesforce customers. As an acquired product (having been around since 2007), Account Engagement has historically been standalone from the core Salesforce platform. Over the past few years, however, Pardot has been moving across to the core Salesforce platform, piece by piece.
These two drivers (popularity and integration to the core platform), make it an interesting avenue for architects to explore, and optimize their Account Engagement instance – if for nothing else, to avoid compromising data quality and app performance.
To be honest, this guide took me a while to write. There’s so much to talk about on the topic – so many nuances to note – that I had a head-scratching experience with how to present this information logically. While some people may not wholly agree with how I’ve ordered the topics, I hope that you will learn a thing or two about the advantages (and quirks!) that Account Engagement offers.
Leveraging the tenets of the well-architected framework, brought to us by the Salesforce Architect Relations team, this guide will cover many of the considerations you should be making as Account Engagement becomes evermore sophisticated and powerful.
Salesforce’s Well-Architected Framework: An Overview
- Scalability: This includes ‘data model optimization’ (structure the objects in your org for efficient data retrieval), and data volume management.
- Performance: This includes ‘throughput optimization’ (designing with the number of concurrent requests your solution executes in mind) and ‘latency optimization’ (improving how fast your solution responds to requests and demand).
- Availability: This includes ‘risk assessment’ (are risks clearly identified, prioritized, and characterized into people, process, and technology?), and ‘failure mitigation’ (are mitigation approaches documented, and do mitigation plans evolve?).
We’ll begin first with the data model, going on to throughput optimization, latency optimization, before finishing up with a table of risks, who they affect, and the consequences of not reaching a solution.
The Account Engagement Data Model
Account Engagement (Pardot) is a popular option for Salesforce customers due to its relatively tight sync to the core Salesforce platform. Remember that Account Engagement was acquired by Salesforce, but slowly the data model and user interface have been aligned.
For starters, let’s understand the Account Engagement (Pardot) basic data model.
- Prospects: These are the ‘people’ records in Account Engagement. Prospects are known people in your database that generate activities (“Engagement History”) such as email clicks, form submissions, etc.
- Visitors: These are unknown sessions that have occurred on your website. With the power of the website tracking code, when a visitor goes from unknown to known (“conversion”) any visitor activity is associated with a new/existing prospect record.
- Assets: The emails, forms, landing pages etc. on which prospects generated activities.
- Campaigns: With Connected Campaigns, Account Engagement and Salesforce use the same campaign object. Assets are related to Salesforce campaigns, and prospects can be added as campaign members using some form of automation (the action ‘Add to CRM Campaign’).
How is Account Engagement Connected to Salesforce Core?
If you are not familiar with the Salesforce connector for Account Engagement, I highly recommend you read this guide first, as much of the information you need on this topic is there. This section will give you a brief overview.
Standard Out-of-the-Box Connector
- Syncing objects: From Account Engagement objects, record sync to Salesforce objects via the connector. Prospects are the best example of this; when syncing to Salesforce, data will end up on the associated lead/contact record (related with the CRM record ID).
- Deletion behavior is important to note here. If the prospect’s associated lead/contact record is deleted from Salesforce, the corresponding prospect record is automatically deleted.
- Shared objects: Eliminates the need for users to create the same record twice, in two different places (i.e. in Salesforce then in Account Engagement). Campaigns are the best example of this.
- Field sync behavior: For syncing objects, what happens if there’s a disparity between the data in a specific field? You can determine which value wins (either the Salesforce record or Account Engagement record) per field – the options are the Salesforce value, the Account Engagement value, or the most recently updated record. There are a couple of key point to note:
- Although “Most recently updated” is a popular option, it can produce unexpected results. It boils down to one fact – the master is the most recently updated record, not the most recently updated field. In other words, when any change is made to the record, not just on your target field.
- Some fields’ behavior differs from the norm. Consider the behavior of the email, and opted-out fields.
Custom Object Sync
With the higher Account Engagement editions, you can opt to sync more Salesforce objects to use in segmentation and automation on the Account Engagement side. This guide goes into the full detail on the behavior and limitations of custom object sync – but here are the key points:
- To sync additional Salesforce objects, a relationship to contacts, accounts, or leads in the CRM data model must exist (you need at least one lookup field).
- Four custom objects can be created in Account Engagement (if you need more, your object schema and sync volume will need to be looked at by a Salesforce Product Engineer).
- If your Salesforce data model doesn’t accommodate the desired custom object sync, there are workarounds to inject data into an object that can sync (whether that’s the standard syncing options, or to an object where the appropriate lookup exists to then leverage custom object sync). This, obviously, comes with risks that flows throw errors, and surmounting technical debt could be a consequence.
Asset Sync
Assets sync from Account Engagement to their related Salesforce campaign record. Note that the asset sync queue is separate from the prospect sync queue, and could sync less frequently.
When discussing the connector, there are also the topics of the sharing model (i.e. business units and user permissions) and the user interface – we’ll come back to these later.
Throughput Optimization
“Design and optimize for the number of concurrent requests your solution executes within a given time interval.” – Well-architected.
There are a number of ways that your Account Engagement instance ‘speed’ can be affected. Some will fall into this category (throughput optimization), while others will be discussed in the next category (latency optimization).
The following considerations come under the throughput optimization category:
- Bulkification
- Database queries
- Asynchronous processes
Account Engagement Optimizer
The built-in Account Engagement Optimizer tool is a good place to start, for the big-picture view. A number of items in Account Engagement all contribute towards how much processing power you’re asking of your account – in other words, the culprits in placing a burden on your account’s processing capacity:
- Redundant automations (that are still active).
- Active Engagement Studio programs.
- Prospect data changes (which will impact the burden on any related automations and/or the connector sync).
If items need your attention, they’ll be flagged and assigned a status (e.g. ‘good’, ‘concerning’), plus you’ll be presented with proactive recommendations to take action quickly.
Account Engagement Optimizer could be compared to Salesforce’s Scale Center tool which provides self-service and near real-time access to performance metrics to improve the scalability of your Salesforce implementation – including spikes in database calls, user logins, and errors. Therefore, it enables those building on the Salesforce platform to be proactive and avoid any performance and usability degradation.
Bulkification ‘by Design’
Bulkification means that processing requests are batched together at a volume where they can be processed efficiently (each batch, a single execution). There are a number of ways that Account Engagement does bulkification in the background:
- Connector sync: The Salesforce connector for Account Engagement syncs changes to prospect records in batches of 200 – which is something to bear in mind when a large number of changes are being made in a short period of time. As mentioned, the asset queue syncs differently, with no figures disclosed.
- Throttling: Throttling in marketing automation exists to limit the automated actions a system can make within a set period of time. Account Engagement applies throttling to autoresponder email sends on completion actions to keep your account’s processing speeds at a good level.
Email list sends: Every email goes through a three-step process before it’s sent. Salesforce do not provide any external SLAs on email deliverability times, but they indicate that the typical processing time is under 30 minutes (in my experience, far quicker).
Segmentation Queries
There are a number of ways to segment data in Account Engagement – essentially, creating a list of prospect records that meet a certain criteria. These are powered by the types of automation in Account Engagement, as you need some form of rules to instruct the formation of a new list that will contain the eligible prospects.
These are: automation rules, completion actions, dynamic lists, segmentation rules, Engagement Studio actions, external actions. You can also push Salesforce report data into an Account Engagement list.
How fast these can execute will depend on the following:
- Size of the database: Logically, the larger your database, the more records Account Engagement has to query before producing a finalized segment.
- Scope of the query: Respective of which type of automation you choose, your starting point will either be a) your entire prospect database, or b) an already narrowed down sub-set.
- Query operators: It’s a well known fact that using the operator ‘contains’ will slow down Salesforce report queries. The same can also be said for Account Engagement segmentation.
- Type of segmentation: Some types of automation are one-off, whereas others will repeat on a schedule, or be continuously updating in the background. If they are not ‘one-off’ they will soak up your instance’s processing power (like you saw in the Optimizer section).
The table below compares the options, as a guide for when to use each.
Automation Type | Potential Scope of the Query? |
---|---|
Automation rules | Whole prospect database |
Completion actions | Sub-set of prospects, who have interacted with the relevant asset. |
Dynamic lists | Whole prospect database |
Segmentation rules | Whole prospect database |
Engagement Studio actions | Sub-set of prospects, who have entered the Engagement Studio program. |
External actions | Sub-set of prospects, who have entered the Engagement Studio program. |
Salesforce report push | Sub-set of leads/contacts, according to the report’s filters. |
Therefore, the ‘best bang for your buck’ in terms of efficient processing are:
- Segmentation rules, to take care of one-off, ‘heavy-lifting’ segmentation.
- Engagement Studio actions and external actions, to work with a relevant sub-set of prospects.
Archiving
What’s been covered has been leading up to archiving – in other words, working with records/data that’s actually needed.
- Recycle bin: Account Engagement has its own recycle bin. Unlike Salesforce’s recycling bin, Account Engagement records sent to the recycle bin will remain there indefinitely, unless undeleted or, in the case of prospect records, permanently deleted (i.e. there’s a two-step deletion process). This gives users some reassurance when decluttering their instance. (Note that tags are not sent to the recycle bin – they are permanently deleted).
- Asset archive: When creating most types of assets, you can set an archive date, when the asset will be moved automatically to the recycle bin.
- Lead/contact deletion: Again, if the prospect’s associated lead/contact record is deleted from Salesforce, the corresponding prospect record is automatically deleted.
- Undeleting: Prospects are automatically undeleted should the prospect submit a form, or there is a change on their associated lead/contact record that triggers the Pardot-Salesforce connector to sync.
Archiving is important to alleviate the burden from the connector sync. Plus, while Account Engagement offers licenses per org (not per user), there is usage-based pricing when it comes to prospect records (priced in blocks of 10,000 prospects). Another cap that is commonly limiting is file storage.
Integrations
To integrate third-party systems, Account Engagement offers multiple options.
- Connectors: Plug-in-and-play integrations for a select number of vendors. While relatively easy to install, there could be limitations in achieving what you want in terms of data points, data manipulation, etc. (the Google Ads connector illustrates this consideration well).
- External actions and external activities: External actions allow you to take actions on prospects, interacting with third-party systems via Engagement Studio (and post data out to them). External activities flip this – the aim is to get prospect activity data from third-party systems into Account Engagement – and make it usable in segmentation and automation.
- Account Engagement API: There is an API that you can tap into, in order to post data into Account Engagement’s objects. With its release a few years back, the v5 API promised an API that adhered to modern best practices.
While we have these options (and other minor ones not mentioned) the question lingering is: “Where do I integrate [third-party tool] – into Account Engagement, or Salesforce?”. It’s a tricky question to provide a short answer to, but one to consider when connecting up your wider tech stack.
Latency Optimization
“Improve how fast your solution responds to requests and demand.” – Well-architected.
The following considerations come under the throughput optimization category:
- Sharing model
- Reports
- User interface (UI)
Account Engagement Sharing Model
How data gets from Salesforce into Account Engagement is not always as simple as the picture we painted in the section about the connector.
Business Units
Account Engagement can be split into different business units – essentially separate databases within a single Account Engagement instance that allow you to partition prospects, campaigns and assets. A common example is an enterprise organization that serves multiple geographies.
Marketing Data Sharing rules define the criteria for which business unit should receive which prospects (via the connector) – in other words, to restrict the data syncing to each business unit. There are considerations here:
- Keep criteria simple. Picklist fields are a good idea because with defined values, they keep segmentation tight, with very little room for error, whereas using a text field that could have a misspelled value.
- If using a private sharing model in Salesforce, or you have multiple Account Engagement business units, you may have deliberate duplicates. These are records that have been duplicated for a reason, in respect to your sharing model. “To have a prospect in multiple business units, create duplicate records that represent the same individual and sync each record with a separate lead or contact.” (source)
There are some records that can be shared across business units, and others that can’t.
Account Engagement User Permissions
Within Account Engagement there are four standard user roles. With the higher Account Engagement editions, you have the option to create custom roles.
Salesforce User Sync
User management happens in Salesforce Setup. Users are synced to Account Engagement, and with Salesforce User Sync, are assigned an Account Engagement role depending on their Salesforce profile. You can see an example of profile mapping below.
The risk here is that users could be granted greater privileges than they should have. Their Account Engagement user role can be updated one-by-one, or via a user import.
Reporting
Account Engagement comes with simple, WYSIWYG reports for certain uses. The beauty of prospect and asset sync to Salesforce core objects is that Salesforce reports and dashboards can be leveraged, viewing Account Engagement data alongside Salesforce data. To report on the Engagement History objects, you need to set up custom report types.
As always with report performance, ensure that users are selecting the correct report type. Selecting a report type that has redundant objects for their needs at that time will impact report generation time. Plus, we all know that avoiding the ‘contains’ operator is a good call.
B2B Marketing Analytics
To take reporting further, there is also B2B Marketing Analytics (B2BMA), an add-on module (that is included in the higher Account Engagement editions). This is a CRM Analytics app that comes with dashboards out-of-the-box. Data syncs from Account Engagement (via the connector) which is then packaged up into datasets to be deployed to B2BMA – another reason to keep a close eye on your connector sync health.
User Interface
Salesforce Admins and Architects will be well-versed on the topic of page load time. Salesforce are working tirelessly to improve the speed at which their rich user interface loads, with the migration of the core Lightning codebase from Aura → Lightning Web Components (LWCs).
Pardot Lightning App
The Pardot Lightning App brings Account Engagement into the Salesforce Lightning Experience (LEX). Users don’t need to leave Salesforce Lightning, instead using the App Launcher (waffle icon, top left) to switch between Account Engagement and Salesforce core clouds.
Out-of-the-Box Components
Account Engagement comes with components you can add to record pages. Examples include:
- Engagement History Components: Engagement History refers to the activities that Pardot Prospects make, eg. email opens, form successes (submissions), landing page views etc. These are synced to Salesforce leads/contacts, where you can add this component.
- Engagement Metrics Components: Sync all activities generated on marketing assets (emails, forms, landing pages etc.) into Salesforce campaigns.
- Engagement History Dashboards: View campaign activity trends via these pre-built dashboards, which can be placed on the campaign, account, lead, contact, or opportunity objects.
- Matched Leads Component: This component sits on an account page layout, and uses a matching rule to seek leads that should be converted into contacts belonging to this account.
Considerations for Using Components
The standard components listed above (and others) are optimized to not cause too much lag in your page load times. However, we should consider our approach to embellishing the user interface. Add components to record pages responsibly, and monitor their impact based on user adoption (feedback on how useful users find them) and page load performance (via the Analyze button) – bear in mind that your org may have other components (standard and/or custom) that need to be considered as a whole page.
The approach to add everything to see what ‘sticks’, then getting user feedback could be the way forward for you. Alternatively, if record pages are becoming cluttered or slow, you can leverage component visibility to show/hide components by the users’ profile, for example, one view for ‘sales’ and another for the ‘marketing’ profile.
Account Engagement (Pardot) Risk Assessment
Identify potential hazards that could impact the operation of your system, users of your system (including employees, partners, and customers), and business processes. Well-Architected
- Is the risk clearly identified?
- Are risks prioritized?
- Does priority reflect the perspective of prospects?
- Does priority reflect the perspective of internal users?
Risk | Affecting what? | Consequences | Mitigation |
---|---|---|---|
Prospect Identifier | Allow Multiple Prospects with Same Email Address (AMPSEA) is an Account Engagement (Pardot) setting that’s enabled by default, where prospects records use CRM ID as the unique identifier (versus email address, as is common in other marketing automation platforms). There are certain behaviors that you need to consider here. For example, a prospect submits a form – that activity will be related to the most recently active record. Also, if importing data into Account Engagement, use the CRM ID (if known), or the most recently active record will be chosen. | Prospect activities could be associated with the incorrect prospect (where one or more prospect records exist with the same email address). Users/automation could take action on the incorrect prospect. | Awareness of AMPSEA behavior and what proportion of the prospect database have the same email address. Work to eliminate accidental duplicates (from the Salesforce side). |
Field Sync Behavior “Most Recently Updated” | If there’s a disparity between the data in a specific field on the prospect record and associated lead/contact record, one behavior is that the most recently updated record wins. | Unexpected results can be produced. With this option the master is the most recently updated record, not the most recently updated field. In other words, when any change is made to the record, not just on your target field. | Awareness of this behavior and of significant database changes happening in quick succession on both sides. |
Custom Object Sync & Segmentation Reliability | You can opt to sync more Salesforce objects to use in segmentation and automation on the Account Engagement side. If your Salesforce data model doesn’t accommodate the desired custom object sync (i.e. in cases where there is no lookup relationship to contacts, accounts, or leads), there are workarounds to inject data into an object that can sync (whether that’s the standard syncing options, or to an object where the appropriate lookup exists to then leverage custom object sync). | Exercising this workaround comes with risks that flows throw errors, and surmounting technical debt could be a consequence. | Monitoring the efficacy of flows making these data changes, ensuring that the correct data is making its way into Account Engagement. Using Salesforce reports, make comparisons between the data in the source object and middle object (contacts, accounts, or leads), and compare this to the segmentation results in Account Engagement. |
Connector Sync Latency | The Salesforce connector for Account Engagement syncs changes to prospect records in batches of 200. As mentioned, the asset queue syncs differently, with no figures disclosed. | This batching is something to bear in mind when a large number of changes are being made in a short period of time. | Awareness of batching when making updates to a large number of records in a short space of time. Other record updates (such as a ‘hot lead’ handover to the sales team) could be delayed. |
Connector Sync Errors (Metadata Changes) | The Salesforce connector for Account Engagement can throw errors when the syncing record cannot be accepted by Salesforce. There are a number of reasons why this could occur, including metadata changes on the Salesforce side not being reflected in Account Engagement. | Until resolved, sync errors prevent any records from syncing from Account Engagement to Salesforce, therefore making data stale. | Monitoring the sync error queue daily, and whenever there are a large number of record updates. Awareness of any changes in Salesforce to field metadata, validation rules, etc. that need to be reflected in Account Engagement. |
Redundant Automation Rules / Engagement Studio Programs | Automation rules are the most broad automation. They can be run, paused, and resumed – you have control. Automation rules have the broadest set of criteria and actions, and can be set to repeat on a schedule. | Depending on the scope of your rule criteria, you could be requesting an automation rule to continually sift through a large proportion of your prospect database to find matching prospects. Then, depending on the number of actions, you could be requesting an automation rule to execute a number of ‘heavy’ actions without realizing. This all slows down your account’s overall processing power. | Review automation rules regularly, and pause any that are not required. Opt for Engagement Studio actions to take action on a subset of prospects. |
Throttling | Throttling in marketing automation exists to limit the automated actions a system can make within a set period of time. Account Engagement applies throttling to autoresponder email sends on completion actions to keep your account’s processing speeds at a good level. | Actions can be prevented if the throttling threshold is reached. | Awareness of throttling behavior and how this could impact ‘busy’ periods in your account. |
Segmentation Queries | How fast segmentation can execute will depend on the:
| Segments will take longer to generate under those factors. | Keep the rules narrow, consider the operators used, and choose a one-off type of automation if the segment doesn’t need to be continually refreshed. |
Database Limits | While Account Engagement offers licenses per org (not per user), there is usage-based pricing when it comes to prospect records (priced in blocks of 10,000 prospects). | Exceeding your prospect limit will incur additional storage costs. | Monitor the number mailable prospect records in your account. Deduplicate records on the Salesforce side, and/or archive prospect records by sending them to the recycle bin. Read more: Hit Your Pardot Prospect (Account Engagement) Data Limit? Here’s What to Do |
Business Unit Sync (deliberate duplicates) | Account Engagement can be split into different business units. Marketing Data Sharing rules define the criteria for which business unit should receive which prospects (via the connector) – in other words, to restrict the data syncing to each business unit. If using a private sharing model in Salesforce, or if you have multiple Account Engagement business units, you may have deliberate duplicates. These are records that have been duplicated for a reason, in respect to your sharing model. “To have a prospect in multiple business units, create duplicate records that represent the same individual and sync each record with a separate lead or contact.” (source) | Deliberate duplicates (if not handled correctly) can cause confusion among your Salesforce user base. | Ensure deliberate duplicates are handled in your Salesforce org using the features of the Salesforce sharing model. Keep Marketing Data Sharing criteria simple. Picklist fields are a good idea because with defined values, they keep segmentation tight, with very little room for error, whereas using a text field could result in a misspelled value. |
Syncing Profiles | User management happens in Salesforce Setup. Users are synced to Account Engagement, and with Salesforce User Sync, are assigned an Account Engagement role depending on their Salesforce profile. You can see an example of profile mapping below. | Left unmonitored, users could be granted greater privileges than they should have. | Monitor the syncing profile mapping, and the role that new users have when landing in Account Engagement. Their Account Engagement user role can be updated one-by-one, or via a user import. |
Report Performance | The beauty of prospect and asset sync to Salesforce core objects is that Salesforce reports and dashboards can be leveraged, viewing Account Engagement data alongside Salesforce data. To report on the Engagement History objects, you need to set up custom report types. | The beauty of prospect and asset sync to Salesforce core objects is that Salesforce reports and dashboards can be leveraged, viewing Account Engagement data alongside Salesforce data. To report on the Engagement History objects, you need to set up custom report types. Choosing a report type with unnecessary objects (that aren’t required for the use case) will slow down report generation. | Ensure that users are selecting the correct report type. Selecting a report type that has redundant objects for their needs at that time will impact report generation time. Plus, we all know that avoiding the “contains” operator is a good call. |
B2B Marketing Analytics | To take reporting further, there is also B2B Marketing Analytics (B2BMA), an add-on module (that is included in the higher Account Engagement editions). This is a CRM Analytics app that comes with dashboards out-of-the-box. | Data syncs from Account Engagement (via the connector) which is then packaged up into datasets to be deployed to B2BMA. Connector sync errors will impact the data quality. | Another reason to keep a close eye on your connector sync health. |
Page Load Speed | Account Engagement comes with components you can add to record pages. The standard components are optimized to not cause too much lag in your page load times. | Bear in mind that your org may have other components (standard and/or custom) that need to be considered as a whole page. Too many components on record pages can overwhelm users. | Add components to record pages responsibly, and monitor their impact based on user adoption (feedback on how useful users find them) and page load performance (via the Analyze button). The approach to add everything to see what ‘sticks’, then getting user feedback could be the way forward for you. Alternatively, if record pages are becoming cluttered or slow, you can leverage component visibility to show/hide components by the users’ profile, for example, one view for ‘sales’ and another for the ‘marketing’ profile. |
Testing Assets | Assets (such as forms, landing pages, and emails) are stitched together with automation in order to carry a prospect through a journey. Assets, themselves, can break or be accidentally amended (for example, changes in the underlying CSS). Automation and metadata changes can also unintentionally affect their effectiveness. | These breakages could go unnoticed, impacting the prospect journey, conversion rates, and data quality. | Put in place a routine to check all live assets, prioritizing those that are high impact. Read more: How to Test Pardot (Account Engagement) Automation and Assets |
Summary
Account Engagement (Pardot) is an interesting avenue for architects to explore, and there are many ways to optimize Account Engagement instances. Leveraging the tenets of the well-architected framework this guide has helped you understand the considerations you should be making as Account Engagement becomes evermore sophisticated and powerful.