When creating a custom HTTP callback action, babelforce enables you to send variables (via Automations) to an external application (like Google or any other webhook you are using). It's up to you to select which of these data sets (buckets) you need and which data points your application should be processing.
Depending on the Automation you create, babelforce will return a certain set of values you can use in your external application.
All you have to do is select the bucket that contains the information you want to send.
In the screenshot to your right you see the available buckets:
- Call
- SMS
- Agent
- Queue
At the end of the article you find a print-out of the values each bucket contains. We selected three events for demonstrating how the content of the bucket varies.
However, let's now look at a couple of use cases to make this less theoretical:
First example:
Whenever you receive an inbound call, you would like to know the number of the caller and the time it was created.
In this case, you need to use the variables
- call.from
- call.dateCreated (UNIX timestamp)
As they are available in the Call bucket, there's not more to do here see the table here (or scroll down to "Bucket on Inbound Call"). There are no other buckets available for this Automation.
Second example:
Whenever a call successfully connected to an agent (bridged), you want to know which agent took the call and in which queue the call waited. Also, you want to know the call wait time before it was picked up.
In this case, you use the variables
- agent.name
- queue.name
- call.duration
To see which variables are available in the Call, Agent and Queue bucket on "Call bridged", see the table here (or scroll down to "Bucket on Call Bridged").
Third example:
For every received SMS you want to see who sent the SMS to which of your numbers.
In this case, you use the variables
- sms.from
- sms.to
To see which variables are available in the SMS bucket on the event "SMS received", see the table here (or scroll down to "Bucket on SMS received"). There are no other buckets available for this event.
Creating customized variables that are not included in the default buckets
In some cases you might need other data points than those that are send with the buckets by default. Take for instance agent presence and the group an agent is in. Both data points are not send with the default agent bucket on call bridged.
If you want to do reporting on these fields, you need to add so called "Key-Values".
How they are processed depends on the web app you are using. Please see the examples provided in the help center or contact support for more details.
Bucket on Inbound Call
Call (bucket) | Variable |
id | call.id |
parentId | call.parentId |
sessionId | call.sessionId |
conversationId | call.conversationId |
dateCreated | call.dateCreated |
dateEstablished | call.dateEstablished |
dateFinished | call.dateFinished |
lastUpdated | call.lastUpdated |
state | call.state |
finishReason | call.finishReason |
from | call.from |
to | call.to |
type | call.type |
source | call.source |
domain | call.domain |
duration | call.duration |
anonymous | call.anonymous |
recordings | call.recordings |
Bucket on Call Bridged
Call (bucket) | Variable |
id | call.id |
parentId | call.parentId |
sessionId | call.sessionId |
conversationId | call.conversationId |
dateCreated | call.dateCreated |
dateEstablished | call.dateEstablished |
dateFinished | call.dateFinished |
lastUpdated | call.lastUpdated |
state | call.state |
finishReason | call.finishReason |
from | call.from |
to | call.to |
type | call.type |
source | call.source |
domain | call.domain |
duration | call.duration |
anonymous | call.anonymous |
recordings | call.recordings |
bridged | call.bridged |
id | call.bridged.id |
name | call.bridged.name |
number | call.bridged.number |
queueId | call.bridged.queueId |
queueName |
call.bridged.queueName
|
agent | call.agent |
id | call.agent.id |
name | call.agent.name |
number | call.agent.number |
queue | call.queue |
id | call.queue.id |
name | call.queue.name |
Agent (bucket) | |
id | agent.id |
sourceId | agent.sourceId |
dateCreated | agent.dateCreated |
lastUpdated | agent.lastUpdated |
name | agent.name |
enabled | agent.enabled |
state | agent.state |
number | agent.number |
Queue (bucket) | |
id | queue.id |
dateCreated | queue.dateCreated |
lastUpdated | queue.lastUpdated |
enabled | queue.enabled |
defaultRingTimeout |
queue.defaultRingTimeout
|
wrapUpTime | queue.wrapUpTime |
name | queue.name |
maxDialCount | queue.maxDialCount |
dialOrder | queue.dialOrder |
dialOrderTimePeriod |
queue.dialOrderTimePeriod
|
maxSize | queue.maxSize |
size | queue.size |
stats | queue.stats |
active | queue.stats.active |
bridged | queue.stats.bridged |
queued | queue.stats.queued |
Bucket on SMS received
SMS (bucket) | Variable |
id | sms.id |
dateCreated | sms.dateCreated |
type | sms.type |
from | sms.from |
to | sms.to |
state | sms.state |
source | sms.source |
text | sms.text |
conversationId | sms.conversationId |
Beeceptor
A nice way to test the data that is sent via buckets and key-values is the tool beeceptor. Give it a try!
Related to
Comments
0 comments
Please sign in to leave a comment.