Archive for the 'Heap Best Practices' Category

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 >

Using Custom and/or Hidden Fields when Receiving Data from MailChimp (Heap CRM)

Monday, February 8th, 2010

Heap's webhook is really smart. Basically, no matter what you throw at it, it will do something intelligent. All it really needs is to know is what you are sending. How do you do this in MailChimp? Well, you just need to "tag" the field with the field name in Heap; this is what it would look like with the notes field:

Not only can you save to any contact field (or transaction field if you decide to create a prospect) but you can also save into custom values:

And if you need to post predefined values, you have the option to make a field hidden:

Heap CRM and Google Voice

Thursday, January 28th, 2010

Heap CRM has imported Google Voice Mail and SMS messages for some time now. When you e-mail a message Heap uses the from phone number to search the prospects and attempt to make an association.*

But, as of the 25th of January, the integration got whole lot better. With the use of the Google Voice Chrome Extension all phone numbers are remapped to Google Voice:

* Actually, there isn't anything special about Google Voice, Heap always tries to make associations based on phone numbers it detects in e-mail messages.

Using the New Merge to Google Docs Feature

Tuesday, February 24th, 2009

With the addition of the new merge to Google Docs capability in Heap CRM, I thought it would be good to cover both the creation of a template and a typical use.

Ok, so the obvious use of this feature it to create a whole bunch of letters or something all at once. The less obvious use is to create templates for common correspondence. For instance, here is my standard letter to new partners:


So, on a lead page, I'm going to select export to Google Docs:


I'm going to select the template and give it a name:


And then merge the document:


Now, once I click on the link, this is my final result:


Best Practices: Following-Up

Monday, May 19th, 2008

In sales it is common to want to keep in contact with your prospects. This is really easy to do with a combination of two tools in Heap CRM: event templates and e-mail templates (and to a lesser degree event regeneration).

Event templates allows you to create a large number of events and tasks automatically whenever you create a lead, opportunity, customer or archive. E-mail templates allow you to use the same e-mail over and over again but customizing with variables. Let's give it a go with a couple of scenarios.

Scenario 1:

Let's say you follow-up with every lead generated by your website within 1 day by phone, by e-mail in 14 days and by a different e-mail in 30 days.

I'm going to start by creating a couple of e-mail templates. I'm using a few variables (a discussion of these is beyond the scope of this post, but I recommend you take a look).

Alright, now let's create a event template called "New Website Lead."

What's important here to notice is that tasks that I have to do (eg. the phone call) are right along side the tasks that Heap has to do (eg. the e-mails). When I complete the phone call, I'll check it off. When Heap automatically sends the e-mails, it will check them off. This means you can have a "drip campaign" along side any other events in an event template.

Scenario 2:

You meet a new prospect and create the lead using techniques described in the first best practices using your cell phone.

From your conversation with the new prospect you realize that he is "High Value Commercial" lead. So you want to fire that event template upon his import into Heap. Just add the following to the e-mail you sending to Heap:

[template:High Value Commercial]

With just that addition you are now sending an entire drip campaign, a number of follow-up phone calls and mail marketing campaign.

Note about Templates:

The two scenarios we covered today are about firing an event template when creating a lead, opportunity, customer or archive. While this is the most common use, you can also fire an event template after a prospect is created. In fact, you can fire a number of different event templates on the same prospect if you choose.

Best Practices: Find, Categorize and Report

Friday, May 16th, 2008

One of Heap's powerhouse features is search. With a few keywords, boolean operators and bucket selectors and you can get any search results you could possibly want.

But with the addition of "save search to category" you can use these advanced search terms to create extremely detailed reports. Put another way:

  • You can do extremely complex searches
  • Searches can be saved to a category
  • You can run reports on categories

Introduction to Advanced Search - Bucket Selectors

A bucket selector simply limits the scope of search. So when you do a search in the messages section for:

Search Term

You are looking for any message that contains the words "Search" and "Term". In essence the scope of the search is every message.

But if I search for:

Search Term category:My Category

The search term is the same, but the scope differs. In this case, the search system first limits the area it's searching to just messages in the category "My Category". Then it searches for the words "Search" and "Term".

Bucket selectors can be used in combination as well. So you might search for something like this:

Search Term category:My Category category:Other Category

So, what's happening here. First it limits the scope of the search to the category "Other Category". Then within this category, it limits the scope to "My Category". Finally, on this limited selection it looks for the words "Search" and "Term".

You could also use the "pipe"(|) to create a bucket that consists of two groups. For instance you might type this:

Search Term category:My Category | Other Category

So this would limit the search scope to any message that is in either "My Category" or "Other Category".

We've been focusing on the "category:" bucket selector, there is of course many more located at:

Saving a Search

Once you have search performed a search you can save the results to a category. What does that mean? Well, if you are searching against the people or lead, opportunity, customer and archive sections, this is a pretty simple concept. When you click that "Add" button it puts each of the people in the search results in that category (note: that does not remove them from any other category).

Where this is a bit confusing is when you are searching against messages or events. So each message or event can be associated to a lead, opportunity, customer or archive (this is in fact the basic idea the makes Heap work). Ok, so when I hit that "add" button in the messages or events search, I'm not putting the messages or events themselves into a category. Rather I'm putting the prospects that are associated to the search results in a category.

Ok, that sounded confusing. Let's get into a practical examples. Let's say you sent out a holiday e-mail last year. You want to put each of the people who received it into a category. You could simply search against the messages section for the title of the holiday card then add the result to a category (or create a category). Alternatively, you could find anyone that asked about a particular topic, or anyone who you did a followup call or anyone you met with for lunch (you get the idea).

Running a Report

Once you have the leads, opportunities, customers and archives saved to a particular category you can run a report. Really it's as simple as that. You can limit the reports to any category by simply selecting it on the right.

Remember it is completely legitimate to create a category to be used temporarily. Adding someone to a category doesn't effect what other categories they may be in. And deleting a category once you're done doesn't delete the contents of the category.

Questions? Contact

Best Practices: Doing More with Forwarded E-Mail

Wednesday, April 23rd, 2008

About Best Practices:

This is a series about using Heap CRM in a way that is most productive for your business. No new features are introduced, but new concepts, and introductions to 3rd party applications are par for the course.

E-Mail integration is one of Heap's great strengths. However, most people don't use it to it's full potential. This blog entry is focused on two scenarios.

Scenario One:

You're trying to schedule a meeting with a person. Maybe you've passed the e-mail back and forth a bit, but at this point you have an agreed upon time and date.

Scenario Two:

You've just been e-mailed by a new prospect and you want to forward their info into your Heap account. Maybe you've also given the prospect a call and you have a bit more info than is contained in the e-mail alone.

Scheduling the Meeting:

Here is an e-mail from someone I'm trying to meet:

Ok, so I could just forward this into Heap and go in and make an event at later time; but that isn't that efficient. Ideally I would like to schedule it as part of the forwarding process. So I add:

[event:04/26/2008:Lunch with James at 12:10pm->My Calendar]

Truth is, I didn't type all that. I use a program called TextExpander with the Heap bundle that allows you to produce large amounts of text by typing something shorter. So I actually typed "[e". Which gave me:

[event:04/23/2008:->My Calendar]

Then I typed in the event and modified the date (by default TextExpander places the current date when this snippet is expanded).

Some interesting things to note:

  1. If this person is a lead, opportunity, customer or archive, both the message and the event will automatically be associated.
  2. This event is tied to this message. So when viewing the calendar you can quickly click on the message icon and see the message that relates to it.
  3. You could have many of the "event operators" in a single message (setting up many events). This is more common when you are setting up a list of tasks that you need to complete.

The new Prospect:

Here is an e-mail from someone who is interested in a product of ours:

I have some additional info (because I talked to them on the phone), specifically their phone and website. So I'm going to add the following operators to the top of the forwarded e-mail:

[category: Real Estate]
[template:Real Estate Lead]

First, just like the event in the previous scenario, every one of these has a snippet in the Heap bundle for TextExpander. So, this is what happens when Heap receives this e-mail. First, it creates a person named "John Doe" that works at "ACME" (subject line), then it fills in the phone and website. Then it creates a lead from this new person, places that lead in the category "Real Estate" and runs the event template "Real Estate Lead" (in this case creating a half dozen or so follow-up events that automatically send out e-mail).

I hope these two scenarios gave you some ideas on where you might make your input process more efficient; next in best practices, "categories, find and reports." Hope you stay tuned.

Questions? Contact