Nowadays, it’s not always needed to develop new software in order to deliver valuable products on the Internet. Different Software-as-a-Service offerings can be integrated to create value for customers. Product development can then focus on deep knowledge of the domain and its customers. The complex world of technology development can be kept out of the picture.
Our client, delivering a customer relationship management system for practices in the aesthetic medicine domain builds their solution on top of the HubSpot platform. The client’s goal was to further differentiate their already successful product by providing integration of CRM automation workflows with electronic medical record (EMR) systems used by medical practices.
Our task was to propose the most cost-effective solution linking HubSpot (https://www.hubspot.com/) with a popular US-based EMR system provided by Modernizing Medicine (https://www.linkedin.com/company/modernizing-medicine/). Time-to-market was of paramount importance as was the requirement for the solution to be self-managed.
The default: Build a custom solution
Integrating services that expose their APIs is, usually, not a difficult task. There may be some challenges with private APIs like the ModMed API as there is no “community wisdom” one could tap into, but in general, it is the bread and butter for most software houses.
A custom solution would require the following components:
The web-based user interface for integration configuration
API exposes the back-end system responsible for handling configuration requests, authentication, and authorization
Such small integration could be built using serverless infrastructure, with simple, cloud-based storage used for persistence (no need for the database). The web interface would require some custom development. All components would be deployed on a cloud infrastructure.
Such a cloud-native solution of relatively low complexity should deliver hassle-free management (it should just work). However, there still would be a chance that the system will not be truly self-managed, and some technical support would be needed in the future to deal with occasional failures.
Plus, there was some development work done that maybe could be reduced if we could leverage an existing platform that helps in building service integrations. This could potentially reduce the development cost and take the issue of execution infrastructure management off the picture. A truly deploy-and-forget solution.
Leveraging an existing integrations service
Zapier is a platform that can be used to connect internet apps, automate different tasks, and more. Its workflows are called Zaps and usually consist of a trigger and one or more actions that are executed when a trigger is activated. There are many zaps on the platform.
For example, a new Outlook Calendar event can be created (action) when a new row is added to Google Sheets (trigger).
The main requirement that our client put forward was to be able to present a potential client with an up-to-date calendar of appointment slots available at a medical practice. It should also be possible to book an appointment directly from the CRM. A booked appointment should become immediately visible to a practitioner using an EMR system.
Get started: Our client was already familiar with Zapier, so when we proposed to build a Zapier Integration, his reaction was very enthusiastic. Apart from fulfilling the main requirement, the existing automation workflows built on the top platform could have become even more expressive. The entire execution infrastructure would have been managed by Zapier thus delivering the non-functional requirement for the system to be self-managed.
The Zapier integration that we have developed consisted of:
a trigger that was fired when a change in the appointments calendar of the EMR system was detected
an action that created a new patient record (with patient deduplication built-in) and a new appointment linking a patient with a practitioner.
The HubSpot part of the solution leveraged HubSpot’s built-in Google Calendar integrations. Calendar-related triggers and actions came from Zapier’s standard library of integrations.
How to create a self-managed solution with Zapier?
The ModMed Zapier Integration that we have developed is available to Zapier users as part of the standard library of integrations. It can be mixed and matched with several external services.
To onboard a new medical practice, the solution manager creates a new Zap that starts from the ModMed Create appointment trigger. ModMed credentials are obtained and stored using Zapier’s built-in authorization module.
After successful authentication, the trigger is configured to synchronize free slots for a specific practitioner and a specific appointment type – all choices are dynamically fetched from the ModMed EMR system. Some additional details, like opening hours, can be specified to reduce the number of requests needed to pull appointment slot data.
Google Calendar-related triggers and actions require the user to authorize a Zapier account to manage their calendar. Linking Zapier with a Google account comes for free and frees us from implementing infrastructure for OAuth flow handling. Calendar triggers come for free as part of the Zapier standard library.
New appointments originating from the HubSpot-based CRM trigger the Create Appointment action which is part of the ModMed Integrations developed by Leaware. User interface components are provided by a Zapier platform.
And that is it – a new practice has been onboarded. Once Zap is enabled – it will start synchronizing. Zapier takes care of all the execution details and infrastructure.
Many ways of using the Zapier platform
But this is not all. Zapier connects more web apps than anyone. The platform comes with some more – an extensive library of triggers and actions that allow us to further automate our workflows. For example, in our case, there is a small window of time when a slot may become unavailable between the user being presented with a calendar and a booking request reaching the ModMed EMR. Zapier allows us to define a conditional part of the workflow that is executed only when the appointment creation fails. In our case, an email is sent to a receptionist informing that a client tried to book an appointment and that an offline follow-up is needed to negotiate a new appointment date.
When challenged with creating the next service integration, one should not default to a fully custom solution and consider alternatives. Zapier is one of the possibilities that not only allows to quickly deliver of the core integrations but automatically opens the possibility of many integrations and automate tasks.
Developing new integrations can also be a cross-selling opportunity for your product team. You can sell your integrations on Zapier’s Marketplace or make your service more desirable by providing your integrations for free to your valued customers.
It is worth mentioning that due to its monetization structure, a Zapier may not be the most cost-efficient choice for some integrations. Our experience, however, allows us to make informed decisions depending on your needs.