AtlasCustomer portalAPI DocumentationGo to Atlas
Help Center›Admin Setup (For Admins)›Chatbots & workflows›Learn about blocks in chatbots/workflows

Learn about blocks in chatbots/workflows

Last updated October 12, 2026

Who can use this feature?
Admins and Agents. Viewers can only view chatbots.

Overview

Blocks are the building steps of every chatbot and workflow. Each block does one job, such as sending a message, collecting information, creating a ticket or deciding which path to follow next. This article explains every block type and its settings.

Related articles:
•  Chatbots overview: What chatbots and workflows are and how they run.
•  How to configure a chatbot/workflow: Connect, edit, duplicate and delete blocks.
•  How to create and manage API templates: Set up the templates used by the "API" block.

How to add and set up basic blocks

  1. Go to  "Chatbots"  and open a chatbot or workflow.
  2. Drag a block onto the canvas.
  3. Configure the block settings described below.
  4. Connect the block's branches to the next blocks.

Block types at a glance

CategoryBlocksUse it to
StartStart blockDefine how the chatbot or workflow begins.
Messaging"Send message", "User message", "Give choices", "Create form", "Dynamic choices"Talk to the customer and collect information.
Ticket"Create ticket"Escalate to your team with a ticket.
Help center"Show articles"Share Help Center articles in the chat.
Branching"By business hours", "Add delay", "By customer segment", "By URL", "Code branching"Route or pace the conversation.
Workflows"Call Workflow", "Code", "API"Reuse workflows, run code or call external services.

Block details

Select a category to see what each block does and how to set it up.

StartMessagingTicketHelp centerBranchingWorkflows

Every new chatbot or workflow includes a start block. It is the entry point of the flow, so connect it to your first block. Click "Edit settings" on the block to open the setup:

  • Chatbot start block: Opens the "Chatbot setup" with the trigger, audience and display settings.
  • Workflow start block: Opens the "Workflow setup" with the "Name" and "Key". If the workflow is called from another workflow or chatbot, the "Parent Workflow" name also appears.

Send message

Sends a message to the customer. Click "Add Message" to open the composer, where you can format text and add canned responses and variables such as {{chatbot_input.var1}}.

User message

Waits for the customer to send a message, for example to answer a question asked in a previous block.

To handle customers who don't reply, click the ellipsis icon on the block, select "Add Timeout" and enter the number of minutes. A second branch is added and is followed if the customer doesn't respond in time.

Give choices

Shows options the customer can select. Click "Add choice" to add each option; each choice gets its own branch. You can reorder and delete choices.

Important:
Keep the number of choices small so they fit the chat widget and don't overwhelm customers.

Click "Update Mappings" to save the selected choice to a ticket, customer or account field. For example:

  • Question: Which feature has issues?
  • Choices: Segments, Reports, Session Recording
  • Mapping: Response → Ticket.Product

If the customer selects Reports, Ticket.Product is set to Reports.

Important:
Mappings only apply to tickets created within the same flow.

Create form

Shows a form with several input fields. Click "Add input" and select the field type:

TypeWhat the customer sees
"Text"A short, single-line box, for example for a name.
"Textarea"A large box for long answers or comments.
"Email"A box that expects an email address.
"Phone"A box for phone numbers.
"List"A list of options you define. Click "Add choice" to add each one.
"Boolean"A Yes/No checkbox.
"File"An upload for a document or image.
"Date"A calendar to pick a date.
"Date Time"A calendar and time picker.

All inputs are required by default. To make one optional, click the ellipsis icon on the input and select "Make this field optional". You can reorder and delete inputs.

Click "Update Mappings" to save each answer to a ticket, customer or account field. For example:

InputMapped field
What is your full name? (Text)Customer.FullName
What is your email address? (Email)Customer.email
Please describe your issue (Textarea)Ticket.description
Important:
Mappings only apply to tickets created within the same flow.

Dynamic choices

Shows choices taken from a variable instead of a fixed list. Enter a "Title" and the "Variable" that holds the options. For example, with the title "Which office do you need help with?" and the variable Account.office_locations (London, New York, Tokyo), the customer sees those three offices and is routed down the path of the one they select.

Important:
The variable must reference a multi-value field, such as a list field.

Create ticket

Creates a ticket when the conversation needs your team. You can set the "Channel", "Status", "Assign team", "Assign agent", "Priority" and "Tags", plus the "Subject", "Initial Customer Message", "Initial Customer Attachments" and the "Response to Customer". You can also set any ticket property or custom field.

Important:
"Create ticket" is an end block. The chatbot or workflow stops after it.

Show articles

Shows the Help Center articles you choose. Customers see them as options in the chat and can read them there or in the Help Center. You can reorder and delete articles.

By business hours

Splits the flow into a "During business hours" branch and an "Outside business hours" branch. Click "Set up business hours" to change your Atlas business hours. For example, route customers to an agent chat during the day and to email support at night.

Add delay

Pauses the conversation before moving to the next block. Enter a number and select the unit: "Seconds", "Minutes", "Hours" or "Days". Use it to give the conversation a more natural pace.

By customer segment

Adds a branch per customer segment. Click "Add segment" and select a segment; customers who match it follow its branch. An "All other" branch is added automatically for customers who match no segment. You can reorder and delete segments.

For example, send VIP customers straight to an agent while others go through an automated flow.

By URL

Adds a branch per page of your website, based on the URL where the customer is chatting. Click "Add URL" to add each URL. An "All others" branch is added automatically for any other page. For example, show promotional articles on your store home page and troubleshooting articles on your help center.

Code branching

Runs a short JavaScript function to decide which path to take. The function receives context (the conversation) and customer (customer data), and returns the label of the branch to follow, for example return "VIP".

  1. Click "Edit configuration" and edit the code.
  2. Click "Add Output" for each value your code can return. Each output becomes a branch.
  3. Click "Confirm".

If the code fails, for example because of a typo, the flow follows the error branch. Connect it to a safe fallback, such as an agent.

Call Workflow

Runs an existing workflow inside the current chatbot or workflow. It looks like a single block but runs all the steps of the selected workflow. Select it in "Select Workflow".

Important:
Only "Published" workflows can be selected.

Code

Runs custom JavaScript, for example to calculate values, change variables or format data. Click "Edit configuration", edit the code and click "Confirm". The code can use the conversation, customer and context data.

The block has two branches: one followed if the code runs without errors, and one followed if it fails.

API

Sends an HTTP request to an external service or internal database, for example to get an order status or send data to a CRM. The response can be saved in variables and used later in the conversation.

The block has two branches:

  • If the action succeeds: The API returns a success status code, such as 200 OK, and the flow continues with the saved variables.
  • If the action fails: The server is down, times out or returns an error. Connect this branch to a fallback, such as offering to try again later or routing to an agent.

How to configure advanced blocks

These blocks use variables, code or external data. Set them up after the basic flow works.

Dynamic choicesCode branchingCodeAPI
  1. Add a "Dynamic choices" block to the canvas.
  2. Enter the "Title", for example "Which office do you need help with?".
  3. In "Variable", enter the variable that holds the options, for example Account.office_locations.
  4. Connect the block to the next steps of the flow.
Important:
The variable must reference a multi-value field, such as a list field.
  1. Add a "Code branching" block and click "Edit configuration".
  2. Edit the code so it returns the label of the branch to follow, for example return "VIP".
  3. Click "Add Output" for each value your code can return. Each output becomes a branch.
  4. Click "Confirm".
  5. Connect each output, for example the VIP branch to a premium support path.
  6. Connect the failure branch to a safe fallback, such as an agent.
  1. Add a "Code" block and click "Edit configuration".
  2. Edit the JavaScript, for example to calculate a value or format data.
  3. Click "Confirm".
  4. Connect the success branch to the next step of the flow.
  5. Connect the failure branch to a fallback.
Important:
You need an API template first. Create it in "App Configuration > Data > API templates".
  1. Add an "API" block and click "Configure".
  2. In "Select API", select an API template. To change its HTTP method, headers or payload, click "Edit API template".
  3. Under output variables, click "Add" to save part of the response:
    • Expression: The JSONPath to the value you need, for example $.body.customer.name.
    • Variable: The name of the variable that stores it. You can use it in later messages.
  4. Click "Add" again to save more values from the same response, for example a tracking number and a delivery date.
  5. Click "Save".
  6. Connect the success branch, and connect the failure branch to a fallback, such as offering to try again later or routing to an agent.

FAQs & Troubleshooting

What is the difference between "Code branching" and "Code"?

"Code branching" decides where the customer goes next: it returns the label of one of your branches. "Code" processes data, such as calculations or formatting, and only has a success branch and a failure branch.

My workflow doesn't appear in the "Call Workflow" block.

Only published workflows appear. Go to  "Chatbots" , click the ellipsis icon on the workflow and select "Publish".

Form or choice answers are missing from the ticket or customer.

Check that "Update Mappings" is set on the block and that the flow ends in a "Create ticket" block. Mappings only apply to tickets created within the same flow.

The "Dynamic choices" block shows no options.

The variable must point to a multi-value field, such as a list field, and that field must have values for the customer.

Customers get stuck on a "User message" block.

Add a timeout: click the ellipsis icon on the block, select "Add Timeout" and connect the new branch, for example to a follow-up message.

Every customer goes down the "All others" branch of "By URL".

Make sure each URL matches exactly what appears in the browser address bar, including https://.

Was this article helpful?