This is another blog post of a series around the enterprise mobility IT team at SAP. We are an internal IT team focused on managing mobile devices, applications, and developing custom apps for SAP’s 100,000 employees. I have been a part of this team for the past six years and believe we have some unique stories, software, tools, and insights to help others in the community considering, or currently undertaking, some of the challenges which surround mobility and its adoption in the enterprise.
Collaboration beyond email
Persist knowledge for new employees/team members
Provide an interactive support channel for HR, IT or any other internal teams
Facilitate social and internal discussions
Ability to share a variety of documents (Pictures, Files, Locations)
Private, Group or Public chats (Group chats require an admin to add members, and Public chats were open to any SAP employee and visible in a Public Directory)
Integration options (Bots, custom use cases, open API access)
Enterprise Grade Security
Cross Platform Availability
Developing a real-time chat app is not easy, as there are many small intricacies that take the application from simplistic to what consumers would expect. Read/Delivered notifications, push notifications, message read delays, emojis, individual message emojis, scaling, custom controls, security, encryption, integration, message search, link previews, and cross-device message synchronization are just a *few* of them.
While building Relay on the Business Technology Platform would be easy to accomplish today, we faced multiple challenges because, at the time, the platform was still evolving. Real-time communication with web-sockets, custom UI5 controls for our web application, and push notifications were not necessarily highly demanded features for business applications at the time. On the other hand, experimenting with new technology and web standards helped us deliver valuable feedback to the development teams.
Web: Emojione – https://www.npmjs.com/package/emojione
- iOS: SAP Mobile SDK for iOS
One beneficial aspect of developing your own chat solution is morphing and integrating additional scenarios with little effort. A nice integration example that we wrote for Relay was “Relay Wall” – this displayed the content of a Group or Public chat via a large format UI perfect for a projector or event, providing a way for attendees to interact with each other in realtime. It was popular at social events, conferences and a variation also made its way to the SAP Arena in Mannheim.
Conversational UI & Bot Platform
UsageBefore Slack and Teams were being deployed at SAP, Relay was a helpful tool and a great experience builder for us. We did have some special surprises which we never really considered when developing the tool.
1.) One of the most popular and active chat groups was a public chat of “Pictures from around the world” at least a few times per day, an employee would share a photo from their current office, vacation, or location. A great way to share something interesting and beautiful with their colleagues.
2.) Public chats were considerably more prevalent than we had imagined. Besides mass email, there is no way for employees to discuss internal topics in a large forum openly. The chats were used during Global all hands calls and at major events to discuss important issues and keynotes and respond to attendees’ comments and questions in real-time. Chat alone is appealing as a communication tool, but when used as a facilitation or ancillary tool, is where we think it really shines in the enterprise.
3.) Chat is a great workflow tool – we had multiple teams who created group chats with individual vertical silos of workloads who independently pushed and pulled tasks that needed to get completed. Some teams subsequently developed custom integrations for just this purpose.
In the 2020, we had 150K unique users who sent 283K messages across 72,980 channels.
If you are interested in a specific implementation or component of Relay on the Business Technology Platform, please feel free to reach out. I would be happy to answer any questions in the comments!