gitextract_qh16oa6j/ ├── .circleci/ │ └── config.yml ├── .dockerignore ├── .firebasekey.json.enc ├── .github/ │ └── workflows/ │ ├── docker-community-profiler-latest.yml │ ├── docker-community-push-latest.yml │ ├── docker-community-worker-push-latest.yml │ ├── docker-image-en-tag-push.yml │ ├── docker-image-tag-community-tag-push.yml │ ├── docker-image-tag-worker-community-tag-push.yml │ └── docker-push-en-push-latest.yml ├── .gitignore ├── .glitch-assets ├── .npmrc_ ├── .travis.yml ├── CHANGELOG.md ├── Dockerfile ├── Dockerfile-en ├── Dockerfile-jobs ├── Dockerfile-profiler ├── LICENSE ├── README.md ├── app.js ├── app.json ├── archive.sh ├── bin/ │ └── www ├── channels/ │ ├── channelManager.js │ └── chat21/ │ ├── chat21Client.js │ ├── chat21Config.js │ ├── chat21Contact.js │ ├── chat21Event.js │ ├── chat21Handler.js │ ├── chat21Util.js │ ├── chat21WebHook.js │ ├── configRoute.js │ ├── firebaseConfig.js │ ├── firebaseConnector.js │ ├── firebaseService.js │ ├── firebaseauth.js │ ├── nativeauth.js │ ├── package.json │ ├── test-int/ │ │ ├── chat21Handler.js │ │ └── chat21WebHook.js │ └── tiledesk-util.js ├── config/ │ ├── cache.js │ ├── database.js │ ├── email.js │ ├── global.js │ ├── kb/ │ │ ├── embedding.js │ │ ├── engine.hybrid.js │ │ ├── engine.js │ │ ├── prompt/ │ │ │ └── rag/ │ │ │ ├── PromptManager.js │ │ │ ├── general.txt │ │ │ ├── gpt-3.5.txt │ │ │ ├── gpt-4.1.txt │ │ │ ├── gpt-4.txt │ │ │ ├── gpt-4o.txt │ │ │ ├── gpt-5.txt │ │ │ └── gpt-5.x.txt │ │ └── situatedContext.js │ ├── labels/ │ │ └── widget.json │ ├── widget.js │ ├── winston-mt-multilogger.js │ ├── winston-mt.js │ └── winston.js ├── deploy-beta.sh ├── deploy.sh ├── deploynew.sh ├── docs/ │ ├── api-dev.md │ ├── api-mgm.md │ ├── deploy.md │ ├── performance.md │ ├── routes-answered.md │ ├── testing.md │ └── upgrading.md ├── errorCodes.js ├── event/ │ ├── authEvent.js │ ├── botEvent.js │ ├── connectionEvent.js │ ├── departmentEvent.js │ ├── emailEvent.js │ ├── faqBotEvent.js │ ├── groupEvent.js │ ├── integrationEvent.js │ ├── labelEvent.js │ ├── leadEvent.js │ ├── message2Event.js │ ├── messageEvent.js │ ├── messagePromiseEvent.js │ ├── projectEvent.js │ ├── projectUserEvent.js │ ├── requestEvent.js │ ├── roleEvent.js │ └── subscriptionEvent.js ├── jobs.js ├── jobsManager.js ├── middleware/ │ ├── fetchLabels.js │ ├── file-type.js │ ├── has-role.js │ ├── ipFilter.js │ ├── noentitycheck.js │ ├── passport.js │ ├── recaptcha.js │ └── valid-token.js ├── migrations/ │ ├── 1601628781595-project_users_presence.js │ ├── 1602847963299-message-channel_type-and-channel-fields-added--autosync.js │ ├── 1603797978971-project_users-status-field-added--autosync.js │ ├── 1603955232377-requests-channel-outbound-fields--autosync.js │ ├── 1603955232378-requests-channel-fields--autosync.js │ ├── 1604082287722-labels-data-default-fields--autosync.js │ ├── 1604082288723-labels-waiting_time-added_suffix_reply_time--autosync.js │ ├── 1611576399823-project-settings-max_agent_assigned_renamed--autosync.js │ ├── 1611576534533-project_user-max_assigned_chat-renamed--autosync.js │ ├── 1615214914082-faq-intent_id-intent_display_name-fields-added--autosync.js │ ├── 1616685902635-request_agents_to_snapshot_agents--autosync.js │ ├── 1616687831941-trigger_availableAgentsCount_to_snapshot_agents--autosync.js │ ├── 1616687831941-trigger_availableAgentsCount_to_snapshot_agents-key--autosync.js │ ├── 1619185894304-request-remove-duplicated-request-by-request_id--autosync.js │ ├── 1752742733903-namespace-engine-migration.js │ ├── 1757601159298-project_user_role_type.js │ └── 1771844588961-phone-channels-migration.js ├── models/ │ ├── actionsConstants.js │ ├── analyticMessagesResult.js │ ├── analyticProject_usersResult.js │ ├── analyticResult.js │ ├── analytics.js │ ├── auth.js │ ├── bot.1.js │ ├── channel.js │ ├── channelConstants.js │ ├── chatbotTemplates.js │ ├── chatbotTypes.js │ ├── contact.js │ ├── department.js │ ├── faq.js │ ├── faq_kb.js │ ├── firebaseSetting.js │ ├── flowLogs.js │ ├── group.js │ ├── groupMemberSchama.js │ ├── integrations.js │ ├── kbConstants.js │ ├── kb_setting.js │ ├── label.js │ ├── labelSingle.js │ ├── lead.js │ ├── leadConstants.js │ ├── location.js │ ├── message.js │ ├── messageConstants.js │ ├── note.js │ ├── openai_kbs.js │ ├── pending-invitation.js │ ├── permissionConstants.js │ ├── presence.js │ ├── profile.js │ ├── project.js │ ├── project_user.js │ ├── projectf.js │ ├── property.js │ ├── request.js │ ├── requestConstants.js │ ├── requestSnapshot.js │ ├── requestStatus.js │ ├── requester.js │ ├── role.js │ ├── roleConstants.js │ ├── routerLogger.js │ ├── routingConstants.js │ ├── segment.js │ ├── setting.js │ ├── subscription.js │ ├── subscriptionLog.js │ ├── tag.js │ ├── tagLibrary.js │ ├── transaction.js │ ├── user.js │ ├── webhook.js │ └── whatsappLog.js ├── package.json ├── public/ │ ├── loaderio-e6d5fbf72a45848fe2f43f7a986a1103.txt │ ├── samples/ │ │ └── bot/ │ │ └── external/ │ │ └── searcher/ │ │ └── parse │ ├── stylesheets/ │ │ └── style.css │ └── wstest/ │ ├── TB.js │ ├── index.html │ └── tilebase.js ├── publiccode.yml ├── pubmodules/ │ ├── activities/ │ │ ├── activityArchiver.js │ │ ├── index.js │ │ ├── models/ │ │ │ └── activity.js │ │ ├── routes/ │ │ │ └── activity.js │ │ └── test/ │ │ └── activityRoute.js │ ├── analytics/ │ │ ├── analytics.js │ │ └── index.js │ ├── apps/ │ │ ├── index.js │ │ └── listener.js │ ├── cache/ │ │ ├── index.js │ │ └── mongoose-cachegoose-fn.js │ ├── canned/ │ │ ├── cannedResponse.js │ │ ├── cannedResponseRoute.js │ │ └── index.js │ ├── chatbotTemplates/ │ │ ├── index.js │ │ └── listener.js │ ├── dialogflow/ │ │ ├── index.js │ │ └── listener.js │ ├── emailNotification/ │ │ ├── index.js │ │ └── requestNotification.js │ ├── entityEraser/ │ │ ├── eraserInterceptor.js │ │ └── index.js │ ├── events/ │ │ ├── analyticEventsResult.js │ │ ├── event.js │ │ ├── event2Event.js │ │ ├── eventEvent.js │ │ ├── eventRoute.js │ │ ├── eventService.js │ │ ├── index.js │ │ └── test/ │ │ └── eventRoute.js │ ├── kaleyra/ │ │ ├── index.js │ │ └── listener.js │ ├── messageActions/ │ │ ├── event/ │ │ │ └── messageActionEvent.js │ │ ├── index.js │ │ └── messageActionsInterceptor.js │ ├── messageTransformer/ │ │ ├── index.js │ │ ├── messageHandlebarsTransformerInterceptor.js │ │ ├── messageTransformerInterceptor.js │ │ ├── microLanguageAttributesTransformerInterceptor.js │ │ └── microLanguageTransformerInterceptor.js │ ├── messenger/ │ │ ├── index.js │ │ └── listener.js │ ├── mqttTest/ │ │ ├── index.js │ │ └── listener.js │ ├── pubModulesManager.js │ ├── queue/ │ │ ├── index.js │ │ ├── reconnect.js │ │ └── reconnectFanout.js │ ├── rasa/ │ │ ├── index.js │ │ └── listener.js │ ├── routing-queue/ │ │ ├── index.js │ │ ├── listener.js │ │ └── listenerQueued.js │ ├── rules/ │ │ ├── appRules.js │ │ └── conciergeBot.js │ ├── s/ │ │ ├── index.js │ │ ├── models/ │ │ │ └── subscription-payment.js │ │ └── stripe/ │ │ └── index.js │ ├── scheduler/ │ │ ├── index.js │ │ ├── taskRunner.js │ │ └── tasks/ │ │ ├── closeAgentUnresponsiveRequestTask.js │ │ ├── closeBotUnresponsiveRequestTask.js │ │ └── requestTaskSchedulerAgenda.js │ ├── sms/ │ │ ├── index.js │ │ └── listener.js │ ├── telegram/ │ │ ├── index.js │ │ └── listener.js │ ├── tilebot/ │ │ ├── index.js │ │ └── listener.js │ ├── trigger/ │ │ ├── default.js │ │ ├── event/ │ │ │ ├── actionEventEmitter.js │ │ │ ├── flowEventEmitter.js │ │ │ └── triggerEventEmitter.js │ │ ├── index.js │ │ ├── models/ │ │ │ └── trigger.js │ │ ├── rulesTrigger.js │ │ ├── start.js │ │ └── triggerRoute.js │ ├── voice/ │ │ ├── index.js │ │ └── listener.js │ ├── voice-twilio/ │ │ ├── index.js │ │ └── listener.js │ └── whatsapp/ │ ├── index.js │ └── listener.js ├── routes/ │ ├── admin.js │ ├── answered.js │ ├── auth.js │ ├── authtest.js │ ├── authtestWithRoleCheck.js │ ├── campaigns.js │ ├── copilot.js │ ├── department.js │ ├── email.js │ ├── faq.js │ ├── faq_kb.js │ ├── faqpub.js │ ├── files.js │ ├── filesp.js │ ├── group.js │ ├── images.js │ ├── index.js │ ├── integration.js │ ├── jwt.js │ ├── kb.js │ ├── kbsettings.js │ ├── key.js │ ├── labels-no-default.js │ ├── labels.js │ ├── labelsSingle.js │ ├── lead.js │ ├── llm.js │ ├── logs.js │ ├── mcp.js │ ├── message.js │ ├── messagesRoot.js │ ├── openai.js │ ├── pending-invitation.js │ ├── project.js │ ├── project_user.js │ ├── project_user_test.js │ ├── property.js │ ├── public-analytics.js │ ├── public-request.js │ ├── quotes.js │ ├── request.js │ ├── requestUtilRoot.js │ ├── roles.js │ ├── segment.js │ ├── setting.js │ ├── subscription.js │ ├── tag.js │ ├── troubleshooting.js │ ├── unanswered.js │ ├── urls.js │ ├── user-request.js │ ├── users-util.js │ ├── users.js │ ├── webhook.js │ ├── webhooks.js │ ├── widget.js │ └── widgetLoader.js ├── services/ │ ├── BotSubscriptionNotifier.js │ ├── QuoteManager.js │ ├── RateManager.js │ ├── Scheduler.js │ ├── aiManager.js │ ├── aiReindexService.js │ ├── aiService.js │ ├── banUserNotifier.js │ ├── bootDataLoader.js │ ├── cacheEnabler.js │ ├── chatbotService.js │ ├── departmentService.js │ ├── emailService.js │ ├── faqBotHandler.js │ ├── faqBotSupport.js │ ├── faqService.js │ ├── fileGridFsService.js │ ├── fileService.js │ ├── filesystemService.js │ ├── geoService.js │ ├── integrationService.js │ ├── labelService-no-default.js │ ├── labelService.js │ ├── leadService.js │ ├── logsService.js │ ├── mcpService.js │ ├── messageService.js │ ├── modulesManager.js │ ├── mongoose-cache-fn.js │ ├── mongoose-cache.js │ ├── operatingHoursService.js │ ├── pendingInvitationService.js │ ├── projectService.js │ ├── projectUserService.js │ ├── requestService.js │ ├── schemaMigrationService.js │ ├── settingDataLoader.js │ ├── subscriptionNotifier.js │ ├── subscriptionNotifierQueued.js │ ├── testWsService.js │ ├── trainingService.js │ ├── updateLeadQueued.js │ ├── updateRequestSnapshotQueued.js │ ├── userService.js │ └── webhookService.js ├── template/ │ ├── chatbot/ │ │ ├── blank.js │ │ ├── blank_copilot.js │ │ ├── blank_voice.js │ │ ├── blank_voice_twilio.js │ │ ├── blank_webhook.js │ │ ├── empty.js │ │ ├── example.js │ │ ├── handoff.js │ │ ├── index.js │ │ └── official_copilot.js │ └── email/ │ ├── assignedEmailMessage.html │ ├── assignedRequest.html │ ├── beenInvitedExistingUser.html │ ├── beenInvitedNewUser.html │ ├── checkpointReachedEmail.html │ ├── emailDirect.html │ ├── newMessage.html │ ├── newMessageFollower.html │ ├── passwordChanged.html │ ├── pooledEmailMessage.html │ ├── pooledRequest.html │ ├── redirectToDesktopEmail.html │ ├── redirectToDesktopEmail_new.html │ ├── resetPassword.html │ ├── sendTranscript.html │ ├── test.html │ ├── ticket.html │ ├── ticket.txt │ └── verify.html ├── test/ │ ├── app-test.js │ ├── authentication.js │ ├── authenticationJwt.js │ ├── authorization.js │ ├── campaignsRoute.js │ ├── cannedRoute.js │ ├── dateUtils.test.js │ ├── departmentService.js │ ├── emailService.js │ ├── faqRoute.js │ ├── faqService.js │ ├── faqkbRoute.js │ ├── fileFilter.test.js │ ├── fileRoute.js │ ├── filepRoute.js │ ├── fixtures/ │ │ ├── TooManykbUrlsList.txt │ │ ├── example-faqs.csv │ │ ├── example-json-intents.txt │ │ ├── example-json-multiple-operation-mock.js │ │ ├── example-json-rules.txt │ │ ├── example-json.txt │ │ ├── example-kb-faqs.csv │ │ ├── example-webhook-json.txt │ │ ├── example.json │ │ ├── exported_namespace.json │ │ ├── kbUrlsList.txt │ │ └── sample.xyz │ ├── imageRoute.js │ ├── jwtRoute.js │ ├── kbRoute.js │ ├── kbsettingsRoute.js │ ├── keysRoute.js │ ├── labelRoute.js │ ├── labelService.js │ ├── leadRoute.js │ ├── leadService.js │ ├── logsRoute.js │ ├── messageRootRoute.js │ ├── messageRoute-newjwt._js │ ├── messageRoute.js │ ├── messageService.js │ ├── mock/ │ │ ├── chatbotMock.js │ │ ├── emailMock.js │ │ ├── messageMock.js │ │ ├── projectMock.js │ │ ├── requestMock.js │ │ └── tdCacheMock.js │ ├── openaiRoute.js │ ├── projectRoute.js │ ├── projectService.js │ ├── projectUserRoute.js │ ├── quoteManager.js │ ├── requestRoute.js │ ├── requestService.js │ ├── userRequestRoute.js │ ├── userRoute.js │ ├── userService.js │ └── webhookRoute.js ├── test-int/ │ ├── bot.js │ ├── botSubscriptionNotifier.js │ ├── cache-project.js │ └── cache-project_user.js ├── tiledesk-jmeter.jmx ├── utils/ │ ├── TdCache.js │ ├── UIDGenerator.js │ ├── aiUtils.js │ ├── arrayUtil.js │ ├── autoIncrement.js │ ├── botFromParticipant.js │ ├── cacheUtil.js │ ├── commons/ │ │ ├── extend-query.js │ │ ├── q1.js │ │ └── testperformance.js │ ├── connectionUtil.js │ ├── datesUtil.js │ ├── fileUtils.js │ ├── httpUtil.js │ ├── i8nUtil.js │ ├── jobs-worker-queue-manager/ │ │ ├── JobManagerV2.js │ │ └── queueManagerClassV2.js │ ├── orgUtil.js │ ├── phoneUtil.js │ ├── project_userUtil.js │ ├── promiseUtil.js │ ├── recipientEmailUtil.js │ ├── requestUtil.js │ ├── segment2mongoConverter.js │ ├── sendEmailUtil.js │ ├── sendMessageUtil.js │ ├── stringUtil.js │ ├── userUtil.js │ └── winston-mongodb/ │ ├── helpers.js │ ├── winston-mongodb.d.ts │ └── winston-mongodb.js ├── views/ │ ├── admin-get.jade │ ├── admin-saved-get.jade │ ├── error.jade │ ├── index.jade │ ├── layout-admin.jade │ ├── layout.jade │ ├── messages.jade │ └── messages_old.jade └── websocket/ ├── pubsub.js ├── subscription.js └── webSocketServer.js