@epilot/sdk 2.3.7 → 2.3.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 (235) hide show
  1. package/dist/apis/access-token.cjs +6 -6
  2. package/dist/apis/access-token.js +1 -1
  3. package/dist/apis/address-suggestions.cjs +6 -6
  4. package/dist/apis/address-suggestions.js +1 -1
  5. package/dist/apis/address.cjs +6 -6
  6. package/dist/apis/address.js +1 -1
  7. package/dist/apis/ai-agents.cjs +6 -6
  8. package/dist/apis/ai-agents.js +1 -1
  9. package/dist/apis/app.cjs +6 -6
  10. package/dist/apis/app.js +1 -1
  11. package/dist/apis/audit-logs.cjs +6 -6
  12. package/dist/apis/audit-logs.js +1 -1
  13. package/dist/apis/automation.cjs +6 -6
  14. package/dist/apis/automation.js +1 -1
  15. package/dist/apis/billing.cjs +6 -6
  16. package/dist/apis/billing.js +1 -1
  17. package/dist/apis/blueprint-manifest.cjs +6 -6
  18. package/dist/apis/blueprint-manifest.js +1 -1
  19. package/dist/apis/configuration-hub.cjs +8 -8
  20. package/dist/apis/configuration-hub.d.cts +2 -2
  21. package/dist/apis/configuration-hub.d.ts +2 -2
  22. package/dist/apis/configuration-hub.js +2 -2
  23. package/dist/apis/consent.cjs +6 -6
  24. package/dist/apis/consent.js +1 -1
  25. package/dist/apis/customer-portal.cjs +6 -6
  26. package/dist/apis/customer-portal.js +1 -1
  27. package/dist/apis/dashboard.cjs +6 -6
  28. package/dist/apis/dashboard.js +1 -1
  29. package/dist/apis/data-governance.cjs +6 -6
  30. package/dist/apis/data-governance.js +1 -1
  31. package/dist/apis/deduplication.cjs +6 -6
  32. package/dist/apis/deduplication.js +1 -1
  33. package/dist/apis/design.cjs +6 -6
  34. package/dist/apis/design.js +1 -1
  35. package/dist/apis/document.cjs +6 -6
  36. package/dist/apis/document.js +1 -1
  37. package/dist/apis/email-settings.cjs +6 -6
  38. package/dist/apis/email-settings.js +1 -1
  39. package/dist/apis/email-template.cjs +6 -6
  40. package/dist/apis/email-template.js +1 -1
  41. package/dist/apis/entity-mapping.cjs +6 -6
  42. package/dist/apis/entity-mapping.js +1 -1
  43. package/dist/apis/entity.cjs +6 -6
  44. package/dist/apis/entity.js +1 -1
  45. package/dist/apis/environments.cjs +6 -6
  46. package/dist/apis/environments.js +1 -1
  47. package/dist/apis/event-catalog.cjs +6 -6
  48. package/dist/apis/event-catalog.js +1 -1
  49. package/dist/apis/file.cjs +6 -6
  50. package/dist/apis/file.js +1 -1
  51. package/dist/apis/iban.cjs +6 -6
  52. package/dist/apis/iban.js +1 -1
  53. package/dist/apis/integration-toolkit.cjs +6 -6
  54. package/dist/apis/integration-toolkit.js +1 -1
  55. package/dist/apis/journey.cjs +6 -6
  56. package/dist/apis/journey.js +1 -1
  57. package/dist/apis/kanban.cjs +6 -6
  58. package/dist/apis/kanban.js +1 -1
  59. package/dist/apis/message.cjs +8 -8
  60. package/dist/apis/message.d.cts +2 -2
  61. package/dist/apis/message.d.ts +2 -2
  62. package/dist/apis/message.js +2 -2
  63. package/dist/apis/metering.cjs +6 -6
  64. package/dist/apis/metering.js +1 -1
  65. package/dist/apis/notes.cjs +6 -6
  66. package/dist/apis/notes.js +1 -1
  67. package/dist/apis/notification.cjs +6 -6
  68. package/dist/apis/notification.js +1 -1
  69. package/dist/apis/organization.cjs +6 -6
  70. package/dist/apis/organization.js +1 -1
  71. package/dist/apis/partner-directory.cjs +6 -6
  72. package/dist/apis/partner-directory.js +1 -1
  73. package/dist/apis/permissions.cjs +6 -6
  74. package/dist/apis/permissions.js +1 -1
  75. package/dist/apis/pricing-tier.cjs +6 -6
  76. package/dist/apis/pricing-tier.js +1 -1
  77. package/dist/apis/pricing.cjs +6 -6
  78. package/dist/apis/pricing.js +1 -1
  79. package/dist/apis/purpose.cjs +6 -6
  80. package/dist/apis/purpose.js +1 -1
  81. package/dist/apis/query.cjs +6 -6
  82. package/dist/apis/query.js +1 -1
  83. package/dist/apis/sandbox.cjs +6 -6
  84. package/dist/apis/sandbox.js +1 -1
  85. package/dist/apis/sharing.cjs +6 -6
  86. package/dist/apis/sharing.js +1 -1
  87. package/dist/apis/submission.cjs +6 -6
  88. package/dist/apis/submission.js +1 -1
  89. package/dist/apis/target.cjs +6 -6
  90. package/dist/apis/target.js +1 -1
  91. package/dist/apis/targeting.cjs +6 -6
  92. package/dist/apis/targeting.js +1 -1
  93. package/dist/apis/template-variables.cjs +6 -6
  94. package/dist/apis/template-variables.js +1 -1
  95. package/dist/apis/user.cjs +6 -6
  96. package/dist/apis/user.js +1 -1
  97. package/dist/apis/validation-rules.cjs +6 -6
  98. package/dist/apis/validation-rules.js +1 -1
  99. package/dist/apis/webhooks.cjs +6 -6
  100. package/dist/apis/webhooks.js +1 -1
  101. package/dist/apis/workflow-definition.cjs +6 -6
  102. package/dist/apis/workflow-definition.js +1 -1
  103. package/dist/apis/workflow.cjs +6 -6
  104. package/dist/apis/workflow.js +1 -1
  105. package/dist/chunk-AOFZDDXN.js +14 -0
  106. package/dist/{chunk-77JS7NDM.cjs → chunk-DUHAG5CO.cjs} +1 -1
  107. package/dist/{chunk-DLYPVF4U.js → chunk-FAZ63FEX.js} +1 -1
  108. package/dist/{chunk-NOYX4W47.cjs → chunk-L37V2R32.cjs} +4 -4
  109. package/dist/{chunk-KY7TIDRJ.js → chunk-OMNMMMRJ.js} +4 -4
  110. package/dist/chunk-VFCH5IEL.cjs +14 -0
  111. package/dist/configuration-hub-2F636SNK.js +7 -0
  112. package/dist/configuration-hub-XQGJK2JA.cjs +7 -0
  113. package/dist/{configuration-hub-runtime-TEDEKI7E.js → configuration-hub-runtime-5R6Y4KF7.js} +1 -1
  114. package/dist/{configuration-hub-runtime-B7KKIHHY.cjs → configuration-hub-runtime-TY2X2ECO.cjs} +2 -2
  115. package/dist/configuration-hub.d-DZE3wTQE.d.cts +375 -0
  116. package/dist/configuration-hub.d-DZE3wTQE.d.ts +375 -0
  117. package/dist/index.cjs +12 -12
  118. package/dist/index.d.cts +2 -2
  119. package/dist/index.d.ts +2 -2
  120. package/dist/index.js +3 -3
  121. package/dist/message-6IFCB7GH.js +7 -0
  122. package/dist/message-7LNAFKKV.cjs +7 -0
  123. package/dist/{message-runtime-CGFCT6FU.cjs → message-runtime-JSZCNCNU.cjs} +2 -2
  124. package/dist/{message-runtime-XDCFFLYK.js → message-runtime-XOQ5EJN6.js} +1 -1
  125. package/dist/{message.d-D3QUkBjg.d.ts → message.d-B5UuSqgw.d.cts} +9 -3
  126. package/dist/{message.d-D3QUkBjg.d.cts → message.d-B5UuSqgw.d.ts} +9 -3
  127. package/docs/configuration-hub.md +52 -1
  128. package/docs/message.md +2 -1
  129. package/package.json +1 -1
  130. package/definitions/access-token-runtime.json +0 -1
  131. package/definitions/access-token.json +0 -663
  132. package/definitions/address-runtime.json +0 -1
  133. package/definitions/address-suggestions-runtime.json +0 -1
  134. package/definitions/address-suggestions.json +0 -582
  135. package/definitions/address.json +0 -578
  136. package/definitions/ai-agents-runtime.json +0 -1
  137. package/definitions/ai-agents.json +0 -1711
  138. package/definitions/app-runtime.json +0 -1
  139. package/definitions/app.json +0 -4493
  140. package/definitions/audit-logs-runtime.json +0 -1
  141. package/definitions/audit-logs.json +0 -305
  142. package/definitions/automation-runtime.json +0 -1
  143. package/definitions/automation.json +0 -5028
  144. package/definitions/billing-runtime.json +0 -1
  145. package/definitions/billing.json +0 -837
  146. package/definitions/blueprint-manifest-runtime.json +0 -1
  147. package/definitions/blueprint-manifest.json +0 -4846
  148. package/definitions/configuration-hub-runtime.json +0 -1
  149. package/definitions/configuration-hub.json +0 -399
  150. package/definitions/consent-runtime.json +0 -1
  151. package/definitions/consent.json +0 -344
  152. package/definitions/customer-portal-runtime.json +0 -1
  153. package/definitions/customer-portal.json +0 -16045
  154. package/definitions/dashboard-runtime.json +0 -1
  155. package/definitions/dashboard.json +0 -484
  156. package/definitions/data-governance-runtime.json +0 -1
  157. package/definitions/data-governance.json +0 -1126
  158. package/definitions/deduplication-runtime.json +0 -1
  159. package/definitions/deduplication.json +0 -314
  160. package/definitions/design-runtime.json +0 -1
  161. package/definitions/design.json +0 -1722
  162. package/definitions/document-runtime.json +0 -1
  163. package/definitions/document.json +0 -758
  164. package/definitions/email-settings-runtime.json +0 -1
  165. package/definitions/email-settings.json +0 -2777
  166. package/definitions/email-template-runtime.json +0 -1
  167. package/definitions/email-template.json +0 -1441
  168. package/definitions/entity-mapping-runtime.json +0 -1
  169. package/definitions/entity-mapping.json +0 -1642
  170. package/definitions/entity-runtime.json +0 -1
  171. package/definitions/entity.json +0 -10474
  172. package/definitions/environments-runtime.json +0 -1
  173. package/definitions/environments.json +0 -539
  174. package/definitions/event-catalog-runtime.json +0 -1
  175. package/definitions/event-catalog.json +0 -1051
  176. package/definitions/file-runtime.json +0 -1
  177. package/definitions/file.json +0 -2842
  178. package/definitions/iban-runtime.json +0 -1
  179. package/definitions/iban.json +0 -132
  180. package/definitions/integration-toolkit-runtime.json +0 -1
  181. package/definitions/integration-toolkit.json +0 -7998
  182. package/definitions/journey-runtime.json +0 -1
  183. package/definitions/journey.json +0 -2603
  184. package/definitions/kanban-runtime.json +0 -1
  185. package/definitions/kanban.json +0 -1505
  186. package/definitions/message-runtime.json +0 -1
  187. package/definitions/message.json +0 -2862
  188. package/definitions/metering-runtime.json +0 -1
  189. package/definitions/metering.json +0 -2321
  190. package/definitions/notes-runtime.json +0 -1
  191. package/definitions/notes.json +0 -1531
  192. package/definitions/notification-runtime.json +0 -1
  193. package/definitions/notification.json +0 -1425
  194. package/definitions/organization-runtime.json +0 -1
  195. package/definitions/organization.json +0 -1192
  196. package/definitions/partner-directory-runtime.json +0 -1
  197. package/definitions/partner-directory.json +0 -2284
  198. package/definitions/permissions-runtime.json +0 -1
  199. package/definitions/permissions.json +0 -1515
  200. package/definitions/pricing-runtime.json +0 -1
  201. package/definitions/pricing-tier-runtime.json +0 -1
  202. package/definitions/pricing-tier.json +0 -105
  203. package/definitions/pricing.json +0 -9884
  204. package/definitions/purpose-runtime.json +0 -1
  205. package/definitions/purpose.json +0 -524
  206. package/definitions/query-runtime.json +0 -1
  207. package/definitions/query.json +0 -3178
  208. package/definitions/sandbox-runtime.json +0 -1
  209. package/definitions/sandbox.json +0 -453
  210. package/definitions/sharing-runtime.json +0 -1
  211. package/definitions/sharing.json +0 -956
  212. package/definitions/submission-runtime.json +0 -1
  213. package/definitions/submission.json +0 -313
  214. package/definitions/targeting-runtime.json +0 -1
  215. package/definitions/targeting.json +0 -1474
  216. package/definitions/template-variables-runtime.json +0 -1
  217. package/definitions/template-variables.json +0 -1416
  218. package/definitions/user-runtime.json +0 -1
  219. package/definitions/user.json +0 -2460
  220. package/definitions/validation-rules-runtime.json +0 -1
  221. package/definitions/validation-rules.json +0 -1491
  222. package/definitions/webhooks-runtime.json +0 -1
  223. package/definitions/webhooks.json +0 -1634
  224. package/definitions/workflow-definition-runtime.json +0 -1
  225. package/definitions/workflow-definition.json +0 -3302
  226. package/definitions/workflow-runtime.json +0 -1
  227. package/definitions/workflow.json +0 -4248
  228. package/dist/chunk-4JAOFRYX.js +0 -14
  229. package/dist/chunk-Q7OKRNUG.cjs +0 -14
  230. package/dist/configuration-hub-LKSRCGYT.cjs +0 -7
  231. package/dist/configuration-hub-TZ2ULWV4.js +0 -7
  232. package/dist/configuration-hub.d-CqvhcMOn.d.cts +0 -166
  233. package/dist/configuration-hub.d-CqvhcMOn.d.ts +0 -166
  234. package/dist/message-HCA2KSH6.js +0 -7
  235. package/dist/message-J2SFQJNB.cjs +0 -7
@@ -1,1416 +0,0 @@
1
- {
2
- "openapi": "3.0.2",
3
- "info": {
4
- "title": "Template Variables API",
5
- "description": "This API provides dynamic template processing and variable management, seamless Handlebars template compilation, custom variable operations, and context-aware content generation across email, document templates and snippets.\n",
6
- "version": "1.1.0"
7
- },
8
- "servers": [
9
- {
10
- "url": "https://template-variables-api.sls.epilot.io"
11
- },
12
- {
13
- "url": "https://template-variables-api.dev.sls.epilot.io",
14
- "description": "Production server"
15
- }
16
- ],
17
- "tags": [
18
- {
19
- "name": "Templates",
20
- "description": "Template-based Operations"
21
- },
22
- {
23
- "name": "Custom Variables",
24
- "description": "Custom Variables Operations"
25
- }
26
- ],
27
- "security": [
28
- {
29
- "EpilotAuth": []
30
- },
31
- {
32
- "EpilotOrg": []
33
- }
34
- ],
35
- "paths": {
36
- "/v1/template-variables/categories": {
37
- "get": {
38
- "operationId": "getCategories",
39
- "summary": "getCategories",
40
- "description": "Get all template variable categories",
41
- "tags": [
42
- "Templates"
43
- ],
44
- "parameters": [
45
- {
46
- "name": "lang",
47
- "in": "query",
48
- "schema": {
49
- "$ref": "#/components/schemas/Language"
50
- }
51
- }
52
- ],
53
- "responses": {
54
- "200": {
55
- "description": "ok",
56
- "content": {
57
- "application/json": {
58
- "schema": {
59
- "type": "array",
60
- "items": {
61
- "$ref": "#/components/schemas/CategoryResult"
62
- }
63
- },
64
- "example": [
65
- {
66
- "category": "contact",
67
- "description": "Contact"
68
- },
69
- {
70
- "category": "account",
71
- "description": "Account"
72
- },
73
- {
74
- "category": "organization",
75
- "description": "Organization"
76
- }
77
- ]
78
- }
79
- }
80
- }
81
- }
82
- }
83
- },
84
- "/v1/template-variables:search": {
85
- "post": {
86
- "operationId": "searchVariables",
87
- "summary": "searchVariables",
88
- "description": "Search variables",
89
- "tags": [
90
- "Templates"
91
- ],
92
- "requestBody": {
93
- "content": {
94
- "application/json": {
95
- "schema": {
96
- "type": "object",
97
- "properties": {
98
- "template_type": {
99
- "$ref": "#/components/schemas/TemplateType"
100
- },
101
- "query": {
102
- "type": "string",
103
- "description": "Search string",
104
- "example": "logo"
105
- },
106
- "from": {
107
- "type": "integer",
108
- "default": 0
109
- },
110
- "size": {
111
- "type": "integer",
112
- "default": 25
113
- },
114
- "lang": {
115
- "$ref": "#/components/schemas/Language"
116
- },
117
- "entity_schemas": {
118
- "type": "array",
119
- "items": {
120
- "type": "string",
121
- "description": "Schema slug",
122
- "example": "contact"
123
- }
124
- }
125
- },
126
- "required": [
127
- "template_type",
128
- "query"
129
- ]
130
- }
131
- }
132
- }
133
- },
134
- "responses": {
135
- "200": {
136
- "description": "ok",
137
- "content": {
138
- "application/json": {
139
- "schema": {
140
- "type": "array",
141
- "items": {
142
- "$ref": "#/components/schemas/VariableResult"
143
- }
144
- },
145
- "example": [
146
- {
147
- "group": "Personal Details",
148
- "insert": "{{account.name}}",
149
- "description": "Company name",
150
- "type": "simple"
151
- },
152
- {
153
- "group": "Personal Details",
154
- "insert": "{{account.tax_id}}",
155
- "description": "Tax ID",
156
- "type": "simple"
157
- },
158
- {
159
- "group": "Address details",
160
- "qrdata": "{{account.address_details}}",
161
- "description": "Address Details",
162
- "type": "partial"
163
- },
164
- {
165
- "group": "Address Details",
166
- "insert": "{{account.address.street}}",
167
- "description": "Address - Street name",
168
- "type": "simple"
169
- },
170
- {
171
- "group": "Address Details",
172
- "insert": "{{account.address.street_number}}",
173
- "description": "Address - Street number",
174
- "type": "simple"
175
- },
176
- {
177
- "group": "Address Details",
178
- "insert": "{{account.address.postal_code}}",
179
- "description": "Address - Postal code",
180
- "type": "simple"
181
- },
182
- {
183
- "group": "Address Details",
184
- "insert": "{{account.address.city}}",
185
- "description": "Address - City",
186
- "type": "simple"
187
- }
188
- ]
189
- }
190
- }
191
- }
192
- }
193
- }
194
- },
195
- "/v1/template-variables:context": {
196
- "post": {
197
- "operationId": "getVariableContext",
198
- "summary": "getVariableContext",
199
- "description": "Get full variable context\n\nCalls Entity API, User API, Brand API and others to construct full context object used for template variable replace\n",
200
- "tags": [
201
- "Templates"
202
- ],
203
- "requestBody": {
204
- "content": {
205
- "application/json": {
206
- "schema": {
207
- "type": "object",
208
- "properties": {
209
- "parameters": {
210
- "$ref": "#/components/schemas/VariableParameters"
211
- }
212
- }
213
- }
214
- }
215
- }
216
- },
217
- "responses": {
218
- "200": {
219
- "description": "ok",
220
- "content": {
221
- "application/json": {
222
- "schema": {
223
- "$ref": "#/components/schemas/VariableContext"
224
- }
225
- }
226
- }
227
- }
228
- }
229
- }
230
- },
231
- "/v1/template-variables:replace": {
232
- "post": {
233
- "operationId": "replaceTemplates",
234
- "summary": "replaceTemplates",
235
- "description": "Replace variables in handlebars templates\n\nTakes in an array of input templates and outputs the output text with replaced variables\n",
236
- "tags": [
237
- "Templates"
238
- ],
239
- "requestBody": {
240
- "content": {
241
- "application/json": {
242
- "schema": {
243
- "type": "object",
244
- "properties": {
245
- "inputs": {
246
- "type": "array",
247
- "items": {
248
- "type": "string",
249
- "example": "Hello, {{contact.first_name}}!\n\n{{{brand.signature}}}\n"
250
- }
251
- },
252
- "parameters": {
253
- "$ref": "#/components/schemas/VariableParameters"
254
- }
255
- }
256
- }
257
- }
258
- }
259
- },
260
- "responses": {
261
- "200": {
262
- "description": "ok",
263
- "content": {
264
- "application/json": {
265
- "schema": {
266
- "$ref": "#/components/schemas/ReplacementOutput"
267
- }
268
- }
269
- }
270
- }
271
- }
272
- }
273
- },
274
- "/v2/template:replace": {
275
- "post": {
276
- "operationId": "replaceTemplatesV2",
277
- "summary": "Replace variables in templates (V2)",
278
- "description": "Replace variables in handlebars templates with raw value preservation\n\nV2 returns parsed outputs that preserve the original data types (arrays, objects, strings)\ninstead of stringifying always. Variables with strings mixed with other variables will be returned in the stringified format. \nAlongside the parsed outputs for every single variable.\n\nTakes in an array of input templates and outputs an object mapping each input and variable\nto their rendered values with type preservation.\n",
279
- "tags": [
280
- "Templates"
281
- ],
282
- "requestBody": {
283
- "content": {
284
- "application/json": {
285
- "schema": {
286
- "type": "object",
287
- "properties": {
288
- "inputs": {
289
- "type": "array",
290
- "items": {
291
- "type": "string",
292
- "example": "Hello, {{contact.first_name}}!\n"
293
- }
294
- },
295
- "parameters": {
296
- "$ref": "#/components/schemas/VariableParameters"
297
- }
298
- }
299
- }
300
- }
301
- }
302
- },
303
- "responses": {
304
- "200": {
305
- "description": "ok",
306
- "content": {
307
- "application/json": {
308
- "schema": {
309
- "$ref": "#/components/schemas/ReplacementOutputV2"
310
- }
311
- }
312
- }
313
- }
314
- }
315
- }
316
- },
317
- "/v1/custom-variables": {
318
- "get": {
319
- "operationId": "getCustomVariables",
320
- "summary": "Get custom variables",
321
- "description": "Get all custom variables of organization",
322
- "tags": [
323
- "Custom Variables"
324
- ],
325
- "responses": {
326
- "200": {
327
- "description": "Success",
328
- "content": {
329
- "application/json": {
330
- "schema": {
331
- "type": "array",
332
- "items": {
333
- "$ref": "#/components/schemas/CustomVariable"
334
- }
335
- }
336
- }
337
- }
338
- },
339
- "403": {
340
- "description": "Forbidden"
341
- }
342
- }
343
- },
344
- "post": {
345
- "operationId": "createCustomVariable",
346
- "summary": "Create custom variable",
347
- "description": "Create custom variable",
348
- "tags": [
349
- "Custom Variables"
350
- ],
351
- "requestBody": {
352
- "content": {
353
- "application/json": {
354
- "schema": {
355
- "$ref": "#/components/schemas/CustomVariable"
356
- }
357
- }
358
- }
359
- },
360
- "responses": {
361
- "201": {
362
- "description": "Success",
363
- "content": {
364
- "application/json": {
365
- "schema": {
366
- "$ref": "#/components/schemas/CustomVariable"
367
- }
368
- }
369
- }
370
- },
371
- "403": {
372
- "description": "Forbidden"
373
- },
374
- "409": {
375
- "description": "Conflict - Custom variable with the same key already exists"
376
- }
377
- }
378
- }
379
- },
380
- "/v1/custom-variables:search": {
381
- "post": {
382
- "operationId": "searchCustomVariables",
383
- "summary": "searchCustomVariables",
384
- "description": "Search custom variables",
385
- "tags": [
386
- "Custom Variables"
387
- ],
388
- "requestBody": {
389
- "content": {
390
- "application/json": {
391
- "schema": {
392
- "$ref": "#/components/schemas/CustomVariablesSearchParams"
393
- }
394
- }
395
- }
396
- },
397
- "responses": {
398
- "200": {
399
- "description": "Success",
400
- "content": {
401
- "application/json": {
402
- "schema": {
403
- "type": "object",
404
- "properties": {
405
- "results": {
406
- "type": "array",
407
- "items": {
408
- "$ref": "#/components/schemas/CustomVariable"
409
- }
410
- },
411
- "hits": {
412
- "type": "integer",
413
- "description": "Total number of results",
414
- "example": 100
415
- }
416
- }
417
- }
418
- }
419
- }
420
- },
421
- "403": {
422
- "description": "Forbidden"
423
- }
424
- }
425
- }
426
- },
427
- "/v1/custom-variables/{id}": {
428
- "put": {
429
- "operationId": "updateCustomVariable",
430
- "summary": "Update custom variable",
431
- "description": "Update custom variable",
432
- "tags": [
433
- "Custom Variables"
434
- ],
435
- "parameters": [
436
- {
437
- "name": "id",
438
- "description": "Custom variable ID",
439
- "in": "path",
440
- "required": true,
441
- "schema": {
442
- "type": "string"
443
- },
444
- "example": "rbse777b-3cf8-4bff-bb0c-253fd1123250"
445
- }
446
- ],
447
- "requestBody": {
448
- "content": {
449
- "application/json": {
450
- "schema": {
451
- "$ref": "#/components/schemas/CustomVariable"
452
- }
453
- }
454
- }
455
- },
456
- "responses": {
457
- "200": {
458
- "description": "Success",
459
- "content": {
460
- "application/json": {
461
- "schema": {
462
- "$ref": "#/components/schemas/CustomVariable"
463
- }
464
- }
465
- }
466
- },
467
- "403": {
468
- "description": "Forbidden"
469
- },
470
- "409": {
471
- "description": "Conflict - Custom variable with the same key already exists"
472
- }
473
- }
474
- },
475
- "get": {
476
- "operationId": "getCustomVariable",
477
- "summary": "Get custom variable",
478
- "description": "Get custom variable",
479
- "tags": [
480
- "Custom Variables"
481
- ],
482
- "parameters": [
483
- {
484
- "name": "id",
485
- "description": "Custom vairable ID",
486
- "in": "path",
487
- "required": true,
488
- "schema": {
489
- "type": "string"
490
- },
491
- "example": "rbse777b-3cf8-4bff-bb0c-253fd1123250"
492
- }
493
- ],
494
- "responses": {
495
- "200": {
496
- "description": "Success",
497
- "content": {
498
- "application/json": {
499
- "schema": {
500
- "$ref": "#/components/schemas/CustomVariable"
501
- }
502
- }
503
- }
504
- },
505
- "403": {
506
- "description": "Forbidden"
507
- },
508
- "404": {
509
- "description": "Not found"
510
- }
511
- }
512
- },
513
- "delete": {
514
- "operationId": "deleteCustomVariable",
515
- "summary": "Delete custom variable",
516
- "description": "Immediately and permanently deletes a custom variable",
517
- "tags": [
518
- "Custom Variables"
519
- ],
520
- "parameters": [
521
- {
522
- "name": "id",
523
- "description": "Custom vairable ID",
524
- "in": "path",
525
- "required": true,
526
- "schema": {
527
- "type": "string"
528
- },
529
- "example": "rbse777b-3cf8-4bff-bb0c-253fd1123250"
530
- }
531
- ],
532
- "responses": {
533
- "204": {
534
- "description": "Success"
535
- },
536
- "403": {
537
- "description": "Forbidden"
538
- }
539
- }
540
- }
541
- },
542
- "/v1/custom-variables/order-table-blueprint": {
543
- "get": {
544
- "operationId": "getBluePrintTableConfig",
545
- "summary": "Get default table config",
546
- "description": "Get default table config",
547
- "tags": [
548
- "Custom Variables"
549
- ],
550
- "responses": {
551
- "200": {
552
- "description": "Success",
553
- "content": {
554
- "application/json": {
555
- "schema": {
556
- "$ref": "#/components/schemas/CustomVariable"
557
- }
558
- }
559
- }
560
- },
561
- "403": {
562
- "description": "Forbidden"
563
- }
564
- }
565
- }
566
- }
567
- },
568
- "components": {
569
- "securitySchemes": {
570
- "EpilotAuth": {
571
- "type": "http",
572
- "scheme": "bearer",
573
- "description": "Authorization header with epilot OAuth2 bearer token",
574
- "bearerFormat": "JWT"
575
- },
576
- "EpilotOrg": {
577
- "description": "Overrides the target organization",
578
- "name": "x-ivy-org-id",
579
- "in": "header",
580
- "type": "apiKey"
581
- }
582
- },
583
- "schemas": {
584
- "Language": {
585
- "type": "string",
586
- "description": "2-letter language code (ISO 639-1)",
587
- "default": "de"
588
- },
589
- "VariableParameters": {
590
- "type": "object",
591
- "properties": {
592
- "template_type": {
593
- "$ref": "#/components/schemas/TemplateType"
594
- },
595
- "language": {
596
- "$ref": "#/components/schemas/Language"
597
- },
598
- "main_entity_id": {
599
- "type": "string",
600
- "format": "uuid",
601
- "description": "The main entity ID. Use main entity in order to use the variable without schema slug prefix - or just pass directly to other object ID.",
602
- "example": "63753437-c9e2-4e83-82bb-b1c666514561"
603
- },
604
- "brand_id": {
605
- "type": "number",
606
- "nullable": true,
607
- "description": "Brand ID",
608
- "example": 123451
609
- },
610
- "user_id": {
611
- "type": "string",
612
- "nullable": true,
613
- "description": "User ID",
614
- "example": "50001"
615
- },
616
- "user_org_id": {
617
- "type": "string",
618
- "nullable": true,
619
- "description": "Organization ID of the user",
620
- "example": "729224"
621
- },
622
- "custom_variables": {
623
- "type": "array",
624
- "description": "Custom variables with specified values form other services.",
625
- "items": {
626
- "$ref": "#/components/schemas/ExternalCustomVariable"
627
- }
628
- },
629
- "context_data": {
630
- "type": "object",
631
- "description": "If context data is available, this data will be used for variable replace."
632
- },
633
- "template_name": {
634
- "type": "string",
635
- "description": "The name of email template"
636
- },
637
- "template_tags": {
638
- "type": "array",
639
- "description": "The tags of email template",
640
- "items": {
641
- "type": "string"
642
- }
643
- },
644
- "template_id": {
645
- "type": "string",
646
- "description": "The Id of email template"
647
- },
648
- "variables_version": {
649
- "type": "string",
650
- "description": "The version of the variables syntax supported. Default is 1.0",
651
- "example": "2"
652
- }
653
- },
654
- "required": [
655
- "template_type"
656
- ]
657
- },
658
- "ReplacementOutput": {
659
- "type": "object",
660
- "properties": {
661
- "outputs": {
662
- "type": "array",
663
- "items": {
664
- "type": "string"
665
- },
666
- "example": [
667
- "[Brand Name GmbH] Order confirmation\nHello Customer Name\n\n<span color=\"#ccc\">Brand Name GmbH</span>\n<img src=\"https://logobucket.s3.amazonaws.com/brandlogo.png\" alt=\"Brand Name\"/>\n<a href=\"https://company.com/imprint\">imprint</a>\n"
668
- ]
669
- }
670
- }
671
- },
672
- "ReplacementOutputV2": {
673
- "type": "object",
674
- "properties": {
675
- "outputs": {
676
- "type": "object",
677
- "description": "Dictionary mapping input templates and variable names to their resolved output values.\nValues preserve their original types (string, array, object) instead of being stringified.\n\nKeys include:\n- Original input templates (e.g., \"Hello {{name}}\")\n- Individual variables found in templates (e.g., \"{{name}}\", \"{{product_images[*].public_url}}\")\n",
678
- "additionalProperties": {
679
- "anyOf": [
680
- {
681
- "type": "string"
682
- },
683
- {
684
- "type": "number"
685
- },
686
- {
687
- "type": "boolean"
688
- },
689
- {
690
- "type": "array",
691
- "items": {}
692
- },
693
- {
694
- "type": "object",
695
- "additionalProperties": {}
696
- }
697
- ]
698
- },
699
- "example": {
700
- "Hello {{first_name}}": "Hello John",
701
- "{{first_name}}": "John",
702
- "{{product_images[*].public_url}}": [
703
- "http://myimage.server.com/img1.png",
704
- "http://myimage.server.com/img2.png"
705
- ]
706
- }
707
- }
708
- }
709
- },
710
- "VariableResult": {
711
- "type": "object",
712
- "properties": {
713
- "type": {
714
- "type": "string",
715
- "enum": [
716
- "simple",
717
- "partial"
718
- ]
719
- },
720
- "qrdata": {
721
- "type": "string",
722
- "description": "Payload for the QR data"
723
- },
724
- "group": {
725
- "type": "string",
726
- "description": "Variable group"
727
- },
728
- "insert": {
729
- "type": "string",
730
- "description": "The value which is used to insert to template"
731
- },
732
- "description": {
733
- "type": "string",
734
- "description": "Variable description"
735
- }
736
- }
737
- },
738
- "CustomVariablesSearchParams": {
739
- "type": "object",
740
- "properties": {
741
- "type": {
742
- "type": "string",
743
- "description": "Variable type",
744
- "enum": [
745
- "order_table",
746
- "custom",
747
- "journey_link",
748
- "snippet"
749
- ]
750
- },
751
- "tags": {
752
- "type": "array",
753
- "description": "The tags of custom variable",
754
- "items": {
755
- "type": "string"
756
- }
757
- },
758
- "query": {
759
- "type": "string",
760
- "description": "Search string",
761
- "example": "logo"
762
- },
763
- "from": {
764
- "type": "integer",
765
- "default": 0
766
- },
767
- "size": {
768
- "type": "integer",
769
- "default": 25
770
- },
771
- "sort_by": {
772
- "type": "string",
773
- "description": "Sort by field",
774
- "example": "created_at, name, key"
775
- },
776
- "fields": {
777
- "type": "array",
778
- "description": "Fields to return",
779
- "items": {
780
- "type": "string"
781
- }
782
- }
783
- }
784
- },
785
- "VariableContext": {
786
- "type": "object",
787
- "properties": {
788
- "unsubscribe_url": {
789
- "type": "string",
790
- "example": "https://consent.sls.epilot.io/v1/unsubscribe?token=abc123"
791
- },
792
- "main": {
793
- "type": "object",
794
- "additionalProperties": true,
795
- "example": {
796
- "_id": "03be777b-3cf8-4bff-bb0c-253fd1128479",
797
- "_title": "Example Customer",
798
- "customer_number": 123,
799
- "first_name": "Example",
800
- "last_name": "Customer",
801
- "title": "Prof.",
802
- "salutation": "Ms. / Mrs.",
803
- "birthdate": "2018-03-03",
804
- "email": [
805
- {
806
- "email": "contact.primary@domain.com",
807
- "_tags": [
808
- "primary"
809
- ]
810
- },
811
- {
812
- "email": "sale@domain.com"
813
- }
814
- ],
815
- "phone": [
816
- {
817
- "phone": "+49123456789",
818
- "_tags": [
819
- "primary",
820
- "support"
821
- ]
822
- },
823
- {
824
- "phone": "+49504305025"
825
- }
826
- ],
827
- "address": [
828
- {
829
- "_tags": [
830
- "primary",
831
- "delivery"
832
- ],
833
- "country": "Germany",
834
- "city": "Köln",
835
- "postal_code": "50825",
836
- "street": "Im Mediapark",
837
- "street_number": "8a",
838
- "additional_info": "11th floor"
839
- },
840
- {
841
- "_tags": [
842
- "billing"
843
- ],
844
- "country": "Finland",
845
- "city": "Köln",
846
- "postal_code": "50670",
847
- "street": "Im Mediapark",
848
- "street_number": "8a",
849
- "additional_info": ""
850
- }
851
- ],
852
- "account": [
853
- {
854
- "status": "Active",
855
- "_id": "c8d20ff6-df7a-465a-a26e-e5d28c2a3f79",
856
- "tax_id": "123abc",
857
- "name": "name",
858
- "email": [
859
- {
860
- "email": "account.primary@domain.com",
861
- "_tags": [
862
- "primary"
863
- ]
864
- },
865
- {
866
- "email": "account.sale@domain.com"
867
- }
868
- ],
869
- "phone": [
870
- {
871
- "phone": "+49123456789",
872
- "_tags": [
873
- "primary",
874
- "support"
875
- ]
876
- },
877
- {
878
- "phone": "+49504305025"
879
- }
880
- ],
881
- "address": [
882
- {
883
- "_tags": [
884
- "primary",
885
- "delivery"
886
- ],
887
- "country": "Germany",
888
- "city": "Köln",
889
- "postal_code": "50825",
890
- "street": "Im Mediapark",
891
- "street_number": "8a",
892
- "additional_info": "11th floor"
893
- }
894
- ]
895
- }
896
- ]
897
- }
898
- },
899
- "contact": {
900
- "type": "object",
901
- "additionalProperties": true,
902
- "example": {
903
- "_id": "03be777b-3cf8-4bff-bb0c-253fd1128479",
904
- "_title": "Example Customer",
905
- "customer_number": 123,
906
- "first_name": "Example",
907
- "last_name": "Customer",
908
- "title": "Prof.",
909
- "salutation": "Ms. / Mrs.",
910
- "birthdate": "2018-03-03",
911
- "email": [
912
- {
913
- "email": "contact.primary@domain.com",
914
- "_tags": [
915
- "primary"
916
- ]
917
- },
918
- {
919
- "email": "sale@domain.com"
920
- }
921
- ],
922
- "phone": [
923
- {
924
- "phone": "+49123456789",
925
- "_tags": [
926
- "primary",
927
- "support"
928
- ]
929
- },
930
- {
931
- "phone": "+49504305025"
932
- }
933
- ],
934
- "address": [
935
- {
936
- "_tags": [
937
- "primary",
938
- "delivery"
939
- ],
940
- "country": "Germany",
941
- "city": "Köln",
942
- "postal_code": "50825",
943
- "street": "Im Mediapark",
944
- "street_number": "8a",
945
- "additional_info": "11th floor"
946
- },
947
- {
948
- "_tags": [
949
- "billing"
950
- ],
951
- "country": "Finland",
952
- "city": "Köln",
953
- "postal_code": "50670",
954
- "street": "Im Mediapark",
955
- "street_number": "8a",
956
- "additional_info": ""
957
- }
958
- ],
959
- "account": [
960
- {
961
- "status": "Active",
962
- "_id": "c8d20ff6-df7a-465a-a26e-e5d28c2a3f79",
963
- "tax_id": "123abc",
964
- "name": "name",
965
- "email": [
966
- {
967
- "email": "account.primary@domain.com",
968
- "_tags": [
969
- "primary"
970
- ]
971
- },
972
- {
973
- "email": "account.sale@domain.com"
974
- }
975
- ],
976
- "phone": [
977
- {
978
- "phone": "+49123456789",
979
- "_tags": [
980
- "primary",
981
- "support"
982
- ]
983
- },
984
- {
985
- "phone": "+49504305025"
986
- }
987
- ],
988
- "address": [
989
- {
990
- "_tags": [
991
- "primary",
992
- "delivery"
993
- ],
994
- "country": "Germany",
995
- "city": "KölnSS",
996
- "postal_code": "50825",
997
- "street": "Im Mediapark",
998
- "street_number": "8a",
999
- "additional_info": "11th floor"
1000
- }
1001
- ]
1002
- }
1003
- ]
1004
- }
1005
- },
1006
- "brand": {
1007
- "type": "object",
1008
- "additionalProperties": true,
1009
- "example": {
1010
- "id": 123453,
1011
- "name": "Brand name",
1012
- "signature": "Signature"
1013
- }
1014
- }
1015
- }
1016
- },
1017
- "TemplateType": {
1018
- "type": "string",
1019
- "enum": [
1020
- "email",
1021
- "document"
1022
- ]
1023
- },
1024
- "CategoryResult": {
1025
- "type": "object",
1026
- "properties": {
1027
- "category": {
1028
- "type": "string",
1029
- "example": "contact"
1030
- },
1031
- "description": {
1032
- "type": "string",
1033
- "example": "Contact"
1034
- }
1035
- }
1036
- },
1037
- "ExternalCustomVariable": {
1038
- "type": "object",
1039
- "properties": {
1040
- "variable": {
1041
- "type": "string",
1042
- "example": "{{craftsmen.invitation_link}}"
1043
- },
1044
- "value": {
1045
- "type": "string",
1046
- "example": "https://partner.epilot.cloud/activate-account?user_name=htny.pct%2Btet%40gmail.com&confirmation_code=EdXPRW19"
1047
- }
1048
- }
1049
- },
1050
- "CustomVariable": {
1051
- "type": "object",
1052
- "properties": {
1053
- "id": {
1054
- "type": "string",
1055
- "description": "ID",
1056
- "example": "rbse777b-3cf8-4bff-bb0c-253fd1123250"
1057
- },
1058
- "type": {
1059
- "type": "string",
1060
- "description": "Custom variable type",
1061
- "enum": [
1062
- "order_table",
1063
- "custom",
1064
- "journey_link",
1065
- "snippet"
1066
- ]
1067
- },
1068
- "name": {
1069
- "type": "string",
1070
- "description": "Custom variable name",
1071
- "example": "My Custom table"
1072
- },
1073
- "key": {
1074
- "type": "string",
1075
- "description": "The key which is used for Handlebar variable syntax {{key}}",
1076
- "example": "my_custom_table"
1077
- },
1078
- "_tags": {
1079
- "type": "array",
1080
- "description": "The tags of custom variable",
1081
- "items": {
1082
- "type": "string"
1083
- }
1084
- },
1085
- "_manifest": {
1086
- "type": "array",
1087
- "description": "The manifest IDs associated with this custom variable",
1088
- "items": {
1089
- "type": "string"
1090
- }
1091
- },
1092
- "helper_params": {
1093
- "type": "array",
1094
- "description": "The helper function parameter's names",
1095
- "items": {
1096
- "type": "string"
1097
- },
1098
- "example": [
1099
- "param1",
1100
- "param2"
1101
- ]
1102
- },
1103
- "helper_logic": {
1104
- "type": "string",
1105
- "description": "The helper function logic",
1106
- "example": "return param1 * param2;"
1107
- },
1108
- "config": {
1109
- "type": "object",
1110
- "description": "Variable configuration",
1111
- "example": {
1112
- "header": null,
1113
- "style": {
1114
- "color": "#222",
1115
- "background": "#fff",
1116
- "font-size": "16px",
1117
- "font-family": "",
1118
- "padding-bottom": "4px",
1119
- "font-weight": "bold",
1120
- "border": "none !important",
1121
- "text-align": "left"
1122
- },
1123
- "columns": [
1124
- {
1125
- "id": "item",
1126
- "index": 0,
1127
- "label": {
1128
- "en": "Item",
1129
- "de": "Produkt"
1130
- },
1131
- "enable": true,
1132
- "draggable": true,
1133
- "style": {
1134
- "padding-left": "10px",
1135
- "max-width": "30%"
1136
- }
1137
- },
1138
- {
1139
- "id": "quantity",
1140
- "index": 1,
1141
- "label": {
1142
- "en": "Quanity",
1143
- "de": "Menge"
1144
- },
1145
- "enable": true,
1146
- "draggable": true,
1147
- "style": {
1148
- "min-width": "60px",
1149
- "width": "30%"
1150
- }
1151
- },
1152
- {
1153
- "id": "tax",
1154
- "index": 2,
1155
- "label": {
1156
- "en": "Tax Rate",
1157
- "de": "Steuerrate"
1158
- },
1159
- "enable": true,
1160
- "draggable": true,
1161
- "style": {
1162
- "min-width": "60px",
1163
- "width": "30%"
1164
- }
1165
- },
1166
- {
1167
- "id": "unit_amount",
1168
- "index": 3,
1169
- "label": {
1170
- "en": "Unit Net Price",
1171
- "de": "Nettopreis"
1172
- },
1173
- "enable": true,
1174
- "draggable": true,
1175
- "style": {
1176
- "min-width": "60px",
1177
- "width": "30%"
1178
- }
1179
- },
1180
- {
1181
- "id": "net_total",
1182
- "index": 4,
1183
- "label": {
1184
- "en": "Net total",
1185
- "de": "Nettosumme"
1186
- },
1187
- "enable": "true,",
1188
- "draggable": true,
1189
- "style": {
1190
- "min-width": "60px",
1191
- "width": "30%"
1192
- }
1193
- },
1194
- {
1195
- "id": "gross_total",
1196
- "index": 5,
1197
- "label": {
1198
- "en": "Total",
1199
- "de": "Gesamt"
1200
- },
1201
- "enable": true,
1202
- "draggable": true,
1203
- "style": {
1204
- "min-width": "60px",
1205
- "width": "30%"
1206
- }
1207
- }
1208
- ],
1209
- "body": {
1210
- "product_name": {
1211
- "parent_column": "item",
1212
- "enable": true,
1213
- "style": {
1214
- "color": "#222",
1215
- "background": "#fff",
1216
- "font-size": "14px",
1217
- "font-family": "",
1218
- "font-weight": "bold",
1219
- "font-style": "normal",
1220
- "padding-top": "16px",
1221
- "padding-bottom": "8px",
1222
- "border": "none !important",
1223
- "vertical-align": "top",
1224
- "text-align": "left",
1225
- "max-width": "30%",
1226
- "padding-left": "10px"
1227
- }
1228
- },
1229
- "price_description": {
1230
- "parent_column": "item",
1231
- "enable": true,
1232
- "style": {
1233
- "color": "#222",
1234
- "background": "#fff",
1235
- "font-size": "12px",
1236
- "font-family": "",
1237
- "font-weight": "normal",
1238
- "font-style": "normal",
1239
- "text-align": "left",
1240
- "max-width": "30%"
1241
- }
1242
- },
1243
- "product_description": {
1244
- "parent_column": "item",
1245
- "enable": true,
1246
- "style": {
1247
- "color": "#222",
1248
- "background": "#fff",
1249
- "font-size": "12px",
1250
- "font-family": "",
1251
- "font-weight": "normal",
1252
- "font-style": "normal",
1253
- "text-align": "left",
1254
- "max-width": "30%"
1255
- }
1256
- },
1257
- "quantity": {
1258
- "enable": true,
1259
- "style": {
1260
- "color": "#222",
1261
- "background": "#fff",
1262
- "font-size": "12px",
1263
- "font-family": "",
1264
- "font-weight": "normal",
1265
- "font-style": "normal",
1266
- "text-align": "left",
1267
- "max-width": "30%"
1268
- }
1269
- },
1270
- "tax": {
1271
- "enable": true,
1272
- "style": {
1273
- "color": "#222",
1274
- "background": "#fff",
1275
- "font-size": "12px",
1276
- "font-family": "",
1277
- "font-weight": "normal",
1278
- "font-style": "normal",
1279
- "text-align": "left",
1280
- "max-width": "30%"
1281
- }
1282
- },
1283
- "unit_amount": {
1284
- "enable": true,
1285
- "style": {
1286
- "color": "#222",
1287
- "background": "#fff",
1288
- "font-size": "12px",
1289
- "font-family": "",
1290
- "font-weight": "normal",
1291
- "font-style": "normal",
1292
- "text-align": "left",
1293
- "max-width": "30%"
1294
- }
1295
- },
1296
- "net_total": {
1297
- "enable": true,
1298
- "style": {
1299
- "color": "#222",
1300
- "background": "#fff",
1301
- "font-size": "12px",
1302
- "font-family": "",
1303
- "font-weight": "normal",
1304
- "font-style": "normal",
1305
- "text-align": "left",
1306
- "max-width": "30%"
1307
- }
1308
- },
1309
- "gross_total": {
1310
- "enable": true,
1311
- "style": {
1312
- "color": "#222",
1313
- "background": "#fff",
1314
- "font-size": "12px",
1315
- "font-family": "",
1316
- "font-weight": "normal",
1317
- "font-style": "normal",
1318
- "text-align": "left",
1319
- "max-width": "30%"
1320
- }
1321
- }
1322
- },
1323
- "footer": {
1324
- "payment_type": {
1325
- "enable": true,
1326
- "style": {
1327
- "color": "#222",
1328
- "background": "#fff",
1329
- "font-size": "12px",
1330
- "font-family": "",
1331
- "font-weight": "normal",
1332
- "font-style": "normal",
1333
- "text-align": "left",
1334
- "max-width": "30%"
1335
- }
1336
- },
1337
- "net_total": {
1338
- "enable": true,
1339
- "style": {
1340
- "color": "#222",
1341
- "background": "#fff",
1342
- "font-size": "12px",
1343
- "font-family": "",
1344
- "font-weight": "normal",
1345
- "font-style": "normal",
1346
- "text-align": "left",
1347
- "max-width": "30%"
1348
- }
1349
- },
1350
- "amount_tax": {
1351
- "enable": true,
1352
- "style": {
1353
- "color": "#222",
1354
- "background": "#fff",
1355
- "font-size": "12px",
1356
- "font-family": "",
1357
- "font-weight": "normal",
1358
- "font-style": "normal",
1359
- "text-align": "left",
1360
- "max-width": "30%"
1361
- }
1362
- },
1363
- "gross_total": {
1364
- "enable": true,
1365
- "style": {
1366
- "color": "#222",
1367
- "background": "#fff",
1368
- "font-size": "12px",
1369
- "font-family": "",
1370
- "font-weight": "normal",
1371
- "font-style": "normal",
1372
- "text-align": "left",
1373
- "max-width": "30%"
1374
- }
1375
- }
1376
- }
1377
- }
1378
- },
1379
- "template": {
1380
- "type": "string",
1381
- "description": "Handlebar template that used to generate the variable content",
1382
- "example": "<table style=\"table-layout: fixed;width: 100%;max-width: 1000px;border-collapse: collapse;\">\n <thead>\n <tr style=\"height: 48px;border-bottom: 1px solid #D5E1ED;\">\n {{#each table_config.header.columns as |column|}}\n {{#if column.enable}}\n <th style=\"{{makeStyle @root.table_config.header.style}};{{makeStyle column.style}};\">{{column._label}}</th>\n {{/if}}\n {{/each}}\n </tr>\n </thead>\n <tbody style=\"vertical-align: baseline !important;font-weight: 400;font-size: 12px;position: relative;\">\n <!-- Start rendering products -->\n {{#each order.products as |product|}}\n {{#if @last}}\n <tr style=\"height: 48px;;font-size:14px;border-bottom: 1px solid #D5E1ED;\">\n {{else}}\n <tr style=\"height: 48px;;font-size:14px;\">\n {{/if}}\n {{#each @root.table_config.header.columns as |column|}}\n {{#if column.enable}}\n {{#if (eq column.id 'item')}}\n <!-- Item -->\n <td style=\"{{makeStyle @root.table_config.body.product_name.style}}\">\n {{#if @root.table_config.body.product_name.enable}}\n {{product.name}}\n {{/if}}\n {{#if @root.table_config.body.price_description.enable}}\n <br>\n <span style=\"{{makeStyle @root.table_config.body.price_description.style}}\">{{product.price.description}}</span>\n {{/if}}\n {{#if @root.table_config.body.product_description.enable}}\n <br>\n <span style=\"{{makeStyle @root.table_config.body.product_description.style}}\">{{product.description}}</span>\n {{/if}}\n </td>\n {{/if}}\n {{#if (eq column.id 'quantity')}}\n <!-- Quantity -->\n <td style=\"{{makeStyle @root.table_config.body.quantity.style}}\">{{product.price.quantity}}\n </td>\n {{/if}}\n {{#if (eq column.id 'tax')}}\n <!-- Tax -->\n <td style=\"{{makeStyle @root.table_config.body.tax.style}}\">\n {{product.price.tax_rate}}\n </td>\n {{/if}}\n {{#if (eq column.id 'unit_amount')}}\n <!-- Unit amount -->\n <td style=\"{{makeStyle @root.table_config.body.unit_amount.style}}\">\n {{product.price.unit_amount_net}}\n </td>\n {{/if}}\n {{#if (eq column.id 'net_total')}}\n <!-- Amount Subtotal -->\n <td style=\"{{makeStyle @root.table_config.body.net_total.style}}\">\n {{product.price.amount_subtotal}}\n </td>\n {{/if}}\n {{#if (eq column.id 'amount_tax')}}\n <!-- Tax amount-->\n <td style=\"{{makeStyle @root.table_config.body.amount_tax.style}}\">\n {{product.price.amount_tax}}\n </td>\n {{/if}}\n {{#if (eq column.id 'gross_total')}}\n <!-- Gross total -->\n <td style=\"{{makeStyle @root.table_config.body.gross_total.style}}\">\n {{product.price.amount_total}}\n {{#if @root.table_config.body.payment_type.enable}}\n {{#if (eq product.price.type 'recurring')}}\n <br>\n <span style=\"{{makeStyle @root.table_config.body.payment_type.style}}\">{{product.price.billing_period}}</span>\n {{/if}}\n {{/if}}\n </td>\n {{/if}}\n {{/if}}\n {{/each}}\n </tr>\n {{/each}}\n <!-- Finish rendering products -->\n {{#if table_config.footer.gross_total.enable}}\n {{#each order.total_details.recurrences as |item|}}\n <tr style=\"height: 48px;font-size: 14px;\">\n <td style=\"padding-top: 16px; padding-bottom: 8px; border: none !important; vertical-align: top;\" colspan=\"{{calculate_colspan @root.table_config}}\"></td>\n {{#if @root.table_config.footer.payment_type.enable}}\n <td style=\"{{makeStyle @root.table_config.footer.payment_type.style}}\" colspan=\"2\">{{item.billing_period}}</td>\n {{/if}}\n {{#if (isColumnEnabled @root.table_config 'net_total')}}\n {{#if @root.table_config.footer.net_total.enable}}\n <td style=\"{{makeStyle @root.table_config.footer.net_total.style}}\">{{item.amount_subtotal}}</td>\n {{/if}}\n {{/if}}\n <td style=\"{{makeStyle @root.table_config.footer.gross_total.style}}\">{{item.amount_total}}\n {{#if @root.table_config.footer.amount_tax.enable}}\n <br>\n <span style=\"{{makeStyle @root.table_config.footer.amount_tax.style}}\">{{item.full_amount_tax}}</span>\n {{/if}}\n </td>\n </tr>\n {{/each}}\n {{/if}}\n <tr style=\"height:16px !important;\"></tr>\n </tbody>\n</table>\n"
1383
- },
1384
- "created_at": {
1385
- "type": "string",
1386
- "description": "Creation time",
1387
- "example": "2022-04-19T12:41:43.662Z",
1388
- "readOnly": true
1389
- },
1390
- "created_by": {
1391
- "type": "string",
1392
- "description": "Created by",
1393
- "example": "100042",
1394
- "readOnly": true
1395
- },
1396
- "updated_at": {
1397
- "type": "string",
1398
- "description": "Last update time",
1399
- "example": "2022-04-20T12:41:43.662Z",
1400
- "readOnly": true
1401
- },
1402
- "updated_by": {
1403
- "type": "string",
1404
- "description": "Updated by",
1405
- "example": "100042",
1406
- "readOnly": true
1407
- }
1408
- },
1409
- "required": [
1410
- "key",
1411
- "template"
1412
- ]
1413
- }
1414
- }
1415
- }
1416
- }