Highrise API
Posted by Marcos Tapajós 10 months ago.
A few weeks after the launch of Be on the Net we are very busy with a lot of operational tasks and discovered that we need to automate some things.
Vinícius started the automation a few days ago using a lot of resources available in Mac Os but it isn't enough and today he asked me to start the development of our CRM.
Until now we are using the Highrise and we are very glad but we need some things that are not available. Maybe these things are very specific to our company, maybe not. By the way, we have decided that we don't want to recreate the wheel.
For me Highrise is the best software from 37Signals and there are some things that are very useful to us and that is why I started to develop our CRM using the Highrise API to integrate the two systems.
I didn't find any good gem or plugin to communicate with the Highrise but I found the "Ruby wrapper for the API" from 37Signals. This code works but it is very badly organised, with all classes in the same file and without any line of test.
I think that this is only an example and to make it usable I created a plugin based in this wrapper. I reorganized, added tests and rewrote some parts of this code to use in our CRM. After that I decided to make it public and converted the plugin into a gem and published in GitHub at this url.
http://github.com/tapajos/highrise
I would like to have more time to improve the documentation and add a lot of examples but it isn't possible now. I think this isn't a problem because this code uses the ActiveResource and it is very documented.
After a day working with Highrise APi I discovered some good and bad things.
1 - All the queries are VERY SLOW. Really VERY SLOW! More than 35 seconds to retrieve a list with only 200 records. 2 - The API didn't provide any way to retrieve the tags of one person. 3 - I still think that Highrise is very good and our CRM integration the two systems are possible.
I will send this post to 37Signals and I hope that they try to solve the problem with queries speed and add tag support in the API.


