Integrating External Software into a Website. Yay or Nay?January 8, 2019
Oh, we’ll just integrate the new website with our CRM, our ERP, and our MA system, and it will all be automated and synchronized… Famous last words.
An interesting side note to the growth of business automation tools is the ever-greater expectation that all your business automation systems should be integrated with all the others. Yes, we have developed amazing abilities to integrate and synchronize data across multiple databases and platforms. But it’s not always easy, it’s never simple, and sometimes, it can’t be done well at all.
How does this impact your web development project? For many modern businesses, where the website becomes the organization’s face to the world and primary source of sales leads, the simpler question may be how DOESN’T it impact you?
Often, your new website becomes, by accident almost, the place where the rubber meets the road for your company’s expectations for seamless data integration. Your whole team has wanted to integrate and automate communication between multiple data sources for years, and launching a new commercial website seems like the right time to make those visions a reality.
After all, your website is the place where your identity meets your customers’ interest. Your website becomes central to your automation needs simply because your prospect data originates there. All this data then needs to be shared out to a CRM, an Email marketing platform, a quoting system and etc…
But before you start pursuing an integration between multiple software platforms during your web development effort, you need to ask yourself some serious questions about your plans to make it happen.
How simplistic and robust are your integrations?
It’s pretty safe to assume you can integrate Salesforce.com with your website or any single platform if you have a bit of time and money to throw at the problem. But this represents a best-case scenario: a 1-1 integration to a nearly-universal platform that is supported by a robust ecosystem of 3rd-party providers.
Adding any kind of complexity to this simple model can be a big challenge in your integration efforts. Sometimes the added complication is adding another database of record (as found in a Marketing Automation system for example). Add in a 3rd-party quoting module, and it becomes even more of a challenge. Every time you add a layer of complexity, you introduce complications that can really slow down your integration.
What’s in an API?
Using custom, new, or obscure applications can create other challenges. These applications are less likely to have good Application Programming Interfaces (APIs) at your disposal, or adequate support, testing and documentation for their APIs if they exist. And as challenges grow, so does your investment in both time and money to solve them.
Think about the applications on your integration wishlist now. Do they all have APIs? Do you know? Are those APIs fully-functional? How will you find out? If they’re fully functional, are they “Good”? Are they easy to use and do they require customizations that could interfere with other operations? What are their limits for fields, characters, file sizes, update frequency and a whole host of other concerns? If you can’t resolve these issues, can you even do the integration without huge investments in coding and modifying complex software systems?
One of the big ideas behind all this integration is to have one database of record that accounts for inputs from all your main business software systems. A client record, for instance, should include information about all their interactions with your brand, and it should be 100% accurate and up to date at all times. This is the lofty goal that Salesforce has been pursuing with Pardot for the past 5 years… a system that has a single, shared database that can be accessed and updated in real-time by multiple actors (their integrated Salesforce CRM and Pardot MA system), so there really is only one database of record, one that’s literally shared by multiple business automation systems.
But until this vision is fully realized, we all have to accept that there are multiple versions of our databases, representing different versions of the same reality. And unless your company has been carefully architecting the data in all these sources and continuously monitoring it for accuracy and duplication (maybe even if you HAVE been doing all these things), you have different data, existing in different fields, with different names, and different characteristics, in 2, 3, maybe even 5 or more separate databases.
In addition to the simultaneous challenges of duplication and heterogeneous data characteristics, there’s the simple matter of ensuring timely sharing of data.
If a sales rep is on the phone with a prime prospect and walks them through a web registration, that customer’s data needs to show up in your CRM almost instantly. If the rep can’t find it NOW, it might as well never have happened, because they’ll likely create a manual (and soon to be duplicate) contact record for them, even if only to record the sales call and set up a follow-up call. And that’s just one example.
Even if your architecture is excellent in its planning and execution, every write from one database to the next (the bare minimum overhead cost of sharing data between multiple databases) takes time. Simple network and memory utilization issues like latency and bandwidth fluctuations and the allocation of processor resources can wreak havoc upon your implementation.
If you time your ‘syncs’ too tight, you risk overlapping them and corrupting your data. If you spread them out too far, you diminish the overall accuracy of the system and the value of the integration. If you try to do them continuously, you impose a major burden on your networking and processing infrastructure. There’s no single “right” answer, and there’s seldom a way to optimize these systems without extensive trial and error.
Integrate with care
Integrating multiple business automation software platforms is a great idea and a worthy goal, but it is neither simple nor standardized. Each mix of players, user needs, and software platforms presents unique challenges, and the best way to move forward is carefully and with a strategic mindset. Focus on what your organization NEEDS to have, and be willing to abandon “nice to have” goals if they prove to be a major challenge.
Understand that there are limits to what can be achieved through most integrations and that adding complexity should be taken on with a full understanding of these limitations and their potential costs, both in time and in money.