Two Stellar ios task applications

I’ve been looking for a good task application for a while. I don’t want to spend a lot of money (less than $3); I want it to be a simple app, and I want to be able to use it with others (at work or with my wife). I’ve tried a bunch of apps and even have a folder on my iPad that serves as a graveyard for those that haven’t quite made the cut.

Here’s the rundown of what I want in a task application:

  • Collaborative. I want to know what’s on my team members plates and I want them to see what’s on mine. I want team members to be able to assign me a task, and I want to dole out tasks to them.
  • ios ready. It needs to have an interface (or application) that works on my iPhone or iPad.
  • Simple. I want to open up the app and see my projects and tasks. At the core, I want a utility that focuses on projects and the tasks I need to complete to be successful. Everything else is gravy.

Well, when it rains it pours! Not only have a found one application that works, but I have found two quality applications that makes all the others look old fashioned. Both of these tools go above and beyond my requirements by offering threaded comments for tasks, beautiful web apps, and email integration. Sheesh! Now I have to eliminate one–and it pains me, because I like them both!

Orchestra To Do

Cover ArtOrchestra To-Do is an ios application and web application that instantly impressed me. It boasts a clean interface which makes it easy to share tasks and projects, a threaded view of comments and changes for each tasks, email integration, and a beautiful web application. I use it with my wife to keep grocery and other lists in sync.

The creation of tasks can be completed by typing into the interface, dictating to the iphone application, or by sending an email to By sending the following text in an email to orchestra, you will create a task in the project called “party.”

Don’t forget to pick up the cake for the #party !anyone

The cool thing is that anyone who is a member of the party project has the ability to see the task and accept it as their own. (For more information about the nuances of using email to create tasks, see their handy instruction sheet here). The ability to throw a task “out there” for anyone to claim sets Orchestra apart from any of the other task apps I have seen. Just press the button “I’ll do it” and the task becomes your own!

Orchestra’s selling points

  • Ability to create a task that any team member may claim.
  • Language recognition.
  • Robust email integration.

Cover Art is’s entry into task management. I’m a Salesforce fanboy, so I downloaded the application the day it was released. I have been using at work for the last couple months and have found it to be easy to use and meets my needs. It easily fulfills my requirements of being collaborative, ios ready, and simple.

Aside from the basic requirements, it also lets you upload attachments to share with your teammates. These attachments can then be linked to tasks. It’s nice to be able to attach documents so they are easily accessible when you are reviewing your tasks. The attachment functionality is currently only available on the web application.

Also, provides the ability to add notes to tasks and projects. So, meeting notes and jottings from telephone calls can be put right next to tasks in their respective projects. You can even send notes via email to by sending to’s selling points

  • Ability to add attachments to tasks and projects.
  • Ability to add notes to tasks and projects.
  • Email integration (although not as robust as Orchestra).

I like these tools so much that I don’t think I’m going to eliminate either of them. Until one of these applications pulls away from the other, I’ll continue to use both. will continue to provide me direction at work while orchestra will help me organize my my personal tasks and lists.


Tracking contacts in over time

If one of your company’s contacts jumps to a new company or gets a new job within the same company, isn’t there value in being able to refer to the information?

A sales organization, for example, may want to keep track of friendly (or adversarial) customer stakeholders–especially when these stakeholders move from company to company. It would be useful to know where friendly contacts are moving to so the organization can leverage this information as they develop their sales strategies.

Organizations who capture information about elected officials may also want to know and track when elected officials end up in new posts. It could be advantageous to keep track of a lawmaker’s disposition toward your company throughout his/her career.

Interestingly, Salesforce does not offer the functionality to track contacts over time.  Yes, there is a way to track fields, but only for 18 months, which isn’t a sufficient length of time for the above requirement.  I’ve built a fairly simple solution to this problem that doesn’t involve any code.

Road map

This configuration has seen several iterations in my Salesforce environment, but I think we have arrived at a fairly simple and straightforward method to track contacts and their movements. The steps to setting up this configuration include.

  • Create a new object called Contact Position.
  • Develop validation rules to insure that only one contact position is active at any one time.
  • Write a (cross-object) workflow so the Contact object will display the current position information.

The Contact Position Object

The most important step is to create an object called “Contact Position” which will be on the detail side of a Master-Detail relationship with the Contact object. The Contact Position object should hold whatever fields are useful in understanding each contact’s position. (e.g. name of position, description of position, and account/company).

Although the contact will always be connected to an account, you’ll be able to track the movement of that contact if you also have the account stored in the Contact Position. You’ll also want to include a boolean field called “Active” and/or effective dates.

To make this object shine, you can include some nifty validations to ensure that:

  • the end date does not occur before the begin date. The error condition for this would simply be: begin data > end date.
  • the “Active” checkbox does is not unchecked until an end date is entered. (i.e. An inactive position must have an end date.)

Validating that only one contact position is active at any one time

The requirements for this project state that only one contact position for any contact may be active at a time. To guard against multiple active contact positions, we would have to know if there are any other contact positions active. Although Salesforce is unable to make this computation from the contact position object, we can determine the number of Active positions from the Contact object. Here’s how to do it:

  • Create a Roll Up Summary field on the Contact Object that counts the number contact positions for a given contact.
  • Create the validation rule in the Contact Position to guard against there ever being more than one Active position. Here’s what I came up with (note the reference to the Roll Up summary field called Active_Positions__c).
And(OR( PRIORVALUE( Active__c )=FALSE, ISNEW()), Contact__r.Active_Positions__c>0, Active__c =TRUE)

Pushing the current Contact Position information to the Contact Object

Now that we have the Contact Position information connected to the Contact, and we make sure that these positions follow some basic rules, we can push the current Contact Position information to the Contact.

  • Create a workflow rule that will run everytime a record is created or edited. The rule criteria is simple: if the Contact Position is Active, it should trigger an action. (e.g. Active__c=True)
  • Than setup a field update action which updates the Contact object. By updating the Contact object from an action in the Contact Position, we have just setup “Cross Object Workflow” (new in Spring ’12 release). See below:
  • Before clicking Save, setup the formula to update the field in the Contact Object.

That’s all there is to it. Now users will be able to keep track of their contacts when they move to other companies or positions! I had a fun time putting this together, and it allowed me to eliminate some code that was previously deployed to do the same thing. Please drop me a line if you have any suggestions or have questions.

7 Reasons for Our Salesforce Success

At work, I manage a team that provides technology solutions to several small but important departments within my organization. In the not-so-distant past, others in my role resorted to using tools like MS Access (hardly scalable), Spreadsheets (not easily shareable), and innovative uses of file shares and email templates to get the job done.

Along came, and we have been able to create solutions that can withstand the demands of many users and data, promote collaboration, and maintain data integrity in ways that departmental solutions have been unable to accomplish in the past. Below are a list of reasons why our business unit’s implementation of Salesforce (aka  behaves like an enterprise application. (In the future, I’ll publish a list of Salesforce criticisms, but today I’m a fanboy).

  1. Salesforce was an easy sell. With a greater percentage of the costs known up front, Salesforce takes some of the guesswork out of costing a solution. No hardware to purchase, no network engineers to engage, and no obtuse licensing makes Salesforce seem less of a fiscal gamble. In my case, I do all the development work, so we don’t even have to worry about a pricey consultant engagement.
  2. Salesforce helps the business to easily share information between and among departments. I have found that sharing information has become one of the biggest selling points of implementing Salesforce. After we implemented our first application in Salesforce, we found that other departments within the business unit wanted to use that data to help satisfy their own business needs. Instead of generating spreadsheets to share with other departments, we immediately began bringing on other areas so they can share data at the source.
  3. Salesforce provides the tools to quickly prototype, rollout, and change applications. Most business requirements can be met simply through a point and click interface. Although nothing replaces thorough analysis when developing an application, the basic concepts behind Salesforce administration is intuitive and its developer interface is streamlined. This shortens the cycle time for development and allows the business to see their changes implemented quickly.
  4. Salesforce takes IT out of the equation. Departmental solutions always lose when they have to compete with enterprise applications. IT just doesn’t have the resources to take on all applications and solutions for all departments. Thus, the needs of smaller business units can not always be addressed in reasonable timeframes. Salesforce allows departments and business units that don’t have the attention of IT to effectively roll out solutions without IT resources.
  5. Salesforce provides quick reports and dashboards to measure and communicate our accomplishments. A couple weeks ago, a business user asked me to generate a Salesforce report for the preceding fiscal year. It was in her inbox in about 5 minutes. The last year’s report took two days to gather the data and a day to crunch the numbers. Also, I’ve created dashboards that are visible at login that immediately remind users that their data actually means something in aggregate. With these types of reminders, managers and executives can’t argue with the benefit of Salesforce.
  6. Salesforce makes it easy to engage users in the development process. After meeting with users in the morning, I can go into a developer sandbox, make a change, and show them the change by lunchtime. With that kind of speed, users stay engaged and feel comfortable asking for changes. The first thing I tell new user groups (after I tell them that Salesforce is NOT a sales application) is that the application is THEIR application and that we can work together to create an application that fits their needs.
  7. Salesforce has a primetime feature set. Workflow, custom webpages, approvals, triggers, granular permissions, forms, reporting, dashboarding, and email parsing are all functionalities that we use in our departmental solutions–and we are just scratching the surface. These features have allowed my little department to develop applications that are producing real value to my business unit and the organization as a whole.

The above items (along with a lot of hard work) have helped to make Salesforce a valuable tool for my business unit. It’s not a perfect implementation (maybe I’ll write about that in the future), but we’ve been able to leverage the strengths of Salesforce to create departmental applications that provide enterprise-grade functionality and productivity.

Why I bought my iPad (or the nook color as a gateway drug)

I was holding out as long as I could before I bought my iPad. I had a nook color, which helped me to triple my reading volume over the last year. I loved reading books on that thing. I was downing Fiction, non-Fiction, and Genres I never thought I could like at a faster pace than I have ever read.

Then, Barnes and Noble opened their nook app store.

Big mistake.

They turned my awesome reader into a tablet wannabe.

I loved my nook color, and I so much wanted to believe that my innovative little ereader from the big box bookstore had become a true tablet. I downloaded Angry Birds and a couple overpriced apps, but to my frustration, I never really found anything fun or useful. I knew, though, that I needed more apps. I went as far as pseudo transforming my nook color into a junior Android tablet using an n2a (nook2android) card. That made my once beloved nook color into a desperate attempt at joing the world of tablets. I now had access to a whole new world of apps that consistently crashed my poor inadequate tablet.

I wasn’t sure if android just had way too many configuration options, if the nook just wasn’t powerful enough to handle an unleashed android platform, or a little bit of both, but I did know that the iPad “grass” looked a whole lot greener.

Now that I’ve had my iPad for about a month, I’m ready to go out on a limb and declare it “amazing,” “revolutionary,” and (even) “productive.” AwesomeNote is just about awesome; zite is a beautiful and intelligent way to read my news; my email is delivered without a hitch. My bluetooth keyboard, has in effect, turned my iPad into a computer. Here’s the clincher: I’ve been on my iPad all day, it’s 10:00 at night, and I have only used 40% of the battery. WOW! It’s the best piece of hardware I’ve ever owned.

So, why do I miss my nook color? Well, I haven’t read one complete book since I bought my iPad. It’s too big and bright. I find that I can’t fall asleep after reading a couple chapters from a novel. I’ve tried turning on the black background and dimming the display, but it’s just too uncomfortable for me. So, althought I love my iPad and do not regret purchasing it, it is not a replacement for a good ereader.

I’m interested to see how the Kindle Fire is able to stand up to the iPad. If it’s a great ereader and a more fully baked tablet than the nook color, the iPad may no longer be king.

Salesforce tip: Compose formulas in Excel first

I was working on a fairly complicated formula in Salesforce and realized that it may be easier just to build in Excel. As many of the formula conventions in Salesforce are the same as Excel formulas, this little trick can save a heap of time.


  1. Name your cells.  For every field that you’ll be using in your formula, name a corresponding cell in Excel with the name of that field. Don’t forget to include “__c” for custom fields (see below). 
  2. Put some data into each of these named cells.
  3. Build your formula, making sure to click on the named cells to insert into your formula.
  4. Make sure the calculations work as designed.
  5. Copy formula from Excel and paste into Salesforce!!

Preparing for Life

Recently, Seth Godin blogged about “What’s high school for?” He listed a 10 super skills we should be teaching our kids in high school.  Including some of my favorites:

The power of being able to lead groups of peers without receiving clear delegated authority.

Project management. Self-management and the management of ideas, projects and people.

An insatiable desire (and the ability) to learn more. Forever.

Thinking back to my high school days in a top-notch high school with fantastic teachers, very few of these skills were explicitly addressed (except maybe public speaking, critical thinking, and the scientific method).  I’m sure some of the gifted teachers tried to impart some of the other ideas into our hard headed teenage brains, but there was no explicit discussion about most of the items in Seth’s list.

Few of the items on Seth’s list are controversial, but many of these skills are difficult to measure (e.g. how do you test for “self reliance?”)  In a climate of teaching to the test, we (parents, politicians, educators, etc.) should figure out how to address the life skills in Seth’s list while preparing our children for careers in the 21st century.

As a parent, I’m am helping my elementary school aged kids (why wait for high school?) to begin the process of chipping away at some of  the ideas on Seth’s list.  I hope we can find a way for our teachers and school districts to do the same.