Tag Archives: Salesforce

3 Steps To Guide Your Org Out of a Dirty Data Disaster

Today’s guest post comes from my friends Jack Pereira and Stephanie Gaughen of Nuvem Consulting, a Salesforce consulting partner based in my hometown of Omaha, NE.   

 

Dirty Data new

 

Strong governance and oversight of your Salesforce solution is absolutely critical. Without that, your org can quickly become the wild west. From your sales reps entering in basic Leads data with no standard process to downloading apps at will from the AppExchange, in the blink of an eye, you can have a data disaster and a nightmare for reporting.

But not everyone has the luxury of a strong governance committee from day 1 of their implementation. There’s many reasons organizations go without a governance strategy, and it doesn’t take long for data issues to proliferate. But the longer you let them go, the harder they are to clean up. Remember, big data isn’t getting any smaller.

So whether you’re switching jobs and inheriting this wild west, or you’ve come to the realization where you can no longer manage this sort of Salesforce anarchy, we put together some basic governance principles applicable to businesses of any size and industry.

 

1. Establish your Salesforce governance committee

Whether you call it a Center of Excellence, a change committee or a Salesforce governance committee, the concept is the same: bring together a team of people involved in processes touched by Salesforce to oversee the ongoing maintenance and long-term vision for the solution.

Your governance committee should include an executive sponsor, department leaders, administrators and an end-user champion. If your solution touches departments beyond sales and marketing, leaders at those departments also must be involved.

One Clear Owner

And even with the guidance of an oversight committee, it is absolutely critical that there is clear ownership of the solution with one individual. It’s common in many organizations that multiple people are responsible for Salesforce but no one person has clear ownership. But that goes against a fundamental principle of management that a leader be designated for such endeavors. If there are multiple owners, nobody is responsible for the success of the solution.

Great Salesforce “owner” will act as the key facilitator, champion and cheerleader of the solution. They’ll be committed to continuous improvement, system optimization and coaching of other team members.

 

2. Establish data standardization early and audit often

You must have accurate and complete data to create accurate and meaningful reports, which is the whole reason you bought Salesforce in the first place. If you aren’t getting the reports you need, you aren’t getting the insights you need to sell more and make better business decisions.

When establishing a data standardization strategy, it’s best to start with a data map listing all the critical fields necessary per Object and where the sources are for that data. You also must understand if all the sources providing that data are accurate and complete.

When considering the reports you need to manage your process or business as a whole, reverse engineering your reports helps you understand what data you need to get those reports and what Objects will help organize that data.

Data standardization among integrated systems

If you’re integrating to a marketing automation system such as Pardot, the importance of having a data standardization strategy may finally be coming to light. Marketing automation systems can only talk to your CRM when the data fields match. And public-facing forms must capture data in the same format. Using picklists to minimize inconsistencies and spelling errors, as well as making certain fields required are common ways to ensure a smooth sync.

With marketing automation, you must also consider the completeness of your data. Making certain fields required for your sales reps will help ensure the marketing team has the data they need to effectively segment Prospects onto Dynamic Lists. After all, you can’t quickly grab a marketing list of all your local customers for an upcoming event if only 30% of your Leads and Contacts have that field completed in their records.

The same goes for other systems connected to the main Sales Cloud database such as Communities or Steelbrick CPQ. The more systems you have integrated to your core solution, the more oversight and consideration will be needed to ensure data quality.

Cleanse, audit, repeat

After you have developed a standardization strategy, then comes the dirty work of cleaning up the existing data to match it to the standard. There are many tools in the AppExchange and admin tricks to do this efficiently. You can also enlist the help of a consulting partner if you don’t have the resources or expertise to do this internally.

Finally, once the database is in good shape, you must put in place regular data audits to make sure you stay on track. These can take place monthly, bi-monthly or quarterly. Any proposed changes to the data standardization strategy can then be evaluated by the governance committee.

 

3. Establish release and application management plans

Salesforce Sales Cloud has three major releases a year with new features that must be rolled out and managed according to your needs and unique configuration. Sometimes Salesforce replaces major tools and stops supporting older features, which calls for action and planning.

Depending on the complexity and extent of new features, as well as your number of users, it may take time to configure and roll these out to your org. This needs to be accounted for to allocate resources. Plan governance committee meetings after release notes are made available so you can discuss new features with your team.

All new apps must be put through a rigorous discovery process

You also need to consider new releases for other apps you have in your Salesforce ecosystem, as well as general management principles for applications connected to Sales Cloud. New apps, whether large or small, must be fully vetted and approved before they are downloaded and added to the org. And there must be a process for ongoing maintenance and support of these apps.

 


About the authors
Jack Pereira [@jackpereira10] is the co-founder of Nuvem Consulting and works with leaders worldwide to refine their business processes from lead generation to cash in hand using the Salesforce platform.

Stephanie Gaughen [@sgaughen] is a Pardot Certified Consultant at Nuvem Consulting and co-leader of the Salesforce Nebraska Women in Tech group. 

Nuvem is a Salesforce consulting and development partner that transforms businesses for the future with streamlined processes, integrated technologies and a delightful customer experience. 


Create a Salesforce Support Request Process For Your Users

Are you using emails to manage requests from your users? 

Dodge Emails

 

The problems with using email for issues & requests are many, such as:

  • Users favoriting certain Admins, causing uneven workload on the team
  • Emails getting buried & forgotten
  • Accidental deletion
  • If you’re in the habit of constantly checking email, it’s distracting
  • No prioritization
  • No reporting
  • Stressful for you: Some users are impatient.  Aside from too many emails marked as high importance, they’re following up too soon
  • Stressful for users:  They have no ability to confirm you got their request or make corrections to it.

Around 3 years ago we rolled out a Salesforce Support Case process to our users.  My work life drastically changed for the better that day.  Just in my team, we currently receive around 300 Cases per month.  I shudder at the thought of those being emails.

How my org uses Cases to manage support requests:

  1. User clicks “Salesforce Support Request” link on the home page.
  2. Some information is auto-filled, so they enter a few other fields & save
  3. The case is sent to a queue
  4. User receives email when case is opened & closed.
  5. A Dashboard is used to monitor these cases, much like a sales team would monitor open & closed Opportunities.

Here’s how to do it:

A Case record type, support process, and page layouts are created.

Regarding fields, your primary goal is speed.  Users should not to spend 5 minutes filling out fields. Here’s the fields we use:

Contact Name

This is the internal Contact, the user.  To make this work, create a process that creates a contact record for each Salesforce user.  The Contact would be related to their user profile via lookup field.

Region
This is auto-populated. If you’re in a global org, this will come in handy later)

Category & Sub-Category
Dependent picklists. Here’s just a couple examples.

  • Users
    • New User – Salesforce
    • User Permissions
  • Data Management
    • Mass Update/Create Records
    • Merge Records

Subject

Description

Status

  • Open
  • Need More Information
  • Resolved (Closed)
  • No Change Required (Closed)

Notes
For use on the close case layout.  This can be used on the email notification when the case is closed.

 

Give your users an easy way to create the Case:

  • Under Home, create a custom link.  This link can be added to it’s own component or existing. We have a Useful Links component, so we put it there.
  • The link will be OnClick Javascript.  Calm down and stay with me.  I’m going to show you how. 

First, you need this:

{!REQUIRESCRIT("/soap/ajax/23.0/connection.js")}
 {!REQUIRESCRIPT("/soap/ajax/23.0/apex.js")}

Remember how I told you to create a Contact for each of your users?  This code is going to find and populate it on the case automatically.

sforce.connection.getUserInfo().userId;
 var result = sforce.connection.query("Select Id, Name From Contact Where User__c = '{!$User.Id}'");
 var records = result.getArray("records");
 var ContactName = records[0].Name;
 var ContactID = records[0].Id;

Now you need to specify the Case record type, the region, and anything else.  In my org, we use a Region picklist on the user profile.  I can use that in my code to populate the Region field on the case.

Here’s how to use IF – ELSE based on user attributes.   IF – ELSE can be much more complex than this if you want, keeping it simple for this example:

if('{!User.Region__c}' == 'NA'){
window.open("/500/e?retURL=%2F500%2Fo&ent=Case&cas3="+ContactName+"&cas3_lkid="+ContactID+"&00N80000003E5yO=North America&RecordType=012800000003wSZ&cas7=Open","_top");
}else if('{!User.Region__c}' == 'EU'){
window.open("/500/e?retURL=%2F500%2Fo&ent=Case&cas3="+ContactName+"&cas3_lkid="+ContactID+"&00N80000003E5yO=Europe&RecordType=012800000003wSZ&cas7=Open","_top");

If for some reason, one of those attributes doesn’t apply to a user, you need to plan for that with an Alert at the end.

}else{
alert('Unable to create the Case.');
}

You may be wondering, great… but what is that “Window.Open” junk in the middle?   That’s where you specify the case record type & fields.

  • 500  – the Case Object Id
  • e  – edit mode
  • cas3 – the standard field ID for Contact Name
  • Cas3_lkid  – You need this for the Contact ID.  lkid is lookup ID
  • 00N80000003E5yO –  the custom field ID for Region
  • cas7 – the standard field ID for Status.

Queue, Case Assignment, & Email Notifications

Create case assignment rules to send requests to the appropriate queue.  Maybe you have different queues for region or category.

So your users know the case was received, you can create auto response or workflow rules for that.  Pro Tip: Within that email, you can include instructions for your users on how to grant log in access to company administrators.

When a Case is closed, an email should be sent to the Contact on the Case.  I like to include the Case Status & Notes field.

 

Sharing & Validation

If your Case object is Private, you’ll need a sharing rule to grant Read/Write access to the cases that are owned by the queue.  This is needed as your users may need to attach a file/screenshot or update the description.

It would be wise to create a validation rule that prevents a non System Admin from editing a support case once it’s been closed.  You don’t want them to reopen it or change the details of the request after it’s been carried out.

 

Bringing it all together with reports & dashboards

Now that you’re able to report on the requests you’ve received, you can create a dashboard to show a lot of different metrics, such as case volume by month, ranking of closed cases by owner, cases opened per region last month, cases opened by category year to date, etc…

 

 

 

Fixing a List View That Times Out

           You try to access a list view, and…

                                   Two_very_boring_minutes_later

                                     nothin’

When a List View is timing out, it’s usually caused lack of criteria, which is making the query look through too many records.  

Here’s how to get into edit mode and fix it. 

1) Make a note of two list view names, the one you’re trying to fix, and any other that is working.  

 

2) On your Object page, right click and ‘view page Source

View Page Source

 

3) In that code, there will be a section of your list views with their names and ID’s. Copy the ID of the broken List View

Page Source

 

4) Go back to Object Page, open a working list View, and click Edit.

 

5) In the URL, replace the ID of the working list view with the broken list view, then hit Enter. 

WorkingListViewURL

 

6) You’re now in edit mode of your broken list view. From here, you can make the changes needed to prevent it from timing out. 

BrokenListViewEditMode

 

 

Considerations When Adding A New Field

 

newfield

The Sales division just asked for one new field.  Before you go off to your sandbox to get started, you have some questions to ask.

1) What is the Data Type, Name, Description, & Help Text? 

  • After you know the name and purpose of this field, search the object for existing fields that may already serve the same purpose, but perhaps worded differently
  • Depending on data type and purpose, it might need to be unique, external, or encrypted

 

2) Is this data already available somewhere else, like the parent record?

  • If yes, why is the same data also needed on this object?   (You should mind object limits)
  • If determined a separate field is indeed needed, would a user ever need to edit it?
    • If yes, create the field
    • If no, create a formula field to display value from parent record (default read only)

 

3) Who Can Access It?  Who Can Edit It?

  • Don’t expect a list of profile names, you may have to figure that out on your own.
  • Confirm user list with the requestor.  What if a profile contains users who should not see/edit this field?

 

4) Should this field be required?

  • If so, for all records? Or just on certain page layouts?

 

5) Is it required for certain conditions?  

  • If yes, you’ll need a validation rule.

 

6) Should it have a certain format?  Or prevent certain words or characters? 

  • If yes, you’ll need a validation rule

 

7) Which Page Layouts should it be added to?  And where?

  • Same as profiles, don’t expect your end users to know page layout names, but they should know record types.  You can then find the page layout name by viewing Page Layout Assignments.

 

8) Are you going to report on this field? 

  • If so, it will need to be added to the custom report types that are in use by the requestor & team.  Otherwise expect a frustrated requestor wondering why they can’t report on their new field.

Related:
A Design Decision: Case or Custom Object?
CASE OR CUSTOM OBJECT FRY

Get Organized To Get More Done

 

ClutteredDesk


Over the years, I’ve experimented with different ways to get more work done without working harder.  I’ve learned that being organized really keeps me focused and increases productivity, while desktop clutter tends to cause stress and kill creativity.

Some people would argue the opposite, an example being Albert Einstein who once said, “If a cluttered desk is a sign of a cluttered mind, of what, then, is an empty desk a sign?”

However, Theo Theobald, Co-author of Detox Your Desk, had this to say, “Our research found a clear desk space also gives a clear mind space. It helps you prioritize what’s most urgent and makes you more efficient. It also helps your ability to make good decisions because you have the information available where you need it.”

Here’s some of the things I do to keep my mind clear and organize my work. 

Your Desk/Cubicle 
“Hey everyone! My home, car, and Salesforce org are also this cluttered

  • Try keeping your desktop as free from clutter as possible.  
  • If you write meeting notes on paper, use folders for each project.  
  • Use Post-It notes for your To-Do list & reminders.
    • It’s funny how one of the motivating factors for finishing a task becomes tearing that note off the all, crinkling it up, and throwing it away.
    • Ideas/Reminders: Get a random idea when on a call or working on another task?  Write on a post it and throw it on the board…this keeps you focused on your current task. 
  • Before leaving for the day, and especially Fridays, I clean my desk and put things back in their place. 

 

Email Management
Managing your email is like managing your weight. It requires a little self-discipline, but if you can stick with it, you’ll be better off.

  • I check email a few times a day, usually checking them between tasks.
  • Categorize emails and store them in inbox subfolders

  • Rules for daily emails and DL’s that aren’t important.
  • If an email must remain in the main inbox, flag it for later. Make it a point to catch up on flagged emails.

 

Using Salesforce To Organize Work
“I’m not only the Admin, I’m also an end user”

You’ve build efficient processes to increase your users productivity, but have you built anything for yourself?

  • Use Cases to track every Salesforce change, request, issue, etc… I live out of a Case list view all day.
  • Use a Project object for Projects that consist of many Cases.
  • Salesforce teams can use a dashboard to track the work of everyone on the team. 

 

 

PeterRelaxed