Genesys Cloud - Main

 View Only

Sign Up

  Thread closed by the administrator, not accepting new replies.
  • 1.  Collect Data function in Architecture

    Posted 04-15-2022 02:08
    No replies, thread closed.

    Hi

    my business request was : collect user's account number which was six digit.
    user can choose to press # to end the input of account number.
    so I set collect input component like below.

    I found a very interesting thing which I would like to consider it as bug.
    if I press 1234567890, I found that I can collect the input by set participate function both in success path and fail path which really confused me.

    I set in participate data in success path with successAccount parameter, in fail path with successAccount parameter.

    and get both successAccount and successAccount in participate data , both value was 1234567.
    is this a bug ?

    and what's the best practice for this business request ?




    #ArchitectureandDesign

    ------------------------------
    Chengcheng Zhang
    FIL Fund Services (Bermuda) Limited
    ------------------------------


  • 2.  RE: Collect Data function in Architecture

    Posted 04-24-2022 07:23
    No replies, thread closed.
    I tend to avoid, and advise clients to avoid using # to end input unless a real need.

    If the account number is 6 digits why not set the collect to Exact instead?
    If you wanted ability to not enter account number (i.e. they don't know it) then short timeout or all Just # checkbox on the collection node
    ​​

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



  • 3.  RE: Collect Data function in Architecture

    Posted 04-26-2022 20:13
    No replies, thread closed.
    Hi Brown

    thank you for your reply.
    yes, it's business request that need to use # to end input, so I cannot set the collect to exact.



    ------------------------------
    Chengcheng Zhang
    FIL Fund Services (Bermuda) Limited
    ------------------------------



  • 4.  RE: Collect Data function in Architecture

    Posted 04-25-2022 05:11
    No replies, thread closed.
    Hi Chengcheng Zhang,

    If your account number is exactly 6 digits then i don't think it is necessary to collect 7 digits and even a pound(#). you can collect exact 6 digits and then move on with next state.
    Regarding the input 1234567890, when we enter this input it will consider 1234567 as input to this dialog state and then rest of the digits will be carried to next states(because of key ahead option). Here is is accepting 7 digit length number because your grammar range is 6 to 7 digits in length. If you have any validation checks that validates your input then it might help check extra one digit other than (#)pound if you see it then you can consider it as a invalid entry, reset the successAccount variable with empty or NOT_SET  and then go back to same state to collect the input again. It is not a bug, it is working as per the application design. If you do not want to consider excess digits then you can simply play a prompt with barge-in checked, then it will drop the excess digits. 

    Hope this helps.



    ------------------------------
    Ramu P
    Global Technology Solutions, LLC
    ------------------------------



  • 5.  RE: Collect Data function in Architecture

    Posted 04-26-2022 20:38
    No replies, thread closed.
    Hi Ramu 

    thank you so much for your reply.
    account number was exactly 6 digits, but our business request is that allow user to end the input with #, so seems cannot set it to ​​exactly 6 digits.

    I did not understand what's your mean by saying rest of the digits will be carried to next states?
    how to collect next states data? what was current status and next states ?

    in this case, if user input 123456790, as you said, Genesys will consider the input as 1234567, but why and how it go to both success path and fail path ?



    ------------------------------
    Chengcheng Zhang
    FIL Fund Services (Bermuda) Limited
    ------------------------------



  • 6.  RE: Collect Data function in Architecture

    Posted 04-27-2022 02:26
    No replies, thread closed.
    Hi Chengcheng Zhang,

    If the business wants # as terminating char then we have to use range to collect input (6 to 7) and as per the latest screen shot you are setting terminating DTMF as # and you are not including it on the result, so that means we have to check always caller input account number length is equal to 6. In case if the customer enter 1234567 it is also valid as per range, however, i'm sure that you have a check for input length and you are going back to collect the account number again. Here as per my understanding when we enter 1234567890, it is considering 1234567 as valid input and it will take success path, and here length is 7 and if you are going back to collect number again, then 890 will be considered as user input as second attempt, so it will wait for inter digit timeout (number of seconds) before it throws a nomatch, because the valid length is 6 or 7 digits. So, it will take the failure path in this case.

    In case if you want to discard the excess digits when it got 7 or more digits in length then place a play audio task and add a blank 100 ms audio with unchecking the "Enable Barge-in" check box. this will discard or flush out the excess digits, and when we go back to collect account number state it will also play the prompt which is set and it will wait for your input.

    Hope this explanation helps you to understand the scenario.

    The fix you mentioned is also having similar issue when you enter more than 32 digits, i.e., if you enter 35 digits then 32 will be considered as input for the first time and the rest of 3 digits will be carried to next dialog state(i.e., either a menu or collect input task).

    Here is the sample screen shot to show how to mimic the discarding excess digits:


    Sample app flow :

    ​​

    ------------------------------
    Ramu P
    Global Technology Solutions, LLC
    ------------------------------



  • 7.  RE: Collect Data function in Architecture

    Posted 05-06-2022 04:08
    No replies, thread closed.
    Hi Ramu

    thank you so much for your detailed explanation.
    Yes, I use Length(Task.InputAccountNumber)==6 to check user's input in success path.

    We allow user try to input correct account number twice. if user input wrong account number, then user can try again. according to your explanation, if user input 1234567890 for the first time, Genesys will automatically separate user's input to two attempt, the first attempt was considered as 1234567 which go to success path, the second attempt was considered as 890 which go to failure path, is that right ?
    but I collect 1234567 in failure path as the same value in success path when input 1234567890.

    and we would like to ask user to input again if user input 7 or more digits instead try to split 6 digits from user's input.

    for the solution I mentioned that expand the input range to 32, we assume that customer would not input so long digits by phone.



    ------------------------------
    Chengcheng Zhang
    FIL Fund Services (Bermuda) Limited
    ------------------------------



  • 8.  RE: Collect Data function in Architecture

    Posted 04-27-2022 02:48
    No replies, thread closed.
    Hi 

    I did not understand what's your mean by saying rest of the digits will be carried to next states?
    >> I mean next collect input task or a menu from your call flow path. it might also be recollect your account number collect input task. Usually in general IVR terminology when ever are collect an input or playing prompt, or a menu we call it as state or a dialog. Sorry for the confusion. In Genesys we call it as a task. 
     
    how to collect next states data? what was current status and next states ?
    >> Not sure what is there or defined in your call flow, if you want to understand more then give a try having two collect input tasks one after the another and enter 123456#123456. Then first 123456# will be considered as valid input for first collect input task and the 2nd 123456 will be considered as an input to second collect input task. 

    in this case, if user input 123456790, as you said, Genesys will consider the input as 1234567, but why and how it go to both success path and fail path ?
    >> As per the grammar or length range it will consider 1234567 as input as first attempt, and if you are checking for length is not 6 and recollecting account number then 90 will be considered as retry(based on your loop counter). If you want to see how it is executing and keying ahead to collect input task then build a sample app flow and test it in debug mode. that might help you to understand the flow execution and why it is going to failure path. if your failure path is simply existing from loop and disconnect then it will disconnect or if the failure path is going back to loop to collect acc number then you will see it is going back to loop and checking loop condition. If you place a play audio task with 100 ms blank audio with Barge-in unchecked, when the acc num length is not 6 then it will not skipping the loop check playback while you are testing the app in debug mode. Other wise you might not even here that it is checking loop condition.

    ------------------------------
    Ramu P
    Global Technology Solutions, LLC
    ------------------------------



  • 9.  RE: Collect Data function in Architecture

    Posted 04-26-2022 20:52
    No replies, thread closed.
    finally, I solve this issue by set the range of input to maximum.
    then in the success path, use Length(Task.InputAccountNumber)==6 to select exact 6 digits of user's input.
    but I do not think that this is not best solution.

    ------------------------------
    Chengcheng Zhang
    FIL Fund Services (Bermuda) Limited
    ------------------------------



  • 10.  RE: Collect Data function in Architecture

    Posted 09-08-2023 08:58
    No replies, thread closed.

    I do find this collect input misleading.

    Even if you select # to terminate and include in response. The entry will take the minimum number of digits from the range (6-7 in above scenario) and return the 6 digits WITHOUT caller needing to actually press the #

    As indicated, you can also enter 1234567 and it would go the success path.

    For me, if you state a terminating character, that should be forced to be a success route. It causes confusion and you have to perform a check following input on what was collected.



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