This section includes instructions to help you create your first basic contact flows. Start with the Unattended Contact Flow before proceeding to the Attended Contact Flow.

Unattended Contact Flow

This contact flow dials a customer, performs answering machine detection (AMD), and routes to a message depending on the outcome. The contact flow created here could be applied to a message-blasting campaign where no agents sign in and no IVR navigation is needed. These instructions introduce Connectors, simple Modules, and the process of creating a contact flow. The end contact flow will look like this:

  1. Access
    1. Open the Contact Flow Engine from the Configure tab within the Messaging section.  If this tool is not visible you do not have the correct User access - contact your administrator if this is in error.
  2. Create a Completely New Contact Flow
    1. Click Add
    2. Assign the name "Basic Unattended".
    3. Select OK.
  3. First Module:
    1. Add the introduction module from the Basic module pane by dragging it into the canvas (dotted field).  This module is where Answering Machine Detection occurs.
    2. Name the module "Intro".
    3. Make sure there is a check in the "Is First Module?" box. 
    4. Select OK.
  4. Second Module:
    1. Add the live_person module to the canvas.  This is used if a live person is detected.  Position the module below the Intro module. 
      1. The phrases (pieces of audio or TTS played to customer) and options in the "Message Properties" tab is what will be defaulted to the Messages created off this contact flow. They can be adjusted now or when you create and customize the Message.
    2. Name the module "Live".
    3. Select OK.
  5. First Connector:
    1. Select the Connector button from the bottom left.  This will open your Connector Setup screen.
    2. Choose Intro from the Source Module dropdown.  This tells the connector where the logic flows from.
    3. Choose Live from the Target Module dropdown.  This tells the connector where the logic flows to.
    4. Choose "Is Answering Machine" from the Event dropdown. This tells the connector that something happened during the Source Module that it should be aware of, in this case looking for sounds associated with an answering machine.
    5. The Value option will appear.  The Event occurring during the Source Module will have some kind of outcome that you can select now.  Because the Event was looking for an answering machine and our Target Module is Live (for live parties), select "No," as only live parties should move to the Target module at this point.
    6. Select "Hung Up in Opening (459)" from the Result dropdown.  This tells the system what code to use in reporting if the connection is severed before completing the next module (don't listen to the full message). The next connector will set the Result if the module does complete (listens to the full message).
    7. Click OK.
    8. Reposition the modules by selecting with the mouse and dragging.  Place them where you want that makes module titles and the connector labels legible. 
  6. End Call module for Live
    1. Expand the "Advanced" module pane, at the bottom left, to view a larger group of modules.
    2. Drag the end_call module to the canvas and name "End" with an underscore between words as spaces are not allowed in module names.  This module terminates the call if the customer does not hang up on their own or the prior module does not do it.
    3. Click OK.
  7. Add final connector for Live
    1. Select Connector, setting Live as Source and End as Target. 
    2. Set the Event as Success and the Result as "Listened (316)".  When a customer successfully listens to the entire message the system will assign the Listened code.
    3. Click OK, wrapping up the Live side of the contact flow.
  8. Add an Answering Machine module
    1. Drag the machine module near the intro module already part of your contact flow.  This module is used to set the messaging if an answering machine is detected.  If the module completes (whole message played) the system code "Machine, Left Message (461)" is assigned.
    2. Name the module "Machine" and click OK.
  9. Add Answering Machine Connector
    1. Select Connector, setting Intro as Source and Machine as Target. 
    2. Choose "Is Answering Machine" from the Event dropdown.  This time, set the value as Yes as it is an answering machine.
    3. Set the Result as "Partial Message Left (315)".  If the connection is lost before the AM module completes this is the result code applied.
  10. Add connector from Machine
    1. Select Connector, setting Machine as Source and End as Target.
    2. Choose "Success" from the Event dropdown.
    3. Set Result as "Machine, Left Message (461)".  With the complete message left this will be the result code applied.
  11. Saving and enacting contact flow
    1. Click on the Save button, then Deploy If there is an existing contact flow with the name you specified an error will ask you to select a different name.
    2. Navigate to the Message Editor tool and (following the instructions there) create a message using your new contact flow.  You can customize the phrases used to have different audio applied. 
    3. Assign this Message to an unattended service, load a test file, and evaluate the outcome.  Adjust the Message as desired.

Attended Contact Flow

This contact flow dials a customer and asks for input confirming identity, then branches based on their keypress response.  Depending on customer selection the call will jump into a "wait" loop, play one of two messages, or route from the IVR to an agent signed into the service.  This example illustrates IVR selection branching, agent routing, and variable messaging.  We will begin with the Basic Unattended contact flow we created as the starting point.  Your final product will look something like this:

  1. Create a contact flow from the existing contact flow:
    1. Navigate to the Basic Unattended contact flow you created in the Contact Flow Engine.
    2. Click the Copy icon to create a clone of this contact flow to manipulate and build on. 
      1. Assign the New Contact Flow Name “Basic Attended.”
      2. Give the New Contact Flow Description “Outbound IVR with branching logic.”
      3. Hit Copy and you will receive a message saying the clone was successful. 
  2. Remove unneeded modules/connectors:
    1. Select the End_Live and Live modules and click the Delete Module(s)/Connector(s) button.  This removes the modules and attached connectors while other modules remain intact.
  3. ID Confirmation Module and connector:
    1. Drag the identification module to the field, naming it “ID_Check”.  View the Message Properties tab to see what phrase will play and the outcomes the customer is encouraged to select – 1 if they are the correct party, 2 if they are not.
    2. Click OK to add the module.
    3. Select Connector, setting Intro as Source and ID_Check as Target. 
    4. Choose “Is Answering Machine” from the Event dropdown and Value toggle of “No”.
    5. Set Result of “Hung up in opening (459)”.
    6. Click OK.
  4. Right Party Selection - If the customer indicated they are the customer, or enters an invalid key, we want an agent to handle the call:
    1. Drag the operator_transfer module to the field, naming it “Agent_transfer”.  With this module, the system will attempt to bridge to an agent.  Click OK.
    2. Connector: ID_Check -> Agent_Transfer
      1. Event “Key Press,” Value= “1”.  This means that if in the Source module (ID_Check) the person hits the 1 key this connector will move them to the Target module (Agent_Transfer).
      2. Result “Operator Transfer (476)”
    3. Connector: ID_Check -> Agent_Transfer
      1. Event “No Match”.  This means that if in the Source module (ID_Check) the person hits a key that isn’t defined by another connector it will move them to the Target module (Agent_Transfer).  This and the No Input event should be applied in all menu key press situations.   
      2. Result “Operator Transfer (476)”
    4. Connector: ID_Check ->Machine
      1. Event “No Input”.  This means that if in the Source module (ID_Check) if no key presses are entered, the call will move to the Machine message.  
      2. Result “Listened (316)”
  5. Agent Unavailability Message – if the customer waits on hold until the service’s Max Wait time they will receive a message if supplied:
    1. Drag the live_person module to the canvas, name “Agent_Unavailable,” and click OK.
    2. Connector: Agent_Transfer -> Agent_Unavailable
      1. Event “Agent Not Available”
      2. Result “Operator Transfer (Abandoned Max Hold Time) (277)”
  6. Wrong Party Routing – if the customer indicates they are not who you are looking for, the IVR  will route based on key press (defined by Connectors).  In this example we will use options key 1 (wait for the right person), key 2 (the right person isn’t there), key 3 (wrong number), invalid key, or no input:
    1. Drag a menu module to the canvas and name it “Alternate_Party_Menu”.  Position the module to the right of Agent_Transfer.  Here your messaging will give the customer information on which key to press to proceed.
    2. Connector: ID_Check -> Alternate_Party_Menu
      1. Customers get to this step when they select 2 from the ID_Check (indicating they weren’t the right person).
      2. Event “Key Press,” Value = “2”
      3. Result “Hung Up After Validation (1032)”
    3. Wait for the right party (key 1):
      1. Drag wait_for_patient to canvas, name “Wait_for_Customer,” and click Ok. In the Message Properties tab, you can set the language for the “Wait” message and the number of times it will play the message waiting for the customer.
      2. Connector: Alternate_Party_Menu -> Wait_for_Customer
        1.  To enter the wait loop the customer will select key 1.
        2. Event “Key Press,” Value = “1”
        3. Result “Disconnected (Timed Out During Validation) (1031)”
      3. Connector: Wait_for_Customer -> Agent_Transfer
        1. To EXIT the wait loop the customer will select key 1.
        2. Event “Key Press,” Value = “1”
        3. Result “Operator Transfer (Caller Abandoned Before Connect) (280)”
      4. Connector: Wait_for_Customer -> Agent Transfer
        1. To EXIT the wait loop the customer may enter an invalid key.
        2. Event “No Match”
        3. Result “Operator Transfer (Unidentified) (639)”
      5. Drag live_person module to the canvas below Wait_for_Customer, the name “Not_Available_Message”.  Add default messaging a spouse or other person answering the customer’s phone should hear.
      6. Connector: Wait_for_Customer -> Not_Available_Message
      7. The IVR exits when the Wait message loops out.
      8. Event “No Input”
      9. Result “Customer Not Available (318)”
    4. Route to message if alternate party presses key 2 (the right person isn’t there):
      1. Connector: Alternate_Party_Menu -> Not_Available_Message
        1. Event “Key Press,” Value = “2”
        2. Result “Customer Not Available (318)”
    5. Create and route to message if alternate party presses key 3 (wrong number):
      1. Drag the live_person module to the canvas below Alternate_Party_Menu, the name “Wrong_Party_Message”.  Add the default messaging a wrong number dialed should hear.
      2. Connector: Alternate_Party_Menu -> Wrong_Party_Message
        1. Event “Key Press,” Value = “3”
        2. Result “Call Recipient Says Wrong Number (498)”
    6. Route to the agent if alternate party presses invalid key:
      1. Connector: Alternate_Party_Menu -> Agent_Transfer
        1. Event “No Match”
        2. Result “Operator Transfer (Caller Abandoned Before Connect) (280)”
    7. Route to message if alternate party presses no key:
      1. Connector: Alternate_Party_Menu -> Not_Available_Message
        1. Event “No Input”
        2. Result “Customer Not Available (318)”
  7. Saving and enacting contact flow
    1. Click on the Save button, then Deploy
    2. Navigate to the Message Editor tool and (following the instructions there) create a message using your new contact flow.  You can customize the phrases used to have different audio applied. 
    3. Assign this Message to an attended service, load a test file, login as an agent, and evaluate the outcome.  Adjust the Message as desired.

Basic Inbound Contact Flow

This contact flow directs the routing of customer calls through an inbound IVR. A customer’s call will undergo a series of condition checks. If the call occurs outside of open hours, or if there are no agents signed in, the call will be transferred to a voicemail number. During open hours callers will be prompted for language selection, hear messaging, and be connected to available agents. The following directions outline the creation of the default inbound contact flow seen in the diagram below: 

  1. Access
    1. Open the Contact Flow Engine from the Configure tab within the Messaging section.  If this tool is not visible you do not have the correct User access - contact your administrator if this is in error.
  2.  Create a New Contact Flow
    1. Click Add.
    2. Assign a name, “Basic Inbound.”
    3. Select OK.
  3. First Module:
    1. Add the check_call_center module from the Advanced modules pane by dragging it into the canvas.  This module is where Inbound Hours for the inbound service are checked to determine if the call is taking place during the defined Inbound Hours.
    2. Name the module “InboundHours.” 
    3. Make sure there is a check in the “Is First Module?” box.
    4. Select OK.
  4. Second Module:
    1. Add the check_agent module from the “Advanced” modules into the canvas.  This is used to determine whether agents are logged in or not. 
    2. Name the module “AgentAvailability.”
    3. Select OK.
  5. First Connector:
    1. Select the Connector button from the bottom left. 
    2. Choose InboundHours from the Source Module dropdown.  This tells the connector where the logic flows from.
    3. Choose AgentAvailability from the Target Module dropdown.  This tells the connector where the logic flows to.
    4. Choose “Call Center Open” from the Event dropdown. 
    5. Select Hung Up in Opening (459) from the Result dropdown.
    6. Select OK.
  6. Third Module:
    1. Add the alt_language module from the Advanced modules into the canvas. This is used to provide an alternate language choice to the caller, usually Spanish however the language/voice talent can be selected in the message property portion of this module.  Generally, the default_language is set to “Julie" which is the American English female voice talent and the alt_language is set to "Juanita" which is the Spanish female voice talent. 
    2. Name the module “alt_language.”
    3. Select OK.
  7. Second and Third Connectors:
    1. Select the Connector button.
    2. Choose AgentAvailability from the Source Module dropdown.
    3. Choose alt_language from the Target Module dropdown.
    4. Choose “Agent Available” from the Event dropdown.
    5. Select Hung Up in Opening (459) from the Result dropdown.
    6. Select OK.
    7. Repeat this process for the third connector changing the Event to “Agent Not Available”
    8. Select OK.
  8. Fourth Module:
    1. Add the lookup module from the Advanced modules into the canvas.  This is used to retrieve stored information about the telephone number.
    2. Input list of service ids to be used for lookup.
    3. Name the module “ani_lookup.”
    4. Select OK.
  9. Fourth, Fifth, and Sixth Connectors:
    1. Select the Connector button.
    2. Choose alt_language from the Source Module dropdown.
    3. Choose ani_lookup from the Target Module dropdown.
    4. Choose “Key Press” from the Event dropdown.
    5. Manually key “2” into the Value text box.
    6. Select Hung Up in Opening (459) from the Result dropdown.
    7. Select OK.
    8. Repeat steps a-c.
    9. Choose “No Input” from the Event dropdown.
    10. Again select Hung Up in Opening (459) from the Result dropdown.
    11. Select OK.
    12. Again repeat steps a-c.
    13. Choose “No Match” from the Event dropdown.
    14. Again select Hung Up in Opening (459) from the Result dropdown.
    15. Select OK.
  10. Fifth Module:
    1. Add the menu module from the Basic modules into the canvas.  This type of module can be used in a variety of ways usually involving choices and key presses, but in this case, it will be used to store the welcome phrases.
    2. Name the module “welcome_message.”
    3. Select OK.
  11. Seventh and Eighth Connectors:
    1. Select the Connector button.
    2. Choose ani_lookup from the Source Module dropdown.
    3. Choose welcome_message from the Target Module dropdown.
    4. Choose “Success” from the Event dropdown.
    5. Select Hung Up in Opening (459) from the Result dropdown.
    6. Select OK.
    7. Repeat steps a-e changing the Event to “Failure”
    8. Select OK.
  12. Sixth Module:
    1. Add the operator_transfer module from the Basic modules into the canvas. This module is used for messaging and actions related to operator transfer.
    2. Name the module “operator_transfer.”
    3. Select OK.
  13. Ninth, Tenth, and Eleventh Connectors:
    1. Select the Connector button. 
    2. Choose welcome_message from the Source Module dropdown.
    3. Choose operator_transfer from the Target Module dropdown.
    4. Choose “Key Press” from the Event dropdown.
    5. Manually key “1” into the Value text box.
    6. Select Operator Transfer (476) from the Result dropdown.
    7. Select OK.
    8. Repeat steps a-c.
    9. Choose “No Input” from the Event dropdown.
    10. Again select Operator Transfer (476) from the Result dropdown.
    11. Select OK.
    12. Again repeat steps a-c.
    13. Choose “No Match” from the Event dropdown.
    14. Again select Operator Transfer (476) from the Result dropdown.
    15. Select OK.
  14. Seventh Module:
    1. Add the external_transfer module from the Basic modules into the canvas.  This module is used for transfers external of LiveVox, such as voicemail.
    2. Name the module “VoicemailTransfer.”
    3. Select OK.
  15. Twelfth, Thirteenth, and Fourteenth Connectors:
    1. Select the Connector button.
    2. Choose InboundHours from the Source Module dropdown.
    3. Choose VoicemailTransfer from the Target Module dropdown.
    4. Choose “Call Center Close” from the Event dropdown.
    5. Select Hung Up in Opening (459) from the Result dropdown.
    6. Select OK.
    7. Select the Connector button.
    8. Choose AgentAvailability from the Source Module dropdown.
    9. Choose VoicemailTransfer from the Target Module dropdown.
    10. Choose “Agent Not Logged In” from the Event dropdown.
    11. Select Hung Up in Opening (459) from the Result dropdown.
    12. Select OK.
    13. Select the Connector button.
    14. Choose operator_transfer from the Source Module dropdown.
    15. Choose VoicemailTransfer from the Target Module dropdown.
    16. Choose “Agent Not Available” from the Event dropdown.
    17. Select Operator Transfer Failed (No Agent Available) (768) from the Result dropdown.
    18. Select OK.
  16. Eighth Module:
    1. Add the menu module once again from the Basic modules into the canvas.
    2. Name the module ”operator_no_answer.”
    3. Select OK.
  17. Fifteenth Connector:
    1. Select the Connector button.
    2. Choose VoicemailTransfer from the Source Module dropdown.
    3. Choose operator_no_answer from the Target Module dropdown.
    4. Choose “Agent Not Available” from the Event dropdown.
    5. Select Operator Transfer Failed (No Answer) (283) from the Result dropdown.
    6. Select OK.
  18. Saving and enacting contact flow
    1. Click on the Save button, then Deploy
    2. Navigate to the Message Editor tool and create a message using your new Contact Flow.
    3. Assign the message to an existing inbound service and dial the inbound number for testing.  Adjust the Message as desired.
    4. You will need to contact the LiveVox Customer Care Team to procure a telephone number for any new inbound services.