diff --git a/apps/viewer/src/features/chat/api/sendMessage.ts b/apps/viewer/src/features/chat/api/sendMessage.ts index bf1b21e12..138ba6d33 100644 --- a/apps/viewer/src/features/chat/api/sendMessage.ts +++ b/apps/viewer/src/features/chat/api/sendMessage.ts @@ -66,7 +66,6 @@ export const sendMessage = publicProcedure state: newSessionState, }) : await saveStateToDatabase({ - isFirstSave: true, session: { state: newSessionState, }, diff --git a/packages/bot-engine/saveStateToDatabase.ts b/packages/bot-engine/saveStateToDatabase.ts index e384dea36..9cfb46cf3 100644 --- a/packages/bot-engine/saveStateToDatabase.ts +++ b/packages/bot-engine/saveStateToDatabase.ts @@ -7,19 +7,19 @@ import { createSession } from './queries/createSession' import { deleteSession } from './queries/deleteSession' type Props = { - isFirstSave?: boolean session: Pick & { id?: string } input: ChatReply['input'] logs: ChatReply['logs'] clientSideActions: ChatReply['clientSideActions'] + forceCreateSession?: boolean } export const saveStateToDatabase = async ({ - isFirstSave, session: { state, id }, input, logs, clientSideActions, + forceCreateSession, }: Props) => { const containsSetVariableClientSideAction = clientSideActions?.some( (action) => action.expectsDedicatedReply @@ -35,7 +35,9 @@ export const saveStateToDatabase = async ({ } const session = - id && !isFirstSave ? { state, id } : await createSession({ id, state }) + id && !forceCreateSession + ? { state, id } + : await createSession({ id, state }) if (!resultId) return session diff --git a/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts b/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts index 56885fb6d..e3d6db25f 100644 --- a/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts +++ b/packages/bot-engine/whatsapp/resumeWhatsAppFlow.ts @@ -98,7 +98,7 @@ export const resumeWhatsAppFlow = async ({ }) await saveStateToDatabase({ - isFirstSave: !session, + forceCreateSession: !session && isDefined(input), clientSideActions: [], input, logs,