@tiledesk/tiledesk-tybot-connector 2.0.7 → 2.0.8-rc2
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/CHANGELOG.md +34 -0
- package/ExtApi.js +1 -8
- package/ExtUtil.js +5 -6
- package/Logger.js +30 -13
- package/engine/IntentForm.js +0 -1
- package/engine/IntentsMachineFactory.js +4 -4
- package/engine/MongodbBotsDataSource.js +0 -1
- package/engine/MongodbIntentsMachine.js +0 -1
- package/engine/TiledeskChatbot.js +11 -16
- package/engine/TiledeskIntentsMachine.js +1 -2
- package/engine/mock/MockBotsDataSource.js +1 -2
- package/index.js +22 -25
- package/logs/app.log +20243 -7549
- package/logs/app1.log +12807 -0
- package/package.json +3 -2
- package/services/AIService.js +1 -1
- package/tiledeskChatbotPlugs/DirectivesChatbotPlug.js +24 -18
- package/tiledeskChatbotPlugs/FillParamsChatbotPlug.js +1 -2
- package/tiledeskChatbotPlugs/MarkbotChatbotPlug.js +1 -3
- package/tiledeskChatbotPlugs/SplitsChatbotPlug.js +1 -3
- package/tiledeskChatbotPlugs/WebhookChatbotPlug.js +7 -9
- package/tiledeskChatbotPlugs/directives/DEPRECATED_DirIfNotOpenHours.js +3 -10
- package/tiledeskChatbotPlugs/directives/DEPRECATED_DirIfOpenHours.js +2 -9
- package/tiledeskChatbotPlugs/directives/DirAddTags.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirAiPrompt.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirAskGPT.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirAskGPTV2.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirAssign.js +5 -8
- package/tiledeskChatbotPlugs/directives/DirAssignFromFunction.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirAssistant.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirBrevo.js +4 -6
- package/tiledeskChatbotPlugs/directives/DirCaptureUserReply.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirClose.js +0 -2
- package/tiledeskChatbotPlugs/directives/DirCode.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirCondition.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirConnectBlock.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirContactUpdate.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirCustomerio.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirDeflectToHelpCenter.js +2 -5
- package/tiledeskChatbotPlugs/directives/DirDeleteVariable.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirDepartment.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirFireTiledeskEvent.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirForm.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirGptTask.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirGptTask_OLD.js +36 -55
- package/tiledeskChatbotPlugs/directives/DirHubspot.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirIfOnlineAgents.js +1 -4
- package/tiledeskChatbotPlugs/directives/DirIfOnlineAgentsV2.js +1 -4
- package/tiledeskChatbotPlugs/directives/DirIfOpenHours.js +0 -2
- package/tiledeskChatbotPlugs/directives/DirIfOpenHours_OLD.js +8 -12
- package/tiledeskChatbotPlugs/directives/DirIntent.js +6 -5
- package/tiledeskChatbotPlugs/directives/DirJSONCondition.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirLockIntent.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirMake.js +1 -16
- package/tiledeskChatbotPlugs/directives/DirMessage.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirMessageToBot.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirMoveToAgent.js +1 -4
- package/tiledeskChatbotPlugs/directives/DirMoveToUnassigned.js +0 -3
- package/tiledeskChatbotPlugs/directives/DirQapla.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirRandomReply.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirRemoveCurrentBot.js +1 -2
- package/tiledeskChatbotPlugs/directives/DirReplaceBot.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirReplaceBotV2.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirReplaceBotV3.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirReply.js +7 -18
- package/tiledeskChatbotPlugs/directives/DirReplyV2.js +8 -13
- package/tiledeskChatbotPlugs/directives/DirSendEmail.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirSendWhatsapp.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirSetAttribute.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirSetAttributeV2.js +1 -4
- package/tiledeskChatbotPlugs/directives/DirSetConversationTags.js +1 -3
- package/tiledeskChatbotPlugs/directives/DirUnlockIntent.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirWait.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirWebRequest.js +0 -1
- package/tiledeskChatbotPlugs/directives/DirWebRequestV2.js +1 -16
- package/tiledeskChatbotPlugs/directives/DirWebResponse.js +0 -39
- package/tiledeskChatbotPlugs/directives/DirWhatsappByAttribute.js +0 -1
- package/tiledeskChatbotPlugs/directives/Directives.js +1 -0
- package/utils/TiledeskChatbotUtil.js +19 -57
- package/TdCache copy.js +0 -242
- package/logs/app2.log +0 -46280
- package/logs/app3.log +0 -31686
- package/logs/app4.log +0 -46163
- package/logs/app5.log +0 -39983
- package/logs/app6.log +0 -5964
- package/tiledeskChatbotPlugs/directives/DirWebRequestV2_old.js +0 -417
|
@@ -17,7 +17,7 @@ class DirReply {
|
|
|
17
17
|
this.requestId = context.requestId;
|
|
18
18
|
this.token = context.token;
|
|
19
19
|
this.tdcache = context.tdcache;
|
|
20
|
-
this.
|
|
20
|
+
this.supportRequest = this.context.supportRequest;
|
|
21
21
|
this.logger = new Logger({ request_id: this.requestId, dev: this.context.supportRequest.draft });
|
|
22
22
|
|
|
23
23
|
this.API_ENDPOINT = context.API_ENDPOINT;
|
|
@@ -25,8 +25,7 @@ class DirReply {
|
|
|
25
25
|
projectId: this.context.projectId,
|
|
26
26
|
token: this.context.token,
|
|
27
27
|
APIURL: this.API_ENDPOINT,
|
|
28
|
-
APIKEY: "___"
|
|
29
|
-
log: this.log
|
|
28
|
+
APIKEY: "___"
|
|
30
29
|
});
|
|
31
30
|
}
|
|
32
31
|
|
|
@@ -44,10 +43,10 @@ class DirReply {
|
|
|
44
43
|
callback();
|
|
45
44
|
return;
|
|
46
45
|
}
|
|
47
|
-
this.logger.info("
|
|
46
|
+
this.logger.info("Executing Action Reply ", directive.action)
|
|
48
47
|
|
|
49
48
|
this.go(action, () => {
|
|
50
|
-
this.logger.info("
|
|
49
|
+
this.logger.info("Action Reply terminated")
|
|
51
50
|
callback();
|
|
52
51
|
});
|
|
53
52
|
}
|
|
@@ -68,15 +67,16 @@ class DirReply {
|
|
|
68
67
|
const filler = new Filler();
|
|
69
68
|
// fill text attribute
|
|
70
69
|
message.text = filler.fill(message.text, requestAttributes);
|
|
71
|
-
this.logger.info("2 Sending reply " + message.text);
|
|
72
70
|
|
|
73
71
|
if (message.metadata) {
|
|
74
72
|
winston.debug("DirReply filling message 'metadata':", message.metadata);
|
|
75
73
|
if (message.metadata.src) {
|
|
76
74
|
message.metadata.src = filler.fill(message.metadata.src, requestAttributes);
|
|
75
|
+
this.logger.debug("Filled metadata.src with ", message.metadata.src);
|
|
77
76
|
}
|
|
78
77
|
if (message.metadata.name) {
|
|
79
78
|
message.metadata.name = filler.fill(message.metadata.name, requestAttributes);
|
|
79
|
+
this.logger.debug("Filled metadata.name with ", message.metadata.name);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
winston.debug("DirReply filling commands'. Message:", message);
|
|
@@ -89,7 +89,7 @@ class DirReply {
|
|
|
89
89
|
let command = commands[i];
|
|
90
90
|
if (command.type === 'message' && command.message && command.message.text) {
|
|
91
91
|
command.message.text = filler.fill(command.message.text, requestAttributes);
|
|
92
|
-
TiledeskChatbotUtil.fillCommandAttachments(command, requestAttributes
|
|
92
|
+
TiledeskChatbotUtil.fillCommandAttachments(command, requestAttributes);
|
|
93
93
|
winston.debug("DirReply command filled: " + command.message.text);
|
|
94
94
|
}
|
|
95
95
|
if (command.type === 'settings' && command.settings) {
|
|
@@ -143,15 +143,6 @@ class DirReply {
|
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
let cleanMessage = message;
|
|
146
|
-
this.logger.info("3 Sending reply (text) " + cleanMessage.text);
|
|
147
|
-
this.logger.info("4 Sending reply with clean message " + JSON.stringify(cleanMessage));
|
|
148
|
-
// cleanMessage = TiledeskChatbotUtil.removeEmptyReplyCommands(message);
|
|
149
|
-
// if (!TiledeskChatbotUtil.isValidReply(cleanMessage)) {
|
|
150
|
-
// console.log("invalid message", cleanMessage);
|
|
151
|
-
// callback(); // cancel reply operation
|
|
152
|
-
// return;
|
|
153
|
-
// }
|
|
154
|
-
|
|
155
146
|
cleanMessage.senderFullname = this.context.chatbot.bot.name;
|
|
156
147
|
winston.debug("DirReply reply with clean message: ", cleanMessage);
|
|
157
148
|
|
|
@@ -162,10 +153,8 @@ class DirReply {
|
|
|
162
153
|
(err) => {
|
|
163
154
|
if (err) {
|
|
164
155
|
winston.error("DirReply Error sending reply: ", err);
|
|
165
|
-
this.logger.error("Error sending reply: " + err);
|
|
166
156
|
}
|
|
167
157
|
winston.verbose("DirReply reply message sent")
|
|
168
|
-
this.logger.info("5 Reply message sent");
|
|
169
158
|
const delay = TiledeskChatbotUtil.totalMessageWait(cleanMessage);
|
|
170
159
|
if (delay > 0 && delay <= 30000) { // prevent long delays
|
|
171
160
|
setTimeout(() => {
|
|
@@ -20,7 +20,6 @@ class DirReplyV2 {
|
|
|
20
20
|
this.requestId = context.requestId;
|
|
21
21
|
this.token = context.token;
|
|
22
22
|
this.tdcache = context.tdcache;
|
|
23
|
-
this.log = context.log;
|
|
24
23
|
this.intentDir = new DirIntent(context);
|
|
25
24
|
this.chatbot = context.chatbot;
|
|
26
25
|
this.reply = context.reply;
|
|
@@ -31,8 +30,7 @@ class DirReplyV2 {
|
|
|
31
30
|
projectId: this.context.projectId,
|
|
32
31
|
token: this.context.token,
|
|
33
32
|
APIURL: this.API_ENDPOINT,
|
|
34
|
-
APIKEY: "___"
|
|
35
|
-
log: this.log
|
|
33
|
+
APIKEY: "___"
|
|
36
34
|
});
|
|
37
35
|
}
|
|
38
36
|
|
|
@@ -61,11 +59,10 @@ class DirReplyV2 {
|
|
|
61
59
|
const message = action;
|
|
62
60
|
|
|
63
61
|
let current; // debug only
|
|
64
|
-
if (
|
|
65
|
-
|
|
66
|
-
current = message.attributes.commands[1].message.text
|
|
67
|
-
}
|
|
62
|
+
if (message.attributes.commands[1].message.text) {
|
|
63
|
+
current = message.attributes.commands[1].message.text
|
|
68
64
|
}
|
|
65
|
+
|
|
69
66
|
let must_stop = false;
|
|
70
67
|
// fill
|
|
71
68
|
let requestAttributes = null;
|
|
@@ -74,11 +71,9 @@ class DirReplyV2 {
|
|
|
74
71
|
await TiledeskChatbot.allParametersStatic(
|
|
75
72
|
this.tdcache, this.requestId
|
|
76
73
|
);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
}
|
|
74
|
+
// for (const [key, value] of Object.entries(requestAttributes)) {
|
|
75
|
+
// const value_type = typeof value;
|
|
76
|
+
// }
|
|
82
77
|
|
|
83
78
|
TiledeskChatbotUtil.replaceJSONButtons(message, requestAttributes);
|
|
84
79
|
|
|
@@ -197,7 +192,7 @@ class DirReplyV2 {
|
|
|
197
192
|
let command = commands[i];
|
|
198
193
|
if (command.type === 'message' && command.message && command.message.text) {
|
|
199
194
|
command.message.text = filler.fill(command.message.text, requestAttributes);
|
|
200
|
-
TiledeskChatbotUtil.fillCommandAttachments(command, requestAttributes
|
|
195
|
+
TiledeskChatbotUtil.fillCommandAttachments(command, requestAttributes);
|
|
201
196
|
}
|
|
202
197
|
}
|
|
203
198
|
}
|
|
@@ -15,15 +15,13 @@ class DirSendEmail {
|
|
|
15
15
|
this.context = context;
|
|
16
16
|
this.tdcache = context.tdcache;
|
|
17
17
|
this.requestId = context.requestId;
|
|
18
|
-
this.log = context.log;
|
|
19
18
|
|
|
20
19
|
this.API_ENDPOINT = context.API_ENDPOINT;
|
|
21
20
|
this.tdClient = new TiledeskClient({
|
|
22
21
|
projectId: this.context.projectId,
|
|
23
22
|
token: this.context.token,
|
|
24
23
|
APIURL: this.API_ENDPOINT,
|
|
25
|
-
APIKEY: "___"
|
|
26
|
-
log: this.log
|
|
24
|
+
APIKEY: "___"
|
|
27
25
|
});
|
|
28
26
|
}
|
|
29
27
|
|
|
@@ -79,7 +79,6 @@ class DirSetAttributeV2 {
|
|
|
79
79
|
}
|
|
80
80
|
this.context = context;
|
|
81
81
|
this.tdcache = context.tdcache;
|
|
82
|
-
this.log = context.log;
|
|
83
82
|
}
|
|
84
83
|
|
|
85
84
|
execute(directive, callback) {
|
|
@@ -199,9 +198,7 @@ class DirSetAttributeV2 {
|
|
|
199
198
|
httpUtils.request(
|
|
200
199
|
HTTPREQUEST, async (err, resbody) => {
|
|
201
200
|
if (err) {
|
|
202
|
-
|
|
203
|
-
winston.error("(DirSetAttributeV2) persistOnTiledesk() error: ", err);
|
|
204
|
-
}
|
|
201
|
+
winston.error("(DirSetAttributeV2) persistOnTiledesk() error: ", err);
|
|
205
202
|
} else {
|
|
206
203
|
winston.debug("(DirSetAttributeV2) Attributes saved: ", resbody);
|
|
207
204
|
}
|
|
@@ -9,7 +9,6 @@ class DirSetConversationTags {
|
|
|
9
9
|
throw new Error('context object is mandatory.');
|
|
10
10
|
}
|
|
11
11
|
this.context = context;
|
|
12
|
-
this.log = context.log;
|
|
13
12
|
this.requestId = context.requestId;
|
|
14
13
|
|
|
15
14
|
this.API_ENDPOINT = context.API_ENDPOINT;
|
|
@@ -17,8 +16,7 @@ class DirSetConversationTags {
|
|
|
17
16
|
projectId: this.context.projectId,
|
|
18
17
|
token: this.context.token,
|
|
19
18
|
APIURL: this.API_ENDPOINT,
|
|
20
|
-
APIKEY: "___"
|
|
21
|
-
log: this.log
|
|
19
|
+
APIKEY: "___"
|
|
22
20
|
});
|
|
23
21
|
}
|
|
24
22
|
|
|
@@ -16,7 +16,6 @@ class DirWebRequestV2 {
|
|
|
16
16
|
this.requestId = context.requestId;
|
|
17
17
|
this.chatbot = context.chatbot;
|
|
18
18
|
this.intentDir = new DirIntent(context);
|
|
19
|
-
this.log = context.log;
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
execute(directive, callback) {
|
|
@@ -302,21 +301,7 @@ class DirWebRequestV2 {
|
|
|
302
301
|
}
|
|
303
302
|
})
|
|
304
303
|
.catch((err) => {
|
|
305
|
-
|
|
306
|
-
// FIX THE STRINGIFY OF CIRCULAR STRUCTURE BUG - START
|
|
307
|
-
let cache = [];
|
|
308
|
-
let error_log = JSON.stringify(err, function (key, value) { // try to use a separate function
|
|
309
|
-
if (typeof value === 'object' && value != null) {
|
|
310
|
-
if (cache.indexOf(value) !== -1) {
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
cache.push(value);
|
|
314
|
-
}
|
|
315
|
-
return value;
|
|
316
|
-
});
|
|
317
|
-
winston.error("(DirWebRequestv2) An error occurred: ", error_log);
|
|
318
|
-
// FIX THE STRINGIFY OF CIRCULAR STRUCTURE BUG - END
|
|
319
|
-
}
|
|
304
|
+
// FIX THE STRINGIFY OF CIRCULAR STRUCTURE BUG - END
|
|
320
305
|
if (callback) {
|
|
321
306
|
let status = 1000;
|
|
322
307
|
let cache = [];
|
|
@@ -15,7 +15,6 @@ class DirWebResponse {
|
|
|
15
15
|
this.requestId = context.requestId;
|
|
16
16
|
this.token = context.token;
|
|
17
17
|
this.tdcache = context.tdcache;
|
|
18
|
-
this.log = context.log;
|
|
19
18
|
}
|
|
20
19
|
|
|
21
20
|
execute(directive, callback) {
|
|
@@ -96,42 +95,4 @@ class DirWebResponse {
|
|
|
96
95
|
|
|
97
96
|
}
|
|
98
97
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* A stub to send message to the "ext/botId" endpoint, hosted by tilebot on:
|
|
103
|
-
* /${TILEBOT_ROUTE}/ext/${botId}
|
|
104
|
-
*
|
|
105
|
-
* @param {Object} webResponse. The webhook response to send back
|
|
106
|
-
* @param {Object} projectId. The projectId
|
|
107
|
-
* @param {string} botId. Tiledesk botId
|
|
108
|
-
* @param {string} token. User token
|
|
109
|
-
*/
|
|
110
|
-
// function sendResponse(webResponse, projectId, botId, callback) {
|
|
111
|
-
// const url = `${WEBHOOK_URL}/${projectId}/${botId}`;
|
|
112
|
-
// const HTTPREQUEST = {
|
|
113
|
-
// url: url,
|
|
114
|
-
// headers: {
|
|
115
|
-
// 'Content-Type': 'application/json'
|
|
116
|
-
// },
|
|
117
|
-
// json: webResponse,
|
|
118
|
-
// method: 'POST'
|
|
119
|
-
// };
|
|
120
|
-
// myrequest(
|
|
121
|
-
// HTTPREQUEST,
|
|
122
|
-
// function (err, resbody) {
|
|
123
|
-
// if (err) {
|
|
124
|
-
// if (callback) {
|
|
125
|
-
// callback(err);
|
|
126
|
-
// }
|
|
127
|
-
// }
|
|
128
|
-
// else {
|
|
129
|
-
// if (callback) {
|
|
130
|
-
// callback(null, resbody);
|
|
131
|
-
// }
|
|
132
|
-
// }
|
|
133
|
-
// }, false
|
|
134
|
-
// );
|
|
135
|
-
// }
|
|
136
|
-
|
|
137
98
|
module.exports = { DirWebResponse };
|
|
@@ -58,6 +58,7 @@ class Directives {
|
|
|
58
58
|
static MOVE_TO_UNASSIGNED = "move_to_unassigned";
|
|
59
59
|
static CONNECT_BLOCK = "connect_block";
|
|
60
60
|
static ADD_TAGS = 'add_tags'
|
|
61
|
+
static WEBHOOK = 'webhook';
|
|
61
62
|
static WEB_RESPONSE = "web_response";
|
|
62
63
|
|
|
63
64
|
// static WHEN_ONLINE_MOVE_TO_AGENT = "whenonlinemovetoagent"; // DEPRECATED?
|
|
@@ -252,24 +252,24 @@ class TiledeskChatbotUtil {
|
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
-
static fillCommandAttachments(command, variables
|
|
256
|
-
|
|
255
|
+
static fillCommandAttachments(command, variables) {
|
|
256
|
+
winston.debug("(TiledeskChatbotUtils) Filling command button: ", command)
|
|
257
257
|
if (command.message && command.message.attributes && command.message.attributes.attachment && command.message.attributes.attachment.buttons && command.message.attributes.attachment.buttons.length > 0) {
|
|
258
258
|
let buttons = command.message.attributes.attachment.buttons;
|
|
259
259
|
const filler = new Filler();
|
|
260
260
|
buttons.forEach(button => {
|
|
261
261
|
if (button.link) {
|
|
262
262
|
button.link = filler.fill(button.link, variables);
|
|
263
|
-
|
|
263
|
+
winston.debug("(TiledeskChatbotUtils) button.link filled: " + button.link)
|
|
264
264
|
}
|
|
265
265
|
if (button.value) {
|
|
266
266
|
button.value = filler.fill(button.value, variables);
|
|
267
|
-
|
|
267
|
+
winston.debug("(TiledeskChatbotUtils) button.value filled: " + button.value)
|
|
268
268
|
}
|
|
269
269
|
});
|
|
270
270
|
}
|
|
271
271
|
else {
|
|
272
|
-
|
|
272
|
+
winston.debug("(TiledeskChatbotUtils) No attachments to fill in command")
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
|
|
@@ -319,55 +319,31 @@ class TiledeskChatbotUtil {
|
|
|
319
319
|
json_buttons.forEach(button => {
|
|
320
320
|
if (button.value && button.type === "action" && button.action) {
|
|
321
321
|
button.show_echo = true;
|
|
322
|
-
// console.log("pushing:", button)
|
|
323
322
|
final_buttons.push(button);
|
|
324
323
|
}
|
|
325
324
|
else if (button.value && button.type === "text") {
|
|
326
325
|
button.show_echo = true;
|
|
327
|
-
// console.log("pushing:", button)
|
|
328
326
|
final_buttons.push(button);
|
|
329
327
|
}
|
|
330
328
|
else if (button.value && button.type === "url" && button.link) {
|
|
331
329
|
button.show_echo = true;
|
|
332
|
-
// console.log("pushing:", button)
|
|
333
330
|
final_buttons.push(button);
|
|
334
331
|
}
|
|
335
332
|
else {
|
|
336
|
-
|
|
333
|
+
winston.verbose("Invalid button. Skipping:", button);
|
|
337
334
|
}
|
|
338
335
|
});
|
|
339
336
|
}
|
|
340
|
-
|
|
341
|
-
// "buttons": [
|
|
342
|
-
// {
|
|
343
|
-
// "type": "action",
|
|
344
|
-
// "value": "Button1", // obbligatorio sempre
|
|
345
|
-
// "action": "#bb347206-d639-4926-94c9-e94930623dce", // mandatory
|
|
346
|
-
// "show_echo": true, // lo inserisco sempre
|
|
347
|
-
// "alias": "button1 alias"
|
|
348
|
-
// },
|
|
349
|
-
// {
|
|
350
|
-
// "type": "text",
|
|
351
|
-
// "value": "Button2 text", // obbligatorio sempre
|
|
352
|
-
// "show_echo": true // lo inserisco sempre
|
|
353
|
-
// },
|
|
354
|
-
// {
|
|
355
|
-
// "type": "url",
|
|
356
|
-
// "value": "Button3 link", // obbligatorio sempre
|
|
357
|
-
// "link": "http://", // obbligatorio
|
|
358
|
-
// "show_echo": true // lo inserisco sempre
|
|
359
|
-
// }
|
|
360
|
-
// ]
|
|
361
337
|
}
|
|
362
338
|
catch(error) {
|
|
363
|
-
|
|
339
|
+
winston.warn("Invalid json_buttons:", error)
|
|
364
340
|
}
|
|
365
341
|
if (final_buttons && final_buttons.length > 0) {
|
|
366
342
|
command.message.attributes.attachment.buttons = final_buttons;
|
|
367
343
|
delete command.message.attributes.attachment.json_buttons;
|
|
368
344
|
}
|
|
369
345
|
else {
|
|
370
|
-
|
|
346
|
+
winston.verbose("Invalid json_buttons. Skipping...")
|
|
371
347
|
}
|
|
372
348
|
}
|
|
373
349
|
}
|
|
@@ -520,7 +496,7 @@ class TiledeskChatbotUtil {
|
|
|
520
496
|
static async updateRequestAttributes(chatbot, chatbotToken, message, projectId, requestId) {
|
|
521
497
|
// update request context
|
|
522
498
|
try {
|
|
523
|
-
|
|
499
|
+
winston.debug("Updating request variables. Message:", message);
|
|
524
500
|
const messageId = message._id;
|
|
525
501
|
const chat_url = `https://panel.tiledesk.com/v3/dashboard/#/project/${projectId}/wsrequest/${requestId}/messages`
|
|
526
502
|
|
|
@@ -591,12 +567,12 @@ class TiledeskChatbotUtil {
|
|
|
591
567
|
}
|
|
592
568
|
|
|
593
569
|
if (message && message.request && message.request.lead) {
|
|
594
|
-
|
|
570
|
+
winston.debug("(TiledeskChatbotUtil) Lead found with email: " + message.request.lead.email + " and lead.fullname " + message.request.lead.fullname);
|
|
595
571
|
let currentLeadEmail = await chatbot.getParameter(TiledeskChatbotConst.REQ_LEAD_EMAIL_KEY);
|
|
596
|
-
|
|
572
|
+
winston.debug("(TiledeskChatbotUtil) You lead email from attributes: " + currentLeadEmail);
|
|
597
573
|
if (message.request.lead.email && !currentLeadEmail) {
|
|
598
574
|
// worth saving
|
|
599
|
-
|
|
575
|
+
winston.debug("(TiledeskChatbotUtil) worth saving email");
|
|
600
576
|
try {
|
|
601
577
|
await chatbot.addParameter(TiledeskChatbotConst.REQ_LEAD_EMAIL_KEY, message.request.lead.email);
|
|
602
578
|
}
|
|
@@ -605,10 +581,10 @@ class TiledeskChatbotUtil {
|
|
|
605
581
|
}
|
|
606
582
|
}
|
|
607
583
|
let currentLeadName = await chatbot.getParameter(TiledeskChatbotConst.REQ_LEAD_USERFULLNAME_KEY);
|
|
608
|
-
|
|
584
|
+
winston.debug("(TiledeskChatbotUtil) You lead email from attributes: " + currentLeadEmail);
|
|
609
585
|
if (message.request.lead.fullname && !currentLeadName) {
|
|
610
586
|
// worth saving
|
|
611
|
-
|
|
587
|
+
winston.debug("(TiledeskChatbotUtil) worth saving email");
|
|
612
588
|
try {
|
|
613
589
|
await chatbot.addParameter(TiledeskChatbotConst.REQ_LEAD_USERFULLNAME_KEY, message.request.lead.fullname);
|
|
614
590
|
}
|
|
@@ -685,10 +661,10 @@ class TiledeskChatbotUtil {
|
|
|
685
661
|
message.attributes = {}
|
|
686
662
|
}
|
|
687
663
|
message.attributes.payload = { ...message.attributes.payload, ...message.request.attributes.payload }
|
|
688
|
-
|
|
664
|
+
winston.debug("(TiledeskChatbotUtil) Forced Set message.attributes.payload ", message.attributes.payload);
|
|
689
665
|
}
|
|
690
666
|
if (message.attributes) {
|
|
691
|
-
|
|
667
|
+
winston.debug("(TiledeskChatbotUtil) Ok message.attributes ", message.attributes);
|
|
692
668
|
|
|
693
669
|
await chatbot.addParameter(TiledeskChatbotConst.REQ_END_USER_ID_KEY, message.attributes.requester_id);
|
|
694
670
|
await chatbot.addParameter(TiledeskChatbotConst.REQ_END_USER_IP_ADDRESS_KEY, message.attributes.ipAddress);
|
|
@@ -722,12 +698,12 @@ class TiledeskChatbotUtil {
|
|
|
722
698
|
|
|
723
699
|
|
|
724
700
|
const _bot = chatbot.bot; // aka FaqKB
|
|
725
|
-
|
|
701
|
+
winston.debug("(TiledeskChatbotUtil) Adding Globals to context: ", _bot);
|
|
726
702
|
|
|
727
703
|
if (_bot.attributes && _bot.attributes.globals) {
|
|
728
|
-
|
|
704
|
+
winston.error("(TiledeskChatbotUtil) Got Globals: ", _bot.attributes.globals);
|
|
729
705
|
_bot.attributes.globals.forEach(async (global_var) => {
|
|
730
|
-
|
|
706
|
+
winston.error("(TiledeskChatbotUtil) Adding global: " + global_var.key + " value: " + global_var.value);
|
|
731
707
|
await chatbot.addParameter(global_var.key, global_var.value);
|
|
732
708
|
});
|
|
733
709
|
}
|
|
@@ -740,20 +716,6 @@ class TiledeskChatbotUtil {
|
|
|
740
716
|
// }
|
|
741
717
|
// );
|
|
742
718
|
|
|
743
|
-
if (chatbot.log) {
|
|
744
|
-
if (chatbot.log) { winston.debug("(TiledeskChatbotUtil) requestId: " + requestId); }
|
|
745
|
-
if (chatbot.log) { winston.debug("(TiledeskChatbotUtil) Key: " + TiledeskChatbotConst.REQ_PROJECT_ID_KEY); }
|
|
746
|
-
|
|
747
|
-
let proj_ = await chatbot.getParameter(TiledeskChatbotConst.REQ_PROJECT_ID_KEY);
|
|
748
|
-
if (chatbot.log) { winston.debug("(TiledeskChatbotUtil) request parameter proj_: " + proj_); }
|
|
749
|
-
|
|
750
|
-
const all_parameters = await chatbot.allParameters();
|
|
751
|
-
for (const [key, value] of Object.entries(all_parameters)) {
|
|
752
|
-
const value_type = typeof value;
|
|
753
|
-
if (chatbot.log) { winston.debug("(TiledeskChatbotUtil) Request Attribute: " + key + " value: " + value + " type: " + value_type); }
|
|
754
|
-
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
719
|
} catch(error) {
|
|
758
720
|
winston.error("(TiledeskChatbotUtil) updateRequestAttributes Error: ", error);
|
|
759
721
|
process.exit(1)
|