<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Eric Arthur on Medium]]></title>
        <description><![CDATA[Stories by Eric Arthur on Medium]]></description>
        <link>https://medium.com/@KantJungRand?source=rss-da04b543463------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*pTwa5do9sFxcxO0N.jpg</url>
            <title>Stories by Eric Arthur on Medium</title>
            <link>https://medium.com/@KantJungRand?source=rss-da04b543463------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 08:59:43 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@KantJungRand/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Attribution Modeling with Phone Calls]]></title>
            <link>https://medium.com/@KantJungRand/attribution-modeling-with-phone-calls-750a0124346d?source=rss-da04b543463------2</link>
            <guid isPermaLink="false">https://medium.com/p/750a0124346d</guid>
            <category><![CDATA[google-analytics]]></category>
            <category><![CDATA[call-tracking]]></category>
            <category><![CDATA[analytics]]></category>
            <category><![CDATA[data-analysis-tool]]></category>
            <category><![CDATA[attribution-modeling]]></category>
            <dc:creator><![CDATA[Eric Arthur]]></dc:creator>
            <pubDate>Sun, 08 Oct 2017 20:05:32 GMT</pubDate>
            <atom:updated>2017-10-08T21:51:56.798Z</atom:updated>
            <content:encoded><![CDATA[<h4>How to Add Adwords Phone Call Conversions into Your Default Channel Groupings Report in Google Analytics</h4><p>If you do data analysis for a living, like I do, then you know how challenging it can be to properly attribute all the touchpoints a user takes along the conversion journey. Offline touchpoints — like phone calls — can be particularly difficult. In this post, I’m going to show you how to create a new channel called “Phone” and include it in your Default Channel Group report in Google Analytics. Then, I’m going to show you how to manually import a phone call conversion into your Google Analytics data by using the <a href="https://ga-dev-tools.appspot.com/hit-builder/">Google Analytics Hit Builder tool</a>.</p><h3>But First, A Little Background …</h3><p>So, here’s the scenario. Last night, we acquired a new customer for our <a href="https://www.gmg.cm/">text to donate fundraising service</a>. Yay! We love new customers, right? Of course, as a data analyst, it sweetens the victory <em>even more</em> when I can figure out which marketing channels and efforts made the most impact in motivating the customer to place an order.</p><p>Since this customer acquisition involved an “offline” phone call, as well as a direct visit, my Google Analytics data was not super-helpful. Here’s what GA shows as the Source / Medium for this sale:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/477/1*YAD1Pkw6131ZAJi9aSBuUA.png" /></figure><p>The “Page” column shows the order checkout confirmation page, and the “Source / Medium” column shows our Moonclerk payment checkout page. Of course a customer has to hit the checkout page in order to make a purchase. Attributing that as a Source isn’t all that helpful. I want to know where the visitor came from, how she first came into contact with my product, how she first got to my website.</p><p>To make matters even more complicated, the Moonclerk payment checkout page is embedded into my web page as a &lt;script src&gt; element — basically, an iframe. &lt;script src&gt; and &lt;iframes&gt; are notorious for dropping session cookies, making attribution that much harder.</p><p>I can link my Moonclerk account with my GA account, but that causes other problems. Doing this causes “app.moonclerk.com” visits to show up not as referrals but as landing pages, artificially inflating my pageviews. This also doesn’t make sense; why should an embedded form register an additional pageview each time the person visits the page on which the form is embedded? It’s not technically a new page on my site, so having the form show up on “Page” and “Landing Page” reports also muddies the waters.</p><p>So, I decided to keep the Moonclerk-GA integration but use Advanced Filters to move visits from “app.moonclerk.com” out of the “My Website” category and into the “Direct visit” category. Neither approach is perfect, but this works a little better for our needs.</p><p><em>(I created an Advanced Search Filter to rewrite visits from “app.moonclerk.com” from referrals to direct visits. That’s why you see it now say “app.moonclerk.com / </em><strong>(none)</strong><em>”, as opposed to “app.moonclerk.com / </em><strong>referral</strong><em>” which it used to say. Since this is a form embedded on my website, I don’t want visits to the page where this form sits to be counted as outside referrals. That really doesn’t make sense, and it makes it even harder to figure out what’s really going on. If you want the template to this filter, yours might look something like this:</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/503/1*Axu6QDTZfUi_nlrTs8jyMA.png" /></figure><p><em>According to </em><a href="https://support.google.com/analytics/answer/3297892"><em>this GA support document</em></a><em>, changing the Campaign Medium to (none) as I did above causes GA to put visits to/from app.moonclerk.com into the Direct category.</em></p><p><em>Curiously, GA is actually putting visits with medium “(none)” into the “Other” category, but sorting that out is for another blog post!)</em></p><h3>But I Digress … Back to the Backround.</h3><p>After a good deal of sleuthing, I figured out our new customer’s journey (we’ll call her Sara). Sara first did a Google search for “text to donate nonprofit.” We’re running an Adwords campaign, and this is one of the keywords we’re bidding on. Sara did her search on an iPhone, and her search triggered our ad. Because we have a call extension with call tracking set up, I could see that Sara clicked on the little phone icon in the ad and placed her call:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mHE8nJwXi-pWI5ZzgqxL3Q.png" /><figcaption>The Google Adwords Call Details report. If you have Google’s internal call tracking set up for your Call Extensions, you can find this report at the Ad Group level under Dimensions. We see Sara actually called on three separate occasions, all on the same day.</figcaption></figure><p>I spoke to Sara for about 19 minutes total. At the end of the phone call, Sara asked, “How do I place my order?” I told her that she could go to the website and order online. She replied, “Ok great. What’s the web address?” To which I responded, “www.GMG.cm.”</p><p>A little later that evening, Sara went to the site and placed her order.</p><h3>Limitations with GA Default Tracking</h3><p><em>Or “Why Direct Traffic Is the Bane of a Data Analyst’s Existence”</em></p><p>Now, because GA attributes a conversion to the last non-direct touchpoint, GA said this conversion was attributable to my Moonclerk checkout form, as a referral (hence rewritten as a direct visit by my filter). As I showed you above, this is what it looked like in GA initially:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/477/1*YAD1Pkw6131ZAJi9aSBuUA.png" /></figure><p>Where’s the PPC channel here? It’s nowhere to be found, not on this report at least.</p><p>More sleuthing revealed four distinct sessions from Sara:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CG2m407co7Rb0okQAEK1Pg.png" /></figure><p>Because the order form asks for address, I could cross-reference Sara’s location (San Diego) with the City dimension in GA. Now we start to get a clearer picture. Combining this with the call tracking data we got from Adwords, we see that there were <em>at least 4 points Sara touched before purchasing</em>: A PPC ad, a phone call, our website, and our payment checkout form (which is technically still our website).</p><p>Looking at the Hour of Day report in GA — which showed Sara’s conversion occurred during the 7pm hour — and combining this with the Adwords call data — which showed her first call occurring during the 1pm hour — I now had all the clues to put Sara’s conversion journey in sequential order:</p><ol><li>Sara did a Google search for “text to donate nonprofit” sometime just before 1pm</li><li>Sara clicked the call icon in the ad and placed a call to our office</li><li>I spoke to Sara for about 14 minutes, shortly after 1:08pm</li><li>I gave Sara the web address to make her purchase</li><li>Sara made another call to me later in the day to ask a few additional questions</li><li>Sara typed “www.gmg.cm” into her browser a few hours later, around 7:30pm (the only <em>true</em> direct visit in the sequence)</li><li>Sara visited our checkout page and placed her order shortly thereafter</li><li>Sara placed a final call asking me to confirm we got her order and to make a couple of tweaks to her order</li></ol><p>So we see that GA got right <em>one</em> of the direct visits (when Sara typed in my domain directly into her address bar). But we see that GA, by itself, doesn’t really do justice to the Google ad and has no way natively to report the phone call at all. GA also incorrectly thinks that it’s a different visitor hitting the checkout form because embedded forms sometimes drop the session cookies.</p><h3>More Murkiness: The Acquisition &gt;&gt; Overview Report</h3><p>Furthermore, GA’s Acquisition Overview report looks like this for yesterday:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1020/1*bdIuRu5Wfz72Ck6Qp9Jw_A.png" /></figure><p>Well, that’s not helpful at all! We know that Paid Search, Phone <em>and</em> Direct channels were all involved in this one sale. But the sale was thrown into the “(Other)” category, the equivalent of GA shrugging its shoulders and saying, “I’ve no clue.” Not super helpful from an attribution standpoint.</p><p>And the Multi-Channel Funnel “Top Conversion Path” report fares no better. It also doesn’t even see the PPC or phone efforts:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/876/1*aXGWCBjsSNqPrbB1Khk3wA.png" /></figure><h3>The Fix</h3><p>As a result of these limitations, I sought a way to incorporate an offline phone call into Google Analytics and clean up the data a bit. Here’s my solution.</p><p>First, edit the Default Channel Grouping to add “Phone” as a channel. You do this by going to Admin &gt;&gt; View &gt;&gt; Channel Settings. Click on “Default Channel Settings”, and from there you can edit or add new channels:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/756/1*GlHMzZpeE2JAGw-VdiZCsw.png" /></figure><p>I added a “Phone (PPC)” channel. Under “Define rules”, I selected “Source contains” and typed in “Phone.” Later, I’m going to manually add a conversion to GA with a “utm_source=Phone” parameter appended to the the “/text-to-donate-confirm” page. This tells GA that a conversion from “Source=Phone” occurred, and the channel grouping will then put that conversion in the “Phone (PPC)” channel. So now your data will look like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1019/1*yaOLFSjcCqh75s9Sj04Pkw.png" /></figure><p>This is already looking much better. Now I’m getting a more accurate picture of the real workhorses of customer acquisition — a data analyst’s dream!</p><h3>How to Manually Add a Conversion to GA Using the Hit Builder</h3><p>Now for the fun part. Those 3 Phone conversions above were manually added to GA using a tool called Hit Builder. This tool uses the GA API to send data directly to your GA property ID. Here’s what you do:</p><ol><li>Visit <a href="https://ga-dev-tools.appspot.com/hit-builder/">https://ga-dev-tools.appspot.com/hit-builder/</a></li><li>Give the tool access to your GA property</li><li>Once the tool has access, fill in the “Hit Parameter Details” fields as follows:</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/724/1*GbmANkoLcGVrppP27mk4MA.png" /><figcaption>v always = 1. t = pageview. tid = your GA property ID (UA-XXXXXX-Y). cid = whatever you want; I chose the phone number of the customer. cs = Campaign Source, the utm_source value you want; I chose “Phone”. dp = Destination Page. In this example, it is the checkout confirmation page. dt = Destination Title, the title of the checkout confirmation page. dh = destination hostname, the hostname of your website. And cm = Campaign Medium, the utm_medium value you want.</figcaption></figure><p>Once you have this all filled out, you’ll see the URI populated in the field above:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/706/1*rxGfZbe2xrdU4oK1kTVOXg.png" /></figure><p>When I click “Validate hit,” the Hit Builder is going to send an artificial visit to my “/text-to-donate-confirm” page, with a Source / Medium of “Phone / ppc”. Since I have visits to this destination page tracked as Goals in GA, GA will count this artificial “visit” as a goal completion. Due to the rules I assigned in the new Phone Channel Grouping, GA will now put this visit under the “Phone (PPC)” channel, so that my Acquisition reports will start to be more accurate.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F26gsrna4rS0nhneuc%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fsagawards-sag-awards-2017-26gsrna4rS0nhneuc&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F26gsrna4rS0nhneuc%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="236" frameborder="0" scrolling="no"><a href="https://medium.com/media/cfb002341bb25f4634490be3aea2f5f9/href">https://medium.com/media/cfb002341bb25f4634490be3aea2f5f9/href</a></iframe><h3>Drawbacks to This Approach</h3><p>Though this approach now gives you a way to add phone calls as a channel in GA and assign conversions to that channel, this approach does have a couple of drawbacks. First, it’s a wholly manual approach. That means you must manually create the hit to add the phone call conversion to GA. Depending upon how many phone call conversions you get, this could be time consuming. Fortunately, we’re a microbusiness that doesn’t get a ton of phone calls, so managing this manually isn’t that big a deal.</p><p>A second drawback is that now you’ve artificially inflated your conversions in GA. Because you cannot erase or overwrite past conversion data in GA, my report now shows two conversions for the same person: the original one from yesterday, still under the “(Other)” channel, and the artificially-generated one from today under the “Phone (PPC)” channel. But it’s the same conversion. This method may not be ideal if you need accurate raw numbers of conversions.</p><p>Nevertheless, we’re happy with this solution. Having an accurate raw number of conversions is less important to us at this point than getting a more accurate attribution model. We’ve already figured out our ROAS, CPA and LCV calculations, so it’s less important for us to know the exact number of conversions. What’s more important to us now is figuring out to the best our our ability which channels are making the biggest impact on our sales.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=750a0124346d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Plug-and-Play Conversational API?]]></title>
            <link>https://medium.com/botpublication/a-plug-and-play-conversational-api-ab6084b631a5?source=rss-da04b543463------2</link>
            <guid isPermaLink="false">https://medium.com/p/ab6084b631a5</guid>
            <category><![CDATA[chatbots]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[bots]]></category>
            <category><![CDATA[rest-api]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <dc:creator><![CDATA[Eric Arthur]]></dc:creator>
            <pubDate>Tue, 17 Jan 2017 14:16:04 GMT</pubDate>
            <atom:updated>2017-01-17T14:16:04.757Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*8uPSRzVbTWO-sXATc9pDcg.jpeg" /></figure><p>Since we got into the bot space last Fall, we’ve wished for a simple API that we could connect with to deploy conversational AI into an already-existing chatbot. Since we didn’t find one, we decided to build an API for developers.</p><h3>Three Types of Bot-Building Platforms</h3><p>The bot-building platforms seem to fall into three broad categories. The first are natural language processing (NLP) platforms like api.ai and wit.ai which require you to create your inputs and outputs. Platforms like these can be powerful, but the drawback is that you have to “train” your bot over long periods of time. You also must constantly add intents, edit and improve responses, and adjust the machine learning to get the chatbot to respond appropriately.</p><p>The second type of bot-building service are the drag-and-drop kind. Examples of these include motion.ai and Chatfuel. These tend to be a little simpler to use than the NLP platforms. However, these services generally don’t offer much in the way of conversational AI.</p><p>The third type are the AIML-based services. AIML stands for “Artificial Intelligence Markup Language.” Basically it is a form of XML that encodes <a href="https://medium.com/botpublication/using-rule-based-ai-in-our-sms-chatbot-23cb493b3096">rules for questions and answers</a>. One good example of this kind of chatbot builder is Botlibre. With Botlibre, you can add inputs and responses in the form of AIML scripts.</p><h3>Why A Conversational API?</h3><p>Of the three types mentioned above, the third gets you the closest to a plug-and-play solution — but not really. You still have to code the AIML scripts yourself. And the others, forget it. Api.ai has a “small talk” domain — sort of a set of pre-scripted responses to common conversational speech. But it still doesn’t work all that well out of the box; you have to train the system over time. Needless to say, this is super time consuming.</p><p>Our API was borne out of our own frustration with this. We wanted to enable developers to quickly and easily deploy conversational AI into their chatbots — and without having to do it from scratch. It’s a major hassle to have to train a bot to understand simple platitudes like “hello,” “good-bye,” and “how are you?” No one wants to spend weeks creating AIML scripts or entering question/response pairs into a form.</p><p>We thought, “Wouldn’t it be useful if there were a conversational API where you could just launch a session through a simple RESTful HTTP request?” You would make an HTTP GET request to an endpoint URL, add a couple of parameters, and boom! The API would respond back with the appropriate response.</p><p>So, <a href="https://www.textengine.info/get-the-code">that’s what we built</a>.</p><p>For a small fee, you can license your API key <a href="https://www.textengine.info/get-the-code">here</a>. Here’s <a href="https://www.textengine.info/get-the-code">some documentation</a> with sample code snippets and a demo. And when you want to add a question/response pair or modify an existing one, no need to script a new AIML node or create new intents or entities inside a platform. Just email the details to our friendly support chatbot, Sophia, and she’ll take care of you. ;)</p><blockquote><strong><em>Review Text Engine on </em></strong><a href="https://botlist.co/bots/1504-text-engine"><strong><em>BotList</em></strong></a></blockquote><p><em>I’m a social entrepreneur who has been building telephony and SMS applications since 2008. An artist at heart, I won a full scholarship to The University of Texas at Austin for classical piano in 1993. In 2007, I began teaching myself Javascript, PHP and Ruby in the evenings while working as a marketing professional by day. I started my first business in 2008 (Gnosis Media Group), a communications consultancy whose first successful product was a </em><a href="http://gmg.cm/text-to-donate"><em>text-to-donate application for nonprofits</em></a><em>.</em></p><p><em>Building on that technology, I later built </em><a href="https://textengine.info/"><em>Text Engine</em></a><em>, which was awarded the distinction of “Tech Company to Watch 2015” by the Connecticut Technology Council. Text Engine was later accepted into the award-winning ReSET Impact Accelerator in January 2016, and soon after we received significant funding from Backstage Capital, a Los Angeles venture capital fund. When I’m not coding, I enjoy power naps, reading philosophy texts, playing chess, and bowling.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ab6084b631a5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/botpublication/a-plug-and-play-conversational-api-ab6084b631a5">A Plug-and-Play Conversational API?</a> was originally published in <a href="https://medium.com/botpublication">BotPublication</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Using Rule-Based AI in Our SMS Chatbot]]></title>
            <link>https://medium.com/chat-bots/using-rule-based-ai-in-our-sms-chatbot-49654a2fd6e0?source=rss-da04b543463------2</link>
            <guid isPermaLink="false">https://medium.com/p/49654a2fd6e0</guid>
            <category><![CDATA[bots]]></category>
            <category><![CDATA[sms-chatbot]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[chatbots]]></category>
            <dc:creator><![CDATA[Eric Arthur]]></dc:creator>
            <pubDate>Fri, 16 Dec 2016 17:44:28 GMT</pubDate>
            <atom:updated>2016-12-16T18:08:31.375Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RAFXBSbjQwvXhNj2Yttgyg.jpeg" /></figure><p>Our <a href="https://www.textengine.info/how-it-works">SMS search engine</a>, called Text Engine, was originally created in 2013. The idea was to create a utility that would enable users to search the Web without needing to use a web browser and without using data. Text Engine accomplishes this by giving you access to vital, basic web information just by sending and receiving text messages. To keep Text Engine relevant for an ever-changing mobile market, our investors suggested that we think about adding a chatbot experience to Text Engine. So that’s what we did.</p><h3>Initial Experiments with Facebook Messenger</h3><p>Our initial plan was to turn Text Engine into a Facebook Messenger bot. We chose the Facebook Messenger medium because we thought people would love the ability to search Google, right from FB Messenger, without ever having to leave Facebook.</p><p>Well, as with most first trials, it didn’t work out as well as we’d hoped. First, we couldn’t get the messenger version to work as well as the SMS app. Text Engine draws from pretty sophisticated APIs and performs even more sophisticated parsing which the bot-building platforms like api.ai and converse.ai simply couldn’t handle reliably. Second, we found after about 200 use cases that users really weren’t as thrilled about searching Google from Facebook as we thought they would be. What they <em>really</em> wanted was simply to talk to the application and have it respond like a human. In other words, they wanted <em>conversational AI</em>.</p><h3>What Type of AI Should We Use?</h3><p>So we scrapped the Facebook Messenger idea altogether and decided to add AI to the original SMS search engine. But to do that required scripting it ourselves, not relying on an NLP engine like api.ai (which has its own limitations). Additionally, we learned that the kind of AI that api.ai uses takes a really long time to refine. This is because it requires 1000s of inputs and contexts over a long period of time in order to “learn” how to communicate. Until then, the bot remains fairly stupid.</p><p>However, going the FB Messenger route wasn’t a total loss because the experiment allowed us to understand what users really wanted in a chatbot. It also taught us the limitations associated with turnkey bot-building platforms. Without this trial and error, our SMS chatbot — which we affectionately now call <em>Sophia</em> — would not have come to life.</p><p>Sophia was created using what <a href="https://medium.com/u/d002f056f8c">Pavel Surmenok</a> calls <a href="https://hackernoon.com/natural-language-pipeline-for-chatbots-897bda41482#.waemrxsfa">rule-based, closed-domain artificial intelligence</a> (RBCD). This type of AI is simpler and ostensibly less dynamic than stronger forms of AI. But you’d be surprised how smart you can make your bot with some well-constructed rules and some sophisticated regex. For example,</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/b7f4b0fb02c235fc7700891eaee486f2/href">https://medium.com/media/b7f4b0fb02c235fc7700891eaee486f2/href</a></iframe><p>BCD AI worked well for our needs because the conversational element was never meant to be an end in itself. We only added conversational AI as an ornament to the core purposes of the SMS utility.</p><h3>Advantages of Rule-Based Closed-Domain Artificial Intelligence</h3><p>With RBCD AI, we found we could guide the user toward her desired answer more quickly, especially when her intent was obscure. We also found that users didn’t have to worry as much about using awkward syntax to get the right answer because we could employ rules to unpack and reconstruct their queries in the language the bot understands. Another advantage of RBCD AI is that it doesn’t require as much machine training as other forms of AI, since you don’t need as large a dataset to get it right.</p><p>We’re still experimenting, but the initial results are promising. We are seeing an uptick in user engagement, which was the whole point of adding the AI. If anyone would like to license our code to build your own version of RBCD AI, you can get our code <a href="https://textengine.info/get-the-code">here</a>.</p><p><em>I’m a social entrepreneur who has been building telephony and SMS applications since 2008. An artist at heart, I won a full scholarship to The University of Texas at Austin for classical piano in 1993. In 2007, I began teaching myself Javascript, PHP and Ruby in the evenings while working as a marketing professional by day. I started my first business in 2008 (Gnosis Media Group), a communications consultancy whose first successful product was a </em><a href="http://gmg.cm/text-to-donate"><em>text-to-donate application for nonprofits</em></a><em>.</em></p><p><em>Building on that technology, I later built </em><a href="https://textengine.info/"><em>Text Engine</em></a><em>, which was awarded the distinction of “Tech Company to Watch 2015” by the Connecticut Technology Council. Text Engine was later accepted into the award-winning ReSET Impact Accelerator in January 2016, and soon after we received significant funding from Backstage Capital, a Los Angeles venture capital fund. When I’m not coding, I enjoy power naps, reading philosophy texts, playing chess, and bowling.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=49654a2fd6e0" width="1" height="1" alt=""><hr><p><a href="https://medium.com/chat-bots/using-rule-based-ai-in-our-sms-chatbot-49654a2fd6e0">Using Rule-Based AI in Our SMS Chatbot</a> was originally published in <a href="https://medium.com/chat-bots">Chatbots Magazine</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Using Rule-Based AI in Our SMS Chatbot]]></title>
            <link>https://medium.com/botpublication/using-rule-based-ai-in-our-sms-chatbot-23cb493b3096?source=rss-da04b543463------2</link>
            <guid isPermaLink="false">https://medium.com/p/23cb493b3096</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[bots]]></category>
            <category><![CDATA[chatbots]]></category>
            <category><![CDATA[sms]]></category>
            <dc:creator><![CDATA[Eric Arthur]]></dc:creator>
            <pubDate>Wed, 07 Dec 2016 03:46:58 GMT</pubDate>
            <atom:updated>2016-12-15T21:03:18.295Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BxTyCo0Cexob0vqj06JmxQ.jpeg" /></figure><p>Our <a href="https://www.textengine.info/how-it-works">SMS search engine</a>, called Text Engine, was originally created in 2013. The idea was to create a utility that would enable users to search the Web without needing to use a web browser and without using data. Text Engine accomplishes this by giving you access to vital, basic web information just by sending and receiving text messages. To keep Text Engine relevant for an ever-changing mobile market, our investors suggested that we think about adding a chatbot experience to Text Engine. So that’s what we did.</p><h3>Initial Experiments with Facebook Messenger</h3><p>Our initial plan was to turn Text Engine into a Facebook Messenger bot. We chose the Facebook Messenger medium because we thought people would love the ability to search Google, right from FB Messenger, without ever having to leave Facebook.</p><p>Well, as with most first trials, it didn’t work at as well as we’d hoped. First, we couldn’t get the messenger version to work as well as the SMS app. Text Engine draws from pretty sophisticated APIs and performs even more sophisticated parsing which the bot-building platforms like api.ai and converse.ai simply couldn’t handle reliably. Second, we found after about 200 use cases that users really weren’t as thrilled about searching Google from Facebook as we thought they would be. What they <em>really</em> wanted was simply to talk to the application and have it respond like a human. In other words, they wanted <em>conversational AI</em>.</p><h3>What Type of AI Should We Use?</h3><p>So we scrapped the Facebook Messenger idea altogether and decided to add AI to the original SMS search engine. But to do that required scripting it ourselves, not relying on an NLP engine like api.ai (which has its own limitations). Additionally, we learned that the kind of AI that api.ai uses takes a really long time to refine. This is because it requires 1000s of inputs and contexts over a long period of time in order to “learn” how to communicate. Until then, the bot remains fairly stupid.</p><p>However, going the FB Messenger route wasn’t a total loss because the experiment allowed us to understand what users really wanted in a chatbot. It also taught us the limitations associated with turnkey bot-building platforms. Without this trial and error, our SMS chatbot — which we affectionately now call <em>Sophia</em> — would not have come to life.</p><p>Sophia was created using what <a href="https://medium.com/u/d002f056f8c">Pavel Surmenok</a> calls <a href="https://hackernoon.com/natural-language-pipeline-for-chatbots-897bda41482#.waemrxsfa">rule-based, closed-domain artificial intelligence</a> (RBCD). This type of AI is simpler and ostensibly less dynamic than stronger forms of AI. But you’d be surprised how smart you can make your bot with some well-constructed rules and some sophisticated regex. For example,</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/b7f4b0fb02c235fc7700891eaee486f2/href">https://medium.com/media/b7f4b0fb02c235fc7700891eaee486f2/href</a></iframe><p>RBCD AI worked well for our needs because the conversational element was never meant to be an end in itself. We only added conversational AI as an ornament to the core purposes of the SMS utility.</p><h3>Advantages of Rule-Based Closed-Domain Artificial Intelligence</h3><p>With RBCD AI, we found we could guide the user toward her desired answer more quickly, especially when her intent was obscure. We also found that users didn’t have to worry as much about using awkward syntax to get the right answer because we could employ rules to unpack and reconstruct their queries in the language the bot understands. Another advantage of RBCD AI is that it doesn’t require as much machine training as other forms of AI, since you don’t need as large a dataset to get it right.</p><p>We’re still experimenting, but the initial results are promising. We are seeing an uptick in user engagement, which was the whole point of adding the AI. If anyone would like to license our code to build your own version of RBCD AI, you can get our code <a href="https://textengine.info/get-the-code">here</a>.</p><p><em>Review Text Engine on </em><a href="https://botlist.co/bots/1504-text-engine"><em>BotList</em></a></p><p><em>I’m a social entrepreneur who has been building telephony and SMS applications since 2008. An artist at heart, I won a full scholarship to The University of Texas at Austin for classical piano in 1993. In 2007, I began teaching myself Javascript, PHP and Ruby in the evenings while working as a marketing professional by day. I started my first business in 2008 (Gnosis Media Group), a communications consultancy whose first successful product was a </em><a href="http://gmg.cm/text-to-donate"><em>text-to-donate application for nonprofits</em></a><em>.</em></p><p><em>Building on that technology, I later built </em><a href="https://textengine.info/"><em>Text Engine</em></a><em>, which was awarded the distinction of “Tech Company to Watch 2015” by the Connecticut Technology Council. Text Engine was later accepted into the award-winning ReSET Impact Accelerator in January 2016, and soon after we received significant funding from Backstage Capital, a Los Angeles venture capital fund. When I’m not coding, I enjoy power naps, reading philosophy texts, playing chess, and bowling.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=23cb493b3096" width="1" height="1" alt=""><hr><p><a href="https://medium.com/botpublication/using-rule-based-ai-in-our-sms-chatbot-23cb493b3096">Using Rule-Based AI in Our SMS Chatbot</a> was originally published in <a href="https://medium.com/botpublication">BotPublication</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[I May Never Be Hired Again After Posting This:]]></title>
            <link>https://medium.com/@KantJungRand/i-may-never-be-hired-again-after-posting-this-2d6c033c9142?source=rss-da04b543463------2</link>
            <guid isPermaLink="false">https://medium.com/p/2d6c033c9142</guid>
            <category><![CDATA[entrepreneur]]></category>
            <category><![CDATA[entrepreneurship]]></category>
            <category><![CDATA[ayn-rand]]></category>
            <category><![CDATA[corporate-culture]]></category>
            <category><![CDATA[objectivism]]></category>
            <dc:creator><![CDATA[Eric Arthur]]></dc:creator>
            <pubDate>Fri, 02 Sep 2016 22:33:42 GMT</pubDate>
            <atom:updated>2017-06-10T18:23:32.782Z</atom:updated>
            <content:encoded><![CDATA[<h4>Creators, Company Men, and “<em>The Fountainhead”</em></h4><blockquote>“I guard my treasures: my thought, my will, my freedom. And the greatest of these is freedom.” — Ayn Rand in “Anthem”</blockquote><p>“I would have to think on a nice, clean job. I don’t want to think. Not their way. It will have to be their way, no matter where I go.”</p><p>These words were spoken by Howard Roark, the protagonist of Ayn Rand’s 1943 best seller, <em>The Fountainhead. </em>The book is about an idealistic, misunderstood architect who clings to his integrity even though it costs him everything.</p><p>Roark makes this statement to his friend and building partner, Mike Donnigan, after turning down a lucrative opportunity to build a bank building. Roark turned down the offer because the board of directors of the bank wanted to substantially change his blueprints, turning his building into something other than he intended. However, Roark — Ayn Rand’s “ideal, heroic man” — is unwilling to compromise his standards for money, or anything else.</p><p>Financially, Roark really needed that commission. By this point in the story, he is getting almost no work. People won’t hire him because his buildings are too “out there” (innovative). His bills are in arrears, and his architectural firm is at risk of going out of business. Yet Roark still refuses to compromise on his values.</p><p>Mike offers to help Roark get a job in some corporate architecture firm, but Roark refuses. Instead, Roark asks Mike for a job in a stone quarry because Roark would rather break rocks than be forced to “think their way”. Another way to put it: Roark realizes that a cushy office job will do violence to his soul. “Company men” will try to force him to think about his work the way they do, and Roark realizes that it will be the same story “no matter where I go”.</p><p>So, in the words of Sinatra, Roark decides to do it <em>his </em>way.</p><p>“There are some rules I’m perfectly willing to obey,” Roark explained. “I’m willing to wear the kind of clothes everybody wears, to eat the same food and use the same subways. But there are some things which I can’t do their way.”</p><h3><strong>Entrepreneurs Can Relate</strong></h3><p>Though perhaps not intended as such, I see in Ayn Rand’s <em>Fountainhead </em>a scathing indictment of the conformity, politicking and mediocrity that exists in corporate environments. I also see a triumphant ode to the entrepreneur.</p><p>In many places the novel pits the competent against the conniving, and nowhere is this more evident than in the average corporate office. I’ve experienced this soul-numbing power struggle in every single corporate job I’ve ever had. As an entrepreneur, I can definitely relate to Roark’s feelings. In <em>The Fountainhead,</em> as in many corporate environments, those whose priority is the product are often subject to those whose priority is power and position. These toxic work environments often turn into places where creativity takes a backseat to conformity and productive achievement is trumped by political ploys.</p><p><a href="http://www.theatlantic.com/business/archive/2014/11/the-art-of-not-working-at-work/382121/">In the words of author David Bolchover</a>, the typical office environment is one where “image counts more than product, seduction more than production.” The average office, Bolchover laments, is characterized by the “dominance of image over reality, of obfuscation over clarity, politics over performance.”</p><p>That’s been my experience of corporate America — to a “T”.</p><p>So, I can understand why Roark said what he said to Mike. There have been many times during my entrepreneurial journey when I’ve wanted to do <em>anything</em> but work another office job. We entrepreneurs feel as if we have something great inside of us. Along with Rand, we want to live out a heroic adventure, a life spent manifesting our rationality and ability. Unfortunately, for many of us, the average work environment represents every attempt to annihilate that rationality and ability.</p><p>“Men are brothers,” said Kent Lansing, a supporter of Roark who shares his worldview. “And they have a great instinct for brotherhood — except in boards, unions, corporations and other chain gangs.”</p><p>One reason I became an entrepreneur is because I can’t stand inefficiency, irrationality or waste. But so much of what is done on the job amounts to wasting time and resources. You spend so much emotional, mental, even physical energy doing things the wrong way simply because you’re ordered to. You’re often required to do things inefficiently, even to do things that make no damned sense. Much of the decision making in these places is arbitrary and whimsical, and corporate shills go out of their way to preserve this madness.</p><p>By contrast, entrepreneurship is about that sensible, pointed focus that gets things done. It’s about resourcefulness and ingenuity, industry and efficiency. Entrepreneurship is a supremely rational affair, as Rand might have said.</p><h3><strong>The Suffering Creator</strong></h3><p>But for all the crumminess of the cubicle, entrepreneurship is no picnic, either. Being an entrepreneur takes incredible grit and perseverance. As builders of the amazing, creators of our own jobs, we entrepreneurs are thwarted at seemingly every turn. And so was Howard Roark.</p><p>“Men like you and me,” said Kent Lansing to Roark, “would not survive … if they did not acquire the patience of an … executioner. And the hide of a battleship.” Tolstoy once said, “Time and patience are the two greatest warriors.” Both Rand and Tolstoy could have been talking about entrepreneurship.</p><p>Any entrepreneur will tell you that doing what we do takes an indomitable spirit. Entrepreneurship is not for the faint of heart. If you’re going to choose the path of the entrepreneur, then you had better be prepared for some exquisite suffering.</p><p>In the novel, the suffering of the creator is perhaps best exemplified by the character of Steven Mallory, a gifted sculptor who, like Roark, is unable to sculpt in accordance with his values and convictions. As a result, over time he becomes an emotionally unstable, violent drunk on the verge of being unemployable. That is, until Roark befriends him.</p><p>Roark is able to look past Mallory’s faults and see the real genius inside. Now, I’m not saying that all entrepreneurs are geniuses — I don’t use the word ‘genius’ lightly. But I <em>would</em> say that we all long for someone to see the <em>real us</em> — to see the vision of greatness that is burning us up inside.</p><p>For some of us, we just don’t get that chance to show the real us working in the corporate cube. That causes us extraordinary grief, as it did with Steven Mallory. That’s why Roark wonders whether “there is more suffering in Steven Mallory when he <em>can’t</em> do the work he wants to do, than in a whole field of victims mowed down by a tank?”</p><p>When I first read that line, the words jumped off the page and smacked me across the face.</p><p>“That’s it! That’s exactly how I feel!” I thought to myself. “What I’m creating is like a fire shut up in my bones.” Not being allowed to get this thing inside of me out to the world causes an ache that no corporate job can alleviate.</p><h3><strong>The Entrepreneur’s Basic Need</strong></h3><p>There’s a reason for that ache. “The basic need of the creator is independence,” Roark said. “The creator served nothing and no one. He lived for himself.” Now, no creator creates in a pure vacuum — and for the entrepreneur, without a customer or audience, you can’t get very far. But the difference between the entrepreneur and the ordinary worker is that the former desperately yearns to be the <em>majority shareholder of his productive achievement.</em></p><p>Let me put it this way. One of the things I’ve always hated about working at a regular job is the fact that I’m making <em>someone else</em> rich. Think about it. You slave away, 8, 9, 10 hours or more, every day, at a job which probably doesn’t fulfill you — and you do all that to make <em>someone else</em> rich?! And in today’s world, where 50% of all jobs are contract, temp or permalance, company execs are giving less and less and expecting more and more.</p><p>I want to be clear here: it’s not only about the money or the benefits. It’s fundamentally about <em>self-esteem.</em> I’ll tell you the truth: I would rather work 80 hours a week making $40,000 a year doing something that’s <em>mine</em> than work 40 hours a week making $80,000 a year doing something that’s <em>someone else’s.</em></p><p>And why?</p><p><em>Because nothing brings a creator as much pleasure or makes him feel as good about himself as his own masterpiece.</em></p><p>“Men have been taught every precept that destroys the creator. Men have been taught dependence as a virtue,” Roark said. “The choice is independence or dependence … Man’s first duty is to himself. His moral law is never to place his prime goal within the persons of others.”</p><h3><strong>Conclusion</strong></h3><p>Now please don’t mistake me. I’m enough of realist to know that someone has to work those 9 to 5 gigs. In fact, most of us have to do it, myself included. Even Roark had to take the quarry job when business dried up. I’m not putting anyone down for where she works, and there can be nobility in all work.</p><p>All I’m saying is, if you’re an entrepreneur, chances are that working for others will not be enough to satisfy you — and, in fact, may do more to harm you than help you, psychologically.</p><p>The desire for independence is one of the deepest forces within the entrepreneur, and it’s the main theme of <em>The Fountainhead.</em> This desire is why we entrepreneurs find it so difficult to work for others. There is something deep within us, in a place almost too sacred for words, that yearns for freedom and independence and refuses to settle for anything less.</p><p><em>_____________</em></p><p><em>I’m a social entrepreneur who has been building telephony and SMS applications since 2008. An artist at heart, I won a full scholarship to The University of Texas at Austin for classical piano in 1993. In 2007, I began teaching myself Javascript, PHP and Ruby in the evenings while working as a marketing professional by day. I started my first business in 2008 (Gnosis Media Group), a communications consultancy whose first successful product was a </em><a href="http://gmg.cm/text-to-donate"><em>text-to-donate application for nonprofits</em></a><em>.</em></p><p><em>Building on that technology, I later built </em><a href="https://textengine.info/"><em>Text Engine</em></a><em>, which was awarded the distinction of “Tech Company to Watch 2015” by the Connecticut Technology Council. Text Engine was later accepted into the award-winning ReSET Impact Accelerator in January 2016, and soon after we received significant funding from Backstage Capital, a Los Angeles venture capital fund. When I’m not coding, I enjoy power naps, reading philosophy texts, playing chess, and bowling.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2d6c033c9142" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>