ChatBots: Messenger ChatBot - DialogFlow and nodejs

Brought by: Udemy

Overview

Use DialogFlow to train chatbot to have dialogs. Develop backend app to connect chatbot to web services and databases

What you'll learn:
  • understand how chatbots work
  • build chatbots for Messenger
  • know how to create custom code to add flexibility to your chatbot
  • have in-depth knowledge of natural language processing with DialogFlow
  • know and use the fb messenger api
  • get information from the conversation
  • add persistent menu
  • use all the possible message types: text, images, video, quick replies, buttons, carousels,...
  • students will get a codebase that is easily extendable
  • have a chatbot that can be easily extended to connect to other APIs
  • add rich media messages in DialogFlow
  • have a chatbot that answers FAQ

Do you want to build a chatbot, so a bot that can talk? Yes, a bot that can talk to your friends or customers or fans while you sleep or do something else. You can make one for your customer that keep on asking the same questions. Or if you have a community for your fans and followers that want to know your details. Use your imagination, any time you have to reply the same thing over and over again, someone else like a bot can do it for you.

In the first part of the course, we'll make a chatbot without programming skills. We'll build a ChatBot that can answer frequently asked questions, and I'll show you how to teach your bot to have any other dialogs. We'll learn this by teaching our ChatBot to make job interviews.

We'll use DialogFlow to process natural language. DialogFlow will help the bot to understand what users want.

The chatbot will communicate to its customers via Facebook Messenger.

And in the second part, we'll use NodeJS to upgrade the bot. So the basic knowledge of javascript and NodeJS is needed.

With the new app, our bot will be able to remember things, that is, store information into a database or connect to other API services. With this, the bot will gain external knowledge and functionality.

And remember, I'LL BE THERE FOR YOU. I ANSWER EVERY QUESTION AND HELP EVERY STUDENT.

At the end of the course, you'll have a fully functional ChatBot. And you'll also know how to teach the bot to have other dialogs with customers. You'll know how to make a bot for yourself and other people.

My name is Jana Bergant, and I'm a developer with over 20 years of experience. I'm an IT instructor teaching people new tech skills. Over 17000 people are already taking my course.

I help all my students at every step of development. And I'll be here for you!


So if the predictions turn right, this will open up a new channel for businesses to reach a large audience. And here is a BIG OPPORTUNITY FOR YOU! Be one of the first people that know how to build chatbots. You can build it for your business or other people.

This course will show you how to create a ChatBot!


In the course, we use the latest version of DialogFlow. Also, I update videos regularly to stay up to date.

The last update of the course was on 27th February 2020

I added DialogFlow mega agents


Taught by

Jana Bergant

ChatBots: Messenger ChatBot - DialogFlow and nodejs
Go to course

ChatBots: Messenger ChatBot - DialogFlow and nodejs

Brought by: Udemy

  • Udemy
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • beginner
  • English, Spanish, Italian, Polish, Portuguese, Thai
8.1.2PHP Version283msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (176ms)
    • Application (106ms)
    • 1 x Booting (62.33%)
      176.15ms
      1 x Application (37.45%)
      105.83ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed11.92ms
      • select * from `courses` where `slug_en` = 'chatbots:-messenger-chatbot---dialogflow-and-nodejs' limit 1
        10.37ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. chatbots:-messenger-chatbot---dialogflow-and-nodejs
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-09 01:07:54' where `id` = 3718
        450μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-09 01:07:54
        • 1. 3718
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (95)
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (51) and `providers`.`deleted_at` is null
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 3709 limit 1
        500μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 3709
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        kdWIUBH1wgruaGd0yg16w6pGmAEAUUr0AxjR0LkQ
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/chatbots:-messenger-chatbot---dialogflow-...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/chatbots:-messenger-chatbot---dialogflow-and-nodejs
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.144.155.16" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "92d61c341e1ae990-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "3.144.155.16" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.144.155.16" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "92d61c341e1ae990-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "3.144.155.16" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "17654" "REMOTE_ADDR" => "172.70.100.136" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/chatbots:-messenger-chatbot---dialogflow-and-nodejs" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744160873.865 "REQUEST_TIME" => 1744160873 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Wed, 09 Apr 2025 01:07:54 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImRvN29wek5STW9hWkszUGEwUGNuWFE9PSIsInZhbHVlIjoiYmVxUng5bHBZQUZFSmdnc285eDJEb0tqRk15bjZSY3lYMHp0Sk4yVzlyVW42MFpaaXFMREEySkV6OFhZSm5YT0ZSQ3pKejR5aXVDZFo5NDNrMG5xQjU5WFV1K2VTMk5OUDR2bVhPTndtajUwbVRHKzJ2dStHdE9BVDlYS0VpMUgiLCJtYWMiOiJiZjM4OGNkMTNiMjM5YTE5ZGUyZjE0OWE5NWNmZTllYzAzOWYxZDE2ODdhYWVmMDkzZmFlMzA5NTUxMWQ0NzE2IiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 03:07:54 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImRvN29wek5STW9hWkszUGEwUGNuWFE9PSIsInZhbHVlIjoiYmVxUng5bHBZQUZFSmdnc285eDJEb0tqRk15bjZSY3lYMHp0Sk4yVzlyVW42MFpaaXFMREEySkV6OFhZSm5YT0ZSQ3pKe" 1 => "laravel_session=eyJpdiI6InN1dGJwaXRQMWlSSXVKR0RyRkhQU3c9PSIsInZhbHVlIjoiT05ZWEJucmNZazlGdURDYWlmcWNnekhabW8yYkNKYVBLaGFKWXVyZzJMWjFydG02NDZwSnRieCs5U21ZUmE5RzdFZzlzNDB0SElIZE11bi90S2NTUlhnYXc3czY1M2xWS3p2dmRoamdQOFRpeXo1N2tENWFsbThLWDVzRzAvWTkiLCJtYWMiOiIyMTJiNzZjNTA5MzkyNmFjNWQ4MGZhZTk2ZTU4N2JhZjRiNzk4NDA2MjllNjJkOWM0ZWZmYzY4ZGY5ZTljOTU0IiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 03:07:54 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InN1dGJwaXRQMWlSSXVKR0RyRkhQU3c9PSIsInZhbHVlIjoiT05ZWEJucmNZazlGdURDYWlmcWNnekhabW8yYkNKYVBLaGFKWXVyZzJMWjFydG02NDZwSnRieCs5U21ZUmE5RzdF" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImRvN29wek5STW9hWkszUGEwUGNuWFE9PSIsInZhbHVlIjoiYmVxUng5bHBZQUZFSmdnc285eDJEb0tqRk15bjZSY3lYMHp0Sk4yVzlyVW42MFpaaXFMREEySkV6OFhZSm5YT0ZSQ3pKejR5aXVDZFo5NDNrMG5xQjU5WFV1K2VTMk5OUDR2bVhPTndtajUwbVRHKzJ2dStHdE9BVDlYS0VpMUgiLCJtYWMiOiJiZjM4OGNkMTNiMjM5YTE5ZGUyZjE0OWE5NWNmZTllYzAzOWYxZDE2ODdhYWVmMDkzZmFlMzA5NTUxMWQ0NzE2IiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 03:07:54 GMT; path=/XSRF-TOKEN=eyJpdiI6ImRvN29wek5STW9hWkszUGEwUGNuWFE9PSIsInZhbHVlIjoiYmVxUng5bHBZQUZFSmdnc285eDJEb0tqRk15bjZSY3lYMHp0Sk4yVzlyVW42MFpaaXFMREEySkV6OFhZSm5YT0ZSQ3pKe" 1 => "laravel_session=eyJpdiI6InN1dGJwaXRQMWlSSXVKR0RyRkhQU3c9PSIsInZhbHVlIjoiT05ZWEJucmNZazlGdURDYWlmcWNnekhabW8yYkNKYVBLaGFKWXVyZzJMWjFydG02NDZwSnRieCs5U21ZUmE5RzdFZzlzNDB0SElIZE11bi90S2NTUlhnYXc3czY1M2xWS3p2dmRoamdQOFRpeXo1N2tENWFsbThLWDVzRzAvWTkiLCJtYWMiOiIyMTJiNzZjNTA5MzkyNmFjNWQ4MGZhZTk2ZTU4N2JhZjRiNzk4NDA2MjllNjJkOWM0ZWZmYzY4ZGY5ZTljOTU0IiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 03:07:54 GMT; path=/; httponlylaravel_session=eyJpdiI6InN1dGJwaXRQMWlSSXVKR0RyRkhQU3c9PSIsInZhbHVlIjoiT05ZWEJucmNZazlGdURDYWlmcWNnekhabW8yYkNKYVBLaGFKWXVyZzJMWjFydG02NDZwSnRieCs5U21ZUmE5RzdF" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "kdWIUBH1wgruaGd0yg16w6pGmAEAUUr0AxjR0LkQ" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/chatbots:-messenger-chatbot---dialogflow-and-nodejs" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]