> ## Documentation Index
> Fetch the complete documentation index at: https://botpress-ak-docs-20-document-updating-variables-from-outsid.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-ak-docs-20-document-updating-variables-from-outsid/e8kcWWwkIMr2LAPw/tutorial/basics/custom-logic/assets/main-workflow.png?fit=max&auto=format&n=e8kcWWwkIMr2LAPw&q=85&s=aacfc41afdc6b40ddeb61558c9f4f295" 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-ak-docs-20-document-updating-variables-from-outsid/e8kcWWwkIMr2LAPw/tutorial/basics/custom-logic/assets/main-workflow-dark.png?fit=max&auto=format&n=e8kcWWwkIMr2LAPw&q=85&s=4784756a7458ccbc75ed356c13dd630d" 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-ak-docs-20-document-updating-variables-from-outsid/e8kcWWwkIMr2LAPw/tutorial/basics/custom-logic/assets/transition.png?fit=max&auto=format&n=e8kcWWwkIMr2LAPw&q=85&s=97b79d7ab7e398e2ca500a394c4e1faf" 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-ak-docs-20-document-updating-variables-from-outsid/e8kcWWwkIMr2LAPw/tutorial/basics/custom-logic/assets/transition-dark.png?fit=max&auto=format&n=e8kcWWwkIMr2LAPw&q=85&s=04a6c4554f6c7665495d557406a0508c" 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."
