{"id":4875,"date":"2015-08-20T10:00:36","date_gmt":"2015-08-20T17:00:36","guid":{"rendered":"http:\/\/thinkapps.com\/blog\/?p=4875"},"modified":"2015-09-10T11:21:00","modified_gmt":"2015-09-10T18:21:00","slug":"how-to-build-chat-into-app","status":"publish","type":"post","link":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/","title":{"rendered":"A Comprehensive Guide to Building Chat into Your Web or Mobile App"},"content":{"rendered":"<p><i><span style=\"font-weight: 400;\">This post is part of our\u00a0<i><span style=\"text-decoration: underline;\"><a title=\"Building Blocks series\" href=\"http:\/\/thinkapps.com\/blog\/tag\/building-blocks\/\" target=\"_blank\">Building Blocks series<\/a><\/span><\/i>, which provides comprehensive guides on common features of web and mobile apps. First up is chat, including how to build chat into your app and why it\u2019s a good idea.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">Our human need for real-time communication has officially evolved from SMS texts with our friends to just about any online interaction with anyone. That\u2019s why we\u2019re seeing a rise of chat features in more than just chat-based apps.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When you think about online businesses with chat, customer service is generally the first thing that comes to mind. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Live chat can indeed be a great replacement for a 1-800 number or a general \u201chelp@\u201d inbox that floweth over. But, there\u2019s a lot more you can do to enhance your all-around user engagement through the art of chat.<\/span><\/p>\n<h3>We talked to people at three communications companies about the current climate of chat and how best to harness all it has to offer:<span style=\"font-weight: 400;\"><br \/>\n<\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><a title=\"Derek Frome\" href=\"https:\/\/twitter.com\/defrome\" target=\"_blank\"><b>Derek Frome<\/b><\/a><span style=\"font-weight: 400;\">, Head of Product Marketing at PubNub. <\/span><a title=\"PubNub\" href=\"https:\/\/www.pubnub.com\/\" target=\"_blank\"><span style=\"font-weight: 400;\">PubNub<\/span><\/a><span style=\"font-weight: 400;\"> is a DSN that offers real-time apps across multiple platforms.<\/span><\/li>\n<li style=\"font-weight: 400;\"><a title=\"Christian Jensen\" href=\"https:\/\/twitter.com\/cjsinch\" target=\"_blank\"><b>Christian Jensen<\/b><\/a><span style=\"font-weight: 400;\">, Chief Evangelist at Sinch. <\/span><a title=\"Sinch\" href=\"https:\/\/www.sinch.com\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Sinch<\/span><\/a><span style=\"font-weight: 400;\"> is a cloud-based communication service that provides APIs to add calling, messaging, and verification to apps.<\/span><\/li>\n<li style=\"font-weight: 400;\"><a title=\"John Eberly\" href=\"https:\/\/twitter.com\/jeberly\" target=\"_blank\"><b>John Eberly<\/b><\/a><span style=\"font-weight: 400;\">, Founder of Chatlio.\u00a0<\/span><a title=\"Chatlio\" href=\"https:\/\/chatlio.com\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Chatlio<\/span><\/a><span style=\"font-weight: 400;\"> is a service that provides live chat powered by <\/span><a title=\"Building Internal Tools for Your Company\" href=\"http:\/\/thinkapps.com\/blog\/development\/building-enterprise-develop-internal-tools\/\" target=\"_blank\"><span style=\"font-weight: 400;\">services you already use<\/span><\/a><span style=\"font-weight: 400;\">, like Slack.<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"462\" class=\"alignnone wp-image-4880 size-large\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090952\/chatlio-1024x462.jpg\" alt=\"How to Build Chat into Your App - Chatlio\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090952\/chatlio.jpg 1024w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090952\/chatlio.jpg 300w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090952\/chatlio.jpg 1199w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h2>Why to Build Chat into Your App<\/h2>\n<p><span style=\"font-weight: 400;\">Our need for chat is summed up pretty well in this statement from PubNub\u2019s Derek Frome: \u201c<strong>People expect the online world to behave with exactly the same responsiveness as the offline world.<\/strong>\u201d And that goes for different forms of chat.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<h3>Company to User\/User to Company<\/h3>\n<p><span style=\"font-weight: 400;\">A voice from the company can answer any pre-sale questions that may keep a user from buying. You can also chat with your user as a real-time form of <\/span><a title=\"Customer Service Advice from ChatBooks\" href=\"http:\/\/thinkapps.com\/blog\/entrepreneurship\/customer-service-tips-chatbooks\/\" target=\"_blank\"><span style=\"font-weight: 400;\">customer service<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h3>User to User<span style=\"font-weight: 400;\"><br \/>\n<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Users can talk to one another as a way to answer each other\u2019s questions or just to build community. When users can talk to one another, your product engagement is higher.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><b><\/b><\/p>\n<h2>SMS vs IM<\/h2>\n<p>Chat isn\u2019t just linked to the web. Sinch\u2019s Christian Jensen pointed out that SMS is still the most-opened form of text messaging in the world, though web-based IM also\u00a0has its benefits.<\/p>\n<h3>Short Text Messaging (SMS)<\/h3>\n<p><span style=\"font-weight: 400;\">SMS (text messaging) is a great delivery method because it is available whether or not you have WiFi, data coverage, or even a smartphone. In fact, it is estimated that\u00a0the average\u00a0SMS message\u00a0is\u00a0read within the first three minutes of receipt, according to <\/span><a title=\"Conversational Advertising report\" href=\"http:\/\/www.docstoc.com\/docs\/119372644\/Conversational-Advertising---Mobile-Squared\" target=\"_blank\"><span style=\"font-weight: 400;\">DocStoc<\/span><\/a><span style=\"font-weight: 400;\">. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">This makes SMS notifications better suited to the more business-critical forms of engagement. For instance, ridesharing apps like <\/span><a title=\"Lyft\" href=\"https:\/\/www.lyft.com\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Lyft<\/span><\/a><span style=\"font-weight: 400;\"> and <\/span><a title=\"Uber\" href=\"https:\/\/www.uber.com\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Uber<\/span><\/a><span style=\"font-weight: 400;\"> use SMS to notify users that they\u2019re about to be picked up. Food delivery companies such as <\/span><a title=\"Instacart\" href=\"https:\/\/www.instacart.com\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Instacart<\/span><\/a><span style=\"font-weight: 400;\"> notify their customers of time-critical events, like the delivery person arriving at their doorstep.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">SMS also presents a form of two-way communication between the company and customer in the familiar, clean environment of your messaging app instead of in the company app. This allows users to keep a record of their interaction in the place where they most often communicate. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example,\u00a0<a title=\"Luxe\" href=\"http:\/\/luxe.com\/\" target=\"_blank\">Luxe<\/a> is a car valet company that uses SMS to engage one-on-one from drivers to customers. Unlike Uber or Lyft, it goes beyond broadcasting a status and encourages customers to respond back and ask questions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A service like <\/span><a title=\"Sinch SMS API\" href=\"https:\/\/www.sinch.com\/products\/sms-api\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Sinch<\/span><\/a><span style=\"font-weight: 400;\"> can provide a platform for these kinds of exchanges. Sinch has a RESTful API that supports two-way (inbound\/outbound) SMS communications between apps and consumers. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">For inbound SMS communication, Sinch provides REST methods to detect and capture text message replies, allowing the app to react accordingly. The SMS numbers are rented out by Sinch, to provide a consistent, localized number endpoint.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sinch caters to outbound text messaging in their API by providing endpoints, so you can check the status of each text message, when it was sent, when it was delivered, and any delivery failures. You can find more information on Sinch\u2019s <\/span><a title=\"Sinch Documentation on SMS\" href=\"https:\/\/www.sinch.com\/docs\/sms\/\" target=\"_blank\"><span style=\"font-weight: 400;\">SMS RESTful API here<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Outbound-SMS-cropped.png\"><img loading=\"lazy\" decoding=\"async\" width=\"536\" height=\"351\" class=\"alignnone size-full wp-image-5011\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Outbound-SMS-cropped.png\" alt=\"How to Build Chat into Your App - Outbound SMS\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Outbound-SMS-cropped.png 536w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Outbound-SMS-cropped.png 300w\" sizes=\"(max-width: 536px) 100vw, 536px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">SMS can also encourage users to authenticate themselves and their profiles with their unique phone number in lieu of revealing their entire personal and social identities, as <\/span><a title=\"Twitter's Digits Platform\" href=\"https:\/\/get.fabric.io\/digits\" target=\"_blank\"><span style=\"font-weight: 400;\">Twitter\u2019s Digits<\/span><\/a><span style=\"font-weight: 400;\"> platform advocates. After providing their phone number, they receive a confirmation code that they enter into the app. This authenticates the user. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can also send out<\/span> <span style=\"font-weight: 400;\">SMS verifications, such as sending a one-time, time-sensitive pin code to verify a user. This is best used for critical information, like a bank code to verify a user\u2019s identity or a notification of an <a title=\"Amazon Prime\" href=\"http:\/\/www.amazon.com\/Amazon-Prime-One-Year-Membership\/dp\/B00DBYBNEE\" target=\"_blank\">Amazon Prime<\/a> delivery. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The quickness of reading a text message, along with the fact that SMS is independent of any specific app, makes for a powerful engagement model with a guaranteed rate of delivery \u2014 something that push notifications on mobile devices just can\u2019t do. What push notifications <em>can<\/em> do is allow for new and different forms of interaction between the user and the app.<\/span><\/p>\n<h3>Instant Messaging and Push Notifications<\/h3>\n<p><span style=\"font-weight: 400;\">Instant messaging allows for in-app direct communication, also dubbed \u201csocket communication.\u201d Here, users interact in real-time, relying on an Internet connection rather than their phone carrier\u2019s SMS network.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Like SMS, instant messaging provides great real-time one-on-one customer engagement. But,\u00a0there\u2019s also the ability for added features like group conversations and GPS locations. Chat within an app or on the web can provide visual<\/span> <span style=\"font-weight: 400;\">indicators to show that another party is in the process of typing or that they\u2019ve read the message. They can also share, report, or delete a specific message.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You\u2019re probably already familiar with apps like <\/span><a title=\"Facebook Messenger\" href=\"https:\/\/www.messenger.com\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Facebook Messenger<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\"><a title=\"WhatsApp\" href=\"https:\/\/www.whatsapp.com\/\" target=\"_blank\">WhatsApp<\/a>,<\/span><span style=\"font-weight: 400;\"> and <\/span><a title=\"Google Hangouts\" href=\"https:\/\/plus.google.com\/hangouts\" target=\"_blank\"><span style=\"font-weight: 400;\">Google Hangouts<\/span><\/a><span style=\"font-weight: 400;\">, all of which use instant messaging within the confines of the app. Users are alerted to new messages through push notifications, visible on their device status bar or notification center. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">As of iOS 8, push notifications for iPhone apps can also provide designated action buttons, such as to \u201cMark as Read\u201d or \u201cCheck In\u201d (with Foursquare). With <a title=\"Apple Watch articles\" href=\"http:\/\/thinkapps.com\/blog\/tag\/apple-watch\/\" target=\"_blank\">Apple Watch<\/a>, these notifications allow for brief and quick responses from the user, without the need to pick up their phones.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Apple-Notifications-cropped.png\"><img loading=\"lazy\" decoding=\"async\" width=\"641\" height=\"266\" class=\"alignnone size-full wp-image-5012\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Apple-Notifications-cropped.png\" alt=\"How to Build Chat into Your App - iOS Push Notification\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Apple-Notifications-cropped.png 641w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Apple-Notifications-cropped.png 300w\" sizes=\"(max-width: 641px) 100vw, 641px\" \/><\/a><\/p>\n<p><a title=\"Apple Notifications Center\" href=\"https:\/\/developer.apple.com\/library\/ios\/documentation\/UserExperience\/Conceptual\/MobileHIG\/NotificationCenter.html\" target=\"_blank\"><i><span style=\"font-weight: 400;\">Image credit<\/span><\/i><\/a><\/p>\n<p><span style=\"font-weight: 400;\">The downside of push notifications is that mobile permissions can be tricky to manage. The app is required to prompt the user for permission to receive notifications. If the user somehow denies the app authorization once, the user will have to go through their iPhone\u2019s settings to re-authorize push notifications, which is definitely a bit cumbersome. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">There\u2019s also no guarantee that the user will receive them. So if the message is time-sensitive or important, it is best to revert to SMS. For instance, messages between users on Facebook Messenger are probably not as critical as a reminder that your Lyft driver is waiting outside.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This year, Facebook took customer service one step further by providing a platform for businesses and customers to communicate ubiquitously through the Facebook Messenger app. It\u2019s called <\/span><a title=\"Business on Messenger by Facebook\" href=\"https:\/\/developers.facebook.com\/blog\/post\/2015\/03\/25\/introducing-messenger-platform-and-businesses-on-messenger\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Business on Messenger<\/span><\/a><span style=\"font-weight: 400;\">\u00a0and, through APIs, it enables businesses to engage their customers immediately after checkout to provide order confirmations and delivery status updates. Customers can also respond to businesses with questions about their orders. <\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Everlane-1-cropped.png\"><img loading=\"lazy\" decoding=\"async\" width=\"609\" height=\"460\" class=\"alignnone size-full wp-image-5015\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Everlane-1-cropped.png\" alt=\"How to Build Chat into Your App - Facebook Business Messenger 1 \" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Everlane-1-cropped.png 609w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Everlane-1-cropped.png 300w\" sizes=\"(max-width: 609px) 100vw, 609px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Screen-Shot-2015-08-20-at-3.00.48-PM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"849\" height=\"499\" class=\"alignnone size-full wp-image-5018\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Screen-Shot-2015-08-20-at-3.00.48-PM.png\" alt=\"How to Build Chat into Your App - Facebook Business Messenger 2\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Screen-Shot-2015-08-20-at-3.00.48-PM.png 849w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Screen-Shot-2015-08-20-at-3.00.48-PM.png 300w\" sizes=\"(max-width: 849px) 100vw, 849px\" \/><\/a><\/p>\n<p><em><a title=\"Introducing Businesses on Messenger by Facebook\" href=\"https:\/\/developers.facebook.com\/blog\/post\/2015\/03\/25\/introducing-messenger-platform-and-businesses-on-messenger\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Image credits<\/span><\/a><\/em><\/p>\n<h2>Ways to Build Chat into Your App<\/h2>\n<p><span style=\"font-weight: 400;\">Chances are, no matter what your product, there\u2019s a use for a chat feature. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">From productivity software to mobile games, when you increase live connectivity, you add a new level to an otherwise stagnant web or mobile presence.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"530\" class=\"alignnone wp-image-4878 size-large\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090948\/twitchchat-1024x530.png\" alt=\"How to Build Chat into Your App - Twitch chat\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090948\/twitchchat.png 1024w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090948\/twitchchat.png 300w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090948\/twitchchat.png 1110w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h3>Community Building\/Engagement<\/h3>\n<p><span style=\"font-weight: 400;\">If you\u2019re starting out with a community-based product, letting your users chat with one another is a tremendous opportunity for them to build their own relationships and really show off their personalities. Sites like <\/span><a title=\"Chat on Twitch\" href=\"http:\/\/help.twitch.tv\/customer\/portal\/articles\/659011-chat-basics\" target=\"_blank\"><span style=\"font-weight: 400;\">Twitch<\/span><\/a><span style=\"font-weight: 400;\"> have even enabled group chat capabilities to facilitate focused conversations (as seen above).<\/span><\/p>\n<div class=\"video-wrapper\">\n<div class=\"video-container\"><iframe title=\"QuizUp \u2013 Come at me \u2013 2015\" src=\"https:\/\/www.youtube.com\/embed\/7j66pZqbifQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div>\n<p><span style=\"font-weight: 400;\">Interest in mobile games is <\/span><a title=\"How to Outlive a Trend\" href=\"http:\/\/thinkapps.com\/blog\/entrepreneurship\/startup-trends-outlive-buzz-yerdle\/\" target=\"_blank\"><span style=\"font-weight: 400;\">notoriously fleeting<\/span><\/a><span style=\"font-weight: 400;\"> (perhaps with the exception of the ever-addicting Angry Birds and Candy Crush). But, with the addition of chat, the trivia game QuizUp found that <\/span><a title=\"VentureBeat article on QuizUp\" href=\"http:\/\/venturebeat.com\/2015\/01\/06\/hey-game-developers-adding-chat-can-help-revenues-soar\/\" target=\"_blank\"><span style=\"font-weight: 400;\">people were staying in the app longer and coming back more frequently<\/span><\/a><span style=\"font-weight: 400;\">. <\/span><span style=\"font-weight: 400;\">By enabling personal relationships and providing a sense of community, <\/span><span style=\"font-weight: 400;\">QuizUp has become more than just a game\u00a0(and if you don&#8217;t believe us, just check out <a title=\"Power of Chat on QuizUp\" href=\"https:\/\/www.youtube.com\/watch?v=7j66pZqbifQ\" target=\"_blank\">the video<\/a> above)<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"357\" class=\"alignnone wp-image-4879 size-full\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090951\/workchat.png\" alt=\"How to Build Chat into Your App - WorkChat\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090951\/workchat.png 600w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06090951\/workchat.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3>Collaboration, Amplified<\/h3>\n<p><span style=\"font-weight: 400;\">Working with people <\/span><a title=\"Email Marketing Tips\" href=\"http:\/\/thinkapps.com\/blog\/launch\/email-marketing-tips\/\" target=\"_blank\"><span style=\"font-weight: 400;\">through email<\/span><\/a><span style=\"font-weight: 400;\"> makes for a clunky, non-intuitive experience. So, productivity apps like Evernote have bypassed the communication relic altogether by adding chat directly\u00a0into their service. This also keeps users in their app longer. Seeing a pattern here?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Their chat feature is called <\/span><a title=\"WorkChat\" href=\"https:\/\/evernote.com\/work-chat\/\" target=\"_blank\"><span style=\"font-weight: 400;\">WorkChat<\/span><\/a><span style=\"font-weight: 400;\">. It lets you <\/span><a title=\"Remote Collaboration Tips\" href=\"http:\/\/thinkapps.com\/blog\/post-launch\/7-tips-effective-remote-collaboration\/\" target=\"_blank\"><span style=\"font-weight: 400;\">talk with team members and clients<\/span><\/a><span style=\"font-weight: 400;\"> right within the project you\u2019re working on together, saving everyone time reading, typing and opening new tabs\/apps.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"905\" class=\"alignnone wp-image-4882 size-large\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06091414\/periscopechat-1024x905.jpg\" alt=\"How to Build Chat into Your App - Periscope chat\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06091414\/periscopechat.jpg 1024w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06091414\/periscopechat.jpg 300w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06091414\/periscopechat.jpg 1510w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h3>Live Feedback for Live Streaming<\/h3>\n<p><span style=\"font-weight: 400;\"><a title=\"Meerkat\" href=\"https:\/\/meerkatapp.co\/\" target=\"_blank\">Meerkat<\/a>, <a title=\"Periscope\" href=\"https:\/\/www.periscope.tv\/\" target=\"_blank\">Periscope<\/a>, <a title=\"YouNow\" href=\"https:\/\/www.younow.com\/\" target=\"_blank\">YouNow<\/a> \u2014 no matter which one you pick, with chat, you\u2019re giving your audience the ability to talk to you in real time. In our chat-centric world, this may seem like an obvious feature. And maybe it is, but it\u2019s still a really big deal.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Chat gives viewers the power to directly ask the person who is streaming to do something, answer a question about where they are, or just give a shoutout in real time. Adding chat to an already live form of media makes for a whole new kind of conversational experience that provides immediate satisfaction.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"492\" class=\"alignnone wp-image-4881 size-large\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06091147\/sinch-1024x492.png\" alt=\"How to Build Chat into Your App - Sinch\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06091147\/sinch.png 1024w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06091147\/sinch.png 300w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/span><\/h2>\n<h3>Customer Service<\/h3>\n<p><span style=\"font-weight: 400;\">Often we start looking into buying something online, but without even realizing it, we stop on account of unanswered questions. Then maybe we leave the tab open for a while only to forget why we ever had it open in the first place.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">But, when a company rep pops up in a chat box asking if you have any questions, your passive decision becomes an active one. Also, the company becomes more than just a web page. As John Eberly of Chatlio explained:<\/span><\/p>\n<p><b><i>\u201cHaving live chat as part of the <\/i><\/b><a title=\"Pushing People into Your Funnel\" href=\"http:\/\/thinkapps.com\/blog\/post-launch\/growth-hacking-pushing-into-funnel\/\" target=\"_blank\"><b><i>sales funnel<\/i><\/b><\/a><b><i> greatly increases conversions because you can engage the customer with the few questions they might have during the most critical stages of the signup process, which means a live chat product can more than pay for itself.\u201d<\/i><\/b><\/p>\n<p><span style=\"font-weight: 400;\">Real-time satisfaction is also an asset to customer service and giving users immediate feedback on any issues that they\u2019re having. The less time they spend fuming, the more time you have to win back their business.<\/span><\/p>\n<h2>Basic Requirements for Chat Features<\/h2>\n<p><span style=\"font-weight: 400;\">Before you build a chat feature or choose a chat software, here are some things you need to consider.<\/span><\/p>\n<h3>Time Is of the Essence<\/h3>\n<p><span style=\"font-weight: 400;\">Jensen said that people expect you to be online all the time, especially on mobile. So make sure that, if you\u2019re enabling chat on your site or app, there is someone on your end to chat back.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Eberly added, \u201cMake sure you have an internal process for [people who are] responsible for handling incoming chats \u2026 The worst thing you can do is offer live chat and not respond in a timely fashion.\u201d<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If for some reason there isn\u2019t someone available, give your user an email option.<\/span><\/p>\n<h3>Get to Know Your User<\/h3>\n<p><span style=\"font-weight: 400;\">Eberly said, \u201cIn addition to those most basic features of chat, I feel any good web live chat platform should support automatically identifying traits about users from their location, platform, and a custom set of data specific to your product.\u201d<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The emergence of <\/span><a title=\"Big data\" href=\"https:\/\/en.wikipedia.org\/wiki\/Big_data\" target=\"_blank\"><span style=\"font-weight: 400;\">big data<\/span><\/a><span style=\"font-weight: 400;\"> over the past few years means there is great potential for <\/span><a title=\"Data mining\" href=\"https:\/\/en.wikipedia.org\/wiki\/Data_mining\" target=\"_blank\"><span style=\"font-weight: 400;\">data mining<\/span><\/a><span style=\"font-weight: 400;\">, in which cloud-based databases can collect large amounts of data sets from user interactions and extract meaningful information for future use.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With the addition of <\/span><a title=\"Deep learning\" href=\"https:\/\/en.wikipedia.org\/wiki\/Deep_learning\" target=\"_blank\"><span style=\"font-weight: 400;\">deep learning<\/span><\/a><span style=\"font-weight: 400;\"> from data mining, algorithms can make meaning of free-form text like text messages, creating contextuality and sentimentality. This is important because it derives meaning from unlabeled data (conversations), giving companies\u00a0the ability to truly understand their customers through developing user patterns, whether the sentiment over a particular topic is positive, neutral, or negative.<\/span><\/p>\n<p>If a customer is using your messaging platform to send a complaint about a particular product, and another user is also sending a complaint about the same product, sentiment analysis and deep learning can create an association between the two different conversations. This allows for a pattern to emerge showing that a particular product is receiving negative feedback, along with pattern collection of what adjectives are used to describe their experiences.<\/p>\n<p><span style=\"font-weight: 400;\">With the help of chat transcripts, Eberly said you can follow up with people on their personal experiences with your product.<\/span><\/p>\n<h3>Stay Connected<\/h3>\n<p><span style=\"font-weight: 400;\">Though it feels automatic most of the time, when you or your user loses phone or Internet connection, you could lose a user.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Frome of PubNub advises, \u201cYou need to manage disparate connections, switches between WiFi and 3G and 4G cellular connections, private firewalls, and much more. Delivering messages reliably with all those drops and reconnects is a big challenge, not to mention maintaining compatibility across devices and operating systems.\u201d<\/span><\/p>\n<h3>Get a Scope of the Possibilities<\/h3>\n<p><span style=\"font-weight: 400;\">Not all products\/websites need all the features of chat. But,\u00a0when you know what\u2019s possible, you can get a better idea of what best suits your needs. The next sections describe\u00a0how to get started with your chatting potential.<\/span><\/p>\n<h2>Adding Instant Messaging into Your App<\/h2>\n<p><span style=\"font-weight: 400;\">Sinch provides iOS, Android, and web (JavaScript) support for instant messaging. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">To use Sinch\u2019s SDK, you start by <\/span><a title=\"Register on Sinch\" href=\"http:\/\/www.sinch.com\/signup\" target=\"_blank\"><span style=\"font-weight: 400;\">registering your app<\/span><\/a><span style=\"font-weight: 400;\"> in order to receive the required keys and tokens that are applicable for your app. Then you <\/span><a title=\"Download the Sinch SDK\" href=\"http:\/\/www.sinch.com\/download\/\" target=\"_blank\"><span style=\"font-weight: 400;\">download the SDK<\/span><\/a><span style=\"font-weight: 400;\"> appropriate for your platform (Android, iOS, or web).<\/span><\/p>\n<p>To integrate messaging into your app (on iOS), you would start off with something like this:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">\f<\/span><span style=\"font-weight: 400;\">SINClient sinchClient;<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">[sinchClient setSupportMessaging: YES];<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">SINMessageClient messageClient = [sinchClient messageClient];<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">\/\/ Assign a delegate for instant messages events<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">messageClient.delegate = \u2026<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">SINOutgoingMessage *message = [SINOutgoingMessage messageWithRecipient:@&#8221;&lt;recipient user id&gt; text:@&#8221;Hi there!&#8221;];<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You must create a <\/span>SINClient<span style=\"font-weight: 400;\"> object, enable messaging support, and hook up the delegate. Then you pass the message you want to send (normally this would come from a text field on your app) and call: <\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">[messageClient sendMessage:message];<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can <\/span><a title=\"Sinch example messaging project\" href=\"https:\/\/www.sinch.com\/tutorials\/ios-messaging-app-with-giphy\/\" target=\"_blank\"><span style=\"font-weight: 400;\">download an example messaging project from Sinch<\/span><\/a><span style=\"font-weight: 400;\">, which will help you understand how to construct a complete messaging platform. There is a lot more to working with messaging, though, so you should also consult Sinch\u2019s <\/span><a title=\"Sinch documentation\" href=\"https:\/\/www.sinch.com\/docs\/instant-message\/ios\/\" target=\"_blank\"><span style=\"font-weight: 400;\">documentation<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h2>Adding SMS into Your App<\/h2>\n<p><span style=\"font-weight: 400;\">You can also\u00a0use Sinch<\/span><span style=\"font-weight: 400;\">\u00a0to send outbound and receive incoming SMS messages using the <a title=\"Sinch SMS Messaging API\" href=\"https:\/\/www.sinch.com\/products\/sms-api\/\" target=\"_blank\">SMS Messaging API<\/a>. (Just remember to first\u00a0<\/span><a title=\"Sinch SMS-Enabled Numbers\" href=\"https:\/\/www.sinch.com\/docs\/sms\/#smsnumbers\" target=\"_blank\"><span style=\"font-weight: 400;\">rent an SMS-enabled number<\/span><\/a><span style=\"font-weight: 400;\">.)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To send an SMS using the company&#8217;s RESTful API, you would utilize the POST endpoint:<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">https:\/\/messagingApi.Sinch.com\/v1\/Sms\/{number}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Of course, prior to using this method, you would need to be authenticated using <a title=\"oAuth\" href=\"https:\/\/en.wikipedia.org\/wiki\/OAuth\" target=\"_blank\">oAuth<\/a>. <\/span><em>{number}<\/em> <span style=\"font-weight: 400;\">refers to the mobile number you are sending to. Additionally, you are required to include this in the body:<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">&#8216;{&#8220;message&#8221;:&#8221;your_message&#8221;, \u201cfrom\u201d : \u201c+11111111111\u201d}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As a response, you would receive:<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">URL: [GET] https:\/\/messagingApi.Sinch.com\/v1\/message\/status\/1234<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This response\u00a0could later be used as a reference, such as to verify the status of the sent message.\u00a0The possible responses include\u00a0<\/span><i><span style=\"font-weight: 400;\">unknown, pending, successful,\u00a0<\/span><\/i><span style=\"font-weight: 400;\">or <\/span><i><span style=\"font-weight: 400;\">faulted<\/span><\/i><span style=\"font-weight: 400;\">. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can follow the source code for creating a voting app with SMS\u00a0(in <a title=\"Ruby\" href=\"https:\/\/www.ruby-lang.org\/en\/\" target=\"_blank\">Ruby<\/a>), which is <\/span><span style=\"font-weight: 400;\">available i<\/span><span style=\"font-weight: 400;\">n\u00a0<\/span><a title=\"Sinch tutorial on voting apps\" href=\"https:\/\/www.sinch.com\/tutorials\/ruby-sms-voting\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Sinch\u2019s tutorial section<\/span><\/a><span style=\"font-weight: 400;\">. Consult the <\/span><span style=\"font-weight: 400;\">documentation we referenced previously<\/span><span style=\"font-weight: 400;\"> to find out how to respond to inbound SMS messages. <\/span><\/p>\n<h2>Adding\u00a0Voice Calls into Your App<\/h2>\n<p><span style=\"font-weight: 400;\">In addition to instant messaging and SMS, Sinch gives you the ability to interact with switched telephone networks (PSTN) using high-quality voice termination to over 150 countries. The company\u00a0supports both outgoing and incoming calls (through an app and data or via a local phone number). <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sinch classifies and supports the following types of PSTN applications:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">App-to-app calling<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">App-to-phone calling<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Phone-to-phone calling<\/span><\/li>\n<\/ul>\n<h3>App-to-App Calling<\/h3>\n<p><span style=\"font-weight: 400;\">Here are some of the functionalities of <\/span><i><span style=\"font-weight: 400;\">Objective-C for iOS, <\/span><\/i><span style=\"font-weight: 400;\">starting with a simple a<\/span>pp-to-app calling<span style=\"font-weight: 400;\"> interaction (assuming you have already gone through the setup process to create a <\/span><i><span style=\"font-weight: 400;\">Call Client<\/span><\/i><span style=\"font-weight: 400;\">):<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">id&lt;SINCallClient&gt; callClient = [sinchClient callClient];<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">id&lt;SINCall&gt; call = [callClient callUserWithId:@&#8221;&lt;remote user id&gt;&#8221;];<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You get back a call object with the details of the participants in the phone call, including <\/span><i><span style=\"font-weight: 400;\">start time, call state,<\/span><\/i><span style=\"font-weight: 400;\">\u00a0and\u00a0<\/span><em><span style=\"font-weight: 400;\">possible<\/span><span style=\"font-weight: 400;\"> errors<\/span><\/em><i><span style=\"font-weight: 400;\">.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">When the delegate method\u00a0<em>callDidProgress<\/em>\u00a0<\/span>is triggered, it notifies your app that an outgoing call is in progress. When the targeted party answers the call, a <\/span><i><span style=\"font-weight: 400;\">callDidEstablish<\/span><\/i><span style=\"font-weight: 400;\"> delegate method is called, allowing for further information and customization to be made.<\/span><\/p>\n<h3>App-to-Phone Calling<\/h3>\n<p><span style=\"font-weight: 400;\">To conduct an app-to-phone calling <\/span><span style=\"font-weight: 400;\">interaction, we would simply switch the use of <\/span><i><span style=\"font-weight: 400;\">calluserWithId<\/span><\/i> <span style=\"font-weight: 400;\">in the code above with <\/span><i><span style=\"font-weight: 400;\">callPhoneNumber<\/span><\/i><span style=\"font-weight: 400;\">, passing in the phone number to call. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Once again, Sinch\u2019s <\/span><span style=\"font-weight: 400;\">documentation<\/span><span style=\"font-weight: 400;\"> provides complete coverage of what you can do with phone calling, as well as working with other platforms, such as Android and the web. Sinch also has\u00a0a\u00a0sample <\/span><a title=\"Sinch phone calling for Android\" href=\"https:\/\/www.sinch.com\/tutorials\/user-presence-system-tutorial\/\" target=\"_blank\"><span style=\"font-weight: 400;\">phone calling app for Android<\/span><\/a><span style=\"font-weight: 400;\">, which guides you through creating the UI as well as phone calling methods. <\/span><\/p>\n<h2>Adding\u00a0Video Calls into Your App<\/h2>\n<p><span style=\"font-weight: 400;\">Finally, Sinch also allows you to add support for video calling. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Currently the SDK is only available for web\/JavaScript and is still under development, and therefore not stable enough for production. Nevertheless, you start off by setting up the Sinch client as well as its capabilities. <\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">var sinchClient = new SinchClient({applicationKey: &#8216;&#8230;&#8217;, capabilities: {calling: true, video: true}}); \/\/ Notice the video capability<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">var call = sinchClient.callUser(&#8216;&lt;remote user id&gt;&#8217;);<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-weight: 400;\">call.addEventListener(&#8230;);<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The attribute <\/span><i><span style=\"font-weight: 400;\">video<\/span><\/i><span style=\"font-weight: 400;\">: <\/span><i><span style=\"font-weight: 400;\">true <\/span><\/i><span style=\"font-weight: 400;\">adds video capability to normal video calling, which is set up in the same way as we had done for voice calling. For handling callbacks and other methods related to the video call session, you would consult the audio calling section of the Sinch <\/span><span style=\"font-weight: 400;\">documentation<\/span><span style=\"font-weight: 400;\">. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Consult the documentation for\u00a0other advanced functionality, such as working with push notifications. <\/span><a title=\"Sinch Tutorials\" href=\"https:\/\/www.sinch.com\/tutorials\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Sinch also provides a tutorial section<\/span><\/a><span style=\"font-weight: 400;\"> with dozens of sample apps that cover a multitude of scenarios, complete with full-code and explanation.<\/span><\/p>\n<h2>Chat Is a Win-Win<\/h2>\n<p><span style=\"font-weight: 400;\">Whether you\u2019re using it for user engagement or sales conversions, enabling chat brings efficiency to how your product operates and how people interact with it. It cuts out the most annoying middle man of all \u2014 time.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><em>Additional reporting provided by <a title=\"Doron Katz\" href=\"http:\/\/thinkapps.com\/blog\/author\/doron\/\" target=\"_blank\">Doron Katz<\/a>. Feature image via <a title=\"Feature image credit on SplitShire\" href=\"http:\/\/www.splitshire.com\/girl-writes-message\/\" target=\"_blank\">SplitShire<\/a>.<\/em><\/p>\n<p>[Editor&#8217;s Note: This post was originally published on August 6, 2015. It was updated and republished on August 20, 2015.]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is a comprehensive guide about chat, a common feature of web and mobile apps. We cover how to build chat into your app and why you might want to.<\/p>\n","protected":false},"author":29,"featured_media":4901,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[348,113,350,349,371,366,367,346,369,347,370,275,368,324,183,372],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A Comprehensive Guide to Building Chat into Your App<\/title>\n<meta name=\"description\" content=\"This is a comprehensive guide about chat, a common feature of web and mobile apps. We cover how to build chat into your app and why you might want to.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Comprehensive Guide to Building Chat into Your App\" \/>\n<meta property=\"og:description\" content=\"This is a comprehensive guide about chat, a common feature of web and mobile apps. We cover how to build chat into your app and why you might want to.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/\" \/>\n<meta property=\"og:site_name\" content=\"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more\" \/>\n<meta property=\"article:published_time\" content=\"2015-08-20T17:00:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-09-10T18:21:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Chat-feature-image.jpg\" \/>\n<meta name=\"author\" content=\"Katelan Cunningham\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Katelan Cunningham\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/\",\"url\":\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/\",\"name\":\"A Comprehensive Guide to Building Chat into Your App\",\"isPartOf\":{\"@id\":\"http:\/\/localhost:8080\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Chat-feature-image.jpg\",\"datePublished\":\"2015-08-20T17:00:36+00:00\",\"dateModified\":\"2015-09-10T18:21:00+00:00\",\"author\":{\"@id\":\"http:\/\/localhost:8080\/blog\/#\/schema\/person\/96a17bf90b1201fdabb0dce65f9e28ed\"},\"description\":\"This is a comprehensive guide about chat, a common feature of web and mobile apps. We cover how to build chat into your app and why you might want to.\",\"breadcrumb\":{\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#primaryimage\",\"url\":\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Chat-feature-image.jpg\",\"contentUrl\":\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Chat-feature-image.jpg\",\"width\":5472,\"height\":3648,\"caption\":\"How to Build Chat into Your App\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/localhost:8080\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Comprehensive Guide to Building Chat into Your Web or Mobile App\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/localhost:8080\/blog\/#website\",\"url\":\"http:\/\/localhost:8080\/blog\/\",\"name\":\"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/localhost:8080\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/localhost:8080\/blog\/#\/schema\/person\/96a17bf90b1201fdabb0dce65f9e28ed\",\"name\":\"Katelan Cunningham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/localhost:8080\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/14ad919b8cf2e2495cd63c74977ee08a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/14ad919b8cf2e2495cd63c74977ee08a?s=96&d=mm&r=g\",\"caption\":\"Katelan Cunningham\"},\"description\":\"Katelan is a writer who covers technology, startups, and design. She likes discovering how innovation is constantly impacting our daily lives. Katelan lives in Los Angeles by way of The South.\",\"sameAs\":[\"http:\/\/katelancunningham.com\/\",\"https:\/\/www.linkedin.com\/in\/katelancunningham\",\"https:\/\/x.com\/kalivia\"],\"url\":\"https:\/\/thinkapps.com\/blog\/author\/katelan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Comprehensive Guide to Building Chat into Your App","description":"This is a comprehensive guide about chat, a common feature of web and mobile apps. We cover how to build chat into your app and why you might want to.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/","og_locale":"en_US","og_type":"article","og_title":"A Comprehensive Guide to Building Chat into Your App","og_description":"This is a comprehensive guide about chat, a common feature of web and mobile apps. We cover how to build chat into your app and why you might want to.","og_url":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/","og_site_name":"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more","article_published_time":"2015-08-20T17:00:36+00:00","article_modified_time":"2015-09-10T18:21:00+00:00","og_image":[{"url":"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Chat-feature-image.jpg"}],"author":"Katelan Cunningham","twitter_misc":{"Written by":"Katelan Cunningham","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/","url":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/","name":"A Comprehensive Guide to Building Chat into Your App","isPartOf":{"@id":"http:\/\/localhost:8080\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#primaryimage"},"image":{"@id":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#primaryimage"},"thumbnailUrl":"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Chat-feature-image.jpg","datePublished":"2015-08-20T17:00:36+00:00","dateModified":"2015-09-10T18:21:00+00:00","author":{"@id":"http:\/\/localhost:8080\/blog\/#\/schema\/person\/96a17bf90b1201fdabb0dce65f9e28ed"},"description":"This is a comprehensive guide about chat, a common feature of web and mobile apps. We cover how to build chat into your app and why you might want to.","breadcrumb":{"@id":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#primaryimage","url":"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Chat-feature-image.jpg","contentUrl":"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2015\/08\/06201636\/Chat-feature-image.jpg","width":5472,"height":3648,"caption":"How to Build Chat into Your App"},{"@type":"BreadcrumbList","@id":"https:\/\/thinkapps.com\/blog\/development\/how-to-build-chat-into-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/localhost:8080\/blog\/"},{"@type":"ListItem","position":2,"name":"A Comprehensive Guide to Building Chat into Your Web or Mobile App"}]},{"@type":"WebSite","@id":"http:\/\/localhost:8080\/blog\/#website","url":"http:\/\/localhost:8080\/blog\/","name":"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/localhost:8080\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/localhost:8080\/blog\/#\/schema\/person\/96a17bf90b1201fdabb0dce65f9e28ed","name":"Katelan Cunningham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/localhost:8080\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/14ad919b8cf2e2495cd63c74977ee08a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/14ad919b8cf2e2495cd63c74977ee08a?s=96&d=mm&r=g","caption":"Katelan Cunningham"},"description":"Katelan is a writer who covers technology, startups, and design. She likes discovering how innovation is constantly impacting our daily lives. Katelan lives in Los Angeles by way of The South.","sameAs":["http:\/\/katelancunningham.com\/","https:\/\/www.linkedin.com\/in\/katelancunningham","https:\/\/x.com\/kalivia"],"url":"https:\/\/thinkapps.com\/blog\/author\/katelan\/"}]}},"_links":{"self":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts\/4875"}],"collection":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/comments?post=4875"}],"version-history":[{"count":43,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts\/4875\/revisions"}],"predecessor-version":[{"id":5441,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts\/4875\/revisions\/5441"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/media\/4901"}],"wp:attachment":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/media?parent=4875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/categories?post=4875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/tags?post=4875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}