CFD Script

davide.chioldo

Titanium Partner
Advanced Certified
Joined
Dec 12, 2024
Messages
3
Reaction score
0
We need to activate a script for remote meter reading for a new customer.
The system is currently running on Calliope and works according to the following flow:

1. Play the audio message idrotelaudio/benvenuti.

2. Forward the call to the IVR IdrotelIVR.

3. Play the audio message idrotelaudio/per_iniziare_prema_il_tasto_cancelletto.

4. If the caller presses #, route the call to CHECK_UTENTE_1ST; otherwise, hang up.

5. Play the audio message idrotelaudio/componga_il_codice_idrotel and wait for a parameter (PARAM1), which is a 9-digit customer code.

6. Perform an HTTP request to:
http://192.168.0.117:9290/default.aspx?arg1=%UNIQUE_ID%&arg2=%CALLER_NUM%&arg3=%PARAM1%

7. UNIQUE_ID is a unique identifier for the call, CALLER_NUM is the caller’s phone number, and PARAM1 is the entered customer code.

8. Based on the response, route the call to CHECK_LETTURA_1ST.

9. Play the audio message idrotelaudio/fornisca_la_lettura_del_contatore and wait for a parameter (PARAM1), which is a numeric value from 1 to 10 digits (meter reading).

10. Perform a second HTTP request to:
http://192.168.0.117:9290/default.aspx?arg1=%UNIQUE_ID%&arg2=%CALLER_NUM%&arg4=%PARAM1%

11. UNIQUE_ID is the unique call identifier, CALLER_NUM is the caller’s phone number, and PARAM1 is the entered meter reading.

12. In case of a successful response, play the audio message idrotelaudio/lettura_acquisita.

13. Hang up the call.
 
  • You can do steps 1 - 4 with a single standard Digital Receptionist.

  • Steps 5 - 8 would be performed by a Call Flow Designer application. But I have a question about what you mean when you say on step 5, "wait for a parameter". Are you waiting for the caller to enter a 9-digit customer code? I'm going to go with that assumption.

  • Steps 9 - 13 are performed by a second Call Flow Designer application

  • For step 12, I assume you mean a success response from the web request? and what happens if the response is not successful?
It is not clear to me why we are transferring the phone call around to different places. Is it not possible to do all these steps from a single Call Flow Designer? I would outline the process this way:
  1. Combine audio file 1 and 2 and play
  2. If the caller does not press #
    1. Drop Call
  3. Else
    1. Play audio file (prompt for 9-digit customer code)
    2. Obtain code
    3. Make web request
    4. If failedl
      1. Route to error logic
    5. If success
      1. Play audio (prompt for meter reading)
      2. Obtain code
      3. Perform web request
      4. if success
        1. Play audio
      5. If failed
        1. Route to error logic
      6. Drop call
Obviously there is far more validation that needs to be performed that is not included in the above, but it seems to me that we can do everything with one Call Flow Designer without needing to transfer the call anywhere else.
 
Last edited:
Thank you for your explanation.

However, we would need the entire process (steps 5–13) to be implemented within a single Call Flow Designer application.
 
All this should be included in a single CFD app, as it's the flow of a single call. You need to build this app. Have you tried using the Call Flow Designer?
 
Yes, I have tried building the application in Call Flow Designer, but I am currently having difficulties.
I would appreciate any guidance or examples on how to structure this properly within a single CFD application.
 
  • Like
Reactions: Evolute IT
You need to add to your outline input validations.
  • What if they enter an invalid customer number?
  • What if in the meter reading they enter 11?
  • What happens if they do not enter anything at all?
  • You need to play a message that the input was invalid, and ask them to try again.
  • You should only give them so many attempts before you fail the call
  • What happens if the CFD cannot reach the web API?
  • Do we log all the errors? Send an email? Play a prompt:

    "We are sorry, something in our process did not complete successfully. A notification has been sent to our technical team. Please try again later"

  • Should we transfer the call to a human?
If I understand the requirements correctly, this is all very feasible to do in the Call Flow Designer. This is probably one of the easier scenarios I see daily. Take a look at the links provided by Ernesto. If you still need help, we can do it for you.

Do you need to support different languages?
 

Members Online Now

No members online now.

Forum statistics

Threads
111,832
Messages
589,285
Members
164,662
Latest member
DejanMDS