@tiledesk/tiledesk-tybot-connector 2.0.38 → 2.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/engine/TiledeskChatbot.js +60 -3
- package/engine/mock/MockBotsDataSource.js +1 -1
- package/index.js +154 -3
- package/logs/app.log +110 -0
- package/package.json +1 -1
- package/services/TilebotService.js +36 -0
- package/tiledeskChatbotPlugs/DirectivesChatbotPlug.js +100 -519
- package/tiledeskChatbotPlugs/directives/DirAddKbContent.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirAddTags.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirAiCondition.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirAiPrompt.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirAskGPTV2.js +2 -2
- package/tiledeskChatbotPlugs/directives/DirAssistant.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirBrevo.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirCaptureUserReply.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirClearTranscript.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirClose.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirCode.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirCondition.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirContactUpdate.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirCustomerio.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirDeleteVariable.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirDepartment.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirFlowLog.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirGptTask.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirHubspot.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirIfOnlineAgentsV2.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirIfOpenHours.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirIntent.js +4 -0
- package/tiledeskChatbotPlugs/directives/DirJSONCondition.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirMake.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirMoveToAgent.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirMoveToUnassigned.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirQapla.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirRandomReply.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirReplaceBot.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirReplaceBotV2.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirReplaceBotV3.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirReply.js +10 -2
- package/tiledeskChatbotPlugs/directives/DirReplyV2.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirSendEmail.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirSendWhatsapp.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirSetAttributeV2.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirWait.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirWebRequestV2.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirWebResponse.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirWhatsappByAttribute.js +1 -1
- package/utils/TiledeskChatbotUtil.js +131 -141
|
@@ -680,189 +680,172 @@ class TiledeskChatbotUtil {
|
|
|
680
680
|
// update request context
|
|
681
681
|
try {
|
|
682
682
|
winston.debug("Updating request variables. Message:", message);
|
|
683
|
-
|
|
683
|
+
|
|
684
684
|
|
|
685
|
-
|
|
686
|
-
|
|
685
|
+
const addQueue = [];
|
|
686
|
+
const deleteQueue = [];
|
|
687
|
+
const add = (k, v) => { if (v !== undefined && v !== null && k !== undefined && k !== null) addQueue.push([k, v]); };
|
|
688
|
+
const remove = (k) => { if(k) deleteQueue.push(k);}
|
|
689
|
+
|
|
690
|
+
// --- BASE ATTRIBUTES ---
|
|
691
|
+
if (process.env.BASE_URL) {
|
|
692
|
+
add(TiledeskChatbotConst.REQ_CHAT_URL, `${process.env.BASE_URL}/dashboard/#/project/${projectId}/wsrequest/${requestId}/messages`);
|
|
687
693
|
}
|
|
688
694
|
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
695
|
+
add(TiledeskChatbotConst.REQ_PROJECT_ID_KEY, projectId);
|
|
696
|
+
add(TiledeskChatbotConst.REQ_REQUEST_ID_KEY, requestId);
|
|
697
|
+
|
|
698
|
+
// --- CHATBOT INFO ---
|
|
692
699
|
if (chatbot.bot) {
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
}
|
|
696
|
-
|
|
697
|
-
if (chatbotToken) {
|
|
698
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_CHATBOT_TOKEN, chatbotToken); // DEPRECATED
|
|
699
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_CHATBOT_TOKEN_v2, "JWT " + chatbotToken);
|
|
700
|
+
add(TiledeskChatbotConst.REQ_CHATBOT_NAME_KEY, chatbot.bot.name);
|
|
701
|
+
add(TiledeskChatbotConst.REQ_CHATBOT_ID_KEY, chatbot.bot._id);
|
|
700
702
|
}
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
703
|
+
|
|
704
|
+
// --- TOKEN ---
|
|
705
|
+
if (chatbotToken || process.env.TILEDESK_API) {
|
|
706
|
+
add(TiledeskChatbotConst.REQ_CHATBOT_TOKEN, chatbotToken); // deprecated
|
|
707
|
+
add(TiledeskChatbotConst.REQ_CHATBOT_TOKEN_v2, "JWT " + chatbotToken);
|
|
705
708
|
}
|
|
706
|
-
|
|
709
|
+
|
|
707
710
|
if (process.env.API_URL) {
|
|
708
|
-
|
|
711
|
+
add(TiledeskChatbotConst.API_BASE_URL, process.env.API_URL);
|
|
709
712
|
}
|
|
710
713
|
|
|
714
|
+
// --- USER MESSAGE ---
|
|
711
715
|
if (message.text && message.sender !== "_tdinternal") {
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
716
|
+
remove(TiledeskChatbotConst.USER_INPUT); // REAL delete
|
|
717
|
+
|
|
718
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_TEXT_KEY, message.text); // deprecated
|
|
719
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_TEXT_v2_KEY, message.text);
|
|
720
|
+
|
|
721
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_MESSAGE_TYPE_KEY, message.type);
|
|
722
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_MESSAGE_KEY,
|
|
723
|
+
TiledeskChatbotUtil.lastUserMessageFrom(message));
|
|
724
|
+
|
|
715
725
|
if (message.channel) {
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
}
|
|
719
|
-
else {
|
|
720
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_CHAT_CHANNEL, message.channel.name);
|
|
721
|
-
}
|
|
726
|
+
const channelName = message.channel.name === "chat21" ? "web" : message.channel.name;
|
|
727
|
+
add(TiledeskChatbotConst.REQ_CHAT_CHANNEL, channelName);
|
|
722
728
|
}
|
|
723
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_LAST_USER_MESSAGE_TYPE_KEY, message.type);
|
|
724
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_LAST_USER_MESSAGE_KEY, TiledeskChatbotUtil.lastUserMessageFrom(message)); // JSON TYPE *NEW
|
|
725
729
|
}
|
|
726
730
|
|
|
727
|
-
//
|
|
728
|
-
if (message.type && message.type === "image" && message.metadata) {
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_LAST_USER_IMAGE_TYPE, message.metadata.type);
|
|
735
|
-
}
|
|
731
|
+
// --- IMAGE ---
|
|
732
|
+
if (message.type && message.type === "image" && message.metadata?.src) {
|
|
733
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_IMAGE_URL, message.metadata.src);
|
|
734
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_IMAGE_NAME, message.metadata.name);
|
|
735
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_IMAGE_WIDTH, message.metadata.width);
|
|
736
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_IMAGE_HEIGHT, message.metadata.height);
|
|
737
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_IMAGE_TYPE, message.metadata.type);
|
|
736
738
|
}
|
|
737
739
|
|
|
738
|
-
//
|
|
739
|
-
if (message.type && message.type === "file" && message.metadata) {
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
740
|
+
// --- DOCUMENT ---
|
|
741
|
+
if (message.type && message.type === "file" && message.metadata?.src) {
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
if (message.metadata.src) {
|
|
745
|
+
const m = message.metadata;
|
|
746
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_DOCUMENT_URL, m.src); // deprecated
|
|
747
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_DOCUMENT_AS_ATTACHMENT_URL, m.src);
|
|
748
|
+
|
|
749
|
+
const inlineUrl = m.src.replace("/download", "/");
|
|
750
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_DOCUMENT_AS_INLINE_URL, inlineUrl);
|
|
751
|
+
|
|
752
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_DOCUMENT_NAME, m.name);
|
|
753
|
+
add(TiledeskChatbotConst.REQ_LAST_USER_DOCUMENT_TYPE, m.type);
|
|
751
754
|
}
|
|
752
755
|
}
|
|
753
756
|
|
|
757
|
+
// --- LEAD ---
|
|
754
758
|
if (message && message.request && message.request.lead) {
|
|
755
759
|
winston.debug("(TiledeskChatbotUtil) Lead found with email: " + message.request.lead.email + " and lead.fullname " + message.request.lead.fullname);
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
}
|
|
764
|
-
catch(error) {
|
|
765
|
-
winston.error("(TiledeskChatbotUtil) Error on setting userEmail:", error);
|
|
766
|
-
}
|
|
767
|
-
}
|
|
768
|
-
let currentLeadName = await chatbot.getParameter(TiledeskChatbotConst.REQ_LEAD_USERFULLNAME_KEY);
|
|
769
|
-
winston.debug("(TiledeskChatbotUtil) You lead email from attributes: " + currentLeadEmail);
|
|
770
|
-
if (message.request.lead.fullname && !currentLeadName) {
|
|
771
|
-
// worth saving
|
|
772
|
-
winston.debug("(TiledeskChatbotUtil) worth saving email");
|
|
773
|
-
try {
|
|
774
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_LEAD_USERFULLNAME_KEY, message.request.lead.fullname);
|
|
775
|
-
}
|
|
776
|
-
catch(error) {
|
|
777
|
-
winston.error("(TiledeskChatbotUtil) Error on setting userFullname: ", error);
|
|
778
|
-
}
|
|
779
|
-
}
|
|
760
|
+
const lead = message.request.lead;
|
|
761
|
+
|
|
762
|
+
const savedEmail = await chatbot.getParameter(TiledeskChatbotConst.REQ_LEAD_EMAIL_KEY);
|
|
763
|
+
if (lead.email && !savedEmail) add(TiledeskChatbotConst.REQ_LEAD_EMAIL_KEY, lead.email);
|
|
764
|
+
|
|
765
|
+
const savedName = await chatbot.getParameter(TiledeskChatbotConst.REQ_LEAD_USERFULLNAME_KEY);
|
|
766
|
+
if (lead.fullname && !savedName) add(TiledeskChatbotConst.REQ_LEAD_USERFULLNAME_KEY, lead.fullname);
|
|
780
767
|
|
|
781
768
|
if (message.request.lead.phone) {
|
|
782
|
-
|
|
769
|
+
add(TiledeskChatbotConst.REQ_USER_PHONE_KEY, lead.phone);
|
|
783
770
|
}
|
|
784
|
-
if (
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
if (splits && splits.length > 1) {
|
|
790
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_CURRENT_PHONE_NUMBER_KEY,splits[1]);
|
|
771
|
+
if (lead.lead_id) {
|
|
772
|
+
const prefixes = ["wab-", "vxml-", CHANNEL_NAME.VOICE_TWILIO, CHANNEL_NAME.SMS];
|
|
773
|
+
if (prefixes.some(pref => lead.lead_id.startsWith(pref))) {
|
|
774
|
+
const parts = lead.lead_id.split("-");
|
|
775
|
+
if (parts[1]) add(TiledeskChatbotConst.REQ_CURRENT_PHONE_NUMBER_KEY, parts[1]);
|
|
791
776
|
}
|
|
792
777
|
}
|
|
793
778
|
if (message.request.lead._id) {
|
|
794
|
-
|
|
779
|
+
add(TiledeskChatbotConst.REQ_USER_LEAD_ID_KEY, lead._id);
|
|
795
780
|
}
|
|
796
781
|
if (message.request.lead.company) {
|
|
797
|
-
|
|
782
|
+
add(TiledeskChatbotConst.REQ_USER_COMPANY_KEY, lead.company);
|
|
798
783
|
}
|
|
799
784
|
if (message.request.ticket_id) {
|
|
800
|
-
|
|
785
|
+
add(TiledeskChatbotConst.REQ_TICKET_ID_KEY, message.request.ticket_id);
|
|
801
786
|
}
|
|
802
787
|
}
|
|
803
788
|
|
|
804
|
-
|
|
789
|
+
// --- LAST MESSAGE ID ---
|
|
790
|
+
const messageId = message._id;
|
|
791
|
+
add(TiledeskChatbotConst.REQ_LAST_MESSAGE_ID_KEY, messageId);
|
|
792
|
+
|
|
793
|
+
// --- LOCATION ---
|
|
805
794
|
if (message.request && message.request.location && message.request.location.country) {
|
|
806
|
-
|
|
795
|
+
add(TiledeskChatbotConst.REQ_COUNTRY_KEY, message.request.location.country);
|
|
807
796
|
}
|
|
808
797
|
if (message.request && message.request.location && message.request.location.city) {
|
|
809
|
-
|
|
798
|
+
add(TiledeskChatbotConst.REQ_CITY_KEY, message.request.location.city);
|
|
810
799
|
}
|
|
800
|
+
|
|
801
|
+
// --- USER CONTEXT ---
|
|
811
802
|
if (message.request) {
|
|
812
|
-
let
|
|
813
|
-
if (
|
|
814
|
-
|
|
815
|
-
if (
|
|
816
|
-
user_language = languages[0].code;
|
|
817
|
-
}
|
|
803
|
+
let userLang = message.request.language;
|
|
804
|
+
if (userLang) {
|
|
805
|
+
const parsed = parser.parse(userLang);
|
|
806
|
+
if (parsed?.[0]?.code) userLang = parsed[0].code;
|
|
818
807
|
}
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
808
|
+
|
|
809
|
+
add(TiledeskChatbotConst.REQ_USER_SOURCE_PAGE_KEY, message.request.sourcePage);
|
|
810
|
+
add(TiledeskChatbotConst.REQ_USER_LANGUAGE_KEY, userLang);
|
|
811
|
+
add(TiledeskChatbotConst.REQ_USER_AGENT_KEY, message.request.userAgent);
|
|
812
|
+
|
|
822
813
|
if (message.request.attributes && message.request.attributes.decoded_jwt) {
|
|
823
|
-
|
|
824
|
-
}
|
|
825
|
-
if (message.request.requester) {
|
|
826
|
-
if (message.request.requester.isAuthenticated === true) {
|
|
827
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_REQUESTER_IS_AUTHENTICATED_KEY, true);
|
|
828
|
-
}
|
|
829
|
-
else {
|
|
830
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_REQUESTER_IS_AUTHENTICATED_KEY, false);
|
|
831
|
-
}
|
|
814
|
+
add(TiledeskChatbotConst.REQ_DECODED_JWT_KEY, message.request.attributes.decoded_jwt);
|
|
832
815
|
}
|
|
816
|
+
|
|
817
|
+
const auth = !!message.request.requester?.isAuthenticated;
|
|
818
|
+
add(TiledeskChatbotConst.REQ_REQUESTER_IS_AUTHENTICATED_KEY, auth);
|
|
833
819
|
}
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_DEPARTMENT_NAME_KEY, message.request.department.name);
|
|
841
|
-
}
|
|
842
|
-
else if (message.attributes && message.attributes.departmentId) {
|
|
843
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_DEPARTMENT_ID_KEY, message.attributes.departmentId);
|
|
844
|
-
await chatbot.addParameter(TiledeskChatbotConst.REQ_DEPARTMENT_NAME_KEY, message.attributes.departmentName);
|
|
820
|
+
|
|
821
|
+
// --- DEPARTMENT ---
|
|
822
|
+
const dep = message.request?.department || message.attributes;
|
|
823
|
+
if (dep) {
|
|
824
|
+
add(TiledeskChatbotConst.REQ_DEPARTMENT_ID_KEY, dep.departmentId || dep._id);
|
|
825
|
+
add(TiledeskChatbotConst.REQ_DEPARTMENT_NAME_KEY, dep.departmentName || dep.name);
|
|
845
826
|
}
|
|
846
827
|
|
|
828
|
+
// --- EMAIL ATTRIBUTES ---
|
|
847
829
|
if (message.attributes) {
|
|
848
|
-
const
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
// aggiungi qui altri campi se necessario
|
|
830
|
+
const emailMapping = [
|
|
831
|
+
["email_subject", TiledeskChatbotConst.REQ_EMAIL_SUBJECT],
|
|
832
|
+
["email_toEmail", TiledeskChatbotConst.REQ_EMAIL_TO],
|
|
833
|
+
["email_fromEmail", TiledeskChatbotConst.REQ_EMAIL_FROM],
|
|
834
|
+
["email_messageId", TiledeskChatbotConst.REQ_EMAIL_MESSAGE_ID],
|
|
835
|
+
["email_replyTo", TiledeskChatbotConst.REQ_EMAIL_REPLY_TO],
|
|
836
|
+
["email_eml", TiledeskChatbotConst.REQ_EMAIL_EML],
|
|
837
|
+
["link", TiledeskChatbotConst.REQ_EMAIL_ATTACHMENTS_LINK],
|
|
838
|
+
["attachments", TiledeskChatbotConst.REQ_EMAIL_ATTACHMENTS_FILES]
|
|
858
839
|
];
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
840
|
+
|
|
841
|
+
for (const [attr, key] of emailMapping) {
|
|
842
|
+
if (message.attributes[attr] !== undefined) {
|
|
843
|
+
add(key, message.attributes[attr]);
|
|
862
844
|
}
|
|
863
845
|
}
|
|
864
846
|
}
|
|
865
847
|
|
|
848
|
+
// --- PAYLOAD ---
|
|
866
849
|
if (message && message.request && message.request.attributes && message.request.attributes.payload) {
|
|
867
850
|
if (!message.attributes) {
|
|
868
851
|
message.attributes = {}
|
|
@@ -873,15 +856,15 @@ class TiledeskChatbotUtil {
|
|
|
873
856
|
if (message.attributes) {
|
|
874
857
|
winston.debug("(TiledeskChatbotUtil) Ok message.attributes ", message.attributes);
|
|
875
858
|
|
|
876
|
-
|
|
877
|
-
|
|
859
|
+
add(TiledeskChatbotConst.REQ_END_USER_ID_KEY, message.attributes.requester_id);
|
|
860
|
+
add(TiledeskChatbotConst.REQ_END_USER_IP_ADDRESS_KEY, message.attributes.ipAddress);
|
|
878
861
|
if (message.attributes.payload) {
|
|
879
862
|
try {
|
|
880
863
|
for (const [key, value] of Object.entries(message.attributes.payload)) {
|
|
881
864
|
const value_type = typeof value;
|
|
882
|
-
|
|
865
|
+
add(key, value);
|
|
883
866
|
}
|
|
884
|
-
|
|
867
|
+
add("payload", message.attributes.payload);
|
|
885
868
|
}
|
|
886
869
|
catch(err) {
|
|
887
870
|
winston.error("(TiledeskChatbotUtil) Error importing message payload in request variables: ", err);
|
|
@@ -891,19 +874,19 @@ class TiledeskChatbotUtil {
|
|
|
891
874
|
// TODO - REMOVE - THEY ARE IN ATTRIBUTES.PAYLOAD
|
|
892
875
|
// voice-vxml attributes
|
|
893
876
|
if (message.attributes.dnis) {
|
|
894
|
-
|
|
877
|
+
add("dnis", message.attributes.dnis);
|
|
895
878
|
}
|
|
896
879
|
if (message.attributes.callId) {
|
|
897
|
-
|
|
880
|
+
add("callId", message.attributes.callId);
|
|
898
881
|
}
|
|
899
882
|
if (message.attributes.ani) {
|
|
900
|
-
|
|
883
|
+
add("ani", message.attributes.ani);
|
|
901
884
|
}
|
|
902
885
|
}
|
|
903
886
|
|
|
904
887
|
|
|
905
888
|
|
|
906
|
-
|
|
889
|
+
// --- GLOBALS ---
|
|
907
890
|
const _bot = chatbot.bot; // aka FaqKB
|
|
908
891
|
winston.debug("(TiledeskChatbotUtil) Adding Globals to context: ", _bot);
|
|
909
892
|
|
|
@@ -911,7 +894,7 @@ class TiledeskChatbotUtil {
|
|
|
911
894
|
winston.debug("(TiledeskChatbotUtil) Got Globals: ", _bot.attributes.globals);
|
|
912
895
|
_bot.attributes.globals.forEach(async (global_var) => {
|
|
913
896
|
winston.error("(TiledeskChatbotUtil) Adding global: " + global_var.key + " value: " + global_var.value);
|
|
914
|
-
|
|
897
|
+
add(global_var.key, global_var.value);
|
|
915
898
|
});
|
|
916
899
|
}
|
|
917
900
|
// await chatbot.addParameter("testVar",
|
|
@@ -922,6 +905,13 @@ class TiledeskChatbotUtil {
|
|
|
922
905
|
// }
|
|
923
906
|
// }
|
|
924
907
|
// );
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
// --- FINAL BATCH EXECUTION ---
|
|
911
|
+
await Promise.all([
|
|
912
|
+
...addQueue.map(([key, value]) => chatbot.addParameter(key, value)),
|
|
913
|
+
...deleteQueue.map(key => chatbot.deleteParameter(key))
|
|
914
|
+
]);
|
|
925
915
|
|
|
926
916
|
} catch(error) {
|
|
927
917
|
winston.error("(TiledeskChatbotUtil) updateRequestAttributes Error: ", error);
|