Plugging in your Bot - An extensible bot framework for Drupal 8

Plugging in your Bot - An extensible bot framework for Drupal 8

Presentation at DrupalCon 2017 Baltimore

A64c4ca5f775360dee0a3b6244a9a4df?s=128

Rafael Silva

April 25, 2017
Tweet

Transcript

  1. Plugging in your Bot An extensible bot framework for Drupal

    8
  2. Who we are & @rfsbsb @ezufelt

  3. We build the right thing, fast. @myplanetHQ

  4. PREMISES • This talk is not about AI • This

    talk is about chatbots, Drupal and the end user • This talk is also about extending Drupal with plugins
  5. WHAT ARE WE GOING TO COVER? • Chatbot overview •

    Common use cases for chatbots • Current state of chatbots and Drupal • Our implementation • Demos • Future for chatbots and Drupal
  6. What are chatbots?

  7. A chatbot is a service, powered by rules and sometimes

    artificial intelligence, that you interact with via a chat interface. “ Chatbot Magazine
  8. Common use cases

  9. EXAMPLES OF CHATBOTS • Weather/forecast (HiPoncho Facebook bot) • Survey

    (Surveybot) • Todo list (Todobot) • News (CNN Facebook bot) • Catalog/buying options (Nordstrom bot) • Just chat (Xiaoice)
  10. Chatbots and Drupal

  11. CHATBOTS AND DRUPAL • Bot • AIML Parser • Facebook

    Messenger Bot
  12. Enter the Chatbot module

  13. THE CHATBOT MODULE • Drupal 8 • Forked from Whitehouse’s

    Facebook Messenger Bot module • It’s extensible through the Plugin API • Comes with 2 plugins: Facebook and Slack
  14. COMPONENTS OF A CHATBOT • Message Type • Messages •

    Steps • Workflows
  15. Message Types Buttons Text Image Decision Video

  16. Step

  17. Workflow

  18. DEMO

  19. EXTENDING THE CHATBOT MODULE • You will implement a plugin

    using Plugin API • Your message types • The service (i.e how to talk to your chat provider) • The workflow
  20. A CHATBOT PLUGIN EXAMPLE /** * Facebook Chatbot implementation. *

    * @ChatbotPlugin( * id = "chatbot_facebook", * title = @Translation("Facebook Chatbot") * ) */ class ChatbotFacebook extends ChatbotPluginBase implements ChatbotPluginInterface { … public function challenge() { return $this->service->challenge(); } public function parsePostData(Request $request) { return $request->getContent(); } }
  21. DEMO II

  22. FUTURE IMPROVEMENTS • There’s room for code refactoring • Add

    new message types • Integration to AI services (Amazon Lex / IBM Watson / Microsoft Luis / wit.ai / api.ai)
  23. #drupalsprints Friday, April 28, 2017 Mentored Core Sprint
 9:00am-12:00pm
 Room:301-303

    General Sprints
 9:00am-6:00pm
 Room:309-310
  24. THANK YOU! WHAT DID YOU THINK? Locate this session at

    the DrupalCon Baltimore website: http://baltimore2017.drupal.org/schedule Take the survey https://www.surveymonkey.com/r/ drupalconbaltimore https://goo.gl/9s1OiM