How to Integrate Magento 2 and Zoho in One Day
This year, the Digital Transformation trend grows with extra power and affecting more and more businesses, even the ones ‘vaccinated’ against anything Digital. In the past, it was enough to have an eCommerce Shop and some Accountant software only.
The new trends require more effort from merchants, they should know their customers (CRM), how to better communicate with the audience (Digital Marketing, Emailing, Help Desk), and they should be fully aware of their company performance, KPI, Competitors, Market, Industry or Regional trends (Business Intelligence). In this article, we will review our success story of integrating Magento eCommerce platform with the CRM / ERP Zoho Platform.
Zoho is not only the CRM
Zoho CRM is the SAAS Customer Relationship Management (CRM) system for managing sales, marketing, and some accounting features from the realm of ERP and supports everything of this in one platform. But this information is from the wiki.
In reality, Zoho is not only CRM software. It’s a business management tool that can support and boost all business aspects. It looks like Magento, but in the CRM world, it has a lot of features, extended functionalities, integrations, and apps that cover all your needs.
So, you have all the bricks to build your business infrastructure and automate it. And one of the benefits, it has affordable prices, which might be the perfect combination with Magento Community Edition.
Considering the popularity of both platforms, many merchants want to integrate their Magento store with Zoho Services.
There are a few different ways to do that:
1. Purchase a Magento Extension or Create a fully custom solution
Such integrations are usually built as part of the Magento. In this case, Magento becomes fully responsible for integration. The solution covers most of Magento entities like customer, product, order, and invoices.
2. Use a middleware integration solution
This type of integration is usually built based on 3rd-party connectors (e.g. ESB, enterprise service bus). And it becomes is fully autonomous and doesn’t require any Magento or Zoho customizations, but the timeframe for synchronization can be longer than in other types of integration.
Integration is simple
We have a request from our client to implement integration with almost all existing entities: customers, products, orders, invoices as well as some custom ones, like pre-order / lead. And integration should be two-sided, Magento to Zoho and Zoho to Magento.
Example: Call-center deals created in Zoho, should be migrated to Magento orders, as well as Magento order should be migrated to Zoho Deals.
1. Magento Extension
Implementing a full integration on the Magento side means adding more complexity and developing a heavily customized solution. Magento starts taking extra responsibilities on handling integration as a middleware that might affect reliability, performance, and available resources utilization.
We reviewed all existing extensions and assumed that most of them cover only 20% of business requirements, and all of them cover one-way integration – Magento to Zoho only.
2. Middleware Integration solution
This type of integration is quite powerful, flexible, and does not require many resources. But the critical problem is that it does not control entity updates, there are no triggers that tell this integration whether new customers registered in or not.
One of the business requirements is to have immediate data updates. Most of the middleware integrations work in the passive mode, occasionally checking data sources for updates. So it would be required to develop a Magento extension to trigger such updates.
But why should we add more complexity or invite more players, if both systems have enough power to connect with minimal effort? Considering all pros and cons of existing solutions, we decided to move on OUR own way.
Develop A Very Simple Magento Extension
- The main extension responsibility is to trigger corresponding webhooks on entity updates.
- Webhook runs asynchronously, so it has no performance impact.
Create The Main Flows In Zoho Flow
- ZohoFlow + Zoho Builder allows integrating any application with less coding.
To integrate Magento with Zoho we used the Event Handling approach.
- Magento triggers corresponding WebHook on Entity change event
- Zoho Webhook triggers Zoho Flow
- Zoho Flow requests information from Magento REST API
- Minimal system customization,
- Maximum functional utilization
- Magento does nothing other than register Entity State changes
- No heavy operation on Magento side, correspondently no performance degradation
- Magento does not have extra responsibility, therefore no business logic is changed
- Error handling, message queue – it all happens on Zoho’s end
- Data updates happen immediately, no delays
- Magento should rely on Zoho stability
- The solution requires basic understanding of Zoho Flow
- No Export capabilities for all the work done with Zoho Flow and custom functions.
Magento development part is pretty simple
1) Configuration to keep Zoho webhooks
2) A simple custom extension that handles entity update events
3) https requests to trigger a webhook. Triggers webhook asynchronously.
Zoho Flow is an integration platform that helps you connect apps without any coding.
Zoho Flow has a ready-to-use integration app, which requires simple manipulations like drag-and-drop bricks or data field mapping. You can also write custom functions on Zoho Flow using Zoho Deluge Script.
Customer Flow Example
1. Webhook triggers Flow
2. Get Magento API Authentication Token
(via a custom function)
3. Get Customer Data from the Magento
REST API (via a custom function)
4. Fetch Zoho Customer data
(Zoho Customer App)
5. Make a decision whether you have to update
Zoho Customer or create new (Zoho Logic)
6. Update Zoho Customer
(Zoho Customer App)
7. Create New Customer
(Zoho Customer App)
8. Create Customer Personal Folder
(Zoho Drive App)
See more detail on how to build custom flows here: https://www.zoho.com/flow/features.html
As part of this integration we have implemented the following flows:
- Product integration update / create
- Customer integration create / update
- Orders integration create / update
- Quote / Lead integration create / update
- Integrate Zoho Deals Statuses with Magento Order Statuses
- Shipping / Shipping Tracking updates
Once developers know how to work with Zoho Flow, it takes approximately 1 day to implement a single flow. The numbers might vary though since it depends on the business logic or custom entity attributes, but in general, it’s 1 flow per day with testing.
We hope this article will help developers and merchants choose the right path of integration not only for Zoho but for other similar systems.
It does not mean that our way of integration is the perfect one. It’s usually worth collecting the Pros and Cons of each integration method to find the right path based on the project’s requirements. As a Zoho Authorized Partner, we’re happy to offer you personalized assistance with Zoho integration. Feel free to reach out to us here.
We truly recommend utilizing the whole power of tools you are using.