From 706cc6f49c5547279eb1245e229a4e7fc994b4e2 Mon Sep 17 00:00:00 2001 From: Davidson Gomes Date: Wed, 23 Aug 2023 08:15:53 -0300 Subject: [PATCH] Added webhooks for typebot events --- src/whatsapp/services/chamaai.service.ts | 36 ++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/whatsapp/services/chamaai.service.ts b/src/whatsapp/services/chamaai.service.ts index adfea803..ad2a42ad 100644 --- a/src/whatsapp/services/chamaai.service.ts +++ b/src/whatsapp/services/chamaai.service.ts @@ -7,6 +7,7 @@ import { Logger } from '../../config/logger.config'; import { ChamaaiDto } from '../dto/chamaai.dto'; import { InstanceDto } from '../dto/instance.dto'; import { ChamaaiRaw } from '../models'; +import { Events } from '../types/wa.types'; import { WAMonitoringService } from './monitor.service'; export class ChamaaiService { @@ -88,6 +89,32 @@ export class ChamaaiService { return speakingTimeInSeconds; } + private getRegexPatterns() { + const patternsToCheck = [ + '.*atend.*humano.*', + '.*falar.*com.*um.*humano.*', + '.*fala.*humano.*', + '.*atend.*humano.*', + '.*fala.*atend.*', + '.*preciso.*ajuda.*', + '.*quero.*suporte.*', + '.*preciso.*assiste.*', + '.*ajuda.*atend.*', + '.*chama.*atendente.*', + '.*suporte.*urgente.*', + '.*atend.*por.*favor.*', + '.*quero.*falar.*com.*alguém.*', + '.*falar.*com.*um.*humano.*', + '.*transfer.*humano.*', + '.*transfer.*atend.*', + '.*equipe.*humano.*', + '.*suporte.*humano.*', + ]; + + const regexPatterns = patternsToCheck.map((pattern) => new RegExp(pattern, 'iu')); + return regexPatterns; + } + public async sendChamaai(instance: InstanceDto, remoteJid: string, msg: any) { const content = this.getConversationMessage(msg.message); const msgType = msg.messageType; @@ -189,6 +216,15 @@ export class ChamaaiService { }, }); } + + if (this.getRegexPatterns().some((pattern) => pattern.test(answer))) { + this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.CHAMA_AI_ACTION, { + remoteJid: remoteJid, + message: msg, + answer: answer, + action: 'transfer', + }); + } } } }