Dreamforce 2013

Dreamforce is happening right now as you read this, Nov. 18 – Nov. 21, and my journey this year has been rather unique.

At this years Dreamforce I have the opportunity to speak on Salesforce communities alongside Yale University (since I am posting this from my iPad I will upload the slide deck that I used tonight), this opportunity ended up being more work than I had initially thought it would be. In order to speak on communities it meant we had to build the communities system in 6 weeks since we had agreed to do a live demo… I would like to say that the reason this was possible is because of how intelligent I am, but truth of the matter is, I have a great team of developers that along with how easy Salesforce has made communities, we were actually able to pull it off. Additional posts on what I learned about communities is to follow.

Apart from speaking at this years conference, a lot was announced that I felt would be advantageous to mention in this post (since it is focused on Dreamforce) the first big announcement that is a huge game changer is the release of the Salesforce One mobile app.
This app enables end users to actually be completely mobile while using Salesforce essentially putting the power of the Salesforce platform in the palm of a users hand. In conjunction with Salesforce One app, the SalesforceA app was released as well, SalesforceA is a mobile app that is for Administrator focused. SalesforceA differs because you can actually manage users through the app, in my opinion one of the most beautiful apps that has been made yet. Some additional key announcements would include the changes to the service console, adding the feed layout to all objects in Salesforce, further opening of the Salesforce API’s are among some of my most favorite things to this point.


Salesforce Admin Magic

Salesforce Admin Magic

One of the downfalls of being an admin with no coding knowledge is that, well, I can’t write code and in turn can’t write triggers very well. Instead I rely wholly on workflows, and formula fields. Now you may not consider this magic, but anytime that I am not required to write code that has been udderly massacred, I am making magic.

With that in mind, I was asked to give a presentation at the Salt Lake City user group meeting on workflows and formulas. At the link you will find the Prezi that was used for the presentation, it talks about how I utilize standard check-box fields, workflow rules / field updates, and formula fields to create Salesforce magic when grading leads.

While this is an example, it is key to remember that these steps can be utilized in many situations, anywhere from grading leads like the example to calculating record completeness or the lack of follow up.

And naturally if you have any questions, or would like some help with coming up with a solution for a problem your facing, feel free to reach out.


Linky Buttons

When dealing with end users I have been asked for many features that, well, don’t make any sense. For example I have had many end users ask for a way to quickly make tasks or activities because the native Salesforce way ‘takes way to long to populate all of the fields on the page,’ after hunting around for a bit I found some awesome resources that gave ideas on how to create some awesome linky buttons that can populate a lot of these fields upfront when clicked, and to make the deal even sweeter could show a pretty little icon for the users viewing pleasure.

So without further hesitation here is a quick overview on how to set up the buttons:

  1. Upload a few of your favorite icons to the documents tab (you can find a bank of icons when you search for ‘Salesforce mini icons’)  **Things to Remember** – When uploading these icons, A) make sure the folder that they are being uploaded to is set as read only and available for all users, B) upload each icon separately, C) View each icon after upload and copy the Id of the Icon from the browser.    DocumentURL
  2. Create the Formula Field with the type as text, copy and past the following into the formula box:
  • For accounts, and any other object besides contact and lead, use the following code:

HYPERLINK(‘/00T/e?title=Call&who_id=’ & $User.Id & ‘&what_id=’ & Id & ‘&followup=1&tsk5=Call&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=Paste Icon Id Here‘, ‘Log a Call’))
& ‘ ‘ &
HYPERLINK(‘/00T/e?who_id=’ & $User.Id & ‘&what_id=’ & Id & ‘&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=Paste Icon Id Here‘, ‘Create Task’))
& ‘ ‘ &
HYPERLINK(‘/00U/e?who_id=’ & $User.Id & ‘&what_id=’ & Id & ‘&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=Paste Icon Id Here‘, ‘Create Event’))

  • For Contacts only, use this code:

HYPERLINK(‘/00T/e?title=Call&who_id=’& Id & ‘&followup=1&tsk5=Call&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=Paste Icon Id Here‘, ‘Log a Call’))
& ‘ ‘ &
HYPERLINK(‘/00T/e?who_id=’& Id & ‘&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=01540000000jZsM’, ‘Paste Icon Id Here’, ‘Create Task’))
& ‘ ‘ &
HYPERLINK(‘/00U/e?who_id=’& Id & ‘&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=01540000000jZsW’, ‘Paste Icon Id Here’ ,’Create Event’))
& ‘ ‘ &
HYPERLINK(‘/_ui/core/email/author/EmailAuthor?rtype=003&p2_lkid=’ & Id & ‘&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=Paste Icon Id Here‘, ‘Create Email’),’_self’)

  • For Leads only, use this code:

HYPERLINK(‘/00T/e?title=Call&who_id=’& Id & ‘&followup=1&tsk5=Call&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=Paste Icon Id Here‘, ‘Log a Call’))
& ‘ ‘ &
HYPERLINK(‘/00T/e?who_id=’& Id & ‘&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=Paste Icon Id Here‘, ‘Create Task’))
& ‘ ‘ &
HYPERLINK(‘/00U/e?who_id=’& Id & ‘&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=Paste Icon Id Here‘, ‘Create Event’))
& ‘ ‘ &
HYPERLINK(‘/_ui/core/email/author/EmailAuthor?rtype=00Q&p2_lkid=’ & Id & ‘&retURL=’ & Id, IMAGE(‘/servlet/servlet.FileDownload?file=Paste Icon Id Here‘, ‘Create Email’),’_self’)

3. Now add the cool new buttons to the page layout.


Why not to use Person Accounts

In my experience with Salesforce there have been few things that I have completely regretted, the decision to use person accounts was one of them. My personal simple answer to person accounts: don’t do it.

While there are many reasons for why not to use them, let me list a few of the most obvious ones:

  • Salesforce has changed their stance on person accounts, initially when the person account decision was made, Salesforce told me they would officially support them. This isn’t the case anymore,
  • Most AppExchange apps don’t fully support person accounts.
  • Once enabled in your org, like a disease they can never really go away. Although record types can be changed and the ability to use the person account record type be taken away, person accounts are still active in the org.
  • You lose the benefit of having the contact separate from the account, every time a contact is updated it always fired off the account execution thread at the same time.
  • General Search feels ‘weird’, when you search for a contact record the record shows up under both account and contact, you can select either and it will take you to the same place, but end users still don’t understand.
  • Business teams are usually confused on which records to report on – account or contact?
  • Users often get confused with the definition of the account ‘__pc’ fields and the proper use of them.
  • All contact fields that are replicated on the account (__pc), data storage is doubled for those records.
  • Lastly – with a bit of custom code you are able to manage the one-to-one relationship just fine, without using person accounts.

After going through a hefty re-factor process, we came to a resting place with a person-account-like solution by doing the following:

  • Using a bit of code to create the one-to-one relationship between an account and contact when a specific record type is created. (bucket accounts just wasn’t doing it for us.)
  • Look-up field from the account to the contact allowing us to reference the contact while working with the account.

While this is like using person accounts we don’t encounter any limitations of using AppExchange apps, and limit the severity of our headache dealing with end users on why ‘Salesforce is confusing.’