@tiledesk/tiledesk-server 2.2.2 → 2.2.8
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 +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