Real-time call number reporting

  • 1
  • Idea
  • Updated 2 years ago
It would be nice to see simply the number of outbound calls made by my sales agents in real-time. In the past with other programs, I was able to put that up on a big screen in our office so our agents could see their production in real-time. They would make a competition out of it. 

I know the details report shows that but it's not simply the number. Am I to expect them to look at the details report on a bigscreen for them all and tally it up? Impossible. 

Really surprised this feature doesn't exist and I wish I would've known before our ops manager signed on. 
Photo of Andy Cesario

Andy Cesario

  • 80 Points 75 badge 2x thumb

Posted 2 years ago

  • 1
Photo of Benjamin Dean

Benjamin Dean

  • 8,602 Points 5k badge 2x thumb
There are a couple of possible approaches to solve this problem. I'm going to author the pieces you'll need to do for both approaches, and then list out the steps for each individual approach below once they diverge...

First, you will need to login the Developer Portal. If you haven't logged into the Developer Portal, you just use your primary phone number for your RingCentral account and an administrative user's credentials.

Once you have logged into the Developer Portal, you will want to setup your Sandbox (test) account for development. The Sandbox account is a separate RingCentral account used for development which introduces no-risk to any of your RingCentral production account(s) or data. Knowing that, you will need to login to and setup some users in the account (similar to your sales staff member user accounts in your production RingCentral account).

Now that you have your Sandbox account setup, you will need to define an application in the Developer Portal (Create New App), and grant it the following permissions:
  1. Read Presence (you may not need this permission)
  2. Read Account
  3. Read Extensions
  4. Read Call Log (you may not need this permission)
Set your new app up as a Server/Web type. Once you have finished defining your new application, you should be taken to a view that provides you with your application's API Keys (Application Key and Application Secret). You will need these values later. If you would like, you can test using these credentials with the RingCentral API Explorer to be sure you're able to obtain an access_token from RingCentral's Auth service.

Now you're ready to start developing your application, but how will it be able to keep count of your outbound calls in real-time?

Here are the two approaches you could take...

Long-polling Call-Log & Filtering
  1. The app will use the RingCentral SDKs
  2. Using the JS SDK, you will instantiate RingCentral JS SDK, and initialize the platform singleton while logging into your account with the SDK
  3. Since Call-Log/active-calls is in the "HEAVY" rate limit usage group of API resources, your access_token is allowed ten (10) requests every sixty (60) seconds. For this example, that would mean one (1) API request every six (6) seconds. NOTE: Any requests beyond that limit and your application will receive a 429 HTTP Response which contains a header named 'retry-after'. If you receive a 429, your app must honor the retry-after, or it will receive additional delay penalties.
  4. Once your app has a valid access_token, you could create a delayed request every 6 seconds to fetch the list of active calls and then filter by direction === outbound, type === voice, and type === Voice, and keep tally of which numbers are active for display
Subscribing to Events & Filtering
  1. The app will use the RingCentral SDK
  2. Using the SDK, you will instantiate RingCentral SDK, and initialize the platform singleton while logging into your account with the SDK
  3. Then you will fetch a list of all the extensions in your account for your sales team
  4. Create a subscription for the various sales team member extensions
  5. Register the subscription, and leverage some code we'll write to maintain active call counts.
  6. Handle the notifications with data to filter out the direction === "outbound", type === "Voice". Then incrementing when result === "Call connected", and decrementing when result === "Stopped" || "Hang up"

Here is a link which dives into the code of a subscription using the RingCentral JS SDK a bit further.
Photo of Andy Cesario

Andy Cesario

  • 80 Points 75 badge 2x thumb
Hi Benjamin --

While I very much appreciate the reply, this goes way over my head and seems very complicated. Not to mention, I have no time to do all this. 

I'm not sure if this is typical when a request is made but ideally, RingCentral would build out the platforms for their clients rather than have them do it. 

Thanks anyway! 
Photo of Benjamin Dean

Benjamin Dean

  • 8,602 Points 5k badge 2x thumb
I understand Andy, do you have a development team or developer you work with for your other web/application development needs? You might be able to contact them to help here. The solution is not very difficult to implement, but would require some development to achieve if you want something custom to display on a TV in your office.

I'm going to send the link to our discussion to a few people in house to see if there is a tool or add-on which doesn't require any development to achieve the goal you have outlined, might be a few days until you receive a response (lots of folks are traveling this week for conferences).
Photo of Blake Robertson

Blake Robertson

  • 60 Points
Hey Andy, 

Our service Tenfold, provides exactly what you are mentioning.  Connects to RingCentral and can provide realtime stats and gamification.  We actually do quite a lot more then that also if you're interested in CRM Integration to make the real time data have context!
Photo of Benjamin Dean

Benjamin Dean

  • 8,602 Points 5k badge 2x thumb
Hey Blake, 

For a moment there...I didn't recognize the Tenfold integration, until I did a search and saw that the name is formerly "Callinize".

Does the Callinze integration in our App Gallery also operate with Tenfold? (