@ingenx-io/valets-schema-mcp-server 0.2.7 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/data/docs/enums/app-status.md +1 -1
  2. package/data/docs/enums/attention-status.md +1 -1
  3. package/data/docs/enums/booking-status.md +1 -1
  4. package/data/docs/enums/contract-status.md +1 -1
  5. package/data/docs/enums/customer-payment-status.md +1 -1
  6. package/data/docs/enums/customer-payment-target-type.md +1 -1
  7. package/data/docs/enums/delivery-type.md +1 -1
  8. package/data/docs/enums/deployment-link-type.md +1 -1
  9. package/data/docs/enums/event-status.md +1 -1
  10. package/data/docs/enums/expense-payment-status.md +1 -1
  11. package/data/docs/enums/fulfillment-status.md +1 -1
  12. package/data/docs/enums/loyalty-transaction-type.md +1 -1
  13. package/data/docs/enums/milestone-status.md +1 -1
  14. package/data/docs/enums/notification-channel.md +1 -1
  15. package/data/docs/enums/notification-entity-type.md +1 -1
  16. package/data/docs/enums/notification-status.md +1 -1
  17. package/data/docs/enums/order-status.md +1 -1
  18. package/data/docs/enums/outbound-message-format.md +1 -1
  19. package/data/docs/enums/outbound-message-purpose.md +1 -1
  20. package/data/docs/enums/outbound-message-status.md +1 -1
  21. package/data/docs/enums/payment-method.md +1 -1
  22. package/data/docs/enums/payment-proof-status.md +1 -1
  23. package/data/docs/enums/payment-status.md +1 -1
  24. package/data/docs/enums/pending-issue.md +1 -1
  25. package/data/docs/enums/return-status.md +1 -1
  26. package/data/docs/enums/session-status.md +1 -1
  27. package/data/docs/enums/site-status.md +1 -1
  28. package/data/docs/enums/stocktake-frequency.md +1 -1
  29. package/data/docs/enums/stocktake-item-status.md +1 -1
  30. package/data/docs/enums/stocktake-status.md +1 -1
  31. package/data/docs/enums/ticket-status.md +1 -1
  32. package/data/docs/enums/waba-label.md +1 -1
  33. package/data/docs/enums/whatsapp-button-sub-type.md +1 -1
  34. package/data/docs/enums/whatsapp-template-component.md +1 -1
  35. package/data/docs/enums/whatsapp-template-status.md +1 -1
  36. package/data/docs/index.md +2 -2
  37. package/data/docs/models/allowed-user.md +1 -1
  38. package/data/docs/models/analytics-backfill.md +1 -1
  39. package/data/docs/models/analytics-daily.md +1 -1
  40. package/data/docs/models/analytics-event.md +1 -1
  41. package/data/docs/models/analytics-hourly.md +1 -1
  42. package/data/docs/models/app-payment.md +1 -1
  43. package/data/docs/models/app.md +1 -1
  44. package/data/docs/models/booking-version.md +1 -1
  45. package/data/docs/models/booking.md +1 -1
  46. package/data/docs/models/contract.md +1 -1
  47. package/data/docs/models/customer-payment-allocation.md +1 -1
  48. package/data/docs/models/customer-payment.md +1 -1
  49. package/data/docs/models/customer.md +1 -1
  50. package/data/docs/models/event.md +1 -1
  51. package/data/docs/models/expense.md +1 -1
  52. package/data/docs/models/loyalty-config.md +1 -1
  53. package/data/docs/models/loyalty-reward.md +1 -1
  54. package/data/docs/models/loyalty-status.md +1 -1
  55. package/data/docs/models/loyalty-transaction.md +1 -1
  56. package/data/docs/models/magic-link-request.md +1 -1
  57. package/data/docs/models/metrics-current.md +1 -1
  58. package/data/docs/models/metrics-daily.md +1 -1
  59. package/data/docs/models/metrics-monthly.md +1 -1
  60. package/data/docs/models/notification-record.md +67 -34
  61. package/data/docs/models/order-item.md +1 -1
  62. package/data/docs/models/order.md +1 -1
  63. package/data/docs/models/outbound-payment-allocation.md +1 -1
  64. package/data/docs/models/outbound-payment.md +1 -1
  65. package/data/docs/models/payment-webhook-delivery.md +1 -1
  66. package/data/docs/models/payment-webhook-endpoint.md +1 -1
  67. package/data/docs/models/sale.md +1 -1
  68. package/data/docs/models/site-payment.md +1 -1
  69. package/data/docs/models/site.md +1 -1
  70. package/data/docs/models/stocktake-item.md +1 -1
  71. package/data/docs/models/stocktake.md +1 -1
  72. package/data/docs/models/ticket.md +1 -1
  73. package/data/docs/models/user.md +1 -1
  74. package/data/docs/models/whatsapp-inbound-message.md +41 -17
  75. package/data/docs/models/whatsapp-outbound-lifecycle-event.md +1 -1
  76. package/data/docs/models/whatsapp-outbound-message.md +55 -31
  77. package/data/docs/models/whatsapp-template.md +1 -1
  78. package/data/static/llms.txt +13 -6
  79. package/data/static/openapi.yaml +74 -6
  80. package/data/static/schemas.json +48 -5
  81. package/package.json +1 -1
@@ -45,20 +45,23 @@ sidebar_position: 24
45
45
  - [5.1.1. to items](#recipients_to_items)
46
46
  - [5.1.1.1. Property `email`](#recipients_to_items_email)
47
47
  - [5.1.1.2. Property `phone`](#recipients_to_items_phone)
48
- - [5.1.1.3. Property `name`](#recipients_to_items_name)
49
- - [5.1.1.4. Property `role`](#recipients_to_items_role)
48
+ - [5.1.1.3. Property `contactE164`](#recipients_to_items_contactE164)
49
+ - [5.1.1.4. Property `name`](#recipients_to_items_name)
50
+ - [5.1.1.5. Property `role`](#recipients_to_items_role)
50
51
  - [5.2. Property `cc`](#recipients_cc)
51
52
  - [5.2.1. cc items](#recipients_cc_items)
52
53
  - [5.2.1.1. Property `email`](#recipients_cc_items_email)
53
54
  - [5.2.1.2. Property `phone`](#recipients_cc_items_phone)
54
- - [5.2.1.3. Property `name`](#recipients_cc_items_name)
55
- - [5.2.1.4. Property `role`](#recipients_cc_items_role)
55
+ - [5.2.1.3. Property `contactE164`](#recipients_cc_items_contactE164)
56
+ - [5.2.1.4. Property `name`](#recipients_cc_items_name)
57
+ - [5.2.1.5. Property `role`](#recipients_cc_items_role)
56
58
  - [5.3. Property `bcc`](#recipients_bcc)
57
59
  - [5.3.1. bcc items](#recipients_bcc_items)
58
60
  - [5.3.1.1. Property `email`](#recipients_bcc_items_email)
59
61
  - [5.3.1.2. Property `phone`](#recipients_bcc_items_phone)
60
- - [5.3.1.3. Property `name`](#recipients_bcc_items_name)
61
- - [5.3.1.4. Property `role`](#recipients_bcc_items_role)
62
+ - [5.3.1.3. Property `contactE164`](#recipients_bcc_items_contactE164)
63
+ - [5.3.1.4. Property `name`](#recipients_bcc_items_name)
64
+ - [5.3.1.5. Property `role`](#recipients_bcc_items_role)
62
65
  - [6. Property `relatedEntity`](#relatedEntity)
63
66
  - [6.1. Property `type`](#relatedEntity_type)
64
67
  - [6.2. Property `id`](#relatedEntity_id)
@@ -211,12 +214,13 @@ Do not include in write requests. This field is set exclusively by the server (F
211
214
 
212
215
  **Description:** A notification recipient (GH#48).
213
216
 
214
- | Property | Pattern | Type | Deprecated | Definition | Title/Description |
215
- | -------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------------- |
216
- | - [email](#recipients_to_items_email ) | No | string | No | - | Recipient email address. Present for email notifications. |
217
- | - [phone](#recipients_to_items_phone ) | No | string | No | - | Recipient phone number (E.164). Present for whatsapp/sms notifications. |
218
- | - [name](#recipients_to_items_name ) | No | string | No | - | Recipient display name. |
219
- | - [role](#recipients_to_items_role ) | No | string | No | - | Recipient role (e.g. organizer, customer). |
217
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
218
+ | -------------------------------------------------- | ------- | ------ | ---------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- |
219
+ | - [email](#recipients_to_items_email ) | No | string | No | - | Recipient email address. Present for email notifications. |
220
+ | - [phone](#recipients_to_items_phone ) | No | string | No | - | Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications. |
221
+ | - [contactE164](#recipients_to_items_contactE164 ) | No | string | No | - | (Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56). |
222
+ | - [name](#recipients_to_items_name ) | No | string | No | - | Recipient display name. |
223
+ | - [role](#recipients_to_items_role ) | No | string | No | - | Recipient role (e.g. organizer, customer). |
220
224
 
221
225
  ##### <a name="recipients_to_items_email"></a>5.1.1.1. Property `email`
222
226
 
@@ -234,9 +238,18 @@ Do not include in write requests. This field is set exclusively by the server (F
234
238
  | **Type** | `string` |
235
239
  | **Required** | No |
236
240
 
237
- **Description:** Recipient phone number (E.164). Present for whatsapp/sms notifications.
241
+ **Description:** Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications.
238
242
 
239
- ##### <a name="recipients_to_items_name"></a>5.1.1.3. Property `name`
243
+ ##### <a name="recipients_to_items_contactE164"></a>5.1.1.3. Property `contactE164`
244
+
245
+ | | |
246
+ | ------------ | -------- |
247
+ | **Type** | `string` |
248
+ | **Required** | No |
249
+
250
+ **Description:** (Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56).
251
+
252
+ ##### <a name="recipients_to_items_name"></a>5.1.1.4. Property `name`
240
253
 
241
254
  | | |
242
255
  | ------------ | -------- |
@@ -245,7 +258,7 @@ Do not include in write requests. This field is set exclusively by the server (F
245
258
 
246
259
  **Description:** Recipient display name.
247
260
 
248
- ##### <a name="recipients_to_items_role"></a>5.1.1.4. Property `role`
261
+ ##### <a name="recipients_to_items_role"></a>5.1.1.5. Property `role`
249
262
 
250
263
  | | |
251
264
  | ------------ | -------- |
@@ -285,12 +298,13 @@ Do not include in write requests. This field is set exclusively by the server (F
285
298
 
286
299
  **Description:** A notification recipient (GH#48).
287
300
 
288
- | Property | Pattern | Type | Deprecated | Definition | Title/Description |
289
- | -------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------------- |
290
- | - [email](#recipients_cc_items_email ) | No | string | No | - | Recipient email address. Present for email notifications. |
291
- | - [phone](#recipients_cc_items_phone ) | No | string | No | - | Recipient phone number (E.164). Present for whatsapp/sms notifications. |
292
- | - [name](#recipients_cc_items_name ) | No | string | No | - | Recipient display name. |
293
- | - [role](#recipients_cc_items_role ) | No | string | No | - | Recipient role (e.g. organizer, customer). |
301
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
302
+ | -------------------------------------------------- | ------- | ------ | ---------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- |
303
+ | - [email](#recipients_cc_items_email ) | No | string | No | - | Recipient email address. Present for email notifications. |
304
+ | - [phone](#recipients_cc_items_phone ) | No | string | No | - | Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications. |
305
+ | - [contactE164](#recipients_cc_items_contactE164 ) | No | string | No | - | (Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56). |
306
+ | - [name](#recipients_cc_items_name ) | No | string | No | - | Recipient display name. |
307
+ | - [role](#recipients_cc_items_role ) | No | string | No | - | Recipient role (e.g. organizer, customer). |
294
308
 
295
309
  ##### <a name="recipients_cc_items_email"></a>5.2.1.1. Property `email`
296
310
 
@@ -308,9 +322,18 @@ Do not include in write requests. This field is set exclusively by the server (F
308
322
  | **Type** | `string` |
309
323
  | **Required** | No |
310
324
 
311
- **Description:** Recipient phone number (E.164). Present for whatsapp/sms notifications.
325
+ **Description:** Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications.
312
326
 
313
- ##### <a name="recipients_cc_items_name"></a>5.2.1.3. Property `name`
327
+ ##### <a name="recipients_cc_items_contactE164"></a>5.2.1.3. Property `contactE164`
328
+
329
+ | | |
330
+ | ------------ | -------- |
331
+ | **Type** | `string` |
332
+ | **Required** | No |
333
+
334
+ **Description:** (Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56).
335
+
336
+ ##### <a name="recipients_cc_items_name"></a>5.2.1.4. Property `name`
314
337
 
315
338
  | | |
316
339
  | ------------ | -------- |
@@ -319,7 +342,7 @@ Do not include in write requests. This field is set exclusively by the server (F
319
342
 
320
343
  **Description:** Recipient display name.
321
344
 
322
- ##### <a name="recipients_cc_items_role"></a>5.2.1.4. Property `role`
345
+ ##### <a name="recipients_cc_items_role"></a>5.2.1.5. Property `role`
323
346
 
324
347
  | | |
325
348
  | ------------ | -------- |
@@ -359,12 +382,13 @@ Do not include in write requests. This field is set exclusively by the server (F
359
382
 
360
383
  **Description:** A notification recipient (GH#48).
361
384
 
362
- | Property | Pattern | Type | Deprecated | Definition | Title/Description |
363
- | --------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------------- |
364
- | - [email](#recipients_bcc_items_email ) | No | string | No | - | Recipient email address. Present for email notifications. |
365
- | - [phone](#recipients_bcc_items_phone ) | No | string | No | - | Recipient phone number (E.164). Present for whatsapp/sms notifications. |
366
- | - [name](#recipients_bcc_items_name ) | No | string | No | - | Recipient display name. |
367
- | - [role](#recipients_bcc_items_role ) | No | string | No | - | Recipient role (e.g. organizer, customer). |
385
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
386
+ | --------------------------------------------------- | ------- | ------ | ---------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- |
387
+ | - [email](#recipients_bcc_items_email ) | No | string | No | - | Recipient email address. Present for email notifications. |
388
+ | - [phone](#recipients_bcc_items_phone ) | No | string | No | - | Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications. |
389
+ | - [contactE164](#recipients_bcc_items_contactE164 ) | No | string | No | - | (Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56). |
390
+ | - [name](#recipients_bcc_items_name ) | No | string | No | - | Recipient display name. |
391
+ | - [role](#recipients_bcc_items_role ) | No | string | No | - | Recipient role (e.g. organizer, customer). |
368
392
 
369
393
  ##### <a name="recipients_bcc_items_email"></a>5.3.1.1. Property `email`
370
394
 
@@ -382,9 +406,18 @@ Do not include in write requests. This field is set exclusively by the server (F
382
406
  | **Type** | `string` |
383
407
  | **Required** | No |
384
408
 
385
- **Description:** Recipient phone number (E.164). Present for whatsapp/sms notifications.
409
+ **Description:** Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications.
410
+
411
+ ##### <a name="recipients_bcc_items_contactE164"></a>5.3.1.3. Property `contactE164`
412
+
413
+ | | |
414
+ | ------------ | -------- |
415
+ | **Type** | `string` |
416
+ | **Required** | No |
417
+
418
+ **Description:** (Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56).
386
419
 
387
- ##### <a name="recipients_bcc_items_name"></a>5.3.1.3. Property `name`
420
+ ##### <a name="recipients_bcc_items_name"></a>5.3.1.4. Property `name`
388
421
 
389
422
  | | |
390
423
  | ------------ | -------- |
@@ -393,7 +426,7 @@ Do not include in write requests. This field is set exclusively by the server (F
393
426
 
394
427
  **Description:** Recipient display name.
395
428
 
396
- ##### <a name="recipients_bcc_items_role"></a>5.3.1.4. Property `role`
429
+ ##### <a name="recipients_bcc_items_role"></a>5.3.1.5. Property `role`
397
430
 
398
431
  | | |
399
432
  | ------------ | -------- |
@@ -612,7 +645,7 @@ Do not include in write requests. This field is set exclusively by the server (F
612
645
  | **Maximum** | &le; 9007199254740991 |
613
646
 
614
647
  ----------------------------------------------------------------------------------------------------------------------------
615
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
648
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
616
649
 
617
650
  :::warning Server-set
618
651
  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.
@@ -350,7 +350,7 @@ TBD/WIP — Originally from the archived Couchbase Lite (CBL) restaurant flow. C
350
350
  | **Required** | No |
351
351
 
352
352
  ----------------------------------------------------------------------------------------------------------------------------
353
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
353
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
354
354
 
355
355
  :::warning Server-set
356
356
  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.
@@ -1673,7 +1673,7 @@ Set only by the mobile app when the user manually edits the order total. Dashboa
1673
1673
  **Description:** FK → Sale.id. Link to associated Sale document.
1674
1674
 
1675
1675
  ----------------------------------------------------------------------------------------------------------------------------
1676
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:28 +0000
1676
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
1677
1677
 
1678
1678
  ## Related Decisions
1679
1679
 
@@ -188,7 +188,7 @@ Set at creation only. This field cannot be modified after the document is create
188
188
  | **Required** | No |
189
189
 
190
190
  ----------------------------------------------------------------------------------------------------------------------------
191
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
191
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
192
192
 
193
193
  :::warning Server-set
194
194
  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.
@@ -312,7 +312,7 @@ Do not include in write requests. This field is set exclusively by the server (F
312
312
  | **Required** | No |
313
313
 
314
314
  ----------------------------------------------------------------------------------------------------------------------------
315
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
315
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
316
316
 
317
317
  :::warning Server-set
318
318
  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.
@@ -318,4 +318,4 @@ Request headers including provider signature (e.g. "jeko-signature") and tracing
318
318
  | **Maximum** | &le; 9007199254740991 |
319
319
 
320
320
  ----------------------------------------------------------------------------------------------------------------------------
321
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
321
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
@@ -184,7 +184,7 @@ Provider-specific webhook signing secret. Used to verify HMAC-SHA256 signatures
184
184
  | **Required** | No |
185
185
 
186
186
  ----------------------------------------------------------------------------------------------------------------------------
187
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
187
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
188
188
 
189
189
  :::warning Server-set
190
190
  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.
@@ -524,7 +524,7 @@ Set at creation only. This field cannot be modified after the document is create
524
524
  | **Required** | No |
525
525
 
526
526
  ----------------------------------------------------------------------------------------------------------------------------
527
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
527
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
528
528
 
529
529
  :::warning Server-set
530
530
  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.
@@ -197,4 +197,4 @@ Set at creation only. This field cannot be modified after the document is create
197
197
  | **Maximum** | &le; 9007199254740991 |
198
198
 
199
199
  ----------------------------------------------------------------------------------------------------------------------------
200
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
200
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
@@ -546,7 +546,7 @@ Do not include in write requests. This field is set exclusively by the server (F
546
546
  **Description:** Timestamp of the most recent analytics event seen for this site.
547
547
 
548
548
  ----------------------------------------------------------------------------------------------------------------------------
549
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
549
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:10 +0000
550
550
 
551
551
  :::warning Server-set
552
552
  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.
@@ -497,4 +497,4 @@ Read-time hint snapshot of the verifier's display name (GH#29 §3 / Q10).
497
497
  | **Required** | No |
498
498
 
499
499
  ----------------------------------------------------------------------------------------------------------------------------
500
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
500
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
@@ -642,7 +642,7 @@ Read-time hint snapshot of the completer's display name (GH#29 §3 / Q10).
642
642
  | **Required** | No |
643
643
 
644
644
  ----------------------------------------------------------------------------------------------------------------------------
645
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
645
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
646
646
 
647
647
  :::warning Server-set
648
648
  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.
@@ -388,7 +388,7 @@ Do not include in write requests. This field is set exclusively by the server (F
388
388
  **Description:** (Immutable) FK → User/staff UID who created this ticket.
389
389
 
390
390
  ----------------------------------------------------------------------------------------------------------------------------
391
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
391
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
392
392
 
393
393
  :::info Immutable
394
394
  Set at creation only. This field cannot be modified after the document is created. Include it in CREATE payloads; omit it (or leave unchanged) in UPDATE payloads.
@@ -242,7 +242,7 @@ Do not include in write requests. This field is set exclusively by the server (F
242
242
  | **Required** | No |
243
243
 
244
244
  ----------------------------------------------------------------------------------------------------------------------------
245
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
245
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
246
246
 
247
247
  :::warning Server-set
248
248
  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.
@@ -23,7 +23,8 @@ sidebar_position: 38
23
23
  "mediaId": null,
24
24
  "caption": null,
25
25
  "storageUrl": null,
26
- "context": null
26
+ "context": null,
27
+ "contactE164": null
27
28
  }
28
29
  ```
29
30
 
@@ -52,6 +53,7 @@ sidebar_position: 38
52
53
  - [13.1. Property `id`](#context_id)
53
54
  - [13.2. Property `from`](#context_from)
54
55
  - [13.3. Property `forwarded`](#context_forwarded)
56
+ - [14. Property `contactE164`](#contactE164)
55
57
 
56
58
  | | |
57
59
  | ------------------------- | -------------------------------------- |
@@ -62,21 +64,22 @@ sidebar_position: 38
62
64
 
63
65
  **Description:** WhatsappInboundMessage — inbound WhatsApp message persisted from Meta Cloud API webhook (GH#36). Collection: whatsapp_inbound_messages/\{docId\}. Top-level scope: company resolution happens post-ingestion.
64
66
 
65
- | Property | Pattern | Type | Deprecated | Definition | Title/Description |
66
- | ---------------------------- | ------- | ---------------- | ---------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
67
- | - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID — wamid from Meta Cloud API. |
68
- | + [wabaId](#wabaId ) | No | string | No | - | (Immutable) Meta WABA ID identifying which business number received the message. |
69
- | + [waba](#waba ) | No | enum (of string) | No | In #/definitions/waba-label | (Immutable) Human-readable WABA label (cmz \| val). See WabaLabel enum. |
70
- | + [messageId](#messageId ) | No | string | No | - | (Immutable) WhatsApp message ID (wamid) returned by Meta — mirrors the document ID. |
71
- | + [from](#from ) | No | string | No | - | (Immutable) Sender phone number in E.164 format. |
72
- | + [type](#type ) | No | Combination | No | - | (Immutable) Meta message type. |
73
- | + [timestamp](#timestamp ) | No | object | No | In #/definitions/firestore-timestamp | (Immutable) Message timestamp as reported by Meta. |
74
- | + [receivedAt](#receivedAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Server-side ingestion timestamp. |
75
- | - [text](#text ) | No | string or null | No | - | Message body text. Present on type=text messages only. |
76
- | - [mediaId](#mediaId ) | No | string or null | No | - | Meta media ID. Present on image, audio, video, document, sticker messages. |
77
- | - [caption](#caption ) | No | string or null | No | - | Media caption text. Present when the sender included a caption. |
78
- | - [storageUrl](#storageUrl ) | No | string or null | No | - | Durable Cloud Storage URL for the downloaded media binary. Present after the media has been fetched and stored server-side. |
79
- | - [context](#context ) | No | object or null | No | - | Reply/forward context. Present on replies and forwarded messages. |
67
+ | Property | Pattern | Type | Deprecated | Definition | Title/Description |
68
+ | ------------------------------ | ------- | ---------------- | ---------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
69
+ | - [id](#id ) | No | string or null | No | - | (Read-only) Firestore document ID — wamid from Meta Cloud API. |
70
+ | + [wabaId](#wabaId ) | No | string | No | - | (Immutable) Meta WABA ID identifying which business number received the message. |
71
+ | + [waba](#waba ) | No | enum (of string) | No | In #/definitions/waba-label | (Immutable) Human-readable WABA label (cmz \| val). See WabaLabel enum. |
72
+ | + [messageId](#messageId ) | No | string | No | - | (Immutable) WhatsApp message ID (wamid) returned by Meta — mirrors the document ID. |
73
+ | + [from](#from ) | No | string | No | - | (Immutable) Sender phone number in E.164 format. |
74
+ | + [type](#type ) | No | Combination | No | - | (Immutable) Meta message type. |
75
+ | + [timestamp](#timestamp ) | No | object | No | In #/definitions/firestore-timestamp | (Immutable) Message timestamp as reported by Meta. |
76
+ | + [receivedAt](#receivedAt ) | No | object | No | In #/definitions/firestore-timestamp | (Read-only) Server-side ingestion timestamp. |
77
+ | - [text](#text ) | No | string or null | No | - | Message body text. Present on type=text messages only. |
78
+ | - [mediaId](#mediaId ) | No | string or null | No | - | Meta media ID. Present on image, audio, video, document, sticker messages. |
79
+ | - [caption](#caption ) | No | string or null | No | - | Media caption text. Present when the sender included a caption. |
80
+ | - [storageUrl](#storageUrl ) | No | string or null | No | - | Durable Cloud Storage URL for the downloaded media binary. Present after the media has been fetched and stored server-side. |
81
+ | - [context](#context ) | No | object or null | No | - | Reply/forward context. Present on replies and forwarded messages. |
82
+ | - [contactE164](#contactE164 ) | No | string or null | No | - | (Read-only) E.164-normalized sender phone (e.g. +2250777471485). Canonical join key (#56). Populated by the backend; absent on pre-migration docs. |
80
83
 
81
84
  ## <a name="id"></a>1. Property `id`
82
85
 
@@ -369,5 +372,26 @@ Do not include in write requests. This field is set exclusively by the server (F
369
372
 
370
373
  Specific value: `true`
371
374
 
375
+ ## <a name="contactE164"></a>14. Property `contactE164`
376
+
377
+ | | |
378
+ | ------------ | ---------------- |
379
+ | **Type** | `string or null` |
380
+ | **Required** | No |
381
+
382
+ **Description:** (Read-only) E.164-normalized sender phone (e.g. +2250777471485). Canonical join key (#56). Populated by the backend; absent on pre-migration docs.
383
+
372
384
  ----------------------------------------------------------------------------------------------------------------------------
373
- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 13:57:29 +0000
385
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
386
+
387
+ :::warning Server-set
388
+ 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.
389
+ :::
390
+
391
+ :::note
392
+ E.164-normalized form of `from` (wa_id). Canonical join key across WhatsappInboundMessage, WhatsappOutboundMessage, and NotificationRecord. Use this for conversation threading, search, and cross-collection joins — not the raw `from` wa_id (#56).
393
+ :::
394
+
395
+ :::tip When to set
396
+ Populated by whatsapp-server on every new inbound doc. Absent on pre-#56 docs until the backfill migration runs. CI normalization: wa_id 22577471485 → +2250777471485 (insert trunk 0 after country code for 8-digit numbers in the 07/05/01 series that predate the 2014 10-digit migration).
397
+ :::
@@ -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-30 at 13:57:29 +0000
306
+ Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +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.