# Tutorials

In this section we list all developer tutorials available for the Tiledesk platform.

Having all the tutorials listed in a single page is a good way to get a global vision of all the amazing things that you can do with Tiledesk.

## Connect Telegram Channel Tutorial

![Telegram integration](https://user-images.githubusercontent.com/45603238/175036688-f26d0efe-3150-425b-bab2-6ca07b63adf6.png)

This integration allows you to connect your company's Telegram bot to your Tiledesk account, thus creating a tunnel between the two platforms. Therefore customers can reach your support simply by writing to your Telegram bot and these messages will be delivered to the Tiledesk webchat, along with messages from other channels.

[Telegram integration Tutorial](https://developer.tiledesk.com/apps/telegram-integration)

## Custom Authentication Tutorial

![](https://user-images.githubusercontent.com/32564846/171562770-2c161497-ad36-4490-87d8-4e1fcdd203b7.png)

This tutorial will guide you to a deep look of Tiledesk custom (and secure) [JWT authentication](https://developer.tiledesk.com/apis/authentication) for your end-users. This tutorial is a fully-functional, full-stack application (backend+frontend) deployed on replit with nodeJS (backend) and HTML+Javascript (frontend).

[Custom authentication Tuturial](https://developer.tiledesk.com/apis/authentication/jwt-auth-tutorial)

To get a taste of the final result you can find the live web application up and running at this url:

<https://tiledesk-html-site.tiledesk.repl.co/custom-authentication-example.html>

## Hide Widget tutorial

A very simple tutorial to hide the widget when no agent is available. Good to learn the basics of Widget SDK (and some Tiledesk APIs too).

[Widget - Hide widget](https://developer.tiledesk.com/widget/tutorials/hide-widget)

## Conversation-embedded apps, Quick start

A quick start, introductory tutorial to *conversation-embedded* apps. You will learn how to implement a basic conversation-embedded application. It's a skeleton App that will show you the basic principles, architecture and APIs involved in the development of a simple conversation-embedded application.

[Widget - Payment App Tutorial](https://developer.tiledesk.com/widget/widget-app-introduction/widget-app-payment)

![Conversation-embedded apps - Quick start](https://user-images.githubusercontent.com/32564846/165598879-26373df7-d254-4174-bf2a-73638999de15.png)

## Conversation-embedded apps, *prechat form* during chat

Do you want a more customizable *prechat form*? Do you want the user to play with your chatbot and ask his personal data only when needed (i.e. during human handoff)? With this tutorial you'll learn how to setup a minimum and fully functional prechat form that appears in the conversation only when the user is bored with your chatbot and would like to chat with a human!

[Prechat form App Tutorial](https://developer.tiledesk.com/widget/widget-app-introduction/widget-app-prechat-form)

![In-conversation Prechat form](https://user-images.githubusercontent.com/32564846/165599748-fbc56e72-de48-4347-9a17-0712a2d29d89.png)

## External Chatbots Tutorials

* [External Chatbot - Hello World tutorial](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/connect-your-own-chatbot.md)
* [External Chatbot - Chatbot to Human handoff](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/agent-handoff.md)
* [External Chatbot - Send Text Buttons](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/buttons-media-actions-more.md)
* [External Chatbot - Advanced Tutorials](https://github.com/Tiledesk/tiledesk-docs/blob/master/external-chatbot/external-chatbot-tutorials/README.md)
* [External Chatbot - Introduction](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/dialogflow/introduction-dialgoflow-external.md)
* [External Chatbot - Tutorial 1 - Dialogflow as external chatbot](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/dialogflow/dialogflow-as-external-chatbot-integration.md)
* [External Chatbot - Tutorial 2 - Buttons and images](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/dialogflow/dialogflow-tutorial-2-micro-language-integration.md)
* [External Chatbot - Tutorial 3 - Automatic human handoff with fallback intent](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/dialogflow/dialogflow-tutorial-3-automatic-human-handoff.md)
* [External Chatbot - Tutorial 4 - Explicit Human handoff with user intent](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/dialogflow/dialogflow-tutorial-4-explicit-human-handoff.md)
* [External Chatbot - Tutorial 5 - Gracefully handling operating hours during handoff](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/dialogflow/dialogflow-tutorial-5-graceful-human-handoff.md)
* [External Chatbot - Generate Dialogflow Google Credentials file](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/dialogflow/generate-dialgoflow-google-credentials-file.md)
* [External Chatbot - Rasa Tutorial 1 - Rasa as external chatbot](https://github.com/Tiledesk/tiledesk-docs/blob/master/apis/tutorials/chatbot/rasa/rasa-as-external-chatbot-integration.md)

## Resolution Bot Tutorials

* [Resolution bot - Quickstart](https://github.com/Tiledesk/tiledesk-docs/blob/master/native-chatbot/quickstart.md)
* [Resolution bot - Rich messages](https://github.com/Tiledesk/tiledesk-docs/blob/master/native-chatbot/rich-messages.md)
* [Resolution bot - Chatbot chooser (multilanguage)](https://github.com/Tiledesk/tiledesk-docs/blob/master/native-chatbot/lang-chooser-chatbot.md)
* [Resolution bot - Department chooser](https://github.com/Tiledesk/tiledesk-docs/blob/master/native-chatbot/department-chooser-chatbot.md)
* [Resolution bot - Fallback to Knowledge-Base](https://github.com/Tiledesk/tiledesk-docs/blob/master/native-chatbot/fallback-to-knowledge-base.md)

## REST APIs Tutorials

* [REST API](https://developer.tiledesk.com/apis/tutorials/rest-api)
* [REST API - Sending and receiving messages with Tiledesk APIs](https://developer.tiledesk.com/apis/tutorials/rest-api/sending-and-receiving-messages)

## Webhooks Tutorials

This section proposes a set of tutorial to show some common tasks you can address using this feature.

The main purpose of webhooks is call a user-defined action (in the form of an HTTP endpoint) when specific Tiledesk events occur.

The first tutorial [Custom Request assignment](https://developer.tiledesk.com/apis/tutorials/webhooks/custom-assignment-pooled) addresses an custom assignment every time a new request is moved to a Department's pooled routing schema.

The second tutorial [Request transcript on close](https://developer.tiledesk.com/apis/tutorials/webhooks/get-transcript-on-close) shows how you can get your chat transcript on each closing operation (i.e. for the purpose of sending it to your remote CRM to synchronize conversations)

* [Webhooks - Custom Request assignment](https://developer.tiledesk.com/apis/tutorials/webhooks/custom-assignment-pooled)
* [Webhooks - Request transcript on close](https://developer.tiledesk.com/apis/tutorials/webhooks/get-transcript-on-close)
