In this article, we'll cover some basic concepts behind using webhooks in Tidio. Please note that this is not meant to be a step-by-step guide or tutorial, but rather a brief explanation on how webhooks are used.
Connecting Tidio with external software
Using webhooks means being able to send data from Tidio to another app or system, and having the option to receive data through that connection as well. At Tidio, we use Tray.io in order to achieve this, in tandem with our OpenAPI (you can find the documentation here).
Webhooks allow two apps to communicate whenever a specific event occurs. App A can notify App B when the event takes place, as opposed to App B having to constantly check App A for changes (which is what API allows in general). Therefore, webhooks act as a bridge, helping apps communicate more efficiently.
Let's say that you want to connect Tidio with an external CRM of your choice, and update your clients' data in both systems whenever this data is added or modified. Webhooks allow this with minimal effort.
On the Tidio side, you would need a way of saving the relevant data before it can be sent to your CRM; you achieve this with Contact Properties.
Whenever your client provides information via Tidio, it can be saved as a Contact Property in your Tidio database, and it's available to view and use from that point on. Below you can see an example of a form set up in a chatbot - it's asking for the user's name and issue description, and saving both as their own Contact Properties:
The Contact Property can be something as simple as a name, email address, or number, but it can be a longer piece of text as well:
Once the data you need is collected and saved (either automatically by a bot, or manually while chatting with the client live), it can be sent to Tray.io via OpenAPI.
In Tray.io, a dedicated flow is created for your particular need. Thanks to that flow, raw Tidio data is received and properly sorted, and can be sent to the CRM of your choice (or any other piece of software available, of course).
Webhooks allow to receive data from your external software as well, which is their true power.
Let's say that you have spoken with your client on the phone, and you manually update their information in your CRM. You now need that data to be updated in Tidio as well, to reflect any changes you've made. The client would need to use Tidio and be identified as an existing client from your database (how this is established depends on your Tidio setup, but also on what data your CRM requires in order to verify the client).
In the background, an API call is made between Tidio and your CRM, where all the user data is stored as variables. This data is being updated at all times automatically, constantly checking for changes; once your client is identified in Tidio, the correct data can be pulled from your CRM.
Making the best use of webhooks
As a general rule, you can connect Tidio with any other software that's available - as long as this software provides the right API documentation and allows such connections. Tray.io is very flexible in what it allows us to do, but ultimately it is the developer who decides what their app is capable of in this regard.
Tray.io has certain official connector nodes that allow integration with specific apps, but other connections are also possible to establish. Basically, everything depends on the software’s documentation, limitations, as well as the developer's willingness and flexibility. While our implementation specialist do their best to find efficient solutions, it is important to understand what is possible with the target software you'd like to connect with.