Thursday, November 19, 2015

How I Give Myself an 'Admin Out' in Validation Rules

I've found myself stuck a few times when I've created a validation rule in Salesforce but needed to update records that would trigger my rule criteria.

Example: I don't want to allow users to update a specific field after it's been populated upon record creation. But, occasionally as the system admin, I may need to update that field when a user makes a mistake.

In the past, I'd edit the validation rule that was preventing me from saving a change and deactivate it. But when you have multiple rules that you're 'breaking', this becomes rather cumbersome.

So, I've started adding an 'admin out' to my rules. There are several ways to do this (by profile id, user id, etc), but here's what's working for me:



I add in a criteria to not allow the change for anyone except a system admin, as defined by the profile name.

This has been working well for me.

Word of warning: I don't recommend doing this for all rules, especially those that prevent changes that could cause errors in reporting or data consistency. Be selective if you choose to allow yourself an 'admin out.'

Do you have an alternative method that works for you? Let me know in the post comments or share it with me on twitter - @rathergeeky.



Wednesday, November 18, 2015

Salesforce Report Challenge: Total of Opportunities for All Accounts Within a Hierarchy

I received a report request today that sounded something like this: I need to get a total of all won opportunities for any account in this account hierarchy, regardless of whether we worked directly for them or were subcontracted*.

Sounds simple, right? 

In theory, yes. But, if you happen to have a complicated account hierarchy (eg: you have any federal government accounts), this is not an easy task. In fact, it's not natively possible to run a report like this in Salesforce.

In my case, I was looking at 80+ accounts organized in a hierarchy that was five levels deep. 

Rather than tell the requestor that the report was impossible, I decided to get a little creative.

Step 1: Get a list of all the accounts to include

I clicked on the [View Hierarchy] link next to the account name. Because I had multiple parent/child relationships, I scrolled until I found the account name that I was looking for within the hierarchy. Then I highlighted all the accounts underneath that, copied and then pasted them into Excel.

This is what my spreadsheet looked like:



At this point, I needed to extract the record IDs from the account name url. I remembered blogging about this before and read through the old post to remind myself how to extract the record ID from a hyperlink.

My spreadsheet then looked something like this:


Step 2: Generate a list of record IDs to use as a report filter

After I extracted my record IDs, I created a formula to concatenate the record IDs into a format that I could use as my report filter. (I demonstrated this method in a previous post.)

Step 3: Create a report and add the filter criteria

I created the report in Salesforce and pasted the concatenated IDs in my filter. Since I wanted to filter by two account fields on the opportunity, as well as by the parent relationship, I had to add those three fields to my filter. (Note: Several of these fields are custom formula fields based on the lookup to the Account object.)

Because the filter criteria can include only so much text, I split the record ID list into two filters for each field that I wanted to apply the filter to.

Here's how it looked:



Final Thoughts

I'd much prefer an approach that is more dynamic, rather than hard-coding the record IDs to generate a report. But for now, it does what I need it to do.

If you'd like to see some improvements to functionality surrounding parent/child accounts and account hierarchy functionality, vote up these ideas on the IdeaExchange: Add more account hierarchy functions for parent/child accounts, Report on Account Hierarchy

Have you ever received a request for a Salesforce report that stumped you? Or do you have an idea to improve my workflow? I'd love to hear your suggestions and stories in the comments below.


*We have a Secondary Account custom lookup field so that we can track not only the direct client the opportunity is for, but also the account that may have hired them (when we are operating as a subcontractor).

Thursday, August 13, 2015

Simple TextExpander Snippet to Search Salesforce with a Copied Keyword

Here's a simple text expansion idea that popped into my head today and will save me clicks/time on a daily basis!

I often receive emails asking about a record in Salesforce by a keyword, such as Opportunity Name, without a link to the record.

My previous workflow involved:
  1. Highlighting the Opportunity Name in the email
  2. Using CTRL + C  to copy what I've highlighted
  3. Navigating to Salesforce
  4. Putting my cursor in the search box
  5. Using CTRL + V to paste what I copied
  6. Using the ENTER key to execute the search
  7. View the search results to find what I'm looking for
I realized today that it would be a lot easier to automate steps 3-6 using TextExpander. So, I created a new snippet comprised of the url of the page after I do a search in Salesforce.

My new process is: 
  1. Highlighting the Opportunity Name in the email
  2. Using CTRL + C  to copy what I've highlighted
  3. Opening a new tab in my browser (CTRL + T)
  4. Typing the snippet abbreviation, in my case: s.sr
  5. Viewing the search results to find what I'm looking for
The snippet is made up of three parts: 1) the Salesforce search url, 2) the value I've copied to my clipboard, and 3) the [ENTER] keystroke


Creating this simple snippet shaves a few clicks whenever I need to perform a search based on keywords I've received in an email. It might not seem like a big deal, but every click or keyboard stroke counts in my book!

Tuesday, July 28, 2015

(Updated) Sending a Link to Google Slides in Presentation Mode

Update 9/12/17 - It seems that Google has disabled this functionality. But, here's another method that I found while searching for solutions. 

Copy the share url (click on the Share button and click 'get shareable link') and update like shown in the sample below: 

Original link: https://docs.google.com/presentation/d/1234567890/edit?usp=sharing
Update to: https://docs.google.com/presentation/d/1234567890/present?usp=sharing

When deploying changes to Salesforce, part of my process involves creating documentation and tutorials to explain the changes to users.

I've found Google Slides to be very useful for this purpose. I create a short slide deck with an overview of the changes, along with screen captures so they'll know exactly what to expect.

I generally send a link to the shared slide deck, but I realized recently that my recipients might not be sure what to do with that link, or how to view the presentation in an easily navigable format.

My previous method involved sending a link to the presentation, which opened in this preview mode.

So, to make the process easier, I've started sending a link to the slides in presentation mode.

To do this, I click on 'Present in new window' under the Present button dropdown, and then copy the url in the new window that opens.


Now, when I share the link, the slide deck will open in presentation mode and the viewer can use the arrows on the keyboard to navigate.



I'm always looking for ways to streamline and improve how I support end users. Have suggestions or ideas to improve the process I've described above? I'd love to hear them in the comments!

Thursday, March 26, 2015

Promoting My Brand Internally as a Salesforce Admin with New User Welcome Emails

In my last post about using the Vertical Response WYSIWYG editor to create emails for my Salesforce workflows, I mentioned that I would share how I use this method to promote my brand as a Salesforce Admin within the company. So, here's the story.

When it comes to my personal brand, I'd summarize it in these words: approachable, knowledgable, responsive and helpful.

I want to be the person my coworkers go to when they have a suggestion for improving CRM for the company, who they contact when they aren't sure how to follow up on a lead assigned to them, the name that pops into their head synonymous with Salesforce.

Conveying that image starts with my very first correspondence with them, typically the 'new user welcome email' that I send when I create their user account in Salesforce.

To help enforce this brand, I recently began redesigning my internal support emails, including that new user welcome email.

Here's what it looked like before:



It wasn't horrible. I just thought it could be a little more streamlined and use a bit more pep. My video tutorial was also quite out of date (besides, who has time for a 1 hour video tutorial?). So, I transferred the most important points into an updated Google Slide presentation.

And here's my redesign:






I like that this format is personable; I've added my picture at the bottom because working remotely means I rarely get to meet my coworkers. It's pops a bit more with the simplified layout and graphics. The flow of information is improved and it makes it easier for the user to see what they have to do next.

Here's a peek at a few slides in the presentation that I link in my email:




A little side-by-side comparison:



And finally, here's how I use this email template:
  1. Create new user.
  2. Navigate to 'Mass Email Users' under 'Manage Users' in Setup.
  3. Refresh 'New Users' list view that I've customized to show users created today.
  4. Select my email template. 
  5. Send, leaving the default to bcc myself checked.

If you're interested in improving your personal brand, here are a few articles that I found useful:



PS - The icons I used in my updated email are from: http://icons8.com/free-ios-7-icons-in-vector/

Wednesday, March 25, 2015

How I Use Vertical Response's Email Builder to Create Formatted HTML Email Notifications for Salesforce Workflow Rules

When you've been a Salesforce Administrator for a decent length of time, you might look back on the way you implemented certain features or customized the application and be struck with this thought: "Knowing what I know now, I wish I would have done it differently."

That's the situation I found myself in as I reviewed some of our workflow rules and email notifications recently. 

Most of the email notifications were plain text and rather... blah.

So I decided to spiff them up with a little help from the html email editor that I use for creating marketing email campaigns: Vertical Response for Salesforce. 

Perks: 
  • It's free to design emails with the Vertical Response WYSIWYG editor. 
  • It's easy to use.
  • You can paste the resulting html directly into your Salesforce email template.

Why do I use Vertical Response's editor instead of the Salesforce editor? I like to use the 'Custom (without using Letterhead)' template creation option, which means I would have to code all the html by hand. No thanks. 

Here's my process: I start off by having two tabs open. 1) 'VR Email' tab in Salesforce, 2) my new Salesforce email template, with the option of 'Custom (without using Letterhead)' chosen.

Then I proceed with the following steps:

Step 1: Design the email in the Graphical Editor.


I create a new draft email in Vertical Response. 

I like to use a centered table to make the email a bit more visually appealing.

In this example, I pasted the field names from Salesforce so that they would merge correctly.

When I'm done with my editing, I save the draft. If I need to make changes in the future, I can just come back to it in Vertical Response, make my modifications and replace the html in Salesforce with the updated version.


Note: I recommending doing all your copying and pasting text into the VR editor before you attempt to format your text. I've noticed that if I copy and paste (even if I use 'paste unformatted'), it strips the existing formatting of my entire email. Blargh. So, save yourself the frustration and get all your content in there first before you begin modifying fonts, sizes, etc.

Step 2: Preview the email.


If there are any basic formatting changes to make, it's easier to do them now than manually in html.




Step 3: Copy the code from the 'HTML Code' tab.


After selecting all the html, I copy it and switch over to Salesforce.




 Step 4: Paste the html into the 'HTML Body' area of my email in Salesforce.



Step 5: Click on the 'Preview' button and admire the result. 





Step 6: Click Save.


Now my fancified new email template is ready for circulation. It's a big improvement over the plain text version!



Coming Soon: In my next post, I'll show you how I used this method to redesign my 'new user welcome' emails and promote my brand within the company as a Salesforce Admin.



Wednesday, February 11, 2015

How I Use Jing, Clarify & Skitch to Train Salesforce Users on the Fly

"I'm trying to customize a report but my filters aren't working".... "I'm searching for an account but I'm not seeing anything in the results and it should be there".... "I don't see my opportunities."

In my role as a Salesforce Admin, I regularly receive emailed questions like this - not so complicated that scheduling a screen-sharing session is necessary, but not simple enough to warrant a "send me a link to the page you're on and I'll fix it" response. Often, it's a case of someone needing a little extra training.
Note: I've talked about this topic before (see this post: "How I Changed My Attitude Toward Internal Tech Support"), but I've updated my methods in the last few years.

I prefer to not just call someone up on the phone and tell them what to do. Why? Because...
  1. What happens when the person I'm helping forgets about our conversation and stumbles across the same issue? 
  2. Schedule and time zone differences tend to yield a thread of 'what time works for you?' emails that drive me nuts.
  3. When the question comes up again with another person, it's great to have a resource that I can share quickly. I'm saving my future self some time.
  4. Phone calls are disruptive. I'd rather they review my response at the best time for them.
  5. Showing is always better than telling.

To help me use these opportunities to teach people individually, I use these three tools:
Links: Clarify (from ScreenSteps) | Skitch (from Evernote) | Jing (from TechSmith)


To determine which tool to use, I consider how I can answer their question best.

  • Will a single marked-up image do the trick? Use Skitch.
  • Would I type a numbered list of instructions in an email in response? And would pictures be helpful? Use Clarify.
  • Can I explain this best by walking them through the steps personally? Use Jing.


How I Use Skitch

I prepare my screen so I'm viewing what I want to capture, then use the keyboard shortcut for a crosshair snapshot (meaning I 'draw' around the area I want to capture).

I use arrows, boxes or text to annotate the image as necessary, drawing attention to a button they should click on or a field that they need to populate.



Note: Jing can also be used for individual screen captures, but I prefer Skitch because I can drag and drop the images directly into Gmail.

How I Use Clarify


When someone asks me a question that will involve a step-by-step answer, I love to use Clarify. It's a quick and easy way to create one-of tutorials that combine written instructions with annotated images that show them exactly what to do.



I typically share my tutorials via a link, but there's also an option to export as a PDF or to Evernote.

How I Use Jing


Jing is easily accessed from my menu bar. I choose the area that I want to record and click to start the video recording.



Most of the time, I record audio so I can explain what I'm doing. But on occasion I leave the audio muted if no other instructions are necessary aside from a quick demo.

I keep my explanations brief - usually right around a minute. Then, with a click, I can upload the video, then the link is automatically copied and I can paste it in an emailed response.

The Result


Recording a short video, preparing a step-by-step tutorial or capturing my screen may take a smidge more mental energy, but it doesn't take much longer than composing some instructions in an email. The results have been well worth the effort.

I received this response today after I sent a coworker a video about how to customize an existing report.



Click here to see another example of the response I've gotten to this method.

Does your job involve providing tech support or training for coworkers? If so, what tools have you found successful? I'd love to hear about them in the comments.

Thursday, January 8, 2015

Salesforce Admin Journal: Simple Sidebar Feedback Form Using JotForm

Hello my fellow Salesforce admins!

I'm working on rolling out a few changes to our Salesforce org and want to make sure that users can offer feedback as painlessly and conveniently as possible. They shouldn't have to switch tabs or compose a new email, or input any other information aside from their comment.

Ideally, a 'Comment' box and 'Submit' button could dwell right there in the sidebar itself. But, after some googling and brainstorming, I wasn't quite sure how to implement a solution that simplistic.

Instead, I found a workaround for the next best thing: a link to a popup form (created with Jotform, one of my favorite tools) that pulls in the user's email address from the url.

Here's how it turned out:


Designing my super simple form in Jotform. 

I customized the thank you page.

I created my url - passing the current user's email into a field on my form, per this tutorial.

The finished link

The form pops up.
The email notification that I receive when a user submits a comment with the form.

All things considered, I'm content with this simple solution. It might not be the most elegant, but it's easy for users to use and easy for me to maintain/customize.

Win win.