diff --git a/.env.example b/.env.example index d1695c94..83f581ce 100644 --- a/.env.example +++ b/.env.example @@ -151,6 +151,8 @@ CHATWOOT_ENABLED=false CHATWOOT_MESSAGE_READ=true # If you leave this option as true, when sending a message in Chatwoot, the client's last message will be marked as read on WhatsApp. CHATWOOT_MESSAGE_DELETE=true +# If you leave this option as true, a contact will be created on Chatwoot to provide the QR Code and update messages about the instance. +CHATWOOT_BOT_CONTACT=true # This db connection is used to import messages from whatsapp to chatwoot database CHATWOOT_IMPORT_DATABASE_CONNECTION_URI=postgresql://user:passwprd@host:5432/chatwoot?sslmode=disable CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE=true diff --git a/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts b/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts index f32b3764..3e70b276 100644 --- a/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts +++ b/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts @@ -215,7 +215,13 @@ export class ChatwootService { inboxId = inbox.id; } - this.logger.log(`Inox created - inboxId: ${inboxId}`); + this.logger.log(`Inbox created - inboxId: ${inboxId}`); + + if (!this.configService.get('CHATWOOT').BOT_CONTACT) { + this.logger.log('Chatwoot bot contact is disabled'); + + return true; + } this.logger.log('Creating chatwoot bot contact'); const contact = @@ -826,6 +832,12 @@ export class ChatwootService { return null; } + if (!this.configService.get('CHATWOOT').BOT_CONTACT) { + this.logger.log('Chatwoot bot contact is disabled'); + + return true; + } + const contact = await this.findContact(instance, '123456'); if (!contact) { @@ -940,6 +952,12 @@ export class ChatwootService { return null; } + if (!this.configService.get('CHATWOOT').BOT_CONTACT) { + this.logger.log('Chatwoot bot contact is disabled'); + + return true; + } + const contact = await this.findContact(instance, '123456'); if (!contact) { @@ -1159,7 +1177,9 @@ export class ChatwootService { return { message: 'bot' }; } - if (chatId === '123456' && body.message_type === 'outgoing') { + const cwBotContact = this.configService.get('CHATWOOT').BOT_CONTACT; + + if (cwBotContact && chatId === '123456' && body.message_type === 'outgoing') { const command = messageReceived.replace('/', ''); if (command.includes('init') || command.includes('iniciar')) { diff --git a/src/config/env.config.ts b/src/config/env.config.ts index f3e3f0ae..64c0ea11 100644 --- a/src/config/env.config.ts +++ b/src/config/env.config.ts @@ -181,6 +181,7 @@ export type Chatwoot = { ENABLED: boolean; MESSAGE_DELETE: boolean; MESSAGE_READ: boolean; + BOT_CONTACT: boolean; IMPORT: { DATABASE: { CONNECTION: { @@ -426,6 +427,7 @@ export class ConfigService { ENABLED: process.env?.CHATWOOT_ENABLED === 'true', MESSAGE_DELETE: process.env.CHATWOOT_MESSAGE_DELETE === 'true', MESSAGE_READ: process.env.CHATWOOT_MESSAGE_READ === 'true', + BOT_CONTACT: process.env.CHATWOOT_BOT_CONTACT === 'true', IMPORT: { DATABASE: { CONNECTION: {