198 lines
4.5 KiB
JSON
198 lines
4.5 KiB
JSON
{
|
|
"description": "Basic SMS and Call escalation",
|
|
"states": [
|
|
{
|
|
"name": "Trigger",
|
|
"type": "trigger",
|
|
"transitions": [
|
|
{
|
|
"next": "send_alert_from_sms",
|
|
"event": "incomingMessage"
|
|
},
|
|
{
|
|
"next": "describe_alert_from_call",
|
|
"event": "incomingCall"
|
|
},
|
|
{
|
|
"event": "incomingConversationMessage"
|
|
},
|
|
{
|
|
"event": "incomingRequest"
|
|
},
|
|
{
|
|
"event": "incomingParent"
|
|
}
|
|
],
|
|
"properties": {
|
|
"offset": {
|
|
"x": 0,
|
|
"y": 0
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "send_alert_from_sms",
|
|
"type": "make-http-request",
|
|
"transitions": [
|
|
{
|
|
"next": "send_alert_from_sms_success",
|
|
"event": "success"
|
|
},
|
|
{
|
|
"next": "send_alert_from_sms_fail",
|
|
"event": "failed"
|
|
}
|
|
],
|
|
"properties": {
|
|
"offset": {
|
|
"x": -180,
|
|
"y": 250
|
|
},
|
|
"method": "POST",
|
|
"content_type": "application/json;charset=utf-8",
|
|
"body": "{\"from\":\"{{trigger.message.From}}\",\"message\":\"{{trigger.message.Body}}\"}",
|
|
"url": "<YOUR_INTEGRATION_URL>"
|
|
}
|
|
},
|
|
{
|
|
"name": "send_alert_from_sms_success",
|
|
"type": "send-message",
|
|
"transitions": [
|
|
{
|
|
"event": "sent"
|
|
},
|
|
{
|
|
"event": "failed"
|
|
}
|
|
],
|
|
"properties": {
|
|
"offset": {
|
|
"x": -410,
|
|
"y": 590
|
|
},
|
|
"service": "{{trigger.message.InstanceSid}}",
|
|
"channel": "{{trigger.message.ChannelSid}}",
|
|
"from": "{{flow.channel.address}}",
|
|
"message_type": "custom",
|
|
"to": "{{contact.channel.address}}",
|
|
"body": "Alert sent successfully"
|
|
}
|
|
},
|
|
{
|
|
"name": "send_alert_from_sms_fail",
|
|
"type": "send-message",
|
|
"transitions": [
|
|
{
|
|
"event": "sent"
|
|
},
|
|
{
|
|
"event": "failed"
|
|
}
|
|
],
|
|
"properties": {
|
|
"offset": {
|
|
"x": -60,
|
|
"y": 590
|
|
},
|
|
"service": "{{trigger.message.InstanceSid}}",
|
|
"channel": "{{trigger.message.ChannelSid}}",
|
|
"from": "{{flow.channel.address}}",
|
|
"message_type": "custom",
|
|
"to": "{{contact.channel.address}}",
|
|
"body": "Failed to send alert: Status({{widgets.send_escalation.status_code}})"
|
|
}
|
|
},
|
|
{
|
|
"name": "describe_alert_from_call",
|
|
"type": "gather-input-on-call",
|
|
"transitions": [
|
|
{
|
|
"event": "keypress"
|
|
},
|
|
{
|
|
"next": "send_alert_from_call",
|
|
"event": "speech"
|
|
},
|
|
{
|
|
"event": "timeout"
|
|
}
|
|
],
|
|
"properties": {
|
|
"speech_timeout": "auto",
|
|
"offset": {
|
|
"x": 350,
|
|
"y": 240
|
|
},
|
|
"loop": 1,
|
|
"finish_on_key": "#",
|
|
"say": "Describe the alert to send. Press pound when finished.",
|
|
"stop_gather": true,
|
|
"gather_language": "en",
|
|
"profanity_filter": "true",
|
|
"timeout": 60
|
|
}
|
|
},
|
|
{
|
|
"name": "send_alert_from_call",
|
|
"type": "make-http-request",
|
|
"transitions": [
|
|
{
|
|
"next": "send_alert_from_call_success",
|
|
"event": "success"
|
|
},
|
|
{
|
|
"next": "send_alert_from_call_fail",
|
|
"event": "failed"
|
|
}
|
|
],
|
|
"properties": {
|
|
"offset": {
|
|
"x": 360,
|
|
"y": 590
|
|
},
|
|
"method": "POST",
|
|
"content_type": "application/json;charset=utf-8",
|
|
"body": "{\"from\":\"{{trigger.call.From}}\", \"message\":\"{{widgets.describe_alert_from_call.SpeechResult}} \"}",
|
|
"url": "<YOUR_INTEGRATION_URL>"
|
|
}
|
|
},
|
|
{
|
|
"name": "send_alert_from_call_success",
|
|
"type": "say-play",
|
|
"transitions": [
|
|
{
|
|
"event": "audioComplete"
|
|
}
|
|
],
|
|
"properties": {
|
|
"offset": {
|
|
"x": 90,
|
|
"y": 900
|
|
},
|
|
"loop": 1,
|
|
"say": "Alert sent successfully"
|
|
}
|
|
},
|
|
{
|
|
"name": "send_alert_from_call_fail",
|
|
"type": "say-play",
|
|
"transitions": [
|
|
{
|
|
"event": "audioComplete"
|
|
}
|
|
],
|
|
"properties": {
|
|
"offset": {
|
|
"x": 520,
|
|
"y": 900
|
|
},
|
|
"loop": 1,
|
|
"say": "Failed to send alert: Status ({{widgets.send_alert_from_call.status_code}})"
|
|
}
|
|
}
|
|
],
|
|
"initial_state": "Trigger",
|
|
"flags": {
|
|
"allow_concurrent_calls": true
|
|
}
|
|
}
|