<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 <title>Arun Thampi</title>
 <link href="http://mclov.in/atom.html" rel="self"/>
 <link href="http://mclov.in/"/>
 <updated>2024-05-16T22:46:17+00:00</updated>
 <id>http://mclov.in/</id>
 <author>
   <name>Arun Thampi</name>
   <email>arun.thampi@gmail.com</email>
 </author>
 
 
 <entry>
   <title>Howdy acquires Botmetrics</title>
   <link href="http://mclov.in/2017/07/11/Howdy-acquires-Botmetrics.html"/>
   <updated>2017-07-11T17:09:39+00:00</updated>
   <id>http://mclov.in/2017/07/11/Howdy-acquires-Botmetrics</id>
   <content type="html">&lt;h2 id=&quot;howdy-acquires-botmetrics&quot;&gt;Howdy acquires Botmetrics&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We’re excited to announce today that &lt;a href=&quot;https://www.howdy.ai&quot;&gt;Howdy&lt;/a&gt; is acquiring &lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;Botmetrics&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*6dI33C8xcEHBUoxgYqEzCQ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We started Botmetrics with the aim of enabling bot makers to better understand their users and increase engagement within the brand new conversational UI paradigm. Together with Botkit, we have &lt;strong&gt;&lt;em&gt;processed over half a billion customer interactions&lt;/em&gt;&lt;/strong&gt; and customers love Botmetrics for its ease of use and simplicity.&lt;/p&gt;

&lt;h4 id=&quot;enter-howdy&quot;&gt;Enter Howdy&lt;/h4&gt;

&lt;p&gt;We have been big fans of Howdy since they started over two years ago and they are the &lt;a href=&quot;https://github.com/howdyai/botkit&quot;&gt;&lt;strong&gt;&lt;em&gt;#1 framework that developers use&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; to build conversational agents.&lt;/p&gt;

&lt;p&gt;We started working with the team at Howdy on a &lt;a href=&quot;https://github.com/botmetrics/botkit-middleware-botmetrics&quot;&gt;Botkit integration&lt;/a&gt; a few months ago and what we learnt was that customers loved the integration and wanted a more unified experience that allowed them to both build and measure their bot in &lt;em&gt;one&lt;/em&gt; place.&lt;/p&gt;

&lt;p&gt;With Howdy’s deep commitment to open source, it became clear to us that we should take our partnership to the next level and we’re excited to embed Botmetrics more deeply within the Botkit ecosystem — both open-source as well as &lt;a href=&quot;https://studio.botkit.ai&quot;&gt;Botkit Studio&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;whats-next&quot;&gt;What’s Next?&lt;/h4&gt;

&lt;p&gt;Botmetrics will continue to operate as it is today with more details to come in the coming months on an integration with Botkit Studio. Howdy is also taking ownership of the Botmetrics open-source repository and will be accepting patches, issues and improvements.&lt;/p&gt;

&lt;p&gt;Head over to the &lt;a href=&quot;http://community.botkit.ai/&quot;&gt;Botkit Community&lt;/a&gt; where &lt;a href=&quot;https://twitter.com/_sandeep&quot;&gt;Sandeep&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/iamclovin&quot;&gt;I&lt;/a&gt; along with the rest of the Botkit crew will be happy to take your questions!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;We’d like to thank our investors: &lt;a href=&quot;http://socialcapital.com&quot;&gt;Social Capital&lt;/a&gt; and &lt;a href=&quot;http://graphventures.com&quot;&gt;Graph Ventures&lt;/a&gt;, our accelerator program &lt;a href=&quot;http://plugandplaytechcenter.com/&quot;&gt;Plug and Play Tech Center&lt;/a&gt;, our users, and all of our well-wishers for your love, support and advice over the last year and we’re excited to advance the bot ecosystem together with Howdy ❤&lt;/li&gt;
  &lt;li&gt;Special thanks to the team at &lt;a href=&quot;http://block71sf.com&quot;&gt;Block71&lt;/a&gt; for their support during the last year, for providing us with excellent office space and great facilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;— &lt;a href=&quot;https://twitter.com/iamclovin&quot;&gt;Arun&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://twitter.com/_sandeep&quot;&gt;Sandeep&lt;/a&gt;&lt;/p&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 <entry>
   <title>150x Speedup in Real-Time Dashboards with Postgres 9.5</title>
   <link href="http://mclov.in/2017/04/06/150x-Speedup-in-Real-Time-Dashboards-with-Postgres-9-5-2e987a5b906e.html"/>
   <updated>2017-04-06T15:02:00+00:00</updated>
   <id>http://mclov.in/2017/04/06/150x-Speedup-in-Real-Time-Dashboards-with-Postgres-9-5-2e987a5b906e</id>
   <content type="html">&lt;h2 id=&quot;150x-speedup-in-real-time-dashboards-with-postgres-95&quot;&gt;150x Speedup in Real-Time Dashboards with Postgres 9.5&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*IjJkMCJkhJ0ChzIe8aKfkw.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I was taking in the beauty of Big Sur during Thanksgiving weekend, an alert goes off indicating that the &lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;Botmetrics&lt;/a&gt; (the conversational intelligence platform we’re building) was experiencing high page-load latencies for our dashboards pages.&lt;/p&gt;

&lt;p&gt;We’d just signed up a large customer the previous week and while we were processing millions of events per day (3–5k requests per minute), our query engine was having intermittent trouble (with request latencies &amp;gt;15s) digesting large volumes of data.&lt;/p&gt;

&lt;p&gt;With the help of our friends at &lt;a href=&quot;https://citusdata.com&quot;&gt;&lt;strong&gt;&lt;em&gt;Citus&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;, &lt;strong&gt;&lt;em&gt;we re-architected our system in a matter of days&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;and were able to speed up our query engine 150x&lt;/em&gt;&lt;/strong&gt;. This is how we did it.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*C0OVLLlDV0y2CjdiObhuNg.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;journey-from-a-100s-of-reqmin-to-1000s-ofreqmin&quot;&gt;Journey from a 100’s of req/min to 1000’s of req/min&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;Botmetrics&lt;/a&gt; is a conversational intelligence platform that allows customers to &lt;strong&gt;&lt;em&gt;measure and analyze conversations&lt;/em&gt;&lt;/strong&gt;. We support Facebook, Kik, Slack, SMS (Twilio), Google Home and web-based conversations. We did have a couple of high volume customers but a week before Thanksgiving, we onboarded one of the top Facebook Messenger bots on our platform and the volume of data we were processing increased by an order of magnitude.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*QnARDkgy0h91DCkmPbc3hQ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;stepping-back-our-datamodel&quot;&gt;&lt;strong&gt;Stepping Back: Our Data Model&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Botmetrics uses &lt;a href=&quot;https://www.postgresql.org&quot;&gt;Postgres&lt;/a&gt; as its primary data store and has served us well. The key data model that is relevant to this story is the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;**_events_**&lt;/code&gt; table — which stores all of the different events that are sent by our customers (these can include events such as plain text, but also complicated structured data such as images, location coordinates, button clicks and so on). Different messenger platforms have different data schemas for their message payloads but with Postgres’ &lt;a href=&quot;https://www.postgresql.org/docs/9.5/static/functions-json.html&quot;&gt;JSONB data structure&lt;/a&gt;, we are able to ingest all of the varied data and store them in a &lt;strong&gt;&lt;em&gt;single table&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*v91-SqkAX7ox_gKhkmhBgQ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With JSONB, we can set uniqueness constraints on child elements of the JSON column so that we don’t duplicate events. For e.g. Facebook uses a combination of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mid&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;seq&lt;/code&gt; to determine the uniqueness of an event, Slack uses a combination of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;channel_id&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;timestamp&lt;/code&gt; and with Postgres we are able to set conditional uniqueness constraints (depending on the messenger platform).&lt;/p&gt;

&lt;h4 id=&quot;the-original-data-flowdesign&quot;&gt;The Original Data Flow Design&lt;/h4&gt;

&lt;p&gt;As with any well-designed event ingestion architecture, our Events Collection API is decoupled from the Events Processing Engine, thus allowing us to scale each component independently. The HTTP endpoints queues up events in our message queue and event processors then pick up the events and performs pre-processing on it (validation, normalization of data fields and de-deduplication) before INSERTing into the events table in Postgres.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*Ulx5VEl1zvZdn8zWopeZqQ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Query Engine would then query the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;events&lt;/code&gt; table to generate time-series data, which is used by the web frontend to display the pretty graphs and tables.&lt;/p&gt;

&lt;h4 id=&quot;limits-of-thedesign&quot;&gt;Limits of The Design&lt;/h4&gt;

&lt;p&gt;The limitation of this design is that as the number of rows in the database approaches tens of millions, querying this table (even with good indexes) results in very large query times. Some queries require &lt;strong&gt;&lt;em&gt;&amp;gt;15s&lt;/em&gt;&lt;/strong&gt; query time which results in an inferior user experience.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*zAqzD-jwX_9OmbH_NdrbdQ.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;use-the-rollupsluke&quot;&gt;Use the Rollups, Luke&lt;/h4&gt;

&lt;p&gt;One of the solutions (which we had intended to get to at some point) is for the engine to not query the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;events&lt;/code&gt; table directly but to cache the counts in a separate column or table and query that instead.&lt;/p&gt;

&lt;p&gt;Coming from a Rails world, the obvious solution would have been to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;counter_cache&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;after_create&lt;/code&gt; callbacks and store the rolled-up counts for events in a separate table. There are a few problems with this however:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Delegating this responsibility to the app layer is fraught with danger as we would have to do extra checks to make sure that we wrap these database writes/updates in transactions.&lt;/li&gt;
  &lt;li&gt;Account for app deploys and restarts interrupting these callbacks and causing inconsistent values to be presented to the user.&lt;/li&gt;
  &lt;li&gt;Callbacks in the app code are cause unintended effects (especially while running tests) that you have to account for.&lt;/li&gt;
  &lt;li&gt;At the scale at which we were operating, we had to be careful for the callbacks to itself cause a thundering herd problem with updates to the same row in the rolled up table.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It was clear to us at this point that we needed a solution that was native to the database. Enter Citus.&lt;/p&gt;

&lt;h4 id=&quot;postgres-triggers-upserts-andqueues&quot;&gt;Postgres Triggers, Upserts and Queues&lt;/h4&gt;

&lt;p&gt;Thanks to the amazing content from the folks at &lt;a href=&quot;https://citusdata.com&quot;&gt;Citus&lt;/a&gt;, I came across a reference implementation of how rollups can be implemented in a sane way. You should definitely watch the video tutorial, but the TL;DR is:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Use Postgres triggers (upon &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;INSERT&lt;/code&gt; of row in the events table) to queue up count data to an intermediate table (called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rolledup_events_queue&lt;/code&gt; ).&lt;/li&gt;
  &lt;li&gt;At a specified frequency (with some jitter so as to avoid the thundering herd problem), we use Postgres 9.5’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;UPSERT&lt;/code&gt; feature to take all of the pending counts in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rolledup_events_queue&lt;/code&gt; table and roll them up (by hour) in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rolledup_events&lt;/code&gt; table.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The function that is invoked to flush the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rolledup_events_queue&lt;/code&gt;table is presented here:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The Query Engine then queries from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rolledup_events&lt;/code&gt; table. Due to the highly dense nature of conversational metrics (messages between agent and user happen in a matter of seconds and minutes), in initial testing we were able to achieve &lt;strong&gt;&lt;em&gt;rollup gains of 7x and massive increases in query performance.&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The updated data flow model is presented here:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*eHPJRmU0c4j_nW_3ltgMeA.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;deploying-to-production&quot;&gt;Deploying to Production&lt;/h4&gt;

&lt;p&gt;The next step was to deploy the system in production with zero-downtime and zero data-loss. Our de-coupled event processing system allowed us to perform upgrades to our database without any downtime.&lt;/p&gt;

&lt;p&gt;(For the curious, we performed three dry runs of this process, ran scripts to make sure there was no data loss before we deployed the changes to production).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;During the upgrade process, we turned off the event processor engines which would take raw event data from the message queue and insert them into the database. (As a consequence of this, we warned users beforehand that their dashboards would not update in real-time for a few hours).&lt;/li&gt;
  &lt;li&gt;Since our Postgres trigger was activated on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;INSERT&lt;/code&gt; it would not take care of the millions of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;event&lt;/code&gt; rows that were in our database. So we created a second trigger function that also worked on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;UPDATE&lt;/code&gt; and updated the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;updated_at&lt;/code&gt; column for all of the events rows in batches. Once the migration was complete, we deleted the trigger (although updates to event data are non-existent in any case).&lt;/li&gt;
  &lt;li&gt;Our Query Engine was then deployed which read from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rolledup_events&lt;/code&gt; table instead of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;events&lt;/code&gt; table and voila, we were in business.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;the-results-are-in--they-are-fantastic&quot;&gt;&lt;strong&gt;The Results Are In &amp;amp; They Are Fantastic&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*FN9w4UmKa34i_JnffXoHHw.jpeg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*tUbF0zE1MEPny3_MBA90SQ.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The deployment needed a couple of hours and we closely monitored the system for errors. With our testing we’d made sure that the performance results were many orders of magnitude better. Error rates (gateway timeouts) were eliminated, request time went down dramatically (&lt;strong&gt;upto 150x&lt;/strong&gt;) and our deployment was a success.&lt;/p&gt;

&lt;p&gt;This system has been powering Botmetrics for the last few months and we have since processed &lt;strong&gt;250M+ events&lt;/strong&gt; from all kinds of bots with median request latency of 100–300ms.&lt;/p&gt;

&lt;h4 id=&quot;how-do-we-scale-fromhere&quot;&gt;How Do We Scale From Here?&lt;/h4&gt;

&lt;p&gt;At some point the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rolledup_events&lt;/code&gt; table is going to become large enough that queries to it will become slow as well. Where can we go from here?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;One strategy is to roll up at a higher granularity (day level) and so on for time ≥ n months/days, etc.&lt;/li&gt;
  &lt;li&gt;We are also considering sharding across multiple databases (with a services such as &lt;a href=&quot;https://citusdata.com&quot;&gt;Citus&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have been extremely happy with Postgres as our primary data store. Postgres’ flexibility in allowing us to use NoSQL paradigms (with JSONB) along with great features such as UPSERTs, native code triggers and a healthy ecosystem around it has allowed us to accelerate and adapt to growing traffic.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Botmetrics is the best and fastest way to measure, analyze and engage with your messaging audience.&lt;/em&gt; &lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;&lt;em&gt;Sign Up Today for free&lt;/em&gt;&lt;/a&gt;&lt;em&gt;!&lt;/em&gt;&lt;/p&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 <entry>
   <title>Enterprise Grade Bot Metrics Free with Botkit</title>
   <link href="http://mclov.in/2017/03/23/Enterprise-Grade-Bot-Metrics-Free-with-Botkit-294cecf21cf6.html"/>
   <updated>2017-03-23T19:41:17+00:00</updated>
   <id>http://mclov.in/2017/03/23/Enterprise-Grade-Bot-Metrics-Free-with-Botkit-294cecf21cf6</id>
   <content type="html">&lt;h2 id=&quot;enterprise-grade-bot-metrics-free-with-botkit&quot;&gt;Enterprise Grade Bot Metrics Free with Botkit&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/howdyai/botkit&quot;&gt;Botkit&lt;/a&gt; has arguably been the best way to build bots on multiple platforms, ever since it’s launch. With over 125 contributors and tens of 1000’s of bot-makers using Botkit to power their bots, it has become synonymous with the bot revolution.&lt;/p&gt;

&lt;p&gt;As a bot maker, the next step after you’ve built your bot is find out how many users you’re getting each day, what they’re are saying to your bot, and to see how many of them are reaching the “conversion point” in your Bot’s flow.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*HKpL5siUSi9jj6jUvTv8-g.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;enter-botmetrics&quot;&gt;Enter Botmetrics&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;Botmetrics&lt;/a&gt; is a conversational intelligence platform that instantly gives you answers to these questions with minimal setup for bots built with Botkit.&lt;/p&gt;

&lt;p&gt;If this sounds like something your bot can’t live with out — let’s get started!&lt;/p&gt;

&lt;h4 id=&quot;part-1-adding-analytics-middleware-to-your-botkitbot&quot;&gt;Part 1: Adding Analytics Middleware to your Botkit bot&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;Install the middleware using &lt;a href=&quot;https://www.npmjs.com/package/botkit-middleware-botmetrics&quot;&gt;npm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Instantiate it in your code with two environment variables:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BOTMETRICS_BOT_ID&lt;/code&gt; that uniquely identifies this bot.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BOTMETRICS_API_KEY&lt;/code&gt; that ensures that only you can send metrics for your bot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3. Require &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;botkit-middleware-botmetrics&lt;/code&gt; and use the middleware in your bot like so:&lt;/p&gt;

&lt;p&gt;A more detailed example for Slack is &lt;a href=&quot;https://github.com/botmetrics/botkit-middleware-botmetrics/blob/master/examples/slack.js&quot;&gt;available here&lt;/a&gt;. (Facebook Messenger &lt;a href=&quot;https://github.com/botmetrics/botkit-middleware-botmetrics/blob/master/examples/facebook.js&quot;&gt;here!&lt;/a&gt;)&lt;/p&gt;

&lt;h4 id=&quot;part-2-connect-your-bot-metrics-account-to-yourbot&quot;&gt;Part 2: Connect Your Bot Metrics account to your bot&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;Sign Up for Botmetrics with &lt;a href=&quot;https://heroku.com/deploy?template=https://github.com/botmetrics/botmetrics&quot;&gt;one click&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;Setup you Facebook bot by adding your bot’s “Facebook Page Access Token” to Botmetrics.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;3. Now, finally, set the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BOTMETRICS_API_KEY&lt;/code&gt;and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BOTMETRICS_BOT_ID&lt;/code&gt;environment variables in your Bot’s environment based on the values in the settings page and restart your bot!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*9uNo9oz1oNcI9-r89-P6NQ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Restart your bot and you can now instantly see detailed metrics about your customers such as &lt;strong&gt;&lt;em&gt;new and active user growth&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;demographic&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;geographic distributions&lt;/em&gt;&lt;/strong&gt;, and user action attributes.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*phMgFphMaM_mXw7Mfi5Www.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In addition, with no engineering effort you will also have the ability to segment users based on these characteristics and send them targeted smart time-zone aware &lt;strong&gt;&lt;em&gt;notifications&lt;/em&gt;&lt;/strong&gt;. Plus other great features such as &lt;a href=&quot;https://blog.getbotmetrics.com/path-analysis-demystify-your-chatbot-customer-journey-to-drive-engagement-5f2332e76c12?source=collection_home---4------4----------&quot;&gt;&lt;strong&gt;&lt;em&gt;path analysis&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&quot;https://blog.getbotmetrics.com/improve-conversions-with-built-in-link-tracking-from-botmetrics-abdcf9dba68a?source=collection_home---4------5----------&quot;&gt;&lt;strong&gt;&lt;em&gt;link tracking&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; and much more.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;&lt;strong&gt;&lt;em&gt;Sign Up Today for Botmetrics&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; and get smart about your Botkit bot’s interactions!&lt;/p&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 <entry>
   <title>Relax: Scale Slack Bots with Ease</title>
   <link href="http://mclov.in/2017/01/24/Relax-Scale-Slack-Bots-with-Ease.html"/>
   <updated>2017-01-24T17:29:17+00:00</updated>
   <id>http://mclov.in/2017/01/24/Relax--Scale-Slack-Bots-with-Ease</id>
   <content type="html">&lt;h2 id=&quot;relax-scale-slack-bots-with-ease&quot;&gt;Relax: Scale Slack Bots with Ease&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Even though Slack is making great progress on the &lt;a href=&quot;https://api.slack.com/events-api&quot;&gt;Events API&lt;/a&gt;, there are reasons why you would want to use Slack’s &lt;a href=&quot;https://api.slack.com/rtm&quot;&gt;Real-Time API&lt;/a&gt; to build your Slack bot: low latency being one of them.&lt;/p&gt;

&lt;p&gt;As your Slack bot becomes more popular, the question inevitably arises: How do I scale my Slack bot’s websocket connections without running up enormous server bills? &lt;a href=&quot;https://github.com/zerobotlabs/relax&quot;&gt;Relax is an open source project&lt;/a&gt; that will help with scaling your Slack bot and allow you to focus on building functionality and features.&lt;/p&gt;

&lt;h4 id=&quot;instantiating-a-websocket-connection-for-yourbot&quot;&gt;Instantiating a Websocket Connection for your Bot&lt;/h4&gt;

&lt;p&gt;When a new Slack team installs a bot, it goes through three steps:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;&lt;em&gt;OAuth2 Authorization:&lt;/em&gt;&lt;/strong&gt; Returns a token that will be used by your bot&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;em&gt;HTTP Call to&lt;/em&gt;&lt;/strong&gt; &lt;a href=&quot;https://api.slack.com/methods/rtm.start&quot;&gt;&lt;strong&gt;&lt;em&gt;rtm.start&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;: This will return a URL that you should start a websocket connection&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;em&gt;Open Websocket connection:&lt;/em&gt;&lt;/strong&gt; Start receiving &lt;a href=&quot;https://api.slack.com/events&quot;&gt;events&lt;/a&gt; from Slack’s real-time servers.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*eoDhMNj9Sas2eiZUI6fcPg.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;rinse-and-repeat-for-every-team-that-installs-yourbot&quot;&gt;Rinse and Repeat for Every Team that Installs Your Bot&lt;/h4&gt;

&lt;p&gt;For every subsequent team that signups to your bot, you have to repeat the previous three steps and maintain persistent websocket connections for all of those teams. For a popular bot, that means &lt;strong&gt;&lt;em&gt;hundreds of thousands of persistent, stateful websockect connections&lt;/em&gt;&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*_ikmD4kRuibLrVeeKqAOlQ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;problem-with-persistent-websocket-connections-and-ruby-etal&quot;&gt;Problem with Persistent Websocket Connections and Ruby et al&lt;/h4&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*_gu5gTQsGsR_6uz7oeUzTA.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The problem with doing this in languages such as Ruby, Python, Node and so on is that you have typically have to spawn off separate processes or threads to handle each team and that can get both unwieldy and expensive very quickly.&lt;/p&gt;

&lt;h4 id=&quot;enter-go-and-relax-designgoals&quot;&gt;Enter Go and Relax: Design Goals&lt;/h4&gt;

&lt;p&gt;Turns out, this is a problem that is solved by &lt;a href=&quot;https://golang.org&quot;&gt;Go&lt;/a&gt;. The Go language has the powerful concept of Go routines which are lightweight threads managed by the Go runtime. A Go program can spawn thousands of Go routines with very little cost and take advantage of multi-core server architectures.&lt;/p&gt;

&lt;p&gt;With Relax and Go, we achieve the following design goals of running a scalable Slack Bot:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Handling Messages from 1000’s of teams:&lt;/strong&gt; Being able to spawn 1000’s of Go Routines (one for each team that connects to your Slack Bot) enables us to scale cost efficiently.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;De-Coupled from the Web App:&lt;/strong&gt; By having Relax manage receiving and delivery of messages, we can decouple business logic from the process of managing and scaling your websockets.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Multiplexed Single Stream of Events:&lt;/strong&gt; With Relax, your web app will get a single stream of events multiplexed on a single channel as opposed to dealing with 1000’s of channels.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Ability to run in “high-availability” mode:&lt;/strong&gt; You can run multiple instances of Relax across multiple data centers, enabling high availability without getting duplicate messages and events.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;relax-based-bot-architecture&quot;&gt;Relax-Based Bot Architecture&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;Relax maintains one goroutine per team and maintains a persistent websocket connection with Slack. Go routines handle keeping connection alive, health checks and so on.&lt;/li&gt;
  &lt;li&gt;Relax uses Redis to maintain state and allow Relax to be deployed in a highly available configuration&lt;/li&gt;
  &lt;li&gt;Events from Slack are converted into JSON blobs and are pushed to a Redis queue which can be consumed by any web application.&lt;/li&gt;
  &lt;li&gt;Events are not duplicated as they are sent to the web app no matter how many Relax instances are deployed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*uIn1QQunFNPeDvpRF6btRw.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;how-does-high-availability-work&quot;&gt;How does High Availability Work?&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;When a bot is started on Relax, it starts &lt;strong&gt;websocket connections on every Relax instance.&lt;/strong&gt; Redis’ &lt;strong&gt;PUBSUB&lt;/strong&gt; feature is used for this.&lt;/li&gt;
  &lt;li&gt;Running multiple instances of Relax does not mean that you get duplicate events for every message that comes in through the websocket connection.&lt;/li&gt;
  &lt;li&gt;When an event comes in, Relax uses combination of &lt;strong&gt;channel_id + timestamp&lt;/strong&gt; (which Slack guarantees to be unique) and uses &lt;a href=&quot;http://redis.io/commands/hsetnx&quot;&gt;HSETNX&lt;/a&gt; with the channel_id+timestamp to figure out whether to send the event back over Redis.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;get-started&quot;&gt;Get Started&lt;/h4&gt;

&lt;p&gt;Relax is a binary that can be &lt;a href=&quot;https://github.com/botmetrics/relax#installation&quot;&gt;installed on Linux or OS X&lt;/a&gt; and can also be installed with one click on Heroku. A sample Ruby on Rails application that uses Relax is &lt;a href=&quot;https://github.com/botmetrics/relax_on_rails&quot;&gt;also available&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;results&quot;&gt;Results&lt;/h4&gt;

&lt;p&gt;Relax has been used by Botmetrics to track metrics for Slack bots on &lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;Botmetrics&lt;/a&gt; and it has been rock-solid over the last 12 months.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Able to maintain connections from 2000+ teams on a &lt;strong&gt;single Heroku dyno&lt;/strong&gt; (512MB). Average Memory Usage: ~200MB&lt;/li&gt;
  &lt;li&gt;Handle tens of thousands of events on a daily basis without skipping a beat&lt;/li&gt;
  &lt;li&gt;Allows developers to focus on building great value in the bot itself and not worry about scalability&lt;/li&gt;
&lt;/ul&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 <entry>
   <title>Kik ❤️ Botmetrics</title>
   <link href="http://mclov.in/2016/11/04/Kik-Botmetrics.html"/>
   <updated>2016-11-04T13:16:01+00:00</updated>
   <id>http://mclov.in/2016/11/04/Kik-Botmetrics</id>
   <content type="html">&lt;h2 id=&quot;kik-️-botmetrics&quot;&gt;Kik ❤️ Botmetrics&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Kik Messenger platform is a pioneer in the messaging and conversational UI space. With more than 20,000 Kik bots and over a billion messages being exchanged with bots, it becomes even more important to think about analytics and engagement for these bots.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*Wuf0Z-RA11XYj2MlIsCA5Q.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Integrating Botmetrics is an easy two step process — the first is the Kik &lt;a href=&quot;https://github.com/botmetrics/botmetrics-kik-middleware&quot;&gt;middleware module&lt;/a&gt; that instruments your Bot with a few lines of code and the second is the Botmetrics service which analyzes, visualizes and lets you act on the metrics collected.&lt;/p&gt;

&lt;p&gt;Let’s get started!&lt;/p&gt;

&lt;h4 id=&quot;part-1-adding-analytics-middleware-to-your-kikbot&quot;&gt;Part 1: Adding Analytics Middleware to your Kik bot&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;Install the middleware using &lt;a href=&quot;https://www.npmjs.com/package/botmetrics-kik-middleware&quot;&gt;npm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Instantiate it in your code with three environment variables:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;BOTMETRICS_BOT_ID&lt;/em&gt; that uniquely identifies this bot.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;BOTMETRICS_API_KEY&lt;/em&gt; that ensures that only you can send metrics for your bot.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;KIK_USERNAME&lt;/em&gt; is the username of your Kik bot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3. Use the middleware in your bot by adding it to your &lt;em&gt;bot.use()&lt;/em&gt; function.&lt;/p&gt;

&lt;p&gt;A more detailed example is &lt;a href=&quot;https://github.com/botmetrics/botmetrics-botframework-middleware/blob/master/examples/example.js&quot;&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Next let us setup the service and get the values we need for the two environment variables we created.&lt;/p&gt;

&lt;h4 id=&quot;part-2-connect-to-your-botmetrics-analytics-service&quot;&gt;Part 2: Connect to Your Botmetrics Analytics Service&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;Sign Up to &lt;a href=&quot;https://www.getbotmetrics.com/users/sign_up&quot;&gt;Botmetrics&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Log On onto your instance. Setup you Kik bot by adding your bot’s “Kik API Key” and “Bot username” to Botmetrics.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*qzLjmkZU2E-kin3StBzqwg.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;3. Now, finally, set the &lt;em&gt;BOTMETRICS_API_KEY&lt;/em&gt; and &lt;em&gt;BOTMETRICS_BOT_ID&lt;/em&gt; environment variables in your Bot’s environment based on the values in the settings page and restart your bot!&lt;/p&gt;

&lt;p&gt;Restart your bot and you can now instantly see detailed metrics about your customers such as &lt;strong&gt;&lt;em&gt;new and active user growth&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;demographic&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;geographic distributions&lt;/em&gt;&lt;/strong&gt;, and user action attributes.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*P6uEb0oWQZNkLTkNjNa0jw.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In addition, with no engineering effort you will also have the ability to segment users based on these characteristics and send them targeted smart time-zone aware &lt;strong&gt;&lt;em&gt;notifications&lt;/em&gt;&lt;/strong&gt;. All while maintaining the privacy and control over user communications.&lt;/p&gt;

&lt;h4 id=&quot;join-the-community&quot;&gt;Join the Community&lt;/h4&gt;

&lt;p&gt;Your questions, contributions and feedback about the middleware or the service are always welcome on &lt;a href=&quot;http://github.com/botmetrics/botmetrics-botframework-middleware&quot;&gt;Github&lt;/a&gt; and you can also join our community on &lt;a href=&quot;https://slack.getbotmetrics.com&quot;&gt;Slack&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;☞ We read every response on Medium or reply on&lt;/em&gt; &lt;a href=&quot;https://www.twitter.com/getbotmetrics&quot;&gt;&lt;em&gt;Twitter&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, so don’t hesitate to let us know what you think.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;☞ Get a weekly newsletter of the best Bot &amp;amp; AI news:&lt;/em&gt; &lt;a href=&quot;http://www.botweekly.com&quot;&gt;&lt;em&gt;Sign up for botweekly&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;☞&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Please tap or click “︎&lt;/em&gt;&lt;/strong&gt;❤” &lt;em&gt;to help to promote this piece to others.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*kn4xNt5XDklXxzfhOtJI_w.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 <entry>
   <title>Meet The Makers #4: Juraj Pal & SureBot</title>
   <link href="http://mclov.in/2016/10/13/Meet-The-Makers-4-Juraj-Pal-SureBot.html"/>
   <updated>2016-10-13T15:23:45+00:00</updated>
   <id>http://mclov.in/2016/10/13/Meet-The-Makers--4--Juraj-Pal---SureBot</id>
   <content type="html">&lt;h2 id=&quot;meet-the-makers-4-juraj-pal--surebot&quot;&gt;Meet The Makers #4: Juraj Pal &amp;amp; SureBot&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In this week’s edition of &lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;Botmetrics&lt;/a&gt; Meet The Makers, we speak to &lt;a href=&quot;https://twitter.com/jurajpal&quot;&gt;Juraj Pal&lt;/a&gt;, who is working on &lt;a href=&quot;https://syre&quot;&gt;SureBot&lt;/a&gt;, a bot that lets you find the best places to eat and drink.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun&lt;/strong&gt;: Hey everyone. Welcome to another edition of Botmetrics, Meet the Makers. We are here today with Juraj, who’s one of the founders of &lt;a href=&quot;http://surebot.io&quot;&gt;BeSure.io&lt;/a&gt;, or Sure is the name of the bot. Hey Juraj.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Yup. Hey, hi everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Cool, so before we get into the bot itself, maybe you can give a little introduction about yourself and the team, and how you got into bots in the first place?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Sure. Yeah, thanks for having me. My name is Juraj, I’m on of the cofounders of Sure. We’re 3 cofounders. It’s myself, Alex, and Sebastian. We’re kind of a bit of a distributed small team. 2 of us are based in between Copenhagen and London, so in Europe, and then we have our technical founder in Vancouver. Also mixed nationalities, I’m originally from Slovakia.&lt;/p&gt;

&lt;p&gt;We got together quite randomly I would say at a startup event here in Copenhagen and since then, we’ve been really interested in the early stages of conversational interfaces and had this idea, an almost bit of a pain that we wanted to solve for ourselves, and that’s how Sure was kind of born. My background is more in business, but very interested in tech, so kind of business moving into tech, that sort of thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Got it, yeah. It’s very interesting to hear always, start ups that come about because of personal problems that you faced and you want to solve them, so it’s always great to hear that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Exactly, yeah.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Cool. What does Sure do?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; The problem that I was talking about that we had, was that were unsatisfied with the current tools that you have right now for finding place to go out and eat or drink, or something like that. We have Google, we have Yelp, we have whatever else is out there, but we just felt that for us, those services weren’t good enough, they weren’t personalized enough, so we would still end up asking our friends and we figured out many people are doing that.&lt;/p&gt;

&lt;p&gt;Then we thought, well maybe we can deliver that service even better in a platform people are using already, which is messaging, kind of become that trusted friend that people can go to and ask about a recommendation. Sure is essentially a bot for finding the best curated food and drink places out there. It’s not available globally yet, we started with San Francisco, Copenhagen, as kind of a beta to test the value proposition. Now we added London, out of beta going to London, so really tried to prove the concept there. Then hopefully we can expand to globally and to other big cities as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Cool, and what platforms is it on right now?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Right now, only on messenger. We kind of chose messenger because, also from different markets we were in, people were already on messenger and using it quite heavily, so we thought that’s the platform that makes sense. Ideally we want to stay as [tech 00:03:22] agnostic as you, or platform agnostic that we can be to just be present whenever the user is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Got it, yup. I think that makes a lot of sense. Do you have any kind of machine learning and natural language processing going on with your bot?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; We’re not building that ourselves because we figure that’s not going to be scalable and we wanted to get to the market as soon as possible and prove the fit. We’re using [API.AI 00:03:51], as many other bot makers are I guess. We started by [IBM Watson 00:03:58] actually, which is a fun experiment, back then before Facebook opened up their messenger platform. Those are some really great learnings, kind of how we can build a conversation experience like that. Now we moved to API.AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Got it, cool. What sort of interesting secrets or tips can you share as you built this bot? You said you experimented with Watson and moved on to API.AI. Any tips that you can share with other bot makers?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Yeah sure, you learn a lot, especially since the really new way of interacting with technology. Well, not new when we look at the whole thing, but currently. I was telling the cofounder here, actually wrote out all these learnings and published in [Adventure Beat 00:04:49], and my favorite one out of there was actually, to always suggest a second best action or step. Almost like you see in some other products, but that’s what we also found, that the interactions were really really short, which we thought also that could be fine because then maybe the problem that the user was solving with our product was just solved and then the user moved on.&lt;/p&gt;

&lt;p&gt;For example, if you’re asking for a restaurant, then why doesn’t the bot ask you, “Here’s you restaurant, but would you like to book a table? Once you book a table, why don’t you order an Uber through the same interface?” Kind of always thinking the next best action and providing that to the user, I think that’s a great value provider. Yeah and maybe kind of one more general learning for me was that, with chat bot that’s out there now, you really have to start with a very focused one.&lt;/p&gt;

&lt;p&gt;Build a really nicer design experience as well. Even with our use, you could say that it’s not really that kind of small way thing, because even for a restaurant, you can ask in so many ways. That proved to be kind of the chat bots that I see that are big potential, where they start with a really focused use case then maybe expand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Right, and where are you getting your data sets from, to do all of this restaurant search?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; At the beginning, we actually did all of this manually. At the very very beginning, we even replied manually just to really validate the idea. Then we started building our own data base by … We live in Copenhagen, so we knew some of the places, we had some knowledge of London or San Francisco. Could always contact some people who know the neighborhoods and can give us the local knowledge.&lt;/p&gt;

&lt;p&gt;Now, since we wanted to scale and provide a large data base in London, we tapped into some existing data bases and APIs, but still kind of curated a layer on top of it. Because if we say that, “Hey we want to be better than all these services like Yelp or Foursquare, or what else is out there,” then we can’t just hook our share bot to that and assume that the problem is solved. We really needed to keep that different curation when we list those places.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Yup, that’s cool. What are some of the challenges that you face as you were building the bot? I’m sure it probably wasn’t smooth sailing throughout. Yeah, maybe you can talk through some of the challenges that you faced.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Yeah, it’s still not smooth sailing I would say. We’re learning a lot from usage, but I think one thing that I realized was that we say a lot that we need to advocate, our bot needs to be really easy to speak to and really good at understanding, but I learned that also the users need a bit of education on how to talk to bots actually. I think it’s same with apps, when apps came early on, that was a new thing for people as well, for consumers. That’s one thing to kind of educate the user’s quite challenging on how to not end up in a dead end after the second message or something like that.&lt;/p&gt;

&lt;p&gt;That’s bit of a challenge, to always, as I said, always have the second best, next best action or always have the right button, always lead the user the right way, that’s quite challenging. Natural language processing in general is still a bit of a challenge, but at least by usage we can improve that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Right, yeah the first thing that you mentioned about training the user is definitely something that I faced as well as a bot maker. If you kind of keep the whole thing open and dead, people always say random things to your bot and you want to guide them to that path.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Exactly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Do you make use of buttons and user interface elements, or quick replies and so on to guide the user down the path that you want them to go down?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Yeah, we do now. We had a big discussion on this early on, because when we started and when we had the first bot on IBM Watson, it was very conversational, so no buttons. This was pretty message platform. There were no buttons, it was really, it really felt like you were talking to a friend, once the national language acquired as well. With the platform we added these buttons and we added quick replies and some of the elements, but always kept in mind, just build something where you’re just tapping buttons and that’s it.&lt;/p&gt;

&lt;p&gt;If it’s a chat button it about chatting, and that’s kind of the whole value proposition of doing something. Conversation interface is about having a conversation, and that goes with our vision that if we want to better connect customers and also businesses, in our case in restaurants, then the conversation element needs to still be present. I think buttons and other elements such as these can enable this to some extent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; You mentioned that you were still in beta, so how is the launch gone so far in the 3 cities that you’ve launched, and what are some of the lessons and iterations that you’ve made once your bot has been in the hands of real people?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; We’re not auto beta in London and Copenhagen as well, but yeah, you never know what’s happening. The launch was kind of funny. I remember I was traveling somewhere and then it was during the EPICS conference time, so [inaudible 00:10:58], whole team waiting for that and what’s going to be announced and all that stuff. We were awake, it was early at night in Europe, but then I remember it was I think &lt;a href=&quot;https://twitter.com/convjournalism&quot;&gt;Marson from conversational journalism&lt;/a&gt;, a more famous Twitter account around chat bots and everything conversational. I think he made a really early Google spreadsheet with some of the early bots that launched at the conference, and then somehow include some other bots that he found, included us which was great but we weren’t expecting it.&lt;/p&gt;

&lt;p&gt;By that time, our bot wasn’t really officially approved by Facebook or it wasn’t part of the partners, the launch on the stage of that phase, so definitely not expecting. Suddenly we went from casual 3 messages per day to more than 3,000 per day, so obviously quite difficult to handle that and loads of not great ends of conversations, lots of dead ends, lots of swearing from users and all that stuff, as you probably experienced as well, but great for learning. All the users we got in that week and the weeks after, it was just growing and we were exciting about it, so working really hard to make this work.&lt;/p&gt;

&lt;p&gt;We have the Europe team and then we have our technical founder in Vancouver, which is on a different time zone. We were kind of using that to almost [turn 00:12:32] 24 hours, so we would always be monitoring the conversation and he would making changes and releasing that as fast as we could. That was again great value of building chat bot, I realized that we can really push us out there really fast and really efficiently. That was kind of the unintentional launch, but I’m really grateful that it happened now because now we could leverage that and grew.&lt;/p&gt;

&lt;p&gt;Since then, we haven’t done any more bigger launches, but we were … The community behind bots and whatever [Matt 00:13:10] started on Facebook with the group which is great resource for us, both in terms of sharing the knowledge but also getting it in front of really early adopters. That was really helpful and stress testing the bot, but now also figuring out the challenge, how we can reach the actually right target user of ours and how we can educate the consumers who might have no idea of what chat bot is, how to interact with it. Those are kind of the activities in terms of launching to that user group now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Right, and is there some sort of viral element built into the bot? How are new people discovering the bot today?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Yeah we’re trying to build this element there. We recently added kind of an opportunity to share a place, once you find it. If you find a restaurant and you really want to go there, or for example you are going for a coffee with a friend or even a business meeting, you can share that place out that friends or to a group of friends that you’re going with. That one, we’re still kind of evaluating how that’s working, but so far that’s proven to be really great element how to bring other people, because those people share it out to their friends. Our bot appears in that other conversation and there’s a button to actually try our bot, so once it’s happened, that they can start using Sure as well. That’s kind of the first experiment that we’re doing around building virality into the product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Got it, cool. What are kind of next steps for you in terms of both the product and the company? Are you guys funded? Are you thinking of taking on funding? Generally in terms of the product as well, what are next steps for you?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; In terms of the company, we are currently looking to how we can scale up to other cities fairly quickly. We are fundraising right now and thinking what can be the boost for us to be there where we need to be quite quickly. Right now, our big focus is in London and kind of proving that stickiness with the right users instead of just a group of early adopters. That’s definitely one challenge that we are solving. Also, how we can get retention into this as well. Especially with the early adopters I would say, you get people trying out bots just because it’s fun and they just do that, but what does it actually take to bring people back to use it on a normal basis.&lt;/p&gt;

&lt;p&gt;In terms of product, we’re always kind of improving the experience. Whether it’s geo location, allowing users to send pin and get recommendations close to there. Proximity, that’s one of the next steps. Always improving the data base and the quality of places that we have and list and recommend. An important one is also to become that really personalized service. We can’t just say that we’re personalized, we need to also deliver on that. We want to be learning from the usage and if you’re using Sure, we want to only recommend you to stuff that you are actually interested in and that you want and that fits your preferences. I think those 2 things are really the biggest goals right now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Got it, cool. If you had any feedback to give the folks building messenger, what do you want from messenger as a platform? They just made a bunch of new announcements last week with payments and so on, but what would you like to see as part of the messenger platform?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Many things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; It’s still early days, yeah.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; To be honest, really great work what they are doing, and the recent update was really exciting for us. Payments are really exciting and many things that were released go within hands with the things that we have in our roadmap and that we want to test with the users. Messenger is also figuring out a lot of things with bots, and so our we, so we just want to have the right tools too that enable us to go out to a user, to a customer, to business, and validate what we think might be the value for them on messenger.&lt;/p&gt;

&lt;p&gt;If we’re talking about connecting restaurants with their customers, what is the best way of doing that, or if it is the user experience when you’re looking for a restaurant does it need to end with discovery or can we provide other transactional elements on top of that? As we get more of these tools, it’s going to be really really interesting to start testing them I think, but yeah I don’t think I can say just one thing. It’s going good so far.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Where can people find the bot? I don’t think we mentioned the url to your web page, so where can people start a conversation with Sure?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Our website is BeSure.io. You can also start chatting with it at &lt;a href=&quot;https://m.me/surebot&quot;&gt;m.me/surebot&lt;/a&gt;. That’s where we are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Cool, awesome, and where can people find you on the internet? Are you on Twitter and-&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; I’m on Twitter and all social media with &lt;a href=&quot;https://twitter.com/jurajpal&quot;&gt;JurajPal&lt;/a&gt;. Sure on Twitter is &lt;a href=&quot;https://twitter.com/besure&quot;&gt;BeSure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Cool, awesome. I’m definitely looking forward to seeing more from the Sure bot and good luck with everything and the fundraising and so on. Hope to hear more from you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; That was great. Thanks so much everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Cool, all right. Thanks so much, bye.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Juraj:&lt;/strong&gt; Cool, bye.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;☞ We read every response on Medium or reply on&lt;/em&gt; &lt;a href=&quot;https://www.twitter.com/getbotmetrics&quot;&gt;&lt;em&gt;Twitter&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, so don’t hesitate to let us know what you think.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;☞ Get a weekly newsletter of the best Bot &amp;amp; AI news:&lt;/em&gt; &lt;a href=&quot;http://www.botweekly.com&quot;&gt;&lt;em&gt;Sign up for botweekly&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;☞&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Please tap or click “︎&lt;/em&gt;&lt;/strong&gt;❤” &lt;em&gt;to help to promote this piece to others.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*ByA6P-IpAM0Yxqf8hkuZKA.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 <entry>
   <title>Botmetrics ❤️ Botframework️</title>
   <link href="http://mclov.in/2016/10/11/Botmetrics-Botframework.html"/>
   <updated>2016-10-11T20:31:16+00:00</updated>
   <id>http://mclov.in/2016/10/11/Botmetrics-Botframework</id>
   <content type="html">&lt;h2 id=&quot;botmetrics-️-botframework️&quot;&gt;Botmetrics ❤️ Botframework️&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you’re like us, and we suspect you are, you’ve probably lovingly crafted a bot using Microsoft’s Bot Framework (the &lt;a href=&quot;http://venturebeat.com/2016/09/26/microsofts-bot-platform-is-more-popular-than-facebooks-among-developers/&quot;&gt;&lt;strong&gt;&lt;em&gt;most&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;popular way&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; for developers to build bots.) Being data driven, you’re now curious to know how many users you’re getting each day, what they’re are saying to your bot, and to see how many of them are reaching the “conversion point” in your Bot’s flow.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;Botmetrics&lt;/a&gt;, is an open source analytics package that let’s you meet your customer privacy and security requirements while instantly getting answers to these questions with minimal setup for bots built with Bot Framework.&lt;/p&gt;

&lt;p&gt;Integrating Botmetrics consists of two parts — the first is the Bot Framework &lt;a href=&quot;https://github.com/botmetrics/botmetrics-botframework-middleware&quot;&gt;middleware module&lt;/a&gt; that instruments your Bot with a few lines of code and the second is the Botmetrics service which analyzes, visualizes and lets you act on the metrics collected.&lt;/p&gt;

&lt;p&gt;If this sounds like something your bot can’t live with out — let’s get started!&lt;/p&gt;

&lt;h4 id=&quot;part-1-adding-analytics-middleware-to-your-bot-framework-bot&quot;&gt;&lt;strong&gt;Part 1: Adding Analytics Middleware to your Bot Framework bot&lt;/strong&gt;&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;Install the middleware using &lt;a href=&quot;https://www.npmjs.com/package/botmetrics-botframework-middleware&quot;&gt;npm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Instantiate it in your code with two environment variables:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;BOTMETRICS_BOT_ID&lt;/em&gt; that uniquely identifies this bot.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;BOTMETRICS_API_KEY&lt;/em&gt; that ensures that only you can send metrics for your bot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;3. Use the middleware in your bot by adding it to your &lt;em&gt;bot.use()&lt;/em&gt; function.&lt;/p&gt;

&lt;p&gt;A more detailed example is &lt;a href=&quot;https://github.com/botmetrics/botmetrics-botframework-middleware/blob/master/examples/example.js&quot;&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Next let us setup the service and get the values we need for the two environment variables we created.&lt;/p&gt;

&lt;h4 id=&quot;part-2-connect-to-your-private-bot-metrics-analytics-service&quot;&gt;&lt;strong&gt;Part 2: Connect to Your Private Bot Metrics Analytics Service&lt;/strong&gt;&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;Deploy your own private instance of Botmetrics Service with &lt;a href=&quot;https://heroku.com/deploy?template=https://github.com/botmetrics/botmetrics&quot;&gt;one click&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;Log On onto your instance. Setup you Facebook bot by adding your bot’s “Facebook Page Access Token” to Botmetrics.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note: We currently support Facebook Bots via the middleware — shoot us a note if you want to use this with a Slack or Kik bot.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*0dUppFHL4NLm_mkd0JXUfQ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;3. Now, finally, set the BOTMETRICS_API_KEY and BOTMETRICS_BOT_ID environment variables in your Bot’s environment based on the values in the settings page and restart your bot!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*D0LhM_DKrkzrPER5md2o_w.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Restart your bot and you can now instantly see detailed metrics about your customers such as &lt;strong&gt;&lt;em&gt;new and active user growth&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;demographic&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;geographic distributions&lt;/em&gt;&lt;/strong&gt;, and user action attributes.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*iH2F5iChE1TtGJxnUlUr3g.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In addition, with no engineering effort you will also have the ability to segment users based on these characteristics and send them targeted smart time-zone aware &lt;strong&gt;&lt;em&gt;notifications&lt;/em&gt;&lt;/strong&gt;. All while maintaining the privacy and control over user communications.&lt;/p&gt;

&lt;h4 id=&quot;join-the-community&quot;&gt;Join the Community&lt;/h4&gt;

&lt;p&gt;Your questions, contributions and feedback about the middleware or the service are always welcome on &lt;a href=&quot;http://github.com/botmetrics/botmetrics-botframework-middleware&quot;&gt;Github&lt;/a&gt; and you can also join our community on &lt;a href=&quot;https://slack.getbotmetrics.com&quot;&gt;Slack&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;☞ We read every response on Medium or reply on&lt;/em&gt; &lt;a href=&quot;https://www.twitter.com/getbotmetrics&quot;&gt;&lt;em&gt;Twitter&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, so don’t hesitate to let us know what you think.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;☞ Get a weekly newsletter of the best Bot &amp;amp; AI news:&lt;/em&gt; &lt;a href=&quot;http://www.botweekly.com&quot;&gt;&lt;em&gt;Sign up for botweekly&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;☞&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Please tap or click “︎&lt;/em&gt;&lt;/strong&gt;❤” &lt;em&gt;to help to promote this piece to others.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*ByA6P-IpAM0Yxqf8hkuZKA.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 <entry>
   <title>Meet The Makers #3: Stefan Kojouharov</title>
   <link href="http://mclov.in/2016/10/06/Meet-The-Makers-3-Stefan-Kojouharov.html"/>
   <updated>2016-10-06T16:37:48+00:00</updated>
   <id>http://mclov.in/2016/10/06/Meet-The-Makers--3--Stefan-Kojouharov</id>
   <content type="html">&lt;h2 id=&quot;meet-the-makers-3-stefan-kojouharov&quot;&gt;Meet The Makers #3: Stefan Kojouharov&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In this week’s edition of &lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;Botmetrics&lt;/a&gt; Meet The Makers, we speak to &lt;a href=&quot;https://twitter.com/kojouharov&quot;&gt;Stefan Kojouharov&lt;/a&gt;, who is a serial entrepreneur and has built many successful bots, the most recent one being &lt;a href=&quot;https://m.me/smartnotesbot&quot;&gt;Smart Notes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Hi everyone, welcome to another edition of &lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;Botmetrics&lt;/a&gt; Meet the Makers. I’m one of the co-founders of Botmetrics and today well be speaking to Stefan, who’s built a number of bots on Facebook and he will share with us all of his learnings and experiences building bots. Welcome, Stefan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Hi. Thanks for having me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Maybe we can start off by talking a little bit about yourself and maybe a brief introduction of how you got started with bots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Yeah, that’d be great. My background’s in entrepreneurship. I started my first business right out of college, did very well with it. I got into technology in 2013 and my first startup, we had a messaging platform. Essentially it was a platform to let you send messages to businesses and let users send either one message or many messages, and after doing that for a number of years, we were one time featured in South by Southwest, Las Vegas 2015. In 2016 it became very known in the community that Facebook was going to do something very similar, so I transitioned into this. It was a very natural transition and I feel like coming into it from a background in messaging was vital because it kind of gave me a little bit of a head start.&lt;/p&gt;

&lt;p&gt;Even some of the things that Facebook is doing with chatbots, for example, for businesses, that was one of the main pain points that a lot of businesses had on our platform. They didn’t want to answer questions at times, they wanted to automate that process, so c-bots was very, very exciting. Right away I started making a lot of bots. So far I’ve built probably around 10 bots, maybe a little bit more, give or take. I’ve built bots for startups, sometimes I help startups with their flow, their onboarding process, their copy writing, that sort of thing. Throughout this process I have learned quite a bit and I would love to share it with you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Cool. Maybe you can talk a little bit about … I know have have used at least one of the bots that you’ve built called Smart Notes, so maybe you can talk about Smart Notes and how that came to be and what platforms it on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Yeah, absolutely, so this is one of the behaviors that I noticed that I had, and that was that I was always emailing myself or messaging myself. I decided one day, I’m like, “Why am I doing this? What underlying reason is the reason why I’m emailing myself or texting myself?” I realized that it was a top-of-mind awareness. I wanted to have a certain note or a certain idea or a certain link that would be instantly available to me with like one click and that I would know exactly where it is. The notepads that I was using at the time didn’t do that. Evernote was like cluttered and the things were everywhere that you would have to look at and that was painful, so I created Smart Notes.&lt;/p&gt;

&lt;p&gt;What Smart Notes essentially does is it’s a chatbot that exists inside of Messenger, and you just go inside and you write anything and right away it makes it into a note. You can add a reminder, and then to see all your notes, you just have to literally just push one button, which is the persistent menu in the notes tag, and it will show you all your notes, up to 10 of them in one carousel, so you can see, 6, 7, 8, 9, 10 notes just by, with one single glance. I thought that was really, really, really cool. That was the idea behind it.&lt;/p&gt;

&lt;p&gt;The other part that came into why I built Smart Notes was that at some point some of the notes that you create are going to be easy for someone else to do, so for example let’s say you need to get dry cleaning done. Yeah, you can probably get dry cleaning done on your own, but what if the note was smart, and it said, “Hey, look, I know these dry-cleaning companies and they can help you.”&lt;/p&gt;

&lt;p&gt;Now, this sort of idea isn’t new, Any.do, Evernote probably tried it. I know they wanted to, and the problem with doing it on those sort of platforms is that at the end of the day it almost feels like someone’s reading your notes, because they’re supposed to be private, but if you’re talking back and forth with a bot about what your goals are for the day and what your notes are for the day, then it feels far more natural when the bot says, “Hey, I see you want to get dry cleaning done by Thursday at 6 PM. If you like I can have XYZ company come and pick it up for you at that time. Does that work?” This is the inception of Smart Notes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Yeah, so even when I was using it I think one of the first things that struck me was that it kind of felt like you had your own personal stenographer or assistant who you were just like kind of dictating notes to and they were remembering all of what you said and repeating back to you whenever you wanted to, which is a very natural interaction for bots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Right, and then the other thing that I threw in there, and it did this intentionally, was rewarding the user for getting things complete. I think this is really something that’s kind of missing from general note apps is that you get things done, but there is no gamification of it, right? You don’t feel any different really afterwards. In real life when we get things done, generally we feel good about it. Now imagine if this bot or this app rewarded you for getting things done and that was one of the other features that I threw in there. That was one of the features that people actually really like.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; That’s cool. Are there any interesting secrets or tips that you can share with fellow bot makers as you were building the bot?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Yeah, absolutely. I built 10+ bots and towards the end I started following this because at the beginning I was like, “Why don’t a see what’s working on WeChat and see how, make something really simple and see how it works on Messenger?”&lt;/p&gt;

&lt;p&gt;My first tip, and I’ve seen a lot of people in the bot community doing this. I think it’s so natural to do it that you don’t even know that you’re doing it. That is that bots to a large extent right now, are a solution looking for a problem. People are thinking to themselves, “Bots are so cool, they’re the future totally. What problems can we solve with it?” Generally, like in entrepreneurship, it’s a very backwards way to do it. You’re putting the horse in front of the carriage, the carriage in front of the horse.&lt;/p&gt;

&lt;p&gt;You don’t want to do that. Instead what you want to do is you want to start with people that have a problem that you want to solve and if a chatbot becomes a natural solution to that problem because it can do things that a normal application cannot. One of those things being that it can take multiple variable inputs and help solve a problem. An example of this, and this is one of my favorite examples, I share it every time, is DoNotPay. DoNotPay is kind of like a chatbot that exists online. It doesn’t even exist on Messenger but basically go into DoNotPay, and it’ll fight, it’ll beat a parking ticket for you.&lt;/p&gt;

&lt;p&gt;Now, if it was a normal application it would be really hard because there’s too many combinations and permutations. You’d have to literally push too many buttons to figure out if this bot could help you or not, but since it’s conversational it can get down to the core very quickly. If you have a use case that’s along those lines and you get to it in an organic way, I think that’s really cool. I think that should be kind of the goal is think, instead of thinking of building a cool bot or what does the future look like, instead, what problems are people having that you could solve? Maybe these are problems naturally that come up because they require multiple inputs.&lt;/p&gt;

&lt;p&gt;Another one would be, and I have quite a few tips, once you have this idea, the very first thing you want to do is validate it, right? It might be a great idea, it might not, so you have to validate it. How would you validate it? I would recommend using something like ChatFuel or ManyChat. They’re really simple platforms. You could literally build a chatbot in an hour, maybe even less. What that will do is that will let you build something very quickly, find out how good you copy is, how good your interaction is, and then it’ll give you feedback. That’s the second thing I would really recommend is doing those two things. If you can do those two things well, I think you will on your way to making a good bot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Got it. Yup. I think that the thing people sometimes don’t realize is that bots are like any other product out there. You have to fist come to the fundamentals of what problems it’s solving and like you said, making hypothesis, validating them quickly, and then iterating quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Yeah, exactly. I think that in a lot of other markets like with apps, the people that came to if first were the big winners. I don’t know if this is going to be the case for bots. For us, maybe the first people to get it really right are the winners, but not the first ones that are here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; What were some of the challenges that you faced while building the 10+ bots that you’ve built so far?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Well, there’s a couple of big different challenges. I wrote them down just in case. Two of them we already talked about, finding the right use cases, solving a problem, and those are more internal things, right? Things that you’re in control of, things that you can effectively change and get right. Now there’s external things that will make it very difficult. One of those this is discoverability. Once you made your bot, what are you going to do? How are you going to get people discovered? How are you going to get people to it? I will say when it comes to this issue there is no bot store on Facebook, so there is not organic way, kind of like app store optimization is so far for the App Store or the Google Play Store that you can do to get free traffic. That’s one of the problems.&lt;/p&gt;

&lt;p&gt;Another one is that let’s say that you want to build a bot and you build a bot for Facebook Messenger, okay, and now your bot’s doing well and you want to have the same bot and you want to build it for Telegram or Twitter or SMS or Kik. These are all different platforms and there’s a chance, depending on how you bot talks and if it uses the buttons or the carousels that you might have to rebuild the whole thing a few different times because for example, Facebook supports buttons, Twitter doesn’t. Neither does SMS, so how would you take care of those differences?&lt;/p&gt;

&lt;p&gt;I would say that building on these different platforms with apps you have Android and you have iOS and that’s it. With this you have like, 5, 6 different platforms. That is one of the other main challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Right. How you you overcome the discoverability problem? That seems to be a very common challenge faced by many botmakers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Right. I wouldn’t say I’ve overcome it. I would say that being very active in the community is very good. That will get you visibility. It’s kind of like a double-edged sword. People are going to try your bot and people are going to know about it, but that doesn’t mean that they’re your target market. At the end of the day you still have a marketing problem, right? I would suggest that the best way to solve the discoverability right now is probably search engine optimization, SEO, might be one way. I would just treat it almost like a regular, any regular product. How do you get users? Once you have a certain amount, I think it’s 100 in order to do Facebook, targeting a look-alike audience on Facebook I think you need 100. Once you get to that 100, it becomes a lot easier to find another 100 people like them. I think that’s one way, retargeting is another way, and then finding them different communities.&lt;/p&gt;

&lt;p&gt;If you have a bot that’s solving a problem that’s painful and people are highly motivated to solve and it’s easy to use then it’ll be much easier for you to get users and to keep them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Right, right. How did the launch for Smart Notes go? What tactics did you use to launch it? Was it the typical Product Hunt launch?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Yeah. I’m really glad you brought that up. I’m purposely staying away from Product Hunt. When I launched, my goal wasn’t to launch, have a big launch and have a bunch of people try it. My goal was kind of the opposite. It was to have a very soft launch, have very few people know about it, make mistakes, learn from them, iterate, and then once I get the bot to a certain point that I feel like 6 out of 10 people that try it would love it out of my target market, once I get to that point, then I would push it to Product Hunt and other things because then you don’t have a leaky bucket. You have a good bucket and you could add more water.&lt;/p&gt;

&lt;p&gt;The last thing I want to do is have this leaky bucket, I don’t know where the holes are, and then have the downside of putting a lot of water in and some of it overflows and some of it comes through the holes and then at the end what’s left? Not that much. That’s where I am in the process. I’m in the iterative stage and then once I get it to a point where 6 out of 10 love it, then I’m going to push hard on Product Hunt and in other ways.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Yeah. What are some key lessons that you’ve learned? Like once Smart Notes has been in the wild among real users, like any interesting ways that people are using … ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan&lt;/strong&gt;: There’s a couple of really, really crazy ones. Okay, and this one will blow you mind, but when I say it you’ll know that it’s true. Okay? No one reads. Whatever you bot says, no one will read it. What they’ll do is they’ll skim it. Okay, so what you have to do is you have to make sure that your bot talks like Donald Trump.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Yup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; I’m serious. Literally think really short sentences, one line long, four letter words, one syllable each. It should be so simple that when you look at it, you don’t have a choice but to understand what it says.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Right. Got it. Do you think buttons and stuff kind of aid that?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Oh, absolutely. If you look at WeChat, they’re very button-centric. I spoke with one of the guys from Facebook Messenger, the PM, and he was like, basically he was like, “I hate the fact that we’re calling it a chatbot.” He’s like, “I wish is was just buttons,” because again, when you talk there are so many different ways to say the same thing. That’s a challenge in and of itself and then you throw in the fact that when the bot responds then maybe someone misunderstands it, right? For example, emotions are hard to understand, and then all this stuff is kind of lost in translation.&lt;/p&gt;

&lt;p&gt;That’s why Facebook is adding a lot of buttons. If you noticed they have a carousel, they have three buttons on it per card, and then they have the rich text buttons that you could slide now, that they recently added. They want to move, I believe, more towards WeChat for the more everyday things. It’s more easier, people don’t have to type. They can just push a quick button and it’s very, very clear what’s going to happen next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Right, got it. Cool. Awesome. So where can people find Smart Notes?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; On Messenger. The best thing is, this goes back to discoverability, you have to literally type in Smart Notes. Two words and then it’ll come up. Smart Notes Bot is the name of it. Also, Facebook Messenger has the @ symbol now, kind of like Twitter, so it’s &lt;a href=&quot;https://m.me/smartnotesbot&quot;&gt;@smartnotesbot&lt;/a&gt;. That’s the other way to find it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Where can people find you? Are you on Twitter?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Yeah, I’m on Twitter. I also have my own personal bot, which is called Stefan’s bot. That’s another way. I write for Venture Beat and for Chatbot Magazine and Chatbot’s Life. Those are three other ways you can find me. My name’s very, very unique so if you go on Messenger and you look me up, I’ll probably be like the first result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun:&lt;/strong&gt; Cool, awesome. Cool. Thanks again Stefan for sharing all of your thoughts. I think this was really great and we look forward to hearing more about Smart Notes and all the other bots that you’re building in the future.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stefan:&lt;/strong&gt; Okay, Absolutely. Thank you so much.&lt;/p&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 <entry>
   <title>Meet The Makers #2: Rabi Gupta & Evabot</title>
   <link href="http://mclov.in/2016/09/23/Meet-The-Makers-2-Rabi-Gupta-Evabot.html"/>
   <updated>2016-09-23T22:22:20+00:00</updated>
   <id>http://mclov.in/2016/09/23/Meet-The-Makers--2--Rabi-Gupta---Evabot</id>
   <content type="html">&lt;h2 id=&quot;meet-the-makers-2-rabi-gupta--evabot&quot;&gt;Meet The Makers #2: Rabi Gupta &amp;amp; Evabot&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Hi, everyone. Welcome to another edition of &lt;a href=&quot;https://www.getbotmetrics.com&quot;&gt;BotMetrics&lt;/a&gt;: Meet the Makers. My name is Arun. I’m one of the co-founders of BotMetrics. Today we’ll be speaking to Rabi Gupta, who is one of the co-founders of Eva bot, which is a gifting bot based out of San Francisco. Hi, Rabi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; Hey. Hi, Arun. Thanks for having me here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Before we go into Eva bot itself, maybe you can take some time to introduce yourself and your company and what you’re working on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; I’m Rabi. I’m one of the co-founders of &lt;a href=&quot;https://www.evabot.ai&quot;&gt;Evabot&lt;/a&gt;. Eva is essentially a chatbot enabled gifting fulfilled through human happiness agents. What we basically do is we remove human efforts from the senders, and we put human experience on the receiver’s end. We are actually doing gifting in the right way. That’s what we are doing right now.&lt;/p&gt;

&lt;p&gt;Before this I built another company in India. It was called iCouch, icouchapp.com, for TV channels. We sold it off early this year, and then we came here to basically build this consumer professional product from Valley.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Got it, cool. You say it was a gifting bot. What platform is it on now because if I remember correctly Eva didn’t start off as a traditional bot that you could think of on Messenger and stuff?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; We started with a e-mail bot, so e-mail and web-based bot. E-mail is you cc our bot, which is &lt;a href=&quot;mailto:eva@evabot.ai&quot;&gt;eva@evabot.ai&lt;/a&gt;. You cc our bot, and you mention anything in the e-mail, something like, “Hey, I’m gifting you a coffee as a nice gesture,” and Eva will help you out. After that what happens is Eva sends another e-mail in the same thread with a unique link where the user can click and chat with Eva and get their coffee gift. That’s how we started this. Last week itself we launched a Slack part. How Slack part will work is basically teams can appreciate each other for small work, like, “You solved a major bug. Here is a coffee from us as a team.” It’s as simple as saying something like, “send @username a:coffee” and then within Slack the user can actually talk or chat with the bot and get their coffee accepted. Once the coffee is delivered, the happiness agent also takes a picture. That picture comes within the Slack itself, so everyone in the team member can see, “Hey, this guy actually got a coffee for doing something nice.” Right now, we are available on Slack and web-based bot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Got it. Any plans to expand to other platforms as well? Messenger and Kick and Telegram and so on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; Right now we are focusing more on professional use case, companies and professionals. That’s why Slack made more sense for us. Messenger is a problem. Unless Messenger opens up the Graph API, we cannot actually send gifts because we cannot tag things. You can chat with bot one-to-one and then the bot can send a link probably to your friend, but that will essentially means you copy and pasting that link to your friend. We’ll probably do Messenger only when they allow you tag your friend or they allow us specifically to tag, and that means we need to grow to a much bigger audience before they take notice of that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Right, yeah. The absence of group chat is I think one of the weaknesses of Facebook Messenger.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; They opened Graph API before when and all these companies came up, so I’m pretty sure they are thinking twice about it because it’s not an easy decision for them because brands can easily start abusing people or friends and friends of friends. That would again put Facebook in trouble, so I think even if they do, they will do very specifically partnering with companies they like rather than doing it with everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Right. As a bot builder that has built on multiple platforms, are there any interesting secrets or tips that you can share with other bot makers?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; Looking it from the technology point of view, you can find lot of platforms for everything. It’s not difficult to build a conversational bot, and specifically even if you want to use NLPs and stuff, the basic NLP should be easy. I would talk more in terms of why bot makes more sense from a user perspective, from a product perspective.&lt;/p&gt;

&lt;p&gt;What we realized was, for example, when people were accepting gifts from us … For example, you as a receiver will receive a coffee today, and then you give micro preferences to the bot saying, “I like Phil’s Coffee, and I like this specific blend. I like it black,” and all of that. All this information is remembered by the bot, so next time when you get a gift, the chat is even shorter because we know what you like. We know where you want your gift.&lt;/p&gt;

&lt;p&gt;Interestingly what happened when we were doing this … In traditional-use case if you do this, the user will know I registered for this service, so this service will remember me, but while you are chatting, you are giving all this information without even realizing that you’re registering your service, which was very surprising to me because people used to ask me, “How are you going to do that? How do you remember my preferences?” I was like, “Hey, you gave all your information to the chatbot,” which is as good as registering to a service.&lt;/p&gt;

&lt;p&gt;That’s the best part because when you are chatting you are giving information. You don’t realize that you’re registering your service. That is a very psychological advantage which you can have when you are building bots. I don’t know how long it will work. If there are bots for everything, then of course people will realize they are chatting to a bot and registering your service, but for now it works. People should take advantage of that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Right. On the flip side, what were some of the challenges that you faced while building Eva?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; The challenge is expectations. When you start doing something over chat, the thing is people expect a lot from you, and then they are like, “Hey, can you do this? Can you do that? For you, it’s as simple as adding few things or adding an LP,” or “Why are you not asking people what they like as a gift?” Because, again, the thing which is a good thing for you while you’re using bot is also a bad thing because then people expect that this is very flexible and then you can do tons of things with this.&lt;/p&gt;

&lt;p&gt;Trying to find the balance because even if right now we have 4 or 5 flows, 4 or 5 gifting categories, it becomes challenging as you add more and more categories, for example, or use cases within the same category. If you realize that whenever a user gets a coffee gift again we should remember it and we should change the flow, but that change should also does not feel like a form. It should again feel like a chat.&lt;/p&gt;

&lt;p&gt;All these things are a challenge, and scaling down in terms of use cases is not easy because every flow needs to be tested a lot, and you don’t know … For example, a very simple thing like we used to say something like, “What do you prefer in coffee? Say ‘hot’ or ‘cold.’” Some people didn’t get what does hot or cold means, so we had to say something like, “Do you like your beverage hot or cold?” and then people used to get, “Okay, so hot coffee or cold coffee.”&lt;/p&gt;

&lt;p&gt;So, very small things. Some people get it; some people will not get it. Then you have to, because you cannot have a bot saying multiple things, it has to say just one thing, but then 10 people say, “No, people should get it, what the bot means to say.” These are the challenges which you will face, and even if you expand to, say, different countries where there is a different way in which people want to talk, then again it becomes challenging. For example, people will understand texting as something when you want to message someone, but in India people will not understand text, things like that. You cannot have one bot which solves all the purpose for you. Right now we are very specific to Silicon Valley in San Francisco, and that’s why it’s still manageable, but I can assume that as we plan to grow, it will become a challenge to have that lingo right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Right. That’s very interesting. We talk about this a lot at BotMetrics too. One of the challenges of bots is that it’s open-ended, and you have this almost random user interface as opposed to a sequential user interface that happens in mobile or web. It is very powerful but at the same time it’s more difficult, like you said, to set expectations on behalf of the user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; Yes, true, exactly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Tell us about the launch of Eva bot. Did you guys submit to the Slack app store? What were some strategies or tactics that you used to both market the product as well as how did you handle the launch?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; Slack bot is very new. Slack bot is just a week old. We haven’t yet got it on Product Hunt. It should go on Product Hunt this week maybe. Before that, with the e-mail bot, what we did was we met all these cool people, and we started sending them gifts. Because this e-mail was unique, this e-mail was like, “Hey, I’m sending you a coffee gift because you helped me out,” and then Eva would use to reply on that e-mail. It caught attention of people. That’s how we were able to get initial early adopters and influencers like Chris Messina, Amir from Slack. All these guys used the bot and then talked about us on Twitter. Some of this got us some traffic and credibility especially. Most of the guys we met, they heard about the idea, and they liked it and then they wanted to use it. Till now we have done more than 500 gifts in 3 months, and all organic through word of mouth.&lt;/p&gt;

&lt;p&gt;The other advantage is once you send a gift, it is vital because the other person knows about your service now. We are trying few tactics like if a person receives a gift, if within 30 second he or she wants to send a gift, that gift can be discounted. Then we are trying all these experiments, like can we give one coffee free so that they get more users? Can we get 50% discount so that they are more prone to use it? All these things we are trying with the e-mail bot. For Slack, the strategy we are using is actually very cool, which is whoever installs Slack bot in their team, the Eva bot for Slack in their team, they get a free coffee because as soon as you install it, the bot will send you a chat saying, “Here is your free coffee. Chat with me.” Then you chat; you get get your free coffee.&lt;/p&gt;

&lt;p&gt;From there, the flow starts. The next flow is you can give 2 more coffees to your teammates. After that 2 more coffees, we tell you that you can get 2 more coffees at a discount. Then we say you can buy a package for your team so that anyone in your team can actually start sending gifts. We’re trying to do that. We’ve got around 15 teams signed up in a week. Again, we try talking to people and telling them about the service. Most of the guys, they just installed it for free coffee, maybe, I don’t know.&lt;/p&gt;

&lt;p&gt;The idea is we have this advantage of making people use the product and get a free gift, so that becomes our user equation cost of the gift but then there is no wastage. Every time a gift is received or a free gift is given, those guys also bring us more users. We are using the inherent virality of the product to push it. Sometimes we also get another chance of getting more user when we give the gift. The happiness agent takes the pictures and then we have a chance to tweet it. All these things are there. There are various touch points, so at every touch point we are trying to see what can we do to make it more viral, make it more visible, and make the brand more visible and all of that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Right. I think it’s a very interesting strategy that you’re using both messaging and social media and harnessing the built-in virality of both to promote your product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; Yeah, exactly&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Cool. What are next steps for you? You mentioned you have a team of 7 people. Are you guys fundraising? What are the future plans for Eva bot?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; It is just small funding round including the &lt;a href=&quot;http://www.boost.vc/&quot;&gt;BoostVC&lt;/a&gt; accelerator program. The idea is this month we have a big milestone. We want to hit $10,000 in revenues this month. We have been growing 100% month on month, but this percent we want to grow even faster and see if we are able to show this growth and get all these companies join the Slack bot. After that, the plan is of course go and raise a seed round, maybe October.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Where can people find Eva bot? Is it evabot.ai, and that’s how you install the Slack bot?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; Yeah, &lt;a href=&quot;http://evabot.ai&quot;&gt;evabot.ai&lt;/a&gt; will get all the information. You can also go to &lt;a href=&quot;http://slack.evabot.ai&quot;&gt;slack.evabot.ai&lt;/a&gt; to directly go to the Slack thing and you can go to &lt;a href=&quot;http://gift.evabot.ai&quot;&gt;gift.evabot.ai&lt;/a&gt; to directly start chatting with the bot and to send gifts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Got it. Where can people find you? Are you on Twitter or Facebook?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; Yeah, I’m everywhere. Twitter, Facebook, they are easy places to find me.&lt;/p&gt;

&lt;p&gt;My Twitter handle is &lt;a href=&quot;https://twitter.com/rgupta29&quot;&gt;rgupta29&lt;/a&gt; on Twitter. On Facebook, it’s Rabi Gupta.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arun Thampi:&lt;/strong&gt; Cool. Awesome. It was great to learn about Eva bot, and I’m excited to see it grow. I definitely want to try it out too and both send gifts as well as hopefully receive gifts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rabi Gupta:&lt;/strong&gt; Yeah, definitely. It will be great.&lt;/p&gt;

&lt;p&gt;Thank you. Thanks for having me here.&lt;/p&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 <entry>
   <title>3 Key Questions You Should Ask About Conversational Analytics</title>
   <link href="http://mclov.in/2016/09/21/Three-Key-Questions-You-Should-Ask-About-Conversational-Analytics.html"/>
   <updated>2016-09-21T18:29:52+00:00</updated>
   <id>http://mclov.in/2016/09/21/Three-Key-Questions-You-Should-Ask-About-Conversational-Analytics</id>
   <content type="html">&lt;h2 id=&quot;3-key-questions-you-should-ask-about-conversational-analytics&quot;&gt;3 Key Questions You Should Ask About Conversational Analytics&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Originally posted on &lt;a href=&quot;https://medium.com/@iamclovin&quot;&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The fine folks at &lt;a href=&quot;http://azumo.co&quot;&gt;Azumo&lt;/a&gt; hosted a bot maker meet-up at Galvanize San Francisco, led by &lt;a href=&quot;http://www.azumo.co&quot;&gt;Azumo’s&lt;/a&gt; CEO &lt;a href=&quot;https://twitter.com/andrewburgert&quot;&gt;Andrew Burgert&lt;/a&gt; on September 15th 2016. They invited conversational analytics providers to a panel to discuss the state of analytics for this emergent industry.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*8uex_kiM6eq4_XKiUbzvuA.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here are three key takeaways from the evening on questions that brands and bot markers need to be asking their analytics providers:&lt;/p&gt;

&lt;h4 id=&quot;can-i-maintain-the-data-privacy-and-security-standards-of-my-company-and-industry-while-using-thisvendor&quot;&gt;Can I maintain the data privacy and security standards of my company and industry while using this vendor?&lt;/h4&gt;

&lt;p&gt;As bots become more pervasive in the enterprise and start to tackle protected information such as health, legal and financial matters, communications with your bot will require the same level scrutiny and care as the remainder of communications and records.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*uOxz_9FvKOh5HNrnQ3ga1Q.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Since most chat analytics vendors maintain full transcripts of your customer conversations you need a vendor that allows you the ability to deploy the analytics solution behind your firewall or VPC so that you can meet your obligations under the &lt;em&gt;Sarbanes-Oxley Act&lt;/em&gt; (SOX); &lt;em&gt;Payment Card Industry Data Security Standard&lt;/em&gt; (PCI DSS); &lt;em&gt;Children’s Online Privacy Protection Act&lt;/em&gt;(COPPA); &lt;em&gt;Health Insurance Portability and Accountability Act&lt;/em&gt; (HIPAA); The_Health Information Technology for Economic and Clinical Health Act_ (HITECH) or the &lt;em&gt;European Union Data Protection Directive&lt;/em&gt;; &lt;em&gt;Safe Harbor Act&lt;/em&gt; or any of the host of other industry-specific compliance requirements.&lt;/p&gt;

&lt;h4 id=&quot;am-i-able-to-have-full-unrestricted-access-to-my-data-including-fullexport&quot;&gt;Am I able to have full unrestricted access to my data? Including full export?&lt;/h4&gt;

&lt;p&gt;In the bad old days of enterprise software, vendors would store customer data in proprietary formats. The logic was that by making the data inaccessible they are able to create customer lock-in by holding the data hostage.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*kw7DJAyt9k8D7DpQpyH_Aw.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The best services these days are ones that allows customers to fully export their data. This is good practice not just from a philosophical point of view. This will also allow you the bot maker to leverage any additional technical or business intelligence tools that you already have and more importantly allow you to tie conversational metrics to other business reporting that you have already invested in.&lt;/p&gt;

&lt;h4 id=&quot;finally-how-does-the-conversational-ui-analytics-provider-fit-into-the-ecosystem-of-tools-such-as-your-ai-or-nlp-providers&quot;&gt;Finally, how does the conversational UI analytics provider fit into the ecosystem of tools such as your AI or NLP Providers?&lt;/h4&gt;

&lt;p&gt;Chatbots represent an involved dance between product design, natural language processing (NLP), artificial intelligence (AI), and cross-platform distribution to get the user experience right. Each of these is a complex domain with significant advances being made on regular basis.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn-images-1.medium.com/max/800/1*fdvA6OTaOq500TxuG9lUjA.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Your analytics company should be focused on understanding and integrating with the ecosystem of Platform, NLP and AI providers. A clear analytics focus allows the creation of a best-in-class solution. In addition, this allows you to leverage the best provides in each domain rather than being forced into mediocre solutions in each of these domains provided by an unfocused vendor.&lt;/p&gt;

&lt;p&gt;The chatbot market is heating up as everyone races to find bot native experiences to build the “killer bot” (no pun intended) the ability to find and adopt the best in class tools will be the key differentiator between the leaders and laggards in this space.&lt;/p&gt;
</content>
   <author>
     <name>Arun Thampi</name>
     <uri>http://mclov.in/</uri>
   </author>
 </entry>
 
 
</feed>