Documenting Custom Apps with ScreenSteps

As an administrator I spend a lot of time teaching. Teaching users how to retrieve a lost password. Teaching managers how to build custom views. Teaching the CEO that not all reports need to be on a dashboard.

While I love teaching my users one-on-one, this often isn’t practical. For example, when I roll out a new app, I can’t be in everyone’s cube walking them through it.

As I’ve mentioned before, we recently rolled out several apps. I was NOT looking forward to creating the training materials. Frankly I was dreading it. I envisioned struggles with versioning the docs, making sure my screen-shots were readable (but not too big) and general fear over the sheer volume of stuff I needed to convey!

Upon the recommendation of one of my Twitter friends (sorry folks, I can’t remember which!), I spent some time investigating ScreenSteps. Well, I’m in love!

ScreenSteps is an amazing documentation creation tool. Aside from the super intuitive UI, you can logically group your lessons into manuals and, depending on your version, put those lessons on their servers. Now, here’s the best part. Once your lessons in the cloud, you can make them available in a web tab in Salesforce!  Swoon!

It took me much less time than I was expecting to create the documentation for my app.  Once it was done, I ran it by my colleagues who (of course) had edits.  Making changes to the documentation proved to be equally easy!  All I had to do was edit the local version and push it to the cloud.  Instant updates!  I am one happy Admin!

Thanks ScreenSteps for making this Administrator’s life MUCH easier!


Code for Cookies

Photo by D Sharon PruittI’m not above bribery.

Earlier this month I had a really pressing need for a count of all Activities related to a given Opportunity.  My goal was to use this count as part of a calculation for prioritizing Opportunities.

Well, it turns out, us button-click-admins can’t do that kind of thing within Setup.  You have to be able to code a trigger.  Boo!

So, I put my thinking hat on.  What motivates coders?  Food!  Specifically baked goods!

I posted this in the Salesforce Community on 8/3/10:

I would like to have a field on Opportunities (for now, Cases later) that is a count of Activities.  I know this isn’t possible via the UI, but I’m hoping some generous coder out there will take pity on me and share the appropriate code.
I’m happy to bribe you with baked goods if that will help.  🙂



Ten short days later my plea was heard by Kevin Swiggum.  He wrote a fantastic blog post with the helpfully commented code, enlightening commentary and, best of all, the triggers are bulkified!  Swoon!

And all for the love of chocolate chip cookies!

Where on the org chart do Administrators fit?

I have lots of tweeps who are Salesforce Administrators.  In title, or job description or both.  We are a feisty lot with strong opinions.  I’m can’t wait to hear how they weigh in on this one.

In what department should a Salesforce Administrator work?

I suppose the quick, easy answer is “it depends”.  If the organization is large and only one or a few of the departments is using Salesforce, perhaps it makes sense for the Salesforce Admin to work for the department in question.

If, however, the organization has adopted Salesforce in many, if not all, departments, it probably makes more sense for the Administrator to report up through the IT organization.  Me and my teammates are in this category. (We each have our own specialities.  I came to my role from the Customer Service side of things.  Our Analyst comes from a Sales and Marketing background.  Finally, our Developer comes from an IT world.  Between the three of us, we can handle anything!)

Here’s where I get controversial! On some level, this type of decision comes down to corporate culture.  Is the IT team in your organization responsive to the needs of the business?  Can they leverage the flexibility and extensibility that Salesforce offers to meet the ever-changing needs of the business users?  If not, then the administrator role should probably live outside IT!

The only way a Salesforce Administrator can do right by the business is if they are unconstrained by titles and org charts.  They have to be able to push back on even the most hardened and crusty VP.

VP: “I want a checkbox on this page and I need it yesterday!”

Administrator: “No, I’m not going to put a checkbox there.  The process is broken and needs to be reworked.  Let’s do that instead.”

How does this work in your organization?  Please fill out this unscientific poll and weigh in via the Comments.

Learning Salesforce

One of the perks of my job is that I’m the go-to-gal for questions on the innards of Salesforce.  I get asked about validation rules, Chatter, and, my personal favorite, “what the heck is a record type and why should I care?”

Often, co-workers want to learn more on their own.  Sure, I can point them to the Help & Training link, but they want “inside” information.  They want the low down from the folks “in the know”.  I send them the following list:

  • The Salesforce Channel is an amazing resource.  It includes videos of Dreamforce, AppExchange apps, and, best of all, you can contribute your own!  The whole thing is organized by Jeff Grosse (of CRMFYI fame).
  • The blogosphere it always a great resource for learning new things.  I highly recommend all of the blogs in my blogroll.  Let me know if I’m missing any gems.
  • If you’re on Twitter (and you should be), you can use lists to collect tweets around a theme.  Mike Gerholdt has done just that.  Here’s his twitter list of Salesforce folks.
  • Then, of course, there’s the Learning Center.  This is official Salesforce stuff, but presented in a friendly way for those just poking around.

To quote a co-worker: “Salesforce is a never ending rabbit hole of coolness.” There’s always something to learn!

Entering Old Data Into A Deployed Object

When we rolled out the employee awards program I mentioned in my previous post, we weren’t sure the business would want the old data (400 awards worth) captured in Salesforce.  After the app had been live for a few weeks, it became clear that back data would need to be in Salesforce for reporting purposes.  Great!

PROBLEM: How do I give access to the data entry folks without compromising the automation that’s happening in the background of the app?  For example, when you create a nomination there is logic in the background that determines the approver and starts the process along its merry way.  This is great in production because it keeps the user from having to determine who gets the approval next.  Trouble is, these paper awards have already been approved!

SOLUTION: Why not use a sandbox?  Once the data is all entered I’ll, run a report, export the report and, using the DataLoader, put that data in production. So, I created a sandbox, disabled all the logic and streamlined the page layout for easier data entry (including removing all related lists.)

The data is about 10% entered at this point, with completion slated for sometime next week.


We needed a custom app to track an employee awards program.  All employees are encouraged to nominate co-workers who have wow’d them.  The nomination process had involved pieces of paper floating around the office waiting on approvals in special colored inboxes.  It should come as no surprise that forms got misplaced or delayed.

With the help of my colleagues, we created a custom app in Salesforce.  The app is one object, the nomination, with approval processes and validation rules.  The nomination object has two user lookup fields: one for the nominee and one for the nominator.  These fields are necessarily independent of the record creator and the record owner for a myriad of convoluted reasons.

PROBLEM:  I can’t create a Custom View to show a user only their nominations (meaning the nominations they’ve written up to award co-workers).  The “My Record” functionality is based solely on ownership of the record.  There had to be a way to make this thing work without giving everyone access to the “All Nominations” view.

SOLUTION: I created a formula field that evaluated to “1” if the nominator was the same as the current user.  I cleverly called the field “IsCurrentUser”.  Here’s my formula:  IF(Nominator__r.Username = $User.Username, 1, 0)

When a user logs in and goes to the “My Nominations” view they see only records for which they are the nominator because the view filter criteria look like this: “IsCurrentUser equals 1”.  There will only be a total of 1200 records per year for this object, so the evaluation time isn’t onerous.

I have to say, I was pretty proud of myself for this one. Now I can better leverage the lookup relationship to the User object in all my custom apps.

Top 10 reasons to go to Dreamforce ’10

Dreamforce ’10 is only a few short months away and I couldn’t be more excited.  Here are the top 10 reasons to go to Dreamforce ’10.

  1. You will meet the most amazing folks doing amazing things.  There are people and companies using in ways you never imagined.  They are using objects, processes, portals and sites to do fascinating things.  You’ll come away with hundreds of ideas.  You will impart hundreds of ideas.  That’s the point of Dreamforce.  Bring a notepad…or 12.
  2. Birds-of-a-feather lunches let you meet other folks in your job or in your industry.  It is all about exchanging ideas and best practices.  It is all about meeting people who can help you do your job better.
  3. Sessions.  Lots and lots of sessions.  There will be times you wish you could be two or three places at once because the content is just that good.
  4. There’s a tweeetup scheduled.  Most of the details are still up in the air, but I can guarantee you’ll have a great conversation with these folks.  A great group of really smart, really driven, really salesforce-y people!
  5. Vendor swag (or “stuff we all get”) is great to take home to kids, nieces, neighbors, co-workers, really anybody.  Who doesn’t want a branded frisbee?  A USB flashlight with a logo on it?  A desk toy you didn’t even know you had to have?  Save space in your luggage.
  6. Salesforce employees are everywhere and want to talk to you.  They want to tell you how they’re making it better, faster, stronger.  They want to know about how you’re using Salesforce.  Make those connections!
  7. Sustainability is top of mind.  There will be bicycle valet parking, electronic signage, biodegradable and/or recyclable utensils and water stations to encourage you to use a reusable water bottle.
  8. Stevie Wonder & Bill Clinton will be there.  Between Stevie’s music and Bill’s keynote, you’ll be moved and inspired.  I wonder if they’ll take the stage at the same time.  Hmmmm…
  9. If you register by 8/6/10 you can save 50%!
  10. San Francisco is cool…but not too cool!  With average temps in the mid-50’s, the weather in San Fran will let you wear your winter finery without being too chilly.  (I can hear my mid-West friends now.  “You think that’s cold?!?!”)

Now, if all of that has you convinced, but you’re not so sure your boss will agree, the Dreamforce site has a section called “Justify Your Trip”.  I hope to see you there!

Most Influential Blogs

A Twitter buddy of mine posted a very well thought out list of the most influential bloggers.  He used several metrics, which he lays out in awesome detail.

Here is the list for your viewing pleasure.

I’ll be working here to get on the list, then overtake Mike Gerholdt as #1!  Maybe I should pay closer attention to Mike’s tweets.  I am one of his followers after all!

%d bloggers like this: