diff --git a/packages/bot-engine/src/walkFlowForward.ts b/packages/bot-engine/src/walkFlowForward.ts index f7c4e3e4a..54541dde8 100644 --- a/packages/bot-engine/src/walkFlowForward.ts +++ b/packages/bot-engine/src/walkFlowForward.ts @@ -119,7 +119,7 @@ export const walkFlowForward = async ( } while ( nextEdge || (!input && - !clientSideActions.some((ca) => ca.expectsDedicatedReply) && + !isDedicatedReplyNeeded({ clientSideActions, messages }) && (newSessionState.typebotsQueue[0].queuedEdgeIds?.length || newSessionState.typebotsQueue.length > 1)) ); @@ -135,6 +135,17 @@ export const walkFlowForward = async ( }; }; +const isDedicatedReplyNeeded = ({ + clientSideActions, + messages, +}: { + clientSideActions: ContinueChatResponse["clientSideActions"]; + messages: ContinueChatResponse["messages"]; +}) => + // Either a client side action expects a dedicated reply or the last message is an embed which means it waits for an event + clientSideActions?.some((ca) => ca.expectsDedicatedReply) || + messages.at(-1)?.type === BubbleBlockType.EMBED; + type ContextProps = { version: 1 | 2; state: SessionState;