# build your bot

- [Conversation design](https://docs.chatlayer.ai/buildabot/conversation-design.md): Conversation design is the action of creating and maintaining chatbots, or automated conversational agents. Chatlayer allows you to do that without any coding skills.
- [Plan your bot](https://docs.chatlayer.ai/buildabot/conversation-design/getting-started.md): Before you start building your bot on Chatlayer, there are a few strategic steps to consider. From defining the use cases to crafting a bot personality – here's how to get started.
- [Conversation design workflow](https://docs.chatlayer.ai/buildabot/conversation-design/conversation-design-workflow.md): Go over the bot design process step by step, from planning to publishing.
- [Flow logic](https://docs.chatlayer.ai/buildabot/flow-logic.md): Any conversation flow on Chatlayer is made by components called blocks, linked together by connections called Go-to's.
- [Blocks](https://docs.chatlayer.ai/buildabot/flow-logic/dialog-state.md): Blocks are the rectangles on your canvas that represent a certain place in the conversation.
- [Message](https://docs.chatlayer.ai/buildabot/flow-logic/dialog-state/message-components.md): The Message block displays text in basic form or with special components like buttons or carousels.
- [Condition](https://docs.chatlayer.ai/buildabot/flow-logic/dialog-state/plugins.md): A Condition block steers the conversation in a way or another if variables meet certain condition(s).
- [Collect input](https://docs.chatlayer.ai/buildabot/flow-logic/dialog-state/user-input-bot-dialog.md): A Collect input block can be used to get information from the user. When the user gives information, the bot will first check if the info corresponds to an already known variable.
- [Action](https://docs.chatlayer.ai/buildabot/flow-logic/dialog-state/action-bot-dialog.md): Action blocks are where 3rd-party, coding logic or special operations can be added to your bot.
- [Go-to connections](https://docs.chatlayer.ai/buildabot/flow-logic/go-to-connections.md): On Chatlayer, a Go-to connection means that one block will happen in the conversation just after the other. Go-to connections can be established in multiple ways.
- [Emulator](https://docs.chatlayer.ai/buildabot/emulator.md): Test your bot from your canvas to make sure it works as expected.
- [Tips & best practices](https://docs.chatlayer.ai/buildabot/tips-and-best-practices.md): Creating an effective chatbot requires attention and best practices. By following these tips and best practices, you can create a robust and user-friendly chatbot.
- [Route your flow depending on the time](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/route-your-flow-depending-on-the-time.md): Some examples on how to use Get time step in your bot.
- [Improve the Not understood block](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/improve-the-not-understood-block.md)
- [How to create better not understood messages](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/improve-the-not-understood-block/intent-recognition-below-threshold.md): By creating specific not understood messages, the bot seems smarter and gives users a much better experience.
- [Not understood counter](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/improve-the-not-understood-block/not-understood-counter.md): A good 'not understood' handling is key to a good bot experience. Learn how to set up this counter in the article below.
- [Not understood Google search](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/improve-the-not-understood-block/not-understood-google-search.md)
- [Go to previous block](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/go-to-previous-bot-dialog.md)
- [Recognizing a returning user](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/how-to-recognize-a-returning-bot-user.md)
- [Skip introduction message](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/skip-introduction-message.md)
- [Route your flow depending on the channel](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/route-your-flow-depending-on-the-channel.md): Use a Condition block to route your flow depending on the channel that your customer is using.
- [Reuse flows](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/reuse-flows.md)
- [Connect two bots to each other](https://docs.chatlayer.ai/buildabot/tips-and-best-practices/frequently-asked-questions.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chatlayer.ai/buildabot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
