This article recommends two types of configurations that should be used to ensure best performance and reliability when using babelforce event-trigger-actions.
Many of our customers use the event "Call finished" to perform an action at the end of a call, e.g. to add a tag or content to a ticket when a call ends or to add a recording to a ticket or send an email with a URL for a recording.
There are a few things to be aware of when trying to achieve such use cases:
1. Call finished is an event that fires for each call leg. That means if an agent and a consumer speak on the phone, there are 2 legs of the call: consumer leg (external) and the agent leg (internal). So the event "Call finished" will fire two times depending on which call leg finishes first.
2. Both legs, the external leg with consumer and internal with the agent, do not have the exact same information and properties. For example, only the consumer leg stores the information about a ticket in your case management that was created for the call. Similarly, the call recording URL might not be available to each leg.
To have best performance, we recommend using the following configurations.
If you want to add a tag or content to a ticket or email at the end of a call, then use Call Finished with a trigger and in the trigger create a condition using expressions to specify exactly what call leg to use. For example the following trigger conditions ensure that only inbound calls with domain external (i.e. the caller is not an agent) are considered to fulfill the trigger:
Then you can add in whatever kind of conditions you want to actually use for your use case. In the example above the trigger also tests to see if an agent was not on the call; if an agent was connected, then the agent ID, name etc get associated with the inbound/external leg. The use case would be for if there was no agent associated with the inbound call, then the call should be tagged "abandoned" or "missed" or something similar.
The second case we mentioned which is worth watching out for is where you want to add a call recording to a ticket. In this case, it is possible to use Call Finished as the event, but like above then you should use a trigger that ensures that only one leg of the call causes the trigger to fire, namely the inbound call leg.
But a better option for adding a recording is to use the event "Recording finished". In this case the event fires every time a recording is completed and so you can be sure that your action is only sent off once. Also the recording file/URL itself is definitely in the current context at this stage.
Using Recording finished also allows you to differentiate using a trigger between recordings made within your IVRs/call-flows and recordings of calls with agents. Here is an example where the event is used twice but with a trigger to differentiate between the cases for voicemail and for all recordings with agents:
This approach also has the advantage that a recording like a voicemail done in a call flow will be reliably added to a call even though the caller hangs up in the call flow app that takes the recording.
Finally, if you use or intend to use outbound call recording, then it is strongly advised to apply configurations of the above forms to ensure that your event-triggers fire appropriately for inbound and outbound calls.