How the team at Loyally brought Freshchat closer to WeChat

Juhi Singh
Freshworks Developer Platform Blog
6 min readJun 23, 2021

Loyally is a Dutch company that was founded in 2015. Loyally specializes in developing CTI integrations and customizations for telephony and CRM providers worldwide. They work with global enterprise SaaS companies such as Freshworks, SalesForce, AFAS, Dynamics, Topdeck, Zoho, Navision, and major telephony providers such as Genesys, Zendesk, RingCentral, Five9, and Broadsoft (now part of Cisco).

The Challenge: A Freshchat + WeChat integration for customers having a presence in Asia

Built for: Wavecell

The Big Hurdle

Around mid-2019, Freshworks was looking for a developer partner who supported WeChat as an integration channel. Many of our partners tried to give building this integration a shot. Each one of them faced significant challenges mainly because WeChat made it impossible to operate and own a sandbox account without having an entity in China. Finally, our partnerships team found a company that had previously built an integration for Freshdesk and was willing to take this integration up. However, a short while later the partner could not continue working on the integration due to internal organizational restructuring.

Enter Loyally

After multiple twists and turns, one of our partnership experts reached out to Jan Smulders, CEO of Loyally, to ask if they had any experience building WeChat integrations — and we were so glad to learn that they did! Martijn van der Linden from the Loyally developer team took the lead on this project. Recently, we had a chance to have a conversation with Jan and Martijn to learn more about their experience building this challenging integration.

In conversation with Martijn Van Der Linden — backend developer, Loyally.

What customer problem does the Freshchat — WeChat integration solve?

The app is intended to send direct messages between Freshchat and WeChat. Messages sent from Freshchat are sent to configured WeChat user IDs, and messages sent from WeChat are sent to the mapped Freshchat groups.

How was your experience of building the Freshchat-WeChat integration for Freshworks? Were there any significant challenges you faced during the project?

I think the biggest challenge was (no surprises!) getting a WeChat account. But with the help of Narayan Ramachandran — the Technical Onboarding Manager from Freshworks — and the Freshworks team in the Hong Kong area, we managed to get an account to test what we were building. They also introduced us to the partner working on this integration previously, who helped us understand the use case better.

After that, the work went smoothly. Freshworks also shared a sample app for a Freshdesk and WhatsApp integration with us. That was significantly beneficial because now we had a project that we could base our work on, making the development much more effortless. We also contacted the Freshdesk and WhatsApp integration developers; they helped us identify the important test cases and explained the process and flow of the integration.

Throughout the project, whenever we had any questions, we would get speedy and helpful responses. Freshworks has a well-structured SDK and API documentation, which helped us during the development phase. So overall, the collaboration and support that we received from Freshworks were excellent.

How does the app work?

A screenshot of the Wavecell account settings required by this app
A screenshot of the Freshchat account settings required by the app

When a customer sends a message to the Wavecell WeChat group, Wavecell sends the message payload to Freshchat via a registered webhook. Freshchat captures the payload via the app’s external event handler. Initially, the app looks in its data storage for the user Id. If the user Id exists, the corresponding conversation Id is fetched; if the conversation does not exist, a new conversation is created and this mapping is stored in the data storage. Any further messages for this same user are sent to the mapped conversation Id. When there is no data for a particular WeChat user Id, the filter API searches for the user based on the WeChat user id and fetches the user details. If the user is found, the user’s data is stored in the data storage, or a new user is created in Freshchat and their data is persisted in the data storage.

When an agent/bot replies to a particular conversation, the payload is sent to the Wavecell WeChat number, and the customer receives this response message on their WeChat number.

It is also interesting to note how we supported various data types that are often shared within the conversations. Each one has its own nuances when shared between the two channels — Freshchat and WeChat.

Supported data types

In conversation with Jan Smulders, CEO Loyally.

How long have you been associated with Freshworks?

We came in contact with Freshworks after the recommendation of one of our partners in 2017. My first interaction was with Rajiv Ramanan, who is the Director of Technology Partnerships at Freshworks. We gave him a demo of the Boardsoft-Freshdesk integration we’d built earlier, and he was impressed with the integration. Since then, we have worked together on many other integrations for RingCentral, PureCloud, and Five9.

How would you describe the experience of being a Freshworks partner?

We can’t overstate the impact of Freshworks as a partner! Thanks to Freshworks, we have come in contact with many customers, consultants, developers, and because of that, our network has grown and become more prominent. Working with the Freshworks product teams has also improved our expertise in key technologies. There are no limits to the resources we can claim, both on the consultancy and technical sides. So if we have questions, there’s always an answer coming fast, and there is also transparency and openness in our relationship, which is both rare and unique to Freshworks. We have grown tremendously through our connection with Freshworks. More importantly, we feel that our relationship with Freshworks, compared to other partners, is less of a partnership and more like friendship. Even though we are a vendor sitting thousands of miles away from the Freshworks HQ, we feel we are a part of the Freshworks organization.

Did you receive any feedback from the partners & customers for the Freshchat-WeChat integration?

We have had a couple of customers test this app. One of them is from the UK. They have people working from Hong Kong, and they deal with merchants in China. We have one Eastern European customer in the trading and fintech space. We have a couple of more customers, and all of them use Chinese entities. As this integration supports a bi-directional conversation flow, all these features and documentation will be helpful for any Chinese entity. Even for non-Chinese entities, we will still get a visa business account number and deliver text, but we cannot deliver files. So far, what we’ve heard is that the integration works instantaneously; there are no delayed responses. We have had customers who had Chinese entities to share files and text and we have received great feedback. They seem to be happy with this integration!

We are looking forward to receiving some more feedback as more customers adopt this integration.

If Loyally has inspired you with their Freshworks apps and you’re looking to build your own, let’s help you get a jump start on the platform and sign up for our partner program. You can also reach us at dev.platform@freshworks.com with questions related to the platform and the Freshworks Marketplace.

--

--