View this demonstration to see how WWT brought Microsoft 365 and Cisco Webex Teams together.
The first step in the process was examining the tool sets available. World Wide Technology has both on premise and cloud solutions for collaboration tools, as well as on premise and cloud solutions for Microsoft office. For the initial use case, we concentrated primarily on cloud solutions and bringing together Cisco Webex Teams (formerly Cisco Spark) and Microsoft Office 365. The Microsoft 365 API endpoints were a little bit more of a mystery, as only pockets of the organization were familiar with the solutions in the suite. After some investigation, the Microsoft Graph API endpoint appeared to have the initial controls that were needed.
After nailing down the product sets, we needed to decide on our test problem. One of the biggest challenges our Corporate Marketing team faces with planning meetings is conference room availability.
We decided this was a good starting point to test out the simplistic use cases around controlling meeting reservations and scheduling. There is a relatively new API call in Microsoft Graph called findMeetingTime, which does a lookup of all invited participants and rooms. This API call returns a list of possible meeting times with probability percentages of at least 50 percent of the members being available. You have the options of listing attendees, room resources, time frames and meeting duration. Since one of the first use cases was to check availability at the current date and time, this API was sufficient as long as we provided a duration of only an hour.
In order to call the findMeetingTime API, the proper authorization scheme also needed to be provisioned. Graph offers both a user login OAuth flow and a Service to Service OAuth flow in order to authenticate to the WWT Office 365 instance. The Service to Service flow was selected to streamline the authentication process and allow consolidation later for a single authentication platform. The Service to Service OAuth uses Microsoft Azure to host the application, which provides a client ID and client secret, so an application can request an authorization token. The authorization token times out after an hour, so the code needs to request a refresh token periodically.
With the authorization completed, all there was left to do was form the JSON statements and test the functionality. Some tweaks had to be made in order to compensate for current time, adding or subtracting to create a proper start time for the meeting. In the first trials, we were able to easily check status on conference rooms, book rooms for a determined amount of time and retrieve calendar events for the individual in a Webex Teams room by their email ID.
This was a pretty simple test case, but a nice building block to integrate further automation into the mix.
WWT has also implemented Cisco Calendar Connector through Teams, which allows you to add the term “@webex” in order to simply schedule a Collaboration Meeting Room and open a room. This functionality also works through our Office 365 integration, which was a nice plus.
The Microsoft Graph API consolidated endpoint is still relatively young, and some of the application APIs haven’t been integrated yet. But with these initial successful tests, there are many additional use cases where these integrations will make sense. We can integrate OneDrive to act as an archive backend for important Webex Teams room shared documentation, or use the Office 365 task engine to assign and monitor tasks in rooms for team members.
The wheels are turning, and the solutions will only get better as Cisco and Microsoft provide even more APIs for enhanced functionality.
Read this to see what else we’ve done with API integration.