What are ChatBots and how they work
ChatBots are basically applications that you can build by using several programming languages, including these:
ChatBots are hosted on a server and accessed remotely through chatting platforms that they are connected to. Bots also need to be registered in Microsost Azure portal. They are quite easy to deploy and are very usefull, therefore not having one is a waste.
NOTE: We are talking about Botframework bots here, some other bots may not need an Azure registration.

You can interact with Chatbots through a number of different channels. In Botframework, channels are actually chatting platforms nad web chats. In order to use your bot on a channel, you have to registrate it to that channel in Azure Portal, as we mentioned before. We won’t get into details here since we have separate articles about bot development, Azure channel registration and many more.
Some of the channels that BotFramework supports are:
And many more. Plus, you can use one bot on more channels as well as multiple bots one one channel. You can find full list of channels on Microsoft documentation page.
How ChatBots work and what they do
Bots respond to your message by matching keywords, using language understanding and language generators to understand your message or using speech recognition. They can respond with a fixed sentance, HTML table, link, attatchment, media element and many more.
Bot sends these things as activities in Bot Framework SDK. An activity can be anything from the stuff we mentioned above. It’s up to you to write the logic behind sending those activities and to manage when each one will be sent.
ChatBot’s lifecycle
In the picture bellow you can see bot’s lifecycle which is constantly repeating. This lifecycle enables bots to constantly improove.

Design
Build
Test
Publish
Connect
Evaluate
From left to right: