Genesys Cloud - Main

 View Only

Sign Up

  Thread closed by the administrator, not accepting new replies.
  • 1.  Case expression to route call based off DNIS in data table

    Posted 02-08-2023 09:11
    No replies, thread closed.
    Hello,

    We want to route calls to different flows based off the DNIS that the caller dialed.  We have a data table with our DNIS numbers and the call flow name that it corresponds to.  We are going to route all calls for a particular "brand" to a common flow, then within that flow use a switch with a case expression to route them to the proper flow and/or queue based off the number they dialed.  We would like to give the business the ability to change which queue the call goes to simply by updating the information in the data table.  Here is a sample of our data table:

    ColumnA          ColumnB
    7007007000    FlowA
    8008008000    FlowB
    9009009000    FlowC
    We have a variable to store the DNIS that the caller dialed.  We cannot simply say lookup that variable and if it's in this table go to FlowA, because all 3 numbers in this case would go to FlowA.  What we want to do is match the DNIS the caller dialed against ColumnA in our data table and return the matching value in ColumnB and say basically "IF the caller dialed 8008008000 THEN we want to send it to Case2 (FlowB)".  Similarly, IF the caller dialed 7007007000 THEN we want to send it to FlowA and so on.

    Currently our case statement is hard coded with the number like this: Call.CalledAddressOriginal == "+18008008000".  However, this lacks the flexibility because we would need to modify our call flow if the DNIS changes.  We want to get to a point where all we have to do is modify the data table and not need to change the flow at all.  I believe all I need to find is the right expression for a case statement that would say "if the caller dialed <number in column A> then we need to send to the flow to the case matching <value in column B>.  Can someone help with the right expression for this use case?

    #ArchitectureandDesign
    #Routing(ACD/IVR)
    #SystemAdministration

    ------------------------------
    Josh Steinkamp
    CHRISTIAN BROADCASTING NETWORK
    ------------------------------


  • 2.  RE: Case expression to route call based off DNIS in data table

    Posted 02-08-2023 09:46
    No replies, thread closed.
    Unfortunately the transfer to flow object does not support an expression for the Flow name, you can only select from the known list.
    You cannot dynamically set to a flow name from a reference table.
    GC probably need another "Find" object for Flows, to allow a search to get the ID.

    Wanted to do the same in the past.

    ------------------------------
    Simon Brown
    Maintel Europe Limited
    ------------------------------



  • 3.  RE: Case expression to route call based off DNIS in data table

    Posted 02-08-2023 10:07
    No replies, thread closed.
    I'm not sure that's the same thing.  It's not really the transfer to flow object - it's the expression on a switch case statement.  From the case expression I want to lookup a data table for the DNIS that the caller dialed, and if a match is found I then want to route it to the name of the flow that matches that DNIS in the data table.  So we're just matching a case based based on that information, then below that case we will use the transfer to flow object to send it to the flow that we want.

    ------------------------------
    Josh Steinkamp
    CHRISTIAN BROADCASTING NETWORK
    ------------------------------



  • 4.  RE: Case expression to route call based off DNIS in data table
    Best Answer

    Posted 02-08-2023 11:20
    No replies, thread closed.

    Use a switch that evaluates DNIS. For each case in the switch you send to the flow you want based on the DNIS for each switch case. You can not Transfer to Flow using a variable. 

    If you are using the data table, the key would be DNIS (ColumnA) and it would return the Flow(ColumnB) back to the architect flow. Store that as a variable i.e Task.FlowName. You could use a switch to evaluate flow name as we. i.e. Task.FlowName == "FlowA". If it matches, send it to a specific reusable task that transfers to that flow. 



    ------------------------------
    Blake Anderson | Sr. Telecom Engineer
    BEST BUY CO., INC.
    ------------------------------



  • 5.  RE: Case expression to route call based off DNIS in data table

    Posted 02-08-2023 11:38
    No replies, thread closed.
    Thank you!  This is what I ended up doing and it seems like it's going to work well.

    ------------------------------
    Josh Steinkamp
    CHRISTIAN BROADCASTING NETWORK
    ------------------------------



  • 6.  RE: Case expression to route call based off DNIS in data table

    Posted 02-08-2023 11:44
    No replies, thread closed.
    As Blake mentioned then, example flow section below.
    You would have your data table lookup above decision object then the targets with a first case matching true
    I am using a destination string, and a transfer to acd, but the principle is the same where you would use a dnis expression


    Hope that helps

    ------------------------------
    Simon Brown
    Maintel Europe Limited
    ------------------------------