Synchronising data in the cloud – not all it’s cracked up to be. Yet.

September 18, 2013

Ross Ross Gerring

At Itomic we love the cloud. We love the fact that, give or take, we can sit ourselves in front of a web browser, anywhere in the world, and have access to all our systems. We love the fact that we don’t have to install special software on individual computers and/or servers inside our offices to do our best work, and that we don’t have to regularly update that software with new versions and patches.

Irrespective of where your business information is stored, a perfect world for every organisation is that your data is synchronised between different systems. An even more perfect world is that you have a single system that does absolutely everything (i.e. no synchronisaton required), but I’ve yet to see a company of any size where that’s a reality. So accepting that you’re going to have different systems from different vendors (e.g. one for accounting, another for CRM, another for project management), the next best thing is to ensure your data is synchronised between these systems. Why? So that you’re not having to manage (add/update/delete) the same or very similar information multiple times. So that you can manage data in one location, confident in the knowledge that the same data will be promptly – if not instantaneously – shared with your other systems.

The most obvious and common form of data you’ll want to share between systems will be your customer database. Your accounting system will have a customer database. Your project management system will have a customer database, your CRM system will have a customer database. That’s right – your customers are (and should be!) at the centre of your operations.

So one of the purported advantages of having your software systems in the cloud is the relative ease with which data can be shared between disparate systems, i.e. relative to doing the same with software you’ve got installed on individual computers and/or servers inside your physical office buildings.

Sharing of data between disparate systems is commonly achieved via nifty things called APIs. You can read more about them here: http://en.wikipedia.org/wiki/Application_programming_interface

APIs can be used to directly share data between two specific systems, or they can be used to share data via “middle person” or “clearing house” systems like the (very promising!) www.zapier.com or www.onesaas.com

OK, so here’s where the gap between perfect world and reality can start to appear: when data and/or data structures aren’t a perfect 1:1 match between disparate systems, which they usually aren’t.

Simple example: Itomic has two systems that we want to sync customer details between. The system that we want (need) to make authoritative for customer information doesn’t (unbelievably!) have a field to store a fax number in by default. We can add it as a custom field, but custom fields aren’t currently supported in the fields that can be sync’d (mapped) from system A to system B. It will one day – just not right now. So until it does, we have no choice but to manually manage fax numbers in two different systems.

Sometimes the fault or limitation lies with the API. APIs are made available and (hopefully) developed and improved over time by the software vendor companies. So the software vendor companies get to decide – via their APIs – what you can or can’t do with the data stored in their software. For reasons best known to themselves (but normally to do with “vendor-lock-in” policies), some software systems don’t offer an API at all – so the best you can hope for is some sort of manual, or semi-automated, import/export operation with your data in such systems. Some APIs might allow a “read-only” relationship with your data – which means that you can pull data out of it, but you can’t (automatically) push data into it. Some APIs will allow you to push data into certain fields in their database, but not all of them.

To conclude: the cloud does promise a better, more efficient way to do business. It’s necessarily evolving rapidly on a global scale as powerful competitive forces jostle for pole position. But if you’re expecting that your data will be seamlessly synchronised between your cloud-based systems and services, think again. It’s work in progress.