Archive for December, 2010

Become an Automation Ninja (Heap CRM)

Thursday, December 30th, 2010

1) Step One - Event Templates

Use event templates to create a series of events based on the current date or an offset date. You can fire an event template when you create a new prospect, update a prospect, through e-mail or via the WebHook.

You can use any of the following variables (the variables are common to event templates, email templates and Google Docs used as a template).

Variables containing information about the prospect:


Variables containing information about the user:

[my first]
[my last]
[my email]
[my phone]
[my mobile]
[my fax]

Variables containing information about the firing event:

[event name]
[event location]
[event description]

An event can also send out an email:

2) Step Two - E-Mail Commands

E-Mails sent on a schedule (as described in step one), e-mails sent into Heap (as described at and messages sent to the WebHook are processed for e-mail commands. This is an example of an e-mail template containing an e-mail command:

There are over 40 e-mail commands; a complete list can be found at:

3) Step Three - HeapCL

HeapCL is short for Heap Command Line: one of the largest features added in 2010. With HeapCL you can create messages, people, prospects and email templates as well as extract prospects, people, statistics, history, and email templates.

There is many reasons why you might want to use a command line tool with your CRM. Here's a few examples:

  • You have some sort of manufacturing process where when the product comes off of the end of the line you need to move a particular prospect from customer to archive
  • When you move files into a specific folder, you want to attach those files to a message and change the value of the associated prospect automatically
  • You have some ancient desktop software that your industry uses. It doesn't integrate with anything, but it creates files on your computer that can be read. You use HeapCL to send data to Heap when new information is entered.

HeapCL works on all major platforms (ie. if an article shows screenshots from Mac OS X, the commands are the same on Windows).

Let's start with something really basic. What if you want to save your current prospects that contain the name "John" to a CSV. You could type:

HeapCL --search="John user:My Name" --save="My Johns.csv"

Alright, let's get a little more involved. Let's say you maintain servers and you have setup a task (uncompleted) that needs to be checked off when a server starts up (for the sake of this example let's say it is a Windows server).

You would simply create a scheduled task and set the trigger to be on startup:

Then enter the appropriate command into the actions tab (in this case HeapCL --body="[complete:server startup]" --title="Server Startup" --simulate):

Ready for more?

HeapCL Documentation >
HeapCL and Services >
TorchCL and Folder Actions >

Add Details to Event Templates (Heap CRM)

Thursday, December 23rd, 2010

You can now add location and description data in event templates. When creating an event, click the "add more details..." button.

Then fill out the location and description information. Just like the event title field, you can use the same variables as you use in email templates and Google Docs within the location and description field:

Automating with HeapCL and an Automator Service

Sunday, December 19th, 2010

So, let's say you have a list of names that you are calling for the holidays. Each prospect has a task that needs to be marked as complete and you also want to schedule a followup call in 7 days.

You could do this directly from the terminal with HeapCL:

What's going on here? So, I'm using HeapCL's ability to parse messages to do a few things. First, using the association command to indicating what prospect this should apply to. Second, I'm marking off the appropriate event and finally I'm creating a new event in 7 days.

However, I'm also including an optional flag ("--simulate"). This indicates to Heap that while I want all of the commands to be processed, I actually don't want the message created.

Ok, so that's cool, but not very automated. I could probably do that just as fast within Heap itself. But the beauty of the command line is that you can turn it into something that can be used over and over again. So here is that same command in Automator:

This time I'm swapping out name ("John Doe") and replacing it with a variable that represents whatever text I might have selected ("$f").

So once that's saved, it is a system service. Meaning it works anytime I have some text selected. For instance, I'm in a text editor with the text "John Doe":

And that's it, if I open up Heap and look at John Doe's calendar, I see that one event has been checked off and another created: