diff --git a/src/api/integrations/chatbot/base-chatbot.controller.ts b/src/api/integrations/chatbot/base-chatbot.controller.ts index 0244184c..dab51e25 100644 --- a/src/api/integrations/chatbot/base-chatbot.controller.ts +++ b/src/api/integrations/chatbot/base-chatbot.controller.ts @@ -876,7 +876,7 @@ export abstract class BaseChatbotController { ): Promise { try { // For new sessions or sessions awaiting initialization - if (!session || session.status === 'paused') { + if (!session) { await this.initNewSession(instance, remoteJid, bot, settings, session, content, pushName, msg); return; } + // If session is paused, ignore the message + if (session.status === 'paused') { + return; + } + // For existing sessions, keywords might indicate the conversation should end const keywordFinish = (settings as any)?.keywordFinish || ''; const normalizedContent = content.toLowerCase().trim(); diff --git a/src/api/integrations/chatbot/chatbot.controller.ts b/src/api/integrations/chatbot/chatbot.controller.ts index 4bd6fa87..ef9a2b38 100644 --- a/src/api/integrations/chatbot/chatbot.controller.ts +++ b/src/api/integrations/chatbot/chatbot.controller.ts @@ -179,7 +179,7 @@ export class ChatbotController { if (session) { if (session.status !== 'closed' && !session.botId) { this.logger.warn('Session is already opened in another integration'); - return; + return null; } else if (!session.botId) { session = null; } diff --git a/src/api/integrations/chatbot/evolutionBot/controllers/evolutionBot.controller.ts b/src/api/integrations/chatbot/evolutionBot/controllers/evolutionBot.controller.ts index ff41c4f9..13ec5330 100644 --- a/src/api/integrations/chatbot/evolutionBot/controllers/evolutionBot.controller.ts +++ b/src/api/integrations/chatbot/evolutionBot/controllers/evolutionBot.controller.ts @@ -89,7 +89,8 @@ export class EvolutionBotController extends BaseChatbotController { while ((match = linkRegex.exec(message)) !== null) { const [fullMatch, exclamation, altText, url] = match; const mediaType = this.getMediaType(url); - const beforeText = message.slice(lastIndex, match.index); + const beforeText = message.slice(lastIndex, match.index).trim(); if (beforeText) { textBuffer += beforeText; @@ -298,7 +298,7 @@ export class N8nService extends BaseChatbotService { lastIndex = match.index + fullMatch.length; } - const remainingText = message.slice(lastIndex); + const remainingText = message.slice(lastIndex).trim(); if (remainingText) { textBuffer += remainingText; } @@ -439,16 +439,6 @@ export class N8nService extends BaseChatbotService { // If session exists but is paused if (session.status === 'paused') { - await this.prismaRepository.integrationSession.update({ - where: { - id: session.id, - }, - data: { - status: 'opened', - awaitUser: true, - }, - }); - return; }