• Passing Your Salesforce ADM201 Certification Exam

    I passed the Salesforce ADM201 certification exam today. It’s been a five-year road to get here. From the first week I began working with Salesforce, I decided attaining certification was something I wanted to pursue.

    Now that I’ve done it, I thought it might be good to share the things that helped me be successful with those looking to do the same.

    Know Your Stuff

    Your success or failure pretty much boils down to this… You’ve got to know your stuff or it’s never going to happen.

    The Salesforce ADM201 certification exam is not a walk in the park. You’ll never pass it by just reading the online help, or taking online practice tests and studying flash cards — most of which are badly outdated, or just plain wrong.

    You’re going to need to be familiar with just about every area of Salesforce and how it actually works — where and how you can do something, and where and why you can’t do something else.

    This means getting a developer org and configuring it just like you would if you were doing it for your day job or a client. Be creative in your approach. Try doing things you’ve never done. Try to break it. Enter real data and learn how it flows through the system from a Campaign to a converted Lead to a resolved Case.

    Learn it, live it, be it…

    Do everything in your power to wrap your head around the big picture of what Salesforce does and totally understand it. That’s what being a good admin is all about anyway — knowing what can or can’t be done.

    Study With a Group

    I can’t stress this one enough.

    My employer was kind enough to purchase a year of Premiere Plus Support in order to provide me the online courses to pursue certification, and I did all 60+ hours of both the ADM201 and DEV401 trainings. I learned a lot from it, but it wasn’t until I joined a study group that the learning really sank in.

    Collaborating with a group of your peers introduces fresh ideas, which could give you a completely different perspective about a topic. That, in turn, leads to other moments of discovery. If you’re serious about earning a certification, I suggest you find others who are as committed as you to passing your exam.

    I joined the Salesforce Certification Study Group[efn_note]Thanks to link rot, this site is no longer available.[/efn_note] in the Salesforce Success Community. Deepa Patel and the others who volunteer with the group have worked hard to develop a successful curriculum with a high passing rate for those who are committed enough to make it to the end. It doesn’t cost any more than your time and effort, plus the $200 to register for your Salesforce ADM201 certification exam, which you’re going to spend anyway.

    Once you’re accepted into the private group, watch what goes on in the Chatter feed for a while, then when signups for the next round of sessions are announced, join the one that best suits your geographical region.

    Make the Time

    Okay. You’ve been accepted into the study group. But if you aren’t totally serious about earning your certification, you’ll never be successful. Period. You’ve got to want it to happen. If you don’t give studying the attention it needs, you can forget about passing, and may as well stop reading now.

    Make it what you think about when you’re sitting in traffic, brushing your teeth, or taking a shower. Turn off the TV for a couple hours each night and learn something new about Salesforce instead. Choose to become obsessed for a while.

    If you end up joining the certification study group, make time to do the work you’re supposed to do before the next session — every single week. Commit to the 15 weeks the group is going to require from you. Be ready to demo your work for the online sessions. Know exactly what you did, why you did it, and have a reason for it. I promise you’ll learn incredible amounts if you commit to working this way.

    Be Real with Yourself

    Be 100% honest with yourself. Ask yourself “Am I really ready to pursue certification?” If you’ve only been working with Salesforce a few months, it’s going to be a tough row to hoe, even with the help and support of a study group — who may not be too keen helping you along while studying themselves.

    Being part of a group requires commitment. People are depending on you to have ideas that could be different than theirs. Are you really ready to commit to a group of 6–12 people for 15 weeks, and collaborate with them? Are you really ready to do 5 to 8 hours of homework each week? It’s going to take serious sacrifice.

    If you’re not ready, then wait until you are. You have a better chance of succeeding if you do. By joining the study group without enough experience, chances are you’ll fall behind fast, which is going to discourage you. Don’t set yourself up to fail. Be ready.

    Use Good Resources

    I mentioned the online tests and flash cards earlier. Don’t rely on them at all. Salesforce adds lots of new features at each release. Flash cards and tests from the Spring ’11 release are full of misinformation now. If you rely on them to know your stuff, you might not know much at all.

    There is one good resource I’ll personally endorse, and that’s John Coppedge’s Certified On Demand.

    I joined while John was developing the site, but would have no hesitation spending the $40 lifetime membership that he’s asking for now. It’s a good resource that’s kept current. The questions he’s developed are quite similar to the real test (but not actual questions, and are just a little easier).

    Consider supporting John’s efforts and buying a lifetime membership. Use Certified On Demand as a supplement to studying with the Salesforce Certification Study Group. It helped me be confident I was ready when I started doubting myself.

    The only other resource you need now is to watch the Dreamforce Get Started on the Certified Administrator Credential[efn_note]Link rot got this one too. Too bad, it was a great resource.[/efn_note] workshop video. It provides solid advice for being ready, how to take the Salesforce ADM201 certification exam, and knowing what you’re walking into.

    Taking Your Exam

    You’ve scheduled your test, and now it’s time to go take it.

    There’s only one thing to be said… Know that you know what you know. If you’ve worked hard in the Salesforce Certification Study Group, you’re ready to pass. Walk into the exam knowing that fact.

    When you sit down to begin, take a minute to breathe and relax. Then start your exam using the techniques you learned from the workshop video. Before you know it, you’ll be waking out of the testing center as a Salesforce Certified Administrator.

  • AppleScript to Compress Files and Folders

    I had the need to select several folders at once in the Mac OS Finder and zip them up as individual archives. This AppleScript to compress files and folders was the solution I came up with.

    The script compresses each item selected into its own archive, and works with both folders and files.

    tell application "Finder"
        set theList to selection
        repeat with i from 1 to (count of theList)
            set theItem to (item i of theList) as alias
            set itemPath to quoted form of POSIX path of theItem
            set fileName to name of theItem
            set theFolder to POSIX path of (container of theItem as alias)
            set zipFile to quoted form of (theFolder & fileName & ".zip")
            do shell script "zip -jr " & zipFile & " " & itemPath
        end repeat
    end tell
    

    Download the source here.

    As always, you’ll get the best results when used with FastScripts by Red Sweater Software.

  • Salesforce Flows, Visualforce and Context

    I was asked to find a solution for our field reps that would simplify the process of adding a completed task to their activities when they visited one of our retail stores.

    We keep our retail locations in Salesforce.com as contacts under a master account, which is shared with all users using a special account sharing rule.

    The solution I came up with was a simple flow that limited users to a specific set of enterable information, pre-filling the date of the activity, and marking the task complete when the activity was committed. Literally, the only thing they needed to do was select a picklist value and enter a comment about their visit. It was exactly what we were looking for.

    The thing I didn’t like about the flow was that when a user entered it, context kind of got lost – meaning they started out from a contact record, but didn’t have a good visual cue about where they were once they got into the flow.

    Sure, the flow was simple, but to me it’s still poor UX not to know the context of your work at all times. So, I decided to use a Visualforce page to solve the problem:

    <apex:page standardController="Contact">
        <apex:sectionheader title="Add Retail Store Visit" subtitle="{!Contact.Name}"></apex:sectionheader>
        <flow:interview name="Retail_Store_Visit">
            <apex:param name="vContact" value="{!Contact.Id}"></apex:param>
            <apex:param name="vAccount" value="{!Contact.Account.Id}"></apex:param>
        </flow:interview>
    </apex:page>
    

    The trouble with this was that after the flow data was committed, the user would be returned to the beginning of the flow. That’s definitely not what I wanted. I needed to go back to the contact record I started from.

    So I added the finishLocation attribute to the <flow:interview /> component tag. It would make sense that if I passed the Contact Id, the flow should return to the Contact record:

    <flow:interview name="Retail_Store_Visit" finishLocation="{!URLFOR('/' + Contact.Id)}">
        <apex:param name="vContact" value="{!Contact.Id}"></apex:param>
        <apex:param name="vAccount" value="{!Contact.Account.Id}"></apex:param>
    </flow:interview>
    

    Nope. That didn’t do it. When the flow is entered, context gets lost, so Salesforce doesn’t really know where the user is anymore. Even using the vContact Apex parameter didn’t work.

    I searched help documentation for an answer, but it wasn’t all that helpful. I searched Communities and came up empty. Then I searched the Salesforce Stack Exchange, where the only solution I could find was really convoluted, and didn’t even come close to solving my problem. I was vexed.

    Taking a break to get a cup of coffee, a solution dawned on me that turned out to be pretty darned simple. All I needed was an Apex variable in the page, which I could pass to the finishLocation component tag once the flow was complete. Oddly enough, this method is not documented – at least not that I could find.

    So…the final Visualforce page:

    <apex:page standardController="Contact">
        <apex:variable var="theContact" value="{!Contact.Id}"></apex:variable>
        <apex:sectionheader title="Add Retail Store Visit" subtitle="{!Contact.Name}"></apex:sectionheader>
        <flow:interview name="Retail_Store_Visit" finishLocation="{!URLFOR('/' & theContact)}">
            <apex:param name="vContact" value="{!Contact.Id}"></apex:param>
            <apex:param name="vAccount" value="{!Contact.Account.Id}"></apex:param>
        </flow:interview>
    </apex:page>
    

    Using the Apex variable, users where returned to the contact record they started from, and could see the task they just added in the activity history related list. This was exactly what I was looking for. Everyone was happy.

    If you need to return to a starting point when using flows and Visualforce pages, consider giving this solution a try.