diff --git a/.env.example b/.env.example
index 9e7ad91f..d1695c94 100644
--- a/.env.example
+++ b/.env.example
@@ -66,6 +66,8 @@ RABBITMQ_EVENTS_GROUPS_UPSERT=false
RABBITMQ_EVENTS_GROUP_UPDATE=false
RABBITMQ_EVENTS_GROUP_PARTICIPANTS_UPDATE=false
RABBITMQ_EVENTS_CONNECTION_UPDATE=false
+RABBITMQ_EVENTS_REMOVE_INSTANCE=false
+RABBITMQ_EVENTS_LOGOUT_INSTANCE=false
RABBITMQ_EVENTS_CALL=false
RABBITMQ_EVENTS_TYPEBOT_START=false
RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false
@@ -116,6 +118,8 @@ WEBHOOK_EVENTS_GROUPS_UPSERT=true
WEBHOOK_EVENTS_GROUPS_UPDATE=true
WEBHOOK_EVENTS_GROUP_PARTICIPANTS_UPDATE=true
WEBHOOK_EVENTS_CONNECTION_UPDATE=true
+WEBHOOK_EVENTS_REMOVE_INSTANCE=false
+WEBHOOK_EVENTS_LOGOUT_INSTANCE=false
WEBHOOK_EVENTS_LABELS_EDIT=true
WEBHOOK_EVENTS_LABELS_ASSOCIATION=true
WEBHOOK_EVENTS_CALL=true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 75e86eb9..2c83981b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,10 @@
* Improved layout manager
* Translation in manager: English, Portuguese, Spanish and French
+### Fixed
+
+* Refactor websocket structure
+
# 2.0.10 (2024-08-16 16:23)
### Features
diff --git a/README.md b/README.md
index 0bb6d7e7..ea6c6bf2 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
[](https://doc.evolution-api.com)
[](./LICENSE)
[](https://app.picpay.com/user/davidsongomes1998)
-[](https://bmc.link/evolutionapi)
+[](https://github.com/sponsors/EvolutionAPI)
@@ -79,6 +79,10 @@ Join our Evolution Pro community for expert support and a weekly call to answer
# Donate to the project.
+#### Github Sponsors
+
+https://github.com/sponsors/EvolutionAPI
+
#### PicPay
diff --git a/src/api/controllers/instance.controller.ts b/src/api/controllers/instance.controller.ts
index c3657142..fe468d6d 100644
--- a/src/api/controllers/instance.controller.ts
+++ b/src/api/controllers/instance.controller.ts
@@ -1,8 +1,8 @@
import { InstanceDto, SetPresenceDto } from '@api/dto/instance.dto';
-import { ChatwootService } from '@api/integrations/chatwoot/services/chatwoot.service';
-import { RabbitmqService } from '@api/integrations/rabbitmq/services/rabbitmq.service';
-import { SqsService } from '@api/integrations/sqs/services/sqs.service';
-import { WebsocketController } from '@api/integrations/websocket/controllers/websocket.controller';
+import { ChatwootService } from '@api/integrations/chatbot/chatwoot/services/chatwoot.service';
+import { RabbitmqService } from '@api/integrations/event/rabbitmq/services/rabbitmq.service';
+import { SqsService } from '@api/integrations/event/sqs/services/sqs.service';
+import { WebsocketController } from '@api/integrations/event/websocket/controllers/websocket.controller';
import { ProviderFiles } from '@api/provider/sessions';
import { PrismaRepository } from '@api/repository/repository.service';
import { AuthService } from '@api/services/auth.service';
diff --git a/src/api/integrations/chatwoot/controllers/chatwoot.controller.ts b/src/api/integrations/chatbot/chatwoot/controllers/chatwoot.controller.ts
similarity index 94%
rename from src/api/integrations/chatwoot/controllers/chatwoot.controller.ts
rename to src/api/integrations/chatbot/chatwoot/controllers/chatwoot.controller.ts
index 1abccc4b..afe2dcba 100644
--- a/src/api/integrations/chatwoot/controllers/chatwoot.controller.ts
+++ b/src/api/integrations/chatbot/chatwoot/controllers/chatwoot.controller.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { ChatwootDto } from '@api/integrations/chatwoot/dto/chatwoot.dto';
-import { ChatwootService } from '@api/integrations/chatwoot/services/chatwoot.service';
+import { ChatwootDto } from '@api/integrations/chatbot/chatwoot/dto/chatwoot.dto';
+import { ChatwootService } from '@api/integrations/chatbot/chatwoot/services/chatwoot.service';
import { PrismaRepository } from '@api/repository/repository.service';
import { waMonitor } from '@api/server.module';
import { CacheService } from '@api/services/cache.service';
diff --git a/src/api/integrations/chatwoot/dto/chatwoot.dto.ts b/src/api/integrations/chatbot/chatwoot/dto/chatwoot.dto.ts
similarity index 100%
rename from src/api/integrations/chatwoot/dto/chatwoot.dto.ts
rename to src/api/integrations/chatbot/chatwoot/dto/chatwoot.dto.ts
diff --git a/src/api/integrations/chatwoot/libs/postgres.client.ts b/src/api/integrations/chatbot/chatwoot/libs/postgres.client.ts
similarity index 100%
rename from src/api/integrations/chatwoot/libs/postgres.client.ts
rename to src/api/integrations/chatbot/chatwoot/libs/postgres.client.ts
diff --git a/src/api/integrations/chatwoot/routes/chatwoot.router.ts b/src/api/integrations/chatbot/chatwoot/routes/chatwoot.router.ts
similarity index 95%
rename from src/api/integrations/chatwoot/routes/chatwoot.router.ts
rename to src/api/integrations/chatbot/chatwoot/routes/chatwoot.router.ts
index f71e6294..51b23ab5 100644
--- a/src/api/integrations/chatwoot/routes/chatwoot.router.ts
+++ b/src/api/integrations/chatbot/chatwoot/routes/chatwoot.router.ts
@@ -1,6 +1,6 @@
import { RouterBroker } from '@api/abstract/abstract.router';
import { InstanceDto } from '@api/dto/instance.dto';
-import { ChatwootDto } from '@api/integrations/chatwoot/dto/chatwoot.dto';
+import { ChatwootDto } from '@api/integrations/chatbot/chatwoot/dto/chatwoot.dto';
import { HttpStatus } from '@api/routes/index.router';
import { chatwootController } from '@api/server.module';
import { chatwootSchema, instanceSchema } from '@validate/validate.schema';
diff --git a/src/api/integrations/chatwoot/services/chatwoot.service.ts b/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts
similarity index 99%
rename from src/api/integrations/chatwoot/services/chatwoot.service.ts
rename to src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts
index 0904ac61..f32b3764 100644
--- a/src/api/integrations/chatwoot/services/chatwoot.service.ts
+++ b/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts
@@ -1,8 +1,8 @@
import { InstanceDto } from '@api/dto/instance.dto';
import { Options, Quoted, SendAudioDto, SendMediaDto, SendTextDto } from '@api/dto/sendMessage.dto';
-import { ChatwootDto } from '@api/integrations/chatwoot/dto/chatwoot.dto';
-import { postgresClient } from '@api/integrations/chatwoot/libs/postgres.client';
-import { chatwootImport } from '@api/integrations/chatwoot/utils/chatwoot-import-helper';
+import { ChatwootDto } from '@api/integrations/chatbot/chatwoot/dto/chatwoot.dto';
+import { postgresClient } from '@api/integrations/chatbot/chatwoot/libs/postgres.client';
+import { chatwootImport } from '@api/integrations/chatbot/chatwoot/utils/chatwoot-import-helper';
import { PrismaRepository } from '@api/repository/repository.service';
import { CacheService } from '@api/services/cache.service';
import { WAMonitoringService } from '@api/services/monitor.service';
diff --git a/src/api/integrations/chatwoot/utils/chatwoot-import-helper.ts b/src/api/integrations/chatbot/chatwoot/utils/chatwoot-import-helper.ts
similarity index 98%
rename from src/api/integrations/chatwoot/utils/chatwoot-import-helper.ts
rename to src/api/integrations/chatbot/chatwoot/utils/chatwoot-import-helper.ts
index 765e9cf3..f331e494 100644
--- a/src/api/integrations/chatwoot/utils/chatwoot-import-helper.ts
+++ b/src/api/integrations/chatbot/chatwoot/utils/chatwoot-import-helper.ts
@@ -1,7 +1,7 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { ChatwootDto } from '@api/integrations/chatwoot/dto/chatwoot.dto';
-import { postgresClient } from '@api/integrations/chatwoot/libs/postgres.client';
-import { ChatwootService } from '@api/integrations/chatwoot/services/chatwoot.service';
+import { ChatwootDto } from '@api/integrations/chatbot/chatwoot/dto/chatwoot.dto';
+import { postgresClient } from '@api/integrations/chatbot/chatwoot/libs/postgres.client';
+import { ChatwootService } from '@api/integrations/chatbot/chatwoot/services/chatwoot.service';
import { Chatwoot, configService } from '@config/env.config';
import { Logger } from '@config/logger.config';
import { inbox } from '@figuro/chatwoot-sdk';
diff --git a/src/api/integrations/chatwoot/validate/chatwoot.schema.ts b/src/api/integrations/chatbot/chatwoot/validate/chatwoot.schema.ts
similarity index 100%
rename from src/api/integrations/chatwoot/validate/chatwoot.schema.ts
rename to src/api/integrations/chatbot/chatwoot/validate/chatwoot.schema.ts
diff --git a/src/api/integrations/dify/controllers/dify.controller.ts b/src/api/integrations/chatbot/dify/controllers/dify.controller.ts
similarity index 93%
rename from src/api/integrations/dify/controllers/dify.controller.ts
rename to src/api/integrations/chatbot/dify/controllers/dify.controller.ts
index faf0a486..dd19127f 100644
--- a/src/api/integrations/dify/controllers/dify.controller.ts
+++ b/src/api/integrations/chatbot/dify/controllers/dify.controller.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { DifyDto, DifyIgnoreJidDto } from '@api/integrations/dify/dto/dify.dto';
-import { DifyService } from '@api/integrations/dify/services/dify.service';
+import { DifyDto, DifyIgnoreJidDto } from '@api/integrations/chatbot/dify/dto/dify.dto';
+import { DifyService } from '@api/integrations/chatbot/dify/services/dify.service';
import { configService, Dify } from '@config/env.config';
import { BadRequestException } from '@exceptions';
diff --git a/src/api/integrations/dify/dto/dify.dto.ts b/src/api/integrations/chatbot/dify/dto/dify.dto.ts
similarity index 100%
rename from src/api/integrations/dify/dto/dify.dto.ts
rename to src/api/integrations/chatbot/dify/dto/dify.dto.ts
diff --git a/src/api/integrations/dify/routes/dify.router.ts b/src/api/integrations/chatbot/dify/routes/dify.router.ts
similarity index 99%
rename from src/api/integrations/dify/routes/dify.router.ts
rename to src/api/integrations/chatbot/dify/routes/dify.router.ts
index 2015d6a4..017c6171 100644
--- a/src/api/integrations/dify/routes/dify.router.ts
+++ b/src/api/integrations/chatbot/dify/routes/dify.router.ts
@@ -1,6 +1,6 @@
import { RouterBroker } from '@api/abstract/abstract.router';
import { InstanceDto } from '@api/dto/instance.dto';
-import { DifyDto, DifyIgnoreJidDto, DifySettingDto } from '@api/integrations/dify/dto/dify.dto';
+import { DifyDto, DifyIgnoreJidDto, DifySettingDto } from '@api/integrations/chatbot/dify/dto/dify.dto';
import { HttpStatus } from '@api/routes/index.router';
import { difyController } from '@api/server.module';
import {
diff --git a/src/api/integrations/dify/services/dify.service.ts b/src/api/integrations/chatbot/dify/services/dify.service.ts
similarity index 99%
rename from src/api/integrations/dify/services/dify.service.ts
rename to src/api/integrations/chatbot/dify/services/dify.service.ts
index b0d8464b..a1fbf21a 100644
--- a/src/api/integrations/dify/services/dify.service.ts
+++ b/src/api/integrations/chatbot/dify/services/dify.service.ts
@@ -1,5 +1,5 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { DifyDto, DifyIgnoreJidDto, DifySettingDto } from '@api/integrations/dify/dto/dify.dto';
+import { DifyDto, DifyIgnoreJidDto, DifySettingDto } from '@api/integrations/chatbot/dify/dto/dify.dto';
import { PrismaRepository } from '@api/repository/repository.service';
import { WAMonitoringService } from '@api/services/monitor.service';
import { Auth, ConfigService, HttpServer, S3 } from '@config/env.config';
diff --git a/src/api/integrations/dify/validate/dify.schema.ts b/src/api/integrations/chatbot/dify/validate/dify.schema.ts
similarity index 100%
rename from src/api/integrations/dify/validate/dify.schema.ts
rename to src/api/integrations/chatbot/dify/validate/dify.schema.ts
diff --git a/src/api/integrations/openai/controllers/openai.controller.ts b/src/api/integrations/chatbot/openai/controllers/openai.controller.ts
similarity index 96%
rename from src/api/integrations/openai/controllers/openai.controller.ts
rename to src/api/integrations/chatbot/openai/controllers/openai.controller.ts
index 73489805..a9e0ffc7 100644
--- a/src/api/integrations/openai/controllers/openai.controller.ts
+++ b/src/api/integrations/chatbot/openai/controllers/openai.controller.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { OpenaiCredsDto, OpenaiDto, OpenaiIgnoreJidDto } from '@api/integrations/openai/dto/openai.dto';
-import { OpenaiService } from '@api/integrations/openai/services/openai.service';
+import { OpenaiCredsDto, OpenaiDto, OpenaiIgnoreJidDto } from '@api/integrations/chatbot/openai/dto/openai.dto';
+import { OpenaiService } from '@api/integrations/chatbot/openai/services/openai.service';
import { configService, Openai } from '@config/env.config';
import { BadRequestException } from '@exceptions';
diff --git a/src/api/integrations/openai/dto/openai.dto.ts b/src/api/integrations/chatbot/openai/dto/openai.dto.ts
similarity index 100%
rename from src/api/integrations/openai/dto/openai.dto.ts
rename to src/api/integrations/chatbot/openai/dto/openai.dto.ts
diff --git a/src/api/integrations/openai/routes/openai.router.ts b/src/api/integrations/chatbot/openai/routes/openai.router.ts
similarity index 99%
rename from src/api/integrations/openai/routes/openai.router.ts
rename to src/api/integrations/chatbot/openai/routes/openai.router.ts
index 17c036ac..15b468c4 100644
--- a/src/api/integrations/openai/routes/openai.router.ts
+++ b/src/api/integrations/chatbot/openai/routes/openai.router.ts
@@ -5,7 +5,7 @@ import {
OpenaiDto,
OpenaiIgnoreJidDto,
OpenaiSettingDto,
-} from '@api/integrations/openai/dto/openai.dto';
+} from '@api/integrations/chatbot/openai/dto/openai.dto';
import { HttpStatus } from '@api/routes/index.router';
import { openaiController } from '@api/server.module';
import {
diff --git a/src/api/integrations/openai/services/openai.service.ts b/src/api/integrations/chatbot/openai/services/openai.service.ts
similarity index 99%
rename from src/api/integrations/openai/services/openai.service.ts
rename to src/api/integrations/chatbot/openai/services/openai.service.ts
index d0f50b5d..81600154 100644
--- a/src/api/integrations/openai/services/openai.service.ts
+++ b/src/api/integrations/chatbot/openai/services/openai.service.ts
@@ -4,7 +4,7 @@ import {
OpenaiDto,
OpenaiIgnoreJidDto,
OpenaiSettingDto,
-} from '@api/integrations/openai/dto/openai.dto';
+} from '@api/integrations/chatbot/openai/dto/openai.dto';
import { PrismaRepository } from '@api/repository/repository.service';
import { WAMonitoringService } from '@api/services/monitor.service';
import { ConfigService, Language, S3 } from '@config/env.config';
diff --git a/src/api/integrations/openai/validate/openai.schema.ts b/src/api/integrations/chatbot/openai/validate/openai.schema.ts
similarity index 100%
rename from src/api/integrations/openai/validate/openai.schema.ts
rename to src/api/integrations/chatbot/openai/validate/openai.schema.ts
diff --git a/src/api/integrations/typebot/controllers/typebot.controller.ts b/src/api/integrations/chatbot/typebot/controllers/typebot.controller.ts
similarity index 95%
rename from src/api/integrations/typebot/controllers/typebot.controller.ts
rename to src/api/integrations/chatbot/typebot/controllers/typebot.controller.ts
index b0260d1d..35d35eb2 100644
--- a/src/api/integrations/typebot/controllers/typebot.controller.ts
+++ b/src/api/integrations/chatbot/typebot/controllers/typebot.controller.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { TypebotDto, TypebotIgnoreJidDto } from '@api/integrations/typebot/dto/typebot.dto';
-import { TypebotService } from '@api/integrations/typebot/services/typebot.service';
+import { TypebotDto, TypebotIgnoreJidDto } from '@api/integrations/chatbot/typebot/dto/typebot.dto';
+import { TypebotService } from '@api/integrations/chatbot/typebot/services/typebot.service';
import { configService, Typebot } from '@config/env.config';
import { BadRequestException } from '@exceptions';
diff --git a/src/api/integrations/typebot/dto/typebot.dto.ts b/src/api/integrations/chatbot/typebot/dto/typebot.dto.ts
similarity index 100%
rename from src/api/integrations/typebot/dto/typebot.dto.ts
rename to src/api/integrations/chatbot/typebot/dto/typebot.dto.ts
diff --git a/src/api/integrations/typebot/routes/typebot.router.ts b/src/api/integrations/chatbot/typebot/routes/typebot.router.ts
similarity index 98%
rename from src/api/integrations/typebot/routes/typebot.router.ts
rename to src/api/integrations/chatbot/typebot/routes/typebot.router.ts
index c3d031c3..c9bcd932 100644
--- a/src/api/integrations/typebot/routes/typebot.router.ts
+++ b/src/api/integrations/chatbot/typebot/routes/typebot.router.ts
@@ -1,6 +1,6 @@
import { RouterBroker } from '@api/abstract/abstract.router';
import { InstanceDto } from '@api/dto/instance.dto';
-import { TypebotDto, TypebotIgnoreJidDto, TypebotSettingDto } from '@api/integrations/typebot/dto/typebot.dto';
+import { TypebotDto, TypebotIgnoreJidDto, TypebotSettingDto } from '@api/integrations/chatbot/typebot/dto/typebot.dto';
import { HttpStatus } from '@api/routes/index.router';
import { typebotController } from '@api/server.module';
import {
diff --git a/src/api/integrations/typebot/services/typebot.service.ts b/src/api/integrations/chatbot/typebot/services/typebot.service.ts
similarity index 99%
rename from src/api/integrations/typebot/services/typebot.service.ts
rename to src/api/integrations/chatbot/typebot/services/typebot.service.ts
index 4c7ab951..a1f6ca50 100644
--- a/src/api/integrations/typebot/services/typebot.service.ts
+++ b/src/api/integrations/chatbot/typebot/services/typebot.service.ts
@@ -1,5 +1,5 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { TypebotDto, TypebotIgnoreJidDto } from '@api/integrations/typebot/dto/typebot.dto';
+import { TypebotDto, TypebotIgnoreJidDto } from '@api/integrations/chatbot/typebot/dto/typebot.dto';
import { PrismaRepository } from '@api/repository/repository.service';
import { WAMonitoringService } from '@api/services/monitor.service';
import { Events } from '@api/types/wa.types';
diff --git a/src/api/integrations/typebot/validate/typebot.schema.ts b/src/api/integrations/chatbot/typebot/validate/typebot.schema.ts
similarity index 100%
rename from src/api/integrations/typebot/validate/typebot.schema.ts
rename to src/api/integrations/chatbot/typebot/validate/typebot.schema.ts
diff --git a/src/api/integrations/rabbitmq/controllers/rabbitmq.controller.ts b/src/api/integrations/event/rabbitmq/controllers/rabbitmq.controller.ts
similarity index 88%
rename from src/api/integrations/rabbitmq/controllers/rabbitmq.controller.ts
rename to src/api/integrations/event/rabbitmq/controllers/rabbitmq.controller.ts
index cb5ec71a..582e1ddc 100644
--- a/src/api/integrations/rabbitmq/controllers/rabbitmq.controller.ts
+++ b/src/api/integrations/event/rabbitmq/controllers/rabbitmq.controller.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { RabbitmqDto } from '@api/integrations/rabbitmq/dto/rabbitmq.dto';
-import { RabbitmqService } from '@api/integrations/rabbitmq/services/rabbitmq.service';
+import { RabbitmqDto } from '@api/integrations/event/rabbitmq/dto/rabbitmq.dto';
+import { RabbitmqService } from '@api/integrations/event/rabbitmq/services/rabbitmq.service';
import { configService, Rabbitmq } from '@config/env.config';
import { BadRequestException } from '@exceptions';
diff --git a/src/api/integrations/rabbitmq/dto/rabbitmq.dto.ts b/src/api/integrations/event/rabbitmq/dto/rabbitmq.dto.ts
similarity index 100%
rename from src/api/integrations/rabbitmq/dto/rabbitmq.dto.ts
rename to src/api/integrations/event/rabbitmq/dto/rabbitmq.dto.ts
diff --git a/src/api/integrations/rabbitmq/libs/amqp.server.ts b/src/api/integrations/event/rabbitmq/libs/amqp.server.ts
similarity index 100%
rename from src/api/integrations/rabbitmq/libs/amqp.server.ts
rename to src/api/integrations/event/rabbitmq/libs/amqp.server.ts
diff --git a/src/api/integrations/rabbitmq/routes/rabbitmq.router.ts b/src/api/integrations/event/rabbitmq/routes/rabbitmq.router.ts
similarity index 94%
rename from src/api/integrations/rabbitmq/routes/rabbitmq.router.ts
rename to src/api/integrations/event/rabbitmq/routes/rabbitmq.router.ts
index 983008e6..d3590c1d 100644
--- a/src/api/integrations/rabbitmq/routes/rabbitmq.router.ts
+++ b/src/api/integrations/event/rabbitmq/routes/rabbitmq.router.ts
@@ -1,6 +1,6 @@
import { RouterBroker } from '@api/abstract/abstract.router';
import { InstanceDto } from '@api/dto/instance.dto';
-import { RabbitmqDto } from '@api/integrations/rabbitmq/dto/rabbitmq.dto';
+import { RabbitmqDto } from '@api/integrations/event/rabbitmq/dto/rabbitmq.dto';
import { HttpStatus } from '@api/routes/index.router';
import { rabbitmqController } from '@api/server.module';
import { instanceSchema, rabbitmqSchema } from '@validate/validate.schema';
diff --git a/src/api/integrations/rabbitmq/services/rabbitmq.service.ts b/src/api/integrations/event/rabbitmq/services/rabbitmq.service.ts
similarity index 85%
rename from src/api/integrations/rabbitmq/services/rabbitmq.service.ts
rename to src/api/integrations/event/rabbitmq/services/rabbitmq.service.ts
index e4a165d6..371aaafb 100644
--- a/src/api/integrations/rabbitmq/services/rabbitmq.service.ts
+++ b/src/api/integrations/event/rabbitmq/services/rabbitmq.service.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { RabbitmqDto } from '@api/integrations/rabbitmq/dto/rabbitmq.dto';
-import { initQueues } from '@api/integrations/rabbitmq/libs/amqp.server';
+import { RabbitmqDto } from '@api/integrations/event/rabbitmq/dto/rabbitmq.dto';
+import { initQueues } from '@api/integrations/event/rabbitmq/libs/amqp.server';
import { WAMonitoringService } from '@api/services/monitor.service';
import { Logger } from '@config/logger.config';
import { Rabbitmq } from '@prisma/client';
diff --git a/src/api/integrations/rabbitmq/validate/rabbitmq.schema.ts b/src/api/integrations/event/rabbitmq/validate/rabbitmq.schema.ts
similarity index 100%
rename from src/api/integrations/rabbitmq/validate/rabbitmq.schema.ts
rename to src/api/integrations/event/rabbitmq/validate/rabbitmq.schema.ts
diff --git a/src/api/integrations/sqs/controllers/sqs.controller.ts b/src/api/integrations/event/sqs/controllers/sqs.controller.ts
similarity index 90%
rename from src/api/integrations/sqs/controllers/sqs.controller.ts
rename to src/api/integrations/event/sqs/controllers/sqs.controller.ts
index 8aaa9c0b..e31c436b 100644
--- a/src/api/integrations/sqs/controllers/sqs.controller.ts
+++ b/src/api/integrations/event/sqs/controllers/sqs.controller.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { SqsDto } from '@api/integrations/sqs/dto/sqs.dto';
-import { SqsService } from '@api/integrations/sqs/services/sqs.service';
+import { SqsDto } from '@api/integrations/event/sqs/dto/sqs.dto';
+import { SqsService } from '@api/integrations/event/sqs/services/sqs.service';
import { configService, Sqs } from '@config/env.config';
import { BadRequestException } from '@exceptions';
diff --git a/src/api/integrations/sqs/dto/sqs.dto.ts b/src/api/integrations/event/sqs/dto/sqs.dto.ts
similarity index 100%
rename from src/api/integrations/sqs/dto/sqs.dto.ts
rename to src/api/integrations/event/sqs/dto/sqs.dto.ts
diff --git a/src/api/integrations/sqs/libs/sqs.server.ts b/src/api/integrations/event/sqs/libs/sqs.server.ts
similarity index 100%
rename from src/api/integrations/sqs/libs/sqs.server.ts
rename to src/api/integrations/event/sqs/libs/sqs.server.ts
diff --git a/src/api/integrations/sqs/routes/sqs.router.ts b/src/api/integrations/event/sqs/routes/sqs.router.ts
similarity index 94%
rename from src/api/integrations/sqs/routes/sqs.router.ts
rename to src/api/integrations/event/sqs/routes/sqs.router.ts
index c6f911d7..d73aa138 100644
--- a/src/api/integrations/sqs/routes/sqs.router.ts
+++ b/src/api/integrations/event/sqs/routes/sqs.router.ts
@@ -1,6 +1,6 @@
import { RouterBroker } from '@api/abstract/abstract.router';
import { InstanceDto } from '@api/dto/instance.dto';
-import { SqsDto } from '@api/integrations/sqs/dto/sqs.dto';
+import { SqsDto } from '@api/integrations/event/sqs/dto/sqs.dto';
import { HttpStatus } from '@api/routes/index.router';
import { sqsController } from '@api/server.module';
import { instanceSchema, sqsSchema } from '@validate/validate.schema';
diff --git a/src/api/integrations/sqs/services/sqs.service.ts b/src/api/integrations/event/sqs/services/sqs.service.ts
similarity index 86%
rename from src/api/integrations/sqs/services/sqs.service.ts
rename to src/api/integrations/event/sqs/services/sqs.service.ts
index 2da45c33..7327df6c 100644
--- a/src/api/integrations/sqs/services/sqs.service.ts
+++ b/src/api/integrations/event/sqs/services/sqs.service.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { SqsDto } from '@api/integrations/sqs/dto/sqs.dto';
-import { initQueues } from '@api/integrations/sqs/libs/sqs.server';
+import { SqsDto } from '@api/integrations/event/sqs/dto/sqs.dto';
+import { initQueues } from '@api/integrations/event/sqs/libs/sqs.server';
import { WAMonitoringService } from '@api/services/monitor.service';
import { Logger } from '@config/logger.config';
import { Sqs } from '@prisma/client';
diff --git a/src/api/integrations/sqs/validate/sqs.schema.ts b/src/api/integrations/event/sqs/validate/sqs.schema.ts
similarity index 100%
rename from src/api/integrations/sqs/validate/sqs.schema.ts
rename to src/api/integrations/event/sqs/validate/sqs.schema.ts
diff --git a/src/api/integrations/websocket/controllers/websocket.controller.ts b/src/api/integrations/event/websocket/controllers/websocket.controller.ts
similarity index 98%
rename from src/api/integrations/websocket/controllers/websocket.controller.ts
rename to src/api/integrations/event/websocket/controllers/websocket.controller.ts
index fbcf49c9..037b0bc2 100644
--- a/src/api/integrations/websocket/controllers/websocket.controller.ts
+++ b/src/api/integrations/event/websocket/controllers/websocket.controller.ts
@@ -1,4 +1,4 @@
-import { WebsocketDto } from '@api/integrations/websocket/dto/websocket.dto';
+import { WebsocketDto } from '@api/integrations/event/websocket/dto/websocket.dto';
import { PrismaRepository } from '@api/repository/repository.service';
import { WAMonitoringService } from '@api/services/monitor.service';
import { wa } from '@api/types/wa.types';
diff --git a/src/api/integrations/websocket/dto/websocket.dto.ts b/src/api/integrations/event/websocket/dto/websocket.dto.ts
similarity index 100%
rename from src/api/integrations/websocket/dto/websocket.dto.ts
rename to src/api/integrations/event/websocket/dto/websocket.dto.ts
diff --git a/src/api/integrations/websocket/routes/websocket.router.ts b/src/api/integrations/event/websocket/routes/websocket.router.ts
similarity index 93%
rename from src/api/integrations/websocket/routes/websocket.router.ts
rename to src/api/integrations/event/websocket/routes/websocket.router.ts
index 10ce07d3..7d46d50d 100644
--- a/src/api/integrations/websocket/routes/websocket.router.ts
+++ b/src/api/integrations/event/websocket/routes/websocket.router.ts
@@ -1,6 +1,6 @@
import { RouterBroker } from '@api/abstract/abstract.router';
import { InstanceDto } from '@api/dto/instance.dto';
-import { WebsocketDto } from '@api/integrations/websocket/dto/websocket.dto';
+import { WebsocketDto } from '@api/integrations/event/websocket/dto/websocket.dto';
import { HttpStatus } from '@api/routes/index.router';
import { websocketController } from '@api/server.module';
import { instanceSchema, websocketSchema } from '@validate/validate.schema';
diff --git a/src/api/integrations/websocket/validate/websocket.schema.ts b/src/api/integrations/event/websocket/validate/websocket.schema.ts
similarity index 100%
rename from src/api/integrations/websocket/validate/websocket.schema.ts
rename to src/api/integrations/event/websocket/validate/websocket.schema.ts
diff --git a/src/api/integrations/s3/controllers/s3.controller.ts b/src/api/integrations/storage/s3/controllers/s3.controller.ts
similarity index 72%
rename from src/api/integrations/s3/controllers/s3.controller.ts
rename to src/api/integrations/storage/s3/controllers/s3.controller.ts
index e3bc6162..a72adc64 100644
--- a/src/api/integrations/s3/controllers/s3.controller.ts
+++ b/src/api/integrations/storage/s3/controllers/s3.controller.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { MediaDto } from '@api/integrations/s3/dto/media.dto';
-import { S3Service } from '@api/integrations/s3/services/s3.service';
+import { MediaDto } from '@api/integrations/storage/s3/dto/media.dto';
+import { S3Service } from '@api/integrations/storage/s3/services/s3.service';
export class S3Controller {
constructor(private readonly s3Service: S3Service) {}
diff --git a/src/api/integrations/s3/dto/media.dto.ts b/src/api/integrations/storage/s3/dto/media.dto.ts
similarity index 100%
rename from src/api/integrations/s3/dto/media.dto.ts
rename to src/api/integrations/storage/s3/dto/media.dto.ts
diff --git a/src/api/integrations/s3/libs/minio.server.ts b/src/api/integrations/storage/s3/libs/minio.server.ts
similarity index 100%
rename from src/api/integrations/s3/libs/minio.server.ts
rename to src/api/integrations/storage/s3/libs/minio.server.ts
diff --git a/src/api/integrations/s3/routes/s3.router.ts b/src/api/integrations/storage/s3/routes/s3.router.ts
similarity index 87%
rename from src/api/integrations/s3/routes/s3.router.ts
rename to src/api/integrations/storage/s3/routes/s3.router.ts
index 6ddde14a..0ef8379e 100644
--- a/src/api/integrations/s3/routes/s3.router.ts
+++ b/src/api/integrations/storage/s3/routes/s3.router.ts
@@ -1,6 +1,6 @@
import { RouterBroker } from '@api/abstract/abstract.router';
-import { MediaDto } from '@api/integrations/s3/dto/media.dto';
-import { s3Schema, s3UrlSchema } from '@api/integrations/s3/validate/s3.schema';
+import { MediaDto } from '@api/integrations/storage/s3/dto/media.dto';
+import { s3Schema, s3UrlSchema } from '@api/integrations/storage/s3/validate/s3.schema';
import { HttpStatus } from '@api/routes/index.router';
import { s3Controller } from '@api/server.module';
import { RequestHandler, Router } from 'express';
diff --git a/src/api/integrations/s3/services/s3.service.ts b/src/api/integrations/storage/s3/services/s3.service.ts
similarity index 89%
rename from src/api/integrations/s3/services/s3.service.ts
rename to src/api/integrations/storage/s3/services/s3.service.ts
index c7ecc421..3a0c913b 100644
--- a/src/api/integrations/s3/services/s3.service.ts
+++ b/src/api/integrations/storage/s3/services/s3.service.ts
@@ -1,6 +1,6 @@
import { InstanceDto } from '@api/dto/instance.dto';
-import { MediaDto } from '@api/integrations/s3/dto/media.dto';
-import { getObjectUrl } from '@api/integrations/s3/libs/minio.server';
+import { MediaDto } from '@api/integrations/storage/s3/dto/media.dto';
+import { getObjectUrl } from '@api/integrations/storage/s3/libs/minio.server';
import { PrismaRepository } from '@api/repository/repository.service';
import { Logger } from '@config/logger.config';
import { BadRequestException } from '@exceptions';
diff --git a/src/api/integrations/s3/validate/s3.schema.ts b/src/api/integrations/storage/s3/validate/s3.schema.ts
similarity index 100%
rename from src/api/integrations/s3/validate/s3.schema.ts
rename to src/api/integrations/storage/s3/validate/s3.schema.ts
diff --git a/src/api/routes/index.router.ts b/src/api/routes/index.router.ts
index 85e48383..b56d4dac 100644
--- a/src/api/routes/index.router.ts
+++ b/src/api/routes/index.router.ts
@@ -1,14 +1,14 @@
import { authGuard } from '@api/guards/auth.guard';
import { instanceExistsGuard, instanceLoggedGuard } from '@api/guards/instance.guard';
import Telemetry from '@api/guards/telemetry.guard';
-import { ChatwootRouter } from '@api/integrations/chatwoot/routes/chatwoot.router';
-import { DifyRouter } from '@api/integrations/dify/routes/dify.router';
-import { OpenaiRouter } from '@api/integrations/openai/routes/openai.router';
-import { RabbitmqRouter } from '@api/integrations/rabbitmq/routes/rabbitmq.router';
-import { S3Router } from '@api/integrations/s3/routes/s3.router';
-import { SqsRouter } from '@api/integrations/sqs/routes/sqs.router';
-import { TypebotRouter } from '@api/integrations/typebot/routes/typebot.router';
-import { WebsocketRouter } from '@api/integrations/websocket/routes/websocket.router';
+import { ChatwootRouter } from '@api/integrations/chatbot/chatwoot/routes/chatwoot.router';
+import { DifyRouter } from '@api/integrations/chatbot/dify/routes/dify.router';
+import { OpenaiRouter } from '@api/integrations/chatbot/openai/routes/openai.router';
+import { TypebotRouter } from '@api/integrations/chatbot/typebot/routes/typebot.router';
+import { RabbitmqRouter } from '@api/integrations/event/rabbitmq/routes/rabbitmq.router';
+import { SqsRouter } from '@api/integrations/event/sqs/routes/sqs.router';
+import { WebsocketRouter } from '@api/integrations/event/websocket/routes/websocket.router';
+import { S3Router } from '@api/integrations/storage/s3/routes/s3.router';
import { webhookController } from '@api/server.module';
import { configService, WaBusiness } from '@config/env.config';
import { Router } from 'express';
diff --git a/src/api/server.module.ts b/src/api/server.module.ts
index fc9328cd..3cdd5cb3 100644
--- a/src/api/server.module.ts
+++ b/src/api/server.module.ts
@@ -12,21 +12,21 @@ import { SendMessageController } from './controllers/sendMessage.controller';
import { SettingsController } from './controllers/settings.controller';
import { TemplateController } from './controllers/template.controller';
import { WebhookController } from './controllers/webhook.controller';
-import { ChatwootController } from './integrations/chatwoot/controllers/chatwoot.controller';
-import { ChatwootService } from './integrations/chatwoot/services/chatwoot.service';
-import { DifyController } from './integrations/dify/controllers/dify.controller';
-import { DifyService } from './integrations/dify/services/dify.service';
-import { OpenaiController } from './integrations/openai/controllers/openai.controller';
-import { OpenaiService } from './integrations/openai/services/openai.service';
-import { RabbitmqController } from './integrations/rabbitmq/controllers/rabbitmq.controller';
-import { RabbitmqService } from './integrations/rabbitmq/services/rabbitmq.service';
-import { S3Controller } from './integrations/s3/controllers/s3.controller';
-import { S3Service } from './integrations/s3/services/s3.service';
-import { SqsController } from './integrations/sqs/controllers/sqs.controller';
-import { SqsService } from './integrations/sqs/services/sqs.service';
-import { TypebotController } from './integrations/typebot/controllers/typebot.controller';
-import { TypebotService } from './integrations/typebot/services/typebot.service';
-import { WebsocketController } from './integrations/websocket/controllers/websocket.controller';
+import { ChatwootController } from './integrations/chatbot/chatwoot/controllers/chatwoot.controller';
+import { ChatwootService } from './integrations/chatbot/chatwoot/services/chatwoot.service';
+import { DifyController } from './integrations/chatbot/dify/controllers/dify.controller';
+import { DifyService } from './integrations/chatbot/dify/services/dify.service';
+import { OpenaiController } from './integrations/chatbot/openai/controllers/openai.controller';
+import { OpenaiService } from './integrations/chatbot/openai/services/openai.service';
+import { RabbitmqController } from './integrations/event/rabbitmq/controllers/rabbitmq.controller';
+import { RabbitmqService } from './integrations/event/rabbitmq/services/rabbitmq.service';
+import { S3Controller } from './integrations/storage/s3/controllers/s3.controller';
+import { S3Service } from './integrations/storage/s3/services/s3.service';
+import { SqsController } from './integrations/event/sqs/controllers/sqs.controller';
+import { SqsService } from './integrations/event/sqs/services/sqs.service';
+import { TypebotController } from './integrations/chatbot/typebot/controllers/typebot.controller';
+import { TypebotService } from './integrations/chatbot/typebot/services/typebot.service';
+import { WebsocketController } from './integrations/event/websocket/controllers/websocket.controller';
import { ProviderFiles } from './provider/sessions';
import { PrismaRepository } from './repository/repository.service';
import { AuthService } from './services/auth.service';
diff --git a/src/api/services/channel.service.ts b/src/api/services/channel.service.ts
index 6221eaed..7de460d1 100644
--- a/src/api/services/channel.service.ts
+++ b/src/api/services/channel.service.ts
@@ -2,15 +2,15 @@ import { InstanceDto } from '@api/dto/instance.dto';
import { ProxyDto } from '@api/dto/proxy.dto';
import { SettingsDto } from '@api/dto/settings.dto';
import { WebhookDto } from '@api/dto/webhook.dto';
-import { ChatwootDto } from '@api/integrations/chatwoot/dto/chatwoot.dto';
-import { ChatwootService } from '@api/integrations/chatwoot/services/chatwoot.service';
-import { DifyService } from '@api/integrations/dify/services/dify.service';
-import { OpenaiService } from '@api/integrations/openai/services/openai.service';
-import { RabbitmqDto } from '@api/integrations/rabbitmq/dto/rabbitmq.dto';
-import { getAMQP, removeQueues } from '@api/integrations/rabbitmq/libs/amqp.server';
-import { SqsDto } from '@api/integrations/sqs/dto/sqs.dto';
-import { getSQS, removeQueues as removeQueuesSQS } from '@api/integrations/sqs/libs/sqs.server';
-import { TypebotService } from '@api/integrations/typebot/services/typebot.service';
+import { ChatwootDto } from '@api/integrations/chatbot/chatwoot/dto/chatwoot.dto';
+import { ChatwootService } from '@api/integrations/chatbot/chatwoot/services/chatwoot.service';
+import { DifyService } from '@api/integrations/chatbot/dify/services/dify.service';
+import { OpenaiService } from '@api/integrations/chatbot/openai/services/openai.service';
+import { RabbitmqDto } from '@api/integrations/event/rabbitmq/dto/rabbitmq.dto';
+import { getAMQP, removeQueues } from '@api/integrations/event/rabbitmq/libs/amqp.server';
+import { SqsDto } from '@api/integrations/event/sqs/dto/sqs.dto';
+import { getSQS, removeQueues as removeQueuesSQS } from '@api/integrations/event/sqs/libs/sqs.server';
+import { TypebotService } from '@api/integrations/chatbot/typebot/services/typebot.service';
import { PrismaRepository, Query } from '@api/repository/repository.service';
import { waMonitor, websocketController } from '@api/server.module';
import { Events, wa } from '@api/types/wa.types';
diff --git a/src/api/services/channels/whatsapp.baileys.service.ts b/src/api/services/channels/whatsapp.baileys.service.ts
index d6c51f0c..735c2314 100644
--- a/src/api/services/channels/whatsapp.baileys.service.ts
+++ b/src/api/services/channels/whatsapp.baileys.service.ts
@@ -44,8 +44,8 @@ import {
SendTextDto,
StatusMessage,
} from '@api/dto/sendMessage.dto';
-import { chatwootImport } from '@api/integrations/chatwoot/utils/chatwoot-import-helper';
-import * as s3Service from '@api/integrations/s3/libs/minio.server';
+import { chatwootImport } from '@api/integrations/chatbot/chatwoot/utils/chatwoot-import-helper';
+import * as s3Service from '@api/integrations/storage/s3/libs/minio.server';
import { ProviderFiles } from '@api/provider/sessions';
import { PrismaRepository } from '@api/repository/repository.service';
import { waMonitor } from '@api/server.module';
diff --git a/src/api/services/channels/whatsapp.business.service.ts b/src/api/services/channels/whatsapp.business.service.ts
index 2e227408..5a739586 100644
--- a/src/api/services/channels/whatsapp.business.service.ts
+++ b/src/api/services/channels/whatsapp.business.service.ts
@@ -13,7 +13,7 @@ import {
SendTemplateDto,
SendTextDto,
} from '@api/dto/sendMessage.dto';
-import * as s3Service from '@api/integrations/s3/libs/minio.server';
+import * as s3Service from '@api/integrations/storage/s3/libs/minio.server';
import { ProviderFiles } from '@api/provider/sessions';
import { PrismaRepository } from '@api/repository/repository.service';
import { CacheService } from '@api/services/cache.service';
diff --git a/src/main.ts b/src/main.ts
index 08594819..49523101 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,5 +1,5 @@
-import { initAMQP, initGlobalQueues } from '@api/integrations/rabbitmq/libs/amqp.server';
-import { initSQS } from '@api/integrations/sqs/libs/sqs.server';
+import { initAMQP, initGlobalQueues } from '@api/integrations/event/rabbitmq/libs/amqp.server';
+import { initSQS } from '@api/integrations/event/sqs/libs/sqs.server';
import { ProviderFiles } from '@api/provider/sessions';
import { PrismaRepository } from '@api/repository/repository.service';
import { HttpStatus, router } from '@api/routes/index.router';
diff --git a/src/validate/validate.schema.ts b/src/validate/validate.schema.ts
index 22d910f9..64fae31c 100644
--- a/src/validate/validate.schema.ts
+++ b/src/validate/validate.schema.ts
@@ -9,9 +9,9 @@ export * from './settings.schema';
export * from './template.schema';
export * from './webhook.schema';
export * from './websocket.schema';
-export * from '@api/integrations/chatwoot/validate/chatwoot.schema';
-export * from '@api/integrations/dify/validate/dify.schema';
-export * from '@api/integrations/openai/validate/openai.schema';
-export * from '@api/integrations/rabbitmq/validate/rabbitmq.schema';
-export * from '@api/integrations/sqs/validate/sqs.schema';
-export * from '@api/integrations/typebot/validate/typebot.schema';
+export * from '@api/integrations/chatbot/chatwoot/validate/chatwoot.schema';
+export * from '@api/integrations/chatbot/dify/validate/dify.schema';
+export * from '@api/integrations/chatbot/openai/validate/openai.schema';
+export * from '@api/integrations/event/rabbitmq/validate/rabbitmq.schema';
+export * from '@api/integrations/event/sqs/validate/sqs.schema';
+export * from '@api/integrations/chatbot/typebot/validate/typebot.schema';