diff --git a/CHANGELOG.md b/CHANGELOG.md index e306f3f3..eb3ad939 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,8 @@ * Chatwoot verbose logs * Adjusts on prisma connections * License terms updated -* fixed send message to group without no cache (local or redis) +* Fixed send message to group without no cache (local or redis) +* Fixed startTypebot with startSession = true # 2.1.1 (2024-09-22 10:31) diff --git a/src/api/integrations/chatbot/typebot/controllers/typebot.controller.ts b/src/api/integrations/chatbot/typebot/controllers/typebot.controller.ts index a6867e59..82bbe9f3 100644 --- a/src/api/integrations/chatbot/typebot/controllers/typebot.controller.ts +++ b/src/api/integrations/chatbot/typebot/controllers/typebot.controller.ts @@ -633,30 +633,19 @@ export class TypebotController extends ChatbotController implements ChatbotContr }); if (!findBot) { - findBot = await this.botRepository.upsert({ - where: { - url_typebot_instanceId: { - url: url, - typebot: typebot, - instanceId: instanceData.id, - }, - }, - update: { - enabled: true, - }, - create: { + findBot = await this.botRepository.create({ + data: { enabled: true, url: url, typebot: typebot, + instanceId: instanceData.id, expire: expire, - triggerType: 'none', keywordFinish: keywordFinish, delayMessage: delayMessage, unknownMessage: unknownMessage, listeningFromMe: listeningFromMe, stopBotFromMe: stopBotFromMe, keepOpen: keepOpen, - instanceId: instanceData.id, }, }); } @@ -669,51 +658,69 @@ export class TypebotController extends ChatbotController implements ChatbotContr }, }); - const response = await this.typebotService.createNewSession(instanceData, { - enabled: true, - url: url, - typebot: typebot, - remoteJid: remoteJid, - expire: expire, - keywordFinish: keywordFinish, - delayMessage: delayMessage, - unknownMessage: unknownMessage, - listeningFromMe: listeningFromMe, - stopBotFromMe: stopBotFromMe, - keepOpen: keepOpen, - prefilledVariables: prefilledVariables, - typebotId: findBot.id, - }); + await this.typebotService.processTypebot( + instanceData, + remoteJid, + null, + null, + findBot, + url, + expire, + typebot, + keywordFinish, + delayMessage, + unknownMessage, + listeningFromMe, + stopBotFromMe, + keepOpen, + 'init', + ); - if (response.sessionId) { - await this.typebotService.sendWAMessage( - instanceData, - response.session, - { - expire: expire, - keywordFinish: keywordFinish, - delayMessage: delayMessage, - unknownMessage: unknownMessage, - listeningFromMe: listeningFromMe, - stopBotFromMe: stopBotFromMe, - keepOpen: keepOpen, - }, - remoteJid, - response.messages, - response.input, - response.clientSideActions, - ); + // const response = await this.typebotService.createNewSession(instanceData, { + // enabled: true, + // url: url, + // typebot: typebot, + // remoteJid: remoteJid, + // expire: expire, + // keywordFinish: keywordFinish, + // delayMessage: delayMessage, + // unknownMessage: unknownMessage, + // listeningFromMe: listeningFromMe, + // stopBotFromMe: stopBotFromMe, + // keepOpen: keepOpen, + // prefilledVariables: prefilledVariables, + // typebotId: findBot.id, + // }); - this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, { - remoteJid: remoteJid, - url: url, - typebot: typebot, - prefilledVariables: prefilledVariables, - sessionId: `${response.sessionId}`, - }); - } else { - throw new Error('Session ID not found in response'); - } + // if (response.session) { + // await this.typebotService.sendWAMessage( + // instanceData, + // response.session, + // { + // expire: expire, + // keywordFinish: keywordFinish, + // delayMessage: delayMessage, + // unknownMessage: unknownMessage, + // listeningFromMe: listeningFromMe, + // stopBotFromMe: stopBotFromMe, + // keepOpen: keepOpen, + // }, + // remoteJid, + // response.messages, + // response.input, + // response.clientSideActions, + // ); + + // this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, { + // remoteJid: remoteJid, + // url: url, + // typebot: typebot, + // prefilledVariables: prefilledVariables, + // sessionId: `${response.sessionId}`, + // }); + // } else { + // throw new Error('Session ID not found in response'); + // } } else { const id = Math.floor(Math.random() * 10000000000).toString(); diff --git a/src/api/integrations/chatbot/typebot/services/typebot.service.ts b/src/api/integrations/chatbot/typebot/services/typebot.service.ts index 5a6264c7..b6de1b8d 100644 --- a/src/api/integrations/chatbot/typebot/services/typebot.service.ts +++ b/src/api/integrations/chatbot/typebot/services/typebot.service.ts @@ -286,6 +286,7 @@ export class TypebotService { } } + console.log('input', input); if (input) { if (input.type === 'choice input') { let formattedText = ''; @@ -402,24 +403,6 @@ export class TypebotService { session = data.session; } - await this.sendWAMessage( - instance, - session, - { - expire: expire, - keywordFinish: keywordFinish, - delayMessage: delayMessage, - unknownMessage: unknownMessage, - listeningFromMe: listeningFromMe, - stopBotFromMe: stopBotFromMe, - keepOpen: keepOpen, - }, - remoteJid, - data.messages, - data.input, - data.clientSideActions, - ); - if (data.messages.length === 0) { const content = getConversationMessage(msg.message); @@ -502,6 +485,24 @@ export class TypebotService { } } + await this.sendWAMessage( + instance, + session, + { + expire: expire, + keywordFinish: keywordFinish, + delayMessage: delayMessage, + unknownMessage: unknownMessage, + listeningFromMe: listeningFromMe, + stopBotFromMe: stopBotFromMe, + keepOpen: keepOpen, + }, + remoteJid, + data.messages, + data.input, + data.clientSideActions, + ); + return; } } @@ -521,7 +522,7 @@ export class TypebotService { unknownMessage: unknownMessage, listeningFromMe: listeningFromMe, remoteJid: remoteJid, - pushName: msg.pushName, + pushName: msg?.pushName, botId: findTypebot.id, });