<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2369801675022358873</id><updated>2024-10-06T20:32:32.540-07:00</updated><title type='text'>API.AI - Official Blog</title><subtitle type='html'>The official source for information about API.AI</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>ewood</name><uri>http://www.blogger.com/profile/12341551220176883769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-4650119535668353407</id><published>2017-06-14T17:04:00.001-07:00</published><updated>2017-06-27T13:38:16.619-07:00</updated><title type='text'>2 new features: New Analytics tool and more Google Assistant surfaces</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
Today, we’re launching 2 major features in API.AI to help you improve your agents and reach new audiences. First, you can now track your agent’s performance with our new Analytics tool. Second, you can reach Google Assistant users across eligible Android phones and iPhones.&lt;br /&gt;
&lt;h3 id=&quot;track-performance-with-our-new-analytics-tool&quot;&gt;
1. Track performance with our new Analytics tool&lt;/h3&gt;
We’ve heard your feedback to have analytics on how your agents are performing. Our &lt;a href=&quot;https://docs.api.ai/docs/analytics&quot; target=&quot;_blank&quot;&gt;new Analytics tool&lt;/a&gt; lets you view data around session traffic and intent usage. We hope the new tool can help you drive improvements to your agents by identifying usage patterns, latency issues, and high- and low-performing intents. We’re working on adding more stats and functionalities so stay tuned for updates.&lt;br /&gt;
&lt;div class=&quot;row&quot;&gt;
&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzYJZiKdgsggmJ4dc7PdwB07fqIvcN_gBUhO342AGeGjuv0DeathmnSzAWQxCKxpeKz5G3uf7OI4-GxqlEYeg5OG_1uyKcO103oDAoGHzg81WlHCMsARw0Xg5m1oTd2QtWdYZpn3oPvpQK/s1600/2017-05-17-Analytics-screenshot-5754710248bba9df2e8872edcc5f2557.png&quot; width=&quot;100%&quot; /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h3 id=&quot;reach-more-google-assistant-users-across-eligible-android-phones-and-iphones&quot;&gt;
2. Reach more Google Assistant users across eligible Android phones and iPhones&lt;/h3&gt;
At Google I/O today, it was announced that developers can now reach Google Assistant users on eligible Android phones and iPhones. Starting today, you can use API.AI’s Actions on Google integration to build and launch Assistant apps on these phones.&lt;br /&gt;
&lt;div align=&quot;middle&quot; class=&quot;row&quot;&gt;
&lt;img align=&quot;middle&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH44ENoYYxkRrO_1BDc7NiNH5cHeJGeFLqmYYCtEJ7aGq09UNsKDua3_ltEkJmZWT5st-0tD89piyTNUwBQOVNwiiMMrSAV5KQdJ3s-luJv0m22tgERo0PV-PHkwVCtE3xElzv0MyeLjng/s1600/2017-05-17-rich-card-example-9205f6fa80967b2d413d6ad39b0184b5.png&quot; width=&quot;50%&quot; /&gt;&lt;br /&gt;
&lt;div style=&quot;font-style: italic;&quot;&gt;
Example of a CNBC rich card on the Google Assistant&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Enter your Assistant app in the &lt;a href=&quot;http://g.co/actionschallenge&quot; target=&quot;_blank&quot;&gt;Actions on Google Developer Challenge&lt;/a&gt; for a chance to win great prizes, including a trip to Google I/O 2018!&lt;br /&gt;
Check out the &lt;a href=&quot;https://events.google.com/io/schedule/?section=may-18&amp;amp;sid=dd74be00-1cd9-4065-b254-71c9d40f2f73&amp;amp;gclid=CPbn25ip8tMCFVGTfgodQrIDNQ&quot; target=&quot;_blank&quot;&gt;livestream of our Google I/O session tomorrow&lt;/a&gt; as we demo these new features. We look forward to seeing how you’ll utilize them. As always, let us know if you have any questions or comments.&lt;br /&gt;
Build on,&lt;br /&gt;
The API.AI team&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/4650119535668353407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2017/06/2-new-features-new-analytics-tool-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4650119535668353407'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4650119535668353407'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2017/06/2-new-features-new-analytics-tool-and.html' title='2 new features: New Analytics tool and more Google Assistant surfaces'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzYJZiKdgsggmJ4dc7PdwB07fqIvcN_gBUhO342AGeGjuv0DeathmnSzAWQxCKxpeKz5G3uf7OI4-GxqlEYeg5OG_1uyKcO103oDAoGHzg81WlHCMsARw0Xg5m1oTd2QtWdYZpn3oPvpQK/s72-c/2017-05-17-Analytics-screenshot-5754710248bba9df2e8872edcc5f2557.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-4288472103428678849</id><published>2017-03-29T14:15:00.000-07:00</published><updated>2017-06-27T13:42:17.036-07:00</updated><title type='text'>Structure and Content</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;

&lt;p&gt;With API.AI, our goal is help you create high quality and engaging agents. Today we’re taking that goal to the next step, adding some new features that will make it easier to build great agents across all of our supported platforms.&lt;/p&gt;

&lt;h2 id=&quot;follow-up-intents&quot;&gt;Follow-up Intents&lt;/h2&gt;
&lt;p&gt;Natural human dialogs are filled with follow-ups and confirmations for example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent&lt;/strong&gt;: Your cab can meet you at the corner of 5th and Broad street in 12 mins.
&lt;br&gt;
&lt;strong&gt;User&lt;/strong&gt;: Ahh, can you repeat that please?
&lt;br&gt;
-or -
&lt;br&gt;
&lt;strong&gt;Agent&lt;/strong&gt;: Do you want fries with that?
&lt;br&gt;
&lt;strong&gt;User&lt;/strong&gt;: Sure, sounds good, thanks&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.api.ai/docs/concept-intents#follow-up-intents&quot; target=&quot;_blank&quot;&gt;Follow-up intents&lt;/a&gt; make these types of natural conversation flows easy to build and customize.
With this new feature of API.AI you can define dialog situations that may follow any given “parent” intent you are currently working on.&lt;/p&gt;

&lt;p&gt;While you can also do this (and much more) by manually defining &lt;a href=&quot;https://docs.api.ai/docs/concept-contexts&quot; target=&quot;_blank&quot;&gt;Contexts&lt;/a&gt;, follow-up intents make the process of building sample dialogs easier by being more  visual. We’ve thought of some of the most popular follow-up scenarios and taken care of building contexts for you automatically.&lt;/p&gt;

&lt;p&gt;To start building Follow-up intents, click “Add follow-up intent” link and select one of the common follow-up options (such as confirmation, request to learn more, selection, etc.) or choose the option “Custom intent” to build a new unique follow-up. Common follow-up options contain pre-populated training examples that could be changed or augmented with phrases specific to your agent.&lt;/p&gt;

&lt;div class=&quot;row&quot;&gt;
&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTtw5Ykfnezzy9P6WTOQEusk9rA7mL22st_jWMDWMLUpC1Iaoxbi-iCruP8hLuwDP6N2CLq7f-zSwT6wEkKgHKPBkV20bWS0OqRa80f09RcdvNntU26EC52AWV0orlwUlJjxRTDP9GIdUX/s1600/2017-03-29-apiai-march-rollup-launch-followup-intents-5c8b3a9afd17d058deef8572c1904595.png&quot; width=&quot;100%&quot;&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br&gt;
Finally, in the API.AI console Follow-up intents are nested under parent intents which makes it easier to see your agent conversation structure.&lt;/p&gt;

&lt;h2 id=&quot;prebuilt-agents&quot;&gt;Prebuilt Agents&lt;/h2&gt;
&lt;p&gt;Building an advanced agent covering a comprehensive set of intents and entities can often be challenging even for the most skilled developer. &lt;a href=&quot;https://docs.api.ai/docs/prebuilt-agents&quot; target=&quot;_blank&quot;&gt;Prebuilt Agents&lt;/a&gt; can  help - they are free sample agents that are built by the API.AI team that utilize most of the API.AI platform’s capabilities. You can either use them as they are or modify them as needed to jump start building your own conversational agent.&lt;/p&gt;

&lt;p&gt;So, if you are working in travel space, for example, you can use Flights Prebuilt Agent with built-in intents like, “Find a flight from Dublin to Copenhagen on July 16, returning July 23, for 2 people”, and follow-ups like “Actually, returning July 25”. Other agents available include booking, support, weather, TV, music player, and more.&lt;/p&gt;

&lt;div class=&quot;row&quot;&gt;
&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRFeCEbDOuazLAaDd-c6P4tvyN8q1ZATiTLksGk6-wXAF7bXynJg56gytT2yIGof9OMpg3IFyr7_oiv9g68_IaVzaLw1zJfeFer1yPgamtzFsJ2i_3THk8fXupQBeKbOorKsbOp4-ZRE0t/s1600/2017-03-29-apiai-march-rollup-launch-prebuilt-agents-7fe585ff8ba7799c62c80641fa283ae8.png&quot; width=&quot;100%&quot;&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br&gt;
Feel free to import any of the Prebuilt Agents to your account and reuse parts of it by copying intents and entities to your agent or augmenting the imported agent itself.&lt;/p&gt;

&lt;div class=&quot;row&quot;&gt;
&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBaE6YObUn3cgJeI_R_Rs_r3orpFGhPydUD_Q7YDVJp77NYAb_OUVW3W57WhWRl8-SWyHdHlVv57lLu-3QNkKORMZiaYotGIojWwA-CmLN6tt_GUlPXCaUHqbO0yneEoh5Nzk05fVJnIN8/s1600/2017-03-29-apiai-march-rollup-launch-batch-operations-d39a3fb912f8dfcb241a21017037e870.png&quot; width=&quot;100%&quot;&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br&gt;
We will be rolling out new &lt;a href=&quot;https://docs.api.ai/docs/prebuilt-agents&quot; target=&quot;_blank&quot;&gt;Prebuilt Agents&lt;/a&gt; regularly and will be happy to hear what agents you’d be interested to see next.&lt;/p&gt;

&lt;p&gt;Happy coding,&lt;/p&gt;

&lt;p&gt;API.AI team&lt;/p&gt;



&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/4288472103428678849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2017/03/structure-and-content.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4288472103428678849'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4288472103428678849'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2017/03/structure-and-content.html' title='Structure and Content'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTtw5Ykfnezzy9P6WTOQEusk9rA7mL22st_jWMDWMLUpC1Iaoxbi-iCruP8hLuwDP6N2CLq7f-zSwT6wEkKgHKPBkV20bWS0OqRa80f09RcdvNntU26EC52AWV0orlwUlJjxRTDP9GIdUX/s72-c/2017-03-29-apiai-march-rollup-launch-followup-intents-5c8b3a9afd17d058deef8572c1904595.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-3852656231982302896</id><published>2016-12-08T14:18:00.000-08:00</published><updated>2017-06-27T13:44:20.409-07:00</updated><title type='text'>Build Conversation Actions for Google Assistant users</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
        
         &lt;h2&gt;Reach Google Assistant users on Google Home and soon, other Google Assistant surfaces, with our new Actions on Google integration&lt;/h2&gt;

&lt;div class=&quot;row&quot;&gt;
  &lt;div class=&quot;col-md-4&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-x9n9wYl-FsZb50WMWelnpgKXekAU9zQM2vQU_Y0xykYlLj9Iis0ucIaYlQwREJsN9aNgu80G3Qpwsux4MZR8tQ0ekfoJj5qBcs5rJ45SkmLX71FTN8NJz5fQVQFEffUjUTc8y5VwYEFE/s1600/2016-12-8-join-the-conversation-44ec7526d1fcf19e6b73ddee70016481.png&quot; width=&quot;100%&quot;&gt;
  &lt;/div&gt;
  &lt;div class=&quot;col-md-8&quot;&gt;Starting today, you can build rich, conversational experiences for Google Assistant users on Google Home and deploy them as Conversation Actions in just a few easy steps with API.AI. 
  &lt;p&gt;&lt;/p&gt; 
    &lt;/div&gt;
  &lt;/div&gt;

&lt;p&gt;API.AI makes it possible for your service to receive and respond to user queries in natural language. So whether you aim to answer questions or help users to be more productive, API.AI can help you build engaging experiences.&lt;/p&gt;

&lt;p&gt;To build a Conversation Action with API.AI, start by defining the user requests or intents that your service will handle. Then design the conversational flow. If you’re new to API.AI and want to develop Conversation Actions, we’ve prepared some &lt;a href=&quot;https://developers.google.com/actions/develop/apiai/tutorials/getting-started&quot; target=&quot;_blank&quot;&gt;handy docs and tutorials&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;row&quot;&gt;
&lt;div class=&quot;video-container&quot;&gt;&lt;iframe width=&quot;100%&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/9SUAuy9OJg4?list=PLOU2XLYxmsIKgPTizdYWPPYEpU96FCJrQ&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
  &lt;/div&gt;
  &lt;/div&gt;

&lt;p&gt;Once you’ve built your Conversational Action (or if you already have a service developed with API.AI), you can easily submit your integration for the Google Assistant in the Integrations tab.&lt;/p&gt;

&lt;div class=&quot;row&quot;&gt;
  &lt;div class=&quot;col-md-6&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0wz9rU5cvIhh812AdaB-Te6rzR7IKp0u5_TVaahIGrkA8bHjRjGMyjl5YmkrGkIeF6tjIp7k5oyMPHQAAqrJioYkAeQKgNqwSowcSyFq_s6HY1UdC71L-YkB2_mcMuJw1wqkU26iZsV6d/s1600/2016-12-8-Actions-on-Google-Integration-a5208d0b0ba96ab11d80bd282fab57c3.png&quot; width=&quot;100%&quot;&gt;
  &lt;/div&gt;
  &lt;div class=&quot;col-md-6&quot;&gt;After you launch, you can update your Conversation Action in real-time based on user interactions, and it will continue to get smarter based on API.AI’s machine learning capabilities. 
  &lt;/div&gt;
  &lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This is just the beginning – in the future Actions on Google will let you reach Google Assistant users beyond Google Home, including Pixel phones and Google Allo.&lt;/p&gt;

&lt;p&gt;With the addition of Actions on Google, API.AI can now support your conversational experience development efforts across 10+ platforms. And with our recently updated &lt;a href=&quot;https://api.ai/blog/2016/11/03/freedom-of-speech-for-bots/&quot; target=&quot;_blank&quot;&gt;free Standard tier&lt;/a&gt; and advanced natural language understanding technology, you can build and scale engaging experiences for everyone.&lt;/p&gt;

&lt;p&gt;Get a jump start on &lt;a href=&quot;https://console.api.ai/api-client/authorize_url_google/nopopup&quot; target=&quot;_blank&quot;&gt;building conversational experiences&lt;/a&gt; using API.AI for Actions on Google and reach Google Home users now.&lt;/p&gt;

&lt;p&gt;Happy coding,
API.AI team&lt;/p&gt;

        
   
       &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/3852656231982302896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2016/12/build-conversation-actions-for-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/3852656231982302896'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/3852656231982302896'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2016/12/build-conversation-actions-for-google.html' title='Build Conversation Actions for Google Assistant users'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-x9n9wYl-FsZb50WMWelnpgKXekAU9zQM2vQU_Y0xykYlLj9Iis0ucIaYlQwREJsN9aNgu80G3Qpwsux4MZR8tQ0ekfoJj5qBcs5rJ45SkmLX71FTN8NJz5fQVQFEffUjUTc8y5VwYEFE/s72-c/2016-12-8-join-the-conversation-44ec7526d1fcf19e6b73ddee70016481.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-4478950139149920173</id><published>2016-11-03T14:19:00.000-07:00</published><updated>2017-06-27T13:45:28.181-07:00</updated><title type='text'>Freedom of Speech for Bots</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
        
         &lt;p&gt;Since API.AI launched, our goal has been to make building advanced conversational interfaces easy and enjoyable. It’s great to see the growing number of agents powered by API.AI, but we know there’s more work to do in order to be more accessible and enhance the platform’s feature set. Today, we’re making progress towards both of these goals:&lt;/p&gt;

&lt;p&gt;First, we’re removing limitations on the number of queries for our Free plan for both public and private agents (bandwidth limits may apply). This means that you don’t have to worry about how much it’s going to cost when your chatbot takes off - you can just savor the moment! And for those of you who need some more premium features - higher bandwidth, SLA, pre-built domains to name a few - we can develop a custom Preferred plan that’s just right for you.&lt;/p&gt;
&lt;div class=&quot;row&quot;&gt;
  &lt;div class=&quot;col-md-4&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1slJRIakiy2AczMWCGZlOAFmQJylpVCCejQOhdlHcVIIFmpCm5nplrUoneZbeaQARwjPORcu-Y4OIxg0Qfuv2PnLUk_5So2YLv-4XDhnRls0eT7biAQqkz-tJV_vyPGSG0NaVkn_hHeyM/s1600/2016-11-03-messaging-rare-food-finds-069e540f6f08b5930b5172754452cef4.png&quot; width=&quot;100%&quot;&gt;
  &lt;/div&gt;
  &lt;div class=&quot;col-md-8&quot;&gt;Second, we’ve added features that’ll help liven up your chatbot responses. Starting today, API.AI supports &lt;a href=&quot;https://docs.api.ai/docs/rich-messages&quot; target=&quot;_blank&quot;&gt;Rich Messaging&lt;/a&gt; - cards, images, quick replies - on popular platforms, such as Facebook Messenger, Slack, Kik, and Telegram. This new feature will enhance the quality of your bot’s dialogue, keeping your audience engaged and entertained.
&lt;p&gt;&lt;/p&gt;&lt;p&gt;
    You can also use &lt;a href=&quot;https://docs.api.ai/docs/rich-messages#custom-payload&quot; target=&quot;_blank&quot;&gt;Custom Payload&lt;/a&gt; in your bot response to add payments, confirmations, receipts, videos and other types of rich content supported by the messaging platform.  

  &lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

&lt;p&gt;We can’t wait to see the new exciting conversational agents you build with the help of API.AI. So, what are you waiting for? &lt;a href=&quot;https://console.api.ai/api-client/#/signup&quot; target=&quot;_blank&quot;&gt;Start building your agent now&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy Bot Building,
API.AI team&lt;/p&gt;

        
   
       &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/4478950139149920173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2016/11/freedom-of-speech-for-bots.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4478950139149920173'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4478950139149920173'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2016/11/freedom-of-speech-for-bots.html' title='Freedom of Speech for Bots'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1slJRIakiy2AczMWCGZlOAFmQJylpVCCejQOhdlHcVIIFmpCm5nplrUoneZbeaQARwjPORcu-Y4OIxg0Qfuv2PnLUk_5So2YLv-4XDhnRls0eT7biAQqkz-tJV_vyPGSG0NaVkn_hHeyM/s72-c/2016-11-03-messaging-rare-food-finds-069e540f6f08b5930b5172754452cef4.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-1891177065057864284</id><published>2016-09-19T14:21:00.000-07:00</published><updated>2017-06-23T14:21:45.472-07:00</updated><title type='text'>API.AI is joining Google!</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
        
         &lt;p&gt;We are excited to announce that API.AI is joining Google!&lt;/p&gt;

&lt;p&gt;It has been a long and fun journey. Since API.AI’s launch in 2014, we’ve been constantly impressed by the fast and energetic adoption of the technology from people building conversational interfaces for chatbots, connected cars, smart home devices, mobile applications, wearables, services, robots and more. Our vision has been to make technology understand and speak human language and help developers build truly intelligent conversational interfaces for their products and services. The best part of our day is hearing from our diverse community and how they are using API.AI to create truly innovative, practical and inspirational products that will reshape how we live and work in the future.&lt;/p&gt;

&lt;p&gt;What does this mean to you? 
We’re excited for you to continue using our developer platform to build conversational user interfaces. Joining Google will allow us to accelerate improvements to the platform and service our growing developer community in ways we’ve always dreamed. With Google’s knowledge, infrastructure and support, we can make sure you get access to the best available technologies and developments in AI and machine learning.&lt;/p&gt;

&lt;p&gt;As we start this next chapter, we want to express how truly grateful we are to our customers, developers, partners, employees, advisors and investors. We can’t wait to continue working with you and could not have gotten to this point without your support.We cannot thank you enough.&lt;/p&gt;

&lt;p&gt;We hope you are as excited as we are with what’s to come at Google and value your continued support.&lt;/p&gt;

&lt;p&gt;Sincerely,
Ilya Gelfenbeyn, CEO&lt;/p&gt;

        
   
       &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/1891177065057864284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2016/09/apiai-is-joining-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/1891177065057864284'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/1891177065057864284'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2016/09/apiai-is-joining-google.html' title='API.AI is joining Google!'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-8995892712811703643</id><published>2016-06-24T14:21:00.000-07:00</published><updated>2017-06-27T13:46:39.643-07:00</updated><title type='text'>API.AI’s Cisco Spark and Tropo Solution at Cisco Live!</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;It’s always exciting to do a little show-and-tell with products you’re proud of. That’s why we can’t wait to be at &lt;a href=&quot;http://www.ciscolive.com/us/&quot;&gt;Cisco Live&lt;/a&gt; in Las Vegas from July 10-14, where we’ll be demonstrating API.AI’s latest  integrations with Cisco Spark and Cisco-owned Tropo. We’ll be exhibiting at the event as well – if you’re attending, come by and see us at &lt;strong&gt;booth C7&lt;/strong&gt;.&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh4S9llhjCU-8EVJS-ZF79Zg7wzBq86KMeJd7-aN7I3CWR2lGWjHsAYTLn0Q4du6heJ0_3hKtmlSEwlsjf2rjpJGSz54aHECOdq4NmcK6P8T7T7IAxNZGPdPMdwAa84fsbI1nLtMe26Mzp/s1600/2016-06-24-cisco-live-d6bcf509894156530db7aea6640154cf.png&quot; width=&quot;50%&quot;&gt;&lt;/center&gt;
&lt;!--break--&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.tropo.com/how-it-works/&quot;&gt;Tropo&lt;/a&gt; and &lt;a href=&quot;https://communities.cisco.com/community/technology/collaboration/cisco_spark&quot;&gt;Spark&lt;/a&gt; are each part of Cisco’s suite of communications solutions. Tropo is a cloud API for communicating via voice and SMS messaging, intended for large-scale enterprises and service providers. Using Tropo, developers and companies can automate real-time communication over voice and messaging channels – especially valuable as a platform for fostering collaboration in the cloud.&lt;/p&gt;

&lt;p&gt;Spark is an enterprise messenger that features options for voice and video communication. Cisco has opened the APIs for Spark so that enterprise developers are welcome to customize the technology as needed.&lt;/p&gt;

&lt;p&gt;Our Tropo and Spark integrations team up those technologies with API.AI’s own natural language understanding capabilities, adding the rich possibilities of conversational user experiences to these communications tools. Developers taking advantage of these new integrations can create bots and interfaces that comprehend natural speech and respond in real-time. And, our Tropo and Spark integrations are designed to accommodate business needs and common corporate policies around security, privacy, safe control over data, interoperability, and conforming with IT standards.&lt;/p&gt;

&lt;p&gt;We’re proud to say that these integrations have already proven themselves to be valuable solutions for building powerful cloud-based collaboration tools, as our partner &lt;a href=&quot;https://redbooth.com/&quot;&gt;Redbooth&lt;/a&gt; can attest. Redbooth offers a cloud-based collaboration product that assists business teams in easily communicating ideas, amplifying productivity and performance. It makes use of Tropo and Spark in order to implement several aspects of its product’s communications functionality (for example, adding telephony to let users easily turn online conversations into phone calls with the click of a button for when instant voice communication is essential). Now using API.AI’s integrations, Redbooth has added a task management feature and has produced a bot that engages with users through natural language conversations – and can retrieve any information stored within Redbooth’s software. Users can simply speak with Redbooth’s bot just as they would with another person and receive a highly satisfying user experience.&lt;/p&gt;

&lt;p&gt;Anyone at Cisco Live interested in developing conversational bots and interfaces for their communications solutions should come by and say, ‘Hi.’ We’d love to see you there.&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/8995892712811703643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2016/06/apiais-cisco-spark-and-tropo-solution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/8995892712811703643'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/8995892712811703643'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2016/06/apiais-cisco-spark-and-tropo-solution.html' title='API.AI’s Cisco Spark and Tropo Solution at Cisco Live!'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh4S9llhjCU-8EVJS-ZF79Zg7wzBq86KMeJd7-aN7I3CWR2lGWjHsAYTLn0Q4du6heJ0_3hKtmlSEwlsjf2rjpJGSz54aHECOdq4NmcK6P8T7T7IAxNZGPdPMdwAa84fsbI1nLtMe26Mzp/s72-c/2016-06-24-cisco-live-d6bcf509894156530db7aea6640154cf.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-5560112818819526308</id><published>2016-04-04T13:50:00.000-07:00</published><updated>2017-06-27T13:53:46.410-07:00</updated><title type='text'>Manipulating Entity Entries via API</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Let’s imagine an agent for a retail store app. There is a &lt;a href=&quot;https://docs.api.ai/docs/concept-entities#section-developer-entities&quot; target=&quot;_blank&quot;&gt;developer entity&lt;/a&gt; that matches items available in the store. Let’s call it &lt;code&gt;@item&lt;/code&gt;. The initial version of the entity contains a list of items available in the store at the moment of the agent’s creation. But since the stock of items is updated regularly, it would be very inefficient to update the entity manually.&lt;/p&gt;

&lt;p&gt;To keep the entity in sync with the store database, API.AI now offers three additional options in the &lt;a href=&quot;https://docs.api.ai/docs/entities&quot; target=&quot;_blank&quot;&gt;/entities endpoint&lt;/a&gt; that allow you to &lt;strong&gt;add&lt;/strong&gt;, &lt;strong&gt;update&lt;/strong&gt;, and &lt;strong&gt;delete&lt;/strong&gt; entity entries via our API.
&lt;!--break--&gt;&lt;/p&gt;

&lt;p&gt;Let’s see how it works. Here is the original version of a sample entity we started working with:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX7fgnm1rQ0zgrIIOmwwZqX4h-cy0jx8C9MsVSTZXqMsOGnqTthYYk0QgeWDI5yC3wivr4VFEBSspUYMOeH8JZ-eBcbOowl2ilj8RUNHuKTE8uIXlGWKK91ZV_ZkgFO1xyUHyDpH4tzu7e/s1600/2016-04-04-manipilating-entries-original-f3ff5366be60611cc0dea21e0bb3947a.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Remember that for any of the following operations you’ll need to specify an entity ID (referenced as &lt;code&gt;{eid}&lt;/code&gt;) or its name.&lt;/p&gt;

&lt;h2 id=&quot;adding-entity-entries&quot;&gt;Adding Entity Entries&lt;/h2&gt;

&lt;p&gt;So, the store has two new items for sale, e.g., kefir and ice-cream, and the store owner needs to &lt;strong&gt;add new entries&lt;/strong&gt; to the &lt;code&gt;@item&lt;/code&gt; entity.&lt;/p&gt;

&lt;p&gt;This can be done with the help of &lt;strong&gt;&lt;a href=&quot;https://docs.api.ai/docs/entities#post-entitieseidentries&quot; target=&quot;_blank&quot;&gt;POST /entities/{eid}/entries&lt;/a&gt;&lt;/strong&gt; request.&lt;/p&gt;

&lt;p&gt;The POST body should be an &lt;a href=&quot;https://docs.api.ai/docs/entities#array-of-entity-entry-objects&quot; target=&quot;_blank&quot;&gt;array of entity entry objects in JSON format&lt;/a&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;POST https://api.api.ai/v1/entities/item/entries?v=20150910

Headers:
Authorization: Bearer YOUR_DEVELOPER_ACCESS_TOKEN
Content-Type: application/json; charset=utf-8

POST body:
[{
 &quot;value&quot;: &quot;kefir&quot;,
 &quot;synonyms&quot;: [&quot;kefir&quot;]
}, {
 &quot;value&quot;: &quot;ice-cream&quot;,
 &quot;synonyms&quot;: [&quot;ice-cream&quot;, &quot;ice cream&quot;]
}]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;As a cURL request, it will look like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;curl -i -X POST -H &quot;Content-Type:application/json&quot; -H &quot;Authorization:Bearer YOUR_DEVELOPER_ACCESS_TOKEN&quot; \
-d &#39;[{&quot;value&quot;: &quot;kefir&quot;, &quot;synonyms&quot;: [&quot;kefir&quot;]}, {&quot;value&quot;: &quot;ice-cream&quot;, &quot;synonyms&quot;: [&quot;ice-cream&quot;, &quot;ice cream&quot;]}]&#39; &#39;https://api.api.ai/v1/entities/item/entries&#39;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This is how the entity will look in the API.AI developer console after sending this request:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoutLYotesQNlUMJdtO8c1wm_gKo8kxza0IwZPehkR4r0UxJmHkolIhk_J22GWjLQRjcHTwi8GiPOh7dhEjv5iHnFvpSrPHnRVsvCCDA4WbBdWbCC5RWAhjfXN0o7h3kepTf2myG65rKui/s1600/2016-04-04-manipilating-entries-added-5254d491fd00a1962d63ec9da88ec4d7.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;h2 id=&quot;updating-entity-entries&quot;&gt;Updating Entity Entries&lt;/h2&gt;

&lt;p&gt;If you need to &lt;strong&gt;add or delete synonyms&lt;/strong&gt; in already existing entries, you can use &lt;strong&gt;&lt;a href=&quot;https://docs.api.ai/docs/entities#put-entitieseidentries&quot; target=&quot;_blank&quot;&gt;PUT /entities/{eid}/entries&lt;/a&gt;&lt;/strong&gt; request.&lt;/p&gt;

&lt;p&gt;The PUT body should be an &lt;a href=&quot;https://docs.api.ai/docs/entities#array-of-entity-entry-objects&quot; target=&quot;_blank&quot;&gt;array of entity entry objects in JSON format&lt;/a&gt;. The array of synonyms should contain the updated array of synonyms.&lt;/p&gt;

&lt;p&gt;For example, you may want to add some spelling variants to the “yogurt” and “kefir” entries.&lt;/p&gt;

&lt;p&gt;The cURL request for this will look like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;curl -i -X PUT -H &quot;Accept:application/json&quot; H &quot;Content-Type:application/json&quot; -H &quot;Authorization:Bearer YOUR_DEVELOPER_ACCESS_TOKEN&quot; \
-d &#39;[{&quot;value&quot;:&quot;yogurt&quot;, &quot;synonyms&quot;: [&quot;yoghurt&quot;, &quot;yoghourt&quot;]}, {&quot;value&quot;:&quot;kefir&quot;, &quot;synonyms&quot;: [&quot;kefir&quot;, &quot;keefir&quot;, &quot;kephir&quot;]}]&#39; &#39;https://api.api.ai/v1/entities/item/entries&#39;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The result of this manipulation can be seen in the API.AI developer console:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4b09VCdFWECjsQppuju86XXZSZiGoYrzeSvrr7Fo9Mh6LNe6uFA69QCHkl2UTCpqIzKs4VwK2hCAgzO_Nk-3iSDxs8uG_FEx6t3THrgp6j4M_RuSKVahOXXkurw7PuQ6a_DR_uzWZbOH0/s1600/2016-04-04-manipilating-entries-updated-e40cc01f995a756bfe45109a156fc0a8.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;h2 id=&quot;deleting-entity-entries&quot;&gt;Deleting Entity Entries&lt;/h2&gt;

&lt;p&gt;Now, let’s imagine some items were sold out and you need to &lt;strong&gt;delete the entries&lt;/strong&gt; from the &lt;code&gt;@item&lt;/code&gt; entity.&lt;/p&gt;

&lt;p&gt;You can do it with the help of &lt;strong&gt;&lt;a href=&quot;https://docs.api.ai/docs/entities#delete-entitieseidentries&quot; target=&quot;_blank&quot;&gt;DELETE /entities/{eid}/entries&lt;/a&gt;&lt;/strong&gt; request.&lt;/p&gt;

&lt;p&gt;The DELETE body should contain an array of strings corresponding to the reference values of entity entries.&lt;/p&gt;

&lt;p&gt;For example, for deleting “milk” and “kefir”, the cURL request will be this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;curl -i -X DELETE -H &quot;Accept:application/json&quot; -H &quot;Content-Type:application/json&quot; -H &quot;Authorization:Bearer YOUR_DEVELOPER_ACCESS_TOKEN&quot; \
-d &#39;[&quot;milk&quot;, &quot;kefir&quot;]&#39; &#39;https://api.api.ai/v1/entities/item/entries&#39;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Here’s the result of this request seen in the API.AI developer console:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja-C4uykpAsXEJWmPZ0egxcg5nIB0Pe9reHMeX9ZUkll3xRXgiIFd9LQ3Mn_COpGjsRJ9XORkAaBGglqzY1z_SGLa5GbwdOoGrHmGJOD3E6iA4jrpAQtaBTrrV0bvC1hhlNqiTsI5xumVK/s1600/2016-04-04-manipilating-entries-deleted-9d34f08ded3ea26072805779b0d67edc.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.api.ai/docs/concept-entities&quot; target=&quot;_blank&quot;&gt;Entities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.api.ai/docs/entities&quot; target=&quot;_blank&quot;&gt;/entities endpoint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/5560112818819526308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2016/04/manipulating-entity-entries-via-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/5560112818819526308'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/5560112818819526308'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2016/04/manipulating-entity-entries-via-api.html' title='Manipulating Entity Entries via API'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX7fgnm1rQ0zgrIIOmwwZqX4h-cy0jx8C9MsVSTZXqMsOGnqTthYYk0QgeWDI5yC3wivr4VFEBSspUYMOeH8JZ-eBcbOowl2ilj8RUNHuKTE8uIXlGWKK91ZV_ZkgFO1xyUHyDpH4tzu7e/s72-c/2016-04-04-manipilating-entries-original-f3ff5366be60611cc0dea21e0bb3947a.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-609690674289700431</id><published>2016-03-17T14:02:00.000-07:00</published><updated>2017-06-27T14:07:49.695-07:00</updated><title type='text'>Conversational Slack Bots 101</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Following up on the &lt;a href=&quot;http://venturebeat.com/2016/03/18/bots-are-big-this-ai-startup-can-turn-slack-into-smarterchild-on-steroids/&quot; target=&quot;_blank&quot;&gt;VentureBeat article&lt;/a&gt;, here is a short tutorial on how to create a Slack bot at API.AI.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://slackhq.com/slack-is-turning-two-477e91f7b277#.4a6yyl98i&quot; target=&quot;_blank&quot;&gt;Millions of Slack users&lt;/a&gt; chat with each other and bots every day. &lt;a href=&quot;https://slack.com/apps&quot; target=&quot;_blank&quot;&gt;Bots are the best&lt;/a&gt;, because you can integrate them with lots of useful services and apps. They provide you with information, deliver notifications, and offer a myriad of other handy features. You can simply talk to the bot naturally  and it understands the context to respond intelligently. And now with the &lt;a href=&quot;https://api.ai/slack/&quot; target=&quot;_blank&quot;&gt;API.AI-Slack integration&lt;/a&gt;, you can train your bots, so they can have real conversations with users to perform their duties better.
&lt;!--break--&gt;&lt;/p&gt;

&lt;h2 id=&quot;design-conversations&quot;&gt;Design conversations&lt;/h2&gt;

&lt;p&gt;Start with &lt;a href=&quot;https://console.api.ai/api-client/?slack#/newAgent&quot; target=&quot;_blank&quot;&gt;creating an agent at API.AI&lt;/a&gt;. The agent will be the conversational part of your bot’s brain.&lt;/p&gt;

&lt;p&gt;When you come up with an idea of what conversations your bot should be able to carry with your users, start training the API.AI agent. It’s &lt;a href=&quot;https://docs.api.ai/docs/concept-intents&quot; target=&quot;_blank&quot;&gt;as simple as providing just a few examples&lt;/a&gt; of how people may phrase their requests and define what type of data you want to extract from such requests.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikBENThyOt0eXYb_kORz683YfVXysgGRHPvTSuWtf6Fj1vpKM4x0275d-ZIituCQGc0zUEy86miP3WjqE8WWajtsW0bQ_lEcWfhl1pMQvWtae9DCsq3mVYyaAQ9KOSJW50uZAZ7plI218J/s1600/2016-03-17-Slack-Bots-101-annotated_example-ce03b2aa417a3a9d27cb293bf1365460.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;h2 id=&quot;connect-to-a-web-service&quot;&gt;Connect to a web service&lt;/h2&gt;

&lt;p&gt;After your bot learns how to understand people, it needs to start responding. You can &lt;a href=&quot;https://docs.api.ai/docs/webhook&quot; target=&quot;_blank&quot;&gt;connect your bot to a web service&lt;/a&gt; via a webhook. This will allow you to pass information from a matched request into a web service and get a result from it. This way you can implement connections to data services, business logic, etc.&lt;/p&gt;

&lt;h2 id=&quot;test&quot;&gt;Test&lt;/h2&gt;

&lt;p&gt;In the API.AI developer account, you can find the test console, where you can try how well your agent understands you already. If your request is recognized, you’ll see which intent was used to process it and what information was extracted.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0gcnXJXaHYFD6L2OVxUYvb1y18VnebM1bqaQ1umYwPmmdfFUHF0_LewTkM65FiecX6K2fzSNKbaL7jJlzFHLqe7Dxc83wvrsQLTDNCkM8KYroI8BycfdNuIoL7aiJyl2w88wCtSOtbcTE/s1600/2016-03-17-Slack-Bots-101-test-520ca707c88205032239403e6c7f19ef.gif&quot; width=&quot;80%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Train it more right away by adding more examples in existing scenarios or create new ones.&lt;/p&gt;

&lt;p&gt;Test some more. Do you love it? Move to the next step.&lt;/p&gt;

&lt;h2 id=&quot;create-a-slack-bot&quot;&gt;Create a Slack bot&lt;/h2&gt;

&lt;p&gt;To enable Slack Integration, go to your agent’s settings, select ‘Integrations’ from the horizontal menu, and turn Slack integration on. Alternatively, you can select ‘Slack integration’ from the left side menu.&lt;/p&gt;

&lt;p&gt;To define the way people can interact with your bot, tick the relevant checkboxes in the ‘Message Types’ section.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Direct message.&lt;/strong&gt; The bot will receive a direct message from a user.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Direct mention.&lt;/strong&gt; The bot will answer when mentioned at the beginning of a message.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mention.&lt;/strong&gt; The bot will answer when mentioned in any part of a message.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Ambient.&lt;/strong&gt; The bot will monitor any message in a channel.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don’t forget to save the settings.&lt;/p&gt;

&lt;p&gt;To connect the bot to your Slack account, click ‘Test in Slack’ and then sign in with your team account. Let your team know about your bot. The more conversations it gets, the more data you’ll have to train it. And the smarter your bot will become as a result.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4ezeHLOWwGtyItDI_ke-1adB_kGxnnDDfA7hAjYyYqk2igQOaneujCbOz1a3Cu-8qjaLQ806z86VKl-ZBetSL3NFrcWJdHJfCPoJ0hM95tvF49oP1n1VSKh0-9TcXIIHrkrCWaSgV9cSm/s1600/2016-03-17-Slack-Bots-101-settings-440554e35f4bef285134c3b2249e4602.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;When you’re ready to publish your bot to the community, &lt;a href=&quot;https://api.slack.com/slack-apps&quot; target=&quot;_blank&quot;&gt;go to the Slack Apps webpage&lt;/a&gt; where you can find all the necessary documentation. Click on ‘My apps’ from the top menu, and then on ‘Create a new application’.&lt;/p&gt;

&lt;p&gt;You’ll be asked to fill in the app name, descriptions of the app and a Redirect URI. Use the Redirect URI from your API.AI agent’s Slack Integration settings.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh66DtVXa1f36lI9DGwHCX0uM0GWc2l4zisxUXwLpUemADfNeGorbhmrb8KJwG_M6kPNPfm7uec_znKEBBQrjwW_D4_1v2wfNWQ9K43YpGXk2kvlWpy_fegmO65s_0KfkXS5PaVWaBscU14/s1600/2016-03-17-Slack-Bots-101-slack-app-settings-68a705501ada75200b4723db421d3918.gif&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;After clicking on the ‘Create application’ button, you’ll see your Client ID and Client Secret. Go to your API.AI agent’s Slack integration settings and fill in the Client ID and Client Secret fields with the values from your Slack app’s settings. Then click ‘Go online’.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZWXJ08UqthcQpVFuLuO18V4YtuUYQnIKA2HSHywEVjKfujuo1ZgRtF4BsedMJcYlgqqXlwhiAKrpzrVyXrV1ICdP_suXGv5HW0AOG6b8dWEDYPGQM3i3r8Jecvn-YJKqayvFHeMbMHSTd/s1600/2016-03-17-Slack-Bots-101-auth-3d673de99c03c40030538ee03f4ce975.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Go back to your app settings on the Slack webpage, scroll down to the ‘Bot User’ section, and configure a new Bot user for your app by clicking on ‘Add a bot to this app’ button.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFa5q-1KDxKWCBLJgKJxEOuxhfViibpDDgvSOaARaAUOyzHX6m2-GFqr5S3xjmNPdtgdVMfCJy4RbLdMd7dNm8VFAKWg1pnM8WcMaGBChH0rz2AjmCmcnUDRdEACo_TnXvwh_Q-a0LrJMH/s1600/2016-03-17-Slack-Bots-101-bot-user-aad9996e2ba9fdbb228a331d10f00e9e.gif&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Scroll up to the top of the page and click the ‘Add to Slack’ link. The Slack button page will open.&lt;/p&gt;

&lt;p&gt;Scroll down to the ‘Add to Slack button’ section. Uncheck ‘incoming webhook’ and tick the ‘bot’ checkbox, which generates the HTML code for the ‘Add to Slack’ button that can be added to your website.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiIPX7AjbIjE8fsrd8QNGUV3LnA9J5zCIEqHzSJaQe-ZD6lnP5aJPy3txzkfNFhQldpTEjo2uQwfRtMZ-CsZtihSPofg4dY87SKh5v2OSkaKq8UvcXIR8VbcEdAbtFcK5Bnd5rN9haMi3f/s1600/2016-03-17-Slack-Bots-101-add-to-slack-button-c9bcc9cedd435041be75fa266b2e1a6c.gif&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;To launch the bot for your Slack team, just click the button ‘Add to Slack’ above the generated code.&lt;/p&gt;

&lt;p&gt;If you intend to make your bot accessible to other teams, you’ll need to place the ‘Add to Slack’ button on your website, so that anyone can launch your bot by clicking it.&lt;/p&gt;

&lt;p&gt;Note: If you want to have your bot published in the &lt;a href=&quot;https://slack.com/apps&quot; target=&quot;_blank&quot;&gt;Slack App Directory&lt;/a&gt;, you have to register as a developer and go through the Slack approval process.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://youtu.be/R_Z9oGRV7Jw&quot; target=&quot;_blank&quot;&gt;Check out our API.AI for Slack video!&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/609690674289700431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2016/06/conversational-slack-bots-101.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/609690674289700431'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/609690674289700431'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2016/06/conversational-slack-bots-101.html' title='Conversational Slack Bots 101'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikBENThyOt0eXYb_kORz683YfVXysgGRHPvTSuWtf6Fj1vpKM4x0275d-ZIituCQGc0zUEy86miP3WjqE8WWajtsW0bQ_lEcWfhl1pMQvWtae9DCsq3mVYyaAQ9KOSJW50uZAZ7plI218J/s72-c/2016-03-17-Slack-Bots-101-annotated_example-ce03b2aa417a3a9d27cb293bf1365460.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-3546864675901301795</id><published>2015-11-23T14:09:00.000-08:00</published><updated>2017-06-27T14:20:21.893-07:00</updated><title type='text'>What are contexts and how are they used?</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;A context is a powerful tool that can help to create sophisticated voice interaction scenarios. In this post we’ll look at how you can use contexts to build dialogs.&lt;/p&gt;

&lt;p&gt;When a dialog is created, it’s usually the case that many branches of conversation are possible. Therefore, intents in an agent should be designed so that they follow each other in the correct order during a conversation.&lt;/p&gt;

&lt;p&gt;The best way to demonstrate how this works is to build a conversation together, step-by-step. As an example, we’re going to create an agent for a floral shop. You can download it &lt;a href=&quot;https://app.box.com/s/emjfxthmusd5mvr1xc9a1gp68iwzfxf9&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; and try the instructions in your account.
&lt;!--break--&gt;&lt;/p&gt;

&lt;p&gt;First, let’s take a quick look at how contexts operate.&lt;/p&gt;

&lt;h2 id=&quot;using-contexts&quot;&gt;1. Using contexts&lt;/h2&gt;

&lt;p&gt;Contexts will appear in your agent just under the intent title. You should see two fields here: input and output contexts. Corresponding input and output contexts in intents will determine whether they follow or precede one another.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm98nMWGAz80mjTgwnwOswmz962Hj7M-tG3fsZdtNttBZ6TJKp7HdpI-xqlSwYNEVbsB0DDf5yMVXI8j5n3FAF78GwPXlQ2pDw-z8dLAPyZh0XxpwUKEtmFBquxiw7sFkvqUIKhhwKqFBz/s1600/2015-11-18-greetings-c9cd8932eec485d95f1e96ea494ac3fe.jpg&quot; width=&quot;90%&quot;&gt;&lt;/p&gt;

&lt;p&gt;To add a context, just type its name into the field and press enter. The context will now appear as a box with a colored border.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijZkVz7-BQi5Zn9yXEcVRFdlJVqViY6phyphenhyphenMTYW3s7E_ko45ovf_9YGJXZUXMBJlN345jScPE0kzeoqE9slwey2FeI6Oae02auFqFfjl-a5kvLTxfzUX3pdt6KmtXsSXk3CXoAfJVCl0VVG/s1600/2015-11-18-context-compose-2d5c6150d3f66a1ebd02fc292cf0a158.jpg&quot; width=&quot;90%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Here we’ve set an &lt;strong&gt;output context&lt;/strong&gt; for our floral shop named ‘compose’. Once this intent is matched, the context ‘compose’ will be set. So any intents that have this as an incoming context will now have top priority when matching user requests. Note that these intents will not be matched if the context is not set.&lt;/p&gt;

&lt;p&gt;All contexts have a very important property – lifespan.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpq1kYDQe-C4-cegWOXb8pPimosdcoZ2BnIXLR8ri3bX0kuEZ0TTrN9XD7h3JVpXtD6_t8RTQ0ShTEb1NUxt2S0jqLbUjL0LyuM3Vz7ZaksxGKAnN8Tf2Do4z-6PRQztNicp8xywaWsJ0P/s1600/2015-11-18-context-compose-lifespan-3850076abd19c8013213486dc6744776.jpg&quot; width=&quot;90%&quot;&gt;&lt;/p&gt;

&lt;p&gt;By default the lifespan value is set to five. It means that the context will last for the next five matched intents. So if you have different input/output contexts in each of the following intents, all of them will be collected in the next five stages of the dialog, like a chain of contexts.&lt;/p&gt;

&lt;p&gt;While this feature can be very useful, at times you may want to get rid of a context after the following intent is reached. In these situations you can simply change the lifespan to one.&lt;/p&gt;

&lt;h2 id=&quot;managing-the-conversation-flow&quot;&gt;2. Managing the conversation flow&lt;/h2&gt;

&lt;p&gt;Now we’re ready to design the dialog we want our agent to produce. The best way to do this is to draw a scheme like the one pictured below. You can use &lt;a href=&quot;https://www.lucidchart.com/&quot; target=&quot;_blank&quot;&gt;Lucidchart&lt;/a&gt; for this.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaQ4HKPsaUNCTcWi-PYomRzwQ_YqahCiWVyPdy-qlHhhMvocJJ2FUoudHY74ncc6XywIT0kNnTx9KhP9KMc8zY1sUASvdWifnuLDq_PuKR_GZzbU5sHTPCE6CO1FYRW6l0yuj_Zgc4jZXv/s1600/2015-11-18-flowchart-f7eeb4721bd7242c43919f6791502d6b.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;From this scheme we can see that there are two main branches of the conversation. The first is for people who want to compose a bouquet themselves; the second provides the option to choose from one of four pre-made bouquets.&lt;/p&gt;

&lt;p&gt;In order to manage these two branches of the conversation we’ll have to set different contexts.&lt;/p&gt;

&lt;p&gt;The intent where fulfillment is ‘Okay! Would you like to compose a bouquet yourself?’, looks exactly as it was shown above: its name is ‘compose’ and it has an output context ‘compose’.&lt;/p&gt;

&lt;p&gt;So we’ll have to create two different intents to match the possible answers. We’ll make one for ‘yes’:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ9hFoPJ6D6rVCLScCPWwxwluo56-cCe8UduJihZ-Q1B5Ync5VqL11gdb9vBlP2Eo-EF7tB5YEnCuPnymXsODFnqyw45Ai55qFrBDdIWAmmSr4wzW5FCwWvvPIktG8S67PfUYHCB9GkYx6/s1600/2015-11-18-yes-compose-97762cd50f5d6aea14d3aee1c47a75c1.jpg&quot; width=&quot;90%&quot;&gt;&lt;/p&gt;

&lt;p&gt;And one for ‘no’:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN_zxJ-Q3wiOTqltuz_IwMR1cDamkQeWOuSgzGKWtc_SG3DTImS3kSfUgG6QsKelMqrPjjn5XojtmMxWes8CVDWpLj0lclYBU1_itbw1aAbGgzMHe_WlFCyI6hmA0-2UNHTGXGvRHzq4Wa/s1600/2015-11-18-no-compose-30e16b6d2a86fd6e6dad21cd70b10a6a.jpg&quot; width=&quot;90%&quot;&gt;&lt;/p&gt;

&lt;p&gt;In both intents we have the same input context: ‘compose’. So after the intent ‘compose’ was matched and the context ‘compose’ was set, we can then logically only reach those intents with an input context ‘compose’. So if we say ‘yes’ we get into the ‘yes - compose’ intent; if ‘no’, then we are in the ‘no - compose’ intent.&lt;/p&gt;

&lt;p&gt;And now comes the most crucial point: we have to set &lt;strong&gt;different&lt;/strong&gt; output contexts. So in order to continue choosing the flowers we have to set now ‘yes - compose’ context as output, and then as an input context to the following intents. The same goes for the other intent. In order to choose one of the pre-made floral arrangements, we have to set an output context ‘no - compose’ and then create the following intent with ‘no - compose’ as the input context.&lt;/p&gt;

&lt;p&gt;This same logic applies along the whole dialog structure. Whenever you need to go further to a specific intent, you should set the corresponding contexts. This is especially important when you have multiple ‘yes/no’ answers in the conversation.&lt;/p&gt;

&lt;h2 id=&quot;gathering-the-parameters-values&quot;&gt;3. Gathering the parameters’ values&lt;/h2&gt;

&lt;p&gt;The other important function of the context is its ability to collect the parameters’ values. In our example, we’re collecting information during the dialog so we know by the end how to fill the customer’s order – how many flowers of what kind and what color we should add, or alternately, which pre-made bouquet we should choose. As long as a certain context is still alive (i.e., within its lifespan) the value we get from a parameter (if it was set in a context) is also alive.&lt;/p&gt;

&lt;p&gt;In order to collect all the values at the end, we just have to set one context, which will appear in &lt;strong&gt;every&lt;/strong&gt; intent, both input and output (except for the very first intent, where we set the output context only).&lt;/p&gt;

&lt;p&gt;We just have to slightly modify what we see in the screenshots above:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixFXKH0QYWWWCjTLfLhEpYtYvTO1hedz-1JoZK-V4jrfajFELL5G4fg58tdvmRGmhMEwBdNQrpoA8eJyoiPieypVbBOB-2z8ANlLmyU1ju2-FLtA2csAespkmPuVJ0eTp9xwncPF_QmBbB/s1600/2015-11-18-yes-compose-modified-cdc5f307d9cba5a2325248e47664e3ba.jpg&quot; width=&quot;90%&quot;&gt;&lt;/p&gt;

&lt;p&gt;To retrieve the parameters from the context, write: #context_name.parameter_value:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw8yMwa-VvVnBULDQCQ9RSbVzH8fofB1M3D_3BVlbEJYIAtUxbpYJJD_1nBpzgHqkHFgylUJP5a7m8deNz2nq8AlKC07kA6f5914U-cCqCZnEaW3q82SscCf1xgAowv859bQt7LYDLQY6e/s1600/2015-11-18-parameters-645bedff1c69c71b063e730f63bfded8.jpg&quot; width=&quot;90%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Then in the dialog those values will look the same as always:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggkLVrMUwkHjmgX4B-1dnzdUilYqO3lb_7TFwJVO9r24eLw-uRGB0uBEYdaAdFOwmMSeCWILzcXPaC20teY-2Vi6h8aqxvz6H1P1-IZxLom-M4YTZv4j68E0hVoacevN37SJEUKkIPpcu9/s1600/2015-11-18-parameter-values-92ab31839329c3ffd033fa545d06adec.jpg&quot; width=&quot;50%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Feel free to play around with this example. You can &lt;a href=&quot;https://app.box.com/s/emjfxthmusd5mvr1xc9a1gp68iwzfxf9&quot;&gt;download the agent here&lt;/a&gt;.&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/3546864675901301795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/11/what-are-contexts-and-how-are-they-used.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/3546864675901301795'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/3546864675901301795'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/11/what-are-contexts-and-how-are-they-used.html' title='What are contexts and how are they used?'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm98nMWGAz80mjTgwnwOswmz962Hj7M-tG3fsZdtNttBZ6TJKp7HdpI-xqlSwYNEVbsB0DDf5yMVXI8j5n3FAF78GwPXlQ2pDw-z8dLAPyZh0XxpwUKEtmFBquxiw7sFkvqUIKhhwKqFBz/s72-c/2015-11-18-greetings-c9cd8932eec485d95f1e96ea494ac3fe.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-197313305086299987</id><published>2015-11-09T14:21:00.000-08:00</published><updated>2017-06-27T14:37:30.125-07:00</updated><title type='text'>Introducing Slot Filling – the easiest way to build a dialog</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;We are super excited to introduce the &lt;a href=&quot;https://docs.api.ai/docs/dialogs&quot;&gt;slot filling&lt;/a&gt; in API.AI! It greatly simplifies building dialogs. In fact, you can build a simple parameter collection dialog within a single intent if you’d like!&lt;/p&gt;

&lt;p&gt;Let’s say we want to create an agent for sending messages. We’ll need to collect values for the following parameters: “text” and “name”. We’ll also want to make sure that we’ve matched all the values correctly, and to give users an opportunity to edit the values.&lt;/p&gt;

&lt;p&gt;Here’s an example of this type of dialog structure.&lt;br&gt;
&lt;!--break--&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihl714Dk0VRkj0aNJcbvAPrSlIRqTJTBHPu3g3AvRaeS-uzwBfgTtIM4yzRY3-ChBZZl3-XSDQFCpzrglVBNxgtNjpQpxATqLxIzXFcEL3mUtotVmRbr-x2O5bFnkSMenyi45py-PjiUn1/s1600/2015-11-06-dialog-36959827a842408133a65d1011ed483e.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;It’s important to outline the dialog structure before you start building your agent, since this will help you choose the right tools within API.AI. For example, you can see that we will be using the slot filling feature for linear parts of the dialog, and contexts for when it branches into several possible variations.&lt;/p&gt;

&lt;p&gt;There will be 6 intents in our agent:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiQgiU01Ks82uPznzvuYEQQOuqxyeBpF8Hl4ctPpv6hsmoA3mQwuLRI_PaMedUXpndYkysQSW50FDZJE9n0CAq5MhSRDhyphenhyphenAElR9qvAdXvOPyXA0-Mb8SNUpyhXL6ofJkVKmbV9VpM2NpFb/s1600/2015-11-06-intent-structure-7031c0e75c1f23efc955608ad423a47d+%25281%2529.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;The first intent “0 - Send Message” will collect the values for the “text” and “name” parameters.&lt;/p&gt;

&lt;p&gt;A user may start a dialog providing zero, one, or two parameters in the first phrase:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“Send a message” – matches no parameters&lt;/li&gt;
  &lt;li&gt;“Send a message to John” or “Send the message ‘Hello!’” – matches only one parameter (“name” or “text”)&lt;/li&gt;
  &lt;li&gt;“Send the message ‘Hello!’ to John” – matches both parameters (“text” and “name”).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We describe these variations in the intent:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjVapIRdIs2a-2iXF0o110k9aTcmuVYqC6UdeX4_EeQC8qJu4HyTfTh42fLbRv9C4OCET3x667c7GxXgvPKjDviHzT-RWnC8yxfmMX5YvqhnEJjpvq3C-F3UzdtN8IP6FtBOeeyLFch4gO/s1600/2015-11-06-intent-0-3f345557fb0ac084ca362e75790a6a34.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;In this intent we want to fill all the necessary slots, which is to say we have to collect all the needed parameter values. To do so, we’ll mark these parameters as &lt;strong&gt;Required&lt;/strong&gt;. Then we’ll use &lt;strong&gt;Prompts&lt;/strong&gt; to ask the user for parameter values that were not contained in their initial request:&lt;/p&gt;
&gt;
&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj98Z9VZXwNj5xa1GOex61OAuiXykIb6GavZ7Mskr3l8V0_Mhecj4vQ4tnfiOOCuwX1-6VcwCoKGVwHQEO7ibUL2v4BqOROWY0hweq4f0vzrSl53n2JmlGxAFLsV1Jt6Zf723D9Sm38UMtX/s1600/2015-11-06-prompts-340d784ddacd4f31d3bdfd882f00c9cf+%25281%2529.gif&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;If you want to change the order of the questions, use the arrow on the right to drag and drop the parameter lines:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGwSZJ_W-U2dnFeWVGOLlxwcZD5-Tbym7s7RC3GigpOFM7zwBxeTEqBsEuD2eTNAaDlxnXjAAcM4v5B5D_PuYPkk8_K875YGyrRSSSfS4CE28qSfkftlGj2D0qBH20MTPJRytRrxer5jPR/s1600/2015-11-06-order-875e39f46fbfcb911f643e83a1376c16.gif&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;When all the necessary values have been collected, the agent will respond with the phrase that has been defined in the &lt;strong&gt;Speech Response&lt;/strong&gt; field:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNO8mKWVfuySt2CDuUbewZEXJHsU8guuLUsnTKsH9OUskfO3iq1F0LCWhwUAGhASEZyqZAMNLEyZcdWgOdv-OrV4dceVYNAx9sLWvtGK75RjSJWZaKhyb04nz8CMBVL1upNagOJMZlpIyM/s1600/2015-11-06-speech-response-7499fce88ebbb1f455efc7392cbfce46+%25282%2529.jpg&quot;&gt;&lt;/p&gt;

&lt;p&gt;The question “Is it correct?” creates the need for branching in the dialog structure:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;If the user answers “Yes”, the agent will just send the message.&lt;/li&gt;
  &lt;li&gt;If the user answers “No”, the agent will suggest to edit the message.&lt;/li&gt;
  &lt;li&gt;If the user’s answer contains neither positive nor negative meaning, the agent will insist on receiving a “Yes” or “No” response.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To catch these possible answers, we are going to create three new intents:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;1.1 - Message correct - Yes&lt;/li&gt;
  &lt;li&gt;1.2 - Message correct - No&lt;/li&gt;
  &lt;li&gt;1.3 - Message correct - Unknown&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But before we do this, we’ll define the &lt;strong&gt;output context&lt;/strong&gt; in the &lt;code&gt;0 - Send Message&lt;/code&gt; intent:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKASmfZ4B1YLy-Jim3-gKe5RAgsfCbsQL9TE4ZSUu337HY7zRatjnXKWMydGFq0Jj3ubKZ2woSkpOwoN1viNoHtLpmKAOpSZMcofRdXInpBFDFF3lw9S4bEOc46div4w-9cQ-vZL8v270D/s1600/2015-11-06-output-context-cc895ef30cfe0e0d76ed301370ede12e+%25281%2529.gif&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;We will then use this as our &lt;strong&gt;input context&lt;/strong&gt; in the intents &lt;code&gt;1.1 - Message correct - Yes&lt;/code&gt;, &lt;code&gt;1.2 - Message correct - No&lt;/code&gt;, and &lt;code&gt;1.3 - Message correct - Unknown&lt;/code&gt; in order to catch the user’s “Yes/No/Unknown” answers:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ4MbxpT1xbVuLG3sW3wqTkWh1oR7zZrVlEW91_5D9q9JLiA-mFsYQKiCBOGweUkgsWNkTMDRuvRM4_J_sPBZgng2uDBCKtLjcL10ADezAL-CAkyDWM1JFlBwL9_8d8oj5WUOHPh5Xr8v8/s1600/2015-11-06-intent-1.1-8f3f5c8ecef5a8a5c23bed7f40d1e077+%25281%2529.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;In the case of a positive answer, the agent will send a message with the parameter values collected in the first intent. Note that in order to refer to those values in the Speech Response, we’ll need to use the format #ContextName.ParameterName:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvitrZR-JRV1TjXzEiCpn7zshxlNNKcnjMpOMgFgW65VxFBbHXvDSzfHrs3CHMZWzlrs8KsamIgOnsXQWvGyOS_d4aRp2HKxN_Ac2Ycb45iLkF6K73aTbHS9GQlVRImfyay3kVnagwwiR5/s1600/2015-11-06-speech-response-2-f284711e1edc493355bc637c76f91a76+%25281%2529.jpg&quot;&gt;&lt;/p&gt;

&lt;p&gt;Since we don’t want to continue this dialog branch any further, we clear the output contexts. It is done by clicking on OUT button in the contexts section:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh9LABMLv1aFhf1joAiD9bNizB1Rg1bP7VA6J8Nb42g_BKNxW6jdd89KZgtRH4xNntH55Dz4fvHIeFklWCK4gD61UZDYtspw-2hqDwn4_jcmOCYsm6GbOe3z8jBAx-IOXECEVYv0zY58fJ/s1600/2015-11-06-output-clear-d391b2012c4a0d53816fd6f579623689+%25281%2529.gif&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;In the case of a negative answer, the dialog will continue within the new context &lt;code&gt;new_message&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh88dYVF3bl8O3E8JfCS9iGnMEPzKT2yKq1jvhz4-G04wmIxy4Ycg-XULFMDJx4uHJ9vtDEloDc9XXdpZj9r43WwZJgpJupD4bWQhTyoZclFBOER5D4l459LMzyH-zEymF2xQhgf9tiWpA/s1600/2015-11-06-intent-1.2-b91ab37e558aee71cc7108d73d075cf4+%25281%2529.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;In the case of a neither positive, nor negative answer, the agent will continue asking the user for a “Yes” or “No” response:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg11qO_B6AD1pCTqyUxgmQTDHU59e9HY1S3yXlZPXK_jmDy_KqPoWjHtO-SVpxjVcsy4_Qut8HzJyWRblgSiXYuqJu7W32TmOp0bAc4zwznrtRdUWGX3xE1LlTAuyLMKYhsT8y0d6I7CcYm/s1600/2015-11-06-intent-1.3-c18e8ab01deb7c8f1a5eb3ca69604c98+%25281%2529.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;The next intent “2 - New message” will catch the edited “text” and “name” values:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw0rT7QIgPrEBeiHwsAk6AL5i8Wx0DGkjWxfpzSqmTYX3OU5wejSRH9s6zGcPxvCloy8jCjggfkm5RfyUCks8CQgybbP0rXKvTC6zK03MhwfUGuvAu8QfsRj-KtTYC51GRj6ACcPUCJgwV/s1600/2015-11-06-intent-2-2a5f076119424ec523de55f3264be0e4+%25281%2529.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Since the question for filling the “text” value was already asked in the intent &lt;code&gt;1.2 - Message correct - No&lt;/code&gt;, we now only need a prompt for the “name” parameter:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil-8qk2zmGBcXtT2M4urqYfK7jvOKxdKvUSFO60RZIDVViv0TBVF2mvyT2YFRtkcRsRdQ08AWCYCKGSoyc-yr2yMs1V2SU0_7iNKpMkSh8gZv6Tz_g9D-gNEswdSLXyp4j8Ni2Yx5l445S/s1600/2015-11-06-intent-2-prompts-3803b7694e8122323048db2b9b47be95+%25281%2529.jpg&quot;&gt;&lt;/p&gt;

&lt;p&gt;When the edited values have been collected, the agent sends a message with these values:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7lBdjTPnBZNOpA6J96R4TNMSq23UlmnnU9HR7Jbudu7XltjKVcpr-BDUAQNawi_-TTEdfT6BA7wSJ837LNDZ6MiPMzaYYp01BjZ_BWunTVrPCF3ANxKOVXlHkKDd2fqYBgHg8A2Ir6Cia/s1600/2015-11-06-speech-response-intent-2-7c8a6e8fdc6ca53fcebee725808c4274+%25281%2529.jpg&quot;&gt;&lt;/p&gt;

&lt;p&gt;Finally, in order to clear all contexts, the intent “3 - Clear contexts” is created:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-mOYsHwtXdZnhPd-wu2QV-Itr9vR2BhzLaD1_x6vRg1IKCsVqJ4uR6nZ-qRXvRzlzDw7CpeGYsquSvhyphenhyphenRuOR-I0CvAH8vLukWf5hd1Yqqlet5qKlvUUOhcWtFBQBehbPEKicrDxmYpkH5/s1600/2015-11-06-intent-3-0b1e5748cc90bbbdf31c7337ed9d96d5+%25281%2529.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Our agent is ready! Now you can go back to the dialog structure flowchart and test all possible scenarios.&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/197313305086299987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/12/introducing-slot-filling-easiest-way-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/197313305086299987'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/197313305086299987'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/12/introducing-slot-filling-easiest-way-to.html' title='Introducing Slot Filling – the easiest way to build a dialog'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihl714Dk0VRkj0aNJcbvAPrSlIRqTJTBHPu3g3AvRaeS-uzwBfgTtIM4yzRY3-ChBZZl3-XSDQFCpzrglVBNxgtNjpQpxATqLxIzXFcEL3mUtotVmRbr-x2O5bFnkSMenyi45py-PjiUn1/s72-c/2015-11-06-dialog-36959827a842408133a65d1011ed483e.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-9124316498264985965</id><published>2015-10-29T14:38:00.000-07:00</published><updated>2017-06-27T14:39:48.168-07:00</updated><title type='text'>Could You Fall In Love With a Robot? API.AI Exclusive</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAjs9TTt-oGCHqjt9xG-_mNltIO35icYQHJ9PkVv-JHJE9XVCDQe5XxoZO5OqWXQ_r5vmcfOXWJHm6UbE47uwWqXlnJltI-uT86zUnZL01UizpgZF7xloyDxvH7Hstv-EbxtRuiz4M_lCC/s1600/2015-10-29-her-441d102f6a5ae9c479ae5aaa49718858.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;In the 2013 film Her, the lead character falls in love with his virtual assistant, a charming, operating system voiced by the actress Scarlett Johansson. Rather than the Skynet-style omnipotent and destructive artificial intelligence imagined by films that look past the singularity – like The Terminator – Her shows a plausible, if fictional, a glimpse at a near future where our relationships with computers are much more human.&lt;/p&gt;

&lt;p&gt;Artificial Intelligence, and virtual assistants, in particular, already perform dozens of tasks for hundreds of millions of people every day, but we now see that they also offer people emotional support, friendship and even more.&lt;/p&gt;

&lt;p&gt;Our first-ever Virtual Assistant Survey reveals that more complex human - computer relationships are far closer than right around the corner. In fact, just two short years after Her hit theaters, we’re already there.&lt;/p&gt;

&lt;p&gt;With data from 12,000+ &lt;a href=&quot;https://assistant.ai&quot;&gt;Assistant.ai&lt;/a&gt; users, the Virtual Assistant Survey offers a wealth of insights into the numerous ways virtual assistants are changing the way we live, commute, shop, search and communicate.&lt;/p&gt;

&lt;p&gt;What’s clear is that there is no aspect of our lives that has not been touched by the rise of virtual assistants and, believe it or not, smartphones are just the beginning.&lt;/p&gt;

&lt;p&gt;Soon our cars, homes, and offices will be filled with connected devices – and not just watches, phones and computers. Fridges, desks, coffee pots, jackets, and every other physical object you can imagine will soon be connected devices. 
Voice-powered virtual assistants will be how we communicate, control and benefit from our connected future.&lt;/p&gt;

&lt;p&gt;We may not all fall in love with our virtual assistants, but sooner than later, we’ll forget how we ever lived without them.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVSInBsMpF6Wqj4QOgnkTi144HO0FO-NcE5nwzaQcT12ihTok0hzYR7AtqFd_87Fw4_8ODm5mFKBAmp_s9sI3zSE-u5TQCgQjvhaO43Yzxnwtr0ame7fuE2cQHyNrzZTbqPLl8EIh1V5NL/s1600/2015-10-29-infographic-31f31da241a5c8375fdafb79063f3eb3.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/9124316498264985965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/10/could-you-fall-in-love-with-robot-apiai.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/9124316498264985965'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/9124316498264985965'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/10/could-you-fall-in-love-with-robot-apiai.html' title='Could You Fall In Love With a Robot? API.AI Exclusive'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAjs9TTt-oGCHqjt9xG-_mNltIO35icYQHJ9PkVv-JHJE9XVCDQe5XxoZO5OqWXQ_r5vmcfOXWJHm6UbE47uwWqXlnJltI-uT86zUnZL01UizpgZF7xloyDxvH7Hstv-EbxtRuiz4M_lCC/s72-c/2015-10-29-her-441d102f6a5ae9c479ae5aaa49718858.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-7703655191301901476</id><published>2015-07-10T14:40:00.000-07:00</published><updated>2017-06-27T14:40:35.960-07:00</updated><title type='text'>Better Than the Best Customer Service</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Jerry Gregoire of Dell once said, “The customer experience is the next competitive battleground.” The bottom line: exceptional customer service skills are crucial for building a company’s brand and reputation. With competitive quality and pricing no longer an issue for most products and services, it’s the customer service jobs that win over sales, good PR, and loyalty.
With that being said, the ideal customer service scenario involves a knowledgeable customer working with an eager-to-help human. Guess how often that happens – not often. Larger companies can invest the time and resources to train anyone and motivate them to keep the customer happy. However, these same companies are offering increasingly complex products just so that they can remain competitive. This in turn results in a huge influx of confused customers calling in to get their questions answered (since, of course, they had no luck on the company’s website or forums). Therefore, organizations waste millions of dollars and thousands of hours answering simple questions - repeatedly. Not only is this inefficient, but it is extremely expensive.
That’s why companies, large and small, have added automated customer service to their tier system. Ever find yourself screaming and swearing at an automated virtual receptionist after they misunderstood what you were asking for?&lt;/p&gt;

&lt;p&gt;Us neither… But it can be tempting.&lt;/p&gt;

&lt;p&gt;The strategy and technology behind those virtual assistant services leaves a lot to be desired right now, but that doesn’t mean something better doesn’t already exist.&lt;/p&gt;

&lt;p&gt;By leveraging the api.ai platform, we can help companies automate their customer service through human-like conversations that understand natural language with conversational virtual assistants. This technology understands a customer’s problem and is capable of answering questions as well as resolving issues in real time. Therefore, customer service representatives can focus on more complex problems and other value-adding activities.&lt;/p&gt;

&lt;p&gt;Of course, this technology can be deployed across all of your digital channels including text, voice, web, mobile and 3rd party API integrations.  Multi-channel support empowers customers to seamlessly receive consistent service regardless of the platform. But it doesn’t stop there! Check out Forbes’ article on how api.ai integrated with Twilio, adds all new insight to communication &lt;a href=&quot;http://onforb.es/1K8reff&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/7703655191301901476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/07/better-than-best-customer-service.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/7703655191301901476'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/7703655191301901476'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/07/better-than-best-customer-service.html' title='Better Than the Best Customer Service'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-971093018855346236</id><published>2015-06-23T14:40:00.000-07:00</published><updated>2017-06-27T14:41:16.113-07:00</updated><title type='text'>Interaction Scenario Design and Implementation</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Many times it is easier to reach the “Oh!” moment by just watching somebody else do it.  For us visual learners out there, this tutorial breaks down the process of creating and implementing a conversation based interaction scenario for a pizza delivery app. Make your app development stand out with a conversational component.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/zZCP14gr8Rs&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Here are the steps that we cover:&lt;/p&gt;

&lt;p&gt;1) Outline an example dialog with a user&lt;/p&gt;

&lt;p&gt;2) Populate relevant entities&lt;/p&gt;

&lt;p&gt;3) Set up single intent recognition (Single query and response)&lt;/p&gt;

&lt;p&gt;4) Use context to support conversation and remember parameters&lt;/p&gt;

&lt;p&gt;Whether you’re an iOS or android developer, you should create an app with a voice interface to thrill your users.&lt;/p&gt;

    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/971093018855346236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/06/interaction-scenario-design-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/971093018855346236'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/971093018855346236'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/06/interaction-scenario-design-and.html' title='Interaction Scenario Design and Implementation'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/zZCP14gr8Rs/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-4520322066934090159</id><published>2015-06-03T14:41:00.000-07:00</published><updated>2017-06-27T14:43:32.512-07:00</updated><title type='text'>A Speech Interface in 3 Steps</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Even a capable developer can get fumbled by the components of a full speech interface.  Some might think, “Voice recognition sounds good enough,” but that’s just the first step. Voice recognition can fulfill your dictation needs, but when applied to use cases that call for a full voice interface, it’s not only inefficient, it’s the lead cause of users screaming and cursing at their technology. It’s our privilege and sacred duty to set the record straight.&lt;/p&gt;

&lt;p&gt;The overall processing flow of a comprehensive speech interface consists of 3 key components:&lt;/p&gt;
&gt;
&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMPArssoFlgdON5dfakyxlvzZw5-7SksUxbVRumDqFVDrRABaNBfbmDn9TcGOwa7o6dsk8IkamLuh60d8gncze2pPvRaRvg_TWAjdG0QTqaL162BHDsrO9WkHotW3HzybTzmDxr2SB1rFw/s1600/2015-06-03-3-steps-77c41aa7410f4620e039c2ee243554c1.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Speech recognition, speech to text, voice recognition, voice to text and automatic speech recognition (ASR) all refer to the same function: transcribing your spoken words. This first step converts your speech to text so that it can be processed (e.g. dictating an email or text to your mom). Devices need that component before anything else can happen.&lt;/p&gt;

&lt;p&gt;(Side note: When working with api.ai you have a couple of different options…)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 1)&lt;/strong&gt; You can use our ASR.  This technology is based on statistical and acoustic data from over 2.5 billion processed requests to date.  Once our clients have an implementation with api.ai, we can provide custom language models based on domain knowledge.  Dynamic language models can also be generated or selected based on conversation and dialog focus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 2)&lt;/strong&gt; You can use any 3rd party ASR provider.&lt;/p&gt;

&lt;p&gt;The second and most overlooked step is leveraging natural language understanding (NLU) technology. NLU cultivates natural interactions between you and a device; rather than being limited to very basic voice commands or needing to know the magic words to make it work. Let’s break it down:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; Intent Recognition: Needed to understand your user’s intent or meaning.

 Context Management: Needed for multi query cases.

 Conversation Management: Needed to support back-and-forth dialogue.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The speech that has been transcribed into text is still foreign to your technology and it won’t know what to do with it. Step 2 takes your text, which is your natural language input, and turns it into a structured object so that your product will understand. In other words, it uses &lt;strong&gt;Intent Recognition&lt;/strong&gt; to understand what the user is asking for.&lt;/p&gt;

&lt;p&gt;(Side note: Through advanced techniques in Machine Learning, api.ai can predict 
variations of what the user might say and still translate 
the meaning into the appropriate structured object.)&lt;/p&gt;

&lt;p&gt;For example, a user could say, “Set thermostat to 72 degrees,” or “Thermostat to 72,” and the words are transcribed and then translated into an easy to rea
d – for the device – structured object.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv56gctoNuDNddUvZjXXMDGjkdZPwrzeRMOOPMK-GuvTCQmFqrs1B-X5arj5xDyid4tR6pIZtLFz7anBSIm93oAoxdqCdpfBnG7lwq43mp6fJoFKfKEv1uSja9wcMeQH2_2LAKS2sQ-NUk/s1600/2015-06-03-single-query-86b712bba9608ee6d499e6fa4674a2e9.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;That’s an example of a single query interaction scenario. So what if you want to have some back-and-forth conversation with your device? You’d need context and &lt;strong&gt;Context Awareness&lt;/strong&gt;. A user might say, “Set alarm for 7am,” and their device would respond, “Alarm set for 7am.” When they realize how unpleasant the 7am hour is, they could say, “That’s too early. Set it for an hour later.” And the device would know what their user was asking and respond, “Ok, alarm set for 8am.”&lt;/p&gt;

&lt;p&gt;(Side note: api.ai has a sophistocated context managment toolset and engine implementation that supports both internal and external contextual data (e.g. GUI, gestures, diagnostics etc.).)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation Management&lt;/strong&gt; allows for the engine to seamlessly switch between conversation topics, while remembering what you were talking about (just like you wish your girl/boyfriend would).  Users can also have clarifying conversations with your product in the same session / conversation across devices.&lt;/p&gt;

&lt;p&gt;Now the device can transcribe your words, translate them into a readable structured object so that it can understand the user’s intent and context, and support back-and-forth dialogue – what’s missing? Fulfillment, implementation, follow through. After your device has a clear understanding of what you’re asking, it may need to take action to fulfill your request. Speech interface without fulfillment would look something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; User: Turn on TV.
 *Nothing happens*
 Device: TV is on.
 User: …
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So ask yourself, “Am I looking for transcription technology (speech to text)? Or for a back-and-forth dialogue interface that can deliver on my users’ requests?” Because afterall, who wants to live in a world without fulfillment?&lt;/p&gt;

&lt;p&gt;Now you are equipped with an understanding of what a full speech interface requires and why it would crumble without each component. Our only hope is that you will take this knowledge and share it with those who think, “Voice recognition. That sounds good enough to me.”&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/4520322066934090159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/06/a-speech-interface-in-3-steps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4520322066934090159'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4520322066934090159'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/06/a-speech-interface-in-3-steps.html' title='A Speech Interface in 3 Steps'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMPArssoFlgdON5dfakyxlvzZw5-7SksUxbVRumDqFVDrRABaNBfbmDn9TcGOwa7o6dsk8IkamLuh60d8gncze2pPvRaRvg_TWAjdG0QTqaL162BHDsrO9WkHotW3HzybTzmDxr2SB1rFw/s72-c/2015-06-03-3-steps-77c41aa7410f4620e039c2ee243554c1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-2051786738939427447</id><published>2015-05-21T14:44:00.000-07:00</published><updated>2017-06-27T14:44:16.845-07:00</updated><title type='text'>Onboarding Users in the 21st Century</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;You spend months developing a great app for users to fall in love with. You went the extra mile and made a Getting Started Tutorial to help onboard users that goes beyond the typical UX design. But then those overly anxious users skip the helpful tips, get lost in the options, and then complain that the app was too difficult to use or didn’t work properly.&lt;/p&gt;

&lt;p&gt;When it comes to new, exciting technology, who has the patience to read through a tutorial? Our instincts are to explore first and ask later. So why not onboard new users with a they-ask-a-question-they-get-an-answer interface? Here’s what onboarding new users with a full voice interface looks like:&lt;/p&gt;

&lt;p&gt;1) Person asks app how to do X. We turn that into actionable data in the form of a JSON.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; resolvedQuery: “How do I create a new task”
 action: task.create.help
 parameters: { helpTopic: “new tasks” }
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;2) App tells person how to do X&lt;/p&gt;

&lt;p&gt;3) Person wants to know more, they ask.&lt;/p&gt;

&lt;p&gt;Imagine: your user turns on their new device, they are greeted by a virtual assistant that allows for an interactive question and answer learning session. They ask just enough to get started and then they’re off – enjoying your creation! If they get stuck later on, that virtual assistant is always there to answer with how-to’s and tips.&lt;/p&gt;

&lt;p&gt;The assistant can also be updated anytime to include more answers for updates and changes to the app or device. That way you never lose a user when adding new functionality or updating UX interfaces.&lt;/p&gt;

&lt;p&gt;What’s the best part? You don’t have to imagine – the technology for an intuitive, affordable speech interface, for any app, device, or website, is here at api.ai. Raise your user acquisition and customer loyalty today.&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/2051786738939427447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/05/onboarding-users-in-21st-century.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/2051786738939427447'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/2051786738939427447'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/05/onboarding-users-in-21st-century.html' title='Onboarding Users in the 21st Century'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-3062833168749321840</id><published>2015-05-14T14:44:00.000-07:00</published><updated>2017-06-27T14:48:30.413-07:00</updated><title type='text'>User Defined Entities</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;As an API.AI super user, you already understand the power behind the platform.  Your implementation is reaching its final stage, and you have started to ask for more advanced capabilities.  Most frequently, developers just like you are interested in being able to customize entities on the user/request level.&lt;/p&gt;

&lt;p&gt;Let’s take a look at a quick scenario.  You are a developer with an application to control all of the devices and settings in your smart home.  Out of the box a user can refer to their objects in generic ways like “turn the lights on in my office”.  But - what if the user wants a more personalized experience?  If this is the case, the end user must be able to add their own names to refer to specific objects.  For example, rather than referring to a generic office entity, they could say  “turn on the lights in my mancave”.&lt;/p&gt;

&lt;p&gt;In order to work with user entities:&lt;/p&gt;

&lt;p&gt;1) Create an entity (e.g. @houselocation and @device entities for a smart home app)
Populate the entity with default values (e.g. @houselocation has:Kitchen, Living Room, Bedroom and @object has Lights)&lt;/p&gt;

&lt;p&gt;2) Create an intent that uses this entity (e.g. “Turn on the @device in the @houselocation”)&lt;/p&gt;

&lt;p&gt;3) Utilize the new entities parameter in the query endpoint.
The entities object accepts an array of entities, following the format used &lt;a href=&quot;https://docs.api.ai/v16/docs/entities#entity-object&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The submitted entities will replace entities defined in the developer console just for this one request.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1sn0b4CTWIKPS81gvlKPMs1k_8LPQ7-M1ZCai0gRmMKEW6ryKputKmGx-cXBRPUeXA4bdxq0FF8RG_Z_Jfl-3SeFnCbo5EqI_fbZ6r8qPRpExfmojoECrAEyj2i_NEHP0UPc_pmEBrSKm/s1600/2015-05-14-example-038e1b27bc96d176fd720d4edf3173b8.png&quot;&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Here’s the curl example:&lt;/p&gt;
&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU4PHixUlxENVRpBODW6z56j5bb3L86RXIamMOiZAQk8NEVSzr4fp1YHBT1H8H-P5eIuW2E-Nk_WxfeFBMFtL9R7kP5zNxbAgBvvHoOuHU_zNbxaQ1NOmU56ibvDj4Zf0ZmA8DgvRu4e9_/s1600/2015-05-14-curl-a3c99dec84833728a983a2b2fa34568d.png&quot; width=100% /&gt;

&lt;p&gt;The specified entity needs to exist in the developer console. The UI does not allow for creating an empty entity, so you must have some default value there.&lt;/p&gt;

&lt;p&gt;On the Android SDK level:
To use the SDK please use the directive below instead of pulling it from the repo:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIZT2js-WR5Khhgz7YPB9ROdzqEMjecr1Bk5D-u-THg6OFsz-EPjFGsR176d9m1UIReshpHga2JBvVmkj63iP28IOq9JRJhvKCXiiuMLLtDqbJvFSH-JoI_vJR3ELqmCUzbMRCba7nuK95/s1600/2015-05-14-sdk-directive-0677623108260402402ae0217bf1b7b7.png&quot; width=&quot;300&quot;&gt;&lt;/p&gt;

&lt;p&gt;Usage example:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAvTD_xgQDvAH0RU-QViONkObfV1JcvC4NcknA06UCkETCnz73dv09ls0EvHNOm04rptI7SvPKhgppa2fyHEqU6pYBmtD35wNzBNjr5X7tDH7YFgQN4iF9MPj0cp7lIgY4EQYLZViGJhNU/s1600/2015-05-14-usage-example-6e6b041ad88e12a7ed61c4022847653f.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Finer grain controls for the entities are coming soon.&lt;/p&gt;

    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/3062833168749321840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/05/user-defined-entities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/3062833168749321840'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/3062833168749321840'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/05/user-defined-entities.html' title='User Defined Entities'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1sn0b4CTWIKPS81gvlKPMs1k_8LPQ7-M1ZCai0gRmMKEW6ryKputKmGx-cXBRPUeXA4bdxq0FF8RG_Z_Jfl-3SeFnCbo5EqI_fbZ6r8qPRpExfmojoECrAEyj2i_NEHP0UPc_pmEBrSKm/s72-c/2015-05-14-example-038e1b27bc96d176fd720d4edf3173b8.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-4079060857958018164</id><published>2015-04-28T14:48:00.000-07:00</published><updated>2017-06-27T14:49:46.559-07:00</updated><title type='text'>Speech Interface: The Remote You Can’t Lose</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;There’s a word for having a remote control for every possible electronic in your life – convenient. Whether you’re settling down to finish some work or tucked in for the night, remote controls add even more convenience to the technology they’re paired with. Until you lose them, their batteries die, or one system requires 3+ remotes just to turn it on. Remotes were the solution for the 20th century, but now we have something better: speech interface.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4BQytL_tEJZaszPS7QTvUZl407WTidS8EimMQR8YJXcB4_p4SUxq0n-sHo3YOce0M6ZQL55Zx2cE5goiDh7UYfNxtS6IjsNUr1YBKC_U3scl8sZZlDXkZDR3rhTYmyyEnEdS6ElaL2Q3Z/s1600/2015-04-28-universal-remote-f88d406e32373bfba6c850e3c25ee66a.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;What could be simpler than saying what you want to happen and then it happening? Let’s look at the - inevitable - smart home use case. We like the different control panels and various apps for each type of appliance we want to control, but what we would love, what would thrill our socks off, is to just say, “turn off the lights and lock the doors,” from our beds.&lt;/p&gt;

&lt;p&gt;This is not a science fiction pitch for future generations. You can enjoy this first-class service today with products like the Ubi and Smarter Shade. Imagine walking into your home and saying, “Turn off the garage light, preheat the oven to 375, and turn on the SF Giants game,” and having the relevant electronics comply with your requests. That would be the real smart tv we’ve been waiting for. Speech interface is beyond convenient – it’s efficient and offers a whole new peace of mind. Try out api.ai today to make your all in one remote that’s handsfree and convenient.&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/4079060857958018164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/04/speech-interface-remote-you-cant-lose.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4079060857958018164'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/4079060857958018164'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/04/speech-interface-remote-you-cant-lose.html' title='Speech Interface: The Remote You Can’t Lose'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4BQytL_tEJZaszPS7QTvUZl407WTidS8EimMQR8YJXcB4_p4SUxq0n-sHo3YOce0M6ZQL55Zx2cE5goiDh7UYfNxtS6IjsNUr1YBKC_U3scl8sZZlDXkZDR3rhTYmyyEnEdS6ElaL2Q3Z/s72-c/2015-04-28-universal-remote-f88d406e32373bfba6c850e3c25ee66a.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-311914346391082903</id><published>2015-04-17T14:49:00.000-07:00</published><updated>2017-06-27T14:50:17.767-07:00</updated><title type='text'>Voice Enabling TaskList App with api.ai</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;To help you get started in voice enabling your apps for Android, we have put together a basic implementation walkthrough.   For this demonstration, we have decided to start with an open source to do list app and turn it into a smart task list that people can easily interact with on the go.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/kz_xCEPNJGw&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Link to android SDK: &lt;a href=&quot;https://github.com/api-ai/api-ai-android-sdk&quot;&gt;HERE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Playstore link to app we will voice enable: &lt;a href=&quot;https://play.google.com/store/apps/details?id=org.tasks&quot;&gt;HERE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link to git for TaskList open source code: &lt;a href=&quot;https://github.com/abaker/tasks&quot;&gt;HERE&lt;/a&gt;&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/311914346391082903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/04/voice-enabling-tasklist-app-with-apiai.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/311914346391082903'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/311914346391082903'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/04/voice-enabling-tasklist-app-with-apiai.html' title='Voice Enabling TaskList App with api.ai'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/kz_xCEPNJGw/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-1263283035666091906</id><published>2015-04-09T15:39:00.000-07:00</published><updated>2017-06-27T15:40:16.564-07:00</updated><title type='text'>Domains Release: Don’t Reinvent the Wheel</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
        
         &lt;p&gt;If you are looking for quick, out-of-the-box speech to text functionality – then we have news for you!  At api.ai, we understand that sometimes you don’t want to create everything from scratch and we have the full voice interface solution.&lt;/p&gt;

&lt;p&gt;Through the half a decade that we spent creating our nlp engine, we have also created many significant knowledge domains to support interaction within the Assistant. For your convenience, we are releasing these Domain Knowledge Bases into api.ai&lt;/p&gt;

&lt;p&gt;Domains are pre-defined knowledge packages. By enabling Domains on the appropriately named tab in the dev console, you can make your agent understand thousands of diverse requests – no coding or thinking required!  This week we have released Domains for: Smart Home, Maps and Points of Interest, Booking, Media, Times and Dates, Web Browsing, Small Talk, Apps, and Device Control. Of course, more will be coming soon.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7sNF1FdVQ1HhS-UiZp0FntXYLpcQHTBhPwy_IUrvuzTqF9wLWu3wSvf4TTxiUUyVzB1fL0BJjF3QoU98w42gwoonCbeMI_Q5TGpwdi1aYLeLmKsSzYXfa_xjMj2ZlA7LtWC2EtGUHvyZr/s1600/2015-04-09-domains-tab-ece5e018ee1c3bbe39477f6294b70b02.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;So, what does that mean?
Now, user’s requests are sent for processing to both your agent and the Domains Knowledge Base. For ease of development, you will see both results in the api.ai test console.  In the runtime, your agent has a preference. If a request is made via the HTTP API or one of the SDK helpers, api.ai will return the agent’s response if available. If not, a Domain response will be returned.
If your app requires more commands to be processed within certain Domains, you can create your own intents in addition to what is available. [Note: You need to use the same name for the  parameters to be consistent with the parameters returned from the Domains].&lt;/p&gt;

&lt;p&gt;This means that you could create an empty agent, and as long as Domains are turned on it will understand all sorts of things (e.g. “I want to hear the Red Hot Chili Peppers”, “Lock the front door at 9 pm”, “Book me a hotel for 2 nights in San Francisco”, “Wake me up at 7:30 am”, “I want a hot dog”, “I want to go to a concert tomorrow”).&lt;/p&gt;

&lt;p&gt;For more information, check out our Domains documentation &lt;a href=&quot;https://docs.api.ai/docs/domains&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;


        
   
       &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/1263283035666091906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/04/domains-release-dont-reinvent-wheel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/1263283035666091906'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/1263283035666091906'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/04/domains-release-dont-reinvent-wheel.html' title='Domains Release: Don’t Reinvent the Wheel'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7sNF1FdVQ1HhS-UiZp0FntXYLpcQHTBhPwy_IUrvuzTqF9wLWu3wSvf4TTxiUUyVzB1fL0BJjF3QoU98w42gwoonCbeMI_Q5TGpwdi1aYLeLmKsSzYXfa_xjMj2ZlA7LtWC2EtGUHvyZr/s72-c/2015-04-09-domains-tab-ece5e018ee1c3bbe39477f6294b70b02.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-6807221693136598478</id><published>2015-03-31T15:40:00.000-07:00</published><updated>2017-06-27T15:40:53.214-07:00</updated><title type='text'>Why not interact with advertisements?</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Do you remember the “olden days” when we had to watch TV commercials? We zoned out during irrelevant radio promos, muted Spotify blurbs, and desperately pressed “skip” to YouTube ads. Oh wait – it’s still that way.  Digital advertising is a multi-billion dollar industry and yet it is in need of some top-notch innovation.  They really haven’t had many options, until now…&lt;/p&gt;

&lt;p&gt;With the capabilities of speech to text growing, modern advertisements are on the brink of a revolution.  It will leverage both big data and cutting edge technology to provide a personalized ad experience that was previously unimaginable.  Paid ads and freeads alike can now be updated dynamically to reflect your preferences and interact with you as if you were, well, a human.&lt;/p&gt;

&lt;p&gt;Let’s look at a few use cases through something like Spotify.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Ad: “Hi Mike! I noticed that your mom’s birthday is around the corner.  She might enjoy a dozen hot pink roses.  Would you like me to send her some?”

Mike: “Oh, I forgot.  Please send her two dozen white roses.”

Ad: “Sure thing.  $62 will be charged to your credit card on file.”
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;–&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Ad: “The summer is creeping up and I have some hot deals specifically for you, Mike.  Would you like to hear more?”

Mike: “Are there any flight to Hawaii deals?”

Ad: “Let me look. Yes, I have a deal for a flight to Maui during the first week of June.  Would you like to book it now or should I send you an email with the details?”
Mike: Send me an email.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;–&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Ad: “Hi Mike, Geico can save you 15% in under 15 minutes. If you would like to hear more about how to save on your auto insurance by switching to Geico, just ask”

(Later that day)

Mike: “Can you tell me more about the Geico deal from earlier?”

Ad: “Sure…Let me connect you to a Geico representative to find a plan that’s best for you”
&lt;/code&gt;&lt;/pre&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/6807221693136598478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/03/why-not-interact-with-advertisements.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/6807221693136598478'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/6807221693136598478'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/03/why-not-interact-with-advertisements.html' title='Why not interact with advertisements?'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-7722873703150119581</id><published>2015-03-03T15:41:00.000-08:00</published><updated>2017-06-27T15:42:59.821-07:00</updated><title type='text'>Going with mandatory versioning soon</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Greetings API.AI Developers!&lt;/p&gt;

&lt;p&gt;We are announcing that &lt;strong&gt;starting June 1, 2015&lt;/strong&gt;, the versioning &lt;code&gt;v&lt;/code&gt; parameter will be mandatory in all api.ai calls. 
Introduction of the versioning support will allow us to add new functions and make improvements to api.ai that are not backwards compatible. We are using the approach proposed in &lt;a href=&quot;https://developer.foursquare.com/overview/versioning&quot;&gt;Foursquare API&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Couple of examples of such changes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Domains functionality that you might already have seen in the console&lt;/li&gt;
  &lt;li&gt;Enhancing the return formats for system entities. E.g. &lt;code&gt;@sys.date&lt;/code&gt; entity will be handling dates both in the future and in the past.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To use it, include &lt;code&gt;v=YYYYMMDD&lt;/code&gt; parameter when you make a request. For example, 
&lt;code&gt;
 https://api.api.ai/v1/query?v=20150330&amp;amp;query=weather&amp;amp;lang=en&amp;amp;sessionId=123
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Check out our &lt;a href=&quot;https://docs.api.ai/docs/versioning&quot;&gt;HTTP API documentation&lt;/a&gt; for more details.
If you have any questions, always feel free to &lt;a href=&quot;mailto:su%70p%6Frt@a%70i.%61i&quot;&gt;drop us a line&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;br&gt;
Team API.AI&lt;/p&gt;

    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/7722873703150119581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2015/03/going-with-mandatory-versioning-soon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/7722873703150119581'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/7722873703150119581'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2015/03/going-with-mandatory-versioning-soon.html' title='Going with mandatory versioning soon'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-7813680334276562971</id><published>2014-12-10T15:43:00.000-08:00</published><updated>2017-06-27T15:45:12.180-07:00</updated><title type='text'>Create Intents with System Entities</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;For your convenience, we have included pre-defined system entities.  We take care of common entities so that you don’t have to.  System entities include things such as countries, capitals, music artists/genres, times, dates, numbers, names, colors and more (you can find a list in the &lt;a href=&quot;https://docs.api.ai/docs/concept-entities#section-system-entities&quot;&gt;entity overview&lt;/a&gt;). When you use the system entities, there is variability included for incoming values (e.g. USA can be referred to as the States or the United States of America).&lt;/p&gt;

&lt;p&gt;A simple example is found below, where we are including a few system entities for an intent to travel.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVYAey7SlbEBMfljcObeFrWy04gweiiaX-yQgCD4YJ1t3A6ABQPcJEIRwAD3a_Ayns7gUirsmQdgiRYTC7gKKvXl1hebqUAZhcoOH8dEqxQCI9lagFT2xuEqBf8uyuSFZnnCh-HjZi5bf3/s1600/2014-12-10-user-says-1-92e894871933d1bcb3a604a94f5a937b.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;To make this intent even more robust, we can make some more improvements by using &lt;a href=&quot;http://api.ai/docs/getting-started/entity-overview.html#entity-types&quot;&gt;inline entities&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsrnpi3Zv9gj-FjGFasvHcZI2iUrYYX9ZmozNCO74Z1iToybUocaMuObqOBLdiQxc1gro8_2JAu9guMu_-iloJKD43eX8bu1w4E2E_eAmiFTWBaZwrYh-azC31EWpeOoSRMp2jLHN1x2xE/s1600/2014-12-10-user-says-2-a1528f7efae7e7726af949cbb013c359.png&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;Here, we are defining an inline entity that includes a broad set of US destinations that you can refer to.  We do this by using an inline entity format: “@{… , &lt;list of=&quot;&quot; different=&quot;&quot; entities=&quot;&quot;&gt; , ….}:alias”.  The intent defines two alisases - &quot;place&quot; and &quot;date&quot; - that will be returned to you in the JSON object. You can try it out by entering this example and saying something like: “I want to visit the Statue of Liberty on Jan 3rd”.&lt;/list&gt;&lt;/p&gt;

&lt;p&gt;Similarly, inline entity syntax is used to define a number of synonyms: “@{want to, wanna, have to}”.  Because there was no alias added at the end of this inline entity, nothing will be returned in the JSON.  This approach can be used to easily add multiple variations in one intent and reduce the number of user expressions that you need to provide.&lt;/p&gt;

&lt;p&gt;If you find that a system entity is missing - &lt;a href=&quot;http://api.ai/contacts/&quot;&gt;let us know&lt;/a&gt; and we will fix it!&lt;/p&gt;

    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/7813680334276562971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2014/12/create-intents-with-system-entities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/7813680334276562971'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/7813680334276562971'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2014/12/create-intents-with-system-entities.html' title='Create Intents with System Entities'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVYAey7SlbEBMfljcObeFrWy04gweiiaX-yQgCD4YJ1t3A6ABQPcJEIRwAD3a_Ayns7gUirsmQdgiRYTC7gKKvXl1hebqUAZhcoOH8dEqxQCI9lagFT2xuEqBf8uyuSFZnnCh-HjZi5bf3/s72-c/2014-12-10-user-says-1-92e894871933d1bcb3a604a94f5a937b.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-2341242544043358175</id><published>2014-12-02T15:45:00.000-08:00</published><updated>2017-06-27T15:46:07.612-07:00</updated><title type='text'>Toyota Hackathon</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Hackers from around the Valley gathered at NestGSV last month for the 2014 Toyota ITC Connected Vehicle Hackathon – a 24-hour marathon programming session that gave developers a taste of working with the new Toyota API. API.AI shined brilliantly alongside other veteran sponsors such as Twilio, Sensory, SmartThings, and Pebble, impressing competing hackers and industry-leading partners alike. Within the first hour of the competition, Sleek-Geek founder JeanCarl Bisson tweeted: “Already got @api_ai working at the #toyotahackathon14.  Very developer friendly!”&lt;/p&gt;

&lt;iframe src=&quot;https://www.youtube.com/embed/T8P07uduc4U&quot; width=&quot;500&quot; height=&quot;281&quot; frameborder=&quot;0&quot; align=&quot;center&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/embed/T8P07uduc4U&quot;&gt;Toyota ITC Connected Vehicle Hackathon&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user19873465&quot;&gt;NestGSV&lt;/a&gt; on &lt;a href=&quot;https://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In person, the story was the same. Developers went from merely curious to outright enthusiastic about working with api.ai, which opened up seemingly endless creative possibilities for the long night ahead. With the clock ticking, the soft chatter slowly dwindled down to a hush, as the initially animated competitors settled in and quietly coordinated how to take this year’s crown.&lt;/p&gt;

&lt;p&gt;By noon the next day (18 hours in), there was scarcely a word spoken among the exhausted hackers. Everyone was deep in the zone, fatigued but focused, and determined to power through. Out of 22 final submissions, over a third used api.ai, and the feedback from the developers was overwhelmingly positive. The judges had their work cut out for them, as the competition presented a wide range of unique and well-done integrations.&lt;/p&gt;

&lt;p&gt;But when all was said and done, one stood above the rest. We are delighted to announce the winner for the best integration with api.ai (and a cool $1,000): Anushree Pole with CarTalk. CarTalk highlighted complex dialog interaction scenarios that allowed the user to converse with the car, in natural language, regarding the vehicle’s fuel status and other important features. Anushree gave a clever, humorous personality to the car, which added yet another dimension of natural interaction to the user experience.&lt;/p&gt;

&lt;p&gt;“It was extremely easy to integrate api.ai in my Windows Phone App,” said Anushree. “The user interface for creating my queries was very intuitive. I was done integrating it in my app in an hour or so.”&lt;/p&gt;

&lt;p&gt;Among the other noteworthy submissions were Down, Her, Ok Toyota, HyperConnected Car, and the Toyota Connected Dashboard Team. Anna Shi, the creator of Down, also had high praise for api.ai’s voice interface. “Overall I thought the api was very intuitive and easy to use,” she said, listing among her favorite features:&lt;/p&gt;

&lt;p&gt;-Description of entities and intents&lt;/p&gt;

&lt;p&gt;-Quickstart guide was short and sufficient&lt;/p&gt;

&lt;p&gt;-Creating entities and intents were very intuitive&lt;/p&gt;

&lt;p&gt;-Plenty of sample code to get a simple project started.&lt;/p&gt;

&lt;p&gt;In the end, the competition was a tremendous success for everyone involved. We’d like to thank Toyota, NestGSV, all of the sponsors, hackers, and everyone who participated. Looking forward to the next big event!&lt;/p&gt;


    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/2341242544043358175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2014/12/toyota-hackathon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/2341242544043358175'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/2341242544043358175'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2014/12/toyota-hackathon.html' title='Toyota Hackathon'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/T8P07uduc4U/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-1491702878780824359</id><published>2014-11-19T15:46:00.000-08:00</published><updated>2017-06-27T15:47:26.371-07:00</updated><title type='text'>Comcast Developer Experience with api.ai</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Mike Fine (Comcast):&lt;/p&gt;

&lt;p&gt;“I recently used Speaktoit’s natural language processing API (www.api.ai) to build a voice- and text-chat web app that “knows about” television shows and television actors. The project was part of a Hack Week at Comcast’s Silion Valley Innovation Center.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil8v-gmU1k8Ac5BzmVX31TPlEQ3kSHx1rlZCOPPHJS7o8IxwI1m9tPEbMNqYF_d3v3Q1Cl-wq86SmNT-lTEZpo3me5JhUaBNNhqVLZenAkxszAboqNOtnlZ5wim5sgPfEtem-gK2E_IKz2/s1600/2014-11-19-comcast-ccbb93bc3b19b4f04bda315ad149a741.jpg&quot; width=&quot;100%&quot;&gt;&lt;/p&gt;

&lt;p&gt;In just over two days, I went from having never heard of Speaktoit or api.ai to a fully functional application that had an impressive set of features. Their website made it easy to sign up, discover my API keys, learn the key concepts of the system, and set up the “entities” (enumerated objects) and “intents” (commands) that form the core of my api.ai application. I was particularly impressed with how easy it was to manually test my entity and intent set up right from within their web application, without having to write any code. Once I got the core functionality of my app running, I used their REST API to programmatically create a thousand entities. Overall, their system was easy to learn, easy to use, and just plain worked.&lt;/p&gt;

&lt;p&gt;If you’re thinking about building an application that involves natural language processing (voice- or text-based), check out Speaktoit’s API.AI. You’ll have something impressive up and running in no time.”&lt;/p&gt;

&lt;p&gt;During the hackathon, Mike created an application that “knows about movies”.  Here is an example of how a user could interact with it:&lt;/p&gt;

&lt;p&gt;User: Show me movies with Brad Pitt&lt;/p&gt;

&lt;p&gt;App: Displays list of movies with Brad Pitt&lt;/p&gt;

&lt;p&gt;User: How about ones that also have Angelina Jolie?&lt;/p&gt;

&lt;p&gt;App: Brings up movies with both Brad Pitt and Angelina Jolie&lt;/p&gt;

&lt;p&gt;User: Nevermind. Show me comedies from 2002 to 2010.&lt;/p&gt;

&lt;p&gt;App: Displays list&lt;/p&gt;

&lt;p&gt;User: Ones with Louis CK&lt;/p&gt;

&lt;p&gt;App: Provides a list of comedies with Louis CK from 2002-2010&lt;/p&gt;

    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/1491702878780824359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2014/11/comcast-developer-experience-with-apiai.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/1491702878780824359'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/1491702878780824359'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2014/11/comcast-developer-experience-with-apiai.html' title='Comcast Developer Experience with api.ai'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil8v-gmU1k8Ac5BzmVX31TPlEQ3kSHx1rlZCOPPHJS7o8IxwI1m9tPEbMNqYF_d3v3Q1Cl-wq86SmNT-lTEZpo3me5JhUaBNNhqVLZenAkxszAboqNOtnlZ5wim5sgPfEtem-gK2E_IKz2/s72-c/2014-11-19-comcast-ccbb93bc3b19b4f04bda315ad149a741.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2369801675022358873.post-5297606465017610518</id><published>2014-10-27T15:49:00.000-07:00</published><updated>2017-06-27T15:50:11.897-07:00</updated><title type='text'>Getting Started in 3 Minutes</title><content type='html'>&lt;div class=&quot;entry&quot;&gt;
      &lt;p&gt;Here’s how to get started with &lt;a href=&quot;http://api.ai&quot;&gt;api.ai&lt;/a&gt; in 3 mins:&lt;/p&gt;

&lt;iframe width=&quot;480&quot; height=&quot;360&quot; src=&quot;http://www.youtube.com/embed/Om7tyGGemXI&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;1&quot;&gt; &lt;/iframe&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;We will be covering other functionality of api.ai in the upcoming videos. &lt;a href=&quot;https://support.api.ai/customer/portal/emails/new&quot;&gt;Let us know&lt;/a&gt; which tutorials / how-to’s you’d like to see next!&lt;/p&gt;

    &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://api-ai.blogspot.com/feeds/5297606465017610518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://api-ai.blogspot.com/2014/10/getting-started-in-2-minutes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/5297606465017610518'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/2369801675022358873/posts/default/5297606465017610518'/><link rel='alternate' type='text/html' href='https://api-ai.blogspot.com/2014/10/getting-started-in-2-minutes.html' title='Getting Started in 3 Minutes'/><author><name>API.AI</name><uri>http://www.blogger.com/profile/06436326609027817010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/Om7tyGGemXI/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>