Approx 2 years ago I embarked on a mission to make the GoldMine database accessible via the web in the form of a RESTful API. This was mostly due to customers demands to be able to do certain things with their GoldMine that they wouldn’t be able to do otherwise. There is no doubt a shortage of GoldMine Add-ons that can allow customers to do useful things with their GoldMine database. In a time where it seems everything is moving to the “Cloud”, there is still something to be said about owning your CRM. However, how do you bridge the gap between a premise based CRM system and the slew of thousands of other web based applications that organizations are using today. That answer is a RESTful API.
A RESTful API exposes information about an application or database in the form of its Resources. It also enables a Client to take actions on those Resources. These actions are typically Create, Read, Update and Delete; also known as CRUD.
- Client — the client is the person or software/application who uses the API. A developer can use GoldMines’ RESTful API to create applications that perform CRUD operations on the data stored in the GoldMine database. The client can be a web browser, or a desktop application. When you visit a web site or web app that was developed using GoldMines’ RESTful API, your browser is the client that calls GoldMines’ RESTful API and uses the returned data to render GoldMine information on the screen.
- Resource — a resource can be any object the API can provide information about. For example, a resource can be a Primary Contact, a Calendar/Activity List item, a History item, Additional Contacts, Custom Fields, Service Center items, Details, Email Addresses (Primary, Additional, Others), Website Addresses, Opportunities, Projects, Lookup Lists, Users, etc.
When a developer calls GoldMines’ RESTful API to fetch a specific Contact (the resource), the API will return the state of that Primary Contact, such as the Company, Contact name, Phone1, Address1, Address2, City, State, Zip, Createon (date), Accountno, Recid, plus other information about the Contact.
The representation of the state of the Primary Contact can be in a JSON format, and probably for most APIs this is indeed the case.
What the web server does when the client calls one of its APIs depends on 2 things that are provided to the web server hosting the API:
- An identifier for the Resource you are interested in. This is the URL for the Resource, also known as the endpoint. In fact, URL stands for Uniform Resource Locator.
- The operation you want the server to perform on that Resource, in the form of an HTTP method, or verb. The common HTTP methods are GET, POST, PUT, and DELETE.
The HTTP VERBS are associated/mapped to the actions you want to perform on the Resources ie GET=READ, POST=CREATE, PUT=UPDATE, DELETE=DELETE.
I don’t want to get too much into what a RESTful API is or how it works. There is lots of documentation and information on the internet about that. I even wrote a previous article/post about it here. What I do want to discuss in this post is what you can do with a RESTful API. The answer/possibilities are quite numerous and I’ve been spending the last few months writing some simple apps to test my GoldMine RESTful API. So without further ado here are some ideas of what you can do with my GoldMine RESTful API.
Connect/Integrate any website or web app with GoldMine.
- Let’s say you want to build a web site and provide a web form on the web site so that when an existing customer logs in and submits that form it will update their record in GoldMine and create a History entry in the record and also Schedule a Next Action for an Assigned Sales Rep and create a Help Desk ticket in the Service Center with information the customer supplied online. You could do all of that with a RESTful API.
- Let’s say you want to update your GoldMine with all the information about your Mailchimp Subscribers and the actions they take with your marketing campaigns in Mailchimp. You also want to be able to upload all the contacts and email address from a GoldMine Users Groups to your Mailchimp Subscriber List (newsletter), so you can send the latest edition of your newsletter to all your customers and prospects. You could do that with a RESTful API.
- Let’s say you want to manage your GoldMine Zip Code Lookup Database and delete all the current entries in it and upload the latest US Zip Code database information and repopulate the Zip Code Lookup Database in GoldMine. To be clear, the US Zip Code Database changes just about every month, and if you rely on accurate address information, there is currently no other way to do this. With a RESTful API there is.
- Let’s say you want to Geocode all your GoldMine records so you can plot customers and prospects on a map. There certainly are services you can pay for to export your data out of GoldMine and submit a large CSV to do a bulk Geocode and then mass re-import/update in GoldMine, but what if you could just click a button in a web browser and start doing that for FREE. With a RESTful API you can.
- Now that you’ve Geocoded, converted your GoldMine Contacts’ addresses to Latitude and Longitude coordinates, you can now perform a Zip code radius search and display customers, prospects or even both at the same time, on a map in a web browser. Once you’ve got a list of all the Contacts within 50 miles of your desired Zip code, you can easily click a button in the web browser/app and schedule a call in GoldMine for all or any of those contacts, or add all or any of those contacts to a Group in GoldMine, or perform any other number of GoldMine related tasks.
- Another service that has recently become very popular is Zapier.com. Zapier is a web app that allows you to integrate thousands of web apps together through an easy to use user-interface. One of the tools they provide is the ability to post data to a webhook. A webhook could be easily created that listens for data being sent to it from any of several thousand apps and that data can then be used to make GoldMine RESTful API calls. Ie Create, Read, Update, Delete records in GoldMine based on the data coming to the webhook from other apps.
Create Unique/Useful Web Interfaces of Your GoldMine Data
- Over the years, many customers have asked about the ability to view GoldMine data in a web browser, vs viewing it in the desktop application that you all know as GoldMine. To be clear, GoldMines’ data is stored in a SQL database and you use the desktop application GoldMine to access that data and manipulate it. With a RESTful API, you can literally start to create your own intranet or internet based applications to access any of the information in the GoldMine database and present it and manipulate it how ever you seem fit. Want to access that data via a mobile device while out of the office, that can be done by exposing the web server that hosts your RESTful API to the outside world. This isn’t much different than how GoldMine Web works today, except you don’t have any control over how GoldMine Web looks or the data it allows you to access, with a RESTful API you do.
Creating Web Based Reports and Dashboards
- Just about every organization today has the need for reporting. With a RESTful API, a developer can create web based reports, pie charts, bar charts and data grids that contains the information you want to see from your GoldMine database and of course allow you to perform actions on the contact records displayed in the web based report. Want to schedule a call for a list of contacts that haven’t been followed up on in a certain time frame, that can be done via a RESTful API.
Add Functionality Not Available in GoldMine
How many times have you asked to be able to do something in GoldMine, just to be told it can’t be done or can’t easily be done. With a RESTful API, a developer can create just about any app or interface that you need, to perform just about any action you want on the data in your GoldMine database. Want to globally update email merge codes in GoldMine, that can be done with a RESTful API.
Not to get too far ahead of myself, I DON’T want to paint a picture of anything is possible via a RESTful API. There are certainly limitations and security concerns that need to be addressed to ensure your data is protected at all times when implementing/using a self hosted RESTful API. There certainly is a lot of potential and possibility for integrating web based apps with GoldMine via a RESTful API. The question really is, what more do you want to do with your GoldMine? I’d love to hear your ideas and share with you what I have been working on, so please do reach out to me to discuss.
Jay Dymond
First Direct Corp.
845 221 3800