Friday, November 30, 2018

Resolving "Read All Accounts" Permissions Issue with the "old" Profile Editor

Problem / Issue: 

As part of a project to enable Lightning Knowledge for an org, I was tasked with doing some clean-up of various user Profiles in the org. An audit found that the Data Migration profile had access to the Knowledge object, but shouldn't have. When I went to remove these permissions, Salesforce presented an error (see below): I couldn't remove access to the Knowledge object until I first resolve the permission issues on Account Brands and Scorecard Associations.  


No problem -- this Data Migration Profile shouldn't have access to either of those objects either, so I thought I'd just go remove them. The trouble is that if you're using the Enhanced Profile Editor, you can't make permission changes to multiple objects.

For example, as soon as I went to make remove access to the Account Brands object, Salesforce presented an error: I couldn't remove those permissions until I first removed permission from the Scorecard Associations object:


Similarly, if I tried to remove permissions from Scorecard Association, I got an error saying I had to first resolve the access permissions on the Account Brands object.

It took me a few cycles to figure out that the problem here is that unlike the original Profile Editor, the Enhanced Profile Editor doesn't allow you to make changes to 2 or more objects at the same time. Each time you make a permission change to an object, Salesforce will validate the change before allowing you to save the change. But I needed to make changes to two different objects, and the Enhanced Profile Editor wouldn't allow me to do that. 

The Fix

You need to revert back to the old Profile Editor, since it allows permission changes to multiple objects before a Save operation is committed. To revert back to the old profile editor, go to Setup and in the Quick Find type and select "User Management Settings", then disable the "Enhanced Profile List Views" setting. You can come back and enable this setting after you have made the necessary profile permission changes. 

So if you're running into problems with profile editing, keep in mind that the old Profile Editor was kept around for a reason -- there are simply some things you can't do in the new Enhanced Profile Editor mode.

Tuesday, September 4, 2018

Getting to #AwesomeAdmin 2.0


Are you able to easily relate to any of these situations:

I have a meeting next week that I know will be tough. The sales team wants a new way to track their quarterly results, their just not able to articulate exactly what they want. In past meetings, they've quickly gone off track, and I wasn't able to fully capture their need. Or, ...
I'm facing some new challenges within our production org. Our traditional deployment process isn't quite working. We're letting things into production that we really shouldn't, but I'm not sure how to fully address that. Or, ...
Even though we're not using Lightning yet, I think I'd be a better admin if I just knew a little more about lightning components and how to design them. Or, ...
I've just been assigned a new salesforce project that is quite larger than my last one. There are new stakeholders, and it's going to require some development work that will really stretch my modest apex and visualforce skills. I think I can do it, but I'm not really a salesforce developer. I don't want to miss anything.
Or ... [insert your challenge here]

These are all challenges or problems we are likely to stumble upon at some point in our career. As Salesforce Admins, we LOVE solving problems. But we mostly love coming up with creative solutions for OTHER people's problems. Having to come up with solutions for our own personal problems isn't nearly as much fun.

But at the end of the day, the same talents and skills that allow us to create solutions for business leaders and their teams can be used to solve our own personal challenges and problems.

#AwesomeAdmins Turn Challenges Into Professional Development Opportunities

Every challenge you face is a new professional development opportunity. It's an opportunity because it presents you with a fresh, new chance to grow and learn.

Each time you tackle one of these challenges, you'll come away with a unique business understanding, newly applied learning, and increased personal skill sets. At the time, they may seem like incrementally small skills, but all those small changes add up over time.

Becoming a better Salesforce Admin simply involves managing your professional development opportunities, one after another. And then another. And then another.  There's no shortcut to awesomeness. You get there incrementally, by overcoming each fresh, new personal challenge. By learning and succeeding (or even failing!) with new approaches. Your goal isn't to get a raise or land a big promotion at work. Your goal is to become better at your craft. You accomplish this be facing professional challenges head on, big and small, and growing through them.

Here's the good news: you don't need to go to a week-long salesforce training class to become a better admin (although it can definitely help). You don't need to get a Salesforce Admin certification (although this can help, too!). You don't need to go to Dreamforce, attend a Salesforce User Group meeting, or even spend a lot of extra time out of the office to become a better Salesforce Admin (although many of us enjoy the camaraderie from ALL of these things).

Awesome Admins Fix Problems – One at a Time

So, how do you go about tackling that growing list of professional development opportunities? Really, the same way you tackle any work challenges:

  1. Describe the problem clearly. Give it a name. Write it down. Maybe throw it up on your own personal Kanban board (Trello is GREAT for this). For those challenges above, you might name your challenges: Run a Better Requirements Gathering Meeting, Create a More Robust Deployment Process, Learn How To Build Lightning Components, Tackle Project X
  2. Brainstorm ways you might address the challenge in a new way. If this is a team problem, then brainstorm with your team. Even if it's a personal challenge, you can reach out to your social networks (Trailblazer Community, local user group, Twitter, etc.) to solicit ideas.
  3. Got a collection of ideas? Good! Invest some time learning something new about each approaches. Maybe one of the ideas was to tackle this problem using Flows, and another was to use Apex -- neither of which you're strongly familiar with. Dedicate time to learning about both. You don't need to learn EVERYTHING about the approach, just spend 15-30 minutes learning about the approach to help you evaluate if it's a practical choice.
  4. Decision time: select whichever seems to be the best solution. Commit to trying it.
  5. Start working through the solution. If the challenge is particularly large, break it up into smaller manageable chunks. In this way, a big challenge becomes many smaller ones. That may seem more intimidating at first, but each is more achievable. As you complete each smaller objective you'll be working toward the larger goal, but also building your accomplishments (and thereby, your confidence), along the way.
  6. Stuck? Ask for help! It's ok to reach out to your manager, peers, or salesforce ohana to solicit input or advice as your working through the solution. Never feel like you need to go at solving a problem on your own, even if you're the only knowledgeable salesforce resource in your company!
  7. Assess your results periodically. Reflect. What worked? What did not work? Capture this in writing!
  8. Do it again. Repeat this cycle, every day, every week, every month.

Invest a bit of team each week to tackle your personal challenges. Your mindset about dealing with them will shift as you take the same disciplined approach you take for all other business challenges. As you make progress, your confidence will grow. Your skill set will grow. You'll be increasing the value you provide to your organization. And you'll be upgrading to a better, improved version of yourself: #AwesomeAdmin 2.0

Tuesday, August 21, 2018

Getting Support for your Salesforce Ideas in the Workplace

Sometimes, it can be a little intimidating being the Salesforce Admin for your company. On a daily basis, you are interacting with professionals and executives at all levels of the organization. They expect BIG THINGS from their investment in Salesforce, and in turn, their investment in you. Your job is to not only ensure your salesforce org runs smoothly, but also to help your sales and service teams be more productive, to help them do their  job BETTER.

You’re a particularly devout salesforce administrator, tuning in to webinars, reading blogs, interacting with peers on the Trailhead Community forums, and following your salesforce ohana on Twitter, Facebook and LinkedIn. A steady stream of salesforce-related information enters your brain every day. And every so often, you’ll see something that REALLY excites you! 

Perhaps you read about how another Salesforce Admin switched their organization from Classic over to Lightning. Their approach seems fairly straight forward, and one that you could replicate at your own company. Or maybe you saw a really interesting use case for a salesforce community, and you’re convinced that will greatly enhance the customer experience. Or you’ve seen a new feature in Salesforce, like Lead Scoring, which you’re certain will improve the sales user experience and help the company close more deals. Wow -- now you’re really pumped. 

But then a big old dose of Monday morning reality settles in. While you know that implementing new approaches can drive innovation and help your organization succeed, you also know that for a lot of people, change is not easy. We humans are highly resistant to change. Ok, maybe not us admins -- we love change, at least three times year, #AmIRight? But the user communities we support are often a bit more reluctant. Bureaucracy, emotions and plain old stubbornness get in the way so easily. 

So if you have this great idea to enhance your salesforce org, how do you get the support you need to push it forward? How do you effectively share your idea, build momentum for it, win support from your executive leadership and empower the right people to implement it? 
Here are some #MondayMusings for strategies I’ve used to gain support for my ideas. Consider using these techniques when you’re looking to garner support for your salesforce ideas.

Step #1: You’re a Salesman, Craft Your Elevator Pitch

I’m a believer that all of us are salespeople. That may not be our job title, but you’re involved in selling every single day.  As a Salesforce Admin, you are already  selling your expertise and skill set to your organization every day. A significant amount of your time is spent persuading, influencing and convincing others to make an exchange of some sort.

Just as a salesperson hones their elevator pitch for a busy prospect, so too do you need to craft a quick pitch to sell your business ideas. You’ve likely heard of the elevator pitch concept already. An elevator pitch is a brief, to the point proposal, something that can be delivered in 15-30 seconds. That’s the time you might have to share with an executive sponsor as you incidentally meet her in the elevator, and travel the elevator banks together to whatever your shared destinations might be. In the time it takes that elevator to move 50 floors or less, you want to be able to delivery your pitch and sufficiently garner their interest so as to encourage a follow-up meeting.

Each unique idea or proposal you have warrants it’s own 15-30 second pitch. The idea itself will almost certainly be more complicated than can be fully conveyed in 30 seconds, but it’s important to tune your pitch to that brief, succinct delivery time.  

The pitch isn’t something you mentally whip up in your head during the morning commute. While it should only take a half-minute to deliver, you’ll need to spend a good amount of time working the details behind the pitch BEFORE you deliver it. You must translate your excitement, enthusiasm and interest into a clear, solid business proposal. Don’t skimp on this step. Really think it through. The more prepared you are with it, the more successful you’ll be in the delivery. 

What’s in a good pitch?

  • Be brief and to the point. 15-30 seconds max.
  • Clearly articulate the problem you’re solving or the process you are improving
  • Explain WHAT the problem or issue is and HOW your approach addresses it
  • Present facts, including the approximate costs (resources, time, budget), as well as the business costs of NOT implementing the solution
  • Keep assumptions to a minimum; don’t clutter the pitch with confusing “admin-only” terminology. I take out a lot of Salesforce phrases in my pitches (Einstein becomes AI, Lightning becomes “improve UI”, etc.). You need to talk the same language as your audience, which is often very different from that of your salesforce ohana.
  • Be ready to go into additional details, but only if requested (usually at a later date or during a follow-up meeting).


You may find, through this exercise, that the idea really is too costly, or won’t yield the benefits you originally thought it might. It’s better that YOU make that discovery at this early stage, rather than having someone from your executive team bring you to that realization.

Or the opposite may happen, and you may find yourself more convinced than before that his action is critical for your organization. That conviction will only help you as you present your elevator pitch to the leadership team.

Step #2: Get Feedback Early

You’re smart. I mean it -- really smart! That’s why you’re a Salesforce Admin! But it doesn’t matter how smart you are, no great idea will come together in an echo chamber of your own brain. After you’ve crafted your pitch, perhaps even rehearsed it a couple times in front of the mirror or during the morning commute, present it to some trusted colleagues -- or perhaps some of your salesforce ohana. Talk it up with peers at your next UG meeting, or sync up with friends on #SalesforceSaturday. Here’s an open invitation to pitch your elevator proposal to me; I’m happy to give you some open, honest feedback (reach out to me on LinkedIn or Twitter to exchange contact details). Don’t be shy about pitching it to a frequent naysayer in your circle, someone who isn’t as big a salesforce enthusiast as you are. You will hone your negotiating and presentation skills as you win these personality types over!

The important thing is to seek out people who can be critical, and are willing to give you open, honest feedback about your idea. You’re likely going to get one shot when you pitch this idea to decision makers, so get some early feedback from your “friendlies” first. 

Make sure you’re getting REAL feedback: you want something more honest than “great job, they’ll love it” and more helpful than “this sucks”. Press for the feedback that will help you make the pitch better. 

Now here’s the hard part: when you do get the RIGHT feedback, you may not like it very much. You may not like it at all. Some of it might be downright discouraging. Just remember the reason you approached these evaluators in the first place is because you WANTED their input (good and bad) so you could use it to refine your pitch. 

It is important to get feedback from several different people. Giving your pitch to 3-5 different people will allow you to identify trends or patterns in the feedback. If one person out of five hates it (but can’t quite tell you why), two people give you some creative suggestions for refining the pitch, and two people give you only minor suggestions for improving it -- maybe you have enough feedback that you can discard or ignore the hater. Or maybe you press that person hard to help explain where you’re losing them in the pitch, why your numbers don’t make sense for the business, or what specifically they don’t like about the idea. 

Step #3: Share It With Your Boss

You’ve crafted your pitch. You’ve shared it with a few resources. That has allowed you to refine the pitch and make it better. Now it’s time to share it with your boss. 

NOTE: For some organizations, it may be politically important to make this Step #2 rather than Step #3. Your boss may not want you going out and “stirring up ideas” before passing them by him first. Use your own discretion. Where I work, I feel comfortable sharing my ideas with a couple different groups before presenting the pitch to my boss. He seems to appreciate that, as well, because it means I’ve already filtered out some of the “noise” (some of my pitches die at step 1 or even step 2, based on the feedback I get).

The approach you take when presenting to your boss will usually vary, depending on the size of the project. For something rather small or benign, but still widely impacting, I’ll bring the 15-30 second pitch in as part of my weekly 1:1 meeting with my boss. 

(You ARE having a weekly 1:1 meeting with your boss, aren’t you? If you aren’t, get that recurring meeting on the books right away!). 

If he’s interested, and wants to go into more detail, I’ll be fully prepared to go into the more detailed action plan (yes, that means I’ve already done some of Step #4 BEFORE doing Step #3; as Edna Mode would say, “Luck favors the prepared”). Sometimes, we might dedicate the entire meeting to that one idea, so if I have a pitch ready, I always present it early in the meeting, not in the last 5 minutes. 

If it’s a particularly large endeavor, something that might have cross-platform or team impact, or create a significantly different user experience, I’ll reinforce that by being a bit more formal in my approach. I’ll tell my boss that I’d like to do a formal presentation to him, and potentially other members of the executive team. I’ll request a dedicated meeting where I can pitch the idea and take questions from a broader audience. Invariably, he’ll want to know more right away, so I’ll give the 15-30 second pitch -- but he’ll often stop me with a wave of his hands, and say, “Yep, this is bigger than a breadbox, let’s have on the invite.”

By reinforcing the need for a formal meeting, he’s already groomed to expect this to be a fairly large endeavor that will warrant feedback and input from a larger team. But he also has enough information about the idea that he can start “sowing the seeds” of interest among his peers, when they ask him about the invite they got from his Salesforce Admin. 

Ready for some more tough love? Here’s the sad truth: your boss might not like your aidea. Yes, even though you’ve gone through the exercise of creating your pitch, practiced it with a few key evaluators, and even worked out your “Next Steps / Action Plan”, your efforts might be stopped right here at the pitch to your manager. 

Keep in mind that your boss has a broader awareness of what is happening across the organization than you do. She is exposed to different circles of information and influence. She is also presented with a fair amount of sensible and practical ideas from other members on her team every week. It’s her job to filter those ideas and determine which are worthy of bubbling up to higher management or decision makers.

If you do get a “No” or even a “Not at This Time”, probe to understand why. Your data is sound, you have the facts -- find out what are the more pressing business needs impacting the organization right now that have greater urgency and greater ROI than this proposal. It’s important to make it not seem as if you are challenging your bosses decision. Rather, you are probing to understand the goals, needs and current priorities of the company, so you can better align your ideas toward them.

Step #4: Prepare Your “What’s Next?” Action Plan

One of my recent bosses gave every member of the team an 8.5” x 11” framed poster of a light bulb with the words, “What’s Next?” on it. It was a reminder, he told us, that wanted us to never be resting on our laurels, to always be looking toward the next problem that needed to be solved. That was two bosses ago, but I still have that picture hanging in my office. It’s become a personal mantra.

Ideas are nothing if you can’t execute them. Most likely, you’re going to need the support and resources of other individuals to move your plan forward. The larger the scope and impact of your project, the greater the amount of support and approvals you’re going to need from other teams or individuals. Be ready for that.

I list this as the 4th step, but in reality, I’ve fleshed out the outline for my “next steps” action plan before the meeting with my boss. I know the action plan will go through additional levels of validation and refinement AFTER the project is approved, but I want to make it easy to get started. I’ll detail as many of the subsequent required actions or approvals that I can reasonably think of, and jot them down. At this stage, I’m not putting a lot of details into the plan (no sizing of effort or setting of dates and deadlines). Otherwise, I’m being as specific as I can in naming individuals or teams, and what specifically is needed from them.

I can’t tell you that using this approach with every idea has resulted in gaining support for the idea in the workplace. But each time I’ve followed this practice, I’ve gained new insight into the needs of the business. I’ve practiced and improved my communication and project management skills. I’ve benefited from the networking and collaboration in pitching my idea with peers. Even if the work I’ve put into this doesn’t result in my GREAT IDEA being implemented, I’ve come out at the other end of the process as a better Salesforce Administrator.


Tuesday, August 7, 2018

What Happens When You Give a Salesforce Profile Permissions to No Apps?

In our current project, we're integrating Salesforce with a backend, user registration database for a mobile app. After users download the mobile app and register their accounts, their basic profile information (first name, last name, username, birthdate, etc.) is captured in a database. My service team wants these users captured in Salesforce as contact records.

One of our agile teams have implemented the database, and is pushing the data into Salesforce using REST API call-outs.

For the initial proof of concept, we gave them a Salesforce user account configured with a System Administrator profile. I know, however, that several team members now have the username and password for this integration user. It's time to move that user account to a new profile, and start locking it down -- so that it can only do what I need it to do: insert new registered users, and update Contact records (in case a user changes any of their information in the mobile app).

There are a number of settings I know I'm going to want to set -- like preventing the password from expiring for this data migration user. I'll also want to set profile so that users can have API access only -- no ability to login via the standard salesforce login pages. There are probably a bunch of other settings I'll want to make, too. I figured the best way to start was to look at the profile, and review it's configurations top to bottom.



The first config setting to go through was Assigned Apps. Now I know that this profile is going to be eventually locked down so that it can only access salesforce via the API -- but what happens if some future admin removes that setting? If users do somehow get access to salesforce via the standard login page, I want their actions to be highly restricted (this org may contain sensitive information; and I want to make sure the profile can only access the things it needs to access).

But what happens when you give a salesforce profile permission to NO apps? I didn't know -- and a quick Google didn't turn up much either. So, I config'd it up.

As it turns out, it's not possible to give a profile permission to NO apps. You have to select at least one. So I gave my Data Migration profile permission to the App Launcher only. That had the desired result: clicking the app launcher menu showed no available apps for the user to select from. That's just want I want.



Now to whip through the other config settings.

Thursday, March 8, 2018

Messaging with AI Driven Chatbots

Chatbots are a class of intelligent, conversational software agents activated by natural language input.
A chatbot is a service that you interact with via a chat interface. Texting on a console or speaking directly ala "Alexa" or "Siri" are common examples. The chatbot service can serve any number of functions (informational, practical, or even fun) and it can live in any major chat product. The chatbot itself is powered by rules and sometimes artificial intelligence.

An intelligent chatbot is one that learns conversations all the time to improve its performance.
The modules in a chatbot including user modeling modules and the natural language understanding module which can perform better by learning continuously.

Machine learning (ML) algorithms and human supervisors enable the learning of the chatbot. ML techniques like reinforcement learning supervised, and unsupervised techniques can be leveraged to ensure the AI chatbot becomes a good learner.

The ability to learn is a key factor in creating an intelligent chatbot. With neural networks and deep learning, chatbots can become good learners. Learning is paramount to ensure that the chatbot recognizes patterns in data it receives and responds to user requests in the most appropriate way.

How do we determine if a chatbot is intelligent?

Chatbots adhere to a three-step process for realizing their goal. This sense-think-act cycle defines the intelligence of a chatbot. An AI chatbot goes through this cycle to make progress towards pre-defined goals autonomously.

Sense-think-act intelligent chatbot

For an AI chatbot, sensing the environment where it resides becomes a prerequisite for getting the information required to perform a task. The chatbot finds it easy to listen to what the user says than make sense what is being conveyed by the user. 

Examples of Chatbots

Here are a couple of examples:
  • Weather bot: Get the weather whenever you ask.
  • Grocery bot: Help me pick out and order groceries for the week.
  • News bot: Ask it to tell you when ever something interesting happens.
  • Life advice bot: I’ll tell it my problems and it helps me think of solutions.
  • Personal finance bot: It helps me manage my money better.
  • Scheduling bot: Get me a meeting with someone on the Messenger team at Facebook.
  • A bot that’s your friend: In China there is a bot called Xiaoice, built by Microsoft, that over 20 million people talk to.

Chatbots possibilities in Healthcare


  • Virtual assistance for Care Teams
  • What is my patient caseload toady?
  • Did any patients cancel appointments today?
  • Who is the cardiologist on call tonight?
  • Did my paycheck arrive yet?
  • Pull the lab results for Mr. Smith Jones.
  • Schedule a follow up appointment with Dr. Dre.
  • What is my outstanding balance?
  • Explain this claim i just received.
  • What is the status of my claim?
  • Is the doctor's office open on Fridays?
  • Can my heart medication be taken with aspirin?

Chatbot Architecture

There are two types of chatbots, one functions based on a set of rules, and the other more advanced version uses machine learning.

Rules-Based Chatbot:

This bot is very very limited. It can only respond to very specific commands. If you say the wrong thing, it doesn’t know what you mean. This bot is only as smart as it is programmed to be.

Chatbot conversation framework

Machine Learning Chatbot:

This bot utilizes massive amounts of collected data and intelligent processing to provide responses. You don’t have to be as specific as you might with a rules-based chatbot; it understands natural language, as well as commands. This bot continuously gets smarter as it learns from conversations it has with people.




Platforms

Links