@tiledesk/tiledesk-server 2.4.7 → 2.4.9

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 (38) hide show
  1. package/.circleci/config.yml +1 -1
  2. package/app.js +11 -0
  3. package/config/email.js +1 -1
  4. package/event/botEvent.js +12 -2
  5. package/middleware/has-role.js +6 -0
  6. package/middleware/passport.js +1 -0
  7. package/models/auth.js +9 -1
  8. package/models/faq_kb.js +4 -0
  9. package/models/lead.js +5 -0
  10. package/models/user.js +3 -0
  11. package/package.json +3 -3
  12. package/public/wstest/index.html +5 -41
  13. package/pubmodules/apps/listener.js +3 -3
  14. package/pubmodules/queue/reconnect.js +24 -0
  15. package/pubmodules/queue/reconnectFanout.js +17 -0
  16. package/routes/auth.js +44 -3
  17. package/routes/faq_kb.js +42 -0
  18. package/routes/images.js +3 -1
  19. package/routes/lead.js +51 -0
  20. package/routes/project.js +12 -0
  21. package/routes/users.js +2 -0
  22. package/services/emailService.js +2 -2
  23. package/services/trainingService.js +7 -2
  24. package/template/email/assignedEmailMessage.html +253 -149
  25. package/template/email/assignedRequest.html +273 -173
  26. package/template/email/beenInvitedExistingUser.html +213 -130
  27. package/template/email/beenInvitedNewUser.html +200 -119
  28. package/template/email/emailDirect.html +207 -114
  29. package/template/email/newMessage.html +250 -157
  30. package/template/email/newMessageFollower.html +351 -225
  31. package/template/email/passwordChanged.html +178 -96
  32. package/template/email/pooledEmailMessage.html +250 -151
  33. package/template/email/pooledRequest.html +270 -164
  34. package/template/email/resetPassword.html +201 -115
  35. package/template/email/sendTranscript.html +299 -197
  36. package/template/email/ticket.html +263 -160
  37. package/template/email/verify.html +208 -126
  38. package/websocket/webSocketServer.js +70 -3
@@ -1,157 +1,223 @@
1
1
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html lang="en" xmlns="http://www.w3.org/1999/xhtml" style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
3
-
4
- <head>
5
- <meta name="viewport" content="width=device-width" />
6
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
7
- <title>New Ticket from TileDesk</title>
8
-
9
- <style type="text/css">
10
- img {
11
- max-width: 100%;
12
- margin-left:16px;
13
- text-align:center !important;
2
+ <html lang="en" xmlns="http://www.w3.org/1999/xhtml"
3
+ style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
4
+
5
+ <head>
6
+ <meta name="viewport" content="width=device-width" />
7
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
8
+ <title>New Ticket from Tiledesk</title>
9
+
10
+ <style type="text/css">
11
+ img {
12
+ max-width: 100%;
13
+ margin-left: 16px;
14
+ text-align: center !important;
15
+ }
16
+
17
+ img.CToWUd {
18
+ margin-bottom: 16px;
19
+ max-width: 200px !important;
20
+ width: 200px !important;
21
+ min-width: 200px !important;
22
+ outline: none;
23
+ text-decoration: none;
24
+ border: none;
25
+ height: auto;
26
+ margin-left: 0px;
27
+ }
28
+
29
+ body {
30
+ -webkit-font-smoothing: antialiased;
31
+ -webkit-text-size-adjust: none;
32
+ width: 100% !important;
33
+ height: 100%;
34
+ line-height: 1.6em;
35
+ }
36
+
37
+ body {
38
+ background-color: #f6f6f6;
39
+ }
40
+
41
+ @media only screen and (max-width: 640px) {
42
+ body {
43
+ padding: 0 !important;
14
44
  }
15
- img.CToWUd {
16
- margin-bottom: 16px;
17
- max-width: 200px !important;
18
- width: 200px !important;
19
- min-width: 200px !important;
20
- outline: none;
21
- text-decoration: none;
22
- border: none;
23
- height: auto;
24
- margin-left: 0px;
45
+
46
+ h1 {
47
+ font-weight: 800 !important;
48
+ margin: 20px 0 5px !important;
49
+ text-align: center !important;
25
50
  }
26
- body {
27
- -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; line-height: 1.6em;
51
+
52
+ h2 {
53
+ font-weight: 800 !important;
54
+ margin: 20px 0 5px !important;
28
55
  }
29
- body {
30
- background-color: #f6f6f6;
56
+
57
+ h3 {
58
+ font-weight: 800 !important;
59
+ margin: 20px 0 5px !important;
60
+ }
61
+
62
+ h4 {
63
+ font-weight: 800 !important;
64
+ margin: 20px 0 5px !important;
31
65
  }
32
66
 
33
- @media only screen and (max-width: 640px) {
34
- body {
35
- padding: 0 !important;
36
- }
37
- h1 {
38
- font-weight: 800 !important; margin: 20px 0 5px !important;
39
- text-align:center !important;
40
- }
41
- h2 {
42
- font-weight: 800 !important; margin: 20px 0 5px !important;
43
- }
44
- h3 {
45
- font-weight: 800 !important; margin: 20px 0 5px !important;
46
- }
47
- h4 {
48
- font-weight: 800 !important; margin: 20px 0 5px !important;
49
- }
50
- h1 {
51
- font-size: 22px !important;
52
- }
53
- h2 {
54
- font-size: 18px !important;
55
- }
56
- h3 {
57
- font-size: 16px !important;
58
- }
59
- .container {
60
- padding: 0 !important; width: 100% !important;
61
- }
62
- .content {
63
- padding: 0 !important;
64
- }
65
- .content-wrap {
66
- padding: 10px !important;
67
- }
68
- .invoice {
69
- width: 100% !important;
70
- }
67
+ h1 {
68
+ font-size: 22px !important;
71
69
  }
72
- </style>
73
- </head>
74
70
 
75
- <body itemscope itemtype="http://schema.org/EmailMessage" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; line-height: 1.6em; background-color: #f6f6f6; margin: 0;" bgcolor="#f6f6f6">
71
+ h2 {
72
+ font-size: 18px !important;
73
+ }
76
74
 
77
- {{#if baseScope.replyEnabled}}
78
- <div>\# Please type your reply above this line \#</div>
79
- {{/if}}
75
+ h3 {
76
+ font-size: 16px !important;
77
+ }
78
+
79
+ .container {
80
+ padding: 0 !important;
81
+ width: 100% !important;
82
+ }
83
+
84
+ .content {
85
+ padding: 0 !important;
86
+ }
87
+
88
+ .content-wrap {
89
+ padding: 10px !important;
90
+ }
91
+
92
+ .invoice {
93
+ width: 100% !important;
94
+ }
95
+ }
96
+ </style>
97
+ </head>
98
+
99
+ <body itemscope itemtype="http://schema.org/EmailMessage"
100
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; line-height: 1.6em; background-color: #f6f6f6; margin: 0;"
101
+ bgcolor="#f6f6f6">
102
+
103
+ {{#if baseScope.replyEnabled}}
104
+ <div>\# Please type your reply above this line \#</div>
105
+ {{/if}}
106
+
107
+ <table class="body-wrap"
108
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; width: 100%; background-color: #f6f6f6; margin: 0;"
109
+ bgcolor="#f6f6f6">
110
+ <tr
111
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
112
+ <td
113
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;"
114
+ valign="top"></td>
115
+ <td class="container" width="600"
116
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; display: block !important; max-width: 600px !important; clear: both !important; margin: 0 auto;"
117
+ valign="top">
118
+ <div class="content"
119
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; max-width: 600px; display: block; margin: 0 auto; padding: 20px;">
120
+
121
+
122
+ <table class="main" width="100%" cellpadding="0" cellspacing="0"
123
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; border-radius: 3px; background-color: #fff; margin: 0; border: 1px solid #e9e9e9;"
124
+ bgcolor="#fff">
125
+
126
+ <tr
127
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
128
+ <td class="alert alert-warning"
129
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 16px; vertical-align: top; font-weight: 500; text-align: center; border-radius: 3px 3px 0 0; margin: 0;"
130
+ align="center" valign="top">
80
131
 
81
- <table class="main" width="100%" cellpadding="0" cellspacing="0" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; border-radius: 3px; background-color: #fff; margin: 0; border: 1px solid #e9e9e9;" bgcolor="#fff">
82
-
83
- <tr style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
84
- <td class="alert alert-warning" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 16px; vertical-align: top; font-weight: 500; text-align: center; border-radius: 3px 3px 0 0; margin: 0;" align="center" valign="top">
85
-
86
132
  <div style="text-align:center">
87
- <a href="http://www.tiledesk.com" style="color:#2daae1;font-weight:bold;text-decoration:none;word-break:break-word" target="_blank">
88
- <img src="https://tiledesk.com/wp-content/uploads/2023/01/tiledesk_log_email_200.png" class="CToWUd">
133
+ <!--
134
+ <a href="http://www.tiledesk.com"
135
+ style="color:#2daae1;font-weight:bold;text-decoration:none;word-break:break-word" target="_blank">
136
+ <img src="https://tiledesk.com/wp-content/uploads/2023/01/tiledesk_log_email_200.png"
137
+ class="CToWUd">
89
138
  </a>
139
+ -->
90
140
  </div>
91
141
  </td>
92
142
  </tr>
93
143
 
94
- <tr style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
144
+ <tr
145
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
95
146
 
96
- <td class="alert alert-warning" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 16px; vertical-align: top; font-weight: 500; text-align: center; border-radius: 3px 3px 0 0; margin: 0;" align="center" valign="top">
97
- <div>
98
- <h2>Ticket number: #{{message.request.ticket_id}}</h2>
99
- </div>
147
+ <td class="alert alert-warning"
148
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 16px; vertical-align: top; font-weight: 500; text-align: center; border-radius: 3px 3px 0 0; margin: 0;"
149
+ align="center" valign="top">
150
+ <div>
151
+ <h2>Ticket number: #{{message.request.ticket_id}}</h2>
152
+ </div>
100
153
 
101
- </td>
102
- </tr>
103
-
104
- <tr style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
105
- <td class="content-wrap" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0; padding: 20px;" valign="top">
106
- <table width="100%" cellpadding="0" cellspacing="0" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
107
-
108
-
109
- <tr style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
110
- <td class="content-block" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;" valign="top">
111
- Sender: <strong style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">{{message.senderFullname}}</strong>
112
- </td>
113
- </tr>
114
-
115
-
116
-
117
- <tr style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
118
- <td class="content-block" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;" valign="top">
119
- {{#ifEquals message.type "text"}}
120
- <div style="white-space: pre-wrap;">{{{msgText}}}</div>
121
- {{/ifEquals}}
122
- {{#ifEquals message.type "image"}}
123
- <img src="{{message.metadata.src}}"/>
124
- {{#if msgText}}
125
- <div style="white-space: pre-wrap;">{{{msgText}}}</div>
126
- {{/if}}
127
- {{/ifEquals}}
128
- {{#ifEquals message.type "file"}}
129
- <a href="{{message.metadata.src}}">{{message.metadata.name}}</a>
130
- {{/ifEquals}}
131
- {{#ifEquals message.type "frame"}}
132
- <a href="{{message.metadata.src}}">{{message.metadata.name}}</a>
133
- {{#if msgText}}
134
- <div style="white-space: pre-wrap;">{{{msgText}}}</div>
135
- {{/if}}
136
- {{/ifEquals}}
137
-
138
- {{#if message.attributes}}
139
- {{#if message.attributes.attachment}}
140
- {{#if message.attributes.attachment.buttons}}
141
- {{#each message.attributes.attachment.buttons}}
142
- {{#ifEquals this.type "url"}}
143
- <li><a href="{{this.link}}" class="dynamic_button">{{this.value}}</a></li>
144
- {{else}}
145
- <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>
146
- {{/ifEquals}}
147
- {{/each}}
148
-
149
-
150
- {{/if}}
151
- {{/if}}
152
- {{/if}}
153
-
154
- <!-- {{#if message.attributes.intent_info}}
154
+ </td>
155
+ </tr>
156
+
157
+ <tr
158
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
159
+ <td class="content-wrap"
160
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0; padding: 20px;"
161
+ valign="top">
162
+ <table width="100%" cellpadding="0" cellspacing="0"
163
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
164
+
165
+
166
+ <tr
167
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
168
+ <td class="content-block"
169
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;"
170
+ valign="top">
171
+ Sender: <strong
172
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">{{message.senderFullname}}</strong>
173
+ </td>
174
+ </tr>
175
+
176
+
177
+
178
+ <tr
179
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
180
+ <td class="content-block"
181
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;"
182
+ valign="top">
183
+ {{#ifEquals message.type "text"}}
184
+ <div style="white-space: pre-wrap;">{{{msgText}}}</div>
185
+ {{/ifEquals}}
186
+ {{#ifEquals message.type "image"}}
187
+ <img src="{{message.metadata.src}}" />
188
+ {{#if msgText}}
189
+ <div style="white-space: pre-wrap;">{{{msgText}}}</div>
190
+ {{/if}}
191
+ {{/ifEquals}}
192
+ {{#ifEquals message.type "file"}}
193
+ <a href="{{message.metadata.src}}">{{message.metadata.name}}</a>
194
+ {{/ifEquals}}
195
+ {{#ifEquals message.type "frame"}}
196
+ <a href="{{message.metadata.src}}">{{message.metadata.name}}</a>
197
+ {{#if msgText}}
198
+ <div style="white-space: pre-wrap;">{{{msgText}}}</div>
199
+ {{/if}}
200
+ {{/ifEquals}}
201
+
202
+ {{#if message.attributes}}
203
+ {{#if message.attributes.attachment}}
204
+ {{#if message.attributes.attachment.buttons}}
205
+ {{#each message.attributes.attachment.buttons}}
206
+ {{#ifEquals this.type "url"}}
207
+ <li><a href="{{this.link}}" class="dynamic_button">{{this.value}}</a></li>
208
+ {{else}}
209
+ <li><a
210
+ href="mailto:{{../message.request.request_id}}@{{../baseScope.inboundDomain}}?subject=Re:%20{{../message.request.subject}}&body={{this.value}}"
211
+ class="dynamic_button">{{this.value}}</a></li>
212
+ {{/ifEquals}}
213
+ {{/each}}
214
+
215
+
216
+ {{/if}}
217
+ {{/if}}
218
+ {{/if}}
219
+
220
+ <!-- {{#if message.attributes.intent_info}}
155
221
  {{#if message.attributes.intent_info.others}}
156
222
  Others:
157
223
  {{#each message.attributes.intent_info.others}}
@@ -164,38 +230,75 @@
164
230
 
165
231
 
166
232
 
167
- </td>
168
- </tr>
233
+ </td>
234
+ </tr>
235
+
236
+
237
+
238
+
239
+ <tr
240
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
241
+ <td class="content-block"
242
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;"
243
+ valign="top">
244
+
245
+ Click <a href="{{seamlessPage}}{{tokenQueryString}}">here</a> to continue by chat the
246
+ conversation.
247
+ </td>
248
+ </tr>
169
249
 
170
-
171
250
 
172
251
 
173
- <tr style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
174
- <td class="content-block" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;" valign="top">
175
-
176
- Click <a href="{{seamlessPage}}{{tokenQueryString}}">here</a> to continue by chat the conversation.
252
+ <tr
253
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
254
+ <td class="content-block"
255
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;"
256
+ valign="top">
177
257
  </td>
178
258
  </tr>
259
+ </table>
260
+ </td>
261
+ </tr>
262
+
263
+ <tr>
264
+ <td>
265
+ <hr style="width:94%;height:1px;border:none;background-color: #cacaca;">
179
266
 
267
+ <div style="display: flex; padding: 20px 18px; color: #888888;">
268
+ <span>Powered by </span>
269
+ <span style="display: flex;"><img
270
+ src="https://panel.tiledesk.com/v3/dashboard/assets/img/logos/tiledesk-solo_logo_new_gray.svg"
271
+ width="18" height="auto" style="margin-left: 6px;" /></span>
272
+ <span style="font-weight: bold; margin-left: 2px;">Tiledesk</span>
273
+ </div>
180
274
 
181
-
182
- <tr style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
183
- <td class="content-block" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;" valign="top">
184
- </td>
185
- </tr>
186
- </table>
275
+ </td>
276
+ </tr>
277
+ </table>
278
+ <div class="footer"
279
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; width: 100%; clear: both; color: #999; margin: 0; padding: 20px;">
280
+ <table width="100%"
281
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
282
+ <tr
283
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
284
+ <td class="aligncenter content-block"
285
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 12px; vertical-align: top; color: #999; text-align: center; margin: 0;"
286
+ align="center" valign="top">
287
+ <span><a href="http://www.tiledesk.com"
288
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 12px; color: #999; text-decoration: underline; margin: 0;">
289
+ Tiledesk.com </a></span>
290
+ <!-- <br><span><a href="%unsubscribe_url%" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 12px; color: #999; text-decoration: underline; margin: 0;">Unsubscribe</a></span> -->
187
291
  </td>
188
292
  </tr>
189
293
  </table>
190
- <div class="footer" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; width: 100%; clear: both; color: #999; margin: 0; padding: 20px;">
191
- <table width="100%" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
192
- <tr style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; margin: 0;">
193
- <td class="aligncenter content-block" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 12px; vertical-align: top; color: #999; text-align: center; margin: 0;" align="center" valign="top">
194
- <span><a href="http://www.tiledesk.com" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 12px; color: #999; text-decoration: underline; margin: 0;" > Tiledesk.com </a></span>
195
- <!-- <br><span><a href="%unsubscribe_url%" style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 12px; color: #999; text-decoration: underline; margin: 0;">Unsubscribe</a></span> -->
196
- </td>
197
- </tr>
198
- </table>
199
-
200
- </body>
294
+ </div>
295
+ </div>
296
+ </td>
297
+ <td
298
+ style="font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; box-sizing: border-box; font-size: 14px; vertical-align: top; margin: 0;"
299
+ valign="top"></td>
300
+ </tr>
301
+ </table>
302
+ </body>
303
+
201
304
  </html>