Connecting Rasa Chatbot to External Platforms

Brought by: Coursera

Overview

In this 1-hour long project-based course, you will learn how to connect Rasa Chatbot to external platforms. We will first look at enable a encrypted connection (HTTPS) using a proxy server from Ngrok. We will then look at how to connect to Facebook Messenger using Facebook Developer Account. We will look at how to create custom buttons like quick replies and Carousel Cards for listing elements.

We will then move on to look at how to connect the chatbot to Telegram and how to customize buttons and add attachments to a response. Finally, we will also look like how to integrate the bot on the business communication platform Slack. By the end of the project, you will be able to connect your chatbot to external users on public platforms.


Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.

Syllabus

  • Project Overview
    • In this project, we will look at how to connect our Rasa Chatbot to external platforms. We will first look at how to connect to Facebook Messenger using Facebook Developer Account. We will look at how to create custom buttons like quick replies and Carousel Cards for listing elements. We will then move on to look at how to connect the chatbot to Telegram and how to customize buttons and add attachments to a response. Finally, we will also look like how to integrate the bot on the business communication platform Slack.

Taught by

Mohammed Murtuza Qureshi

Connecting Rasa Chatbot to External Platforms
Go to course

Connecting Rasa Chatbot to External Platforms

Brought by: Coursera

  • Coursera
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • intermediate
  • English
8.1.2PHP Version303msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (189ms)
    • Application (113ms)
    • 1 x Booting (62.43%)
      188.98ms
      1 x Application (37.33%)
      113.00ms
      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
      7 statements were executed7.14ms
      • select * from `courses` where `slug_en` = 'connecting-rasa-chatbot-to-external-platforms' limit 1
        4.34ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. connecting-rasa-chatbot-to-external-platforms
        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:27:16' where `id` = 1404
        740μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-09 01:27:16
        • 1. 1404
        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)
        750μ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)
        350μ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 `institutions` where `institutions`.`id` in (106) and `institutions`.`deleted_at` is null
        340μ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 `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        330μ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` = 1397 limit 1
        290μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1397
        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\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        DGS4A6qeQuf4OgcVu7UbvvLFfd6ie7Swy3v7jKgr
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/connecting-rasa-chatbot-to-external-platf...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/connecting-rasa-chatbot-to-external-platforms
        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 [ "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" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "priority" => array:1 [ 0 => "u=0, i" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-connecting-ip" => array:1 [ 0 => "3.141.104.233" ] "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" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.141.104.233" ] "cf-ray" => array:1 [ 0 => "92d63892bc34f15d-ORD" ] "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_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_CDN_LOOP" => "cloudflare; loops=1" "HTTP_PRIORITY" => "u=0, i" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_CONNECTING_IP" => "3.141.104.233" "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_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.141.104.233" "HTTP_CF_RAY" => "92d63892bc34f15d-ORD" "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" => "42768" "REMOTE_ADDR" => "172.70.131.116" "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/connecting-rasa-chatbot-to-external-platforms" "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" => 1744162035.8769 "REQUEST_TIME" => 1744162035 ]
        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:27:16 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlhGWVlSOWpCWWJxYUllakhuaXcvZnc9PSIsInZhbHVlIjoieHFOTmo0Q1lJQ3hBWFh2ZkJ2Z3JUaXF3Vmh2L2pKZkhXTTEwUVBPMTFVaEtVY2paM1ZMMktHWk0xQ2pXUi9FRm8rd1JvTkpYdVNwTXVZYWZESmo2NkxEa3M0c01obTMrR1psdEhabkl0YkVMNDN4dVl0OUNLQnU5TzUyOGJneFkiLCJtYWMiOiIwNTczZTkwZjQ5Y2I3YzAzOGI4NDhmMWFhNDgxZjMxNzY1NGI1OTVlOTA4NGFlOTA5NjcxNTQ2OTk2ZTQxMzE4IiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 03:27:16 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlhGWVlSOWpCWWJxYUllakhuaXcvZnc9PSIsInZhbHVlIjoieHFOTmo0Q1lJQ3hBWFh2ZkJ2Z3JUaXF3Vmh2L2pKZkhXTTEwUVBPMTFVaEtVY2paM1ZMMktHWk0xQ2pXUi9FRm8rd1JvT" 1 => "laravel_session=eyJpdiI6InRKTXkrYSt5L0ZKdisrdEE0d2srbkE9PSIsInZhbHVlIjoiZzZ2bWQwaUkxaS9aV0xsM3B5SEF5V0d0NkdmbnRvY0pIaGF3TXpMMEJIdERlbWJHVHpBSHJSdFgwQVZYT2JaK09hcVhWUWp2eGZmbEVXZUhtMmthLzg3REhtblRRb0Y1b2NoaUNIdkI0STFTeTB4LytjaHQ3dDFrWmtyZWRWMXkiLCJtYWMiOiI4NTM3Y2JmMGQxYmYwNWFmOWY3MjUxYWY3YjA4NjNjMWEwZWI3Y2E5MzQ5NDZjNjY4MzJhYmI0NTU1MmUzZWQzIiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 03:27:16 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InRKTXkrYSt5L0ZKdisrdEE0d2srbkE9PSIsInZhbHVlIjoiZzZ2bWQwaUkxaS9aV0xsM3B5SEF5V0d0NkdmbnRvY0pIaGF3TXpMMEJIdERlbWJHVHpBSHJSdFgwQVZYT2JaK09h" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlhGWVlSOWpCWWJxYUllakhuaXcvZnc9PSIsInZhbHVlIjoieHFOTmo0Q1lJQ3hBWFh2ZkJ2Z3JUaXF3Vmh2L2pKZkhXTTEwUVBPMTFVaEtVY2paM1ZMMktHWk0xQ2pXUi9FRm8rd1JvTkpYdVNwTXVZYWZESmo2NkxEa3M0c01obTMrR1psdEhabkl0YkVMNDN4dVl0OUNLQnU5TzUyOGJneFkiLCJtYWMiOiIwNTczZTkwZjQ5Y2I3YzAzOGI4NDhmMWFhNDgxZjMxNzY1NGI1OTVlOTA4NGFlOTA5NjcxNTQ2OTk2ZTQxMzE4IiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 03:27:16 GMT; path=/XSRF-TOKEN=eyJpdiI6IlhGWVlSOWpCWWJxYUllakhuaXcvZnc9PSIsInZhbHVlIjoieHFOTmo0Q1lJQ3hBWFh2ZkJ2Z3JUaXF3Vmh2L2pKZkhXTTEwUVBPMTFVaEtVY2paM1ZMMktHWk0xQ2pXUi9FRm8rd1JvT" 1 => "laravel_session=eyJpdiI6InRKTXkrYSt5L0ZKdisrdEE0d2srbkE9PSIsInZhbHVlIjoiZzZ2bWQwaUkxaS9aV0xsM3B5SEF5V0d0NkdmbnRvY0pIaGF3TXpMMEJIdERlbWJHVHpBSHJSdFgwQVZYT2JaK09hcVhWUWp2eGZmbEVXZUhtMmthLzg3REhtblRRb0Y1b2NoaUNIdkI0STFTeTB4LytjaHQ3dDFrWmtyZWRWMXkiLCJtYWMiOiI4NTM3Y2JmMGQxYmYwNWFmOWY3MjUxYWY3YjA4NjNjMWEwZWI3Y2E5MzQ5NDZjNjY4MzJhYmI0NTU1MmUzZWQzIiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 03:27:16 GMT; path=/; httponlylaravel_session=eyJpdiI6InRKTXkrYSt5L0ZKdisrdEE0d2srbkE9PSIsInZhbHVlIjoiZzZ2bWQwaUkxaS9aV0xsM3B5SEF5V0d0NkdmbnRvY0pIaGF3TXpMMEJIdERlbWJHVHpBSHJSdFgwQVZYT2JaK09h" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "DGS4A6qeQuf4OgcVu7UbvvLFfd6ie7Swy3v7jKgr" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/connecting-rasa-chatbot-to-external-platforms" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]