Dynamics 365 + Signal-R, Aka: Can You Hear Me Now?

Innovation.  That word usually conjures images of futuristic gizmos solving problems we don’t yet know we have.  Sometimes, however, innovation is much more practical.  It can be as simple as combining existing tools in a new way to solve old problems.  Call it coincidental, but that’s exactly what today’s entry is all about: solving a critical business problem using existing tools in new ways.

Let’s begin by setting the stage.  Our client is a customer service phone center operating 24 hours a day, 7 days a week, 365 days a year.  In this case, the customer is a recipient of scheduled delivery services – specifically, irrigation water delivery.  In a perfect world, water would always flow on time… and the customer would always be there to open their gate…  and the canals would always be free of blockages… and the physical assets would never fail over time…   but it’s not a perfect world.  In a less than perfect world, when the customer needs someone to call when things go wrong, they call the friendly customer support representative (CSR).

Now imagine that we have 50 CSRs working the day shift and that they are spread across different locations – including work-from-home.  A problem in our Canal-Lateral-Gate system has caused deliveries to an entire subdivision to be delayed – and the incoming phone calls begin.  Some calls are from customers wondering why they have no water.  Some calls are from field representatives updating the office with status reports.  Each call is answered by a different CSR and there is no transparency that everyone is now working on the same problem.

Dynamics 365 is an amazing platform offering a robust set of features.  One of the trade-offs, however, is that we sacrifice some control over the application user interface (you know, the part of the software you see on the screen).  In the scenario described here, there is nothing in the Dynamics 365 platform to allow for collaboration when there is an overlapping interest in the data with which our users work.  What we want is the ability to allow real-time conversations between CSRs when active data contexts overlap.  For example, multiple CSRs working with the same customer at the same time should be aware of the overlap and be able to collaborate in real-time.

At first glance, Dynamics 365 does not seem to lend itself the kind of collaboration that we’d like to implement.  We know that Signal-R is a great, group-based chat solution – but how can we implement Signal-R within the D365 user interface?  In a word, iFrames.  D365 natively supports iFrames within the form context, and an iFrame can host web pages from external sources.  Our collaboration solution is beginning to come into focus.

A Signal-R collaboration hub was created and deployed.  This hub includes web pages that, when opened, establish a connection back to the hub.  In D365, we add an iFrame to our Phone Call activity form and load a web page from the collaboration hub into the iFrame.  The web page connects back to the hub and joins a collaboration group based on a data element on the phone call record – Subdivision ID, for example.  When multiple CSRs open phone call records for the same Subdivision, they all connect to hub and join a common group based on the Subdivision ID.  The iFrame web page then allows the CSRs to perform a roll call (to see who else might be working with customers in the same Subdivision) and to chat in real time with any other CSRs actively engaged.

This design provides the client with transparency they’ve never before had, and with collaboration capabilities that help assure consistent messaging to their customers.  One of the great results of this implementation is the increase in phone call efficiency across CSRs regardless of location.  It’s good for their customers and good for them.

Innovation.  Using existing tools in new ways to solve old problems.  Can you hear me now?  Yes.  Yes, we can!