@ingenx-io/valets-schema-mcp-server 0.2.0 → 0.2.1
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/data/docs/collections/firestore-paths.md +2 -2
- package/data/docs/enums/attention-status.md +1 -1
- package/data/docs/enums/booking-status.md +1 -1
- package/data/docs/enums/customer-payment-status.md +1 -1
- package/data/docs/enums/customer-payment-target-type.md +1 -1
- package/data/docs/enums/delivery-type.md +1 -1
- package/data/docs/enums/deployment-link-type.md +1 -1
- package/data/docs/enums/event-status.md +1 -1
- package/data/docs/enums/fulfillment-status.md +1 -1
- package/data/docs/enums/loyalty-transaction-type.md +1 -1
- package/data/docs/enums/order-status.md +1 -1
- package/data/docs/enums/outbound-message-format.md +1 -1
- package/data/docs/enums/outbound-message-purpose.md +1 -1
- package/data/docs/enums/outbound-message-status.md +1 -1
- package/data/docs/enums/payment-method.md +1 -1
- package/data/docs/enums/payment-proof-status.md +1 -1
- package/data/docs/enums/payment-status.md +1 -1
- package/data/docs/enums/pending-issue.md +1 -1
- package/data/docs/enums/return-status.md +1 -1
- package/data/docs/enums/session-status.md +1 -1
- package/data/docs/enums/site-status.md +1 -1
- package/data/docs/enums/stocktake-frequency.md +1 -1
- package/data/docs/enums/stocktake-item-status.md +1 -1
- package/data/docs/enums/stocktake-status.md +1 -1
- package/data/docs/enums/ticket-status.md +1 -1
- package/data/docs/enums/waba-label.md +1 -1
- package/data/docs/enums/whatsapp-button-sub-type.md +22 -0
- package/data/docs/enums/whatsapp-template-component.md +23 -0
- package/data/docs/enums/whatsapp-template-status.md +2 -2
- package/data/docs/index.md +4 -2
- package/data/docs/models/allowed-user.md +1 -1
- package/data/docs/models/analytics-backfill.md +1 -1
- package/data/docs/models/analytics-daily.md +1 -1
- package/data/docs/models/analytics-event.md +1 -1
- package/data/docs/models/analytics-hourly.md +1 -1
- package/data/docs/models/booking-version.md +1 -1
- package/data/docs/models/booking.md +1 -1
- package/data/docs/models/customer-payment-allocation.md +1 -1
- package/data/docs/models/customer-payment.md +1 -1
- package/data/docs/models/customer.md +1 -1
- package/data/docs/models/event.md +1 -1
- package/data/docs/models/loyalty-config.md +1 -1
- package/data/docs/models/loyalty-reward.md +1 -1
- package/data/docs/models/loyalty-status.md +1 -1
- package/data/docs/models/loyalty-transaction.md +1 -1
- package/data/docs/models/magic-link-request.md +1 -1
- package/data/docs/models/metrics-current.md +1 -1
- package/data/docs/models/metrics-daily.md +1 -1
- package/data/docs/models/metrics-monthly.md +1 -1
- package/data/docs/models/order-item.md +1 -1
- package/data/docs/models/order.md +1 -1
- package/data/docs/models/sale.md +1 -1
- package/data/docs/models/site-payment.md +1 -1
- package/data/docs/models/site.md +1 -1
- package/data/docs/models/stocktake-item.md +1 -1
- package/data/docs/models/stocktake.md +1 -1
- package/data/docs/models/ticket.md +1 -1
- package/data/docs/models/whatsapp-inbound-message.md +1 -1
- package/data/docs/models/whatsapp-outbound-lifecycle-event.md +1 -1
- package/data/docs/models/whatsapp-outbound-message.md +1 -1
- package/data/docs/models/whatsapp-template.md +140 -34
- package/data/static/llms.txt +24 -5
- package/data/static/openapi.yaml +63 -8
- package/data/static/schemas.json +69 -9
- package/package.json +1 -1
|
@@ -366,4 +366,4 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
366
366
|
Specific value: `true`
|
|
367
367
|
|
|
368
368
|
----------------------------------------------------------------------------------------------------------------------------
|
|
369
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
369
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
@@ -303,7 +303,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
303
303
|
**Description:** (Read-only) Raw Meta error object(s).
|
|
304
304
|
|
|
305
305
|
----------------------------------------------------------------------------------------------------------------------------
|
|
306
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
306
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
307
307
|
|
|
308
308
|
:::warning Server-set
|
|
309
309
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -582,7 +582,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
582
582
|
| **Required** | No |
|
|
583
583
|
|
|
584
584
|
----------------------------------------------------------------------------------------------------------------------------
|
|
585
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
585
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
586
586
|
|
|
587
587
|
:::warning Server-set
|
|
588
588
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
@@ -12,12 +12,17 @@ sidebar_position: 31
|
|
|
12
12
|
```json
|
|
13
13
|
{
|
|
14
14
|
"id": null,
|
|
15
|
+
"waba": "waba",
|
|
16
|
+
"wabaId": "wab_ref123",
|
|
15
17
|
"name": "Amadou Diallo",
|
|
16
18
|
"language": "language",
|
|
17
19
|
"category": "category",
|
|
18
20
|
"status": "status",
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
+
"parameters": [
|
|
22
|
+
{
|
|
23
|
+
"name": "Amadou Diallo",
|
|
24
|
+
"component": "component"
|
|
25
|
+
}
|
|
21
26
|
],
|
|
22
27
|
"preview": "preview"
|
|
23
28
|
}
|
|
@@ -27,13 +32,19 @@ sidebar_position: 31
|
|
|
27
32
|
|
|
28
33
|
|
|
29
34
|
- [1. Property `id`](#id)
|
|
30
|
-
- [2. Property `
|
|
31
|
-
- [3. Property `
|
|
32
|
-
- [4. Property `
|
|
33
|
-
- [5. Property `
|
|
34
|
-
- [6. Property `
|
|
35
|
-
|
|
36
|
-
- [
|
|
35
|
+
- [2. Property `waba`](#waba)
|
|
36
|
+
- [3. Property `wabaId`](#wabaId)
|
|
37
|
+
- [4. Property `name`](#name)
|
|
38
|
+
- [5. Property `language`](#language)
|
|
39
|
+
- [6. Property `category`](#category)
|
|
40
|
+
- [7. Property `status`](#status)
|
|
41
|
+
- [8. Property `parameters`](#parameters)
|
|
42
|
+
- [8.1. parameters items](#parameters_items)
|
|
43
|
+
- [8.1.1. Property `name`](#parameters_items_name)
|
|
44
|
+
- [8.1.2. Property `component`](#parameters_items_component)
|
|
45
|
+
- [8.1.3. Property `buttonIndex`](#parameters_items_buttonIndex)
|
|
46
|
+
- [8.1.4. Property `buttonSubType`](#parameters_items_buttonSubType)
|
|
47
|
+
- [9. Property `preview`](#preview)
|
|
37
48
|
|
|
38
49
|
| | |
|
|
39
50
|
| ------------------------- | ------------------------------- |
|
|
@@ -42,17 +53,19 @@ sidebar_position: 31
|
|
|
42
53
|
| **Additional properties** | Not allowed |
|
|
43
54
|
| **Defined in** | #/definitions/whatsapp-template |
|
|
44
55
|
|
|
45
|
-
**Description:** WhatsappTemplate — Meta-approved template synced from the WhatsApp Business API (GH#43). Collection: whatsapp_templates/\{docId\}
|
|
56
|
+
**Description:** WhatsappTemplate — Meta-approved template synced from the WhatsApp Business API (GH#43; parameter placement GH#46). Collection: whatsapp_templates/\{docId\}, doc ID `\{waba\}__\{name\}__\{language\}`. WABA-scoped; backend-synced; dashboard reads only.
|
|
46
57
|
|
|
47
|
-
| Property
|
|
48
|
-
|
|
|
49
|
-
| - [id](#id )
|
|
50
|
-
| + [
|
|
51
|
-
| + [
|
|
52
|
-
| + [
|
|
53
|
-
| + [
|
|
54
|
-
| + [
|
|
55
|
-
| + [
|
|
58
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
59
|
+
| ---------------------------- | ------- | ---------------- | ---------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
60
|
+
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID — composite \`\{waba\}__\{name\}__\{language\}\`. |
|
|
61
|
+
| + [waba](#waba ) | No | enum (of string) | No | In #/definitions/waba-label | (Read-only) WABA label this template is approved on. Templates are WABA-scoped. Mirrors WhatsappOutboundMessage.waba. |
|
|
62
|
+
| + [wabaId](#wabaId ) | No | string | No | - | (Read-only) Meta WABA ID this template belongs to. The sender must verify its phone number belongs to this WABA before using the template. |
|
|
63
|
+
| + [name](#name ) | No | string | No | - | (Read-only) Template name as registered with Meta. |
|
|
64
|
+
| + [language](#language ) | No | string | No | - | (Read-only) Template language/locale code (e.g. "en", "fr"). |
|
|
65
|
+
| + [category](#category ) | No | string | No | - | (Read-only) Meta template category (e.g. MARKETING, UTILITY, AUTHENTICATION). |
|
|
66
|
+
| + [status](#status ) | No | enum (of string) | No | In #/definitions/whatsapp-template-status | (Read-only) Meta review status. Only APPROVED templates can be sent. |
|
|
67
|
+
| + [parameters](#parameters ) | No | array of object | No | - | (Read-only) Declared parameters with component placement. Supersedes the flat \`variables\` list (GH#46) — lets the send group values into the correct header/body/button components. A message supplies values keyed by \`name\` via WhatsappOutboundMessage.template.variables. |
|
|
68
|
+
| + [preview](#preview ) | No | string | No | - | (Read-only) Rendered preview text for display in the dashboard picker. |
|
|
56
69
|
|
|
57
70
|
## <a name="id"></a>1. Property `id`
|
|
58
71
|
|
|
@@ -61,13 +74,44 @@ sidebar_position: 31
|
|
|
61
74
|
| **Type** | `string or null` |
|
|
62
75
|
| **Required** | No |
|
|
63
76
|
|
|
64
|
-
**Description:** (Read-only) Firestore document ID — composite `\{name\}__\{language\}`.
|
|
77
|
+
**Description:** (Read-only) Firestore document ID — composite `\{waba\}__\{name\}__\{language\}`.
|
|
65
78
|
|
|
66
79
|
:::warning Server-set
|
|
67
80
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
68
81
|
:::
|
|
69
82
|
|
|
70
|
-
## <a name="
|
|
83
|
+
## <a name="waba"></a>2. Property `waba`
|
|
84
|
+
|
|
85
|
+
| | |
|
|
86
|
+
| -------------- | ------------------------ |
|
|
87
|
+
| **Type** | `enum (of string)` |
|
|
88
|
+
| **Required** | Yes |
|
|
89
|
+
| **Defined in** | #/definitions/waba-label |
|
|
90
|
+
|
|
91
|
+
**Description:** (Read-only) WABA label this template is approved on. Templates are WABA-scoped. Mirrors WhatsappOutboundMessage.waba.
|
|
92
|
+
|
|
93
|
+
Must be one of:
|
|
94
|
+
* "cmz"
|
|
95
|
+
* "val"
|
|
96
|
+
|
|
97
|
+
:::warning Server-set
|
|
98
|
+
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
99
|
+
:::
|
|
100
|
+
|
|
101
|
+
## <a name="wabaId"></a>3. Property `wabaId`
|
|
102
|
+
|
|
103
|
+
| | |
|
|
104
|
+
| ------------ | -------- |
|
|
105
|
+
| **Type** | `string` |
|
|
106
|
+
| **Required** | Yes |
|
|
107
|
+
|
|
108
|
+
**Description:** (Read-only) Meta WABA ID this template belongs to. The sender must verify its phone number belongs to this WABA before using the template.
|
|
109
|
+
|
|
110
|
+
:::warning Server-set
|
|
111
|
+
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
112
|
+
:::
|
|
113
|
+
|
|
114
|
+
## <a name="name"></a>4. Property `name`
|
|
71
115
|
|
|
72
116
|
| | |
|
|
73
117
|
| ------------ | -------- |
|
|
@@ -80,7 +124,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
80
124
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
81
125
|
:::
|
|
82
126
|
|
|
83
|
-
## <a name="language"></a>
|
|
127
|
+
## <a name="language"></a>5. Property `language`
|
|
84
128
|
|
|
85
129
|
| | |
|
|
86
130
|
| ------------ | -------- |
|
|
@@ -93,7 +137,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
93
137
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
94
138
|
:::
|
|
95
139
|
|
|
96
|
-
## <a name="category"></a>
|
|
140
|
+
## <a name="category"></a>6. Property `category`
|
|
97
141
|
|
|
98
142
|
| | |
|
|
99
143
|
| ------------ | -------- |
|
|
@@ -106,7 +150,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
106
150
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
107
151
|
:::
|
|
108
152
|
|
|
109
|
-
## <a name="status"></a>
|
|
153
|
+
## <a name="status"></a>7. Property `status`
|
|
110
154
|
|
|
111
155
|
| | |
|
|
112
156
|
| -------------- | -------------------------------------- |
|
|
@@ -128,14 +172,14 @@ Must be one of:
|
|
|
128
172
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
129
173
|
:::
|
|
130
174
|
|
|
131
|
-
## <a name="
|
|
175
|
+
## <a name="parameters"></a>8. Property `parameters`
|
|
132
176
|
|
|
133
177
|
| | |
|
|
134
178
|
| ------------ | ----------------- |
|
|
135
|
-
| **Type** | `array of
|
|
179
|
+
| **Type** | `array of object` |
|
|
136
180
|
| **Required** | Yes |
|
|
137
181
|
|
|
138
|
-
**Description:** (Read-only) Declared
|
|
182
|
+
**Description:** (Read-only) Declared parameters with component placement. Supersedes the flat `variables` list (GH#46) — lets the send group values into the correct header/body/button components. A message supplies values keyed by `name` via WhatsappOutboundMessage.template.variables.
|
|
139
183
|
|
|
140
184
|
| | Array restrictions |
|
|
141
185
|
| -------------------- | ------------------ |
|
|
@@ -145,22 +189,84 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
145
189
|
| **Additional items** | False |
|
|
146
190
|
| **Tuple validation** | See below |
|
|
147
191
|
|
|
148
|
-
| Each item of this array must be
|
|
149
|
-
|
|
|
150
|
-
| [
|
|
192
|
+
| Each item of this array must be | Description |
|
|
193
|
+
| ------------------------------------- | ---------------------------------------------------------------------- |
|
|
194
|
+
| [parameters items](#parameters_items) | Declared WhatsApp template parameter with component placement (GH#46). |
|
|
195
|
+
|
|
196
|
+
### <a name="parameters_items"></a>8.1. parameters items
|
|
197
|
+
|
|
198
|
+
| | |
|
|
199
|
+
| ------------------------- | ----------- |
|
|
200
|
+
| **Type** | `object` |
|
|
201
|
+
| **Required** | No |
|
|
202
|
+
| **Additional properties** | Not allowed |
|
|
151
203
|
|
|
152
|
-
|
|
204
|
+
**Description:** Declared WhatsApp template parameter with component placement (GH#46).
|
|
205
|
+
|
|
206
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
207
|
+
| --------------------------------------------------- | ------- | ---------------- | ---------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
208
|
+
| + [name](#parameters_items_name ) | No | string | No | - | Parameter name/placeholder (e.g. "1"). Matches a key in WhatsappOutboundMessage.template.variables. |
|
|
209
|
+
| + [component](#parameters_items_component ) | No | enum (of string) | No | In #/definitions/whatsapp-template-component | Which template component this parameter targets: header \| body \| button. |
|
|
210
|
+
| - [buttonIndex](#parameters_items_buttonIndex ) | No | integer | No | - | 0-based button position. Present only when component=button (Meta requires a string index at send time). |
|
|
211
|
+
| - [buttonSubType](#parameters_items_buttonSubType ) | No | enum (of string) | No | In #/definitions/whatsapp-button-sub-type | Button sub-type (url \| quick_reply). Present only when component=button. |
|
|
212
|
+
|
|
213
|
+
#### <a name="parameters_items_name"></a>8.1.1. Property `name`
|
|
153
214
|
|
|
154
215
|
| | |
|
|
155
216
|
| ------------ | -------- |
|
|
156
217
|
| **Type** | `string` |
|
|
157
|
-
| **Required** |
|
|
218
|
+
| **Required** | Yes |
|
|
219
|
+
|
|
220
|
+
**Description:** Parameter name/placeholder (e.g. "1"). Matches a key in WhatsappOutboundMessage.template.variables.
|
|
221
|
+
|
|
222
|
+
#### <a name="parameters_items_component"></a>8.1.2. Property `component`
|
|
223
|
+
|
|
224
|
+
| | |
|
|
225
|
+
| -------------- | ----------------------------------------- |
|
|
226
|
+
| **Type** | `enum (of string)` |
|
|
227
|
+
| **Required** | Yes |
|
|
228
|
+
| **Defined in** | #/definitions/whatsapp-template-component |
|
|
229
|
+
|
|
230
|
+
**Description:** Which template component this parameter targets: header | body | button.
|
|
231
|
+
|
|
232
|
+
Must be one of:
|
|
233
|
+
* "header"
|
|
234
|
+
* "body"
|
|
235
|
+
* "button"
|
|
236
|
+
|
|
237
|
+
#### <a name="parameters_items_buttonIndex"></a>8.1.3. Property `buttonIndex`
|
|
238
|
+
|
|
239
|
+
| | |
|
|
240
|
+
| ------------ | --------- |
|
|
241
|
+
| **Type** | `integer` |
|
|
242
|
+
| **Required** | No |
|
|
243
|
+
|
|
244
|
+
**Description:** 0-based button position. Present only when component=button (Meta requires a string index at send time).
|
|
245
|
+
|
|
246
|
+
| Restrictions | |
|
|
247
|
+
| ------------ | ---------------------- |
|
|
248
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
249
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
250
|
+
|
|
251
|
+
#### <a name="parameters_items_buttonSubType"></a>8.1.4. Property `buttonSubType`
|
|
252
|
+
|
|
253
|
+
| | |
|
|
254
|
+
| -------------- | -------------------------------------- |
|
|
255
|
+
| **Type** | `enum (of string)` |
|
|
256
|
+
| **Required** | No |
|
|
257
|
+
| **Defined in** | #/definitions/whatsapp-button-sub-type |
|
|
258
|
+
|
|
259
|
+
**Description:** Button sub-type (url | quick_reply). Present only when component=button.
|
|
260
|
+
|
|
261
|
+
Must be one of:
|
|
262
|
+
* "url"
|
|
263
|
+
* "quick_reply"
|
|
158
264
|
|
|
159
265
|
:::warning Server-set
|
|
160
266
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
|
161
267
|
:::
|
|
162
268
|
|
|
163
|
-
## <a name="preview"></a>
|
|
269
|
+
## <a name="preview"></a>9. Property `preview`
|
|
164
270
|
|
|
165
271
|
| | |
|
|
166
272
|
| ------------ | -------- |
|
|
@@ -170,7 +276,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
170
276
|
**Description:** (Read-only) Rendered preview text for display in the dashboard picker.
|
|
171
277
|
|
|
172
278
|
----------------------------------------------------------------------------------------------------------------------------
|
|
173
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
279
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 13:06:59 +0000
|
|
174
280
|
|
|
175
281
|
:::warning Server-set
|
|
176
282
|
Do not include in write requests. This field is set exclusively by the server (Firestore trigger or Admin SDK). Clients that send it will have the value silently ignored or may receive a validation error.
|
package/data/static/llms.txt
CHANGED
|
@@ -110,6 +110,14 @@ Values: VALID, USED, CANCELLED
|
|
|
110
110
|
Human-readable WABA label identifying which Meta business number received the message (GH#36).
|
|
111
111
|
Values: cmz, val
|
|
112
112
|
|
|
113
|
+
### WhatsappButtonSubType
|
|
114
|
+
Sub-type of a WhatsApp template button parameter. Set when WhatsappTemplateParameter.component === "button" — maps to Meta `components[].sub_type` (GH#46).
|
|
115
|
+
Values: url, quick_reply
|
|
116
|
+
|
|
117
|
+
### WhatsappTemplateComponent
|
|
118
|
+
WhatsApp template component a parameter targets. Determines which Meta `components` entry the supplied value is placed in at send time (GH#46).
|
|
119
|
+
Values: header, body, button
|
|
120
|
+
|
|
113
121
|
### WhatsappTemplateStatus
|
|
114
122
|
Meta review status of a WhatsApp message template, synced from the WhatsApp Business API. Only APPROVED templates can be sent. The fuller Meta status set is used deliberately (vs just APPROVED/PENDING/REJECTED) so this enum has a distinct value signature from PaymentProofStatus in the JSON-Schema $ref matcher (GH#43).
|
|
115
123
|
Values: APPROVED, PENDING, REJECTED, PAUSED, DISABLED, IN_APPEAL
|
|
@@ -1613,28 +1621,39 @@ Example:
|
|
|
1613
1621
|
```
|
|
1614
1622
|
|
|
1615
1623
|
### WhatsappTemplate
|
|
1616
|
-
Fields:
|
|
1624
|
+
Fields: 9 (8 required)
|
|
1617
1625
|
|
|
1618
1626
|
| Field | Type | Required | Description |
|
|
1619
1627
|
|-------|------|----------|-------------|
|
|
1620
|
-
| id | ['string', 'null'] | no | (Read-only) Firestore document ID — composite `{name}__{language}`. |
|
|
1628
|
+
| id | ['string', 'null'] | no | (Read-only) Firestore document ID — composite `{waba}__{name}__{language}`. |
|
|
1629
|
+
| waba | WabaLabel | yes | (Read-only) WABA label this template is approved on. Templates are WABA-scoped. Mirrors WhatsappOutboundMessage.waba. |
|
|
1630
|
+
| wabaId | string | yes | (Read-only) Meta WABA ID this template belongs to. The sender must verify its phone number belongs to this WABA before using the template. |
|
|
1621
1631
|
| name | string | yes | (Read-only) Template name as registered with Meta. |
|
|
1622
1632
|
| language | string | yes | (Read-only) Template language/locale code (e.g. "en", "fr"). |
|
|
1623
1633
|
| category | string | yes | (Read-only) Meta template category (e.g. MARKETING, UTILITY, AUTHENTICATION). |
|
|
1624
1634
|
| status | WhatsappTemplateStatus | yes | (Read-only) Meta review status. Only APPROVED templates can be sent. |
|
|
1625
|
-
|
|
|
1635
|
+
| parameters | array<object> | yes | (Read-only) Declared parameters with component placement. Supersedes the flat `variables` list (GH#46) — lets the send group values into the correct header/body/button components. A message supplies values keyed by `name` via WhatsappOutboundMessage.template.variables. |
|
|
1636
|
+
| parameters[].name | string | yes | Parameter name/placeholder (e.g. "1"). Matches a key in WhatsappOutboundMessage.template.variables. |
|
|
1637
|
+
| parameters[].component | WhatsappTemplateComponent | yes | Which template component this parameter targets: header | body | button. |
|
|
1638
|
+
| parameters[].buttonIndex | integer | no | 0-based button position. Present only when component=button (Meta requires a string index at send time). |
|
|
1639
|
+
| parameters[].buttonSubType | WhatsappButtonSubType | no | Button sub-type (url | quick_reply). Present only when component=button. |
|
|
1626
1640
|
| preview | string | yes | (Read-only) Rendered preview text for display in the dashboard picker. |
|
|
1627
1641
|
|
|
1628
1642
|
Example:
|
|
1629
1643
|
```json
|
|
1630
1644
|
{
|
|
1631
1645
|
"id": null,
|
|
1646
|
+
"waba": "waba",
|
|
1647
|
+
"wabaId": "wab_ref123",
|
|
1632
1648
|
"name": "Amadou Diallo",
|
|
1633
1649
|
"language": "language",
|
|
1634
1650
|
"category": "category",
|
|
1635
1651
|
"status": "status",
|
|
1636
|
-
"
|
|
1637
|
-
|
|
1652
|
+
"parameters": [
|
|
1653
|
+
{
|
|
1654
|
+
"name": "Amadou Diallo",
|
|
1655
|
+
"component": "component"
|
|
1656
|
+
}
|
|
1638
1657
|
],
|
|
1639
1658
|
"preview": "preview"
|
|
1640
1659
|
}
|
package/data/static/openapi.yaml
CHANGED
|
@@ -274,6 +274,21 @@ components:
|
|
|
274
274
|
- val
|
|
275
275
|
description: Human-readable WABA label identifying which Meta business number
|
|
276
276
|
received the message (GH#36).
|
|
277
|
+
WhatsappButtonSubType:
|
|
278
|
+
type: string
|
|
279
|
+
enum:
|
|
280
|
+
- url
|
|
281
|
+
- quick_reply
|
|
282
|
+
description: Sub-type of a WhatsApp template button parameter. Set when WhatsappTemplateParameter.component
|
|
283
|
+
=== "button" — maps to Meta `components[].sub_type` (GH#46).
|
|
284
|
+
WhatsappTemplateComponent:
|
|
285
|
+
type: string
|
|
286
|
+
enum:
|
|
287
|
+
- header
|
|
288
|
+
- body
|
|
289
|
+
- button
|
|
290
|
+
description: WhatsApp template component a parameter targets. Determines which
|
|
291
|
+
Meta `components` entry the supplied value is placed in at send time (GH#46).
|
|
277
292
|
WhatsappTemplateStatus:
|
|
278
293
|
type: string
|
|
279
294
|
enum:
|
|
@@ -4804,10 +4819,20 @@ components:
|
|
|
4804
4819
|
properties:
|
|
4805
4820
|
id:
|
|
4806
4821
|
readOnly: true
|
|
4807
|
-
description: (Read-only) Firestore document ID — composite `{name}__{language}`.
|
|
4822
|
+
description: (Read-only) Firestore document ID — composite `{waba}__{name}__{language}`.
|
|
4808
4823
|
type:
|
|
4809
4824
|
- string
|
|
4810
4825
|
- 'null'
|
|
4826
|
+
waba:
|
|
4827
|
+
$ref: '#/components/schemas/WabaLabel'
|
|
4828
|
+
description: (Read-only) WABA label this template is approved on. Templates
|
|
4829
|
+
are WABA-scoped. Mirrors WhatsappOutboundMessage.waba.
|
|
4830
|
+
readOnly: true
|
|
4831
|
+
wabaId:
|
|
4832
|
+
type: string
|
|
4833
|
+
readOnly: true
|
|
4834
|
+
description: (Read-only) Meta WABA ID this template belongs to. The sender
|
|
4835
|
+
must verify its phone number belongs to this WABA before using the template.
|
|
4811
4836
|
name:
|
|
4812
4837
|
type: string
|
|
4813
4838
|
readOnly: true
|
|
@@ -4826,29 +4851,59 @@ components:
|
|
|
4826
4851
|
description: (Read-only) Meta review status. Only APPROVED templates can
|
|
4827
4852
|
be sent.
|
|
4828
4853
|
readOnly: true
|
|
4829
|
-
|
|
4854
|
+
parameters:
|
|
4830
4855
|
type: array
|
|
4831
4856
|
items:
|
|
4832
|
-
type:
|
|
4857
|
+
type: object
|
|
4858
|
+
properties:
|
|
4859
|
+
name:
|
|
4860
|
+
type: string
|
|
4861
|
+
description: Parameter name/placeholder (e.g. "1"). Matches a key
|
|
4862
|
+
in WhatsappOutboundMessage.template.variables.
|
|
4863
|
+
component:
|
|
4864
|
+
$ref: '#/components/schemas/WhatsappTemplateComponent'
|
|
4865
|
+
description: 'Which template component this parameter targets: header
|
|
4866
|
+
| body | button.'
|
|
4867
|
+
buttonIndex:
|
|
4868
|
+
description: 0-based button position. Present only when component=button
|
|
4869
|
+
(Meta requires a string index at send time).
|
|
4870
|
+
type: integer
|
|
4871
|
+
minimum: -9007199254740991
|
|
4872
|
+
maximum: 9007199254740991
|
|
4873
|
+
buttonSubType:
|
|
4874
|
+
$ref: '#/components/schemas/WhatsappButtonSubType'
|
|
4875
|
+
description: Button sub-type (url | quick_reply). Present only when
|
|
4876
|
+
component=button.
|
|
4877
|
+
required:
|
|
4878
|
+
- name
|
|
4879
|
+
- component
|
|
4880
|
+
additionalProperties: false
|
|
4881
|
+
description: Declared WhatsApp template parameter with component placement
|
|
4882
|
+
(GH#46).
|
|
4833
4883
|
readOnly: true
|
|
4834
|
-
description: (Read-only) Declared
|
|
4835
|
-
|
|
4884
|
+
description: (Read-only) Declared parameters with component placement. Supersedes
|
|
4885
|
+
the flat `variables` list (GH#46) — lets the send group values into the
|
|
4886
|
+
correct header/body/button components. A message supplies values keyed
|
|
4887
|
+
by `name` via WhatsappOutboundMessage.template.variables.
|
|
4836
4888
|
preview:
|
|
4837
4889
|
type: string
|
|
4838
4890
|
readOnly: true
|
|
4839
4891
|
description: (Read-only) Rendered preview text for display in the dashboard
|
|
4840
4892
|
picker.
|
|
4841
4893
|
required:
|
|
4894
|
+
- waba
|
|
4895
|
+
- wabaId
|
|
4842
4896
|
- name
|
|
4843
4897
|
- language
|
|
4844
4898
|
- category
|
|
4845
4899
|
- status
|
|
4846
|
-
-
|
|
4900
|
+
- parameters
|
|
4847
4901
|
- preview
|
|
4848
4902
|
additionalProperties: false
|
|
4849
4903
|
description: 'WhatsappTemplate — Meta-approved template synced from the WhatsApp
|
|
4850
|
-
Business API (GH#43). Collection: whatsapp_templates/{docId}
|
|
4851
|
-
|
|
4904
|
+
Business API (GH#43; parameter placement GH#46). Collection: whatsapp_templates/{docId},
|
|
4905
|
+
doc ID `{waba}__{name}__{language}`. WABA-scoped; backend-synced; dashboard
|
|
4906
|
+
reads only.'
|
|
4852
4907
|
PaymentSummary:
|
|
4853
4908
|
type: object
|
|
4854
4909
|
properties:
|
package/data/static/schemas.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"description": "@valets/schema \u2014 consolidated schema bundle",
|
|
4
|
-
"generated": "2026-05-
|
|
4
|
+
"generated": "2026-05-27T13:06:59.435619+00:00",
|
|
5
5
|
"schemas": {
|
|
6
6
|
"allowed-user": {
|
|
7
7
|
"type": "object",
|
|
@@ -5565,6 +5565,14 @@
|
|
|
5565
5565
|
],
|
|
5566
5566
|
"description": "Human-readable WABA label identifying which Meta business number received the message (GH#36)."
|
|
5567
5567
|
},
|
|
5568
|
+
"whatsapp-button-sub-type": {
|
|
5569
|
+
"type": "string",
|
|
5570
|
+
"enum": [
|
|
5571
|
+
"url",
|
|
5572
|
+
"quick_reply"
|
|
5573
|
+
],
|
|
5574
|
+
"description": "Sub-type of a WhatsApp template button parameter. Set when WhatsappTemplateParameter.component === \"button\" \u2014 maps to Meta `components[].sub_type` (GH#46)."
|
|
5575
|
+
},
|
|
5568
5576
|
"whatsapp-inbound-message": {
|
|
5569
5577
|
"type": "object",
|
|
5570
5578
|
"properties": {
|
|
@@ -6052,12 +6060,22 @@
|
|
|
6052
6060
|
"properties": {
|
|
6053
6061
|
"id": {
|
|
6054
6062
|
"readOnly": true,
|
|
6055
|
-
"description": "(Read-only) Firestore document ID \u2014 composite `{name}__{language}`.",
|
|
6063
|
+
"description": "(Read-only) Firestore document ID \u2014 composite `{waba}__{name}__{language}`.",
|
|
6056
6064
|
"type": [
|
|
6057
6065
|
"string",
|
|
6058
6066
|
"null"
|
|
6059
6067
|
]
|
|
6060
6068
|
},
|
|
6069
|
+
"waba": {
|
|
6070
|
+
"$ref": "#/definitions/waba-label",
|
|
6071
|
+
"description": "(Read-only) WABA label this template is approved on. Templates are WABA-scoped. Mirrors WhatsappOutboundMessage.waba.",
|
|
6072
|
+
"readOnly": true
|
|
6073
|
+
},
|
|
6074
|
+
"wabaId": {
|
|
6075
|
+
"type": "string",
|
|
6076
|
+
"readOnly": true,
|
|
6077
|
+
"description": "(Read-only) Meta WABA ID this template belongs to. The sender must verify its phone number belongs to this WABA before using the template."
|
|
6078
|
+
},
|
|
6061
6079
|
"name": {
|
|
6062
6080
|
"type": "string",
|
|
6063
6081
|
"readOnly": true,
|
|
@@ -6078,13 +6096,39 @@
|
|
|
6078
6096
|
"description": "(Read-only) Meta review status. Only APPROVED templates can be sent.",
|
|
6079
6097
|
"readOnly": true
|
|
6080
6098
|
},
|
|
6081
|
-
"
|
|
6099
|
+
"parameters": {
|
|
6082
6100
|
"type": "array",
|
|
6083
6101
|
"items": {
|
|
6084
|
-
"type": "
|
|
6102
|
+
"type": "object",
|
|
6103
|
+
"properties": {
|
|
6104
|
+
"name": {
|
|
6105
|
+
"type": "string",
|
|
6106
|
+
"description": "Parameter name/placeholder (e.g. \"1\"). Matches a key in WhatsappOutboundMessage.template.variables."
|
|
6107
|
+
},
|
|
6108
|
+
"component": {
|
|
6109
|
+
"$ref": "#/definitions/whatsapp-template-component",
|
|
6110
|
+
"description": "Which template component this parameter targets: header | body | button."
|
|
6111
|
+
},
|
|
6112
|
+
"buttonIndex": {
|
|
6113
|
+
"description": "0-based button position. Present only when component=button (Meta requires a string index at send time).",
|
|
6114
|
+
"type": "integer",
|
|
6115
|
+
"minimum": -9007199254740991,
|
|
6116
|
+
"maximum": 9007199254740991
|
|
6117
|
+
},
|
|
6118
|
+
"buttonSubType": {
|
|
6119
|
+
"$ref": "#/definitions/whatsapp-button-sub-type",
|
|
6120
|
+
"description": "Button sub-type (url | quick_reply). Present only when component=button."
|
|
6121
|
+
}
|
|
6122
|
+
},
|
|
6123
|
+
"required": [
|
|
6124
|
+
"name",
|
|
6125
|
+
"component"
|
|
6126
|
+
],
|
|
6127
|
+
"additionalProperties": false,
|
|
6128
|
+
"description": "Declared WhatsApp template parameter with component placement (GH#46)."
|
|
6085
6129
|
},
|
|
6086
6130
|
"readOnly": true,
|
|
6087
|
-
"description": "(Read-only) Declared
|
|
6131
|
+
"description": "(Read-only) Declared parameters with component placement. Supersedes the flat `variables` list (GH#46) \u2014 lets the send group values into the correct header/body/button components. A message supplies values keyed by `name` via WhatsappOutboundMessage.template.variables."
|
|
6088
6132
|
},
|
|
6089
6133
|
"preview": {
|
|
6090
6134
|
"type": "string",
|
|
@@ -6093,27 +6137,43 @@
|
|
|
6093
6137
|
}
|
|
6094
6138
|
},
|
|
6095
6139
|
"required": [
|
|
6140
|
+
"waba",
|
|
6141
|
+
"wabaId",
|
|
6096
6142
|
"name",
|
|
6097
6143
|
"language",
|
|
6098
6144
|
"category",
|
|
6099
6145
|
"status",
|
|
6100
|
-
"
|
|
6146
|
+
"parameters",
|
|
6101
6147
|
"preview"
|
|
6102
6148
|
],
|
|
6103
6149
|
"additionalProperties": false,
|
|
6104
|
-
"description": "WhatsappTemplate \u2014 Meta-approved template synced from the WhatsApp Business API (GH#43). Collection: whatsapp_templates/{docId}
|
|
6150
|
+
"description": "WhatsappTemplate \u2014 Meta-approved template synced from the WhatsApp Business API (GH#43; parameter placement GH#46). Collection: whatsapp_templates/{docId}, doc ID `{waba}__{name}__{language}`. WABA-scoped; backend-synced; dashboard reads only.",
|
|
6105
6151
|
"example": {
|
|
6106
6152
|
"id": null,
|
|
6153
|
+
"waba": "waba",
|
|
6154
|
+
"wabaId": "wab_ref123",
|
|
6107
6155
|
"name": "Amadou Diallo",
|
|
6108
6156
|
"language": "language",
|
|
6109
6157
|
"category": "category",
|
|
6110
6158
|
"status": "status",
|
|
6111
|
-
"
|
|
6112
|
-
|
|
6159
|
+
"parameters": [
|
|
6160
|
+
{
|
|
6161
|
+
"name": "Amadou Diallo",
|
|
6162
|
+
"component": "component"
|
|
6163
|
+
}
|
|
6113
6164
|
],
|
|
6114
6165
|
"preview": "preview"
|
|
6115
6166
|
}
|
|
6116
6167
|
},
|
|
6168
|
+
"whatsapp-template-component": {
|
|
6169
|
+
"type": "string",
|
|
6170
|
+
"enum": [
|
|
6171
|
+
"header",
|
|
6172
|
+
"body",
|
|
6173
|
+
"button"
|
|
6174
|
+
],
|
|
6175
|
+
"description": "WhatsApp template component a parameter targets. Determines which Meta `components` entry the supplied value is placed in at send time (GH#46)."
|
|
6176
|
+
},
|
|
6117
6177
|
"whatsapp-template-status": {
|
|
6118
6178
|
"type": "string",
|
|
6119
6179
|
"enum": [
|