Legacy Dev Forum Posts

 View Only

Sign Up

Tracking IVR Notifications

  • 1.  Tracking IVR Notifications

    Posted 06-05-2025 18:15

    dmiller | 2019-10-16 20:53:16 UTC | #1

    Is there a way to track when a customer calls into the IVR (ie before they move into a queue)? I'm not seeing anything that looks like it would work via the notifications api. Essentially I want to be able to get notified when a user calls in and then leaves before even going into a queue.

    Thanks,

    Dan


    tim.smith | 2019-10-16 22:01:03 UTC | #2

    I don't believe there are any notifications that will provide real-time data about IVR conversations. I would suggest using an analytics conversation detail query at a regular interval and process the results to identify conversations that only had a customer/external and ivr participant (or customer, ivr, and queue for in-queue abandons) with no agent participant.


    dmiller | 2019-10-17 17:59:14 UTC | #3

    Thanks for the quick reply, Tim. I'm trying to build out this query in the query builder and I"m getting the following message:

    Value [participantType] is not valid for field type [ConversationDetailDimension]. Allowable values are: conversationEnd, conversationId, divisionId, mediaStatsMinConversationMos, mediaStatsMinConversationRFactor, originatingDirection

    Am I doing something wrong? This is essentially what the query looks like:

    {
     "interval": "2019-10-17T04:00:00.000Z/2019-10-18T04:00:00.000Z",
     "order": "asc",
     "orderBy": "conversationStart",
     "paging": {
      "pageSize": 25,
      "pageNumber": 1
     },
     "conversationFilters": [
      {
       "type": "and",
       "clauses": [
        {
         "type": "and",
         "predicates": [
          {
           "type": "dimension",
           "dimension": "participantType",
           "operator": "matches",
           "value": "ivr"
          },
          {
           "type": "dimension",
           "dimension": "participantType",
           "operator": "matches",
           "value": "customer"
          }
         ]
        },
        {
         "type": "or",
         "predicates": [
          {
           "type": "dimension",
           "dimension": "conversationEnd",
           "operator": "matches",
           "value": ""
          }
         ]
        }
       ]
      },
      {
       "type": "or",
       "clauses": [],
       "predicates": []
      }
     ]
    }```
    
    Thanks,
    
    Dan
    
    -------------------------
    
    tim.smith | 2019-10-18 15:28:55 UTC | #4
    
    Participant type goes in a segment filter. 
    
    I don't believe doing `participantType == ivr && participantType == customer` will work because a participant can't be both. I'd suggest only looking for an IVR participant and direction inbound. But you're going to have to iterate over the results and inspect the participants no matter what because a filter can't match the condition you're looking for. 
    
    Instead of  `conversationEnd == ""`, use the operator `notExists`. Having no value is different than having an empty string value.
    
    -------------------------
    
    dmiller | 2019-10-18 19:20:14 UTC | #5
    
    Hi Tim,
    
    Still getting the same error.  Below is the query:

    "interval": "2019-10-18T04:00:00.000Z/2019-10-19T04:00:00.000Z", "order": "asc", "orderBy": "conversationStart", "paging": { "pageSize": 25, "pageNumber": 1 }, "conversationFilters": [ { "type": "and", "predicates": [ { "type": "dimension", "dimension": "participantType", "operator": "matches", "value": "ivr" }, { "type": "dimension", "dimension": "direction", "operator": "matches", "value": "inbound" } ] } ] }

    This is the error:

    "readyState": 4, "responseText": "{\"status\":400,\"code\":\"invalid.value\",\"message\":\"Value [participantType] is not valid for field type [ConversationDetailDimension]. Allowable values are: conversationEnd, conversationId, divisionId, mediaStatsMinConversationMos, mediaStatsMinConversationRFactor, originatingDirection\"}", "responseJSON": { "status": 400, "code": "invalid.value", "message": "Value [participantType] is not valid for field type [ConversationDetailDimension]. Allowable values are: conversationEnd, conversationId, divisionId, mediaStatsMinConversationMos, mediaStatsMinConversationRFactor, originatingDirection" }, "status": 400, "statusText": "Bad Request" }

    
    It seems to me that I can't use participantType in the query.  Is this correct?
    
    Thanks,
    
    Dan
    
    -------------------------
    
    tim.smith | 2019-10-18 20:36:40 UTC | #6
    
    The dimension you want to use is actually `purpose`, not `participantType`. That said, you still need to use those predicates as segment filters, not conversation filters.

    { "interval": "2019-10-14T06:00:00.000Z/2019-10-19T06:00:00.000Z", "order": "asc", "orderBy": "conversationStart", "paging": { "pageSize": 25, "pageNumber": 1 }, "segmentFilters": [ { "type": "and", "predicates": [ { "type": "dimension", "dimension": "purpose", "operator": "matches", "value": "ivr" }, { "type": "dimension", "dimension": "direction", "operator": "matches", "value": "inbound" } ] } ] } ```


    system | 2019-11-18 20:36:43 UTC | #7

    This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.


    This post was migrated from the old Developer Forum.

    ref: 6264