@ingenx-io/valets-schema-mcp-server 0.2.0 → 0.2.2
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 +150 -33
- package/data/static/llms.txt +25 -5
- package/data/static/openapi.yaml +70 -8
- package/data/static/schemas.json +73 -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 14:03:20 +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 14:03:20 +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 14:03:20 +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,20 @@ 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
|
+
- [8.1.5. Property `buttonUrlBase`](#parameters_items_buttonUrlBase)
|
|
48
|
+
- [9. Property `preview`](#preview)
|
|
37
49
|
|
|
38
50
|
| | |
|
|
39
51
|
| ------------------------- | ------------------------------- |
|
|
@@ -42,17 +54,19 @@ sidebar_position: 31
|
|
|
42
54
|
| **Additional properties** | Not allowed |
|
|
43
55
|
| **Defined in** | #/definitions/whatsapp-template |
|
|
44
56
|
|
|
45
|
-
**Description:** WhatsappTemplate — Meta-approved template synced from the WhatsApp Business API (GH#43). Collection: whatsapp_templates/\{docId\}
|
|
57
|
+
**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
58
|
|
|
47
|
-
| Property
|
|
48
|
-
|
|
|
49
|
-
| - [id](#id )
|
|
50
|
-
| + [
|
|
51
|
-
| + [
|
|
52
|
-
| + [
|
|
53
|
-
| + [
|
|
54
|
-
| + [
|
|
55
|
-
| + [
|
|
59
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
60
|
+
| ---------------------------- | ------- | ---------------- | ---------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
61
|
+
| - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID — composite \`\{waba\}__\{name\}__\{language\}\`. |
|
|
62
|
+
| + [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. |
|
|
63
|
+
| + [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. |
|
|
64
|
+
| + [name](#name ) | No | string | No | - | (Read-only) Template name as registered with Meta. |
|
|
65
|
+
| + [language](#language ) | No | string | No | - | (Read-only) Template language/locale code (e.g. "en", "fr"). |
|
|
66
|
+
| + [category](#category ) | No | string | No | - | (Read-only) Meta template category (e.g. MARKETING, UTILITY, AUTHENTICATION). |
|
|
67
|
+
| + [status](#status ) | No | enum (of string) | No | In #/definitions/whatsapp-template-status | (Read-only) Meta review status. Only APPROVED templates can be sent. |
|
|
68
|
+
| + [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. |
|
|
69
|
+
| + [preview](#preview ) | No | string | No | - | (Read-only) Rendered preview text for display in the dashboard picker. |
|
|
56
70
|
|
|
57
71
|
## <a name="id"></a>1. Property `id`
|
|
58
72
|
|
|
@@ -61,13 +75,44 @@ sidebar_position: 31
|
|
|
61
75
|
| **Type** | `string or null` |
|
|
62
76
|
| **Required** | No |
|
|
63
77
|
|
|
64
|
-
**Description:** (Read-only) Firestore document ID — composite `\{name\}__\{language\}`.
|
|
78
|
+
**Description:** (Read-only) Firestore document ID — composite `\{waba\}__\{name\}__\{language\}`.
|
|
65
79
|
|
|
66
80
|
:::warning Server-set
|
|
67
81
|
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
82
|
:::
|
|
69
83
|
|
|
70
|
-
## <a name="
|
|
84
|
+
## <a name="waba"></a>2. Property `waba`
|
|
85
|
+
|
|
86
|
+
| | |
|
|
87
|
+
| -------------- | ------------------------ |
|
|
88
|
+
| **Type** | `enum (of string)` |
|
|
89
|
+
| **Required** | Yes |
|
|
90
|
+
| **Defined in** | #/definitions/waba-label |
|
|
91
|
+
|
|
92
|
+
**Description:** (Read-only) WABA label this template is approved on. Templates are WABA-scoped. Mirrors WhatsappOutboundMessage.waba.
|
|
93
|
+
|
|
94
|
+
Must be one of:
|
|
95
|
+
* "cmz"
|
|
96
|
+
* "val"
|
|
97
|
+
|
|
98
|
+
:::warning Server-set
|
|
99
|
+
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.
|
|
100
|
+
:::
|
|
101
|
+
|
|
102
|
+
## <a name="wabaId"></a>3. Property `wabaId`
|
|
103
|
+
|
|
104
|
+
| | |
|
|
105
|
+
| ------------ | -------- |
|
|
106
|
+
| **Type** | `string` |
|
|
107
|
+
| **Required** | Yes |
|
|
108
|
+
|
|
109
|
+
**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.
|
|
110
|
+
|
|
111
|
+
:::warning Server-set
|
|
112
|
+
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.
|
|
113
|
+
:::
|
|
114
|
+
|
|
115
|
+
## <a name="name"></a>4. Property `name`
|
|
71
116
|
|
|
72
117
|
| | |
|
|
73
118
|
| ------------ | -------- |
|
|
@@ -80,7 +125,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
80
125
|
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
126
|
:::
|
|
82
127
|
|
|
83
|
-
## <a name="language"></a>
|
|
128
|
+
## <a name="language"></a>5. Property `language`
|
|
84
129
|
|
|
85
130
|
| | |
|
|
86
131
|
| ------------ | -------- |
|
|
@@ -93,7 +138,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
93
138
|
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
139
|
:::
|
|
95
140
|
|
|
96
|
-
## <a name="category"></a>
|
|
141
|
+
## <a name="category"></a>6. Property `category`
|
|
97
142
|
|
|
98
143
|
| | |
|
|
99
144
|
| ------------ | -------- |
|
|
@@ -106,7 +151,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
106
151
|
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
152
|
:::
|
|
108
153
|
|
|
109
|
-
## <a name="status"></a>
|
|
154
|
+
## <a name="status"></a>7. Property `status`
|
|
110
155
|
|
|
111
156
|
| | |
|
|
112
157
|
| -------------- | -------------------------------------- |
|
|
@@ -128,14 +173,14 @@ Must be one of:
|
|
|
128
173
|
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
174
|
:::
|
|
130
175
|
|
|
131
|
-
## <a name="
|
|
176
|
+
## <a name="parameters"></a>8. Property `parameters`
|
|
132
177
|
|
|
133
178
|
| | |
|
|
134
179
|
| ------------ | ----------------- |
|
|
135
|
-
| **Type** | `array of
|
|
180
|
+
| **Type** | `array of object` |
|
|
136
181
|
| **Required** | Yes |
|
|
137
182
|
|
|
138
|
-
**Description:** (Read-only) Declared
|
|
183
|
+
**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
184
|
|
|
140
185
|
| | Array restrictions |
|
|
141
186
|
| -------------------- | ------------------ |
|
|
@@ -145,22 +190,94 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
145
190
|
| **Additional items** | False |
|
|
146
191
|
| **Tuple validation** | See below |
|
|
147
192
|
|
|
148
|
-
| Each item of this array must be
|
|
149
|
-
|
|
|
150
|
-
| [
|
|
193
|
+
| Each item of this array must be | Description |
|
|
194
|
+
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
195
|
+
| [parameters items](#parameters_items) | Declared WhatsApp template parameter with component placement (GH#46) and, for URL buttons, the configured URL pattern (GH#51). |
|
|
196
|
+
|
|
197
|
+
### <a name="parameters_items"></a>8.1. parameters items
|
|
198
|
+
|
|
199
|
+
| | |
|
|
200
|
+
| ------------------------- | ----------- |
|
|
201
|
+
| **Type** | `object` |
|
|
202
|
+
| **Required** | No |
|
|
203
|
+
| **Additional properties** | Not allowed |
|
|
151
204
|
|
|
152
|
-
|
|
205
|
+
**Description:** Declared WhatsApp template parameter with component placement (GH#46) and, for URL buttons, the configured URL pattern (GH#51).
|
|
206
|
+
|
|
207
|
+
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|
|
208
|
+
| --------------------------------------------------- | ------- | ---------------- | ---------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
209
|
+
| + [name](#parameters_items_name ) | No | string | No | - | Parameter name/placeholder (e.g. "1"). Matches a key in WhatsappOutboundMessage.template.variables. |
|
|
210
|
+
| + [component](#parameters_items_component ) | No | enum (of string) | No | In #/definitions/whatsapp-template-component | Which template component this parameter targets: header \| body \| button. |
|
|
211
|
+
| - [buttonIndex](#parameters_items_buttonIndex ) | No | integer | No | - | 0-based button position. Present only when component=button (Meta requires a string index at send time). |
|
|
212
|
+
| - [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. |
|
|
213
|
+
| - [buttonUrlBase](#parameters_items_buttonUrlBase ) | No | string | No | - | For component=button + buttonSubType=url: the template's configured button URL incl. the placeholder, e.g. "https://zahoui-review.web.app/\{\{1\}\}". Meta requires the variable at the URL end, so the supplied value is the suffix appended after the static prefix. Lets the dashboard display the resulting link (GH#51). |
|
|
214
|
+
|
|
215
|
+
#### <a name="parameters_items_name"></a>8.1.1. Property `name`
|
|
216
|
+
|
|
217
|
+
| | |
|
|
218
|
+
| ------------ | -------- |
|
|
219
|
+
| **Type** | `string` |
|
|
220
|
+
| **Required** | Yes |
|
|
221
|
+
|
|
222
|
+
**Description:** Parameter name/placeholder (e.g. "1"). Matches a key in WhatsappOutboundMessage.template.variables.
|
|
223
|
+
|
|
224
|
+
#### <a name="parameters_items_component"></a>8.1.2. Property `component`
|
|
225
|
+
|
|
226
|
+
| | |
|
|
227
|
+
| -------------- | ----------------------------------------- |
|
|
228
|
+
| **Type** | `enum (of string)` |
|
|
229
|
+
| **Required** | Yes |
|
|
230
|
+
| **Defined in** | #/definitions/whatsapp-template-component |
|
|
231
|
+
|
|
232
|
+
**Description:** Which template component this parameter targets: header | body | button.
|
|
233
|
+
|
|
234
|
+
Must be one of:
|
|
235
|
+
* "header"
|
|
236
|
+
* "body"
|
|
237
|
+
* "button"
|
|
238
|
+
|
|
239
|
+
#### <a name="parameters_items_buttonIndex"></a>8.1.3. Property `buttonIndex`
|
|
240
|
+
|
|
241
|
+
| | |
|
|
242
|
+
| ------------ | --------- |
|
|
243
|
+
| **Type** | `integer` |
|
|
244
|
+
| **Required** | No |
|
|
245
|
+
|
|
246
|
+
**Description:** 0-based button position. Present only when component=button (Meta requires a string index at send time).
|
|
247
|
+
|
|
248
|
+
| Restrictions | |
|
|
249
|
+
| ------------ | ---------------------- |
|
|
250
|
+
| **Minimum** | ≥ -9007199254740991 |
|
|
251
|
+
| **Maximum** | ≤ 9007199254740991 |
|
|
252
|
+
|
|
253
|
+
#### <a name="parameters_items_buttonSubType"></a>8.1.4. Property `buttonSubType`
|
|
254
|
+
|
|
255
|
+
| | |
|
|
256
|
+
| -------------- | -------------------------------------- |
|
|
257
|
+
| **Type** | `enum (of string)` |
|
|
258
|
+
| **Required** | No |
|
|
259
|
+
| **Defined in** | #/definitions/whatsapp-button-sub-type |
|
|
260
|
+
|
|
261
|
+
**Description:** Button sub-type (url | quick_reply). Present only when component=button.
|
|
262
|
+
|
|
263
|
+
Must be one of:
|
|
264
|
+
* "url"
|
|
265
|
+
* "quick_reply"
|
|
266
|
+
|
|
267
|
+
#### <a name="parameters_items_buttonUrlBase"></a>8.1.5. Property `buttonUrlBase`
|
|
153
268
|
|
|
154
269
|
| | |
|
|
155
270
|
| ------------ | -------- |
|
|
156
271
|
| **Type** | `string` |
|
|
157
272
|
| **Required** | No |
|
|
158
273
|
|
|
274
|
+
**Description:** For component=button + buttonSubType=url: the template's configured button URL incl. the placeholder, e.g. "https://zahoui-review.web.app/\{\{1\}\}". Meta requires the variable at the URL end, so the supplied value is the suffix appended after the static prefix. Lets the dashboard display the resulting link (GH#51).
|
|
275
|
+
|
|
159
276
|
:::warning Server-set
|
|
160
277
|
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
278
|
:::
|
|
162
279
|
|
|
163
|
-
## <a name="preview"></a>
|
|
280
|
+
## <a name="preview"></a>9. Property `preview`
|
|
164
281
|
|
|
165
282
|
| | |
|
|
166
283
|
| ------------ | -------- |
|
|
@@ -170,7 +287,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
170
287
|
**Description:** (Read-only) Rendered preview text for display in the dashboard picker.
|
|
171
288
|
|
|
172
289
|
----------------------------------------------------------------------------------------------------------------------------
|
|
173
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at
|
|
290
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-27 at 14:03:20 +0000
|
|
174
291
|
|
|
175
292
|
:::warning Server-set
|
|
176
293
|
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,40 @@ 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. |
|
|
1640
|
+
| parameters[].buttonUrlBase | string | no | For component=button + buttonSubType=url: the template's configured button URL incl. the placeholder, e.g. "https://zahoui-review.web.app/{{1}}". Meta requires the variable at the URL end, so the supplied value is the suffix appended after the static prefix. Lets the dashboard display the resulting link (GH#51). |
|
|
1626
1641
|
| preview | string | yes | (Read-only) Rendered preview text for display in the dashboard picker. |
|
|
1627
1642
|
|
|
1628
1643
|
Example:
|
|
1629
1644
|
```json
|
|
1630
1645
|
{
|
|
1631
1646
|
"id": null,
|
|
1647
|
+
"waba": "waba",
|
|
1648
|
+
"wabaId": "wab_ref123",
|
|
1632
1649
|
"name": "Amadou Diallo",
|
|
1633
1650
|
"language": "language",
|
|
1634
1651
|
"category": "category",
|
|
1635
1652
|
"status": "status",
|
|
1636
|
-
"
|
|
1637
|
-
|
|
1653
|
+
"parameters": [
|
|
1654
|
+
{
|
|
1655
|
+
"name": "Amadou Diallo",
|
|
1656
|
+
"component": "component"
|
|
1657
|
+
}
|
|
1638
1658
|
],
|
|
1639
1659
|
"preview": "preview"
|
|
1640
1660
|
}
|
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,66 @@ 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
|
+
buttonUrlBase:
|
|
4878
|
+
description: 'For component=button + buttonSubType=url: the template''s
|
|
4879
|
+
configured button URL incl. the placeholder, e.g. "https://zahoui-review.web.app/{{1}}".
|
|
4880
|
+
Meta requires the variable at the URL end, so the supplied value
|
|
4881
|
+
is the suffix appended after the static prefix. Lets the dashboard
|
|
4882
|
+
display the resulting link (GH#51).'
|
|
4883
|
+
type: string
|
|
4884
|
+
required:
|
|
4885
|
+
- name
|
|
4886
|
+
- component
|
|
4887
|
+
additionalProperties: false
|
|
4888
|
+
description: Declared WhatsApp template parameter with component placement
|
|
4889
|
+
(GH#46) and, for URL buttons, the configured URL pattern (GH#51).
|
|
4833
4890
|
readOnly: true
|
|
4834
|
-
description: (Read-only) Declared
|
|
4835
|
-
|
|
4891
|
+
description: (Read-only) Declared parameters with component placement. Supersedes
|
|
4892
|
+
the flat `variables` list (GH#46) — lets the send group values into the
|
|
4893
|
+
correct header/body/button components. A message supplies values keyed
|
|
4894
|
+
by `name` via WhatsappOutboundMessage.template.variables.
|
|
4836
4895
|
preview:
|
|
4837
4896
|
type: string
|
|
4838
4897
|
readOnly: true
|
|
4839
4898
|
description: (Read-only) Rendered preview text for display in the dashboard
|
|
4840
4899
|
picker.
|
|
4841
4900
|
required:
|
|
4901
|
+
- waba
|
|
4902
|
+
- wabaId
|
|
4842
4903
|
- name
|
|
4843
4904
|
- language
|
|
4844
4905
|
- category
|
|
4845
4906
|
- status
|
|
4846
|
-
-
|
|
4907
|
+
- parameters
|
|
4847
4908
|
- preview
|
|
4848
4909
|
additionalProperties: false
|
|
4849
4910
|
description: 'WhatsappTemplate — Meta-approved template synced from the WhatsApp
|
|
4850
|
-
Business API (GH#43). Collection: whatsapp_templates/{docId}
|
|
4851
|
-
|
|
4911
|
+
Business API (GH#43; parameter placement GH#46). Collection: whatsapp_templates/{docId},
|
|
4912
|
+
doc ID `{waba}__{name}__{language}`. WABA-scoped; backend-synced; dashboard
|
|
4913
|
+
reads only.'
|
|
4852
4914
|
PaymentSummary:
|
|
4853
4915
|
type: object
|
|
4854
4916
|
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-27T14:03:20.868899+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,43 @@
|
|
|
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
|
+
"buttonUrlBase": {
|
|
6123
|
+
"description": "For component=button + buttonSubType=url: the template's configured button URL incl. the placeholder, e.g. \"https://zahoui-review.web.app/{{1}}\". Meta requires the variable at the URL end, so the supplied value is the suffix appended after the static prefix. Lets the dashboard display the resulting link (GH#51).",
|
|
6124
|
+
"type": "string"
|
|
6125
|
+
}
|
|
6126
|
+
},
|
|
6127
|
+
"required": [
|
|
6128
|
+
"name",
|
|
6129
|
+
"component"
|
|
6130
|
+
],
|
|
6131
|
+
"additionalProperties": false,
|
|
6132
|
+
"description": "Declared WhatsApp template parameter with component placement (GH#46) and, for URL buttons, the configured URL pattern (GH#51)."
|
|
6085
6133
|
},
|
|
6086
6134
|
"readOnly": true,
|
|
6087
|
-
"description": "(Read-only) Declared
|
|
6135
|
+
"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
6136
|
},
|
|
6089
6137
|
"preview": {
|
|
6090
6138
|
"type": "string",
|
|
@@ -6093,27 +6141,43 @@
|
|
|
6093
6141
|
}
|
|
6094
6142
|
},
|
|
6095
6143
|
"required": [
|
|
6144
|
+
"waba",
|
|
6145
|
+
"wabaId",
|
|
6096
6146
|
"name",
|
|
6097
6147
|
"language",
|
|
6098
6148
|
"category",
|
|
6099
6149
|
"status",
|
|
6100
|
-
"
|
|
6150
|
+
"parameters",
|
|
6101
6151
|
"preview"
|
|
6102
6152
|
],
|
|
6103
6153
|
"additionalProperties": false,
|
|
6104
|
-
"description": "WhatsappTemplate \u2014 Meta-approved template synced from the WhatsApp Business API (GH#43). Collection: whatsapp_templates/{docId}
|
|
6154
|
+
"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
6155
|
"example": {
|
|
6106
6156
|
"id": null,
|
|
6157
|
+
"waba": "waba",
|
|
6158
|
+
"wabaId": "wab_ref123",
|
|
6107
6159
|
"name": "Amadou Diallo",
|
|
6108
6160
|
"language": "language",
|
|
6109
6161
|
"category": "category",
|
|
6110
6162
|
"status": "status",
|
|
6111
|
-
"
|
|
6112
|
-
|
|
6163
|
+
"parameters": [
|
|
6164
|
+
{
|
|
6165
|
+
"name": "Amadou Diallo",
|
|
6166
|
+
"component": "component"
|
|
6167
|
+
}
|
|
6113
6168
|
],
|
|
6114
6169
|
"preview": "preview"
|
|
6115
6170
|
}
|
|
6116
6171
|
},
|
|
6172
|
+
"whatsapp-template-component": {
|
|
6173
|
+
"type": "string",
|
|
6174
|
+
"enum": [
|
|
6175
|
+
"header",
|
|
6176
|
+
"body",
|
|
6177
|
+
"button"
|
|
6178
|
+
],
|
|
6179
|
+
"description": "WhatsApp template component a parameter targets. Determines which Meta `components` entry the supplied value is placed in at send time (GH#46)."
|
|
6180
|
+
},
|
|
6117
6181
|
"whatsapp-template-status": {
|
|
6118
6182
|
"type": "string",
|
|
6119
6183
|
"enum": [
|