During a conversation with a client, a problem may arise where they either don’t complete the target action or get stuck in the last block of the funnel, and the chatbot doesn’t respond to their actions. To prevent this, you can set up an automatic transfer of the client to another block without creating duplicate movement paths.
How to automatically move a client through the funnel?
As an example of automatically moving a client through the funnel, we’ll use a simple chatbot flow that asks the user whether they will attend an event:

From the example (Fig. 1), you can see that the client moves further down the funnel only if they click the “Yes!” button sent by the penultimate block. (In other cases, the trigger to continue down the funnel can be practically anything, depending on your chatbot flow conditions.)
In this example (Fig. 1), the client Nastya decided not to click the button in the chatbot, so the conversation got stuck in the penultimate block of the funnel:

To solve this issue, you need to take a couple of simple steps in your flowchart: to continue the dialogue with the client or move them through the funnel after a certain amount of time (for example, after n minutes), draw an additional arrow from the penultimate block and set the time delay after which the client will automatically proceed to the next block in the funnel.

Now, set a timer with the desired time interval in the arrow settings, so that the client automatically moves to the next block:

Be sure to activate the “Cancel if block is left” toggle (Fig. 3) to prevent the message from being sent again after the timer expires if the client has already moved to the next block (for example, by clicking a button).

The example above shows that the bot automatically moves the client through the funnel and sends the final message—even if they didn’t click the button.
Now, with the help of the second arrow with the set timer, the client will be moved further along the funnel after a certain period of time.
How to move a client from the last block to another block?
In the flowchart (Fig. 4), you can see that the penultimate block determines which block your client will enter, depending on the button they press in the block with two branches:

If the client clicks one of the two buttons, they will stop in the last block and won’t be able, for example, to return to the previous block and choose a different option when needed. The chatbot simply won’t respond to pressing another button because the user has already moved to the last block, which doesn’t allow further movement through the funnel (see the example below).

In this case, you can solve the problem in two ways:
- Using the “Not State” block — this function keeps the client in the block with the button choices without moving them to the next blocks.
- Using callback buttons — this function moves the client to the next blocks but still allows them to change their choice if they are not satisfied with the result.
The “Not State” block
The “Not State” block is a gray block. Unlike the “Dialog State” block, it has no conditions, and clients cannot be moved into it directly.
In our flow, the “Not State” block is perfect because the user won’t leave the penultimate block and can press a different button if they’re unhappy with their first choice.
To set this up, go to the funnel builder and select the block type “Not State” (don’t confuse it with “Not State with condition”).

Now our flowchart looks like this:

To test that the flow works properly, open the bot tester. There, you’ll see that any button can be pressed regardless of the client’s previous choice:

Callback buttons
If you do need the client to move further along the funnel and transition to other blocks, the callback button functionality will help.
To do this, remove the arrows leading to the final blocks in the flowchart and set those blocks’ type to “Primary condition check”:

Let’s go to the button settings within the block:

The settings window for the “Yes!” button will open. Here, do the following:
- Select the button type “Callback button”
- In the response message text, enter the words or phrases needed for the condition field in the “Primary condition check” block.

Set up the second button in the same way (in our flow, this is the "No" button).
Use different texts/phrases for the “response message text” fields in the button settings within the same project to avoid chatbot errors.
Next, go to the settings of the Primary condition check blocks, where you need to enter the words you typed in the “response message text” field, using the match type “Exact match”:

Set up the second block for the “No” button in the same way.
This way, you’ve learned how to automatically move a client through the funnel using three different methods.