Using Call Flow Milestones to Measure IVR Abandonment Rates

Using Call Flow Milestones to Measure IVR Abandonment Rates

Executive Summary & Architectural Context

When a contact center director asks, “Why are callers abandoning before reaching an agent?”, the standard Analytics dashboards only show that the call disconnected in the IVR. They do not tell you where the caller abandoned. Did they hang up during the welcome message? Did they hang up after hearing their account balance? Did they hang up in frustration after failing a DTMF prompt three times?

Without granular visibility into the customer journey, optimizing the IVR is guesswork. The architectural solution in Genesys Cloud is Milestones. By planting invisible tracking beacons (Milestones) throughout your Architect flows, you create a breadcrumb trail of the caller’s journey.

This masterclass details how to configure milestones, inject them into your task logic, and use the Analytics Workspace to build a funnel report that pinpoints the exact drop-off nodes in your IVR.

Prerequisites, Roles & Licensing

  • Roles & Permissions:
    • Architect > Flow > Edit
    • Routing > Milestone > Add/Edit
    • Analytics > Workspace > View

The Implementation Deep-Dive

1. Defining the Milestones Globally

Before you can use a milestone in a flow, you must define it in the global routing configuration.

  1. Navigate to Admin > Routing > Milestones.
  2. Click Add Milestone.
  3. Create a taxonomy of milestones that represent key moments in your business logic:
    • IVR_Start
    • Auth_Requested
    • Auth_Success
    • Auth_Failed
    • SelfService_Balance_Played
    • Transferring_to_Agent

2. Injecting Milestones into Architect

Now, embed these beacons into your call flows.

  1. Open your Inbound Call Flow in Architect.
  2. At the very top of your Starting Task, drag an Add Flow Milestone action.
  3. Select IVR_Start.
  4. Navigate to your Authentication task. Right before the Collect Input node, add the Auth_Requested milestone.
  5. On the Success path of your CRM lookup, add the Auth_Success milestone.
  6. On the Failure path, add the Auth_Failed milestone.

3. The “Silent Disconnect” Tracking

When a caller hangs up, the flow execution immediately terminates. The last milestone hit before the termination is considered the abandonment point.

  • If the caller hits Auth_Requested and then hangs up while listening to the prompt, the analytics engine records Auth_Requested as the final milestone of the interaction.

4. Building the Funnel Report in Analytics

With milestones firing, you can now visualize the drop-off.

  1. Navigate to Performance > Workspace > Flow Destinations (or use the custom reporting engine).
  2. Create a new dashboard widget focusing on Milestones.
  3. Filter by your specific Inbound Flow.
  4. You will see a count of how many interactions hit each milestone.
  5. The Math: If IVR_Start has 1,000 hits, and Auth_Requested has 900 hits, you know 100 people abandoned during your generic welcome greeting. If Auth_Success has 400 hits, but Transferring_to_Agent only has 50 hits, you know 350 people successfully self-serviced their issue and hung up happily.

Validation, Edge Cases & Troubleshooting

Edge Case 1: Too Many Milestones

If you put a milestone after every single audio prompt in a 50-node flow, your analytics database will become incredibly noisy.

  • Troubleshooting: Do not use milestones for logging granular code execution (e.g., Variable_Assigned). Milestones should only represent Customer Journey Events. If you need to debug code execution, use the Architect Execution Logs, not milestones.

Edge Case 2: Secure Flows and PCI Data

Milestones themselves are simply text labels, but be extremely careful not to create dynamic milestones that contain sensitive data.

  • The Trap: Never use an expression to name a milestone dynamically with caller data (e.g., Milestone_" + Task.AccountNum). This will write secure PCI/PII data directly into the plaintext analytics database, violating compliance. Always use static, abstract names (e.g., Payment_Submitted).

Official References