Most mornings, I log into GetActive and run an export on the transactions from the previous day. I look for folks who joined C3, who left C3 through the website (few and far between, thank goodness) and most importantly, the folks who donated money through the website. The export is pre-configured, so all I have to do is click a button and wait for an email to arrive that tells me that my .csv file is ready to download. I open that .csv file and run through some calculation fields that rearrange the data in such a way that I know Salesforce can swallow. Then I launch DemandTools, a fantastic (and free for nonprofits) desktop application that speaks directly to the Salesforce data tables. In multiple steps, I run scripts in DemandTools that populate our Salesforce database. On a good day, this process takes me about 30 minutes. Once a month or so, I run reports in GetActive and Salesforce, export them to Excel and then use those files to update and sync the two SaaS (software as service) applications together.
Salesforce has a robust API for using its data with other applications designed to be used with Salesforce. GetActive has a an API for membership data. The two don’t speak to each other and getting them to do so will require more effort and resources than we can possible spare right now.
My best hope is that at some point GetActive and Salesforce will talk to each other and come up with a common language between their applications so when a donation comes in and it hits the GetActive database, an opportunity record is automatically created in Salesforce. But I’m not holding my breath. I’ve had conversations on both sides of the fence and neither party is all that willing to play with each other right now. GetActive doesn’t quite see Salesforce as the true nonprofit platform it can be. Sure, I can use parts of Salesforce to do what I have in GetActive. Or I could use GetActive to do some of the things we have in Salesforce. But why should I settle for less than everything we want and need? Why should I depend on one vendor to deliver the complete picture in an imperfect way?
I wish I had spent more time this week on my catch-up reading, because then I would have known about and attended N-TEN’s Open API debate yesterday. Looked really interesting…and they had folks from both Salesforce and GetActive there.
I’ve said this before, I’ll say it again. Our mission is our fight against colorectal cancer. Our mission is not the technology. We don’t use Flickr because the idea of embedding images in our blogs is so cool and we have to do it. We use Flickr because we have pictures from our events that we want to share with our constituents and Flickr makes it very easy to do. My job at C3 is to hide the technology. Most folks get in a vehicle because they have somewhere to go, not for the experience of being in the car. I use Flickr because I can embed it in a tab in Salesforce and our folks don’t have to use a separate login to upload photos. To me, APIs that allow folks to do what they need to do without getting caught up in additional logins and interfaces is what it’s all about. I really don’t care whether it’s open or not. But you can bet that a closed-off API better offer me enough to make it worth my while in exchange for the commitment. It better live up to a higher standard and it better be scalable. People use Google over other search engines because the results are better. People sell stuff on eBay because they have stuff to sell. They buy books from Amazon because they want to read. It’s free (to browse at least), it’s easy, it’s intuitive. My problem with a lot of Open Source software is that it stops trying for the other two after the “free” part.
Personally, I have no problem with GetActive or Salesforce’s model of closing the API off from non-customers. They have to stay in business. They have to pay their employees and pay their bills, and they need a large, happy user base to do it. What I can’t stomach is when companies make the API available to customers only for a fee (like Blackbaud). That’s just being greedy. Blackbaud could get away with that when Raiser’s Edge was the big fish surrounded by guppies. Nonprofits have more choices now and we can choose not to be nickle and dimed to death. That’s what we left Kintera a year ago.
APIs allow vendors to specialize on a very narrow segment. I can incorporate a Google calendar into our interface without taking GMail, Spreadsheets and a search engine too. One application isn’t all things to all people and it shouldn’t have to be. We can pick and choose the software that best fits our needs, using only what we want and throwing out the rest. Our implementation doesn’t look like anyone else’s and it shouldn’t. I can use many different platforms and technologies, but to our users and constituents it’s under one roof (Salesforce on the inside, our website on the outside) and they can do what they need to do with one common language and look & feel. The people I work with are interested, but they don’t care how I do it. I consider myself succesful when they get done what they need to get done and they don’t notice that they’re using a completely different tool or language to do it.
We’re using OpenAir now to keep track of our timesheets and expenses. There are a lot of applications out there that do time and expense management. I picked OpenAir because I was able to implement it within Salesforce and our folks can get to it and use it with a flick of a tab.
So vendors here’s what it’s all about to me when it comes to APIs…don’t talk to me about how you’re going to change and rock my world. It’s not that I don’t have the resources…it’s that I can’t afford to start over. I can’t afford to worry about data integration and re-training users to adopt a new method. It’s too traumatic. They’re too busy saving the world from colon cancer to learn new tricks unless I can trick them into thinking they’re not learning new tricks. Tell me how your product is going to fit in the world I’m already living in…then we’ll talk. If you have to have an API to do it. So be it.