I have been working as a User Experience designer at CloudWork for the past 6 months and I’ve faced many challenges and opportunities while building an easy to use product that automates business processes and synchronizes cloud-based applications.

The UI and UX of the application was very easy to create compared to the actual UX of the service. The uncertainty and the number of dependencies for creating a successful integration between cloud applications is so high that it seems almost impossible to guarantee the Quality of Service.

The main issue is the lack of standards. Each application has a different API, different logic, different nomenclature. Even applications of the same class, e.g. CRM, are completely different beasts. This makes it really hard to guarantee the same solid integration between CRM A and APP X compared to CRM B and APP X. This can make creating a consistent User Experience very difficult.

At CloudWork we try to overcome those issues by taking the time to test the integrations internally; asking the ISVs to test them and most importantly having users testing them and evaluating the results.

Many times when we build the integration we have a use-case in mind that users have requested but when it comes to the actual execution, the devil is in the details. Only real users of the applications know exactly how an integration should behave and how it will best cover their needs. Only after user feedback and iterations and constant testing we can guarantee the integration value and quality.

Over the past months we have been working hard on creating in-house testing and monitoring tools that will allow the development team, support team and, of course, our users, to test and troubleshoot their integrations.

We built an internal diagnostic tool which makes clear which part of the integration might fail (input or output application, formatting of the content, etc.) which is used for development and support. We integrated diagnostic messages into the UI with tips for the users to understand the issue and test the integration. We also added a way for users to manually trigger their integrations when they need to test them. We have put in place a messaging system that informs the user automatically via email if the integration is fine or if it never executed. All these small systems are in place to help the user and to guarantee the quality of service.

From user interviews we have seen that most of the people are expecting an integration to be almost magical: a set and forget service that does everything automatically and perfectly with no need of maintenance or action from the user’s side. We are very far from this utopia.

APIs are like bridges, both sides of the rift need to be aligned perfectly and prepared for it to be reliable. Application content which is actually the user’s content should be able to be transferred easily and reliably across the rift.

Please join in the discussion on this article over on Hacker News.