@tiledesk/tiledesk-tybot-connector 2.0.8-rc1 → 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.
Files changed (74) hide show
  1. package/ExtApi.js +1 -8
  2. package/ExtUtil.js +5 -6
  3. package/engine/IntentForm.js +0 -1
  4. package/engine/IntentsMachineFactory.js +4 -4
  5. package/engine/MongodbBotsDataSource.js +0 -1
  6. package/engine/MongodbIntentsMachine.js +0 -1
  7. package/engine/TiledeskChatbot.js +11 -16
  8. package/engine/TiledeskIntentsMachine.js +1 -2
  9. package/index.js +19 -25
  10. package/logs/app1.log +1742 -0
  11. package/package.json +1 -1
  12. package/services/AIService.js +1 -1
  13. package/tiledeskChatbotPlugs/DirectivesChatbotPlug.js +4 -10
  14. package/tiledeskChatbotPlugs/FillParamsChatbotPlug.js +1 -2
  15. package/tiledeskChatbotPlugs/MarkbotChatbotPlug.js +1 -3
  16. package/tiledeskChatbotPlugs/SplitsChatbotPlug.js +1 -3
  17. package/tiledeskChatbotPlugs/WebhookChatbotPlug.js +7 -9
  18. package/tiledeskChatbotPlugs/directives/DEPRECATED_DirIfNotOpenHours.js +3 -10
  19. package/tiledeskChatbotPlugs/directives/DEPRECATED_DirIfOpenHours.js +2 -9
  20. package/tiledeskChatbotPlugs/directives/DirAddTags.js +1 -3
  21. package/tiledeskChatbotPlugs/directives/DirAiPrompt.js +0 -1
  22. package/tiledeskChatbotPlugs/directives/DirAskGPT.js +0 -1
  23. package/tiledeskChatbotPlugs/directives/DirAskGPTV2.js +0 -1
  24. package/tiledeskChatbotPlugs/directives/DirAssign.js +5 -8
  25. package/tiledeskChatbotPlugs/directives/DirAssignFromFunction.js +1 -3
  26. package/tiledeskChatbotPlugs/directives/DirAssistant.js +0 -1
  27. package/tiledeskChatbotPlugs/directives/DirBrevo.js +4 -6
  28. package/tiledeskChatbotPlugs/directives/DirCaptureUserReply.js +0 -1
  29. package/tiledeskChatbotPlugs/directives/DirClose.js +0 -2
  30. package/tiledeskChatbotPlugs/directives/DirCode.js +0 -1
  31. package/tiledeskChatbotPlugs/directives/DirCondition.js +0 -1
  32. package/tiledeskChatbotPlugs/directives/DirConnectBlock.js +0 -1
  33. package/tiledeskChatbotPlugs/directives/DirContactUpdate.js +1 -3
  34. package/tiledeskChatbotPlugs/directives/DirCustomerio.js +0 -1
  35. package/tiledeskChatbotPlugs/directives/DirDeflectToHelpCenter.js +2 -5
  36. package/tiledeskChatbotPlugs/directives/DirDeleteVariable.js +0 -1
  37. package/tiledeskChatbotPlugs/directives/DirDepartment.js +1 -3
  38. package/tiledeskChatbotPlugs/directives/DirFireTiledeskEvent.js +1 -3
  39. package/tiledeskChatbotPlugs/directives/DirForm.js +1 -3
  40. package/tiledeskChatbotPlugs/directives/DirGptTask.js +0 -1
  41. package/tiledeskChatbotPlugs/directives/DirGptTask_OLD.js +36 -55
  42. package/tiledeskChatbotPlugs/directives/DirHubspot.js +0 -1
  43. package/tiledeskChatbotPlugs/directives/DirIfOnlineAgents.js +1 -4
  44. package/tiledeskChatbotPlugs/directives/DirIfOnlineAgentsV2.js +1 -4
  45. package/tiledeskChatbotPlugs/directives/DirIfOpenHours.js +0 -2
  46. package/tiledeskChatbotPlugs/directives/DirIfOpenHours_OLD.js +8 -12
  47. package/tiledeskChatbotPlugs/directives/DirIntent.js +0 -1
  48. package/tiledeskChatbotPlugs/directives/DirJSONCondition.js +0 -1
  49. package/tiledeskChatbotPlugs/directives/DirLockIntent.js +0 -1
  50. package/tiledeskChatbotPlugs/directives/DirMake.js +1 -16
  51. package/tiledeskChatbotPlugs/directives/DirMessage.js +1 -3
  52. package/tiledeskChatbotPlugs/directives/DirMessageToBot.js +0 -1
  53. package/tiledeskChatbotPlugs/directives/DirMoveToAgent.js +1 -4
  54. package/tiledeskChatbotPlugs/directives/DirMoveToUnassigned.js +0 -3
  55. package/tiledeskChatbotPlugs/directives/DirQapla.js +0 -1
  56. package/tiledeskChatbotPlugs/directives/DirRandomReply.js +1 -3
  57. package/tiledeskChatbotPlugs/directives/DirRemoveCurrentBot.js +1 -2
  58. package/tiledeskChatbotPlugs/directives/DirReplaceBot.js +1 -3
  59. package/tiledeskChatbotPlugs/directives/DirReplaceBotV2.js +1 -3
  60. package/tiledeskChatbotPlugs/directives/DirReplaceBotV3.js +1 -3
  61. package/tiledeskChatbotPlugs/directives/DirReply.js +2 -5
  62. package/tiledeskChatbotPlugs/directives/DirReplyV2.js +8 -13
  63. package/tiledeskChatbotPlugs/directives/DirSendEmail.js +1 -3
  64. package/tiledeskChatbotPlugs/directives/DirSendWhatsapp.js +0 -1
  65. package/tiledeskChatbotPlugs/directives/DirSetAttribute.js +0 -1
  66. package/tiledeskChatbotPlugs/directives/DirSetAttributeV2.js +1 -4
  67. package/tiledeskChatbotPlugs/directives/DirSetConversationTags.js +1 -3
  68. package/tiledeskChatbotPlugs/directives/DirUnlockIntent.js +0 -1
  69. package/tiledeskChatbotPlugs/directives/DirWait.js +0 -1
  70. package/tiledeskChatbotPlugs/directives/DirWebRequest.js +0 -1
  71. package/tiledeskChatbotPlugs/directives/DirWebRequestV2.js +1 -16
  72. package/tiledeskChatbotPlugs/directives/DirWebResponse.js +0 -1
  73. package/tiledeskChatbotPlugs/directives/DirWhatsappByAttribute.js +0 -1
  74. package/utils/TiledeskChatbotUtil.js +16 -30
package/ExtApi.js CHANGED
@@ -10,12 +10,6 @@ class ExtApi {
10
10
  throw new Error("options.TILEBOT_ENDPOINT is mandatory");
11
11
  //this.extEndpoint = `${options.TILEBOT_ENDPOINT}/;
12
12
  }
13
- if (options.log) {
14
- this.log = options.log;
15
- }
16
- else {
17
- this.log = false;
18
- }
19
13
  this.TILEBOT_ENDPOINT = options.TILEBOT_ENDPOINT;
20
14
  }
21
15
 
@@ -63,8 +57,7 @@ class ExtApi {
63
57
  callback(null, resbody);
64
58
  }
65
59
  }
66
- }, this.log
67
- );
60
+ });
68
61
  }
69
62
 
70
63
  }
package/ExtUtil.js CHANGED
@@ -8,20 +8,19 @@ const { FillParamsChatbotPlug } = require('./tiledeskChatbotPlugs/FillParamsChat
8
8
 
9
9
  // PROD
10
10
  /*const { MessagePipeline } = require('@tiledesk/tiledesk-chatbot-plugs/MessagePipeline');
11
- const { DirectivesChatbotPlug } = require('@tiledesk/tiledesk-chatbot-plugs/DirectivesChatbotPlug');
12
11
  const { SplitsChatbotPlug } = require('@tiledesk/tiledesk-chatbot-plugs/SplitsChatbotPlug');
13
12
  const { MarkbotChatbotPlug } = require('@tiledesk/tiledesk-chatbot-plugs/MarkbotChatbotPlug');
14
13
  const { WebhookChatbotPlug } = require('@tiledesk/tiledesk-chatbot-plugs/WebhookChatbotPlug');*/
15
14
 
16
15
  class ExtUtil {
17
16
 
18
- static async execPipelineExt(request, static_bot_answer, directivesPlug, tdcache, log) {
17
+ static async execPipelineExt(request, static_bot_answer, directivesPlug, tdcache) {
19
18
  const messagePipeline = new MessagePipeline(static_bot_answer, null);
20
19
  messagePipeline.addPlug(directivesPlug);
21
- messagePipeline.addPlug(new FillParamsChatbotPlug(request, tdcache, log)); // in original message
22
- messagePipeline.addPlug(new SplitsChatbotPlug(log));
23
- messagePipeline.addPlug(new MarkbotChatbotPlug(log));
24
- messagePipeline.addPlug(new FillParamsChatbotPlug(request, tdcache, log)); // in splits
20
+ messagePipeline.addPlug(new FillParamsChatbotPlug(request, tdcache)); // in original message
21
+ messagePipeline.addPlug(new SplitsChatbotPlug());
22
+ messagePipeline.addPlug(new MarkbotChatbotPlug());
23
+ messagePipeline.addPlug(new FillParamsChatbotPlug(request, tdcache)); // in splits
25
24
  const bot_answer = await messagePipeline.exec();
26
25
  return bot_answer;
27
26
  }
@@ -11,7 +11,6 @@ class IntentForm {
11
11
  this.form = options.form;
12
12
  this.CURRENT_FIELD_INDEX_KEY = "tilebot:requests:" + this.requestId + ":currentFieldIndex"
13
13
  this.CURRENT_FORM_KEY = "tilebot:requests:" + this.requestId + ":currentForm"
14
- this.log = options.log;
15
14
  this.requestParameters = options.requestParameters;
16
15
  }
17
16
 
@@ -4,7 +4,7 @@ const winston = require('../utils/winston.js')
4
4
 
5
5
  class IntentsMachineFactory {
6
6
 
7
- static getMachine(bot, botId, projectId, log) {
7
+ static getMachine(bot, botId, projectId) {
8
8
  let machine;
9
9
  if (bot && bot.intentsEngine === "tiledesk-ai") {
10
10
  winston.verbose("(IntentsMachineFactory) bot.intentsEngine is tiledesk-ai");
@@ -15,7 +15,7 @@ class IntentsMachineFactory {
15
15
  }
16
16
  else if (bot) {
17
17
  winston.verbose("(IntentsMachineFactory) Setting MongodbIntentsMachine with bot:", JSON.stringify(bot));
18
- machine = new MongodbIntentsMachine({projectId: projectId, language: bot.language, log});
18
+ machine = new MongodbIntentsMachine({projectId: projectId, language: bot.language});
19
19
  }
20
20
  else {
21
21
  winston.error("bot is null for: " + botId + " on projectId: " + projectId);
@@ -23,10 +23,10 @@ class IntentsMachineFactory {
23
23
  return machine;
24
24
  }
25
25
 
26
- static getBackupMachine(bot, botId, projectId, log) {
26
+ static getBackupMachine(bot, botId, projectId) {
27
27
  let machine;
28
28
  winston.verbose("(IntentsMachineFactory) Setting MongodbIntentsMachine as Backup Intents Machine on bot:", JSON.stringify(bot));
29
- machine = new MongodbIntentsMachine({projectId: projectId, language: bot.language, log});
29
+ machine = new MongodbIntentsMachine({projectId: projectId, language: bot.language});
30
30
  return machine;
31
31
  }
32
32
  }
@@ -9,7 +9,6 @@ class MongodbBotsDataSource {
9
9
  throw new Error("config.projectId is mandatory");
10
10
  }
11
11
  this.projectId = config.projectId;
12
- this.log = config.log;
13
12
  }
14
13
 
15
14
  async getBotById(botId) {
@@ -10,7 +10,6 @@ class MongodbIntentsMachine {
10
10
  }
11
11
  this.projectId = config.projectId;
12
12
  this.language = config.language;
13
- this.log = config.log;
14
13
  }
15
14
 
16
15
  /**
@@ -1,6 +1,5 @@
1
1
  // let Faq = require('./faq');
2
2
  // let Faq_kb = require('./faq_kb');
3
- // const { DirectivesChatbotPlug } = require('../tiledeskChatbotPlugs/DirectivesChatbotPlug');
4
3
  const { MessagePipeline } = require('../tiledeskChatbotPlugs/MessagePipeline');
5
4
  const { WebhookChatbotPlug } = require('../tiledeskChatbotPlugs/WebhookChatbotPlug');
6
5
  const { TiledeskClient } = require('@tiledesk/tiledesk-client');
@@ -41,7 +40,6 @@ class TiledeskChatbot {
41
40
  this.projectId = config.projectId;
42
41
  this.MAX_STEPS = config.MAX_STEPS;
43
42
  this.MAX_EXECUTION_TIME = config.MAX_EXECUTION_TIME;
44
- this.log = config.log;
45
43
  }
46
44
 
47
45
  async replyToMessage(message, callback) {
@@ -72,13 +70,13 @@ class TiledeskChatbot {
72
70
  winston.verbose("(TiledeskChatbot) Resetting current step by request message: " + message.text);
73
71
  await TiledeskChatbot.resetStep(this.tdcache, this.requestId);
74
72
  await TiledeskChatbot.resetStarted(this.tdcache, this.requestId);
75
- if (this.log) {
76
- if (this.tdcache) {
77
- let currentStep =
78
- await TiledeskChatbot.currentStep(this.tdcache, this.requestId);
79
- winston.verbose("(TiledeskChatbot) After reset currentStep:" + currentStep);
80
- }
73
+
74
+ if (this.tdcache) {
75
+ let currentStep =
76
+ await TiledeskChatbot.currentStep(this.tdcache, this.requestId);
77
+ winston.verbose("(TiledeskChatbot) After reset currentStep:" + currentStep);
81
78
  }
79
+
82
80
  }
83
81
  } catch(error) {
84
82
  winston.error("(TiledeskChatbot) Error resetting locked intent: ", error);
@@ -93,8 +91,7 @@ class TiledeskChatbot {
93
91
  // projectId: this.projectId,
94
92
  // token: this.token,
95
93
  // APIURL: this.APIURL,
96
- // APIKEY: this.APIKEY,
97
- // log: false
94
+ // APIKEY: this.APIKEY
98
95
  // });
99
96
  // it only gets the locked_intent
100
97
  // const faq = await this.botsDataSource.getByIntentDisplayName(this.botId, locked_intent);
@@ -506,7 +503,7 @@ class TiledeskChatbot {
506
503
  TiledeskChatbot.requestCacheKey(requestId) + ":parameters", paramName);
507
504
  }
508
505
 
509
- static async checkStep(_tdcache, requestId, max_steps, max_execution_time, log) {
506
+ static async checkStep(_tdcache, requestId, max_steps, max_execution_time) {
510
507
  winston.verbose("(TiledeskChatbot) Checking on MAX_STEPS: " + max_steps);
511
508
  // let go_on = true; // continue
512
509
  const parameter_key = TiledeskChatbot.requestCacheKey(requestId) + ":step";
@@ -579,7 +576,7 @@ class TiledeskChatbot {
579
576
  }
580
577
  const messagePipeline = new MessagePipeline(static_bot_answer, context);
581
578
  const webhookurl = bot.webhook_url;
582
- messagePipeline.addPlug(new WebhookChatbotPlug(userMessage.request, webhookurl, this.token, this.log));
579
+ messagePipeline.addPlug(new WebhookChatbotPlug(userMessage.request, webhookurl, this.token));
583
580
  const bot_answer = await messagePipeline.exec();
584
581
  return bot_answer;
585
582
  }
@@ -592,8 +589,7 @@ class TiledeskChatbot {
592
589
  form: form,
593
590
  requestId: this.requestId,
594
591
  chatbot: this,
595
- requestParameters: all_parameters,
596
- log: this.log
592
+ requestParameters: all_parameters
597
593
  });
598
594
  let message = await intentForm.getMessage(userInputReply);
599
595
  return message;
@@ -610,8 +606,7 @@ class TiledeskChatbot {
610
606
  projectId: this.projectId,
611
607
  token: this.token,
612
608
  APIURL: this.APIURL,
613
- APIKEY: this.APIKEY,
614
- log: this.log
609
+ APIKEY: this.APIKEY
615
610
  });
616
611
  // const parameters_key = "tilebot:requests:" + requestId + ":parameters";
617
612
  const all_parameters = await this.allParameters();//this.tdcache.hgetall(parameters_key);
@@ -12,7 +12,6 @@ class TiledeskIntentsMachine {
12
12
  else {
13
13
  this.API_ENDPOINT = config.API_ENDPOINT;
14
14
  }
15
- this.log = config.log;
16
15
  }
17
16
 
18
17
  /**
@@ -93,7 +92,7 @@ class TiledeskIntentsMachine {
93
92
  return tiledesk_intents;
94
93
  }
95
94
 
96
- myrequest(options, callback, log) {
95
+ myrequest(options, callback) {
97
96
  axios(
98
97
  {
99
98
  url: options.url,
package/index.js CHANGED
@@ -18,7 +18,6 @@ let axios = require('axios');
18
18
  router.use(bodyParser.json({limit: '50mb'}));
19
19
  router.use(bodyParser.urlencoded({ extended: true , limit: '50mb'}));
20
20
 
21
- let log = false;
22
21
  /** @type {TdCache} */
23
22
  let tdcache = null;
24
23
  let MAX_STEPS = 1000;
@@ -100,7 +99,7 @@ router.post('/ext/:botid', async (req, res) => {
100
99
 
101
100
  let botsDS;
102
101
  if (!staticBots) {
103
- botsDS = new MongodbBotsDataSource({projectId: projectId, botId: botId, log: log});
102
+ botsDS = new MongodbBotsDataSource({projectId: projectId, botId: botId});
104
103
  winston.verbose("(tybotRoute) botsDS created with Mongo");
105
104
  }
106
105
  else {
@@ -119,8 +118,8 @@ router.post('/ext/:botid', async (req, res) => {
119
118
  let intentsMachine;
120
119
  let backupMachine;
121
120
  if (!staticBots) {
122
- intentsMachine = IntentsMachineFactory.getMachine(bot, botId, projectId, log);
123
- backupMachine = IntentsMachineFactory.getBackupMachine(bot, botId, projectId, log);
121
+ intentsMachine = IntentsMachineFactory.getMachine(bot, botId, projectId);
122
+ backupMachine = IntentsMachineFactory.getBackupMachine(bot, botId, projectId);
124
123
  winston.debug("(tybotRoute) Created backupMachine:", backupMachine)
125
124
  }
126
125
  else {
@@ -140,8 +139,7 @@ router.post('/ext/:botid', async (req, res) => {
140
139
  requestId: requestId,
141
140
  projectId: projectId,
142
141
  MAX_STEPS: MAX_STEPS,
143
- MAX_EXECUTION_TIME: MAX_EXECUTION_TIME,
144
- log: log
142
+ MAX_EXECUTION_TIME: MAX_EXECUTION_TIME
145
143
  });
146
144
  winston.verbose("(tybotRoute) Message text: " + message.text)
147
145
 
@@ -178,7 +176,6 @@ router.post('/ext/:botid', async (req, res) => {
178
176
  API_ENDPOINT: API_ENDPOINT,
179
177
  TILEBOT_ENDPOINT:TILEBOT_ENDPOINT,
180
178
  token: token,
181
- log: log,
182
179
  // HELP_CENTER_API_ENDPOINT: process.env.HELP_CENTER_API_ENDPOINT,
183
180
  cache: tdcache
184
181
  }
@@ -203,8 +200,7 @@ router.post('/ext/:botid', async (req, res) => {
203
200
  reply.attributes.fillParams = true;
204
201
 
205
202
  const apiext = new ExtApi({
206
- TILEBOT_ENDPOINT: TILEBOT_ENDPOINT,
207
- log: false
203
+ TILEBOT_ENDPOINT: TILEBOT_ENDPOINT
208
204
  });
209
205
  apiext.sendSupportMessageExt(reply, projectId, requestId, token, () => {
210
206
  winston.verbose("(tybotRoute) sendSupportMessageExt reply sent: ", reply)
@@ -231,8 +227,7 @@ router.post('/ext/:projectId/requests/:requestId/messages', async (req, res) =>
231
227
  projectId: projectId,
232
228
  token: token,
233
229
  APIURL: API_ENDPOINT,
234
- APIKEY: "___",
235
- log: false
230
+ APIKEY: "___"
236
231
  });
237
232
 
238
233
  let request;
@@ -258,10 +253,10 @@ router.post('/ext/:projectId/requests/:requestId/messages', async (req, res) =>
258
253
  winston.debug("(tybotRoute) API_ENDPOINT: " + API_ENDPOINT);
259
254
  winston.debug("(tybotRoute) request: " + TILEBOT_ENDPOINT);
260
255
 
261
- let directivesPlug = new DirectivesChatbotPlug({supportRequest: request, API_ENDPOINT: API_ENDPOINT, TILEBOT_ENDPOINT: TILEBOT_ENDPOINT, token: token, log: log, HELP_CENTER_API_ENDPOINT: process.env.HELP_CENTER_API_ENDPOINT, cache: tdcache});
256
+ let directivesPlug = new DirectivesChatbotPlug({supportRequest: request, API_ENDPOINT: API_ENDPOINT, TILEBOT_ENDPOINT: TILEBOT_ENDPOINT, token: token, HELP_CENTER_API_ENDPOINT: process.env.HELP_CENTER_API_ENDPOINT, cache: tdcache});
262
257
 
263
258
  const original_answer_text = answer.text;
264
- const bot_answer = await ExtUtil.execPipelineExt(request, answer, directivesPlug, tdcache, log);
259
+ const bot_answer = await ExtUtil.execPipelineExt(request, answer, directivesPlug, tdcache);
265
260
  winston.debug("(tybotRoute) bot_answer: ", bot_answer);
266
261
 
267
262
  if (bot_answer) {
@@ -384,8 +379,7 @@ router.post('/echobot', (req, res) => {
384
379
  projectId: projectId,
385
380
  token: token,
386
381
  APIURL: API_ENDPOINT,
387
- APIKEY: "___",
388
- log: false
382
+ APIKEY: "___"
389
383
  });
390
384
 
391
385
  // instantly reply "success" to TILEDESK
@@ -418,8 +412,14 @@ router.post('/block/:project_id/:bot_id/:block_id', async (req, res) => {
418
412
 
419
413
  // invoke block
420
414
  // unique ID for each execution
421
- const execution_id = uuidv4().replace(/-/g, '');
422
- const request_id = "automation-request-" + project_id + "-" + execution_id;
415
+ let request_id;
416
+ if (body.preloaded_request_id) {
417
+ request_id = body.preloaded_request_id;
418
+ } else {
419
+ const execution_id = uuidv4().replace(/-/g, '');
420
+ request_id = "automation-request-" + project_id + "-" + execution_id;
421
+
422
+ }
423
423
  const command = "/#" + block_id;
424
424
  let message = {
425
425
  payload: {
@@ -513,13 +513,7 @@ async function startApp(settings, completionCallback) {
513
513
  });
514
514
  }
515
515
 
516
- if (!settings.log) {
517
- log = false;
518
- }
519
- else {
520
- log = true;
521
- }
522
- winston.info("(Tilebot) Log: " + log);
516
+ winston.info("(Tilebot) Log Level: " + process.env.LOG_LEVEL);
523
517
 
524
518
  if (process.env.CHATBOT_MAX_STEPS) {
525
519
  MAX_STEPS = Number(process.env.CHATBOT_MAX_STEPS);
@@ -598,7 +592,7 @@ async function checkRequest(request_id, id_project) {
598
592
  // WARNING! Move this function in models/TiledeskChatbotUtil.js
599
593
  }
600
594
 
601
- function myrequest(options, callback, log) {
595
+ function myrequest(options, callback) {
602
596
  winston.verbose("(tybotRoute) myrequest API URL:" + options.url);
603
597
  winston.debug("(tybotRoute) myrequest Options:", options);
604
598