Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

External CRM system holds information of VIP customers. When VIP customer calls to service, calls should be routed to a separate ‘VIP service queue’, which has higher priority than the normal service queue. If the caller is not recognized as a VIP, the call will be handled in a normal service queue.

Drawio sketch
lbox
mVer2
zoom1
simple0
zoominComment10
inCommentcustContentId02505834573
pageId1215791782
custContentIdlbox25058345731
diagramDisplayNamesmartrouting_vip_queue_highlevel
1contentVer1
revision1
baseUrlhttps://benemen.atlassian.net/wiki
diagramNamesmartrouting_vip_queue_highlevel
pCenter0
width1164.0000000000002
links
tbstyle
height335

...

  • SmartRouting makes an HTTP POST request to your endpoint

  • Request can be authenticated using the following methods

    • API Key

      • X-Benemen-APIKey: 1234

    • Basic credentials

      • Authorization: Basic b64(username:password)

  • The request body contains a JSON object with the following properties

    • anum - string, E.164-formatted caller phone number

      • “Who’s calling”

    • bnum - string, E.164-formatted target phone number

      • “What number did they call”

    • targetid - OPTIONAL string. It is possible to configure an additional “symbolic” name (or “tag”) when initiating the SmartRouting.

      • It is possible to share the same targetid between e.g. similar kind of queues.

      • Naturally, the customer’s REST API implementation and the configuration in Enreach Core must match and have a contract about the purpose or targetid targeted.

Code Block
POST /your-path
X-Benemen-APIKey: 1234
Content-Type: application/json

{ "anum": "+358501231234", "bnum": "+4612312345", "targetid": "SALES_QUEUE" }

SmartRouting Request Extra Data

It is possible to configure the core to send various extra data. The extra data will be sent in sub key “extradata” as JSON dictionary.

This example shows the default values (there is also an extended set for special cases) as well as two dynamically configured parameters (the key name starts with “DYN_”).

Code Block
languagejson
{
    "anum": "+358501231234", 
    "bnum": "+4612312345", 
    "targetid: "SALES_QUEUE"
    "extradata": {
        "CallId": "d59d7a2f-318a-469e-bdc0-b092a8fedbc1",
        "LegId": "66299cde606b3db6d413cd208f7e5cab@45.66.192.196_br1",
        "CurrQueueId": "1a89fc22-517a-e611-80c9-00505689257e",
        "CurrUserId": "",
        "IsInternalCaller": false,
        "DYN_PAR_Culture": "en-GB",
        "DYN_PAR_Something": "SOMETHING"
    }
}

SmartRouting Response

  • Status code

    • If you generate a result that should be used, respond with 200 OK

      • “Caller matched, here’s what to do”

    • If you successfully process the result but do not have anything to return, return 204 No Content

      • “Don’t know who this is, proceed normally”

  • Response headers

    • Return header Content-Type: application/json

  • Response body

    • Only set the properties you want to touch, do not set your own defaults

      • E.g do not set "Priority" to some "default value" 100. If you do not want to set it to 100, leave it null.

...