> ## Documentation Index
> Fetch the complete documentation index at: https://botpress-pb-update-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflows

export const GoodToKnow = ({children}) => {
  return <Callout icon="notebook-pen" color="#65d15a" iconType="regular">
      {children}
    </Callout>;
};

So far, we've only had our bot generate responses using AI. In practice, though, you might run into situations where you want your bot to perform some hard-coded logic.

In Studio, you can do this using *Workflows*. A Workflow is a drag-and-drop canvas that represents the steps your bot follows during a conversation with a user.

## Nodes

Each step in a Workflow is represented by a *Node*. Let's open the Main Workflow and take a look at its Nodes:

1. Go to the **<Icon icon="workflow" /> Workflows** section in the left sidebar.
2. Select your **Main** Workflow. It should look something like this:

<Frame>
  <img alt="Main Workflow" className="block dark:hidden" src="https://mintcdn.com/botpress-pb-update-api/p4207HaMDnDWz-I-/tutorial/basics/custom-logic/assets/main-workflow.png?fit=max&auto=format&n=p4207HaMDnDWz-I-&q=85&s=62a259539d7d1ebfabd36a4459a0c119" width="1312" height="562" data-path="tutorial/basics/custom-logic/assets/main-workflow.png" />

  <img alt="Main Workflow" className="hidden dark:block" src="https://mintcdn.com/botpress-pb-update-api/p4207HaMDnDWz-I-/tutorial/basics/custom-logic/assets/main-workflow-dark.png?fit=max&auto=format&n=p4207HaMDnDWz-I-&q=85&s=58e91521c70bfca204c731b28b9fb8e7" width="1312" height="562" data-path="tutorial/basics/custom-logic/assets/main-workflow-dark.png" />
</Frame>

The Main Workflow contains the main logic for your bot—it executes as soon as a user starts a new conversation. By default, it contains:

* A *Start Node*, which starts the conversation
* An *Autonomous Node*, which generates AI responses
* An *End Node*, which ends the conversation

<GoodToKnow>
  You may have noticed the Autonomous Node has an **Instructions** field with the same instructions we provided earlier. This is no coincidence! The settings on Studio's home screen are shortcuts to configure the Autonomous Node.
</GoodToKnow>

## Transitions

Notice the path connecting the Start Node and the Autonomous Node:

<Frame>
  <img alt="Transition" className="block dark:hidden" src="https://mintcdn.com/botpress-pb-update-api/p4207HaMDnDWz-I-/tutorial/basics/custom-logic/assets/transition.png?fit=max&auto=format&n=p4207HaMDnDWz-I-&q=85&s=89b04adc90aa7a5c60b1b1a3d4a8fde6" width="1230" height="408" data-path="tutorial/basics/custom-logic/assets/transition.png" />

  <img alt="Transition" className="hidden dark:block" src="https://mintcdn.com/botpress-pb-update-api/p4207HaMDnDWz-I-/tutorial/basics/custom-logic/assets/transition-dark.png?fit=max&auto=format&n=p4207HaMDnDWz-I-&q=85&s=9c20f46aa238ba4c82436a6feaa54ada" width="1230" height="408" data-path="tutorial/basics/custom-logic/assets/transition-dark.png" />
</Frame>

This is a *transition*. It tells your bot:

> "When the conversation starts, go directly to the Autonomous Node."
