One key reason: The technology that powers bots, artificial intelligence software, is improving dramatically, thanks to heightened interest from key Silicon Valley powers like Facebook and Google. That AI enables computers to process language — and actually converse with humans — in ways they never could before. It came about from unprecedented advancements in software (Google’s Go-beating program, for example) and hardware capabilities.
For designing a chatbot conversation, you can refer this blog — “How to design a conversation for chatbots.” Chatbot interactions are segmented into structured and unstructured interactions. As the name suggests, the structured type is more about the logical flow of information, including menus, choices, and forms into account. The unstructured conversation flow includes freestyle plain text. Conversations with family, colleagues, friends and other acquaintances fall into this segment. Developing scripts for these messages will follow suit. While developing the script for messages, it is important to keep the conversation topics close to the purpose served by the chatbot. For the designer, interpreting user answers is important to develop scripts for a conversational user interface. The designer also turns their attention to close-ended conversations that are easy to handle and open-ended conversations that allow customers to communicate naturally.

A chatbot (also known as a spy, conversational bot, chatterbot, interactive agent, conversational interface, Conversational AI, talkbot or artificial spy entity) is a computer program or an artificial intelligence which conducts a conversation via auditory or textual methods.[1] Such programs are often designed to convincingly simulate how a human would behave as a conversational partner, thereby passing the Turing test. Chatbots are typically used in dialog systems for various practical purposes including customer service or information acquisition. Some chatbots use sophisticated natural language processing systems, but many simpler ones scan for keywords within the input, then pull a reply with the most matching keywords, or the most similar wording pattern, from a database.