Sunday, May 3, 2015

How to Combine Salesforce and External Data in Analytics Cloud

It is easy to build a dataset from Salesforce data in the Analytic Cloud. It is also rather easy to create a data set from an external file, as long as you don’t have to change the metadata file. How to combine two sets of data together in the Analytics Cloud is less obvious. With a little bit of dataflow manipulation, you can create a new, composite dataset of both sources.  Here is a guide to help you through the process.

External Data

First, you want to load your external data from a CSV (comma-separated value) file by creating a new dataset. I have created a sample Sales Data file that contains sales by account broken down by product and time period. I have also included my Sales Data.json metadata file for reference. 

In this case, I did not have to make any changes from the system generated mappings. It is always a good idea to check your date format and values, as this is a common source of error. Now select Create Dataset and your Sales Data is in the Analytics Cloud.

You can then start exploring the data by creating Lenses and Dashboards. What if you want to see this data linked with your Account details from Salesforce in order to analyze by state or account type?

 

Salesforce Data

Loading Salesforce data is a snap using the Dataset Builder user interface. In this example, I am only interested in pulling Account information, to keep it simple. I am going to add just the Account object and a select fields to my dataset (Account ID, Account Name, Account Type, Industry and Region). 

Next, select Create Dataset, provide a Dataset Name and use Create to save. This will add the associate JSON entries to the dataflow for this dataset. The data will not be loaded until the next schedule run of the dataflow, currently set for once a day, or a manual run. Don’t start the dataflow yet, as we are going to have some fun first.

 

Dataflow JSON

We have avoided JSON manipulation so far, that that is about to change. You cannot combine external data with Salesforce data in the UI, but we can use previously loaded datasets in the dataflow. Start by downloading the dataflow json definition (SalesEdgeEltWorkflow.json) and open it in your preferred editor. I use JSON Editor, but would be willing to switch if you have suggestions on a better tool.

Here is my dataflow JSON that shows the Account load.
  "101_Load_Account": {
    "action": "sfdcDigest",
    "parameters": {
      "object": "Account",
      "fields": [
        {
          "name": "Id"
        },
        {
          "name": "Name"
        },
        {
          "name": "Type"
        },
        {
          "name": "Industry"
        },
        {
          "name": "Region__c"
        }
      ]
    }
  },
  "102_Register_Account": {
    "action": "sfdcRegister",
    "parameters": {
      "source": "101_Load_Account",
      "alias": "Account",
      "name": "Account"
    }
  }

For simplicity, I have removed other flows for this example.  By default, the workflow steps are labeled with numbers.  I have added additional text to the name to help distinguish. Your dataflow JSON may look different, what is important is to find the Account load from Salesforce.

This will be a sfdcDigest, with an Object of Account and the fields we select.  My is named 101_Load_Account.  sfdcDigest will pull the data from Salesforce.  Next, find the step with sfdcRegister action that takes has the same source name as the Account load.  Mine is named 102_Register_Account, which makes the dataset accessible in the Analytics Cloud based on the name supplied.

Now, we are going to add a couple of additional steps. First, we need to add an edgemart transformation. This allows us to load a previously created dataset into the dataflow.
  "200_Sales_Data": {
    "action": "edgemart",
    "parameters": {
      "alias": "Sales_Data"
    }
  }

If you don’t recall the alias name of your dataset, you can always use the lens.apexp page in your org for reference - https://<pod>.salesforce.com/analytics/wave/web/lens.apexp. My step is 200_Sales_Data and my alias was Sales_Data.  Now, the Sales Data file we loaded earlier is available within our data flow.

With the external data available, we can use an augment transformation to combine it with the account data. This is my step 201_Combine_Sales_Account with an augment action.  We are going to make the Sales Data our left object and Account the right, specifying the join condition via left key (Account from the Sales file) and right key (Name from the Account file). 

All of the columns from the Sales Data data set are automatically included, and we need to specify the columns to include from the right (Account data set) as well as specify the the relationship prefix name to use, Sales in this case.

  "201_Combine_Sales_Account": {
    "action": "augment",
    "parameters": {
      "relationship": "Sales",
      "left_key": [
        "Account"
      ],
      "right_key": [
        "Name"
      ],
      "left": "200_Sales_Data",
      "right": "101_Load_Account",
      "right_select": [
        "Id",
        "Name",
        "Type",
        "Industry",
        "Region__c"
      ]
    }
  },
  "202_Register_Account_Sales_Dataset": {
    "action": "sfdcRegister",
    "parameters": {
      "source": "201_Combine_Sales_Account",
      "alias": "SalesWithAccounts",
      "name": "Sales With Accounts"
    }
  }

Save the dataflow json file and go back to Data Monitor.  Before you upload, you may want to save a backup of the previous dataflow in case you want to revert to your original dataflow.  Then, Upload the dataflow json file and start the data flow. Once the dataflow finishes without errors, you have a brand new dataset of external and Salesforce Data.

 


Final Touches


With our new dataset, we can put together lenses and dashboards of sales activity, over time by various account attributes such as account type, key status, etc.

image

With the ability to load edgemarts into dataflows, we are not limited to combining Salesforce and external data. We could also load two sets of external data, load both into the dataflow and combine them into one final dataset. A very powerful feature of Analytics Cloud.

 


External Data Generation Notes


The Account Names are specific to my environment and may not match yours. I created a simple Sales Data Generator Excel Template that will generate random, sample data. Simply replace the Account Name on the Account tab. If you want to match on a different key to Salesforce, replace the values in Account Name with the desired data. Adding additional columns to the right of Account Name is fine.

The Dynamic tab uses a random number between one and the number of rows with a Row ID to find an Account. You can add more or fewer Accounts, just be sure to have Row ID values for valid rows. The same approach is used for Product.
The period is generated as a random date between a Start and End date specified on the Control Tab. To change the date range, simply enter the desired start and end date. Similarly, Price is selected between the Low and High Price on the control tab. Change the Control values for a different price range.

Finally, as the Dynamic tab changes on each change, you will want to create a static copy of the data for repeatability. Copy the columns from Dynamic and then head to the Sales tab. Perform a Paste Special of Values with Number Formatting. Now you can save the tab as Sales_Data.CSV and you are ready to go with your own custom data.















Tuesday, April 21, 2015

How to Earn 5 Salesforce Certifications in 2 Months

Salesforce Certified

If you are looking for shortcuts or test answers, you can stop reading right now.  While it is possible to make this journey, there is no substitute for hard work.  If you are ready to invest in learning the platform, keep reading for my experience and insight. 

First the background, I started working with Salesforce in June 2014 after joining a Salesforce Partner.  While new to Salesforce, ten years of prior SaaS and CRM experience meant familiarity with Cloud concepts.  What I needed to learn was the Salesforce specifics – capabilities, functionality and terminology

My objective in this endeavor was to get up to speed as quickly as possible in order to contribute to my team and ensure customer success.  Earning certifications was a great source of external validation that I had a firm grasp on the material.  So here is how my journey unfolded. 

As a Salesforce Administrator needs broad knowledge of how to configure Sales Cloud and Service Cloud applications, it seemed like an appropriate place to start.  The Administrator Certification study guide helped me understand the learning objectives to cover.  What I quickly discovered is the breadth of application, feature and functionality knowledge an Admin must posses is extensive.  To learn the material, I used online training, my own developer organization and workbooks to prepare.  The details of How to Learn Salesforce were covered in a previous article.

About four weeks into my preparation, I was not feeling very confident.  While I had covered a lot of material, my first exam was only two weeks away and the material was not gelling.  I found having exams scheduled was a great motivator.  In addition, I found it beneficial to take the exam when the material was fresh.  After discussing with my co-workers, one suggested taking a look at the Developer material first.

This was my aha moment when the light bulb went off.  I found the developer material to be much more focused and a better place to start.  It included an introduction to the Force.com platform, the Data Model, User Interface and Business Logic.  Additional topics on Data Management and Reporting rounded out what I needed to know.  Now, I was on a roll and felt on top of the material.  I scheduled my Developer exam for the next week, even before my Admin exam.  This was definitely the right exam to start with.  The material was more focused and it helped me understand what the exam looked like.  Passing this exam was a confidence boost and the developer content provided additional insight for Admin.

Now my attention was back on admin and the additional areas to know.  One significant difference from other CRM systems, is the multi-level security model.  It took multiple lessons and different types of content before I completely grasped the concepts. What really helped solidify it for me was the Who Sees What video series, available on YouTube and now in the Trailhead module on Data Security.

My approach for all the exams was to take copious notes from the training to create an outline of the material. I would then write out “answers” to the objectives on the study guides.  It helped validate my learning and see what else I needed to know.  I also used example question flashcards that can be found on various websites.  One strong word of caution here. With the frequent updates to Salesforce, old answer can quickly become obsolete.  Additionally, there are many wrong answers out there.  Anything that I missed, I verified with an authoritative source, such as the current Salesforce documentation on trying in my development org.

Passing the Admin Exam, meant I qualified to try Sales Cloud Consultant, Service Cloud Consultant or Advanced Admin next.  I opted for Sales Cloud based on my prior experience.  Using the same methods previously described, I passed the exam the following week.  The Sales and Service Cloud Exams are different than the other exams, as they are more scenario focused and longer in duration.  Three exams in three weeks plus a previously scheduled vacation, meant it was time to take a break for a week.  When it was time to get back to it, I switched my focus to Advanced Admin, rather than dive into the Service Cloud scenarios.

In reflection after learning the material and passing the exam, it would have been better to take this right after Admin.  The content builds on the material in Admin and is a great segue to learning more.  Finally, I returned my attention to Service cloud, wrapping up certification number five about two months after my Developer exam.  Since then, I took a deep dive into Apex and Visualforce, passing the Advanced Developer exam in early December and eagerly awaiting the opening of the next programming assignment window. 

At the start of this year, I decide to take a look at Pardot to better understand marketing automation.  Pardot has a great deal of material available on their site, which is fantastic for learning.  However, Pardot does not offer a developer org, which hurts those who learn by doing.  The available content was enough for me to have a new appreciation for marketing and to pass the Pardot Certified Consultant exam in February. 

From my experiences, one final tip about certification exam content.  The exam outline is an accurate depiction of the content on the test.  The weighting of a content area reflects the number of questions to expect on the exam.  If a section indicates a 10% weighting and there are 60 questions in total on the test, expect to see 6 questions about the topic.  Furthermore, look closely at the wording of the objectives.  If it indicates describing the use cases for a feature, anticipate questions about when to use a feature.  Conversely, when the objective talks about describing features and capabilities, expect detailed questions and specifics.

That has been my journey in learning Salesforce and becoming certified.  A lot of late nights and hundreds of hours of study, has netted a great deal of new knowledge .  Let me know what your experience has been and any tips to share.

Wednesday, April 15, 2015

How to Learn Salesforce

salesforce One of the questions I frequently hear is “What is the best way to learn Salesforce?” Now every student has a different learning style – visual, auditory and kinesthetic. Visual learners are those that want to be shown, while auditory learn best by hearing. They last group is where I fall, as my preferred learning style is by doing. What I will share is what worked for me to learn Salesforce and encourage you to adapt to how you learn best.


Perhaps the hardest part of learning Salesforce is figuring out where to start. There is so much material out there to sift through. Further compounding the challenge, is three new releases a year and related release notes. While this delivers enormous customer value, it means more to learn and often renders old material obsolete. So, where to start?

My first recommendation is to sign up for your own, free development organization, which you can do here. This is your own environment where you can try out features and experiment risk free, which is great for those who learn by doing. You will also see how your development org plays into my next set of recommendations.  Next, the Salesforce User Guide is a comprehensive document with information on a ton of topics.  At nearly 5,000 pages, it is a better reference document to lookup a concept than light reading!

To help validate your knowledge, Salesforce offers a series of certifications from developer to admin to sales and service cloud consultant. Each of the tracks offers a study guide with recommended training courses (both classroom and online) and topics of study. Even if you do not plan to pursue certification, the information in the study guide provides a great learning framework.  To reinforce my learning, I went for the certification exams after going through the material for each track.

For me, I started with Developer track followed by Admin, Sales Cloud, Advanced Admin, then Service Cloud certification.  In retrospect, the Advanced Admin track is better to take right after Admin as there is material overlap and Advanced builds on top of Admin.  Next, I took a slight detour to earn Pardot certification before returning to Advanced Developer, which I am eagerly awaiting programming assignment availability. When I started last summer, the Salesforce online training was a great help. The online training combines all three learning methods – video demonstrations with voice over reinforced with practice exercises in your developer organization.

Now, the online training is a great resource, but unfortunately the full catalog of courses is not free. I had the benefit of being a Salesforce partner which includes access to the premier training catalog.  Access is also included for any customer that signs up for premier support. If you don't fall into these categories, all hope is not lost. There are a series of workbooks available that will help walk you through various topics.  If you don’t want to go at it alone, you can find a local Salesforce User Group or Salesforce Developer User Group to meet up with a like-minded community.

Additionally, there is a new resource available that was launched at Dreamforce ’14, which is a game changer. Trailhead is an interactive learning platform that walks you through the building blocks of Salesforce. There are focused modules of topics from Chatter and Change Management to Apex and Visualforce. Each course provides a lesson with instructions, examples and often videos to watch. At the end of the module there are either questions to test your knowledge or assignments to complete in your developer organization. Successful answers and working solutions earn you points and badges to track your progress. Did I mention that this resource is entirely free!

With a variety of learning resources tailored to your individual learning needs, you will be up an running on Salesforce in no time. 

Friday, March 27, 2015

Saleforce Essentials for Sales Excellence Recap

Salesforce Essentials for Sales Excellence opened with a video testimonial of Philly 311 that hit its mark with the hometown crowd. Although Philly 311 is a contact center built on Service Cloud, it is a great example of how to connect with customers and deliver success.

Evans Kileen, Salesforce Area VP helped attendees identify three obstacles that cause missed sales targets – not enough pipeline, not enough time selling, and underperforming reps. Fortunately, there are ways to overcome each obstacle in order to grow sales faster.

For the first area, not enough pipeline, understanding the buying cycle is key. Over 57% of the buying cycle is complete before a sales person is contacted. The old adage about getting the right message to the right person at the right time is more important than ever. By implementing marketing automation and sales tools together, generate more leads along with actionable insight on prospect’s interests and intents. Pardot along with Sales Cloud enables a united buyer journey from lead generation through sales call and signature.

On the next topic, not enough time selling, we all are familiar with the pain points that Sales Cloud solves – mobile access, chatter for collaboration, automated workflows and approvals, etc.. While it may be surprising to learn that the typical business-to-business sales rep spends 21% of their time conducting research and $700 billion of revenue is lost due to bad data, there is a solution. Data.com provides company information from D&B along with millions of crowd-source contacts. Your own Sales Cloud data can be cleaned and augmented with a single click as well as subscribed to ongoing updates.

On the final obstacle of underperforming reps, coaching is the key. Although often used interchangeably, coaching is not the same as training. Training is focused on structured learning of new skills to do a specific task, typically in a group setting. Conversely, coaching is used to improve performance and behaviors through reflection and critical thinking in a one-on-one session. To provide better coaching tools, team alignment and additional motivation, many companies have turned to Work.com. Through the use of Work.com and a commitment to clear V2MOM (Vision, Values, Methods, Obstacles, and Measures), Salesforce has cut the time it takes to get a new rep up to speed from almost a year down to 6 months.

For the session keynote, Scott Collins, Principal Executive Advisor at CEB shared new methods to guide diverse stakeholders through the purchase process. In the past, products and services were sold as standalone transactions. Today the focus is on solution selling, which is a more complex sale. With more complexity, more individuals are involved in the buying decision – 5.4 on average (although I have yet to meet .4 of a person).

These 5.4 buyers are also more diverse than ever, representing disparate roles, teams, and locations. All of these members to say yes to close the deal. With a large group, there is often few common goals, priorities and beliefs. Typically, the core areas of overlap are on low price/saving money, doing nothing, or picking the least disruptive/risky option. All areas that we do not want to compete on when selling solutions.

So what can we do to increase the chances of success? As the intersection between individuals is small, we need to increase the overlap through collective learning. Have the buyers argue and debate around the problem definition and solution identification. Team members need to come to a consensus with a shared understanding of each other’s perspectives in order to move forward.

How can we help drive consensus among the stakeholders? By deploying three traits of successful sales people – teaching, tailoring and taking control. Prospects are always intrigued by learning something new that can save money or increase revenue. High performing sales reps put the customer teaching up front and tailor the message to the audience. Finally, taking control is not about being aggressive in the sales process, rather pushing back when necessary and guiding the sales process.

Finally, looking for allies among the stakeholder groups is a key to success. Typically, there are seven categories of behavior encountered in the sales process. Only three of the following will help drive collective learning. See if you can figure out which ones.

  1. Go Getter – delivers results and gets it done
  2. Skeptic – concerned about the details, often focused on the implementation
  3. Friend – always takes calls and meetings
  4. Teacher – loves spreading new ideas
  5. Guide – helps you find your way through the organization and provides insight
  6. Climbers – looking to move ahead
  7. Blocker – the anti-stakeholder

High performing sales reps sell to mobilizers – the Go Getter, the Teacher and the Skeptic, as they attach to ideas and move forward. Go find your mobilizers and see what happens.

Thursday, March 26, 2015

Salesforce Essentials for Service Recap

It was exciting to connect with customers and learn how they provide top-notch service at the Salesforce Essentials for Service Excellence event in New York City.

The event opened with Michael Nash from Salesforce sharing that service has become a key differentiator in purchase decisions, often exceeding price and features in purchase decisions. Our customers’ expectations are for personalized, smarter and faster customer service experience. Smart companies are building service directly into their products to differentiate their brands from others.

Compare the response of Tesla Motor, which broadcasted a software change to increase the ride height of their vehicles after several vehicle fires after drivers hit road debris, to your last recall experience. Other manufactures send out a notification letter, require a dealer appointment, then you have to take your car in and wait or catch another ride to work and back. When all is said and done, there is a lot of hassle to fix a problem that the manufacturer caused.

Knowing the different experiences between Tesla and other manufacturers, why should we care about meeting customer service expectations? It all comes down to customer loyalty, which drives repurchase, increase spend and positive word of mouth. Lara Ponomareff shared insights on where loyalty comes from, using The Effortless Experience as a reference.

Intuition says that delighting customers by exceeding service expectation should be a great way to garner loyalty. However, a CEB study of over 125,000 customers and 100 organizations points to a different result. Rather than dramatically increasing loyalty, exceeding expectations produced only a marginal increase in loyalty. Pause for a moment and let that sink in. If delighting customers doesn’t make them loyal, what can we do?

There is an unseen benefit in these findings. We are not good at exceeding expectations, as customers report delightful experiences occur only 16% of the time. In addition, going beyond expectations typically increases costs by 10-20%. From my experience, the expectations that you exceed today have a way of becoming the basic expectation of tomorrow.

Rather than focus on increasing loyalty, let us look at the opposite – decreasing disloyalty. As customers seeking service are already in a negative state, i.e. something is broken and they want it fixed quickly, there is four times greater chance of increasing disloyalty than increasing loyalty through service.

Think about your own customer service experiences. What are the items that make you upset? For me having to repeat information, especially after I have already entered it and the general hassle factor are tops on my list. Others have cited the need to switch between channels (online, chat, phone), transferring between agents, scripted or robotic service and the ever-popular hiding beyond policies and procedures. Put together, it all equals additional effort on your customers.

Will investing in an effortless experience provide payback in customer loyalty? Laura cited that 96% of customers that experience high effort are more disloyal, but only 9% that have a low effort experience. The even better news is only a third of perceived effort is what a customer must do to get support. The rest of their perceived effort drives from how they feel about the experience, which includes what the customer service representative said and how they said it. This provides an opportunity to improve service by looking at support through a customer effort lens.

First, guiding customers to the right support channel and more choices is not always better. For example, we know there are certain types of cases that should not be addressed via live chat. If we are not guiding customers to avoid live chat for these issues, we just caused a channel switch and increased frustration.

Next, once we have driven customers to the right channels, including self-service, our customer support representatives are going to get the more complex issues that are not black and white. Give the front line control to do what is right and exercise judgment. They should focus on a customer’s support experience and how he or she presents information to the customer. The goal is to be a trusted guide to resolution of the issue. This will require taking a hard look at the people, processes and management in place and the ability to think differently.

Now, if you are not ready to take a leap and embrace an effortless experience, start by seeing how your customers feel about their effort involved in customer service. Survey customers with a simple question such as “Did we make it easy to handle your issue?” with a range of responses from strongly disagree, disagree, disagree somewhat, neither disagree nor agree, agree somewhat, agree and strongly agree. I would love to know what you find, but be warned – the results may surprise you.