Working with babelforce allows you to integrate your cloud service with telephone or other communication channels with just a few steps and without coding.
In this article, we want to introduce you to the basics you need to know about the way babelforce integrates with other cloud services like Salesforce, Zendesk or Dialogflow, just to name a few.
Definitions
First, let's get some definitions straight: To use your cloud service with babelforce you need to setup an Integration. This way the interconnection is established. This article shows the example of Freshdesk, however, for each service there will be a different way to authenticate. To actually perform anything within your cloud service, you need to create Automations, either local or global. If you are not 100% sure what local and global Automations are, go back to our 3rd Tutorial.
The exciting part in an Automation is called "Action". Actions can be selected from a drop down list, nested under your cloud service's name. And in the end, they will perform the magic within your cloud service. So let's start right there.
babelforce Actions
All Actions follow the same scheme, so once you understand one, you can use any.
babelforce integrates with other cloud providers via REST API. We explain all about APIs here. But no worries, you don't need to know much about it. However, what is very important to understand is that any action babelforce performs in your cloud software is based on a "call" to your provider's API. So for instance:
You use Salesforce and for every incoming call you want to log a call task. This particular babelforce Action exists when you check in your babelforce account.
As you can guess from the screenshot, you can add a subject, a description and many other fields to your call note.
What you see visually in babelforce is exactly what the Salesforce REST API allows for. Usually, a developer would create some code to create these notes but the babelforce interface takes over the coding work. In other words, babelforce visualizes possibilities a cloud software offers to developers.
Salesforce is a great example for this: their API is very rich and allows for many exciting features. This becomes visible when you check the options you have with the babelforce Salesforce integration. It is very dynamic, you can even create new resources, find any information on any resource you like - as long as you link it to the calling party.
At the same time, this also is our greatest restriction: if your cloud provider has a poor API standard, it might not be possible to work the magic we like to do. But no worries, we usually always find a solution. If you are missing something from the options babelforce offers, please get in touch with our Success and Automation specialist team. We are always happy to take in new Feature Requests.
But let's continue with some of the basics. For every existing call, there will be a separate Action. This is very important to keep in mind. Just creating a new call note won't attache this note to the caller automatically. You have to search for the customer first by using another Action (in our Salesforce example you would use "Advanced Lead/Contact search" to find the user first and then later use the Action "Associate enduser with call").
This principle of executing one call after the other is very important to keep in mind when designing your call flows and automations. As the example above shows, in some cases you can only do B if A has already been completed.
Getting the right information into your cloud service
Whenever you open any babelforce action, you often see a long list with fields that you can fill.
For instance, if you are a Freshdesk user you can create tickets for every new call. The screenshot to the right gives the full overview. You can give the ticket any subject, add a group ID, tags, etc. And very importantly, you can add dynamic values by using placeholders for expressions.
However, even though the babelforce Automation was successfully created, you might still not see tickets being created for every new call. And this is where it gets a bit more complex. Let's stick with Freshdesk, but the same counts for Salesforce and many other helpdesks and CRMs: To create any new record, task or ticket, you need to know which fields are required in your system. For instance, in a standard Freshdesk integration you can only create a new ticket if you add either of the three:
- requester_id
- phone
Moreover, it depends on the source of the ticket which field might be mandatory. These dependencies babelforce does not know and forgetting a mandatory field could result in a resource not being created. For details on Freshdesk you can look at the API documentation: https://developers.freshdesk.com/api/#create_ticket.
You might wonder - how do I get this requester_id? It's different for every caller! Good question. Let's look into this next.
Integration dependent expressions
What makes babelforce so great is its ability to get data from your cloud provider. For instance, if you execute the Salesforce Action "Advanced Lead/Contact search", your Salesforce will return a great deal of data to us which we store in the call's session. We call these "Session Variables" and they are available via Expressions. You remember what expressions are? You can read them out by using these curly brackets, for instance {call.from.number} will print the caller's number. Find our help center articl explaining everything here.
Whenever you perform any kind of search Actions, e.g.
- Salesforce: Advanced Lead/Contact search
- Zendesk: Lookup end-user
- Zoho: Lookup lead
babelforce saves the information that is returned by the CRM is special variables.
For instance, when a contact was found in Salesforce, any of the following expression might be available:
Action | Expression | Example fields |
Contact/Lead lookup/creation | integration.salesforce.enduser.Id | |
Contact/Lead lookup/creation | integration.salesforce.enduser.$contact_lookup_field | Name Source |
Contact/Lead lookup/creation | integration.salesforce.enduser.$lead_lookup_field |
Name |
As this example shows, with the expression {integration.salesforce.enduser.Name} you could print the customer's name as it is stored within your Salesforce. The same counts every field you have in the customer record, e.g. Company, Language, etc. etc. You find a full list of all available Salesforce expressions here.
Knowing this, we can come back to the question we asked above: how can I enter the requester_id in our Freshdesk case? It is just the same. babelforce stores this particular data point in the expression {enduser.id}.
All sounds a bit confusing? Don't worry. For every cloud service we are providing a list of available variables. Just keep in mind that this allows for a very rich way to build your integrations. You can use any information from your own cloud service to build Automations but also to route a call as all these expressions can later on be used within Triggers.
That's it for our first introduction. Check out the integration specific articles to get the hang of it!