Make It More Readable: Enforce Case w/ Simple Workflow Rules

Sometimes the flexibility of Salesforce.com can be intimidating. Whether potential buyers, admins, or users, wrapping your head around all the various tools available to you and imagining how you might used them can be challenging. Sometimes it is the most simple example that starts the wheels turning and leads to a real use case in your business.

I hope this is one of those simple examples. Please let me know otherwise below.

Workflow is a feature of the Enterprise Edition of Salesforce.com that provides a lot of that powerful but daunting flexibility.

I am going to focus on a simple but valuable way to use Workflow to make your data more consistent and readable. I will then show a few screen shots as examples of the setup process and then offer a few additional ways this could help you.

workflow-rule-uppercase-0You and I have a different way of taking notes. You probably write very well. Me, not so much. I use pictures (thanks Tony Buzan!) and you use abbreviations. I oscillate between ALL CAPS and Camel Case (also called Title Caps) and you write in all lowercase.

So, let’s say we are both working together on a deal in Salesforce.com and logging calls, tasks, updating Opportunity and Account information, etc. Our style of writing will start making the information look strange. Certainly my doodles would be absent but my ALL CAPS, Title Caps, and your lowercase notes would certainly stand out.

Many companies require all written forms to be filled out in ALL CAPS due to the variance in how people write letters like o, i, l, and others. It is probably a good idea to set the same rules for information that is typed in since all are used to looking at capitalized letters.

Workflow can do this automatically so no matter who enters valuable information, it will be placed in the right case when it is saved. All we have to do is setup a simple rule with some actions and it will all happen automatically from there.

Inside the Salesforce.com Setup area (click the “Setup” link at the top, just right of center), we will navigate to Setup | Create | Workflows & Approvals | Workflow Rules. Click New Rule and select what object it relates to. In my case, I want Account fields to be saved in ALL CAPS.

After clicking next, choose the criteria of your rule. This is just Salesforce.com asking, “when should I do these actions?” I chose every time the account is saved and when Account Name not equal to null so it will run every time it is saved, whether a new or existing account.

workflow-rule-uppercase-1By clicking Edit on this screen, you can add/modify the actions you want to execute when the rule gets invoked.

workflow-rule-uppercase-2In this case, we just want to take some existing text, such as “Hello world!” and make it “HELLO WORLD!” before saving it. We do this through a Field Update as we are updating the text that exists within a field.

workflow-rule-uppercase-3Here is the simple formula that transforms text into ALL CAPS. You can use this exact syntax for each field as long as you just change the part that is inside the parenthesis to be the specific field you want to change. Use the Insert Field button to pick one and it will insert it into your formula for you.

Once you have done this, simple go back to an existing Account record, edit a field and save it. If done right, all the text fields you assigned actions to will automatically turn to ALL CAPS. The page will be SCREAMING SUCCESS TO YOU!

I’m not angry, I’m excited. Really.

To your success.

signature-transparent

Is Your Profitability Flexible? Here’s a Possible Solution

When it comes to business, using flexible tools in the wrong place can make your profitability flexible too. Every business does it for at least a short time but the successful will proactively innovate to avoid the high cost it brings with growth. Here’s a short test to see where you are on the scale.

The Test

  1. Do you have at least 2 versions of the same form and have difficulty getting your team to use the right one?
  2. Do you let your sales reps come up with their own method to manage leads?
  3. Do you only hear of a deal once it’s been signed?
  4. Does your staff complain of too much “admin” or “overhead” time?
  5. Do you have an employee that manages docs and spreadsheets regularly?
  6. Do clients complain that their expressed needs were not met or items were forgotten?
  7. When a sales rep departs, is their little hope of finding, not to mention working his in progress deals?
  8. Does your sales manager have little visibility into your sales pipeline (i.e. accounts, deal size, win rate, discounting)
  9. Is there little historical data available without significant manual labor?
  10. Do you often have to search through numerous docs and emails for account related info?

Each ‘yes’ answer on this list is shaving hundreds of dollars from your profitability for each employee!

The flexibility of these tools is very helpful at times, especially when doing one-off tasks or exploring a process. However, when you are looking to grow and add on additional resources as needed, this flexibility puts too much creativity into the hands of each person and leads to an organization headache with lots of confusion. Especially if the situation isn’t changed before the next growth spurt.

The worst time to change is when potential customers are knocking down your doors.

The Solution

Most businesses make the decision to move away from this flexibility toward a manageable system when they are small and want to grow. Profitable growth is very challenging in general and without a simple, consistent system to manage the increase of very important information, it can be stunted.

My recommendation to any business that answered ‘yes’ to at least one question above is to consider starting with Salesforce.com Group Edition. With a free 7 day trial and just $8 or so per user per month for up to five users, you can see quickly the benefits of having a common system for all your team.

Salesforce.com Data Cleansing on a Shoestring Budget

One of the biggest challenges with any database, especially when they are easy to use for your whole team, is keeping the data accurate. The most common problem is duplicate data due to the variance in spellings, abbreviations, and other ways that information can be stored with a slight variance in syntax or specifically how it is written.

Salesforce.com definitely falls into the category of an easy to use database and the great potential of getting your entire team directly involved with the data can quickly change your data from a couple varieties of lettuce, each in their own bag to a large tossed salad with few or no ways to discern duplicates, the data of record for conflicts, or organize and separate the lettuce out again.

There are great solutions like RingLead that can proactively check for duplicates when entered and even help you sort them out quickly once saved. However, pricing is based on which features you use and the total number of records. I checked pricing on just the de-duping feature called Declone Data Cleansing for less than 3000 existing Accounts and Contacts and the price came back in excess of $1000 annually. (Their free trial enabled me to test their system on de-duping my Contacts with names ending in A – C which was a nice way to get a few records done.)

Due to the relational nature of Salesforce.com, various records like Tasks, Cases, Campaigns, and other information may be connected to a Contact or Account so keeping the Master Record, the one that is most accurate, and deleting the rest is not the best solution as any connected data either gets deleted or becomes orphaned.

The solution is Merging and Salesforce.com includes very simple wizards for merging up to three Contacts and Accounts at a time. Merge Contacts by clicking “Merge Contacts” button above the Contacts related list when viewing an Account. Merge Accounts by clicking the Accounts tab and then clicking the “Merge Accounts” link at the bottom under “Tools.” (more…)

How To Make Tables Easier To Create & Use in Basecamp

As a Digital Coach, I leverage Basecamp in my business and coach others to do so as well. It helps managers better manage and everyone executes better because they know what is expected by when in a simple, easy to understand fashion.

One of the underused elements of Basecamp is it’s ability to render tables for columnar data. I used this when detailing out field, page layout, and formula changes prior to implementing them in Salesforce so they can all be seen at a glance and updated in a Writeboard before ever hitting the Salesforce.com admin portal.

Basecamp renders visual tables very well with the help of Textile.

However, there are many other reasons tables are generally useful. One example is sorting by a specific column. You cannot do this in Basecamp but you can in OpenOffice Calc or Excel. However, if it was easy to go back and forth between them then using the best of each when needed would be feasible. This is what I will be illustrating.

I prefer the former so this tip will be using OpenOffice.

I want to create a table in Basecamp but rather than create it as text and insert the pipe (”|”) symbols, etc. as I go, I start with a new Calc doc and drop in my column headings and fill in the rows.

OpenOffice Calc spreadsheet

OpenOffice Calc spreadsheet

(more…)

Understanding Business Accounts and Person Accounts – Part 2

In Part 1 of this series, we reviewed the difference between a [Business] Account and a Person Account.

Moving from a Business Account to a Person Account is very common and the converse can be as well so how do we make this easy to do?

Let’s review the requirements to create a Person Account from a Contact.

Salesforce states the only path to change a Contact into a Person Account has these requirements:

  1. You must use the Application Programming Interface (API) to do it.
  2. You cannot make any other updates or changes to the record at the same time.
  3. You must create an Account/Contact pair. That’s one Account with one Contact. The new Person Account will take the Account name.
  4. The Account must have a blank Parent Account value.
  5. The Contact must have a blank Reports To value.
  6. All data in any shared fields (i.e. phone, etc.) between the Account/Contact need to match.*

* I have found that converting a Contact with a mailing address and an Account with no address still works with the address being added to the new Person Account.

As I was looking to solve a different problem today, I came across a solution that made this process simple. Instead of using the heavy apps mentioned in my previous post, this one involves adding a simple Custom Link on qualified Business Account Page Layouts that will convert the Account/Contact into a Person Account.

To get this done, follow or print this page for your Salesforce Admin:

  1. While logged into http://www.salesforce.com, click the Setup link at the top of the page, just right of center.
  2. Navigate to Apps Setup > Customize > Accounts > Buttons and Links.
    Navigate to Account Buttons and Links

    Navigate to Account Buttons and Links

  3. Near the bottom of the page, click the New button to the right of the header Custom Buttons and Links.
  4. Use example image below to match your settings exactly.

    Create the Custom Link using Javascript

    Create the Custom Link using Javascript

  5. Paste all of the Javascript code below into the code area and save. Preferably the second one for added safety.
  6. Get the SalesforceID of the Person Account Record Type you would like to convert to.
    1. Navigate to Apps Setup > Customize > Accounts > Person Accounts > Record Types
    2. Copy the value after the “id=” in the URL either by clicking the Record Type name or copying the URL to your clipboard. It usually starts with “012″.
    3. The value I used out of my url is bolded here:
      https://na2.salesforce.com/setup/ui/recordtypefields.jsp?id=0124000000011NS&type=01I400000005qaX&setupid=PersonAccountRecords
  7. Navigate to Apps Setup > Customize > Accounts > Page Layouts
  8. Click the Page Layout you would like to add this Custom Link to. Security note: If you add this to a widely visible Page Layout, you may find that people will convert B2B records because they can. Sigh.
  9. Click Custom Links on the left of the Layout Editor Top Bar.

    Drag your Custom Link onto your Page Layout

    Drag your Custom Link onto your Page Layout

  10. Drag the Custom Link you created onto the Page Layout and save.

    Custom Link is in the Custom Links section in the Page Layout Editor

    Custom Link is in the Custom Links section in the Page Layout Editor

Here is the code courtesy of David Schach of X2OD.com:

{!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}
var AccountObj = new sforce.SObject("Account");
AccountObj.Id = '{!Account.Id}';
AccountObj.RecordTypeId = '0120000000000000'; // Change by pasting new RecordTypeID
sforce.connection.update([AccountObj]);
location.reload(true);

Changing the red/bold RecordTypeID will change the behavior from a Business Account => Person Account to a Person Account => Business Account. I suppose you could also use this same method to switch Accounts to other Record Types withing B2B and B2C such as a Vendor to a Partner Account, etc.

I like a little confirmation and feedback just to make sure I don’t accidently do this and cause trouble for me (or my client!) so I added a confirm() and alert():

// convert TO a Person Account
{!REQUIRESCRIPT(”/soap/ajax/13.0/connection.js”)}
if(confirm(’Are you sure you want to convert this Account and Contact to a single Person Account (B2C)? This is NOT reversable.’))
{

var AccountObj = new sforce.SObject(”Account”);
AccountObj.Id = ‘{!Account.Id}’;
AccountObj.RecordTypeId = ‘0120000000000000‘; // Paste B2C RecordTypeID
msg = sforce.connection.update([AccountObj]);
alert(msg);
location.reload(true);
}

Custom Link is now visible on specific Page Layout

Custom Link is now visible on specific Page Layout

This will show a little popup confirming what you are doing and that it is not reversable. It is reversable with a little work but I would like others to realize that they should only do this if they know what they are doing. This avoids the accidental curiosity clicks. This also saves the response from Salesforce for a simple alert to confirm all was successful or the error if received. The original behavior just reloads the page with no messaging.

Person Account Created. Success!

Person Account Created. Success!

Thanks again David and I hope this helps many the way it has helped me.

– Jon

Avoiding Number Formatting Problems in Salesforce.com Fields

An issue came up with a client recently that will help other Salesforce.com users I’m sure. The issue relates to the increasing use of unique and long numbers in business. From account numbers, merchant numbers, to Tax ID numbers, we have lots of numbers to keep tabs on.

Salesforce.com is a great place to keep these numbers. However, if you create a custom field and store them as numbers you will find your formatting probably will not be allowed or preserved.

A couple examples:

  • US Tax ID numbers are in the form of: 88-8888888. This number contains a dash after the first 2 digits. Social Security Numbers have the same problem with two dashes: 888-88-8888. Not allowed as a number with the dashes so you are forced to enter in the numbers by themselves, removing the intended formatting and giving you a new format: 888,888,888.
  • An account number with a vendor is 8847506644758 and can be saved as long as it is 18 or less digits before the decimal. However, when you view it, it shows 8,847,506,644,758 which is a little distracting to the eyes and confuses the fact that this number is an account number, not a numeric total of something else.

The solution in both of these cases is to only store numeric data that will be related to calculations in formulas, reports, etc. There will never be an example of subtracting two SSNs or adding merchant numbers together so storing them as numbers, even though they are, is unnecessary and cumbersome.

The rule should be:

  1. Only store numeric data as a number when it quantifies something.
  2. Otherwise, use text and include any spaces, dashes, or other characters that make it more easy to read and parse (i.e. 66898-9865-57377)

– Jon

Understanding Business Accounts and Person Accounts – Part 1

How you store your client information inside Salesforce.com makes a big difference. One area where this is very clear is Accounts and Contacts. Salesforce began as a business tool and therefore focused on business to business (B2B) relationships. Therefore, the Account object is oriented toward a business or company by default.

These relationships look like this:

ACCOUNT (i.e. Acme, Inc., www.acme.com, 1-800-ACME-INC)
|
|
----- CONTACT (i.e. Joe Smith, joe@acme.com, 555-555-1212)
----- CONTACT
...

This works great when there is a company such as a company client, vendor, or partner and it has employees that are related to it.

However, what happens when the client is an individual person such as someone who bought one of your e-books or a t-shirt? What happens when you are a nonprofit that relates to individual as well as institutional donors? (more…)