{"id":7998,"date":"2015-09-28T17:55:35","date_gmt":"2015-09-28T16:55:35","guid":{"rendered":"http:\/\/intercom.com\/blog\/?p=7998"},"modified":"2020-07-30T13:02:18","modified_gmt":"2020-07-30T12:02:18","slug":"created-video-chat","status":"publish","type":"post","link":"https:\/\/www.intercom.com\/blog\/created-video-chat\/","title":{"rendered":"Building a feature no one asked for"},"content":{"rendered":"<p class=\"opening_paragraph\">We recently created\u00a0a feature in Intercom that none of our customers were asking for &#8211; video replies.<\/p>\n<p>I explained why at a recent Intercom\u00a0event about product building. What follows is a lightly edited transcript of my talk, along with some of the presentation slides I used on the night.<\/p>\n<hr \/>\n<p>A big part of Intercom is <a href=\"https:\/\/www.intercom.com\/blog\/messenger\" target=\"_blank\" rel=\"noopener noreferrer\">our in-app messenger<\/a>. This is embedded into our customers&#8217; websites\u00a0and\u00a0allows them to have conversations with their users, right there in the context of their app. The messenger\u00a0works a little bit like WhatsApp. You can communicate with text, emojis, stickers, etc.<\/p>\n<p>Recently, I was working on adding another communication medium for our users, video. Messaging with video is a brand new feature that we&#8217;ve just added to Intercom. So recently, in fact, that it&#8217;s not fully released yet. It lets you respond in a conversation by recording a video right there in the Intercom app, which the person you&#8217;re talking to sees straightaway, like the image below.<\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8003 size-large\" src=\"https:\/\/blog.intercomcdn.com\/wp-content\/uploads\/2015\/09\/17190045\/1_Stewart_Messaging-1024x576.jpg\" alt=\"1_Stewart_Messaging\" width=\"640\" height=\"360\" \/><\/p>\n<p>As well as being new, it&#8217;s also an interesting feature from a development point of view. The road map of what we built at Intercom comes from five different strands.<\/p>\n<ol>\n<li>We iterate on our current products.<\/li>\n<li>We add new features to solve customer problems.<\/li>\n<li>We improve the quality of our existing features.<\/li>\n<li>We work on scalability.<\/li>\n<li>And we make sure to find time to innovate and experiment with brand new ideas.<\/li>\n<\/ol>\n<p>These are bets we make on new concepts based on how we believe communication is evolving, and video messaging was one of these ideas. Our customers weren&#8217;t asking for it. No one thought it was an obvious thing that we needed to have. Instead, the idea came from asking a question, the same question that drives all of our product development. How can we make internet business more personal?<\/p>\n<h2 id=\"ask-the-right-questions-early\">Ask The Right Questions Early<\/h2>\n<p>This time, we started by asking ourselves, &#8220;How can we bring face-to-face interactions to the web?&#8221; Of course, lots of products give you face-to-face interaction with video calls, but those are high friction. Both people have to be online at the same time. It&#8217;s something people typically arranged ahead of time, rather than\u00a0a casual interaction.<\/p>\n<p>What we&#8217;re imagining is a little different: video messaging from one browser to another. It&#8217;s as personal as a call, but it works either synchronously or asynchronously. This is core to the way we think <a href=\"https:\/\/www.intercom.com\/blog\/live-chat-guide\/\">internet communication is evolving<\/a>. Part of the conversation, which can happen in real-time when both people are online, can also occur\u00a0asynchronously over minutes, hours, or days. All of our features are designed with this in mind.<\/p>\n<p>So one of our designers thinks up an idea that illustrates how this might feel \u2013\u00a0hold down your space bar and say, &#8220;Hey, thanks,&#8221; and then let go to send. Then we go to work, figuring out how we can make this concept real.<\/p>\n<p>The first thing we do is build a <a href=\"https:\/\/builtbykrit.com\/blog\/five-examples-of-no-code-prototypes\" target=\"_blank\" rel=\"noopener noreferrer\">really simple prototype<\/a>. It&#8217;s half mock-up, half tech demo. We want this to answer two questions: Does this actually feel cool? And is it technically possible?<\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8004 size-large\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2015\/09\/2_Stewart_Designer-Slide-1024x576.jpg\" alt=\"2_Stewart_Designer Slide\" width=\"640\" height=\"360\" \/><\/p>\n<h2 id=\"navigating-technical-roadblocks\">Navigating Technical Roadblocks<\/h2>\n<p>Recording video in the browser is not a well-trodden path. It actually varies widely between different browsers. Firefox implements the latest HTML5 MediaRecorder APIs, which means the browser itself does the heavy lifting for us of recording a video file \u2013 but most of our users are on Chrome. For once, Chrome is behind the curve. It doesn&#8217;t implement video recording at all. We can get access to the camera and the mic streams without a problem, but to turn this into a video file, we need to build it ourselves from the raw camera stream.<\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8005 size-large\" src=\"https:\/\/blog.intercomcdn.com\/wp-content\/uploads\/2015\/09\/17190617\/3_Stewart_CaptureVideo-e1442513275756-1024x576.jpg\" alt=\"3_Stewart_CaptureVideo\" width=\"640\" height=\"360\" \/><\/p>\n<p>It would&#8217;ve been really nice to\u00a0come back in a year, when all the browser support is there. But we have a go anyway to see if we can work around this and still record video natively in the browser. We found out, with a little work, it&#8217;s very possible.<\/p>\n<p>You add a JavaScript recorder in the background, which snapshots the video and audio streams in real-time, collects up all the frames, and then compiles them into binary media files. We soon have a prototype working and<span class=\"Apple-converted-space\">\u00a0<\/span>start recording some video. It quickly becomes clear that, yes, this does actually feel cool.<\/p>\n<h2 id=\"the-difference-between-product-and-prototype\">The Difference Between Product and Prototype<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8009 size-large\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2015\/09\/4_Stewart_PrototypeSlide-B-1024x576.jpg\" alt=\"4_Stewart_PrototypeSlide-B\" width=\"640\" height=\"360\" \/><br \/>\nA prototype is great, but it&#8217;s not the same thing as a usable product. It&#8217;s still an experiment at this point. We might miss something that makes it technically impossible, and we still don&#8217;t ultimately\u00a0know if it&#8217;s even a good idea to build \u2013 but we believe\u00a0the best way to find that out is to go and build it.<\/p>\n<p>So we start trying to turn this into something real, but of course, hit some more snags along the way. You might think making a video file available is a lot like any other type of file. The video gets uploaded to Intercom, and Intercom makes it available for users to watch. It turns out it&#8217;s a little more complicated. Videos come in different encodings, and to get reliable playback across different browsers, we had to send out a raw recorded file that someone has put together. It has to be transcoded to the right encodings first.<\/p>\n<p>Every service working with video deals with this problem. It&#8217;s so common that there&#8217;s a whole sector of third-party services out there who\u00a0just do transcoding. We are fully expected to use one of these services. It makes sense. <a href=\"https:\/\/www.intercom.com\/blog\/videos\/engineering-principles-building-real-time-intercom\/\" target=\"_blank\" rel=\"noopener noreferrer\">We prefer to run less software.<\/a> If we can buy it from someone else rather than building it ourselves, that&#8217;s a better option.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8062 size-large\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2015\/09\/Mike-Stewart-Video-Transcoding-1024x576.png\" alt=\"Mike Stewart Video Transcoding\" width=\"640\" height=\"360\" \/><\/p>\n<p>But video transcoding isn&#8217;t usually something that needs to happen real-time. So those third-party services all operate on a different model. You give them some work to do, and then some time later \u2013 maybe it&#8217;s 30 seconds, maybe it&#8217;s 60 seconds, maybe it&#8217;s two minutes \u2013they get back to you with the results. This doesn&#8217;t work for us.<\/p>\n<p>Our videos can be part of a real-time conversation. You can be instant messaging with someone, record a video to send them, and then follow up straightaway with some more IMs. If the video takes even 30 seconds to deliver, that breaks this flow. It no longer feels like a real-time conversation.<\/p>\n<p>So at this point, it&#8217;s getting a little hard to achieve our original vision. We could&#8217;ve compromised on the user experience here and said, \u201cVideos aren&#8217;t like other messages. They&#8217;re not real-time. They&#8217;re not quite consistent with how everything else in Intercom works.\u201d But sacrificing the user experience like that is not something we&#8217;re ever comfortable doing.<\/p>\n<h2 id=\"easing-into-implementation\">Easing Into Implementation<\/h2>\n<p>This could have been an off-ramp. It&#8217;s a point where we could&#8217;ve easily said, \u201cWe flushed out all these technical problems, and found out it&#8217;s not practical to have this in Intercom.\u201d Maybe stopping\u00a0here would have been the pragmatic choice, because, after all, we don&#8217;t even know if anyone will use this. But we have an explicit budget for experimentation, to try to make new things work, and we&#8217;re going to use it.<\/p>\n<p>So we keep going\u00a0and\u00a0start looking at whether we can build real-time transcoding ourselves. We have a couple of advantages compared to third-party services.<\/p>\n<ol>\n<li>Our videos are always\u00a0short.<\/li>\n<li>We don\u2019t care a ton about high-def quality, so we can optimize for faster turnarounds.<\/li>\n<li>Critically, we don&#8217;t need to do a better job than these companies who do transcoding for a living. We just need a stripped-down version that does a better job for our really specific use case.<\/li>\n<\/ol>\n<p>So we stand up a simple video processing server, and with a little bit of tweaking, we managed to get transcoding times down to just a couple seconds. Critically, that&#8217;s fast enough to feel real-time. We shipped this transcoding service, and then we get back to shipping the main feature.<\/p>\n<p>And that&#8217;s worth calling out: every stop along the way here, from the very first week, we were shipping this to production daily. It was hidden for anyone outside of Intercom, but the code was deployed and usable. That&#8217;s how we always like to ship\u00a0features.<\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8010 size-large\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2015\/09\/5_Stewart_WorkInProgress.001-1024x576.jpg\" alt=\"5_Stewart_WorkInProgress.001\" width=\"640\" height=\"360\" \/><\/p>\n<p>We first deployed the most basic possible version. It had no sound, and it attached\u00a0as a file, which you had to click to open in a new tab. We could send messages to ourselves internally at this point. It wasn&#8217;t close to a real feature yet. Then some changes later, we shipped sound support. Next\u00a0we added new rendering to make it play back in-line, rather than just being a link that you click on.<\/p>\n<p>Things slowly came together. We had a little additional\u00a0work to get a smoother player, but it started to look pretty decent.<\/p>\n<h2 id=\"test-learn-and-evolve\">Test, Learn and Evolve<\/h2>\n<p>After more continuous shipping, we added a nice recording experience, slick enough for our real customers to use. That brings us to the place we&#8217;re at right now, where we get to find out how people use it. How does it feel to video message real people in a conversation? How do our customers use it? Our challenge is to start learning and then video messaging in business communications, the same way we learned about how people use email, IMs, emoji, and everything else to communicate.<\/p>\n<p class=\"p1\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8007 size-large\" src=\"https:\/\/intercom.com\/blog\/wp-content\/uploads\/2015\/09\/5_Stewart_FinalVideo-1024x576.jpg\" alt=\"5_Stewart_FinalVideo\" width=\"640\" height=\"360\" \/><\/p>\n<p>This feature has been released to a couple hundred of our beta users, and we&#8217;re already getting a ton of feedback on how they use it. Some people are sending fun, whimsical messages. Others are sending quick responses, narrating live demos\u00a0or delivering\u00a0hyper-personalized messages to their VIPs.<\/p>\n<p>Although it&#8217;s very early in the life of this feature, we think video messaging could become a really exciting new way for businesses to communicate. This is a concrete example of our mission here at Intercom: to create more personal mediums for businesses to talk to their customers.<\/p>\n<p>Innovation takes dedicated time and effort. It takes a willingness within a whole organization to experiment with something that might completely fail, as well as a bit of stubbornness to not give up when things get tricky. But the reward that we get when this works out is a whole new medium for people to talk to their customers. We don&#8217;t know exactly what this point will evolve into, or what kind of new interactions it&#8217;s going to allow, but we&#8217;re really looking forward to finding out.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>We recently created\u00a0a feature in Intercom that none of our customers were asking for &#8211; video replies. I explained why at a recent Intercom\u00a0event about product building. What follows is a lightly edited transcript of my&hellip;<\/p>\n","protected":false},"author":151,"featured_media":8058,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"category":[4],"tags":[189,153,161,182],"coauthors":[394],"class_list":["post-7998","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-innovation","tag-product-design","tag-product-development","tag-strategy"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Building a feature no one asked for - The Intercom Blog<\/title>\n<meta name=\"description\" content=\"We built a new product feature, video chat integration, from scratch. Mike Stewart explains the process and strategy behind why we did it.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.intercom.com\/blog\/created-video-chat\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building a feature no one asked for\" \/>\n<meta property=\"og:description\" content=\"We built a new product feature, video chat integration, from scratch. Mike Stewart explains the process and strategy behind why we did it.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.intercom.com\/blog\/created-video-chat\/\" \/>\n<meta property=\"og:site_name\" content=\"The Intercom Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/intercominc\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-28T16:55:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-30T12:02:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2015\/09\/8_Mike-Stewart_Hero.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1968\" \/>\n\t<meta property=\"og:image:height\" content=\"965\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mike Stewart\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@thatmikefellow\" \/>\n<meta name=\"twitter:site\" content=\"@intercom\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mike Stewart\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/\"},\"author\":{\"name\":\"Mike Stewart\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/0e129b1d11cd5a4f066a7a4ef5431346\"},\"headline\":\"Building a feature no one asked for\",\"datePublished\":\"2015-09-28T16:55:35+00:00\",\"dateModified\":\"2020-07-30T12:02:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/\"},\"wordCount\":1787,\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/09\\\/8_Mike-Stewart_Hero.png\",\"keywords\":[\"innovation\",\"product design\",\"product development\",\"strategy\"],\"articleSection\":[\"News &amp; Updates\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/\",\"name\":\"Building a feature no one asked for - The Intercom Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/09\\\/8_Mike-Stewart_Hero.png\",\"datePublished\":\"2015-09-28T16:55:35+00:00\",\"dateModified\":\"2020-07-30T12:02:18+00:00\",\"description\":\"We built a new product feature, video chat integration, from scratch. Mike Stewart explains the process and strategy behind why we did it.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/created-video-chat\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/09\\\/8_Mike-Stewart_Hero.png\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/09\\\/8_Mike-Stewart_Hero.png\",\"width\":1968,\"height\":965},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"name\":\"The Intercom Blog\",\"description\":\"Articles and Podcasts on Customer Service, AI and Automation, Product, and more\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#organization\",\"name\":\"The Intercom Blog\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"contentUrl\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Intercom-logo-sq-black-trans.png\",\"width\":1000,\"height\":1000,\"caption\":\"The Intercom Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/intercominc\",\"https:\\\/\\\/x.com\\\/intercom\",\"https:\\\/\\\/www.instagram.com\\\/intercom\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/2491343\",\"https:\\\/\\\/www.pinterest.ie\\\/intercom\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJG0MvLP03kyzzAkD-w98aQ\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Intercom_(company)\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/#\\\/schema\\\/person\\\/0e129b1d11cd5a4f066a7a4ef5431346\",\"name\":\"Mike Stewart\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/17a1926e0c87e5ee6cfeb9405a8effce7462e616ea2aed8891f210d7cdac680d?s=96&d=mm&r=pg63784327ec0e98ccffdbba709503fc3d\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/17a1926e0c87e5ee6cfeb9405a8effce7462e616ea2aed8891f210d7cdac680d?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/17a1926e0c87e5ee6cfeb9405a8effce7462e616ea2aed8891f210d7cdac680d?s=96&d=mm&r=pg\",\"caption\":\"Mike Stewart\"},\"description\":\"Engineer @Intercom\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/thatmikefellow\"],\"url\":\"https:\\\/\\\/www.intercom.com\\\/blog\\\/author\\\/thatmikefellow\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Building a feature no one asked for - The Intercom Blog","description":"We built a new product feature, video chat integration, from scratch. Mike Stewart explains the process and strategy behind why we did it.","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:\/\/www.intercom.com\/blog\/created-video-chat\/","og_locale":"en_US","og_type":"article","og_title":"Building a feature no one asked for","og_description":"We built a new product feature, video chat integration, from scratch. Mike Stewart explains the process and strategy behind why we did it.","og_url":"https:\/\/www.intercom.com\/blog\/created-video-chat\/","og_site_name":"The Intercom Blog","article_publisher":"https:\/\/www.facebook.com\/intercominc","article_published_time":"2015-09-28T16:55:35+00:00","article_modified_time":"2020-07-30T12:02:18+00:00","og_image":[{"width":1968,"height":965,"url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2015\/09\/8_Mike-Stewart_Hero.png","type":"image\/png"}],"author":"Mike Stewart","twitter_card":"summary_large_image","twitter_creator":"@thatmikefellow","twitter_site":"@intercom","twitter_misc":{"Written by":"Mike Stewart","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.intercom.com\/blog\/created-video-chat\/#article","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/created-video-chat\/"},"author":{"name":"Mike Stewart","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/0e129b1d11cd5a4f066a7a4ef5431346"},"headline":"Building a feature no one asked for","datePublished":"2015-09-28T16:55:35+00:00","dateModified":"2020-07-30T12:02:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/created-video-chat\/"},"wordCount":1787,"publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/created-video-chat\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2015\/09\/8_Mike-Stewart_Hero.png","keywords":["innovation","product design","product development","strategy"],"articleSection":["News &amp; Updates"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.intercom.com\/blog\/created-video-chat\/","url":"https:\/\/www.intercom.com\/blog\/created-video-chat\/","name":"Building a feature no one asked for - The Intercom Blog","isPartOf":{"@id":"https:\/\/www.intercom.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.intercom.com\/blog\/created-video-chat\/#primaryimage"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/created-video-chat\/#primaryimage"},"thumbnailUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2015\/09\/8_Mike-Stewart_Hero.png","datePublished":"2015-09-28T16:55:35+00:00","dateModified":"2020-07-30T12:02:18+00:00","description":"We built a new product feature, video chat integration, from scratch. Mike Stewart explains the process and strategy behind why we did it.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.intercom.com\/blog\/created-video-chat\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/created-video-chat\/#primaryimage","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2015\/09\/8_Mike-Stewart_Hero.png","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2015\/09\/8_Mike-Stewart_Hero.png","width":1968,"height":965},{"@type":"WebSite","@id":"https:\/\/www.intercom.com\/blog\/#website","url":"https:\/\/www.intercom.com\/blog\/","name":"The Intercom Blog","description":"Articles and Podcasts on Customer Service, AI and Automation, Product, and more","publisher":{"@id":"https:\/\/www.intercom.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intercom.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.intercom.com\/blog\/#organization","name":"The Intercom Blog","url":"https:\/\/www.intercom.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","contentUrl":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2019\/08\/Intercom-logo-sq-black-trans.png","width":1000,"height":1000,"caption":"The Intercom Blog"},"image":{"@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/intercominc","https:\/\/x.com\/intercom","https:\/\/www.instagram.com\/intercom\/","https:\/\/www.linkedin.com\/company\/2491343","https:\/\/www.pinterest.ie\/intercom\/","https:\/\/www.youtube.com\/channel\/UCJG0MvLP03kyzzAkD-w98aQ","https:\/\/en.wikipedia.org\/wiki\/Intercom_(company)"]},{"@type":"Person","@id":"https:\/\/www.intercom.com\/blog\/#\/schema\/person\/0e129b1d11cd5a4f066a7a4ef5431346","name":"Mike Stewart","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/17a1926e0c87e5ee6cfeb9405a8effce7462e616ea2aed8891f210d7cdac680d?s=96&d=mm&r=pg63784327ec0e98ccffdbba709503fc3d","url":"https:\/\/secure.gravatar.com\/avatar\/17a1926e0c87e5ee6cfeb9405a8effce7462e616ea2aed8891f210d7cdac680d?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/17a1926e0c87e5ee6cfeb9405a8effce7462e616ea2aed8891f210d7cdac680d?s=96&d=mm&r=pg","caption":"Mike Stewart"},"description":"Engineer @Intercom","sameAs":["https:\/\/x.com\/thatmikefellow"],"url":"https:\/\/www.intercom.com\/blog\/author\/thatmikefellow\/"}]}},"jetpack_featured_media_url":"https:\/\/www.intercom.com\/blog\/wp-content\/uploads\/2015\/09\/8_Mike-Stewart_Hero.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/7998","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/users\/151"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/comments?post=7998"}],"version-history":[{"count":0,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/posts\/7998\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/media\/8058"}],"wp:attachment":[{"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/media?parent=7998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/category?post=7998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/tags?post=7998"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.intercom.com\/blog\/wp-json\/wp\/v2\/coauthors?post=7998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}