Archive for the 'Developers' Category

Create Time and Expenses with Torch Project Management WebHook

Monday, July 5th, 2010

You've always been able to create time and expense entries as part of a message sent through the Torch WebHook. But what if you want to create an expense or time entry without submitting a message? Now you can, here is some sample JSON:

"note":"Work with client",


"note":"New Widget",

Just like everything created via the WebHooks, this info can be posted as JSON or as POST fields. The only required fields are hours (for time), price (for expense) and note. Category and timestamp are optional.

Heap CRM WebHooks Now Accepts Custom Values

Monday, February 8th, 2010

If you are posting to the Heap CRM WebHook, you can now post to custom values: Just place the value in a POST or JSON field named the same thing as your custom value field name. If the custom value field name is something like "Referral Name" that can't be sent over POST or JSON, just remove the spaces from the field name (e.g., "ReferralName").

Using Torch WebHooks for Bug Tracking

Friday, January 29th, 2010

WebHooks in Torch Project Management are really flexible; Google Apps Scripts are really flexible. We've used this combination to help track bugs.

We have a feature in Heap CRM called "Search Reports." It's a really complicated feature. That's why we have a feedback form on the bottom. But, people put all sorts of things in this form: feature requests, confusion about the way things are calculated, etc. While we need these things they are obviously not as important as an actual error. In that case I want the message pinned to me and I want a task setup. I do this by simply including:

[category:Search Reports: Bug]
[pin:Ben Smith]
[event:Possible Search Report Bug]

in the webhook payload when the script detects the word "bug" or "error". The full example is here.

I hope this gets you thinking about the tasks in your workflow that could be automated; you might be able to do it with a webhook.

Getting Heap and Torch Data from Google Docs

Sunday, January 17th, 2010

One of the great things about Google Docs spreadsheets is how easy it is to add functionality. Google Apps Scripts allows you to write your own functions in JavaScript, right within in the spreadsheet. And now you can retrieve data from Heap CRM and Torch Project Management directly from the script.

Here is a sample worksheet:

You will notice that I have two menus (each with two options). However you can also interact with this data as a formula like so:

And in every other respect they are just spreadsheet cells. So here I've used the functions to reference the user name and category cell and then just filled the columns:

The reverse is also possible. You could use a script to retrieve data in a spreadsheet and post it to Heap and/or Torch. One use case is when using Google Forms you could have all or part of a form submission automatically posted to Heap or Torch.

The developer documentation and sample code is here:

Torch WebHook >
Heap WebHook >

Update to Heap WebHook

Monday, December 7th, 2009

You can now create messages using Heap CRM's webhook. Just place a title and message variable inside the JSON payload instead of the person/prospect data and a message will be created. Further, the message body will be scanned for the same commands as e-mail messages.

An example payload might look like something like this:

"title":"Talked to the Client",
"body":"Spent time with client \n\n[category:Meetings]\n[event:+1 Week:Follow-up with client]"

Update to Torch WebHook

Monday, December 7th, 2009

The Torch Project Management webhook now supports event and pin commands. For instance, you might want to do something like this:

Commit Message

And that would result in the following in Torch:

Commit Message in Torch

This works regardless of if you are using Beanstalk, GitHub or others.

HTML5 Apps and Why I think this is the Future of Mobile

Thursday, August 6th, 2009

Over the last 24 hours I've received some concerns about the new HTML5 mobile interface for Heap and Torch. Confusion is to be expected, especially as of this post's date there is really only four HTML5 apps of this type in use, so Heap or Torch's Mobile interface is likely the first such app people have come across. This post is to clear up some misimpressions and to explain why I think this is the future of all mobile productivity apps.

How does an HTML5 application start?

After you click the Heap or Torch icon on your home screen you will see the following sequence of screens:

App Loading Sequence

There are a few key points:

  1. The interface becomes available to you as soon as the data is loaded from the local database (regardless of your online state)
  2. The sync process runs in the background so you can continue to view/create content while it is working
  3. The application itself runs directly off the device

How does the upgrade process work?

Whenever you are on the Internet and are using an HTML5 app, your device checks a small text file called the "manifest" to see if it's version is the same as the current version on the server. If not, it downloads the new application files to the device (in the background). The next time the app starts up you will be using the new version.

Future Compatibility:

But perhaps the most important point is that the new HTML5 apps are not iPhone/iPod Touch or Android specific. There is not one line of platform specific code, it all conforms to the HTML5 draft spec.

Now compare the above to a native iPhone app:

  1. It only works on the iPhone / iPod Touch
  2. Upgrades require being submitted to Apple for approval (which takes some time) then installed by the user through Apple's App store
  3. Which (item 2) causes an issue of multiple versions of the app being in production at any given time because some users won't upgrade. This results in having to leave old "hooks" open in the server version of the application.


At current there are two issues:

  1. It doesn't work with the iPhone 2.x software
  2. It doesn't work with the Palm Pre

For iPhone users the upgrade is free, so there is really no reason not to upgrade. For iPod Touch users it is $10.

While the Pre implements some of the HTML5 spec, it doesn't implement all of the methods that the apps need (but once they are it will just work).

Universal JSON and POST WebHook in Torch Project Management

Monday, July 20th, 2009

In addition to supporting Beanstalk, GitHub and Assembla, Torch Project Management supports a standard JSON payload posted to the WebHooks URL (it should be placed in the POST variable “json” with a "title" and "body" variable) or sending directly to the POST variables "title" and "body".

Just like our custom integrated applications you can:

  • Categorize the message
    • Add [category:Name of Category] to the body
  • Complete event/task entries
    • Add [complete:Name of Event/Task] to the body
  • Add Time entries
    • Add [time:Note about Time:1.5] to the body where 1.5 is the number of hours

Universal JSON WebHook in Heap CRM

Sunday, July 19th, 2009

In addition to supporting Shopify and MailChimp, Heap CRM supports a standard JSON payload posted to the WebHooks URL (it should be placed in the POST variable "json"). An example payload might looks something like this:

"name":"John Doe - ACME",
"address":"123 Main St.",
"city":"Any Town",
"categories":["Category One","Category Two"]

Heap is smart enough to just add new people and ignore duplicates.

GitHub Integration with Torch Project Management (for Developers)

Monday, July 6th, 2009

Using GitHub’s Post-Receive URLs, Torch can now receive push information.

What You Can Do:

The commit messages are posted to the appropriate project. You can also checkoff tasks/events (more than one if you wish) as well as categorize the message. If the project is for a client, you can also include time entries. Here is an example of a commit message:

Message Generated by GitHub

Setting Up the Integration:

First get the integration URL; this is under the “Integration” sub section of the “Help” tab:

Help Page

NOTE: Part of the URL is blocked out because it contains the project token, however, you must copy the entire URL.

This URL is unique for each project you decide to integrate, so make sure you are on the right project before you copy the URL.

In GitHub, select the appropriate repository then select the “Edit” button. Select the “Service Hooks" sub section then “Post-Receive URLs":

Setup in GitHub