Integrating Business Processes with Microsoft Lync & Skype for Business
Total Page:16
File Type:pdf, Size:1020Kb
Integrating Business Processes with Microsoft Lync & Skype for Business A Knowledge Guide by MindLink Software Contents Introduction 3 Barriers To Decision Making 3 Removing Barriers By Leveraging Real-Time Messaging 4 Making Information Accessible 5 • Pull • Push • Command Unleashing The Developer In Everyone 6 Worked Example – Integration With A 7 Marketing Automation Tool Mitigating Risk While Enabling Fluid Integration 10 What Is Mindlink™ 11 Mindlink Suite 11 Introduction Making decisions is hard. Making the right decisions without all the right information is harder. To make effective choices you need everything that matters in front of you, or at the very least you have to remember everything in context. Today’s businesses can’t settle for scattered sources from disparate systems that require manual searching, analysing and collating when it can all be delivered to their feet when they need it. Barriers To Decision Making Businesses evolve rapidly. New systems are designed, redesigned and implemented, replaced and updated regularly. Different departments have different requirements and this usually leads to various information systems spread throughout the organisation. When it comes to making decisions, multiple departments are normally involved, bringing with them information from their own systems. As a decision maker, how can you efficiently and effectively get exactly what you need to make the right choice? The standard procedure may be to ask each departmental stakeholder to send to you the information that they deem relevant. Getting everybody into a room or a conference is hard enough without having to worry about missing information. Ultimately it leads to a string of meetings with various different bits of information that make little progress as data is missing, forgotten, misplaced or misrepresented. We haven’t even touched upon the element of ‘speed’ yet i.e. making those essential, quick decisions based on real-time information. The fast-paced businesses of today require everything now because in the next minute it may be obsolete. Keeping your information systems separate, specialised and closed hinders the ability for anybody in your organisation to make effective and expedited decisions, ultimately costing the business time and money. 3 Removing Barriers By Leveraging Real-Time Messaging There is, in almost every organisation, a system that spans every department, is used daily by most employees and delivers real-time content directly to you - Instant Messaging. The ubiquitous instantaneous counterpart to email penetrates throughout a living organisation to enable communication across boundaries and bring employees closer. Instant messaging exists because we recognise the need for text-based, real-time communication with our peers to enable information to be shared and, more importantly, decisions to be made. We can’t all be in a physical conference with everybody for every decision, even virtually through voice and video. Enterprise Chat (or Persistent Chat/Group Chat) takes this one step further and provides a platform for sharing, retaining and enabling structured and focused discussions at all levels of a business. If you have Skype for Business, Lync 2013 or Lync 2010 you have this feature already, take advantage of it and realise increased productivity. By utilising this existing ubiquitous platform you can streamline integration to other systems by pushing data into a chat room, enabling information to be pulled into a conversation on demand or even allowing actions to be submitted to external systems (controlling systems with commands). One of the more exciting features that Enterprise Chat/ Persistent Chat brings is the concept of chat room add- ins, these are applications that are displayed right in the chat room next to the flow of conversation. Contextual data straight within your chat rooms, so to speak. Imagine a real-time graph of stock prices in a chat room full of traders, a view of system health for a support chat room or live train updates from the control room right onto station staffs handheld devices. (Read the Redburn Partners Case Study on how they integrate Lync, Chat & their internal systems) This is one way of providing critical information right where you need it for discussion in a structured conversation in which decisions are being made. 4 Making Information Accessible There are 3 main ways that information systems can be streamlined: 1. Pulling in data ‘on demand’ in response to user queries 2. Pushing real-time information on a constant basis for responsive decision making 3. Controlling systems by issuing commands Information Push The most common scenario is to push real-time information – such as news feeds or system health when it’s vital. Knowing what data to push and when is essential, you don’t want to crowd-out conversations with constant alerts. Instead you need to push only the important updates that matter to the target audience i.e. send a system health alert when a server has hit a certain threshold and another when it returns to normal. Information Pull Pulling data on demand is another common scenario, systems that store information that are regularly queried – such as accounting or support ticketing, are prime examples of where this mechanism is useful. By inspecting the flow of conversation and identifying patterns such as a support ticket number or account number, the associated information can be retrieved and sent directly to the chat system. This eliminates the extra hop required to get that information from the other systems manually, streamlining the process and making chat the centralised work place. Information Command Issuing commands to systems from right within chat enables a simpler workflow for many situations. Imagine an analyst wanting to buy shares as a result of information pushed to the chat room, they could issue a command right there to make the purchase, saving vital seconds. Powerful workflows can be exposed so that a simple command triggers server deployments, progress can be monitored in the same environment and contextual discussions can help rectify problems quickly. Building these integrations is historically a specialised and challenging job, at MindLink we believe there’s a better way to get the most from your chat system and increase productivity. 5 Unleashing The Developer In Everyone Lync 2013 & Skype for Business ship with a Web API called UCWA, the problem is it’s almost as complex to use as the more advanced .Net SDK, and is a significant barrier to developers unfamiliar with Lync. Furthermore it isn’t designed with control in mind, so once you connect you’re free to do whatever you like with no restriction on message rates or monitoring. We believe that a simplified and controlled API provides a lower barrier to entry for integrating information systems with Lync and focuses on getting information into and out of the chat system rather than fiddling with unnecessary complex domain concepts. A RESTful Web API (such as available with MindLink) offers a simple way to send messages to the chat system, once authenticated there’s only 1 API call required. Getting messages is another API call. That covers 90% of use cases in 2 API calls. By exposing a simple web API systems integrators can pipe information into the chat system from any programming language that supports HTTP requests – even shell scripts can send messages. With simple accessibility into the chat system the possibilities of integration with important information sources are endless and powerful. The focus for us is having a solution that is controlled, preventing exposure of the Lync/ Skype for Business platform to misuse. Take a look at our samples on Github to see integration even from within Excel! 6 Worked Example - Integration with a marketing automation tool (e.g. Hubspot) HubSpot is a marketing automation platform used to track lead generation, pull together various channels and drive leads through the funnel from creation via engagement to close. One of the core pillars of HubSpot are Contacts that are created when a user submits a form or subscribes in any other way, shape or form. The marketing & sales teams wants to know the moment a new contact is added without filling up their email inbox. Enterprise Chat is a great central place for this and fortunately the marketing/ sales teams have a dedicated chat room for new leads. We are going to write a small Node.JS application that will receive HubSpot notifications through a WebHook and post into the marketing chat room messages like this: “New HubSpot contact ‘Luke Terry’ (luke.terry@ mindlinksoft.com) from ‘MindLink’ added.” Firstly we will need the WebHook – this is simply a HTTP endpoint that will receive POST request from HubSpot containing the new contact information as JSON. For simplicity we’ll use express.js: We utilise the ‘body-parser’ plugin for express to parse the JSON body sent by HubSpot for us and this is accessible from the request body property. On line 8 we define the WebHook at the root endpoint address and on line 13 we send a 200 OK response back to HubSpot to let it know we handled the request. Line 16 is where we start the application listening on port 8000. Simple. Now we just need to handle the request and send a message. HubSpot versions every property on a contact, this means that it’s not simply a case ofcontact.name or contact. company. A little helper method can be used to get the value of a property and then construct the message we want: 7 Worked Example Cont. Now to get to the good stuff! As stated previously it takes a minimum of 2 API calls to send a message (that assumes you are already authenticated and know the chat room to send the message to). Before we can do anything we have to authenticate against an Agent on the chat system.