Skip to main content
Solved

How to get user performance API by dynamic date range?


I was able to call Ring Central Analytics API for the user performance, such as missed calls, aggregated by user by a fixed date range, for example, from 2022-03-23 to 2022-03-24. How can I get the API response by user by a dynamic date range, for example, yesterday, given today is 2022-03-25. My ultimate goal is to have the API response daily as below. I also posted my script below for your reference.


# desired table (after parsed api json into tabular format)

dateusermissed_call_count
2022-03-23user_110
2022-03-23user_220
2022-03-24user_130


# script

{

  "grouping": {

    "groupBy": "Users",

    "ids": []

  },

  "timeSettings": {

    "timeRange": {

      "timeFrom": "2022-03-23T00:00:00.000Z",

      "timeTo": "2022-03-24T00:00:00.000Z"

    },

    "advancedTimeSettings": {

      "timeZone": "US/Eastern",

      "includeDays": [

        "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"

      ],

      "includeHours": [

        {

          "from": "00:00",

          "to": "23:59"

        }

      ]

    }

  },

  "responseOptions": {

    "counters": {

      "allCalls": {

        "aggregationType": "Sum"

      },

    "timers": {

      "allCallsDuration": {

        "aggregationType": "Sum"

      }

     } 

    }

  }

}

Best answer by Anonymous

Hi @Ngoc Nguyen it seems like you were able to answer your own problem which is great. Yes by making it a variable and passing the date/time for each day you should be able to get the report daily. You can further run this code as a nightly cron job or use a serverless function that is scheduled to run every day. Let us know if you need any further help.

View original
Did this thread help you find an answer to your question?

3 replies

  • Author
  • New Participant
  • 2 replies
  • March 31, 2022

I was able to put the dynamic date range into the json body, using python.

from datetime import datetime, timedelta

# load json object with the fixed date range
aggregate_json_file = 'aggregate_data_request.json' 
json_request_object = json.load(open(aggregate_json_file)) 

# set dynamic date range
json_request_object['timeSettings']['timeRange']['timeFrom'] =  datetime.now().strftime('%Y-%m-%d %H:%M:%S')

json_request_object['timeSettings']['timeRange']['timeTo'] = (datetime.now() +  timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')

# print json object with the dynamic date range
print(json_request_object)



  • 0 replies
  • Answer
  • April 5, 2022

Hi @Ngoc Nguyen it seems like you were able to answer your own problem which is great. Yes by making it a variable and passing the date/time for each day you should be able to get the report daily. You can further run this code as a nightly cron job or use a serverless function that is scheduled to run every day. Let us know if you need any further help.


  • Author
  • New Participant
  • 2 replies
  • April 5, 2022

Thank you @Suyash Joshi . Yes I am using AWS Glue ELT tool to run the this API daily so making the date range as a variable and passing this to the script works well for my case.


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings