How to setup Declarative Lookup Rollup Summary

A long time ago I fell in love with Declarative Lookup Rollup Summary aka DLRS. It allows me to do things which are impossible to do with standard rollup summary fields and I also don’t have to write any code.

Actually, when I saw it for the first time I was scared. I found the UI not intuitive enough and rather choose Rollup Helper, even thought that solution is limited for three rollups (if you don’t want to pay anything).

But than came the moment when I really needed a few more and I realised it is pretty easy to setup DLRS. At least I thought at that time, even though I didn’t really took any advantage of all the things it offers.

What it does and why to use that?

Let’s start with that it does It calculate values from all related record. The standard rollup fields work only on Master-Details relation and cannot really handly any time-based calculations.

DLRS can handle any type of relations, can run on schedule which means time-based calculations are possible, and can also „roll-up“ text fields, meaning it can create for example a comma separated list of all related contacts. And that’s pretty handy.

Why not use trigger?

Of course you can use trigger to achieve anything you want. The problem is that it is a code you need to write PLUS when you change the calculation you need to update all records to recalculate it.

The beauty of DLRS is, that when you update your calculation you can just re-run it and have updated values without any extra work.

Why not use process builder and flow?

Of course you can use flow to do the calculation, even Salesforce provides you an example. The super important point is at the end – „This solution does not run on record delete.“

How it works?

You just install the app from the link (or more detail explanation how to install it) and define the configuration for each rollup you need. One such example below, you just specify the objects, relationship field, criteria and which field you want to sum into which one?

Save and either schedule or deploy a trigger and run it in real time.

DLRS definition of calculation

And here is the trick I found after many years. I mean you cannot do anything wrong about scheduling or running real time, you can just do better and here is what you need to know.

DLRS is surprisingly clever. It doesn’t have to process all records in scheduled mode – as I always thought – it can process only subset of them. Those which were changed. And if I got it right, this is how you should do it.

Full calculate

Select Process Builder mode (doesn’t really make sense as you don’t have to use PB at all, but whatever) and click Schedule Calculate. You can set your WHERE clause on parent object if you want to limit it, set dates/times and you are good, nothing else need as DLRS will do everything for you.

Incremental Calculate

Maybe you have plenty of record and the recalculation takes for ever (like the custom written scheduled class I have in one org which runs for the whole day).

In such case you will deploy the trigger (with Manage Child Trigger button) and you will set the mode to Scheduled, because realtime probably doesn’t make sense or you don’t really want to run it realtime. Then you will manually schedule the RollupJob class to which time you want and at that time it will process ALL scheduled tasks to do.

Napiš komentář, díky!

Which certifications should I take?

A while ago Alena wrote for me an article asking whether customers should pass certification exams as well.

A year ago David Liu wrote an article how many certifications you need (seven).

And the final straw for putting this article together was Ben’s infographic about certification pathways, which my team loved and I realised it doesn’t really says much, it just visualise the prerequisites.

I don’t have all the certifications, but I can still have some opinions, right?

You want to be an admin

Being admin to me primarily means knowing a bit about security, managing the system (creating users, groups, etc.) and less about designing apps.

Administrator is the obvious one for the start, if you work for a big company with territories and such thing the Advanced Admin make sense as well.

I would also wander into the „architect“ track and take a look at Data Architecture & Management Designer which might help you when importing and managing data.

You want to create apps

You want to customise the system, right?

Platform App Builder to get more about all the automation and such things, then follow the paragraph above (the Data Architecture will be awesome for you) and on top of that do the Sharing & Visibility, because you want to know how to design secure apps. Development Lifecycle as a bonus, so you know the proper practice which you can ignore later on.

And of course the Sales and Service Consultant (depend on what part of Salesforce you primarily plan to utilise) as you need to know what comes out of the box and you don’t have to do much to use it.

I can imagine that you will be scared by Platform Developer, but do the PD1 as it will help you to realise what can be done by clicks and where you need to code. And how hard the coding can be, you don’t have to develop after that, but being able to understand developers will help you a lot.

You want to help business

You don’t really want to be technical, you want to be more partner for your users and managers, right?

Sorry, you need to take the Administrator, but then you can continue with Sales/Service/NPSP/Eda/Pardot/Marketing Cloud consultants, depending on which way you like more.

Sales is primarily about selling, managing sales reps, putting together the forecasting and reporting back how great the number will be. On top of Sales you might want to do the CPQ one, if you use it and have a need for more complex quoting process. And Einstein Analytics if you want to have extended analytics.

Service is primarily about call centres, knowledge bases and all these things. You might want to do Community on top of it, so you can offer self-service to your clients. And Einstein Analytics for reporting. Doing Service you might also expect that you will need to learn more about telephony, all the different social networks and their monitoring (hello Marketing Cloud, this combination is quite common). Maybe FSL if you have technician in the field (this might be interesting for the people doing Sales as well, even though it is by default not connected).

NPSP is for non-profits/EDA is for education – if you really want to know how to utilise these extra packages and use them fully.

Community – I mostly feel it is the cherry on top, there are organisations which use it on its own, but usually there is the „second“ part of it – either Sales or Service Cloud.

And then the marketing part, where the easy division says Pardot is B2B while Marketing Cloud is B2C, but it isn’t really the best distinction and I suppose that once upon a time these two products will be one. Pardot is definitely easier for implementation and learning what is in (basically email only), while Marketing Cloud implementation is bastard on its own and can be probably the most complex from all the different clouds.

You want to be CTA

CTA = Certified Technical Architect.

Go for everything. To me being a good CTA doesn’t mean only the technical part, you really want to understand the business and have all the overlaps to other technologies, knowing how marketing might work, that Service needs telephony and what can be achieved there, completely outside Salesforce.

This is the role which needs to do the Identity one, for Admin it is nice to have if you are really big organisation but they will not really use it. As CTA you need to know it as well as Integration.

Can we ignore all those you didn’t mention?

Not at all! I would say if there is an area with which you will get in touch, do the certification.

Integration Architecture? The moment you want to integrate with something it might be a great idea to learn more.

The same goes with Identify – if you have multiple systems for holding identify you might want to know more how to integrate them together.

Do it!

And now go for it. Pick the first one and prepare for it. You don’t have to pass, you need to go through the preparation to learn more about areas of Salesforce you didn’t care about before and which might make your life way easier.

Good luck!

Napiš komentář, díky!

Permission Set Groups

Salesforce says it clearly for quite a while and at the same time doesn’t fully allow us to do it – migrate from Profiles to Permission Sets.

In Spring ’20 they made the Permission Set Groups generally available and we are able to play with new ways how to setup permissions in our instances.

The biggest difference between Profiles and Permission Sets – as you know for sure – is that each user has to have one profile and can have one or more permission sets. The rights get extend with every new privilege, you cannot remove it if some other profile/perm set allows it.

The problem was, that at some instances there were a lot of permission sets and admins weren’t really sure, which they should assign to users and forget some of them – Permission Set Groups to their rescue. And when Salesforce was at it they also created a way we can mute certain permissions to maybe simplify our permission sets model.

The muting part catch my attention, so I did some testing to see, what I need to change when implementing it.

Migrate Profiles to Permission Sets

It is probably obvious but you don’t really believe it at the beginning. We (I) were so used to the coexistence of profiles and permission sets that it really didn’t matter where I set things as long as it fulfilled the request and don’t over extend the rights.

Sadly, the muting permission sets can only mute things set by permission sets in the Permission Set Group. So if you profile says that person has right to delete accounts and edit their web field, there is nothing you can do about it. You need to create a permission set, migrate these permission into it, assign it to all people with that profile and finally remove it from profile.

The same goes for record types – if you want some record types mute for users you need to set them in permission set.

Or if you assign permission set with these rights directly to user (and not via group) you cannot do anything about it. Remove permission sets from users, assign them to permission set group, which is assigned to users.

How to set it

It is super easy at the end. There is a new section in Setup, where you can create a new Permission Set Group.

Permission Set Groups

It is super simple inside, basically just two sections on top and super important part in the bottom.

Permission Set Group detail

At the top you link your existing Permission Sets, which should be included in this group. You can also add (and create) muting permission sets, which are visible only here and you cannot see them between other Permission Sets.

The bottom section is as important as the top one. Here you can see the result, can quickly check any object or anything and see what it will mean for the user, which permission they will really have.

The muting permission set looks about the same as standard permission set, it just have some extra columns everywhere.

Muting Permission Set

For example on object settings you cannot edit the „Enabled“ columns (including Read and Edit access) as they are inherited from the permission sets you included in the group as well. But you can edit the „Muted“ columns and mute things you don’t like.

At the end you assign the group to users the same way you would do with Permission Sets and it is visible on the user in the same way.

Continuous Integration?

You might be one of those who use repository and their source of truth isn’t in the instance. You have all your Profiles and Permission Sets there and you really like that you can download your PermissionSetGroup records as well. Sadly the MutingPermissionSet metadata aren’t supported by Salesforce DX at the moment (version 7.56.1), but it will be available soon (hopefully).

How universal is it?

I started this whole quest because of one client, who had a problem with Enhanced Notes editing. For some unknown reason inside Salesforce, only the author of the note (and those with Modify All Data) can edit it, because „you can only give others viewer access, because Notes does not support simultaneous editing. If multiple people edit a note at the same time, they overwrite each other’s content.“ Yeah, there is an idea for it.

At the time of tests for some reason the Modify All Data assigned through permission sets didn’t work, according to support it works as designed.

But when you grant the same permission on Permission set, as per permission sets functionality it grants extended access to the users who do not has access to specific functionality, this permission is not object specific and is not related to any specific functionality due to which all the basic permissions are taking into consideration for profile. For more details you can check https://developer.salesforce.com/forums/?id=9060G000000MPePQAW

I didn’t really get the explanation but it doesn’t matter as now it works as expected – you assign Modify All Data in permission set and you can then mute for example Delete right for one object. Magic, but exactly the one I like.

Will I migrate?

Well, it is tempting, but at the same time for most of my clients I’m more than happy with profiles, they are also supported everywhere (page layouts, Lightning Page assignments and such things) so I don’t feel that migration to permission sets would be beneficial.

Napiš komentář, díky!

Marketing Cloud Rocks

Mass marketing is for marketing dinosaurs. Digital marketing is old-school. We have already stepped out of these types of marketing. We live in the era of emerging Intelligent Marketing, which is totally transforming the customer experience.

Marketing department is no more a team of people who just plan campaigns to spam people. Marketing experts are working on deploying intelligent marketing strategies which nurture potential customers and engage with the existing ones through relevant communication channels (email, SMS, push notifications, social media, etc.)

This is all of course backed by customers’ consent and preference in accordance with the GDPR. Intelligent marketing strategy also includes data source connection and data organization, audience segmentation and customer experience optimization, web and email personalization with artificial intelligence, as well as deep data analysis and reporting. All of the above and much more is supported with the help of Salesforce Marketing Cloud (SFMC) – the most powerful and transforming marketing tool ever.

Covering all the simple and complex functionalities that Marketing Cloud can handle would be worth writing a whole book or even a series of them. Here and now I would like to cover some of the most useful SFMC points from my perspective. Let’s dive in.

Keep up your IP reputation as your personal one

Billions of emails are sent out by Marketing Cloud every day. No matter how big your email campaigns are, you need to maintain a good IP reputation.

Improving your deliverability is a continuous process and not just one-time action. My suggested approach is to proactively remove hard-bounced email addresses by placing them in a suppression list, unsubscribing them or even removing them completely, otherwise it could drastically harm your reputation among ESPs.

Tip: track those hard-bounced addresses from each sent email by going in Email Studio, then Tracking, and then Sends.

Remember hygiene. Data hygiene

Marketing Cloud can help you identify inactive subscribers and you can decide whether to dive deeper to find the reason of their inactivity and try to nurture them further or consider deleting those contacts.

My suggested action: place inactive subscribers separately in a suppression list, or delete them completely to reduce the cost of All Contacts and to maintain capacity for those engaged with your brand and communication.

Tip: create a Report of Unengaged Subscribers for a List in Analytics Builder.

In case you want to see the flip side of the coin and get those most active customers whom you want to reward and target with a special marketing campaign, there is another type of report to discover. Customer Engagement is measured in Marketing Cloud by clicks and opens of the emails delivered. To get this information, simply run Subscriber Engagement Report from Analytics Builder.

Butterfly Effect in Solution Design

When managing several Business Units in Marketing Cloud, there is one important architecture consideration for Enterprise 2.0 accounts: think about unique identifiers for your subscribers in advance. Each of your subscribers, no matter in which Business Unit they are held, should have their unique specified subscriber key in the data relationship.

Imagine this situation: you have the same subscriber key (12345) for two different subscribers with different email addresses who are held in two different BUs. One time you send an email to the subscriber held in BU 1, so there is a new subscriber created in All Subscribers list with their own subscriber key. After a while, another email campaign is built in BU 2 and you send an email to another subscriber in BU 2, but with the same key as the previously mentioned subscriber. Marketing Cloud will search for the key, find the already existing one and send your email to this subscriber’s email address from BU 1. That is not the desired action, right?

My suggested action: to prevent this situation from happening, consider a unique identifier for subscribers held across all SFMC Business Units.

SFMC Buttefly effect

Add a personal touch to the emails

In Marketing Cloud, we build targeted, engaging and personalized emails. Each email is unique for every single customer: the very opposite of spamming. Here are the tools supporting smart email building (ranked from the easiest on the top to the advanced options at the bottom):

Being a reporting hero

Despite the lack of advanced custom reporting in Marketing Cloud (for now), you can still use the available reporting toolset across the platform.

If you want some standardized reporting data, check the 65 options available in Standard Reports. If you want to explore the performance of each and every email sent out, go to Email Studio, then Tracking, and then Sends. All information regarding mass, single, triggered sends, journey emails as well as the results of A/B testing are held here. Journey performance can be found in Journey Analytics Dashboard (when integrated with Google Analytics 360, you can see even more insightful integrated data!)

Do you want to dive into something more advanced? Go for it and query raw data from Data Views in the backend of Marketing Cloud. The full list of available attributes is available here.

Go above and beyond

Out of the box functionalities are great but might not meet all your business requirements. And this is where Marketing Cloud is extremely flexible again! There are many options for customization, from creating custom content blocks for Content Builder to building custom activities for Journey Builder or creating your own Marketing Cloud App that can be „iframed“ into the platform.

Tip: explore developer.salesforce.com or contact Isobar experts.

Wrap-up

Marketing Cloud is a powerful tool that can help you understand the behavior of your customers, use artificial intelligence for personalization and engage your customers across the entire journey. The sheer quantity and broad potential of Marketing Cloud requires good knowledge of the business and a creative approach. If you are not sure that your approach can bring the desired results, feel free to engage the support of an experienced Salesforce partner. Their assistance and guidance will drive better results and help you avoid many pitfalls along the way.

Ekaterina Obolenskaya

Ekaterina Obolenskaya is a certified Senior Salesforce Marketing Cloud Solution Architect and Developer working and delivering in Isobar Switzerland. She has also been named as Salesforce Marketing Champion. She has acquired extensive work experience as SFDC Specialist and her current role of SFMC professional enables her to support smart digital transformation and improvements of marketing processes for a large number of international companies. She is also a long-time Trailblazer and Salesforce enthusiast who participates in and supports various Ohana events.

Napiš komentář, díky!

Heroku Architecture Designer

I had this certification on my list the moment I found about it. Which was a long time ago and I’ve been postponing and postponing and had more important things to do.

Salesforce Certified Heroku Architecture Designer

But as I finished reading of the Mastering Salesforce DevOps book (which has nothing to do with Heroku) I found the time and energy, because the DevOps process still fascinates me.

Actually the best driver to pass this exam was the article from John Tucker, which – surprise, surprise – isn’t really that much relevant for the exam (from my experience), but nicely shows what is possible. All the buildpacks, slugs, dynos, releases, continues integration, review apps. Looks AWESOME, I have no usecase for half of that, but I watched every single video on that page, even though I hate videos as much as possible.

Susannah article brought the important things to my attention and then it was matter of going through Heroku documentation, read every single article there and play a bit with what I could.

Done, certification ready, certification booked and it will start in next 10 minutes, quickly update Kryterion software, click through the test return back to a few questions and fail by one answer. Nice, great to know that I have 100 % knowledge of Heroku, but I didn’t excel in Security.

Ok, I knew which answers were wrong, refresh the knowledge and book another exam, this time the first slot was in a month period 🙁

You really should know about the difference between Common Runtime and Private Spaces, VPN connections and routing and what can communicate with what, I didn’t have probably a single question about Redis, quite a few about Postgres and one or two about Kafka. Been surprised that some things are always served from US (Data Clips, PGBackup and Logplex). Enterprise teams, SSO, logging, Heroku Connect and a few extra things.

Yeah, I really will be DevOps in my next life, all the integrations with AWS or Google, the technology looks awesome. I might create some nice data center in my backyard.

Ready, steady, go and pass, another crossed on my list. What’s next – Marketing Administrator or something from MuleSoft? Recommendations?

Napiš komentář, díky!