From 3f4333087ff8b7a325d37f64237b131434ccb7bb Mon Sep 17 00:00:00 2001 From: Francis Breit Date: Mon, 2 Oct 2023 11:56:24 -0300 Subject: [PATCH 1/2] =?UTF-8?q?Start=20Typebot=20com=20op=C3=A7=C3=A3o=20d?= =?UTF-8?q?e=20ativar=20chatbot=20ou=20n=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Foi criada a variável enabled_typebot (não obrigatória) enabled_typebot igual a true ou vazio: o comportamento do "startTypebot" atua como a nova funcionalidadede sessões persistentes (v1.5.2) onde o flow do Typebot disparado atua como chatbot. enabled_typebot igual a false: o comportamento do "startTypebot" atua como era na Evolution v.1.5.1 onde o flow do Typebot disparado atua como mensagem simples, nao ativa o chatbot e funciona apenas como mensagens simples. Obs1: Se setada como true ou se for omitida essa variável no comando start Typebot, enabled_typebot será assumida como true, ou seja, start typebot aciona o flow com o chatbot ativado, imediatamente após o envio, aguardando interação do contato.. Se, antes do acionamento do start typebot, tiver um outro chatbot ativo, o mesmo será substituído pelo novo, ora enviado. Obs2: Se setada como false, dispara apenas como notificação e não ativa o bot. se tiver outro bot ativo na instancia o mesmo continuará ativo, após disparada a mensagem --- src/whatsapp/services/typebot.service.ts | 44 ++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/src/whatsapp/services/typebot.service.ts b/src/whatsapp/services/typebot.service.ts index 88dde9c3..0a01cc52 100644 --- a/src/whatsapp/services/typebot.service.ts +++ b/src/whatsapp/services/typebot.service.ts @@ -99,6 +99,7 @@ export class TypebotService { const remoteJid = data.remoteJid; const url = data.url; const typebot = data.typebot; + const enabled_typebot = data.enabled_typebot; const variables = data.variables; const findTypebot = await this.find(instance); const sessions = (findTypebot.sessions as Session[]) ?? []; @@ -116,8 +117,13 @@ export class TypebotService { prefilledVariables[variable.name] = variable.value; }); - const response = await this.createNewSession(instance, { + if (enabled_typebot !== false ) { + let enabled_typebot = true; + + +const response = await this.createNewSession(instance, { url: url, + enabled_typebot: enabled_typebot, typebot: typebot, remoteJid: remoteJid, expire: expire, @@ -141,6 +147,7 @@ export class TypebotService { this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, { remoteJid: remoteJid, url: url, + enabled_typebot: enabled_typebot, typebot: typebot, prefilledVariables: prefilledVariables, sessionId: `${response.sessionId}`, @@ -148,11 +155,45 @@ export class TypebotService { } else { throw new Error("Session ID not found in response"); } + +} else { + +const id = Math.floor(Math.random() * 10000000000).toString(); + + const reqData = { + sessionId: id, + startParams: { + typebot: data.typebot, + prefilledVariables: prefilledVariables, + }, + }; + + const request = await axios.post(data.url + '/api/v1/sendMessage', reqData); + + await this.sendWAMessage( + instance, + remoteJid, + request.data.messages, + request.data.input, + request.data.clientSideActions, + ); + + this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, { + remoteJid: remoteJid, + url: url, + typebot: typebot, + variables: variables, + sessionId: id, + }); + + +} return { typebot: { ...instance, typebot: { + enabled_typebot: enabled_typebot, url: url, remoteJid: remoteJid, typebot: typebot, @@ -504,7 +545,6 @@ export class TypebotService { sessions.splice(sessions.indexOf(session), 1); const typebotData = { - enabled: true, url: url, typebot: typebot, expire: expire, From 6fc37a4298ee1bfa2bc86b963d6c627a44d95c0e Mon Sep 17 00:00:00 2001 From: Davidson Gomes Date: Mon, 2 Oct 2023 19:10:34 +0000 Subject: [PATCH 2/2] =?UTF-8?q?Revert=20"Start=20Typebot=20com=20op=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20ativar=20chatbot=20ou=20n=C3=A3o"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/whatsapp/services/typebot.service.ts | 44 ++---------------------- 1 file changed, 2 insertions(+), 42 deletions(-) diff --git a/src/whatsapp/services/typebot.service.ts b/src/whatsapp/services/typebot.service.ts index 0a01cc52..88dde9c3 100644 --- a/src/whatsapp/services/typebot.service.ts +++ b/src/whatsapp/services/typebot.service.ts @@ -99,7 +99,6 @@ export class TypebotService { const remoteJid = data.remoteJid; const url = data.url; const typebot = data.typebot; - const enabled_typebot = data.enabled_typebot; const variables = data.variables; const findTypebot = await this.find(instance); const sessions = (findTypebot.sessions as Session[]) ?? []; @@ -117,13 +116,8 @@ export class TypebotService { prefilledVariables[variable.name] = variable.value; }); - if (enabled_typebot !== false ) { - let enabled_typebot = true; - - -const response = await this.createNewSession(instance, { + const response = await this.createNewSession(instance, { url: url, - enabled_typebot: enabled_typebot, typebot: typebot, remoteJid: remoteJid, expire: expire, @@ -147,7 +141,6 @@ const response = await this.createNewSession(instance, { this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, { remoteJid: remoteJid, url: url, - enabled_typebot: enabled_typebot, typebot: typebot, prefilledVariables: prefilledVariables, sessionId: `${response.sessionId}`, @@ -155,45 +148,11 @@ const response = await this.createNewSession(instance, { } else { throw new Error("Session ID not found in response"); } - -} else { - -const id = Math.floor(Math.random() * 10000000000).toString(); - - const reqData = { - sessionId: id, - startParams: { - typebot: data.typebot, - prefilledVariables: prefilledVariables, - }, - }; - - const request = await axios.post(data.url + '/api/v1/sendMessage', reqData); - - await this.sendWAMessage( - instance, - remoteJid, - request.data.messages, - request.data.input, - request.data.clientSideActions, - ); - - this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, { - remoteJid: remoteJid, - url: url, - typebot: typebot, - variables: variables, - sessionId: id, - }); - - -} return { typebot: { ...instance, typebot: { - enabled_typebot: enabled_typebot, url: url, remoteJid: remoteJid, typebot: typebot, @@ -545,6 +504,7 @@ const id = Math.floor(Math.random() * 10000000000).toString(); sessions.splice(sessions.indexOf(session), 1); const typebotData = { + enabled: true, url: url, typebot: typebot, expire: expire,