What is a fork block?
A fork block splits the conversation flow into two or more paths based on predefined conditions. The customer input received via a block is stored under a placeholder called "Block variables."
Conversation flows can take different paths, depending on the conditions set for these block variables.
The conditions used in Fork can involve the following variables:
- Block
- Global
- Local
For example, after a user selects a device and navigates to the problem section, they have to choose the type of problem. The options for the type of problems can be mapped to the customer's input in the following manner:
- Criteria 1: The input variable "@problem type" must be mapped with "Faulty display and Overheating battery." We can map this input variable "@problem type" to faulty display and overheating battery.
- Criteria 2: The input variable "@problem type" must be mapped with "Faulty camera".
- Criteria 3: The input variable "@problem type" must be mapped with "Broken screen".
Each problem will lead to a different path, so based on the customer's input, they will be directed to the appropriate direction.
- Personalized user experience: The fork block allows for tailored responses, guiding users down different paths based on their input or preferences, creating a more personalized interaction.
- Dynamic conversations: By splitting the conversation into multiple paths, the chatbot can handle complex scenarios, making the conversation flow more adaptive and responsive to user needs.
- Efficient problem solving: It enables the chatbot to make decisions based on predefined conditions, helping users reach the right solution or action faster.
- Versatile use cases: It supports a variety of applications, from simple cases to complex scenarios like branching based on user data or behavior, increasing the bot's functionality.
- Improved user engagement: By guiding users through relevant paths, the fork block helps maintain user engagement by ensuring the conversation stays relevant and meaningful.
Steps to create a fork block
1. Click the add block icon (+)
2. Choose Fork under the Action section.
3. Add a unique name for the block in the Block name field.
4. Add Path Name.
5. Create a Criteria as required.
- Choose a variable.
- Select the required operation.
Available operation includes: =, <>, <, <=, >, >=, is empty, is not empty.
6. Click the (+) icon to add multiple criteria to the same path, if required. You can add the path name as "else" or whatever you prefer.
7. You can add multiple paths by clicking Add Path.
8. Click Save.
Steps to edit a fork block
You can edit a fork block whenever required, even after the flow is published or in the drafts section, by following these steps:
1. Open the flow and click Edit.
2. Click the Fork Block, which you may have named differently.
3. Choose Edit Block from the displayed options.
4. Make the required changes to the block and click Save.
5. Click Save.
6. Publish the flow.
Fork block
Field | Mandatory field | Character limit | Additional details |
Block name | Yes | 100 | <, >, ", ' , are not allowed |
Path | Yes | Count = 50 | |
Name | Yes | No max length is defined | Allowed characters: 0-9, a-z, A-Z, _ - ( ) . : ‘ ! / Space |
Criteria | Yes | Count = 5 | |
Right variable | Yes | 200 | Can be a string or number |
Else path | No | - | - |
Else Path Name | Yes (If 'Else path' is enabled) | No max length is defined | Allowed characters: 0-9, a-z, A-Z, _ ( ) , - . $ @ ? : ’ / ! Space Tab Newline |
Validation Error Message | No | 10000) | Malicious attack scripts are checked and removed if present |
Steps to copy the fork block
The copy block option can be used when you need to reuse a block that you previously created; you can copy that block and add it to your flow as it is or edit it according to the requirement.
1. Click the Fork Block you wish to copy.
2. Choose the Copy Block option. The block will be pasted on the clipboard.
3. When you require to paste that block, click the Add block icon (+).
4. Make any required edits, then click Paste.
To be noted while copying a fork block:
- The copied fork block can be pasted multiple times. If you no longer need to paste it, you can clear the clipboard by clicking the close icon corresponding to the clipboard option.
- When copying an existing fork block, all of its content, including any variables, will be copied as is. You can edit it as needed before adding it to the flow. Since the names of each block must be unique, the word '_copy' will be added to the copied blocks automatically; this can be changed if required.
- If you have copied a block and it is in the clipboard, deleting the copied block later will also remove it from the clipboard.
Steps to delete a fork block
1. Open the flow and click Edit.
2. Click the Fork block, which you may have named differently.
3. Select Delete from the displayed options.
4. Click Yes, Delete it to confirm.
You can use the undo option to restore a deleted block as your following action, but not otherwise.
5. Click Save.
6. Publish the flow.
To be noted while copying a fork block:
- If you delete a fork block while an end user is engaged in a live session with the bot, the previous version of the flow will be rendered until they restart the conversation.
- After making changes, you will need to publish the flow for those changes to be reflected in an end user's session.
- If the deleted block has dependencies, such as those given below, errors will be displayed.
Path below the block:
If the block was used to jump to a different flow:

Use case
Zorro Tours is providing a kayaking experience with a maximum of ten participants. If the user chooses a number more than 10, the user has to be shown that it isn't allowed. This can be achieved in the GC bot through the fork block.
Supported channels
The fork block is supported in the following channels:

If you exceed the limit of 500 blocks in a flow, you have a couple of options to continue building the flow:
- You can create a new flow and use a jump block to connect both flows.
- You can also remove any unnecessary blocks or paths to free up space within the existing flow.