Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Rafael Silva

April 25, 2017
Tweet

More Decks by Rafael Silva

Other Decks in Programming

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