@tiledesk/tiledesk-tybot-connector 0.2.75-rc1 → 0.2.76

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 CHANGED
@@ -5,8 +5,15 @@
5
5
  available on:
6
6
  ▶️ https://www.npmjs.com/package/@tiledesk/tiledesk-tybot-connector
7
7
 
8
+ # v0.2.76 - dev
9
+ - Added support to button alias
10
+
11
+ # v0.2.75 - dev
12
+ - Fix. get images and urls also without text
13
+ - "userLeadId" = message.request.lead._id (instead of the unuseful lead.lead_id)
14
+
8
15
  # v0.2.74 - online
9
- - Fix. Get DepartmentId in test-mode in IfOnelineAgentsV2
16
+ - Fix. Get DepartmentId for default department in test-mode in IfOnelineAgentsV2
10
17
 
11
18
  # v0.2.73 - debug
12
19
  - Fix. static getMachine with check on bot not null
@@ -252,13 +252,13 @@ class TiledeskChatbotUtil {
252
252
  if (commands[i].message) {
253
253
  if (commands[i].message.type === "text") { // check text commands
254
254
  if (( commands[i].message.text && commands[i].message.text.trim() === "") || !commands[i].message.text) {
255
- console.log("deleting command:", commands[i]);
255
+ // console.log("deleting command:", commands[i]);
256
256
  commands.splice(i, 1);
257
257
  if (commands[i-1]) {
258
258
  if (commands[i-1].type === "wait") {
259
259
  commands.splice(i-1, 1);
260
260
  i--;
261
- console.log("deleted wait");
261
+ // console.log("deleted wait");
262
262
  }
263
263
  }
264
264
  }
@@ -369,17 +369,42 @@ class TiledeskChatbotUtil {
369
369
  if (buttons === null || text === null) {
370
370
  return null;
371
371
  }
372
- let search_text = text.toLowerCase();
372
+ let search_text = text.toLowerCase().trim();
373
373
  let selected_button = null;
374
374
  for (let i = 0; i < buttons.length; i++) {
375
375
  const button = buttons[i];
376
376
  if (button.value !== null && button.value.toLowerCase() === search_text) {
377
377
  selected_button = button;
378
- break;
378
+ break;
379
+ }
380
+ else if (button.alias && button.alias.trim() !== "") { // search in button alias
381
+ let alias = button.alias.split(",");
382
+ // console.log("alias splitted:", alias);
383
+ if (alias.length > 0) {
384
+ for (let ii = 0; ii < alias.length; ii++) {
385
+ alias[ii] = alias[ii].toLowerCase().trim();
386
+ }
387
+ // console.log("alias proc:", alias);
388
+ if (alias.indexOf(search_text) > -1) {
389
+ selected_button = button;
390
+ break;
391
+ }
392
+ }
379
393
  }
380
394
  }
395
+
381
396
  return selected_button;
382
397
  }
398
+
399
+ static stripEmoji(str) {
400
+ // console.log("checking:", str);
401
+ if (str === null) {
402
+ return str;
403
+ }
404
+ return str.replace(/\p{Emoji}/gu, '')
405
+ .replace(/\s+/g, ' ')
406
+ .trim();
407
+ }
383
408
 
384
409
  static async updateConversationTranscript(chatbot, message) {
385
410
  if (!message || !message.senderFullname) { // not a conversation, can it be an Automation invocation?
@@ -510,104 +535,105 @@ class TiledeskChatbotUtil {
510
535
  }
511
536
  await chatbot.addParameter(TiledeskChatbotConst.REQ_LAST_USER_MESSAGE_TYPE_KEY, message.type);
512
537
  await chatbot.addParameter(TiledeskChatbotConst.REQ_LAST_USER_MESSAGE_KEY, TiledeskChatbotUtil.lastUserMessageFrom(message)); // JSON TYPE *NEW
513
- // get image
514
- if (message.type && message.type === "image" && message.metadata) {
515
- // "text": "\nimage text",
516
- // "id_project": "65203e12f8c0cf002cf4110b",
517
- // "createdBy": "8ac52a30-133f-4ee1-8b4b-96055bb81757",
518
- // "metadata": {
519
- // "height": 905,
520
- // "name": "tiledesk_Open graph_general.png",
521
- // "src": "https://firebasestorage.googleapis.com/v0/b/chat21-pre-01.appspot.com/o/public%2Fimages%2F8ac52a30-133f-4ee1-8b4b-96055bb81757%2Fda5bbc8d-5174-49a8-a041-3d9355242da5%2Ftiledesk_Open%20graph_general.png?alt=media&token=be82fecb-3cd1-45b9-a135-c2c57a932862",
522
- // "type": "image/png",
523
- // "uid": "lo68iyq5",
524
- // "width": 1724
525
- // }
526
- if (message.metadata.src) {
527
- await chatbot.addParameter("lastUserImageURL", message.metadata.src);
528
- await chatbot.addParameter("lastUserImageName", message.metadata.name);
529
- await chatbot.addParameter("lastUserImageWidth", message.metadata.width);
530
- await chatbot.addParameter("lastUserImageHeight", message.metadata.height);
531
- await chatbot.addParameter("lastUserImageType", message.metadata.type);
538
+ }
539
+
540
+ // get image
541
+ if (message.type && message.type === "image" && message.metadata) {
542
+ // "text": "\nimage text",
543
+ // "id_project": "65203e12f8c0cf002cf4110b",
544
+ // "createdBy": "8ac52a30-133f-4ee1-8b4b-96055bb81757",
545
+ // "metadata": {
546
+ // "height": 905,
547
+ // "name": "tiledesk_Open graph_general.png",
548
+ // "src": "https://firebasestorage.googleapis.com/v0/b/chat21-pre-01.appspot.com/o/public%2Fimages%2F8ac52a30-133f-4ee1-8b4b-96055bb81757%2Fda5bbc8d-5174-49a8-a041-3d9355242da5%2Ftiledesk_Open%20graph_general.png?alt=media&token=be82fecb-3cd1-45b9-a135-c2c57a932862",
549
+ // "type": "image/png",
550
+ // "uid": "lo68iyq5",
551
+ // "width": 1724
552
+ // }
553
+ if (message.metadata.src) {
554
+ await chatbot.addParameter("lastUserImageURL", message.metadata.src);
555
+ await chatbot.addParameter("lastUserImageName", message.metadata.name);
556
+ await chatbot.addParameter("lastUserImageWidth", message.metadata.width);
557
+ await chatbot.addParameter("lastUserImageHeight", message.metadata.height);
558
+ await chatbot.addParameter("lastUserImageType", message.metadata.type);
559
+ }
560
+ }
561
+ else {
562
+ await chatbot.addParameter("lastUserImageURL", null);
563
+ await chatbot.addParameter("lastUserImageName", null);
564
+ await chatbot.addParameter("lastUserImageWidth", null);
565
+ await chatbot.addParameter("lastUserImageHeight", null);
566
+ await chatbot.addParameter("lastUserImageType", null);
567
+ }
568
+ // get document
569
+ if (message.type && message.type === "file" && message.metadata) {
570
+ // "type": "file",
571
+ // "text": "[LIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf](https://firebasestorage.googleapis.com/v0/b/chat21-pre-01.appspot.com/o/public%2Fimages%2F8ac52a30-133f-4ee1-8b4b-96055bb81757%2F502265ee-4f4a-47a4-9375-172bb0e6bf39%2FLIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf?alt=media&token=a09d065a-9b56-4507-8960-344cc294e4d1)\nistruzioni",
572
+ // "metadata": {
573
+ // "name": "LIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf",
574
+ // "src": "https://firebasestorage.googleapis.com/v0/b/chat21-pre-01.appspot.com/o/public%2Fimages%2F8ac52a30-133f-4ee1-8b4b-96055bb81757%2F502265ee-4f4a-47a4-9375-172bb0e6bf39%2FLIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf?alt=media&token=a09d065a-9b56-4507-8960-344cc294e4d1",
575
+ // "type": "application/pdf",
576
+ // "uid": "lo68oz8i"
577
+ // }
578
+ if (message.metadata.src) {
579
+ await chatbot.addParameter("lastUserDocumentURL", message.metadata.src); // legacy. will be deprecated
580
+ const url_as_attachment = message.metadata.src;
581
+ await chatbot.addParameter("lastUserDocumentAsAttachmentURL", url_as_attachment);
582
+ let url_inline = url_as_attachment;
583
+ if (url_as_attachment.match(/.*\/download.*/)) { // removing "/download" removes the "Content-disposion: attachment" HTTP header
584
+ url_inline = url_as_attachment.replace('/download', '/');
532
585
  }
586
+ await chatbot.addParameter("lastUserDocumentAsInlineURL", url_inline);
587
+ await chatbot.addParameter("lastUserDocumentName", message.metadata.name);
588
+ await chatbot.addParameter("lastUserDocumentType", message.metadata.type);
533
589
  }
534
- else {
535
- await chatbot.addParameter("lastUserImageURL", null);
536
- await chatbot.addParameter("lastUserImageName", null);
537
- await chatbot.addParameter("lastUserImageWidth", null);
538
- await chatbot.addParameter("lastUserImageHeight", null);
539
- await chatbot.addParameter("lastUserImageType", null);
590
+ }
591
+ else {
592
+ await chatbot.addParameter("lastUserDocumentURL", null);
593
+ await chatbot.addParameter("lastUserDocumentName", null);
594
+ await chatbot.addParameter("lastUserDocumentType", null);
595
+ }
596
+ if (message && message.request && message.request.lead) {
597
+ if (message.request.lead.email) {
598
+ await chatbot.addParameter("userEmail", message.request.lead.email);
540
599
  }
541
- // get document
542
- if (message.type && message.type === "file" && message.metadata) {
543
- // "type": "file",
544
- // "text": "[LIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf](https://firebasestorage.googleapis.com/v0/b/chat21-pre-01.appspot.com/o/public%2Fimages%2F8ac52a30-133f-4ee1-8b4b-96055bb81757%2F502265ee-4f4a-47a4-9375-172bb0e6bf39%2FLIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf?alt=media&token=a09d065a-9b56-4507-8960-344cc294e4d1)\nistruzioni",
545
- // "metadata": {
546
- // "name": "LIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf",
547
- // "src": "https://firebasestorage.googleapis.com/v0/b/chat21-pre-01.appspot.com/o/public%2Fimages%2F8ac52a30-133f-4ee1-8b4b-96055bb81757%2F502265ee-4f4a-47a4-9375-172bb0e6bf39%2FLIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf?alt=media&token=a09d065a-9b56-4507-8960-344cc294e4d1",
548
- // "type": "application/pdf",
549
- // "uid": "lo68oz8i"
550
- // }
551
- if (message.metadata.src) {
552
- await chatbot.addParameter("lastUserDocumentURL", message.metadata.src); // legacy. will be deprecated
553
- const url_as_attachment = message.metadata.src;
554
- await chatbot.addParameter("lastUserDocumentAsAttachmentURL", url_as_attachment);
555
- let url_inline = url_as_attachment;
556
- if (url_as_attachment.match(/.*\/download.*/)) { // removing "/download" removes the "Content-disposion: attachment" HTTP header
557
- url_inline = url_as_attachment.replace('/download', '/');
558
- }
559
- await chatbot.addParameter("lastUserDocumentAsInlineURL", url_inline);
560
- await chatbot.addParameter("lastUserDocumentName", message.metadata.name);
561
- await chatbot.addParameter("lastUserDocumentType", message.metadata.type);
600
+ if (message.request.lead.fullname && !message.request.lead.fullname.startsWith("guest#")) {
601
+ // worth saving
602
+ try {
603
+ // const current_userFullname = await chatbot.getParameter("userFullname");
604
+ // if (current_userFullname && current_userFullname.startsWith("guest#")) { // replace if exists as guest#
605
+ // await chatbot.addParameter("userFullname", message.request.lead.fullname);
606
+ // }
607
+ // else if (!current_userFullname) {
608
+ await chatbot.addParameter("userFullname", message.request.lead.fullname);
609
+ // }
610
+ }
611
+ catch(error) {
612
+ console.error("Error on setting userFullname:", error);
562
613
  }
563
614
  }
564
615
  else {
565
- await chatbot.addParameter("lastUserDocumentURL", null);
566
- await chatbot.addParameter("lastUserDocumentName", null);
567
- await chatbot.addParameter("lastUserDocumentType", null);
616
+ // console.log("!lead.fullname");
568
617
  }
569
- if (message && message.request && message.request.lead) {
570
- if (message.request.lead.email) {
571
- await chatbot.addParameter("userEmail", message.request.lead.email);
572
- }
573
- if (message.request.lead.fullname && !message.request.lead.fullname.startsWith("guest#")) {
574
- // worth saving
575
- try {
576
- // const current_userFullname = await chatbot.getParameter("userFullname");
577
- // if (current_userFullname && current_userFullname.startsWith("guest#")) { // replace if exists as guest#
578
- // await chatbot.addParameter("userFullname", message.request.lead.fullname);
579
- // }
580
- // else if (!current_userFullname) {
581
- await chatbot.addParameter("userFullname", message.request.lead.fullname);
582
- // }
583
- }
584
- catch(error) {
585
- console.error("Error on setting userFullname:", error);
586
- }
587
- }
588
- else {
589
- // console.log("!lead.fullname");
590
- }
591
- // console.log("Getting userPhone:", JSON.stringify(message.request));
592
- if (message.request.lead.phone) {
593
- await chatbot.addParameter("userPhone", message.request.lead.phone);
594
- }
595
- if (message.request.lead.lead_id && message.request.lead.lead_id.startsWith("wab-")) {
596
- const splits = message.request.lead.lead_id.split("-");
597
- if (splits && splits.length > 1) {
598
- await chatbot.addParameter("currentPhoneNumber",splits[1]);
599
- }
600
- }
601
- if (message.request.lead.lead_id) {
602
- await chatbot.addParameter("userLeadId", message.request.lead.lead_id);
603
- }
604
- if (message.request.lead.company) {
605
- await chatbot.addParameter("userCompany", message.request.lead.company);
606
- }
607
- if (message.request.ticket_id) {
608
- await chatbot.addParameter("ticketId", message.request.ticket_id);
618
+ // console.log("Getting userPhone:", JSON.stringify(message.request));
619
+ if (message.request.lead.phone) {
620
+ await chatbot.addParameter("userPhone", message.request.lead.phone);
621
+ }
622
+ if (message.request.lead.lead_id && message.request.lead.lead_id.startsWith("wab-")) {
623
+ const splits = message.request.lead.lead_id.split("-");
624
+ if (splits && splits.length > 1) {
625
+ await chatbot.addParameter("currentPhoneNumber",splits[1]);
609
626
  }
610
627
  }
628
+ if (message.request.lead._id) {
629
+ await chatbot.addParameter("userLeadId", message.request.lead._id);
630
+ }
631
+ if (message.request.lead.company) {
632
+ await chatbot.addParameter("userCompany", message.request.lead.company);
633
+ }
634
+ if (message.request.ticket_id) {
635
+ await chatbot.addParameter("ticketId", message.request.ticket_id);
636
+ }
611
637
  }
612
638
 
613
639
  await chatbot.addParameter(TiledeskChatbotConst.REQ_LAST_MESSAGE_ID_KEY, messageId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiledesk/tiledesk-tybot-connector",
3
- "version": "0.2.75-rc1",
3
+ "version": "0.2.76",
4
4
  "description": "Tiledesk Tybot connector",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -57,13 +57,11 @@ class DirAskGPTV2 {
57
57
 
58
58
  // default values
59
59
  let answer = "No answers";
60
- let namespace = this.context.projectId;
60
+ let source = null;
61
61
  let model = "gpt-3.5-turbo";
62
62
  let temperature;
63
63
  let max_tokens;
64
64
  let top_k;
65
-
66
- let source = null;
67
65
 
68
66
  if (!action.question || action.question === '') {
69
67
  console.error("Error: DirAskGPT question attribute is mandatory. Executing condition false...");
@@ -75,9 +73,6 @@ class DirAskGPTV2 {
75
73
  return;
76
74
  }
77
75
 
78
- if (action.namespace) {
79
- namespace = action.namespace;
80
- }
81
76
  if (action.model) {
82
77
  model = action.model;
83
78
  }
@@ -148,7 +143,7 @@ class DirAskGPTV2 {
148
143
  let json = {
149
144
  question: filled_question,
150
145
  gptkey: key,
151
- namespace: namespace,
146
+ namespace: this.context.projectId,
152
147
  model: model
153
148
  };
154
149
  if (top_k) {