legacy issues

  • Cutting the Clutter: Maintaining a Clean Salesforce Org

    Maintaining a clean Salesforce org, doesn’t need to be a battle. Recently, I was watching a great webinar by Kelly & Leanne entitled ‘Cut that Clutter‘. And it got me thinking about how the problems faced by a cluttered Salesforce, and how it can easily consume an Admin’s time and effort. And it not only affects us as Admins, but also our end users! So in this post I am going to recap some of the awesome tips shared in this webinar, and also see offer some additional FREE tools to tackle the problem that so many of us face!

    The War Against Clutter

    Ok, ok. I admit that this header is full of hyperbole.

    Maintaining a Clean Salsforce, shouldn't be a battle...
    Don’t raise the white flag, in the war against clutter!

    But a cluttered Salesforce creates a lot of frustration and anxiety for me. And I assume most it does for most of you reading this too! My personal vendetta against clutter drives me to ensure I am always improving the org for my end-users…

    I have previously written about how we started to tame the Technical Debt beast haunting our primary orgs and removed over 2 million records from an org (hint: very manually).

    But there is still so much to do…

    It is a seemingly never-ending fight. But as Admin’s we are always looking for tools and resources to help us in our day to day Admin Superhero duties. And to help us in maintaining a clean Salesforce org…

    Cut that Clutter! – The Recap

    Now before we get much further. If you have a spare 30mins I strongly recommend that you watch the webinar as I am only going to briefly summarise it here…

    The session covers the Three-S’s. These are the primary areas to focus on, to ensure your CRM is kept in tip-top shape.

    • Security – making sure you know who can see what in your CRM
    • Structure – does the setup of Salesforce ensure data security and meet any data governance requirements
    • Strategy – how to plan and scale while ensuring you don’t have to keep doing ‘big clean-ups’ each year

    If you want to hear more, then please check out the video.

    Cut that Clutter: Resources mentioned

    Next up, the ladies mentioned some great tools to help you in maintaining your Salesforce org.

    From Salesforce:

    • Salesforce Optimizer (aka Optimiser in non-US/Canada countries ūüôā ) – I am in LOVE with Optimizer reports. It is such an amazing tool to help you analyse and understand where the Technical Debt is likely to be hiding within your org. This should be your first port of call, in maintaining a clean Salesforce. That is how much I love it!
    • Security Health Check – helps you understand any vulnerabilities you may have within your Salesforce. This covers areas like Password Policies, Critical Updates, etc.

    From AppExchange:

    • Field Trip – this tool is one I install in every org I have managed now for a number of years!! It is a great tool to help analyse and understand just which fields are being populated and used by your end users. It is worth noting, that if you have a field that is always updated automatically by a trigger/workflow… Then it will obviously show as being used, even if that trigger/workflow update isn’t actually required. But overall it will help you understand your org in very tangible way.
    • The Permissioner – can help you when mass assigning/removing Permission Sets from your users.

    From Trailhead:

    Additionally the ladies have set up an Admin Trailmix.

    This covers a number of modules covering: Salesforce Profiles/Permission Sets, User Authentication, Data Quality, Data Management and finally Reporting & Dashboards.

    Help with maintaining a clean Salesforce org

    Extra, extra! Two more tools to add to your Salesforce Cleaning toolkit…

    Now for the bonus round.

    There are always so many tools and ideas out there helping admins when maintaining a clean Salesforce org. And I am only skimming the surface with these next two tools…

    Compare Permission Sets & Profiles

    When watching the webinar, albeit not live, I started shouting at my screen.

    During the Security section, there was a point around Profiles/Permission Sets. As an admin it is a mammoth task to compare all profiles/permission sets and what they might grant access to within your org. This can be kryptonite to Salesforce Superadmins…

    There was a recommendation to switch off Enhanced Profile View, and then compare the permissions… But why do that? Especially, when there is a secret weapon at your disposal?

    Perm Comparator by John Brock is that secret weapon!

    Seriously… More people need to know about this tool! And I am not even on commission! ūüôā

    Stop duplicates in their tracks…

    Salesforce hasn’t always been an admin’s best friend when it came to cleaning an org…And without getting all ‘back in my day’-ish…

    But there was a time Optimizer, Security Health Check and those tools simply didn’t exist.

    There was also a time Salesforce didn’t have an easy way to prevent duplicates… Admins had to either buy other tools to identify and manage duplicates, or create complex formulas and validation rules to try and prevent exact match duplicates.

    But when planning your strategy for maintaining a clean Salesforce, you should investigate the in-built duplicate management tools from Salesforce.

    After all, what good is cleaning up your security (profiles, access policies, passwords) and clearing out fields you don’t use any more – if your end users are still swimming in duplicate records?!

    The in-built feature will take care of the basics, but depending on your use case, there may still be a reason to buy a tool like Cloudingo or DemandTools (just to name a few).

    What is in your toolkit?

    De-cluttering your Salesforce can be so rewarding!
    De-cluttering can be so rewarding!

    As I mentioned I only skimmed the surface here… And this is a topic I can (and will likely) write more about in the future. I have rambled more than enough for now…

    So to wrap up the post, feel free to add any other suggestions or recommendations for your ‘Cleaning Salesforce Toolkit’ into the comments section below.

  • Spring ’18 Deep Dive: GDPR Features

    Simple put, GDPR is inescapable for those dealing with individuals within the EU.¬† In the last post¬†we took a look at what GDPR is and how to start preparing for it.¬† Additionally, within the next month we also have Spring ’18 release going live.¬† So the good news is there is a number of GDPR features included to assist Admins prepare…

    Recap: What is GDPR?

    General Data Protection Regulation, otherwise known as GDPR, is the new privacy regulation coming into force in 2018.  It will replace the EU’s previous Data Protection Directive, and align privacy laws and regulations across all EU member states.

    Part of the GDPR is the retention and removal processes re: personal data after a period of time.  Companies should only retain personal data for as long as needed.  So for example, if you have contact details of a person which is linked to contract data you may need to retain it for 7 years.  Versus simply having a contact on a mailing list, retaining the data for this long may not be justifiable.

    For more details, take a look at my last post for the what/when/how of GDPR.

    GDPR: Be Prepared

    GDPR is ultimately an update to a number of data/privacy regulations across the EU.  But the easiest place to start for most companies is to map out and understand the following: 

    • where your data comes from. (eg web-to-lead, email-to-case, data.com, users entering in the data),
    • how it gets used/stored. (eg are there integrations which also use the data, is it stored outside of Salesforce, are records stored in standard and custom objects within Salesforce),
    • what business processes which clean up or remove data. (ie how long does your company need hold onto personal data for (and for what purpose)? Is there already a process to remove personal data?)

    Once you understand there where, how and what of your data, you will then understand where the following features and changes may help and support you.

    Spring ’18 & GDPR Features

    Salesforce Data Privacy Record - aka Individual Record
    A sample Salesforce Data Privacy Record – aka Individual Record in Spring ’18 Preview Sandbox¬†(click to view full image)

    Data Privacy Records (aka Individuals)

    Spring ’18 release brings with it a new setting under Company Profile within Setup.¬† The setting to enable¬†Data Protection and Privacy, will expose the new object ‘Individuals’ within your org.

    This new object connects to either a contact or lead record within Salesforce to store data privacy settings for that person.¬†So for example you can store the customer’s preference re: soliciting products and services.

    A key note here is that in the preview instances of Spring ’18, Individuals it isn’t treated like other objects and doesn’t have a standard tab available to access the object.

    But a gentle word to note before we go through how to set this up.¬† As with any changes to a production system, it will require planning before¬†setting this up to ensure it works for your processes.¬† A number of these changes below may also require assistance from a developer or changes to your marketing platform via API.¬† This is not entirely a point and click setup…

    1. Activate the feature within Setup

    Lightning: Setup -> Company Settings -> Data Protection and Privacy
    Classic: Setup -> Company Profile -> Data Protection and Privacy

    This will expose the new Individual object, with the standard fields within your org.  Most of these fields are created for the purpose of tracking opt-out requests and personal preferences.

    Some examples include:

    If a contact opts-out of geo-location tracking, you can store that preference here.

    You can even store the D.O.B of the person and indicate if they are considered a minor or not.  (You might need to do this as minors carry different standards for elements like data retention under GDPR.)

    And good news is you can also add custom fields to this object if you wish to.

    2. Update Page Layouts

    Add field to relevant page layouts on contact & lead objects.¬† Salesforce also suggests to rename the field label from ‘Individual’ to something more meaningful to your users.

    3. Existing Contacts/Lead Records

    There is a code-based solution to create data privacy records for existing contacts & leads within your Salesforce, which also includes code for handling person accounts.

    I won’t go through the code here.¬† But if you are interested, you can take a sample of the code¬†here.¬† Remember you will need to execute this somehow (ie start the code running), so you may need help from a developer friend(s).

    4. New / Changes to Preferences

    Finally, you will also need to plan how new records get managed within Salesforce.

    Will an Individual record be created when a contact or lead is created?  What about field updates / etc?  Do you do this via a trigger in Salesforce or via API from your email platform?

    And what do you get at the end of this?¬† A new record of course … ūüôā


    bad data quality ahead

    Data Quality & Duplicate Jobs

    GDPR features in Spring also come in the form of expanded functionality.¬† Spring ’18 release provides an update for its out-of-the-box duplicate management to allow Admins to run a duplicate job.

    Previously matching rules would run when a record was being added or updated by a user.  This would then either alert the user or block the user, depending on how the Admin had set it up.

    But in Spring ’18 release, us Admins can now run a “Duplicate Job“.¬† This allows you to use (or create) a matching rule and then run a search within Salesforce to find duplicates.¬† Once a Duplicate Job completes, you will be able to take action by comparing and merging records, right from the summary page.

    Duplicate Job within Spring 18 release
    Duplicate Job within Spring 18 release.

    Changes to Web to Case and Web to Lead

    Spring ’18 release also brings another¬†GDPR feature.¬† This time there is a slight update to how failed Web-to-Case and Web-to-Lead emails are handled.

    When a Web-to-Case and Web-to-Lead fails an email is generated automatically to advise.  This email will no longer include any personal data inserted by a third-party application.

    Data.com for UK/Ireland Contacts

    This only impacts users who are using Data.com Prospector or Clean.

    Data relating to contacts stored within Data.com Connect (only UK & Ireland) will now be removed from the Connect database.

    Also the Clean Status field on a Contact/Lead records will be changed to ‘Not Found’.

    Wrap Up

    As you can see there is a lot to cover, and Salesforce is enabling businesses to become GDPR compliant with all the GDPR features in Spring ’18.¬† There is still more to read in the Release Notes for Spring ’18 if you are using other tools like Pardot, Inbox or a developer (specifically around Event Logs).

    There is support at hand, and if you haven’t already I would strongly recommend completing the Trailhead modules setup for GDPR¬†Basics (and there is also a trail for US Privacy Basics too).

    Additionally Salesforce has a new section in the Help for Data Protection & Privacy.

    And finally there is a basic scenario guide, which looks at a number of common requests and suggested actions/things to consider to be compliant under the various privacy laws (including GPDR).

  • GDPR for Salesforce Admins

    There has been a lot of attention surrounding GDPR.  But what is it?  Why does it matter?  How will GDPR affect your Salesforce?  What responsibilities do you have as a Salesforce Administrator?  And what can you do to prepare?  So many questions!  In this article we take a quick look at these questions and some additional resources available to you, when preparing for this change.

    What is GDPR?

    First up, let’s take a look into what exactly GDPR is.

    General Data Protection Regulation, otherwise known as GDPR, is the new privacy regulation coming into force in 2018.¬† It will replace the EU’s previous¬†Data Protection Directive, and¬†align privacy laws and regulations across all EU member states.

    It is primarily aimed at giving individuals more control over how their data can be collected, used, and stored.  While also extending the rights of individuals to have their data removed/deleted.

    One key point to note.  Even though this is obviously applicable for all EU countries, it may also apply to any business which deals with personal data of an individual within these countries.  So if you are in USA, India or even Fiji Рbut dealing with personal data from an individual living within the EU РGDPR will still apply.

    When will GDPR take affect?

    The legislation will take affect from the 25th May 2018.

    What is ‘personal data’?

    Another thing to consider is how GDPR will redefine what is considered to be ‘personal data’.¬† Overall the definition has been clarified and it will include ways modern technology allow an individual to be identified.

    Personal data, relates to any information which can identify an individual.¬† This could be either directly (for example a person’s name) or indirectly (a unique online identifier/ID or geolocation data).¬† The purpose of GDPR here is to clarify and provide stronger governance towards what is personal data.¬† Especially when compared to the preceding legislation.

    What can you do to prepare?

    At this stage it is worth pointing out this is something that potentially needs company-wide buy-in and support especially from your organisation’s leadership team.

    Keep calm and comply with GDPR


    The first step is to be aware of the changes, we have taken some of the first steps here.

    Salesforce is trying to support its users through the pending change. The responsibility though relies on end-users to ensure compliance.  And to that end they have published a Trailhead module to support their users.

    The Spring ’18 release also includes a number of changes to support users with GDPR.


    If your company hasn’t started the process to confirm compliance, then it is worth having a discussion with your manager or with your companies designated Data Protection Officer.

    GPDR is an enhancement from previous legislation so the changes required might be small, but it is important to understand how those changes could impact to your business.

    For example, say your business relies on email marketing.¬† Your contact lists may not contain details on how the individual’s consent has been attained.¬† With GDPR, it may be worth investigating your requirements for that data and plan how to reconfirm or get consent.

    Which leads us nicely onto the next step…

    Map your data processes

    A key to being able to understand any risks relating to GDPR and your Salesforce is to map out how data enters your Salesforce org.

    data storage

    Is it a web-to-lead form?  Or perhaps a landing page describing your products that tracks user behaviour via Marketing Cloud?  Or do your sales team import contacts via Data.com?

    What happens to it once it is in Salesforce?  Is it stored as leads, contacts, person accounts?  Do you have custom fields on objects containing personal data?

    This is a chance to get all these flows down on paper.  And remember to include if there are any prompts for user opt-in and what the purpose of the data is.

    Are there any other resources to help me?

    So as we wrap up here, it is worth mentioning that we have only just started to scratch the GDPR surface.

    The changes come into affect in May, so there is still time to prepare.¬† And if you were compliant with previous legislation like the Data Protection Act here in the UK, then GDPR may be an extension of your existing processes.¬† But don’t take this as legal advice!

    There are a number of great resources available to help companies with this transition.

    For Salesforce users:

    • as previously mentioned, I would start with Trailhead.
    • Salesforce has now also published a Data Protection & Privacy guide in the Help section, and
    • check the Spring ’18 release notes, as there are a number of features changing (or added to the platform) due to GDPR

    Additionally, I found a number of site relating to GDPR when preparing this post:

  • Technical debt in a legacy org

    Does technical debt keep you up at night?

    The bogey-man that is technical debt can sneak up on you when you are least expecting.¬† It adds complexity and delays releases, and¬†is something you always have to remain vigilant of.¬† But you can master it, and minimise its impact…

    What is ‘Technical Debt’?

    Let’s just jump straight on in and define the topic of today.¬† I sourced this from Wikipedia:

    Technical debt can be compared to monetary debt.¬† If technical debt is not repaid, it can accumulate ‘interest’, making it harder to implement changes later on. Unaddressed technical debt increases software entropy. Technical debt is not necessarily a bad thing, and sometimes (e.g., as a proof-of-concept) technical debt is required to move projects forward.

    Based on that definition, can you start to think of parts in your Salesforce which may cause issues when you try to release a new feature? Technical debt and a legacy org can¬†easily go hand in hand.¬†¬† But it doesn’t have to.¬† It does rely on proper governance to minimise the challenges presented and stop them from becoming unwieldy.

    A legacy org

    As my first post alluded to, I am currently working with a legacy Salesforce org.

    When I say legacy, I mean 10+ years on Salesforce!!  Now as you might imagine, this presents some unique challenges for the business especially as we try to drive growth across the business.

    What are some of the challenges?¬† Things like the custom fiscal year feature were enabled, for no reason, within the org.¬† In turn this blocked us from upgrading from Customisable Forecasts to the newer Collaborative Forecast module…¬† (FYI this did change in the Spring ’16 release)

    We also have countless workflows on certain objects.  These perform core functions for a number of our teams, but means it is a challenge to unpick these one by one.  Instead there was a plan B, by requesting Salesforce Support to increase our workflow limit.

    Help is at hand

    After doing a bit of searching I have just stumbled across this video. I strongly recommend watching this session, as it details how AON reduced technical debt within their Salesforce instance by setting up strong governance practices.¬† For me this is quite topical, and as a bonus it looks like it was from Dreamforce ’16, so quite a recent discussion!

    Now these issues can pop up in any org, it isn’t a problem exclusively for legacy orgs.

    The key really is to address the issues head on and address any deficit in your roadmap.  Then you need to ensure that there is governance in place to help maintain and prevent the org from returning to its former state.  And finally, this needs to be communicated, with all stakeholders onboard.

    P.S. I will take this opportunity to apologise as well.¬† This theme of technical debt is one that I dwell a bit over the coming weeks ūüôā¬† My next post will look at some of the tools I have used to define and quantify where the debt is in your org…

  • A journey through a legacy Salesforce org’s schema

    One of the most painful experiences I have had in recent times with anything ‘Salesforce-y’ happened today.

    As part of an upcoming project, we really needed a high level Entity-Relationship Diagram (ERD) – sounds simple enough.

    Firstly, what is an ERD?  In its simplest form, it is a diagram which allows you to illustrate how different tables in a database connect to each other.  In Salesforce, these connections are the Master-Detail or Lookup field types we can add to an object.

    The in-built Schema Builder within Salesforce is generally a good tool for a select number of tables and while viewing online.  When you are trying to view all objects within an org this becomes quite difficult.

    Likewise I tried a two products from the AppExchange. One wouldn’t load at all, and the other was unreadable when attempting to print it out as a PDF or view it in a image program like Microsoft Paint.¬† *sigh*

    After a bit of googling, I spent most of today setting up the ODBC connector for Visio 2010 from Progress (find out more here).  Once installed you can use the Reverse Engineer feature of Visio to build an ERD.

    But warning, it wasn’t straight forward and the most painful part was the fact the import wizard pulls through all custom permissions/metadata types/settings & system metadata, in addition to standard and custom objects.¬† Scrolling through the wizard to tick/untick all items which aren’t actually objects was painstaking!

    But a good workman never blames his (or her) tools.

    What was the lesson of the day, where did the pain actually start?

    The main issue here is actually the fact it is a legacy org (10+ years).¬† Simply put the instance of Salesforce we needed to run it on has too much junk in it and has become really ‘cluttered’.

    The biggest learning here was to ensure you have governance in place to clean your instance of Salesforce as you go.  Some of the questions we had to answer included:

    • Does the business still need those custom fields that were added for that team, but were never actually used
    • Do you need that custom object called ‘ABC’ for admins to test/train themselves how to setup fields instead of using a sandbox? (the answer here should be no!!)

    The legacy org I was working in, has had multiple admins and people who shouldn’t have had admin ‘super powers’.¬† A number of teams have tried their best to administer the system over the life of the org but didn’t really have the time to learn the capabilities of Salesforce.

    In circumstances like this, and without proper governance, it is very easy to just keeping building and configuring new objects/fields.¬† When you look back in the rear-view mirror, you could be left scratching your head as to why the system was configured that way…

    What’s the oldest instance of Salesforce you have managed?¬† Do you have any suggestions for maintaining a legacy Salesforce org?

    Update 16/2: I have also found this post from Jeff Douglas today which mentions an alternate solution.¬† I also stumbled upon the SF Toolkit which might help with this task.¬† I might give it a try tomorrow and see if it is any smoother ūüôā

Back to top button