Dreamforce 2013 Session Recap: Top 10 Salesforce Admin Hacks

December 12, 2013 Jarrod Kingston

salesforce admin hacksThis year at Dreamforce I was honored with the privilege of co-presenting with Michael Farrington (@michaelforce) of RingLead on the Top 10 Salesforce Admin Hacks.  This was my first time ever presenting at Dreamforce and it was a lot of fun!  We had a great interactive crowd that laughed at our jokes and made for an all around great time.  At the end of the session we gave away a special prize for the first person who asked a question.  The prize you ask?  This bad boy, autographed by Michael and I for someone to proudly display on their desk at work.

For the session content, we did our best to choose the best 10 hacks from the Salesforce Admin Hacks webinar series.  So definitely go back and check out the previous webinars for hacks not presented in our session.  Below are the hacks we did share and feel free to let Michael or I know if you have any questions on them.

 

1. Convert without Opportunity

  1. Hack Objective:  Default the “Do Not Create Opportunity” checkbox to be checked during Lead Conversion.

  2. Hack Setup

    1. Display Type:  Detail Page Button

    2. Behavior:  Display in existing window without sidebar or header

    3. Button Code:  /lead/leadconvert.jsp?retURL=%2F{!Lead.Id}&id={!Lead.Id}&nooppti=1

2. Lead Website Seeker

    1. Hack Objective:  Provide a link to Lead’s company website even when Website isn’t populated by making an educated guess based on Email and Company fields.

    2. Hack Setup

      1. Display Type:  Detail Page Link

      2. Behavior:  Execute JavaScript

      3. Link Code (CLICK HERE TO COPY):

var website = ‘{!JSENCODE(Lead.Website)}’;

var email = ‘{!Lead.Email}’;

var company = ‘{!JSENCODE(Lead.Company)}’;

var targetURL = ”;

// IF WEBSITE FIELD IS POPULATED WE GO THERE, NATURALLY

if(website != ”){

// CHECK IF WE NEED TO ADD http:// OR NOT

if(website.indexOf(‘//’) != -1)

targetURL = website;

else

targetURL = ‘http://’ + website; }

// NEXT WE CHECK OUT THE DOMAIN OF THE EMAIL ADDRESS

else if(email != ”){

var domain = email.substring(email.indexOf(‘@’) + 1,email.length);

// WE FILTER OUT COMMON EMAIL DOMAINS

if(domain!=’gmail.com‘ && domain!=’yahoo.com‘ && domain!=’hotmail.com‘ && domain!=’me.com‘ && domain!=’excite.com‘ && domain!=’aol.com‘)

targetURL = ‘http://’ + domain; }

// IF NO TARGET FOUND YET WE TAKE A STAB USING COMPANY

if(targetURL==”){

targetURL = ‘http://’;

// FAIR ASSUMPTION IS TO SWAP ‘&’ for ‘and’

company = company.replace(/&/g,’and’);

// STRIP OUT INVALID DOMAIN CHARACTERS

targetURL += company.replace(/[^a-zA-Z0-9|-]/g,”) + ‘.com’; }

// FINALLY WE OPEN A NEW WINDOW DIRECTED TO OUR TARGET URL

window.open(targetURL,’_blank’,”,false);

3. Sales Cycle Morphing Page Layouts

  1. Shout out goes to Salesforce MVP Mike Gerholdt (@mikegerholdt)

  2. Hack Objective:  Display different Page Layouts during different phases of the sales cycle.

  3. Hack Setup:

    1. Opportunity Record Types: Create a record type for each stage/part of sales process you want to morph the layouts on.

    2. Opportunity Page Layout: Create a layout for each record type.

    3. Workflow Rule: Create a workflow rule for each time the record type should be changed.

      1. Workflow Field Update:  Create a workflow field update to update the Record Type of the opportunity.

4. Opportunity Product Roll-up Cheat

  1. Shout out goes to Salesforce MVP Aiden Martin (@amartin_nl)

  2. Hack Objective:  Create an Opportunity Field to display the number of Products on the Opportunity that meet certain criteria involving Product Name, Product Family, etc.

5. Merge Account Button

  1. Shout out goes to Salesforce MVP Rhonda Ross (@crmdr)

  2. Hack Objective:  Provide a shortcut to the standard “Merge Accounts” screen while simultaneously pre-populating the search string.

  3. Hack Setup:

    1. Display Type: Detail Page Button or Link

    2. Behavior:  Display in existing window without sidebar or header

    3. Button Code:  /merge/accmergewizard.jsp?srch={!Account.Name}

6. Change Email Without Sending Email Confirmation

  1. Hack Objective:  You want to change a User’s email address but do not want to send the User a confirmation email and wait/rely on them to confirm.

  2. Hack Secret:  Change the email address AND check the “generate new password and notify user immediately” checkbox then the email address gets committed right away.

7. Quick Email Links

  1. Shout out goes to Salesforce MVP Bill Greenhaw (@Bill_Greenhaw)

  2. Hack Objective:  give service agent ability to quickly send a commonly used email response to case contact.

  3. Hack Setup

    1. Link with one template: /_ui/core/email/author/EmailAuthor?p3_lkid={!Case.Id}&retURL=%2F{!Case.Id}&template_id=(TEMPLATE ID HERE)&p2_lkid={!Case.ContactId}&p2_lktp=003&p24={!if(ISNULL(Case.ContactId),Case.SuppliedEmail,”)}

    2. Dynamic link using picklist to choose template:  /_ui/core/email/author/EmailAuthor?p3_lkid={!Case.Id}&retURL=%2F{!Case.Id}&template_id={! CASE(PICKLIST FIELD HERE, “VALUE 1 HERE”, “TEMPLATE ID HERE”, “VALUE 2 HERE”, “TEMPLATE ID HERE”,””)}&p2_lkid={!Case.ContactId}&p2_lktp=003&p24={!if(ISNULL(Case.ContactId),Case.SuppliedEmail,”)}

8. Case Comment & Email Message Tracking Fields

  1. Shout out goes to Salesforce MVP Jason Paquette (@PaquetteJason)

  2. Hack Objective:  store important dates such as “First Comment Date” and “Last Comment Date”

  3. Hack Setup

    1. Custom DateTime Field: Last Comment Date

    2. Workflow Rule

      1. Object: Case Comment

      2. Evaluation Criteria: when a record is created

      3. Rule Criteria: “true”

    3. Workflow Field Update

      1. Field to Update: Last Comment Date

      2. Formula Value: “Now()”

9. Take Ownership Rule

    1. Shout out goes to Salesforce MVP Jason Paquette (@PaquetteJason)

    2. Hack Objective:  give service agent easy way to take ownership of a Case.

    3. Hack Setup

      1. Display Type:  Detail Page Button

      2. Behavior:  Execute JavaScript

      3. Button Code:

{!REQUIRESCRIPT(“/soap/ajax/13.0/connection.js”)}

var caseObj = new sforce.SObject(“Case”);

caseObj.Id = ‘{!Case.Id}’;

caseObj.OwnerId = ‘{!$User.Id}’;

var result = sforce.connection.update([caseObj]);

if (result[0].success==’false’) {

alert(result[0].errors.message);

} else {

location.reload(true);

}

  1. BONUS:  Validation to prevent users from taking other users cases

    1. Custom Formula Field (Text):  Ownership Type

      1. IF(LEFT(OwnerId, 3) = “005”, “User”, “Queue”)

    2. Validation Rule

AND(

ISCHANGED(OwnerId ),

PRIORVALUE(Ownership_Type__c) = “User”,

OR(OwnerId = $User.Id, CONTAINS($Profile.Name,”administrator”))

)

10. Edit Link Reports

  1. Hack Objective:  Add hyperlinks to edit records from within Salesforce reports.

  2. Hack Setup

    1. Custom Formula Field (Text)

    2. Formula value:  HYPERLINK(‘/’ & Id & ‘/e’, ‘edit’, ‘_blank’)

Previous Article
Force.com CLI Fun with JSON and .jq
Force.com CLI Fun with JSON and .jq

Most of us at Appirio are terminal junkies so we were really excited when the Force.com CLI was announced. ...

Next Article
Excerpt: What does Heroku1 mean for Developers?
Excerpt: What does Heroku1 mean for Developers?

Heroku1 was announced a couple of weeks ago at Dreamforce but was overshadowed by the Salesforce1 fanfare. ...