diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d206226..43ef7281 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ * Correction of messages sent by the api and typebot not appearing in chatwoot * Adjustment to start typebot, added startSession parameter * Chatwoot now receives messages sent via api and typebot +* Fixed problem with starting with an input in typebot # 1.5.2 (2023-09-28 17:56) diff --git a/src/whatsapp/services/typebot.service.ts b/src/whatsapp/services/typebot.service.ts index 9ad0bc9d..659309e1 100644 --- a/src/whatsapp/services/typebot.service.ts +++ b/src/whatsapp/services/typebot.service.ts @@ -149,7 +149,6 @@ export class TypebotService { const id = Math.floor(Math.random() * 10000000000).toString(); const reqData = { - sessionId: id, startParams: { typebot: data.typebot, prefilledVariables: prefilledVariables, @@ -227,7 +226,6 @@ export class TypebotService { public async createNewSession(instance: InstanceDto, data: any) { const id = Math.floor(Math.random() * 10000000000).toString(); const reqData = { - sessionId: id, startParams: { typebot: data.typebot, prefilledVariables: { @@ -461,6 +459,62 @@ export class TypebotService { await this.sendWAMessage(instance, remoteJid, data.messages, data.input, data.clientSideActions); + if (data.messages.length === 0) { + const content = this.getConversationMessage(msg.message); + + if (!content) { + if (unknown_message) { + this.waMonitor.waInstances[instance.instanceName].textMessage({ + number: remoteJid.split('@')[0], + options: { + delay: delay_message || 1000, + presence: 'composing', + }, + textMessage: { + text: unknown_message, + }, + }); + } + return; + } + + if (keyword_finish && content.toLowerCase() === keyword_finish.toLowerCase()) { + sessions.splice(sessions.indexOf(session), 1); + + const typebotData = { + enabled: true, + url: url, + typebot: typebot, + expire: expire, + keyword_finish: keyword_finish, + delay_message: delay_message, + unknown_message: unknown_message, + listening_from_me: listening_from_me, + sessions, + }; + + this.create(instance, typebotData); + + return; + } + + const reqData = { + message: content, + sessionId: data.sessionId, + }; + + const request = await axios.post(url + '/api/v1/sendMessage', reqData); + + console.log('request', request); + await this.sendWAMessage( + instance, + remoteJid, + request.data.messages, + request.data.input, + request.data.clientSideActions, + ); + } + return; } } @@ -485,6 +539,61 @@ export class TypebotService { await this.sendWAMessage(instance, remoteJid, data.messages, data.input, data.clientSideActions); + if (data.messages.length === 0) { + const content = this.getConversationMessage(msg.message); + + if (!content) { + if (unknown_message) { + this.waMonitor.waInstances[instance.instanceName].textMessage({ + number: remoteJid.split('@')[0], + options: { + delay: delay_message || 1000, + presence: 'composing', + }, + textMessage: { + text: unknown_message, + }, + }); + } + return; + } + + if (keyword_finish && content.toLowerCase() === keyword_finish.toLowerCase()) { + sessions.splice(sessions.indexOf(session), 1); + + const typebotData = { + enabled: true, + url: url, + typebot: typebot, + expire: expire, + keyword_finish: keyword_finish, + delay_message: delay_message, + unknown_message: unknown_message, + listening_from_me: listening_from_me, + sessions, + }; + + this.create(instance, typebotData); + + return; + } + + const reqData = { + message: content, + sessionId: data.sessionId, + }; + + const request = await axios.post(url + '/api/v1/sendMessage', reqData); + + console.log('request', request); + await this.sendWAMessage( + instance, + remoteJid, + request.data.messages, + request.data.input, + request.data.clientSideActions, + ); + } return; }