Tuesday, March 24, 2009

Adding an Anchored Logo to Your HTML Email Template

A friend and fellow Salesforce Geek wanted to know how she could insert a company logo as the header in an HTML email template, such that when the user clicked on the logo, their browser would navigate to her company's website. I tried to describe it in email, but I suspect not very well. I promised her I'd blog about it ... so here we are.


Disclaimer: As with most things in Salesforce, there are a dozen different ways to get from Point A to Point B. This is certainly not the only approach, just the first that popped into mind.

Let's do it by the numbers. First, I created a quick logo image:




Host the Logo Image

Store the logo image in a location where it can be accessed over the internet. For this exercise, I'm going to store the image on the Salesforce servers, under the Documents tab:

1.) Click the Documents Tab.



2.) Click the "Create New Folder" link (we're going to create a new folder to store email images)


3.) In the Document Folder Label field, type "_Images". Click tab and set the other fields to their defaults. Save.


NOTE: The underscore "_" character in front of the word "Images" is intentional. Folders sort in alphabetical order, and this will push your Images folder down to the bottom of the folder list. That's my personal preference, so that my Image folders don't get mixed in with my "real documents" folders.



4.) Now that you're in the "_Images" folder, click "New Document".


5.) Enter the logo name, unique name, description, and browse to the path where the image is located. Because we will be including this image on an external email template, set the "Externally Available Image" checkbox.



Creating the Email HTML Template

Now that the logo image is "hosted" in a public location, create the email HTML Template:

6.) Click Setup -> Email templates. Specify the folder (or create a new one), and click "New Template".


7.) Select the "Custom (without using Letterhead)" option. Click "Next".


8.) Set the "Available for Use" checkbox, give your new email template a name and fill in the description field.


9.) This sample HTML code starts with an anchored logo, then continues with the "form letter" that recipients can read:



<a href="http://forcemonkey.blogspot.com">
<img src="https://na3.salesforce.com/servlet/servlet.ImageServer?id=01550000000Nqqc&oid=00D500000007zyA"/>
</a>
<br>
<br>
Dear {!Contact.FirstName} ,<br>
<br>
Check out our new logo! Interested in the latest tips and tricks? Click the logo in the top left corner, and it will take you to our website!<br>
<br>
Best Regards,<br>
<br>
From the Force Monkey Troop


Let's rewind a little bit, to explain the HTML code:

The anchor tag, which starts with a href="http://.../" creates a link to the target website, referenced in the href arguement. In this case, I used the URL for this blug (http://forcemonkey.blogspot.com). Substitute your own target website after the href arg.

The image that we're wrapping the anchors around is specified in the img src="https://na3.salesforce..." tag. But what is that crazy long string after the "src" arg? That's the location where the image is stored on Salesforce servers.

To get this URL information for the logo you stored, do this (assumes you're on a PC):

1.) Click on the Documents tab

2.) Select your Logo image "document"

3.) Right click on the image. Click "Properties".



Copy the "Address URL" field to your text buffer. Be sure to capture the entire field, by holding the left mouse button down as you click from the left of the "https:" and drag the cursor downward until all characters of the field are highlighted. Press CTRL-C to copy to your text buffer.

4.) Open your email HTML template and press CTRL-V to paste it in the "src" arg of the img HTML tag.

Add the remaining HTML text for your email template, as necessary. Viola!

If the steps here are still just a little confusing, let me know -- I'll post a video blog of the whole process.

Tuesday, March 10, 2009

Support for Salesforce S-Controls To Be Discontinued


SOURCE: All credit to my information source: Sonny Cloward (@sonnycloward), Steve Anderson (@gokubi), David Schach (@dschach) and the Non-Profit Salesforce Salesforce Practioners Google Group.

Salesforce.com plans to discontinue support for S-Controls next year. The following warning announcement is displayed to Salesforce.com Administrators in the App Setup -> Develop -> S-Controls page:

"S-controls have been superseded by Visualforce pages. Salesforce will, sometime after January 2010, remove the ability to create and distribute new s-controls. Existing s-controls will be unaffected. For more information, see How Do Visualforce Pages Compare to S-Controls?."

The “end of life” date on S-Controls is a little vague, I suspect intentionally. Sometime after January 2010 could mean anytime that year, or any time in the following decade.

The announcement is problematic for some Developers. While VisualForce and Apex are great, there are certain governor limits of Apex that prohibit its use in every application. I have a couple S-Controls that I haven’t yet converted over to VF/Apex for this very reason. I have other S-Controls, admittedly, that I haven’t converted over for simply lack of time.

Note that existing S-Controls are unaffected. However, they can't be updated or distributed in packages after this EOL date. Developers must convert these S-Controls over to VisualForce pages. VisualForce allows developers to write javascript and HTML directly into their VisualForce pages, so it should be possible to simply copy / paste existing S-Controls into a VisualForce page. That means this end-of-life shouldn’t be much of an issue to most savvy Salesforce Developers.

On the other hand, I find that a lot of Customers don’t have in-house developer expertise. Their S-Controls are either part of an application they downloaded from the AppExchange, or were developed by a contractor. If you don’t have developers in-house, don’t panic! You’ve got plenty of time to inventory your S-Controls over the next few months. Evaluate these components. Are they crucial to your application? Are they likely to require change / updates? If yes, invest the time now into learning VisualForce (so you can convert them yourself) or contact your certified Salesforce.com partner / contractor / consultant.

Have any questions? Reply below!

Sunday, January 25, 2009

The Great Dashboard Clean-Up: Roles, Data Owners and Key Result Areas


In the previous blog entry, I commented on the problem: the Salesforce Dashboards I had deployed were not driving change in the organization. At least not to my level of satisfaction. From my vantage point, everyone was looking at the data, talking about the data, admiring the data -- but I didn't feel we were learning anything from the data. I wanted our Salesforce Dashboards to do more -- to influence changes in our business practices.

None of this implies that we aren't already running a highly effective organization -- because we are. Our product (SAFARI C3, a VOIP Media Switching System) crushes the competition with incredible performance numbers -- 99.999% uptime last month, and 99.996% overall for 2008. Our Customer Response Team wildly exceeds our competitors in number of categories: response time, restore time, resolve time, and Customer satisfaction. Despite our success, we do have areas were we can improve -- all organizations do. And that's what I wanted our Dashboards to focus attention on.

Step One: Identify the Roles of Your Target Audience
Identify who is using Salesforce.com and Dashboards in your organization. Group them by role. At my company, Cedar Point Communications, we've embraced CRM fully, so I have users from many different roles in the tool every single day: the Executive Team, Sales, Marketing, Customer Support, Account Management, Partner Management, Field Services, Project Management, Manufacturing, Software Engineering, Hardware Engineering, Technical Documentation, and Product Training.

Phew! That's a lot of different user groups!

For each department, I assigned a Data Owner -- usually the department/division manager, or someone they specifically assigned to work with me. Next, I had a group meeting with all of the data owners to outline the project objectives. I then scheduled follow-up one-on-one meetings with each of them individually.


Step Two: Define Key Result Areas for each Role
At the 1:1 meetings, I asked each Data Owner what their Key Result Areas (KRA) were -- what were they hired to accomplish?

From Brian Tracy's Blog:

Each job can be broken down into about five to seven key result areas, seldom more. These are the results that you absolutely, positively have to get to fulfill your responsibilities and make your maximum contribution to your organization. Your failure to perform in a critical result area of your work can lead to failure at your job. There is essential knowledge and skill that you must have for your job. These demands are constantly changing. There are core competencies that you have developed that make it possible for you to do your job in the first place. But there are always key results that are central to your work and which determine your success or failure in your job.

A key result area is defined as something for which you are completely responsible. This means that if you don't do it, it doesn't get done. A key result area is an activity that is under your control. It is an output of your work that becomes an input or a contributing factor to the work of others.


With Dashboards focused around KRA, business unit managers would be able to see, at a glance, how their teams were performing. Each Role / Dashboard Owner would see where their team excelled and what areas needed more attention. The goal was to create Dashboards that influenced process changes within the organization.

Next blog post -- we'll start with the Customer Support team.

Thursday, January 15, 2009

The Great Dashboard Clean-up Project



Ok, I’ll admit it: I created a monster. This post is my confessional, and also my pledge to atone.

Very early in our implementation of Salesforce.com, I wanted to show the power of Dashboards to my users. I downloaded the AppExchange Dashboard Pack 1.0. The application is free, and installs all of the many dashboards published by Salesforce Labs. The package had dashboards for every conceivable use: lead flow, marketing campaign metrics, sales forecasting, support KPI, sales / support rep performance tracking, document tab tracking, user adoption, data quality analytics … everything.

I downloaded the app, did a little tweaking (very little), and then published the dashboards to my users. When Summer’08 Release gave us the ability to email dashboards (as an HTML page) directly to users, I enabled that functionality for a few key managers and user groups, too.

Soon after, I saw copies of dashboards distributed at various meetings and screenshots of dashboard components included in PowerPoint presentations. Managers and executives looked forward to their daily, weekly and/or monthly Dashboard emails, and talked animatedly about them in the halls or at company meetings. I felt good.

Yet something was wrong. I couldn’t quite place my finger on what it was, but the monster was there, elusive. The users asked for more dashboards, more pretty graphs, charts, tables, and I appeased them. Today, we have more than 50 different dashboards and hundreds of reports feeding those dashboards. It's an absolute glut of information. And this monster I created now has a name: Data Admiration.

They come to the CRM tool, very excited about the volumes of data and information captured in our Salesforce Dashboards. They drink deep from the kool-aid. But none of these dashboards seem to drive any real change in the organization. Why not?

Reflecting on that question during my morning commute, I realized it's not the people, it's not the tool ... it's the dashboards. Those original dashboards that I pulled down from the AppExchange were developed as a proof-of-concept, a way of showing report and dashboard writers all of the graphical components and different techniques for using them. They were a learning tool, but I had implemented them as a business solution. And that’s the root of the problem. I have dashboards, but no real business intelligence architected behind them. The dashboards are colorful, they certainly detail a ton of information, but they aren’t oriented around the specific business intelligence needs of my user communities.

Understanding a problem is the first step in dealing with it! I chatted about the problem with the Big Cheese, and got the green light to focus on a complete overhaul of our existing dashboards. In the next few posts, I’ll walk through the process of this Great Dashboard Clean-up Project. Stay tuned!

How about you? How did you implement your Salesforce Dashboards? Are they telling you everything you need to know about your business / organization? We’d love to hear your comments!

Wednesday, January 7, 2009

No, Chicken Little, the (SaaS) sky is not falling



Yesterday there was a Salesforce.com outage that lasted somewhere between 30-40 minutes. In the 24-hours since that time, the blogosphere has been filled with various pundits spreading doom and gloom, saying this outage proves Cloud Computing is not a prudent business decision.

Sorry, Chicken Little, the SaaS sky is not falling. Cloud computing is here to stay. If anything, yesterday's outage is proof to me how much better off we are running our business in the clouds.

When the Salesforce.com outage started, dozens of IT engineers jumped into action, working to first isolate the problem and correct it. In the aftermath, today and for the rest of the week, dozens of technical teams will be working to understand what went wrong, how it went wrong, and what they can do to prevent it from happening again.

The best part? None of those people are on my company's payroll. It's a good thing -- I couldn't afford that many IT and support staff. Yet I am very thankful that they're on my "cloud", helping me run my business. I wouldn't be able to administer such an incredible CRM tool without their help.

When the outage started, I didn't call Salesforce.com; I saw that several folks on Twitter had already done so. I sent out an internal email telling colleagues "we are aware of the problem with Salesforce.com, and have people working on it right now." Yep, I had people working on it!

I switched our Support team over to our Salesforce Offline Viewer. It's a custom PHP application accessing a SQL server database that we designed several months ago. Through the Salesforce API, we update the SQL database every 24-hours with a complete copy of all transactions we've entered into Salesforce.com. The GUI isn't as pretty as Salesforce, but it contains all the data they need: Cases, Solutions, Contacts, Accounts, and various custom objects.

I then set up a "Salesforce" Twitter search on my TweetDeck, sat back, and watched for news that people were able to finally log in. I've never had to spend less resources and manpower managing a crisis.

This 40-minute service outage was a blip. Let me tell you about another recent outage at my company, this one not related to the services we have running in the Cloud.

A few weeks ago, we had a little ice storm here on the east coast. It knocked out phone lines and electrical power for hundreds of thousands of New England residents. Our company lost power for 4-days. The backup generator lasted for about 10 hours, and then it went offline, too. Everything was down: telephone service, electrical power, heat.

Employees couldn't communicate with each other over Blackberry or email, because the Outlook exchange server was down. Customers couldn't access our corporate website. All of our critical IT systems are redundant, with a co-lo on a completely separate power grid. Even that didn't help us, as this storm had knocked out both power grids (yes, we're moving the co-lo further away -- and let me tell you that is a huge project in itself!).

Every member of our IT and support staff began round the clock shifts, working to get our back-up generators back online, contacting utility vendors and facility managers, shutting down servers and equipment to protect from power spikes, etc. It was exhausting!

The one aspect of our business that was unaffected? Salesforce.com. We were able to communicate outwardly to customers via Salesforce. That allowed us to send a Mass Email to all Customers, providing them with alternate contact numbers for accessing our Customer Support staff. We modified the home page layout, to include status updates for all employees logging in to Salesforce from home.

The sales team, 90% of whom are remote, were able to conduct business as usual. After we altered the call routing for our main support phone #, the entire customer support team was able to work from home, too. They had full access to Cases, Solutions, and other information they use in Salesforce -- as if they were in the office.

The four-day service outage was seamless to our Customers, thanks to the Cloud. Thanks to Salesforce.com.

I compare these two outages -- especially the manpower and resources that went into restoring service fully and I know that Cloud Computing is the right model for our CRM service.

Perhaps all these blogging pundits have Cracker Jack IT teams, allowing all their in-house systems to operate with 99.999% up-time. If so, I hope they give special thanks to each and every member of their IT staff, and maybe a nice fat bonus at the end of the year.

Me? I work in a place called reality. And even though my company has the very best of IT folks, they are resource constrained. They do capacity planning, integration testing, and constant tuning of our many complex business systems. But Salesforce's IT team is bigger, and comparing the availability numbers between our in-house and cloud-based systems just wouldn't be fair.

So cheer up, Chicken Little, you've got people.

Monday, December 15, 2008

Wearing Many Hats



I started working with Salesforce.com about three years ago. Back then, I was a member of the Technical Support Staff, taking direct support calls from our Customers in a 24x7 response center. My company was using ProbWeb for tracking all trouble tickets (Cases), but we were experiencing a lot of problems with it. The system would crash several times a day; there were database management issues, and all kinds of problems integrating the Cold Fusion front end with the SQL server back end.

Enter Salesforce.com.

I have to confess, I was very much in opposition to this cloud computing model. Of course, back then it was called application hosting, which doesn't sound nearly as cool as "cloud computing". I just didn’t like the idea of not being able to touch the servers on which my data was stored. But after looking closely at all the problems we were experiencing with our existing ticket tracking tool, I realized they were all centered around IT management issues – problems that I wouldn’t have to deal with if our ticket tracking database was hosted on Salesforce.com servers. No more failed backups (that we didn’t know failed until it was too late), no more re-indexing of the database, no more site crashes rendering the tool useless to customer and employees, no more software / hardware integration headaches.

My first project was the data migration – getting two years of support calls, emails and activity from our legacy SQL server imported into Salesforce.com. Our Salesforce.com Account Manager was encouraging my boss to engage a local consulting company for the initial migration and turn-up. I choked when he told me about the contract proposal: $50,000 in two months. I told my boss I wanted first crack at the job. He was reluctant at first. After all, what did I know about data migrations, GUIs, and managing a project? In the end, I convinced him.

It took two weeks to scrub and clean the data from the old SQL database and import it into Salesforce. It took a third week to customize the page layouts, creating a similar “look and feel” as our old PropWeb system. Customizing the Salesforce.com standard interface was so easy, and I was converted from “hosted applications” skeptic to cloud computing, SaaS fanatic.

I saved my company $50K in contractor fees, and learned a TON about the capabilities of the Force.com platform. I started looking outside the Customer Support organization, searching for other ways that Salesforce could benefit my company. I soon became aware of various Access databases and Excel workbooks that other departments were storing company data in. Manufacturing had created their own Access database for tracking hardware repairs, engineering change orders, RMA returns, and component failure analysis reports. Finance had also created their own Access database for sales orders and revenue. Various individuals were responsible for writing quotes; all using different templates and tools (Word for some, Excel for others). Marketing leads were captured and distributed in Excel worksheets. Opportunities were discussed during weekly Sales Team conference calls, but not captured in any electronic medium outside those meetings.

I became obsessed with pushing more and more of our business tools into Salesforce.com. Over time, I started taking fewer Customer Support calls, and spending more time working with the Salesforce.com platform. I walked through all the steps of developing a project schedules: activity definition, sequencing, resource estimation, duration estimation, and resource leveling. Weekly status updates to my boss became less focused on managing customer tickets, and more focused on monitoring projects, addressing scheduling and cost variances, and summarizing weekly project status meetings. I talked with users or potential users of the CRM platform, trying to understand their business requirements and how they managed their organizations. I spent hundreds of dollars at Barnes & Noble, buying books on Business and Systems Analysis and Project Management. I downloaded client apps like Visio and MS Project, and I became a student of system development life cycle (SDLC) methodologies. In short, I re-tooled my resume from a technical engineer to project manager, building all manner of PM skills and disciplines.

Over the past six months, my related job skills have been shifting again. I’ve come to realize that as flexible and powerful as the Salesforce.com platform is, I’m using less than 1/10th of its potential. In order to provide more value to my organization, I’ve decided to dig deeper into the Force.com platform. I’m learning new programming languages, like Apex, Visualforce, PHP, Python, HTML and Java. I’ve plugged myself in to social networking streams like Twitter, Facebook, FriendFeed, and a vast number of blogs written by other people much smarter than I, all forging along this same path.

A few months ago, I decided to “give back” to the community. Inspired by a keynote address at Dreamforce 2007, I contacted the Salesforce Foundation and asked if there was anything I could do to help non-profits with their Salesforce.com implementations. This has been particularly rewarding and challenging, exposing me to a vast number of product experts, while also giving me a glimpse into the special needs of non-profit organizations.

At the end of three years, I find myself wearing so many different hats: Salesforce Administrator, Business / System Analyst, Project Manager, Developer, Consultant, Advisor, IT Strategist. It’s been amazing fun. I didn’t mean for this to be a sappy post about how Salesforce.com has changed my life, but in this seasonal time of reflection and thinking about next year's resolutions, I see that it really has.

What about you? Did you start off as a Salesforce.com Administrator, and find that your job suddenly transformed in some way? If so, share your comments – I’d love to hear them.

Friday, December 5, 2008

Prioritizing Your Salesforce Ideas / Projects



I am the Salesforce.com Administrator for a small company, but I still get a ton of requests to customize and change things in the system: custom fields, objects, tabs, workflow, validation rules, reports, dashboards, applications, you name it. Help! There are so many requests, I can’t keep up with them! Some of these requests are very practical, and I know they’ll help our CRM initiatives greatly. Others aren’t so very useful (at least from my perspective). And of course, everything is URGENT! How do I track and priortize all these “urgent” change requests?

Great question, and a problem every Salesforce.com Administrator faces, I’m sure! Let me share an approach I use, perhaps it will help in your situation.

First, implement Ideas. Ideas is a “free” Salesforce.com application, available to organizations with Professional, Enterprise or Unlimited edition user licenses. If you’re familiar with the Salesforce.com IdeaExchange, the concept is the same. In fact, Ideas is based off the tremendous success Salesforce has recognized from their IdeaExchange. For more information about Ideas and IdeaExchange, check out my previous blogs here.

Inform and train your users on the use of Ideas. Set their expectation that all change requests to your CRM platform MUST be submitted through the Ideas tab. Prime the pump by creating Ideas! Through the newly deployed Ideas tab, post all of the projects and change requests you’re currently aware of. Get them off the yellow stickies, excel worksheets and email messages that you've been tracking them in -- get them in Ideas.

Every time a User approaches you in the hallway, or sends an email / voice message with an idea request, ask them to add it to the Ideas tab. Don’t worry if your users are initially reluctant to create, promote or comment on Ideas. Change takes time. Just make sure that YOU aren’t implementing any new changes to your organization's CRM platform UNLESS it has been submitted as an idea.

Now your Idea bucket is starting to fill up. Users can see the ideas they have submitted, and also those submitted by their colleagues. Users become aware that there are a lot of competing ideas and change requests in your queue. Furthermore, you can update the Idea Status field, showing your users which ideas have been reviewed, which ideas are coming soon, and which ideas have been implemented. Create Public Dashboards that track and show this information for your user community.

I created a Workflow Rule which sends a “thank you” email to Idea originator, and copies myself. I review every email as they come in, and create a “project” for each Idea. Some projects are fast and easy, some take longer and may require a more disciplined approach -- but every idea is tracked and worked on as a project.

Keeping track of these projects is easy! I created a custom object called “CRM Projects”. Here’s a sample page layout for the custom object (click image to enlarge):



All the important information is tracked in these CRM Project records: a unique project number and name, a link back to the Idea, originator of the request (my "internal" customer), drivers, constraints, pictures, etc.

“Ok, JP, but how does that help me prioritize all these Ideas and Projects? You’ve just given me more work, because now I have to go look at all these ideas, review them, qualify the ones that are worthy as projects, and then do some data entry describing what the project is!”

There are several fields in this custom object which help me prioritize the projects:




Importance: Picklist field, with 3 values: high, medium, and low
Urgency: Picklist field, with 3 values: high, medium and low
Effort: Picklist field, with 4 values: hours, days, weeks, months
Priority: A numeric formula field that provides a weighted priority for this project. Here is the formula that I use (alternatively, click the image to the left)

CASE ( Importance__c , "High", 1, "Medium", 2, "Low", 3, -999)
+ CASE ( Urgency__c , "High", 1, "Medium", 2, "Low", 3, -999)
+ CASE ( Effort__c , "Hours", 1, "Days", 2, "Weeks", 3, "Months", 4, -999)
- 2

This last field, Priority, is the most important in the bunch. Check out this List View, which shows all of open CRM Projects, along with their individual Importance, Urgency, Effort and Priority values (click to enlarge):



Wow! That's a lot of projects to work on -- more than can fit on one screen! The List View is sorted by Priority and secondarily by date. This gives me a weighted view of all the projects.

For example, the first project (Project ID: 2008-114) has High importance to the organization, High urgencyto the idea originator. It's a fairly simple request, should take only a few hours effort – certainly less than a work day. So based on the priority formula, this project goes right to the top of the list – even though it’s comparatively new to other projects on the list.

The key, of course, is setting proper values in these picklist fields. In general, I use the following criteria:

Importance: How important is this change request to the business organization? Don’t factor how long it will take to implement or deadlines – just assess the importance of this project to the company. Guiding Rule: Weigh the importance of the project to the Company, not the original submitter. Here’s the litmus test: put yourself in the CEO’s shoes (I love doing that!). If the CEO were aware of this request, would he consider it highly important? Somewhat important? Not so important? If I have any doubts, I'll just head up to the corner office and ask, “Hey, J.C. … how important is this project to you?” We’re a small company, too, and I’m not known for my timidity!

Urgency: How quickly is this feature needed? Sometimes I can determine urgency from what the Idea originator has written. More often, I can't really tell until I follow-up with them in person. That's right, I always talk to these Idea people face-to-face before setting up the project. From those discussions, I can gauge if the feature is a “Nice to Have”, “Must Have”, or “Heeeeeellllllllppppp”. And based on that, I can rank the project urgency as Low, Medium or High, respectively.

Effort: This is my estimate of how long it will take to implement the project. Custom fields, tabs, reports, dashboards are easy. We can bang out lots of those types of Ideas in few hours. Workflow rules, validation formulas, apex triggers, and Visualforce page changes might take days. Not always, as some workflow rules can be implemented very quickly. However, when you factor in our company policy to do all changes in a Sandbox environment first, and also to careful document, test and manage revision control of all changes, the cycles quickly add up. More complex Apex, Visualforce pages and application changes might be sized at weeks or months.

Priority: This field is updated automatically through the formula rule defined above. It’s a very simple weighting algorithm. Highly important, highly urgent and simpler projects jump to the top of the list. Projects that are less important, less urgent, or more difficult to implement settle somewhere lower.

One final note: as CRM Project Manager, I don’t use the priority value as the ONLY assessment for determining what my team should work on. Projects are not worked in top-down order, based solely on their priority. It’s simply a tool for determining the weighted priority of projects in my queue. However, if I’m working on projects that are NOT on the top of this list, I make sure my boss knows it – and the reason why.

Thursday, December 4, 2008

Case Comment Workflow Rules

Here’s a tricky little problem that stymied me today – and the solution!

THE PROBLEM
In the “Status” picklist field of the Case Object, we have defined a “Waiting on Customer” value.



If a Support Rep is working a Case on behalf of a Customer, they'll often come to a point where they can progress no further -- without additional diagnostic or support information from the Customer. When this happens, they'll contact the customer, let them know what information is required, and change the Case Status to “Waiting on Customer”.

When the Customer provides the information, either through the Self-Service Portal, or through an email, the Case Status remains “Waiting on Customer”. Naturally, this frustrates the Customer! When they review their open cases through the Self-Service Portal, they expect to see this status field updated. The Case is no longer waiting on Customer, it's waiting on us!

My Support Team wanted a Workflow rule that would automatically change the Case Status from “Waiting on Customer” to “Investigating”, whenever the customer added a Case Comment through the Self-Service Portal, or if they send in an email related to the Case (to our email2case application).

When I reviewed the Release Notes for Winter'09, I knew this functionality -- the ability to create a workflow rule on Case Comments -- had been recently added in. But as I started playing with the rule criteria in my sandbox, I got stuck. How do determine if a Case Comment was added by a Self-Service Portal user?

THE SOLUTION
A quick search on the Salesforce Community forums gave me this helpful information.

As len123 observes, every user has a type – but Customers accessing through the Self-Service Portal are not “users” (i.e., no user license required). Therefore, any Case Comment added by entities in which the $User.UserType is NULL must originate from Self-Service Portal users.

My first Workflow Rule formula looked like this:

AND (
ISPICKVAL (Parent.Status , "Waiting on Customer"),
ISPICKVAL ($User.UserType , "")
)


Every time a new Case Comment is added, this workflow rule is evaluated. If the related Case status is “Waiting on Customer” AND the $User.UserType is null, go do some action. In my case, the action was changing the related Case Status to “Investigating”.

The Workflow rule worked great. If the Case Status was something other than “Waiting on Customer”, the workflow never triggered. Of if an Internal user added a Case Comment (no matter what the Case status was), the workflow would not trigger.

But some of our customers communicate with our Support organization through email. We have custom Apex application that processes these emails, looks for a certain tags in the email subject line, and finds the Case that email is related to. The app adds the email to the case, and copies the body of the email into a Case Comment. The Support team wanted to make sure these customer updates would trigger the same workflow.

Here is the final Workflow Rule that I implemented:



If that’s hard to read (click to enlarge), the rule criteria formula text block is below:

AND (
ISPICKVAL (Parent.Status , "Waiting on Customer"),
OR (
ISPICKVAL ($User.UserType , ""),
$User.Username = "mail2case@cedarpointcom.com"
)
)


Now, the Workflow rule fires only when Case Status is “Waiting on Customer” AND one of the following is true: 1) UserType is Self-Service Portal user, or 2) case comment was added by our Apex app (which adds the body section of the email to the Case Comments.

What workflow rules have YOU implemented with Case Comments since Winter'09?

PS – Thanks to Twitter follower @CRMFYI for the good tips, and len123 for the workflow formula!

Tuesday, November 25, 2008

Force.com IDE - Not Just for Developers


If you’re a Salesforce.com Developer, you probably know all about the Force.com IDE. If you’re a Salesforce.com Administrator dabbling on the dark side of development (S-Controls, Java, Apex and Visualforce), you SHOULD definitely become more familiar with it.

What is the Force.com IDE

What is it? Force.com IDE is a client application that you install on your desktop. It's designed to maximize a developer’s productivity, by providing integrated system components on a single user interface. That means that all of your development, testing, debugging and deployment tools are provided through one simple tool.

"But JP, I'm not a developer ..." Do you redesign page layouts? Do you write workflow rules and validation formulas? Do you create custom objects and custom fields within your Salesforce.com instance, and then deploy these changes to your users? Don't look now, but you're crossing into the dark side, from Administrator to Developer.

Nervous? Don't be. We have cookies!

IDE is an industry standard term, an acronym for "Integrated Developer Environment", or sometimes "Integrated Design Environment". The Force.com IDE is based off of Eclipse, a free software IDE written in Java. While Eclipse was originally designed for developing Java, it also has plug-ins for C/C++, Python, Perl, PHP, and many, many more languages -- including a plug-in for Force.com development. As of the Winter’09 Release, the Force.com IDE has been marked "Generally Available", and is now the development platform of choice among Force.com developers.

Why Is It Cool?

Prior to loading the Force.com IDE, I wrote my Apex code and Visualforce pages inside the Salesforce.com GUI. I was constantly shifting between browser windows when I wanted to look at components, Apex classes, Visualforce pages, and static resources together. With the Force.com IDE, it’s much easier to load up all the code from those different elements, and associate them with a single project. The Package Explorer allows the developer to specify which metadata components are included in the project, which is especially helpful if you have multiple projects being worked on concurrently by different developers. The Online Project Mode is also helpful for such conditions, as it helps developers identify and resolve conflict changes within their Salesforce.com instance.



I really like the Schema Explorer (see above), too. This tool allows developers to view all of the standard and custom objects, their child relationships, object fields – you can even write SOQL queries to view actual data in your organization's instance. With the expanded metadata support in the Winter’09 release, the Force.com IDE has become extremely useful. In addition to Apex classes and triggers, you can download other metadata types, including workflow rules!

Pushing code from the Sandbox to your Production environment is made simple, through the “Deploy to Server” wizard included in the Force.com IDE.

So now you can bang out code, “compile” it (as much as we compile anything, in the SaaS world), test it in your sandbox and deploy to production … all from within one tool. Very cool.

Who should use it?

If you’re doing any Apex development, the Force.com IDE tool is a “must have”. Even if you’re an Administrator, doing heavy customization of objects, workflows, S-controls / Java, and Visualforce, I strongly recommend downloading and becoming familiar with the Force.com IDE tool. You will encounter a learning curve, particularly if you’ve never used an IDE before. In the long run, it will ensure a more secure development and change process for your entire organization, and will become a real time-saver.

Where can I get it?

Download Eclipse here: http://www.eclipse.org/downloads/

Download the Force.com IDE here: http://wiki.apexdevnet.com/index.php/Force.com_IDE_Installation_for_Eclipse_3.3.x

Learn more about the tool here: http://wiki.apexdevnet.com/index.php/Force.com_IDE

Monday, November 24, 2008

Caveat emptor

About a year ago, my company signed a two-year contract with Salesforce.com for 150 Enterprise user licenses. Despite what you’ll read in the rest of this blog, signing a long-term agreement is something I highly recommend other companies take advantage of. With longer term agreements, you can leverage steeper discount pricing. Our 2-year agreement gave us a nice 36% discount off the standard pricing, which certainly made the resident bean-counters happy.

Our 2-year contract is now due for the 2nd annual payment, and Salesforce sent us an invoice. I don’t normally review / approve vendor invoices, but I’m filling in temporarily for my boss. While reviewing the invoice, I noticed a transaction that didn’t seem right: a Customer Web Portal license had been added to the contract. 150 Enterprise licenses, 1 Customer Web Portal license … that’s not right. What is this? I racked my brain, trying to figure out what that was all about – then I remembered:

Earlier this year, my organization was looking into the Customer Web Portal feature. Our Salesforce.com Account Manager hooked us up with a 30-day trial, and we used that time to develop a Customer Web Portal prototype. Unfortunately, the development cycle brought us right up to the end of the trial. Midway through the following month, while trying to provide a demo for a visiting Customer, I discovered that our free Customer Web Portal trial had ended.

In a panic, I called my Salesforce.com Account Manager. I explained our situation, and asked if Salesforce could extend the Customer Web Portal trial. He indicated that he could not do that (Grrr!) – but if I were to purchase a Customer Web Portal license, Salesforce could enable and disable those accounts at any time. Great, sign me up, let me get to my Customer Demo.

There were some technical problems getting the Customer Web Portal active. It took several weeks for Salesforce Customer Support to determine why I wasn’t able to use the licensed Customer Web Portal account, and I lost the opportunity to demo the feature with my end-user. No worries, I continued to use the account for internal demos. Advocating the tool, I tried to build a stronger business case internally by demonstrating the web portal to our Account Teams, Sales, Field Engineers and Executive Management. In August, when it became clear that we would not have funding for the web portal project in 2008, I told Finance to cancel the web portal license.

Fast forward to today. The Customer Web Portal user license was apparently never canceled, and it’s still on the renewal invoice for next year. I opened a Case to get this transaction removed from the invoice. It took 10 days (TEN DAYS!!!) for Customer Service to respond with a canned “we can’t do that, you’re under contract” form letter. I escalated to my Account Manager, and he also indicated there was nothing he could do. Despite what I had been told previously about turning these portal licenses on and off "on-demand", the 1-user Customer Web Portal license agreement was coterminous with our 2-year contract.

Caveat emptor. Never shop on an empty stomach. Read the fine print. Never upgrade in a panic.

I only wanted to cancel a single user license agreement for a feature that we aren’t using, something I was told previously I could do “on demand”. It’s a piddly $300 expense, and while it’s not going to break my bank, it sure does annoy me.

I thought I had a better working relationship with Salesforce. I’m one of their reference accounts: over the past year, I’ve given freely of my personal time, doing private conference calls and impromptu GoToMeeting sessions with some of their prospects -– trying to help Salesforce win new business. I’m the community leader for the local Salesforce.com User Group. I blog and twitter on Salesforce all the time. More importantly, I intercept the NetSuite and Microsoft CRM sales dogs every month, keeping them away from the internal decision makers and coaches in my company.

Am I still a big fan of Salesforce.com? You bet I am! It remains the most flexible, powerful, and innovative SaaS tool on the market. But am I just a little jaded over this silly $300 invoice line item that we couldn't wipe from the slate? You betcha.

Monday, November 17, 2008

How to Show Actual vs. Target on a Dashboard in Salesforce.com

A member of the LinkedIn Salesforce Power Users Group asked, "What is the best way to show Actuals vs. Targets on a dashboard in Salesforce? The only thing I've come up with is using the gauge and setting the max to twice the target. You don't see the target number, but know it is half of the max."

I already answered on the LinkedIn Group, but sometimes it’s just easier to show it in pictures. Todd, this blog’s for you!

Gauges are a good dashboard component to use when you want to identify where you measure in a range of values, or against a Target metric. Here are a couple ideas to get your creative juices flowing:

First, keep in mind that the Gauge has several value settings, but you don’t need to fill in all of them. For example, if you’re only tracking actual vs. target, then you only need to set a single breakpoint value:



Here, the target is $3M in sales, as defined in the Breakpoint #1 Value field. Breakpoint #2 and Maximum values are not set.



As sales opportunities are closed throughout the reporting cycle, the odometer needle will track toward the $3M target. But what happens next? As we push past the $3M Breakpoint #1 Value, the Gauge component is going to display the sum total of all Sales, and Dashboard viewers will lose visibility as to what their Target value was. Todd’s original question (above) implies that he knew this, and wanted to avoid his sales team losing track of what their Target was after they had passed it.

One simple remedy is to reference the Target in the footer or title fields of the component:



Here, we’ve closed a few more sales, pushing us past the $3M Target. Note that the Middle Range Color (Yellow) was never used, because no value was set for Breakpoint #2. Instead, the Gauge component displays the color of the High Range Color (Green). To help Dashboard viewers recall what our goal was, now that we’ve surpassed it, we added the Target: $3M in the Dashboard footer.


Here’s another example that uses all settings in the Gauge component, including Breakpoint #2 and Max Values. The ABC Company has determined that their extended break-even costs for doing business is $47.8M annually. The current Sales Target is $55M; incentive programs for the entire company have been put in place if Sales exceed a Stretch Target of $62M.

Said a different way: Under 47.8M, the company is in the red. After that, their operating in the black, but Sales has a target of 15% over break-even. Finally, if Sales can push the company 30% of Break-Even, it’s party time, and we fly the entire staff down to Bermuda, with families, for the weekend.

Here’s how the component was mapped out in the Dashboard:



Note that we set the Min Value to $43M, rather than $0.00. This creates some interesting display dynamics as the odometer needle moves toward Target:



Through the early part of the reporting period, the needle stays flat, but the red colored section of the gauge dwindles smaller and smaller as the report total approaches the Minimum Value setting. Once we hit the break-even (Breakpoint #1) of $47.8M, we’re no longer in the red. But even though the company is operating in the black, we haven’t yet hit our sales target ($55M).

Saturday, November 15, 2008

Why Do You Twitter?

The other day, a colleague noticed my Twitter page, and asked what it was all about. I explained, although rather poorly, I think. He didn't get. He thought it was a distraction and a "complete waste of time".

I confess, when I first started "twittering", I didn't really understand what it was all about either. I now liken the experience to when I was a young teen, and my father brought home a CB radio. He installed it in our kitchen, threw a big antenna on top of the roof, and we listened to all the conversations happening on the citizen's band airwaves. Gradually we became less timid, and joined those conversations, introducing ourselves as the Big Brownie (Mom), the Purple Typewriter (Dad), and the Minnesota Viking (me) -- my sisters never got into CB all that much.

I've had a similar experience on Twitter. At first, after subscribing, I simply lurked -- watching all the Twitter conversations around me. Slowly, I came out of my shell and into the wide Web 2.0 world. Today, I suspect half my Twitter friends are hoping I'll soon crawl back into that shell; I've become a Twitter Maniac!

A quick rewind for my Dad, who follows my blog and points out the many grammar and spelling errors found here (thanks, Dad, lub yew ... mean it!). He's almost certainly asking, "But what IS Twitter?". An explanation is in order. The sidebar on the upper left is an example -- click to enlarge.

Twitter is a conversation on the web. You join Twitter (it's free) at www.twitter.com. You can search for other subscribers, using their Twitter alias (if known) or email address. For example, my twitter alias is jpseabury, and you can follow me from my Twitter home page: http://twitter.com/jpseabury. Just click the "Follow" button under my picture.

Once you follow someone on Twitter, you can monitor all of their tweets from your own Twitter home page. A tweet is a 140-character message that they type into their computer. That message then gets pushed out to all the people who "follow" them.

I found myself navigating to my Twitter home page several times a day, whenever I sat down at my desk, and before checking my email. Later, I found the BeTwittered gadget and added it to iGoogle.com. Now I have auto-updated Twitter conversations constantly streaming to my browser home page. I haven't loaded the TweetDeck yet, but I saw it in action on @colinloretz laptop last week, and may well give it a try.


Following various conversations, I learned that many people were sending tweets from their phones. I did a little exploring and found all types of applications written for web-enabled smart phones (Blackberry, iPhone, etc.). These applications allow subscribers to Twitter "on the move". Stuck in a boring staff meeting? Pull out your smart phone and feign like you're reading eMail -- but catch up on your Twitter conversations instead.

There is, perhaps, a certain amount of voyeurism in all this twittering. Yet, it's also a wonderful tool for learning and networking with other people. Here are some examples:

Through Twitter, I was able to connect with a whole bunch of folks as passionate about the Salesforce.com platform as I am: @judis217, @CRMFYI, @colinloretz, @sonnycloward, @MemeStorm, @gokubi, @arrowpointe, @dschach, @calista_carter and more. At the recent Dreamforce 2008 User Conference, we twittered to each other the entire week, chatting about presentations we were attending or presenting at, where to meet-up for breakfast / lunch / dinner, the wretched Wi-Fi coverage, and the phenomenal presidential election. Through Twitter, we found each other at d'apres conference cocktail parties, banged out Apex code at the Monday Night Hack-a-thon, and sat together at the keynotes. Even when we weren't sitting together (and with approx 9,500 attendees, it was sometimes difficult to find each other), we were chatting to each other over Twitter:

From my Twitter Log at the first Keynote:
@Kingsley2 Sites is really, really powerful.
@gokubi 500K free page views with Enterprise Edition -- great for Non-Profits!
@jpseabury Force.com sites is a game-changer for the industry
@MemeStorm More about Sites here: http://developer.force.com/sites
@Kingsley2 What will people build?
@MemeStorm http://wiki.apexdevnet.com/index.php/Facebook_Toolkit
@dschach #Dreamforce On sign behind Benioff: "r u bored" Haha. Not much audiencew enthusiasm for Facebook here.
@colinloretz I can has facebook queries in Salesforce and can create force.com facebook apps?
@sonnycloward #Dreamforce The Facebook integration could be huge for nonprofit fundraising
@judis217 Is it my imagination or did everyone just say "wha?" at the idea of force.com on facebook. #dreamforce


All these conversations -- to people I hardly knew, but already felt connected to -- made Dreamforce simply more fun.

Before and after Dreamforce, my Twitter network has shared links to news articles they are reading or blogs they have written, all stuff that I'm keenly interested in. I follow them, because they're interests match my own: Force.com, cloud computing, Web 2.0, business intelligence, philanthropy, civics, blogging, and project management.

Through Twitter, I've found speakers for my local Salesforce.com User Group (thanks @lucidera) and rides to the airport. They've shown me tech articles, wiki notes, and development tools that have proven really useful in my daily work ... things like Plone, Jing, Facebook, Friendfeed, TweetDeck, Salesforce Codeshare, Air and Flex toolkits, centraldesktop, Twitterforce, syntax highlighter, and more.

They've helped me debug my code. I posted a problem I was experiencing to a message board, and then followed by posting the same question to my Twitter network -- and I've gotten Twitter replies in minutes. Twitter is invaluable source of information, and helps with my continuing education on all things "in the cloud".

I don't believe every Twitter user will have the same positive experience that I've had. Remember, Twitter is just a conversation that you share on the web. If the only thing you twitter about is the latest gossip, or why you're bored, or what you had for supper last night -- and all the people you follow have similar conversations -- than you probably won't get a lot from Twitter. On the other hand, if you keep your Twitter network filled with interesting and knowledgeable people, you may learn quite a lot.

I've kept my Twitter friends list pretty small. Unlike @guykawaski, I have no interest in picking up throngs of random followers. The twitters I follow are topics I'm interested in. If someone follows me, I'll look at their recent Tweets -- and if the conversation is interesting, I'll return the follow. Together we share, we learn, and we grow.

Aliza Sherman wrote a great article, "How Twitter is a Communications Game Changer". It's worth reading, and pondering how you currently use Twitter, and how you might start using it more effectively.



NOTE: From the blog comments, here's a neat Youtube video about Twitter, recommended by @colinloretz (the "n" is silent). :-)

Thursday, November 13, 2008

How Can I Get a Job as a Salesforce.com Consultant?



Several of my LinkedIn contacts have told me they are in the process of leaving their job, or plan to soon, and start working as a Salesforce.com consultants. I've heard from others who are getting laid off, and want advice on landing another Salesforce.com Administrator position like the one they're leaving.

Here's how I advised them:

(1) Best Job Search Tool -- www.Indeed.com
If you're just looking for a Salesforce.com Administrator job -- not necessarily a consulting job -- use Indeed.com. It's the best job search engine out there, in my experience. Enter your zip code, max driving radius, and "Salesforce.com" as the search keyword, and you're off to the races. If you live in a particularly rural area, you may need to widen that driving radius.

(2) Get Certified
All the industry trade rags are reporting that the value and importance of IT certifications is dropping rapidly. All certification programs are seemingly affected, including application development, programming languages, database, web development, networking, and project management. Despite this, I do believe that Salesforce.com Administrator and/or Developer certification are worth getting. The SaaS industry is comparatively new and the technology is changing rapidly. Certification demonstrates that you're part of its evolution and that your head is in the clouds.

(3) Network, Network, Network
It's not what you know, it's who you know. Social networking is the key to future career options. Visit the Salesforce.com Community website and find a user group in your area. Join, participate, and meet other professionals like you -- some may be hiring. If there isn't a local user group, talk to your Salesforce.com Account Manager about starting one.

While on the Salesforce Community website, check out the message boards. Not just the "Jobs" message board, but all of the message boards. See what other users are talking about and/or struggling with. Can you help them? Do it! Strive to become a "Trusted Contributor" within the community by responding to user questions and issues. You'll earn name recognition and reputation, two powerful assets for career growth.

(4) Updated Your LinkedIn Profile
If its been awhile since you've updated your LinkedIn profile, go clean it up now. While you're there, subscribe to the following LinkedIn User Groups: Salesforce.com, Salesforce Developers / Contractors, Salesforce Consulting Network, and Salesforce Professional Network. Don't just join and lurk ... network, network, network! Participate in the discussions.

(5) Donate Your Expertise
Ask your Salesforce.com Account Manager how you can get involved with the Salesforce.com Foundation. There are a lot of non-profit organizations out there who could use the talents of skilled administrators and developers. You don't even need to be local to the non-profit entity in order to help them. I've done full data migrations, deployment customizations, and custom apps for non-profit organizations scattered all over the country. Afterall, Salesforce is web technology, and we're all on the same internet. Generally, the work is pro-bono, which may be less feasible if you're currently jobless. However, if you can afford to donate a few hours a week, this can be a great way to put your consulting talents to practice. I can tell you from first hand experience, it is incredibly rewarding to donate your services to these organizations.

(6) Learn from the Masters
If you already know a lot about Salesforce.com, but aren't quite sure if you're ready to start your own consulting business, consider learning at the heels of the Masters. Find a consulting organization that is hiring, and submit your resume to join their team. It's not as flexible as working for yourself, but it can be a great way to learn the ropes from mentors and peers. If you follow my previous recommendations, you'll find these Masters out there soon enough -- they blanket the message boards and user groups with offers to help struggling user communities.

Get your head in the clouds, your dream Salesforce.com job is out there!

Monday, November 10, 2008

Are These Buttons Too Sexy?



I love Steve Andersen's Salesforce.com-ish Button Creator. It makes buttons that have a similar look and style as the standard buttons created through the Salesforce.com user interface.

When I lost track of the URL to his button maker, however, I searched Google for some button-making goodness ... and found a few interesting sites.

The buttons on the lower portion of this screenshot come from www.buttongenerator.com. Very sexy, n'est pas?

Unfortunately, they're just a little TOO sexy. In order to make these buttons not look out of place, I'll have to spruce up the rest of the page -- maybe bring in some pretty graphics via the Google API, like Sam has been doing over on his Salesforce blog.

Thursday, November 6, 2008

Customer Satisfaction Survey Card for Hotel Nikko, San Francisco CA


This year, while attending Dreamforce 2008, I stayed at the Hotel Nikko in San Francisco. Overall, it's a very nice hotel, although a bit too lavish for my taste. The spacious lobby featured soothing waterfalls running alongside marble staircases, a concierge with a lilting British accent (and really tight, curve-hugging slacks), and gorgeous cherry wood furniture. The room had a large floor to ceiling window with a great view of the city, was reasonably sized and very clean. What's not to love?

Maybe I'm overly provincial, but I associate extravagance with excess and waste. When traveling, I normally go for the Motel 6 flavor. Cheap, economical and comfortable -- for a place that you're mostly just using to get a few hours of sleep. I'd normally drive right past the fancy schmancy Hotel Nikko with it's $210 per night room rate (and that's with my Dreamforce and AAA membership discount) -- unless I was trying to impress my date.

I assumed that any hotel in the middle of the city was going to be charging high rates. Certainly, all the hotels on the Dreamforce pre-registration list were in that price range. I figured that was just the price of a typical room in the city. So I was a little surprised to open the curtains in my hotel room, and see a large sign hanging from a hotel across the street: $55 per night. Ah well, it was too late to cancel my reservation at the Nikko ... I was checked in and unpacked. I opted to stay where I was and splurge for the week.

The difference between these two hotels, aside from the $155 / night price difference and aforementioned decor? Not as much as I'd hoped.

Hotel Nikko didn't have a Customer Satisfaction survey card for me to fill out, so I'll just have to blog it:

WiFi: FAIL
For $210/night, you’d think I’d be able to jump on to the internet for free, right? All of the public WiFi connections were blocked, and my only option was to subscribe to the In-Room WiFi connection … at $12.99 per night! Internet Highway Robbery! I couldn't justify spending that amount of money for 2-3 hours of internet usage (that's how many hours I planned on being in my room during the conference, across 5-days, awake and idle). Ergo, no blogging until I got home.

Comfort: FAIL
The room was beautiful, I'll certainly admit that. Large king-sized bed, big fluffy pillows (about 8 of them, 7 of which I had to throw on the floor each night ... because who needs that many pillows on their bed?), gorgeous wall-mounted flat screen TV, lots of mirrors, big roomy bathroom. But the bed was soooooooo uncomfortable; I tossed and turned all night long. Some of that was due to the time change, I'm sure. My body never really acclimated to the 3-hour time zone change and 1-hour shift to daylight savings. My eyes popped open at 4:00am each morning, and I never really got back to sleep. After a week of this, I’m utterly exhausted.

Technology: FAIL
The programming on the TV Remote Control was teh suck. This was the week of the 2008 presidential election, and I really wanted to channel surf all the networks to catch their coverage of this historic event. I was thwarted by the Hotel Nikko Remote Control.

Here is the remote control button combination I had to press to get CNN: POWER, MENU, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN, RIGHT, SELECT.

Seriously. There was no way to select a channel number directly. You had to navigate through a mass of fee-based programs (movies, porn, and three screens of other crap) to find the free channel television networks. Even worse, once you were on a normal television channel, you couldn’t cycle to the next channel. You had to go back to the MENU option, and start all over from the beginning. So I couldn't pop from CNN to ABC, to CBS, to FOX, to NBC, to local ... it was just CRAZY!

Oh, and the fee-based movies? It cost me $14 to see Hancock, which I'd missed at the theatres and wanted to see. $14 ... that's twice what you'd pay to see it on a real movie screen. Yowzers.

Ammenities: OK
There was a 16 oz bottle of water at the bedside, a cylindrical, new age container – looked pretty cool. But it if you wanted to drink from it, you were charged $6.00. Hello? The 1-liter bottle that I bought at the airport (still over-priced at $3.75) was filled with water that came from the same bottling company – how does Hotel Nikko justify charging that much money for that little water?

So why isn't this category a FAIL? I gave this one a passing “OK” grade, because the room did come with a free iron, ironing board, hair dryer, coffee maker, and coffee. I didn't use any of these, but it was nice to see I didn’t have to swipe a credit card to use them.

I did appreciate the New York Times dropped daily at my door.

Environmental Conscious: FAIL
Hotel Nikko had signs posted in the bathroom, asking patrons to help with the hotel's efforts to "Go Green". If you planned to re-use your bathroom towel, just hang it from the hook on the back of the door. I'm a eco-concious American, so I did that. Every morning. And yet, every morning Housekeeping took my towel from the hanger, and replaced them with fresh, clean ones.

A little card on the bed stand read, “Leave this card on your pillow if you want your sheets changed. Otherwise, leave it on the bed stand and we will leave your current sheets. Thank you for helping us Go Green”, or words to that effect. Housekeeping stripped my bed each morning and changed the sheets (don't ask me how I know, I won't confess; what happens in San Francisco stays in San Francisco).

The first day, I left a $3 tip for Housekeeping, and the gal came and thanked me personally. I had the impression that not many people leave tips for Housekeeping these days. I wonder if the reason she kept making my bed with clean sheets and replacing towels was because of those tips.

Security: FAIL
I liked the in-room security safe. After all my other experiences, however, I was surprised I didn’t have to stuff quarters into it in order to make it work.

The FAIL grade on security came Tuesday night, when I finished my dinner, reached for my wallet ... only to find I didn't have it on me. I had accidentally left my wallet (and room key) in my hotel room! My waitress at the nearby diner was gracious enough to let me run back to the hotel (I left my Blackberry as a collateral hostage). Once at the hotel, I approached the front desk clerk and explained my situation. She asked for my room number, confirmed my last name, and gave me a new room key.

Huh? No “please confirm your mother’s maiden name”, or “do you know the last 4 numbers of the credit card you reserved with?”, or “This is Bruno from our Security Staff. He’ll accompany you to your room and let you in. Once there, he’ll need to see your ID before we can give you a replacement room key.”

I appreciate getting a replacement room key (and my wallet) so easily. I was able to rush back across the street to clear my dinner tab. But the lack of security is a little concerning.

I should have tried the same thing the next night … "Hi, my name is Sonny Cloward, and I’ve left my wallet in my room … " =)

Overall, I enjoyed my stay, but I’m disappointed at the lack of amenities that come with the 4-night $620 price difference between Hotel Nikko and the dive across the street. I think next year I’ll stay at the dive, and that $620 I save can go toward something meaningful. Like getting Calista Carter hooked up with a phone she can Twitter from!

Saturday, October 25, 2008

What if electing a President were more like American Idol?



DISCLAIMER: I confess right out of the gate, I'm not a fan of either major-party candidate. As with many past elections, I won't be voting "for" someone in this election cycle -- my vote will be because I don't want the "other guy" to get in office.

I'm frustrated by our political process. It's broken. Increasingly, election campaigns are degenerating into a contest of popularity -- what a person looks like, rather than their values. We elect candidates based on their oratory abilities, rather than, what they stand for, their experience, or their abilities.

And it always comes down to a contest between members of two parties: Democrats and the GOP. Third party candidates (Libertarian party, Reform party, Green party, etc.) have some really thought-provoking and powerful ideas. Hardly any one knows about them, because these candidates get zero air time. Their parties lack the funding to get their message out, and the deck is stacked heavily against them.

Did you know, for instance, that there isn't one ballot for the presidency? There are actually 50, one for each state. Party candidates need to petition to each state individually to get on their ballots. Each state has their own procedures and steep filing fees that must be paid before a candidate can get on their ballot. Doesn't that seem incredibly inefficient?

And if you're not a member of the DNC or GOP, forget about getting your message or plan in front of the American people. Sure, you can build a website, maybe even get a few thousand followers behind your platform -- but that's as high as you'll rise.

Why don't we just run elections the same way we run American Idol? Perhaps a twist on Donald Trump's "You're Fired!" ... we'll call it "You're Elected!". Or even better, an election process similar to the reality show "Survivor"?

Sixteen candidates, four parties, and weekly 2-hour broadcasts of candidate footage as they move through a maze of simulated political situations. Each week, the American public would get a chance to vote someone off the island, or in this case, the campaign trail.

I mean, if we're only going to look at how good or bad a candidate looks for the few weeks of the campaign, and not give any attention to the last 40+ years of their life or the substance of their political agendas and plans -- why not run the election like a reality TV show? I daresay we'd learn more about the candidates, get more involvement from the public in the process, and end up no worse with the final surviving candidate.