@tiledesk/tiledesk-server 2.2.2 → 2.2.8
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +20 -1
- package/package.json +4 -4
- package/pubmodules/emailNotification/requestNotification.js +31 -9
- package/routes/urls.js +1 -1
- package/services/emailService.js +83 -53
- package/services/faqService.js +1 -2
- package/template/email/ticket.html +3 -4
- package/test/requestRoute.js +0 -1
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
# 2.2.8
|
2
|
+
- Public trigger module
|
3
|
+
|
4
|
+
# 2.2.6
|
5
|
+
- Quota license fix
|
6
|
+
|
7
|
+
# 2.2.4
|
8
|
+
- email invitation fix
|
9
|
+
|
10
|
+
# 2.2.3
|
11
|
+
- Email inboud fix (others disabled and inboudDomain variable fix and token query string encode fix)
|
12
|
+
|
13
|
+
# 2.2.2
|
14
|
+
- log fix
|
15
|
+
|
16
|
+
# 2.2.1
|
17
|
+
- log fix
|
1
18
|
|
2
19
|
# 2.2.0
|
3
20
|
- Cache circleci fix
|
@@ -78,8 +95,10 @@
|
|
78
95
|
- Added email notification for new message and new request for email and form channel (ticket)
|
79
96
|
- Added microLanguageTransformationInterceptor enabled when message.attributes.microlanguage==true
|
80
97
|
|
98
|
+
# 2.1.40.35
|
99
|
+
- Quota license fix
|
81
100
|
|
82
|
-
# 2.1.40.34
|
101
|
+
# 2.1.40.34
|
83
102
|
- logfix
|
84
103
|
|
85
104
|
# 2.1.40.33
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@tiledesk/tiledesk-server",
|
3
3
|
"description": "The Tiledesk server module",
|
4
|
-
"version": "2.2.
|
4
|
+
"version": "2.2.8",
|
5
5
|
"scripts": {
|
6
6
|
"start": "node ./bin/www",
|
7
7
|
"pretest": "mongodb-runner start",
|
@@ -37,14 +37,14 @@
|
|
37
37
|
"@tiledesk-ent/tiledesk-server-dialogflow": "^1.1.6",
|
38
38
|
"@tiledesk-ent/tiledesk-server-groups": "^1.1.2",
|
39
39
|
"@tiledesk-ent/tiledesk-server-jwthistory": "^1.1.9",
|
40
|
-
"@tiledesk-ent/tiledesk-server-mt": "^1.1.
|
40
|
+
"@tiledesk-ent/tiledesk-server-mt": "^1.1.7",
|
41
41
|
"@tiledesk-ent/tiledesk-server-payments": "^1.1.5",
|
42
42
|
"@tiledesk-ent/tiledesk-server-queue": "^1.1.10",
|
43
43
|
"@tiledesk-ent/tiledesk-server-request-history": "^1.1.5",
|
44
|
-
"@tiledesk-ent/tiledesk-server-resthook": "^1.1.
|
44
|
+
"@tiledesk-ent/tiledesk-server-resthook": "^1.1.51",
|
45
45
|
"@tiledesk-ent/tiledesk-server-routing-queue": "^1.1.11",
|
46
46
|
"@tiledesk-ent/tiledesk-server-tags": "^1.1.1",
|
47
|
-
"@tiledesk-ent/tiledesk-server-triggers": "^1.1.
|
47
|
+
"@tiledesk-ent/tiledesk-server-triggers": "^1.1.78",
|
48
48
|
"@tiledesk-ent/tiledesk-server-visitorcounter": "^1.1.1"
|
49
49
|
},
|
50
50
|
"dependencies": {
|
@@ -261,6 +261,7 @@ sendToUserEmailChannelEmail(projectid, message) {
|
|
261
261
|
jwtid: uuidv4()
|
262
262
|
};
|
263
263
|
|
264
|
+
|
264
265
|
var recipient = lead.lead_id;
|
265
266
|
winston.debug("recipient:"+ recipient);
|
266
267
|
|
@@ -291,12 +292,13 @@ sendToUserEmailChannelEmail(projectid, message) {
|
|
291
292
|
winston.debug("sourcePage "+sourcePage);
|
292
293
|
|
293
294
|
|
294
|
-
var tokenQueryString;
|
295
|
-
if(sourcePage && sourcePage.indexOf('?')>-1) {
|
296
|
-
tokenQueryString = "&tiledesk_jwt=
|
295
|
+
var tokenQueryString;
|
296
|
+
if(sourcePage && sourcePage.indexOf('?')>-1) { //controllo superfluo visto che lo metto prima? ma lascio comunque per indipendenza
|
297
|
+
tokenQueryString = encodeURIComponent("&tiledesk_jwt=JWT "+token)
|
297
298
|
}else {
|
298
|
-
tokenQueryString = "?tiledesk_jwt=
|
299
|
+
tokenQueryString = encodeURIComponent("?tiledesk_jwt=JWT "+token);
|
299
300
|
}
|
301
|
+
winston.debug("tokenQueryString: "+tokenQueryString);
|
300
302
|
|
301
303
|
emailService.sendEmailChannelNotification(message.request.lead.email, message, project, tokenQueryString, sourcePage);
|
302
304
|
|
@@ -610,11 +612,12 @@ sendUserEmail(projectid, message) {
|
|
610
612
|
|
611
613
|
var tokenQueryString;
|
612
614
|
if(sourcePage && sourcePage.indexOf('?')>-1) { //controllo superfluo visto che lo metto prima? ma lascio comunque per indipendenza
|
613
|
-
tokenQueryString = "&tiledesk_jwt=
|
615
|
+
tokenQueryString = encodeURIComponent("&tiledesk_jwt=JWT "+token)
|
614
616
|
}else {
|
615
|
-
tokenQueryString = "?tiledesk_jwt=
|
617
|
+
tokenQueryString = encodeURIComponent("?tiledesk_jwt=JWT "+token);
|
616
618
|
}
|
617
|
-
|
619
|
+
winston.debug("tokenQueryString: "+tokenQueryString);
|
620
|
+
|
618
621
|
emailService.sendNewMessageNotification(lead.email, message, project, tokenQueryString, sourcePage);
|
619
622
|
}
|
620
623
|
|
@@ -775,8 +778,27 @@ sendAgentEmail(projectid, savedRequest) {
|
|
775
778
|
winston.warn("User not found", savedRequest.participants[0]);
|
776
779
|
} else {
|
777
780
|
winston.verbose("Sending sendNewAssignedRequestNotification to user with email", user.email);
|
778
|
-
// if (user.emailverified) { enable it? send anyway to improve engagment for new account
|
779
|
-
|
781
|
+
// if (user.emailverified) { enable it? send anyway to improve engagment for new account
|
782
|
+
|
783
|
+
|
784
|
+
// var signOptions = {
|
785
|
+
// issuer: 'https://tiledesk.com',
|
786
|
+
// subject: 'user',
|
787
|
+
// audience: 'https://tiledesk.com',
|
788
|
+
// jwtid: uuidv4()
|
789
|
+
// };
|
790
|
+
|
791
|
+
// let userObject = {_id: user._id, firstname: user.firstname, lastname: user.lastname, email: user.email, attributes: user.attributes};
|
792
|
+
// winston.debug("userObject ",userObject);
|
793
|
+
|
794
|
+
|
795
|
+
// var agentToken = jwt.sign(userObject, configSecret, signOptions);
|
796
|
+
// winston.debug("agentToken "+agentToken);
|
797
|
+
|
798
|
+
|
799
|
+
|
800
|
+
|
801
|
+
emailService.sendNewAssignedRequestNotification(user.email, savedRequest, project);
|
780
802
|
// }
|
781
803
|
}
|
782
804
|
});
|
package/routes/urls.js
CHANGED
package/services/emailService.js
CHANGED
@@ -74,15 +74,15 @@ class EmailService {
|
|
74
74
|
}
|
75
75
|
winston.info('EmailService replyEnabled : '+ this.replyEnabled);
|
76
76
|
|
77
|
-
//
|
77
|
+
// this is used as fixed reply to url, but this is unused we always return support-group-dynamic
|
78
78
|
this.replyTo = process.env.EMAIL_REPLY_TO || config.replyTo;
|
79
79
|
winston.info('EmailService replyTo address: '+ this.replyTo);
|
80
80
|
|
81
|
-
this.
|
82
|
-
winston.info('EmailService
|
81
|
+
this.inboundDomain = process.env.EMAIL_INBOUND_DOMAIN || config.inboundDomain;
|
82
|
+
winston.info('EmailService inboundDomain : '+ this.inboundDomain);
|
83
83
|
|
84
|
-
this.
|
85
|
-
winston.verbose('EmailService
|
84
|
+
this.inboundDomainDomainWithAt = "@"+this.inboundDomain;
|
85
|
+
winston.verbose('EmailService inboundDomainDomainWithAt : '+ this.inboundDomainDomainWithAt);
|
86
86
|
|
87
87
|
this.pass = process.env.EMAIL_PASSWORD;
|
88
88
|
|
@@ -346,7 +346,11 @@ class EmailService {
|
|
346
346
|
|
347
347
|
let messageId = "notification" + "@" + MESSAGE_ID_DOMAIN;
|
348
348
|
|
349
|
-
let replyTo
|
349
|
+
let replyTo;
|
350
|
+
if (this.replyEnabled) { //fai anche per gli altri
|
351
|
+
replyTo = request.request_id + this.inboundDomainDomainWithAt;
|
352
|
+
}
|
353
|
+
|
350
354
|
let headers;
|
351
355
|
if (request) {
|
352
356
|
|
@@ -356,7 +360,11 @@ class EmailService {
|
|
356
360
|
replyTo = request.attributes.email_replyTo;
|
357
361
|
}
|
358
362
|
|
359
|
-
headers = {
|
363
|
+
headers = {
|
364
|
+
"X-TILEDESK-PROJECT-ID": project._id,
|
365
|
+
"X-TILEDESK-REQUEST-ID": request.request_id,
|
366
|
+
"X-TILEDESK-TICKET-ID":request.ticket_id,
|
367
|
+
};
|
360
368
|
|
361
369
|
winston.verbose("messageId: " + messageId);
|
362
370
|
winston.verbose("replyTo: " + replyTo);
|
@@ -488,7 +496,11 @@ class EmailService {
|
|
488
496
|
|
489
497
|
let messageId = message._id + "@" + MESSAGE_ID_DOMAIN;
|
490
498
|
|
491
|
-
let replyTo
|
499
|
+
let replyTo;
|
500
|
+
if (this.replyEnabled) {
|
501
|
+
replyTo = message.request.request_id + this.inboundDomainDomainWithAt;
|
502
|
+
}
|
503
|
+
|
492
504
|
let headers;
|
493
505
|
if (message.request) {
|
494
506
|
|
@@ -507,13 +519,13 @@ class EmailService {
|
|
507
519
|
|
508
520
|
let inReplyTo;
|
509
521
|
let references;
|
510
|
-
if (message.attributes) {
|
511
|
-
if (message.attributes.email_messageId) {
|
512
|
-
inReplyTo = message.attributes.email_messageId;
|
513
|
-
|
514
|
-
|
515
|
-
references = message.attributes.email_references;
|
516
|
-
|
522
|
+
if (message.request.attributes) {
|
523
|
+
if (message.request.attributes.email_messageId) {
|
524
|
+
inReplyTo = message.request.attributes.email_messageId;
|
525
|
+
}
|
526
|
+
if (message.request.attributes.email_references) {
|
527
|
+
references = message.request.attributes.email_references;
|
528
|
+
}
|
517
529
|
}
|
518
530
|
winston.verbose("sendNewAssignedAgentMessageEmailNotification email inReplyTo: "+ inReplyTo);
|
519
531
|
winston.verbose("sendNewAssignedAgentMessageEmailNotification email references: "+ references);
|
@@ -629,7 +641,11 @@ class EmailService {
|
|
629
641
|
|
630
642
|
let messageId = "notification-pooled" + new Date().getTime() + "@" + MESSAGE_ID_DOMAIN;
|
631
643
|
|
632
|
-
let replyTo
|
644
|
+
let replyTo;
|
645
|
+
if (this.replyEnabled) {
|
646
|
+
replyTo = request.request_id + this.inboundDomainDomainWithAt;
|
647
|
+
}
|
648
|
+
|
633
649
|
let headers;
|
634
650
|
if (request) {
|
635
651
|
|
@@ -765,7 +781,11 @@ class EmailService {
|
|
765
781
|
|
766
782
|
let messageId = message._id + "@" + MESSAGE_ID_DOMAIN;
|
767
783
|
|
768
|
-
let replyTo
|
784
|
+
let replyTo;
|
785
|
+
if (this.replyEnabled) {
|
786
|
+
replyTo = message.request.request_id + this.inboundDomainDomainWithAt;
|
787
|
+
}
|
788
|
+
|
769
789
|
let headers;
|
770
790
|
if (message.request) {
|
771
791
|
|
@@ -784,13 +804,13 @@ class EmailService {
|
|
784
804
|
|
785
805
|
let inReplyTo;
|
786
806
|
let references;
|
787
|
-
if (message.attributes) {
|
788
|
-
if (message.attributes.email_messageId) {
|
789
|
-
inReplyTo = message.attributes.email_messageId;
|
790
|
-
|
791
|
-
|
792
|
-
references = message.attributes.email_references;
|
793
|
-
|
807
|
+
if (message.request.attributes) {
|
808
|
+
if (message.request.attributes.email_messageId) {
|
809
|
+
inReplyTo = message.request.attributes.email_messageId;
|
810
|
+
}
|
811
|
+
if (message.request.attributes.email_references) {
|
812
|
+
references = message.request.attributes.email_references;
|
813
|
+
}
|
794
814
|
}
|
795
815
|
winston.verbose("sendNewPooledMessageEmailNotification email inReplyTo: "+ inReplyTo);
|
796
816
|
winston.verbose("sendNewPooledMessageEmailNotification email references: "+ references);
|
@@ -904,7 +924,11 @@ class EmailService {
|
|
904
924
|
|
905
925
|
let messageId = message._id + "@" + MESSAGE_ID_DOMAIN;
|
906
926
|
|
907
|
-
let replyTo
|
927
|
+
let replyTo;
|
928
|
+
if (this.replyEnabled) {
|
929
|
+
replyTo = message.request.request_id + this.inboundDomainDomainWithAt;
|
930
|
+
}
|
931
|
+
|
908
932
|
let headers;
|
909
933
|
if (message.request) {
|
910
934
|
|
@@ -923,13 +947,13 @@ class EmailService {
|
|
923
947
|
|
924
948
|
let inReplyTo;
|
925
949
|
let references;
|
926
|
-
if (message.attributes) {
|
927
|
-
if (message.attributes.email_messageId) {
|
928
|
-
inReplyTo = message.attributes.email_messageId;
|
929
|
-
|
930
|
-
|
931
|
-
references = message.attributes.email_references;
|
932
|
-
|
950
|
+
if (message.request.attributes) {
|
951
|
+
if (message.request.attributes.email_messageId) {
|
952
|
+
inReplyTo = message.request.attributes.email_messageId;
|
953
|
+
}
|
954
|
+
if (message.attributes.email_references) {
|
955
|
+
references = message.request.attributes.email_references;
|
956
|
+
}
|
933
957
|
}
|
934
958
|
winston.verbose("email inReplyTo: "+ inReplyTo);
|
935
959
|
winston.verbose("email references: "+ references);
|
@@ -1015,6 +1039,8 @@ class EmailService {
|
|
1015
1039
|
}
|
1016
1040
|
|
1017
1041
|
winston.debug("msgText: " + msgText);
|
1042
|
+
winston.debug("baseScope: " + JSON.stringify(baseScope));
|
1043
|
+
|
1018
1044
|
|
1019
1045
|
var replacements = {
|
1020
1046
|
message: message,
|
@@ -1033,7 +1059,11 @@ class EmailService {
|
|
1033
1059
|
|
1034
1060
|
let messageId = message._id + "@" + MESSAGE_ID_DOMAIN;
|
1035
1061
|
|
1036
|
-
let replyTo
|
1062
|
+
let replyTo;
|
1063
|
+
if (this.replyEnabled) {
|
1064
|
+
replyTo = message.request.request_id + this.inboundDomainDomainWithAt;
|
1065
|
+
}
|
1066
|
+
|
1037
1067
|
let headers;
|
1038
1068
|
if (message.request) {
|
1039
1069
|
|
@@ -1056,24 +1086,24 @@ class EmailService {
|
|
1056
1086
|
let cc;
|
1057
1087
|
let ccString;
|
1058
1088
|
|
1059
|
-
if (message.attributes) {
|
1089
|
+
if (message.request && message.request.attributes) {
|
1090
|
+
winston.debug("email message.request.attributes: ", message.request.attributes);
|
1060
1091
|
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1076
|
-
}
|
1092
|
+
if (message.request.attributes.email_messageId) {
|
1093
|
+
inReplyTo = message.request.attributes.email_messageId;
|
1094
|
+
}
|
1095
|
+
if (message.request.attributes.email_references) {
|
1096
|
+
references = message.request.attributes.email_references;
|
1097
|
+
}
|
1098
|
+
|
1099
|
+
if (message.request.attributes.email_cc) {
|
1100
|
+
cc = message.request.attributes.email_cc;
|
1101
|
+
}
|
1102
|
+
winston.debug("email message.request.attributes.email_ccStr: "+ message.request.attributes.email_ccStr);
|
1103
|
+
if (message.request.attributes.email_ccStr!=undefined) {
|
1104
|
+
ccString = message.request.attributes.email_ccStr;
|
1105
|
+
winston.debug("email set ccString");
|
1106
|
+
}
|
1077
1107
|
}
|
1078
1108
|
winston.verbose("email inReplyTo: "+ inReplyTo);
|
1079
1109
|
winston.verbose("email references: "+ references);
|
@@ -1187,7 +1217,7 @@ class EmailService {
|
|
1187
1217
|
|
1188
1218
|
var that = this;
|
1189
1219
|
|
1190
|
-
var html = await this.readTemplate('resetPassword.html'
|
1220
|
+
var html = await this.readTemplate('resetPassword.html');
|
1191
1221
|
|
1192
1222
|
|
1193
1223
|
var envTemplate = process.env.EMAIL_RESET_PASSWORD_HTML_TEMPLATE;
|
@@ -1269,7 +1299,7 @@ class EmailService {
|
|
1269
1299
|
|
1270
1300
|
var that = this;
|
1271
1301
|
|
1272
|
-
var html = await this.readTemplateFile('
|
1302
|
+
var html = await this.readTemplateFile('beenInvitedExistingUser.html');
|
1273
1303
|
|
1274
1304
|
var envTemplate = process.env.EMAIL_EXUSER_INVITED_HTML_TEMPLATE;
|
1275
1305
|
winston.debug("envTemplate: " + envTemplate);
|
@@ -1315,7 +1345,7 @@ class EmailService {
|
|
1315
1345
|
|
1316
1346
|
var that = this;
|
1317
1347
|
|
1318
|
-
var html = await this.readTemplateFile('
|
1348
|
+
var html = await this.readTemplateFile('beenInvitedNewUser.html');
|
1319
1349
|
|
1320
1350
|
var envTemplate = process.env.EMAIL_NEWUSER_INVITED_HTML_TEMPLATE;
|
1321
1351
|
winston.debug("envTemplate: " + envTemplate);
|
package/services/faqService.js
CHANGED
@@ -62,13 +62,12 @@ class FaqService {
|
|
62
62
|
{ 'question': '👨🏻🦰 I want an agent', 'answer': 'We are looking for an operator.. '+ActionsConstants.CHAT_ACTION_MESSAGE.AGENT, 'intent_display_name': 'agent_handoff', 'topic': 'internal' },
|
63
63
|
{ 'question': 'Close\nResolved', 'answer': ActionsConstants.CHAT_ACTION_MESSAGE.CLOSE, 'topic': 'internal' },
|
64
64
|
{ 'question': '\\start', 'answer': 'Hello 👋. I\'m a bot 🤖.\n\nChoose one of the options below or write a message to reach our staff.\n* Who are you?\n* Where are you?\n* What can you do?\n* 👨🏻🦰 I want an agent', 'intent_display_name': 'start', 'topic': 'internal' },
|
65
|
-
// { 'question': 'Menu', 'answer': 'Choose one of the options below or write a message to reach our staff.\n* Who are you?\n* Where are you?\n* What can you do?\n* 👨🏻🦰 I want an agent','topic': 'internal' },
|
66
65
|
{ 'question': 'defaultFallback', 'answer': 'I can not provide an adequate answer. Write a new question or talk to a human agent.\n* Back to start tdAction:start\n* See the docs https://docs.tiledesk.com/\n* 👨🏻🦰 I want an agent', 'topic': 'internal' }, //TODO se metto spazio n * nn va
|
67
66
|
{ 'question': 'What can you do?', 'answer': 'Using natural language processing, I\'m able to find the best answer for your users. I also support images, videos etc.. Let\'s try:\n* Sample Image\n* Sample Video\n* Sample Action tdAction:action1\n* Sample Frame\n* Back to start tdAction:start', 'topic': 'sample' },
|
68
67
|
{ 'question': 'Sample Image', 'answer': 'tdImage:https://tiledesk.com/tiledesk-logo-x1.png\n* What can you do?\n* Back to start tdAction:start', 'topic': 'sample' },
|
69
68
|
{ 'question': 'Sample Frame', 'answer': 'tdFrame:https://www.emanueleferonato.com/wp-content/uploads/2019/02/runner/\n* What can you do?\n* Back to start tdAction:start', 'topic': 'sample' },
|
70
69
|
{ 'question': 'Sample Video', 'answer': 'tdVideo:https://www.youtube.com/embed/EngW7tLk6R8\n* What can you do?\n* Back to start tdAction:start', 'topic': 'sample' },
|
71
|
-
{ 'question': 'Where are you', 'answer': 'We are here ❤️\ntdFrame:https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d6087916.923447935!2d8.234804542117423!3d41.836572992140624!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x12d4fe82448dd203%3A0xe22cf55c24635e6f!2sItaly!5e0!3m2!1sen!2sit!4v1613657475377!5m2!1sen!2sit\n* Back to start tdAction:start', 'topic': 'sample' },
|
70
|
+
{ 'question': 'Where are you?', 'answer': 'We are here ❤️\ntdFrame:https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d6087916.923447935!2d8.234804542117423!3d41.836572992140624!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x12d4fe82448dd203%3A0xe22cf55c24635e6f!2sItaly!5e0!3m2!1sen!2sit!4v1613657475377!5m2!1sen!2sit\n* Back to start tdAction:start', 'topic': 'sample' },
|
72
71
|
|
73
72
|
// { 'question': 'Sample Webhook', 'answer': 'tdWebhook:https://tiledesk-bot-webhook.tiledesk.repl.co', 'topic': 'sample' },
|
74
73
|
{ 'question': 'Sample Action', 'answer': 'Hello 👋 Would you like to take a closer look at our offer?\n* Yes, please tdAction:yes_action\n* No tdAction:no_action','intent_display_name': 'action1', 'topic': 'sample' },
|
@@ -132,8 +132,7 @@
|
|
132
132
|
{{#ifEquals this.type "url"}}
|
133
133
|
<li><a href="{{this.link}}" class="dynamic_button">{{this.value}}</a></li>
|
134
134
|
{{else}}
|
135
|
-
<li><a href="mailto:{{../message.request.request_id}}@{{baseScope.inboundDomain}}?subject=Re:%20{{../message.request.subject}}&body={{this.value}}" class="dynamic_button">{{this.value}}</a></li>
|
136
|
-
<!-- <li><a href="https://api.tiledesk.com/v2/{{project.id}}/link?secret_token={{tokenQueryString}}" class="dynamic_button">{{this.value}}</a></li> -->
|
135
|
+
<li><a href="mailto:{{../message.request.request_id}}@{{../baseScope.inboundDomain}}?subject=Re:%20{{../message.request.subject}}&body={{this.value}}" class="dynamic_button">{{this.value}}</a></li>
|
137
136
|
{{/ifEquals}}
|
138
137
|
{{/each}}
|
139
138
|
|
@@ -142,14 +141,14 @@
|
|
142
141
|
{{/if}}
|
143
142
|
{{/if}}
|
144
143
|
|
145
|
-
{{#if message.attributes.intent_info}}
|
144
|
+
<!-- {{#if message.attributes.intent_info}}
|
146
145
|
{{#if message.attributes.intent_info.others}}
|
147
146
|
Others:
|
148
147
|
{{#each message.attributes.intent_info.others}}
|
149
148
|
<li><span>{{this.answer}}</span></li>
|
150
149
|
{{/each}}
|
151
150
|
{{/if}}
|
152
|
-
{{/if}}
|
151
|
+
{{/if}} -->
|
153
152
|
|
154
153
|
|
155
154
|
|
package/test/requestRoute.js
CHANGED