@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.
- package/data/docs/enums/app-status.md +1 -1
- package/data/docs/enums/attention-status.md +1 -1
- package/data/docs/enums/booking-status.md +1 -1
- package/data/docs/enums/contract-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/expense-payment-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/milestone-status.md +1 -1
- package/data/docs/enums/notification-channel.md +1 -1
- package/data/docs/enums/notification-entity-type.md +1 -1
- package/data/docs/enums/notification-status.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 +1 -1
- package/data/docs/enums/whatsapp-template-component.md +1 -1
- package/data/docs/enums/whatsapp-template-status.md +1 -1
- package/data/docs/index.md +2 -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/app-payment.md +1 -1
- package/data/docs/models/app.md +1 -1
- package/data/docs/models/booking-version.md +1 -1
- package/data/docs/models/booking.md +1 -1
- package/data/docs/models/contract.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/expense.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/notification-record.md +67 -34
- package/data/docs/models/order-item.md +1 -1
- package/data/docs/models/order.md +1 -1
- package/data/docs/models/outbound-payment-allocation.md +1 -1
- package/data/docs/models/outbound-payment.md +1 -1
- package/data/docs/models/payment-webhook-delivery.md +1 -1
- package/data/docs/models/payment-webhook-endpoint.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/user.md +1 -1
- package/data/docs/models/whatsapp-inbound-message.md +41 -17
- package/data/docs/models/whatsapp-outbound-lifecycle-event.md +1 -1
- package/data/docs/models/whatsapp-outbound-message.md +55 -31
- package/data/docs/models/whatsapp-template.md +1 -1
- package/data/static/llms.txt +13 -6
- package/data/static/openapi.yaml +74 -6
- package/data/static/schemas.json +48 -5
- package/package.json +1 -1
|
@@ -24,6 +24,7 @@ sidebar_position: 40
|
|
|
24
24
|
"uid": "user_u8x92kqm"
|
|
25
25
|
},
|
|
26
26
|
"createdAt": "createdAt",
|
|
27
|
+
"contactE164": null,
|
|
27
28
|
"status": "status",
|
|
28
29
|
"wamid": null,
|
|
29
30
|
"error": null,
|
|
@@ -58,21 +59,22 @@ sidebar_position: 40
|
|
|
58
59
|
- [11. Property `createdAt`](#createdAt)
|
|
59
60
|
- [11.1. Property `_seconds`](#createdAt__seconds)
|
|
60
61
|
- [11.2. Property `_nanoseconds`](#createdAt__nanoseconds)
|
|
61
|
-
- [12. Property `
|
|
62
|
-
- [13. Property `
|
|
63
|
-
- [14. Property `
|
|
64
|
-
- [15. Property `
|
|
65
|
-
|
|
66
|
-
- [
|
|
67
|
-
- [16. Property `
|
|
68
|
-
|
|
69
|
-
- [
|
|
70
|
-
- [17. Property `
|
|
71
|
-
|
|
72
|
-
- [
|
|
73
|
-
- [18. Property `
|
|
74
|
-
|
|
75
|
-
- [
|
|
62
|
+
- [12. Property `contactE164`](#contactE164)
|
|
63
|
+
- [13. Property `status`](#status)
|
|
64
|
+
- [14. Property `wamid`](#wamid)
|
|
65
|
+
- [15. Property `error`](#error)
|
|
66
|
+
- [16. Property `sentAt`](#sentAt)
|
|
67
|
+
- [16.1. Property `firestore-timestamp`](#sentAt_anyOf_i0)
|
|
68
|
+
- [16.2. Property `item 1`](#sentAt_anyOf_i1)
|
|
69
|
+
- [17. Property `deliveredAt`](#deliveredAt)
|
|
70
|
+
- [17.1. Property `firestore-timestamp`](#deliveredAt_anyOf_i0)
|
|
71
|
+
- [17.2. Property `item 1`](#deliveredAt_anyOf_i1)
|
|
72
|
+
- [18. Property `readAt`](#readAt)
|
|
73
|
+
- [18.1. Property `firestore-timestamp`](#readAt_anyOf_i0)
|
|
74
|
+
- [18.2. Property `item 1`](#readAt_anyOf_i1)
|
|
75
|
+
- [19. Property `failedAt`](#failedAt)
|
|
76
|
+
- [19.1. Property `firestore-timestamp`](#failedAt_anyOf_i0)
|
|
77
|
+
- [19.2. Property `item 1`](#failedAt_anyOf_i1)
|
|
76
78
|
|
|
77
79
|
| | |
|
|
78
80
|
| ------------------------- | --------------------------------------- |
|
|
@@ -96,6 +98,7 @@ sidebar_position: 40
|
|
|
96
98
|
| - [orderUuid](#orderUuid ) | No | string or null | No | - | Order reference. Present on review_request messages. |
|
|
97
99
|
| + [sentBy](#sentBy ) | No | object | No | - | (Immutable) Dashboard actor who enqueued the message. |
|
|
98
100
|
| + [createdAt](#createdAt ) | No | object | No | In #/definitions/firestore-timestamp | (Immutable) Enqueue timestamp, set by the dashboard at create. |
|
|
101
|
+
| - [contactE164](#contactE164 ) | No | string or null | No | - | (Read-only) E.164-normalized recipient phone (e.g. +2250777471485). Canonical join key (#56). Populated by the backend; absent on pre-migration docs. |
|
|
99
102
|
| + [status](#status ) | No | enum (of string) | No | In #/definitions/outbound-message-status | Delivery status. Created as \`queued\` by the dashboard; updated in place by the backend. |
|
|
100
103
|
| - [wamid](#wamid ) | No | string or null | No | - | (Read-only) WhatsApp message ID returned by Meta once the backend sends. Absent while queued or on failure. |
|
|
101
104
|
| - [error](#error ) | No | string or null | No | - | (Read-only) Human-readable failure reason. Present on status=failed. Raw Meta error detail lives in the lifecycle_events subcollection. |
|
|
@@ -402,7 +405,28 @@ Set at creation only. This field cannot be modified after the document is create
|
|
|
402
405
|
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.
|
|
403
406
|
:::
|
|
404
407
|
|
|
405
|
-
## <a name="
|
|
408
|
+
## <a name="contactE164"></a>12. Property `contactE164`
|
|
409
|
+
|
|
410
|
+
| | |
|
|
411
|
+
| ------------ | ---------------- |
|
|
412
|
+
| **Type** | `string or null` |
|
|
413
|
+
| **Required** | No |
|
|
414
|
+
|
|
415
|
+
**Description:** (Read-only) E.164-normalized recipient phone (e.g. +2250777471485). Canonical join key (#56). Populated by the backend; absent on pre-migration docs.
|
|
416
|
+
|
|
417
|
+
:::warning Server-set
|
|
418
|
+
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.
|
|
419
|
+
:::
|
|
420
|
+
|
|
421
|
+
:::note
|
|
422
|
+
E.164-normalized form of `to` (wa_id). Canonical join key across WhatsappOutboundMessage, WhatsappInboundMessage, and NotificationRecord. Use this for conversation threading, search, and cross-collection joins — not the raw `to` wa_id (#56).
|
|
423
|
+
:::
|
|
424
|
+
|
|
425
|
+
:::tip When to set
|
|
426
|
+
Populated by whatsapp-server on every new outbound 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).
|
|
427
|
+
:::
|
|
428
|
+
|
|
429
|
+
## <a name="status"></a>13. Property `status`
|
|
406
430
|
|
|
407
431
|
| | |
|
|
408
432
|
| -------------- | ------------------------------------- |
|
|
@@ -423,7 +447,7 @@ Must be one of:
|
|
|
423
447
|
Dashboard must create with `queued`. The backend owns every transition after (sent → delivered → read, or failed).
|
|
424
448
|
:::
|
|
425
449
|
|
|
426
|
-
## <a name="wamid"></a>
|
|
450
|
+
## <a name="wamid"></a>14. Property `wamid`
|
|
427
451
|
|
|
428
452
|
| | |
|
|
429
453
|
| ------------ | ---------------- |
|
|
@@ -440,7 +464,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
440
464
|
Useful for audit and dedup. Does NOT enable reply-threading for template messages — Meta silently ignores context.message_id on templates. Threading only works for kind=text within the 24-hour service window (#50).
|
|
441
465
|
:::
|
|
442
466
|
|
|
443
|
-
## <a name="error"></a>
|
|
467
|
+
## <a name="error"></a>15. Property `error`
|
|
444
468
|
|
|
445
469
|
| | |
|
|
446
470
|
| ------------ | ---------------- |
|
|
@@ -453,7 +477,7 @@ Useful for audit and dedup. Does NOT enable reply-threading for template message
|
|
|
453
477
|
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.
|
|
454
478
|
:::
|
|
455
479
|
|
|
456
|
-
## <a name="sentAt"></a>
|
|
480
|
+
## <a name="sentAt"></a>16. Property `sentAt`
|
|
457
481
|
|
|
458
482
|
| | |
|
|
459
483
|
| ------------------------- | ---------------- |
|
|
@@ -468,7 +492,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
468
492
|
| [firestore-timestamp](#sentAt_anyOf_i0) |
|
|
469
493
|
| [item 1](#sentAt_anyOf_i1) |
|
|
470
494
|
|
|
471
|
-
### <a name="sentAt_anyOf_i0"></a>
|
|
495
|
+
### <a name="sentAt_anyOf_i0"></a>16.1. Property `firestore-timestamp`
|
|
472
496
|
|
|
473
497
|
| | |
|
|
474
498
|
| ------------------------- | ----------------------- |
|
|
@@ -479,7 +503,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
479
503
|
|
|
480
504
|
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
481
505
|
|
|
482
|
-
### <a name="sentAt_anyOf_i1"></a>
|
|
506
|
+
### <a name="sentAt_anyOf_i1"></a>16.2. Property `item 1`
|
|
483
507
|
|
|
484
508
|
| | |
|
|
485
509
|
| ------------ | ------ |
|
|
@@ -490,7 +514,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
490
514
|
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.
|
|
491
515
|
:::
|
|
492
516
|
|
|
493
|
-
## <a name="deliveredAt"></a>
|
|
517
|
+
## <a name="deliveredAt"></a>17. Property `deliveredAt`
|
|
494
518
|
|
|
495
519
|
| | |
|
|
496
520
|
| ------------------------- | ---------------- |
|
|
@@ -505,7 +529,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
505
529
|
| [firestore-timestamp](#deliveredAt_anyOf_i0) |
|
|
506
530
|
| [item 1](#deliveredAt_anyOf_i1) |
|
|
507
531
|
|
|
508
|
-
### <a name="deliveredAt_anyOf_i0"></a>
|
|
532
|
+
### <a name="deliveredAt_anyOf_i0"></a>17.1. Property `firestore-timestamp`
|
|
509
533
|
|
|
510
534
|
| | |
|
|
511
535
|
| ------------------------- | ----------------------- |
|
|
@@ -516,7 +540,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
516
540
|
|
|
517
541
|
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
518
542
|
|
|
519
|
-
### <a name="deliveredAt_anyOf_i1"></a>
|
|
543
|
+
### <a name="deliveredAt_anyOf_i1"></a>17.2. Property `item 1`
|
|
520
544
|
|
|
521
545
|
| | |
|
|
522
546
|
| ------------ | ------ |
|
|
@@ -527,7 +551,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
527
551
|
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.
|
|
528
552
|
:::
|
|
529
553
|
|
|
530
|
-
## <a name="readAt"></a>
|
|
554
|
+
## <a name="readAt"></a>18. Property `readAt`
|
|
531
555
|
|
|
532
556
|
| | |
|
|
533
557
|
| ------------------------- | ---------------- |
|
|
@@ -542,7 +566,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
542
566
|
| [firestore-timestamp](#readAt_anyOf_i0) |
|
|
543
567
|
| [item 1](#readAt_anyOf_i1) |
|
|
544
568
|
|
|
545
|
-
### <a name="readAt_anyOf_i0"></a>
|
|
569
|
+
### <a name="readAt_anyOf_i0"></a>18.1. Property `firestore-timestamp`
|
|
546
570
|
|
|
547
571
|
| | |
|
|
548
572
|
| ------------------------- | ----------------------- |
|
|
@@ -553,7 +577,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
553
577
|
|
|
554
578
|
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
555
579
|
|
|
556
|
-
### <a name="readAt_anyOf_i1"></a>
|
|
580
|
+
### <a name="readAt_anyOf_i1"></a>18.2. Property `item 1`
|
|
557
581
|
|
|
558
582
|
| | |
|
|
559
583
|
| ------------ | ------ |
|
|
@@ -564,7 +588,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
564
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.
|
|
565
589
|
:::
|
|
566
590
|
|
|
567
|
-
## <a name="failedAt"></a>
|
|
591
|
+
## <a name="failedAt"></a>19. Property `failedAt`
|
|
568
592
|
|
|
569
593
|
| | |
|
|
570
594
|
| ------------------------- | ---------------- |
|
|
@@ -579,7 +603,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
579
603
|
| [firestore-timestamp](#failedAt_anyOf_i0) |
|
|
580
604
|
| [item 1](#failedAt_anyOf_i1) |
|
|
581
605
|
|
|
582
|
-
### <a name="failedAt_anyOf_i0"></a>
|
|
606
|
+
### <a name="failedAt_anyOf_i0"></a>19.1. Property `firestore-timestamp`
|
|
583
607
|
|
|
584
608
|
| | |
|
|
585
609
|
| ------------------------- | ----------------------- |
|
|
@@ -590,7 +614,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
590
614
|
|
|
591
615
|
**Description:** Firestore Timestamp — Admin SDK form: \{ _seconds, _nanoseconds \}. See types/firestore.ts for REST API v1 and client SDK serialization notes (#10).
|
|
592
616
|
|
|
593
|
-
### <a name="failedAt_anyOf_i1"></a>
|
|
617
|
+
### <a name="failedAt_anyOf_i1"></a>19.2. Property `item 1`
|
|
594
618
|
|
|
595
619
|
| | |
|
|
596
620
|
| ------------ | ------ |
|
|
@@ -598,7 +622,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
598
622
|
| **Required** | No |
|
|
599
623
|
|
|
600
624
|
----------------------------------------------------------------------------------------------------------------------------
|
|
601
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
625
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
|
|
602
626
|
|
|
603
627
|
:::warning Server-set
|
|
604
628
|
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.
|
|
@@ -291,7 +291,7 @@ Do not include in write requests. This field is set exclusively by the server (F
|
|
|
291
291
|
**Description:** (Read-only) Rendered preview text for display in the dashboard picker.
|
|
292
292
|
|
|
293
293
|
----------------------------------------------------------------------------------------------------------------------------
|
|
294
|
-
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at
|
|
294
|
+
Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2026-05-30 at 14:38:11 +0000
|
|
295
295
|
|
|
296
296
|
:::warning Server-set
|
|
297
297
|
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
|
@@ -1332,17 +1332,20 @@ Fields: 12 (6 required)
|
|
|
1332
1332
|
| recipients | object | yes | (Read-only) Recipients of the notification. |
|
|
1333
1333
|
| recipients.to | array<object> | yes | Primary recipients. |
|
|
1334
1334
|
| recipients.to[].email | string | no | Recipient email address. Present for email notifications. |
|
|
1335
|
-
| recipients.to[].phone | string | no | Recipient phone number (E.164). Present for whatsapp/sms notifications. |
|
|
1335
|
+
| recipients.to[].phone | string | no | Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications. |
|
|
1336
|
+
| recipients.to[].contactE164 | string | no | (Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56). |
|
|
1336
1337
|
| recipients.to[].name | string | no | Recipient display name. |
|
|
1337
1338
|
| recipients.to[].role | string | no | Recipient role (e.g. organizer, customer). |
|
|
1338
1339
|
| recipients.cc | array<object> | no | CC recipients (email). |
|
|
1339
1340
|
| recipients.cc[].email | string | no | Recipient email address. Present for email notifications. |
|
|
1340
|
-
| recipients.cc[].phone | string | no | Recipient phone number (E.164). Present for whatsapp/sms notifications. |
|
|
1341
|
+
| recipients.cc[].phone | string | no | Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications. |
|
|
1342
|
+
| recipients.cc[].contactE164 | string | no | (Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56). |
|
|
1341
1343
|
| recipients.cc[].name | string | no | Recipient display name. |
|
|
1342
1344
|
| recipients.cc[].role | string | no | Recipient role (e.g. organizer, customer). |
|
|
1343
1345
|
| recipients.bcc | array<object> | no | BCC recipients (email). |
|
|
1344
1346
|
| recipients.bcc[].email | string | no | Recipient email address. Present for email notifications. |
|
|
1345
|
-
| recipients.bcc[].phone | string | no | Recipient phone number (E.164). Present for whatsapp/sms notifications. |
|
|
1347
|
+
| recipients.bcc[].phone | string | no | Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications. |
|
|
1348
|
+
| recipients.bcc[].contactE164 | string | no | (Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56). |
|
|
1346
1349
|
| recipients.bcc[].name | string | no | Recipient display name. |
|
|
1347
1350
|
| recipients.bcc[].role | string | no | Recipient role (e.g. organizer, customer). |
|
|
1348
1351
|
| relatedEntity | object | yes | (Read-only) Entity that triggered the notification. type=order triggers the dual-write to the order subcollection. |
|
|
@@ -1947,7 +1950,7 @@ Example:
|
|
|
1947
1950
|
```
|
|
1948
1951
|
|
|
1949
1952
|
### WhatsappInboundMessage
|
|
1950
|
-
Fields:
|
|
1953
|
+
Fields: 14 (7 required)
|
|
1951
1954
|
|
|
1952
1955
|
| Field | Type | Required | Description |
|
|
1953
1956
|
|-------|------|----------|-------------|
|
|
@@ -1964,6 +1967,7 @@ Fields: 13 (7 required)
|
|
|
1964
1967
|
| caption | ['string', 'null'] | no | Media caption text. Present when the sender included a caption. |
|
|
1965
1968
|
| storageUrl | ['string', 'null'] | no | Durable Cloud Storage URL for the downloaded media binary. Present after the media has been fetched and stored server-side. |
|
|
1966
1969
|
| context | ['object', 'null'] | no | Reply/forward context. Present on replies and forwarded messages. |
|
|
1970
|
+
| contactE164 | ['string', '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. |
|
|
1967
1971
|
|
|
1968
1972
|
Example:
|
|
1969
1973
|
```json
|
|
@@ -1980,7 +1984,8 @@ Example:
|
|
|
1980
1984
|
"mediaId": null,
|
|
1981
1985
|
"caption": null,
|
|
1982
1986
|
"storageUrl": null,
|
|
1983
|
-
"context": null
|
|
1987
|
+
"context": null,
|
|
1988
|
+
"contactE164": null
|
|
1984
1989
|
}
|
|
1985
1990
|
```
|
|
1986
1991
|
|
|
@@ -2019,7 +2024,7 @@ Example:
|
|
|
2019
2024
|
```
|
|
2020
2025
|
|
|
2021
2026
|
### WhatsappOutboundMessage
|
|
2022
|
-
Fields:
|
|
2027
|
+
Fields: 19 (7 required)
|
|
2023
2028
|
|
|
2024
2029
|
| Field | Type | Required | Description |
|
|
2025
2030
|
|-------|------|----------|-------------|
|
|
@@ -2036,6 +2041,7 @@ Fields: 18 (7 required)
|
|
|
2036
2041
|
| sentBy.uid | string | yes | Firebase Auth UID of the dashboard user who enqueued the message. |
|
|
2037
2042
|
| sentBy.email | string | no | Email of the sender, if available. |
|
|
2038
2043
|
| createdAt | FirestoreTimestamp | yes | (Immutable) Enqueue timestamp, set by the dashboard at create. |
|
|
2044
|
+
| contactE164 | ['string', 'null'] | no | (Read-only) E.164-normalized recipient phone (e.g. +2250777471485). Canonical join key (#56). Populated by the backend; absent on pre-migration docs. |
|
|
2039
2045
|
| status | OutboundMessageStatus | yes | Delivery status. Created as `queued` by the dashboard; updated in place by the backend. |
|
|
2040
2046
|
| wamid | ['string', 'null'] | no | (Read-only) WhatsApp message ID returned by Meta once the backend sends. Absent while queued or on failure. |
|
|
2041
2047
|
| error | ['string', 'null'] | no | (Read-only) Human-readable failure reason. Present on status=failed. Raw Meta error detail lives in the lifecycle_events subcollection. |
|
|
@@ -2060,6 +2066,7 @@ Example:
|
|
|
2060
2066
|
"uid": "user_u8x92kqm"
|
|
2061
2067
|
},
|
|
2062
2068
|
"createdAt": "createdAt",
|
|
2069
|
+
"contactE164": null,
|
|
2063
2070
|
"status": "status",
|
|
2064
2071
|
"wamid": null,
|
|
2065
2072
|
"error": null,
|
package/data/static/openapi.yaml
CHANGED
|
@@ -3999,8 +3999,20 @@ components:
|
|
|
3999
3999
|
description: Recipient email address. Present for email notifications.
|
|
4000
4000
|
type: string
|
|
4001
4001
|
phone:
|
|
4002
|
-
description: Recipient phone number
|
|
4003
|
-
notifications.
|
|
4002
|
+
description: Recipient phone number as passed by the sender (may
|
|
4003
|
+
be raw wa_id or E.164). Present for whatsapp/sms notifications.
|
|
4004
|
+
type: string
|
|
4005
|
+
contactE164:
|
|
4006
|
+
readOnly: true
|
|
4007
|
+
x-note: Canonical E.164 phone, normalized from `phone` by the
|
|
4008
|
+
backend writer. Use this for joins and search, not the raw `phone`
|
|
4009
|
+
field (#56). Absent on pre-migration docs.
|
|
4010
|
+
x-when: Populated by Cloud Functions on every new NotificationRecord
|
|
4011
|
+
for whatsapp/sms channels. CI normalization applied (8→10-digit
|
|
4012
|
+
07/05/01 series).
|
|
4013
|
+
description: (Read-only) E.164-normalized phone (e.g. +2250777471485).
|
|
4014
|
+
Canonical join key across WhatsApp and notification collections
|
|
4015
|
+
(#56).
|
|
4004
4016
|
type: string
|
|
4005
4017
|
name:
|
|
4006
4018
|
description: Recipient display name.
|
|
@@ -4021,8 +4033,20 @@ components:
|
|
|
4021
4033
|
description: Recipient email address. Present for email notifications.
|
|
4022
4034
|
type: string
|
|
4023
4035
|
phone:
|
|
4024
|
-
description: Recipient phone number
|
|
4025
|
-
notifications.
|
|
4036
|
+
description: Recipient phone number as passed by the sender (may
|
|
4037
|
+
be raw wa_id or E.164). Present for whatsapp/sms notifications.
|
|
4038
|
+
type: string
|
|
4039
|
+
contactE164:
|
|
4040
|
+
readOnly: true
|
|
4041
|
+
x-note: Canonical E.164 phone, normalized from `phone` by the
|
|
4042
|
+
backend writer. Use this for joins and search, not the raw `phone`
|
|
4043
|
+
field (#56). Absent on pre-migration docs.
|
|
4044
|
+
x-when: Populated by Cloud Functions on every new NotificationRecord
|
|
4045
|
+
for whatsapp/sms channels. CI normalization applied (8→10-digit
|
|
4046
|
+
07/05/01 series).
|
|
4047
|
+
description: (Read-only) E.164-normalized phone (e.g. +2250777471485).
|
|
4048
|
+
Canonical join key across WhatsApp and notification collections
|
|
4049
|
+
(#56).
|
|
4026
4050
|
type: string
|
|
4027
4051
|
name:
|
|
4028
4052
|
description: Recipient display name.
|
|
@@ -4042,8 +4066,20 @@ components:
|
|
|
4042
4066
|
description: Recipient email address. Present for email notifications.
|
|
4043
4067
|
type: string
|
|
4044
4068
|
phone:
|
|
4045
|
-
description: Recipient phone number
|
|
4046
|
-
notifications.
|
|
4069
|
+
description: Recipient phone number as passed by the sender (may
|
|
4070
|
+
be raw wa_id or E.164). Present for whatsapp/sms notifications.
|
|
4071
|
+
type: string
|
|
4072
|
+
contactE164:
|
|
4073
|
+
readOnly: true
|
|
4074
|
+
x-note: Canonical E.164 phone, normalized from `phone` by the
|
|
4075
|
+
backend writer. Use this for joins and search, not the raw `phone`
|
|
4076
|
+
field (#56). Absent on pre-migration docs.
|
|
4077
|
+
x-when: Populated by Cloud Functions on every new NotificationRecord
|
|
4078
|
+
for whatsapp/sms channels. CI normalization applied (8→10-digit
|
|
4079
|
+
07/05/01 series).
|
|
4080
|
+
description: (Read-only) E.164-normalized phone (e.g. +2250777471485).
|
|
4081
|
+
Canonical join key across WhatsApp and notification collections
|
|
4082
|
+
(#56).
|
|
4047
4083
|
type: string
|
|
4048
4084
|
name:
|
|
4049
4085
|
description: Recipient display name.
|
|
@@ -6071,6 +6107,22 @@ components:
|
|
|
6071
6107
|
type: boolean
|
|
6072
6108
|
const: true
|
|
6073
6109
|
additionalProperties: false
|
|
6110
|
+
contactE164:
|
|
6111
|
+
readOnly: true
|
|
6112
|
+
x-note: E.164-normalized form of `from` (wa_id). Canonical join key across
|
|
6113
|
+
WhatsappInboundMessage, WhatsappOutboundMessage, and NotificationRecord.
|
|
6114
|
+
Use this for conversation threading, search, and cross-collection joins
|
|
6115
|
+
— not the raw `from` wa_id (#56).
|
|
6116
|
+
x-when: 'Populated by whatsapp-server on every new inbound doc. Absent on
|
|
6117
|
+
pre-#56 docs until the backfill migration runs. CI normalization: wa_id
|
|
6118
|
+
22577471485 → +2250777471485 (insert trunk 0 after country code for 8-digit
|
|
6119
|
+
numbers in the 07/05/01 series that predate the 2014 10-digit migration).'
|
|
6120
|
+
description: (Read-only) E.164-normalized sender phone (e.g. +2250777471485).
|
|
6121
|
+
Canonical join key (#56). Populated by the backend; absent on pre-migration
|
|
6122
|
+
docs.
|
|
6123
|
+
type:
|
|
6124
|
+
- string
|
|
6125
|
+
- 'null'
|
|
6074
6126
|
required:
|
|
6075
6127
|
- wabaId
|
|
6076
6128
|
- waba
|
|
@@ -6290,6 +6342,22 @@ components:
|
|
|
6290
6342
|
$ref: '#/components/schemas/FirestoreTimestamp'
|
|
6291
6343
|
description: (Immutable) Enqueue timestamp, set by the dashboard at create.
|
|
6292
6344
|
x-immutable: true
|
|
6345
|
+
contactE164:
|
|
6346
|
+
readOnly: true
|
|
6347
|
+
x-note: E.164-normalized form of `to` (wa_id). Canonical join key across
|
|
6348
|
+
WhatsappOutboundMessage, WhatsappInboundMessage, and NotificationRecord.
|
|
6349
|
+
Use this for conversation threading, search, and cross-collection joins
|
|
6350
|
+
— not the raw `to` wa_id (#56).
|
|
6351
|
+
x-when: 'Populated by whatsapp-server on every new outbound doc. Absent
|
|
6352
|
+
on pre-#56 docs until the backfill migration runs. CI normalization: wa_id
|
|
6353
|
+
22577471485 → +2250777471485 (insert trunk 0 after country code for 8-digit
|
|
6354
|
+
numbers in the 07/05/01 series that predate the 2014 10-digit migration).'
|
|
6355
|
+
description: (Read-only) E.164-normalized recipient phone (e.g. +2250777471485).
|
|
6356
|
+
Canonical join key (#56). Populated by the backend; absent on pre-migration
|
|
6357
|
+
docs.
|
|
6358
|
+
type:
|
|
6359
|
+
- string
|
|
6360
|
+
- 'null'
|
|
6293
6361
|
status:
|
|
6294
6362
|
$ref: '#/components/schemas/OutboundMessageStatus'
|
|
6295
6363
|
description: Delivery status. Created as `queued` by the dashboard; updated
|
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-30T14:38:11.260961+00:00",
|
|
5
5
|
"schemas": {
|
|
6
6
|
"allowed-user": {
|
|
7
7
|
"type": "object",
|
|
@@ -4467,7 +4467,14 @@
|
|
|
4467
4467
|
"type": "string"
|
|
4468
4468
|
},
|
|
4469
4469
|
"phone": {
|
|
4470
|
-
"description": "Recipient phone number (E.164). Present for whatsapp/sms notifications.",
|
|
4470
|
+
"description": "Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications.",
|
|
4471
|
+
"type": "string"
|
|
4472
|
+
},
|
|
4473
|
+
"contactE164": {
|
|
4474
|
+
"readOnly": true,
|
|
4475
|
+
"x-note": "Canonical E.164 phone, normalized from `phone` by the backend writer. Use this for joins and search, not the raw `phone` field (#56). Absent on pre-migration docs.",
|
|
4476
|
+
"x-when": "Populated by Cloud Functions on every new NotificationRecord for whatsapp/sms channels. CI normalization applied (8\u219210-digit 07/05/01 series).",
|
|
4477
|
+
"description": "(Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56).",
|
|
4471
4478
|
"type": "string"
|
|
4472
4479
|
},
|
|
4473
4480
|
"name": {
|
|
@@ -4495,7 +4502,14 @@
|
|
|
4495
4502
|
"type": "string"
|
|
4496
4503
|
},
|
|
4497
4504
|
"phone": {
|
|
4498
|
-
"description": "Recipient phone number (E.164). Present for whatsapp/sms notifications.",
|
|
4505
|
+
"description": "Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications.",
|
|
4506
|
+
"type": "string"
|
|
4507
|
+
},
|
|
4508
|
+
"contactE164": {
|
|
4509
|
+
"readOnly": true,
|
|
4510
|
+
"x-note": "Canonical E.164 phone, normalized from `phone` by the backend writer. Use this for joins and search, not the raw `phone` field (#56). Absent on pre-migration docs.",
|
|
4511
|
+
"x-when": "Populated by Cloud Functions on every new NotificationRecord for whatsapp/sms channels. CI normalization applied (8\u219210-digit 07/05/01 series).",
|
|
4512
|
+
"description": "(Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56).",
|
|
4499
4513
|
"type": "string"
|
|
4500
4514
|
},
|
|
4501
4515
|
"name": {
|
|
@@ -4522,7 +4536,14 @@
|
|
|
4522
4536
|
"type": "string"
|
|
4523
4537
|
},
|
|
4524
4538
|
"phone": {
|
|
4525
|
-
"description": "Recipient phone number (E.164). Present for whatsapp/sms notifications.",
|
|
4539
|
+
"description": "Recipient phone number as passed by the sender (may be raw wa_id or E.164). Present for whatsapp/sms notifications.",
|
|
4540
|
+
"type": "string"
|
|
4541
|
+
},
|
|
4542
|
+
"contactE164": {
|
|
4543
|
+
"readOnly": true,
|
|
4544
|
+
"x-note": "Canonical E.164 phone, normalized from `phone` by the backend writer. Use this for joins and search, not the raw `phone` field (#56). Absent on pre-migration docs.",
|
|
4545
|
+
"x-when": "Populated by Cloud Functions on every new NotificationRecord for whatsapp/sms channels. CI normalization applied (8\u219210-digit 07/05/01 series).",
|
|
4546
|
+
"description": "(Read-only) E.164-normalized phone (e.g. +2250777471485). Canonical join key across WhatsApp and notification collections (#56).",
|
|
4526
4547
|
"type": "string"
|
|
4527
4548
|
},
|
|
4528
4549
|
"name": {
|
|
@@ -7361,6 +7382,16 @@
|
|
|
7361
7382
|
}
|
|
7362
7383
|
},
|
|
7363
7384
|
"additionalProperties": false
|
|
7385
|
+
},
|
|
7386
|
+
"contactE164": {
|
|
7387
|
+
"readOnly": true,
|
|
7388
|
+
"x-note": "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 \u2014 not the raw `from` wa_id (#56).",
|
|
7389
|
+
"x-when": "Populated by whatsapp-server on every new inbound doc. Absent on pre-#56 docs until the backfill migration runs. CI normalization: wa_id 22577471485 \u2192 +2250777471485 (insert trunk 0 after country code for 8-digit numbers in the 07/05/01 series that predate the 2014 10-digit migration).",
|
|
7390
|
+
"description": "(Read-only) E.164-normalized sender phone (e.g. +2250777471485). Canonical join key (#56). Populated by the backend; absent on pre-migration docs.",
|
|
7391
|
+
"type": [
|
|
7392
|
+
"string",
|
|
7393
|
+
"null"
|
|
7394
|
+
]
|
|
7364
7395
|
}
|
|
7365
7396
|
},
|
|
7366
7397
|
"required": [
|
|
@@ -7387,7 +7418,8 @@
|
|
|
7387
7418
|
"mediaId": null,
|
|
7388
7419
|
"caption": null,
|
|
7389
7420
|
"storageUrl": null,
|
|
7390
|
-
"context": null
|
|
7421
|
+
"context": null,
|
|
7422
|
+
"contactE164": null
|
|
7391
7423
|
}
|
|
7392
7424
|
},
|
|
7393
7425
|
"whatsapp-outbound-lifecycle-event": {
|
|
@@ -7623,6 +7655,16 @@
|
|
|
7623
7655
|
"description": "(Immutable) Enqueue timestamp, set by the dashboard at create.",
|
|
7624
7656
|
"x-immutable": true
|
|
7625
7657
|
},
|
|
7658
|
+
"contactE164": {
|
|
7659
|
+
"readOnly": true,
|
|
7660
|
+
"x-note": "E.164-normalized form of `to` (wa_id). Canonical join key across WhatsappOutboundMessage, WhatsappInboundMessage, and NotificationRecord. Use this for conversation threading, search, and cross-collection joins \u2014 not the raw `to` wa_id (#56).",
|
|
7661
|
+
"x-when": "Populated by whatsapp-server on every new outbound doc. Absent on pre-#56 docs until the backfill migration runs. CI normalization: wa_id 22577471485 \u2192 +2250777471485 (insert trunk 0 after country code for 8-digit numbers in the 07/05/01 series that predate the 2014 10-digit migration).",
|
|
7662
|
+
"description": "(Read-only) E.164-normalized recipient phone (e.g. +2250777471485). Canonical join key (#56). Populated by the backend; absent on pre-migration docs.",
|
|
7663
|
+
"type": [
|
|
7664
|
+
"string",
|
|
7665
|
+
"null"
|
|
7666
|
+
]
|
|
7667
|
+
},
|
|
7626
7668
|
"status": {
|
|
7627
7669
|
"$ref": "#/definitions/outbound-message-status",
|
|
7628
7670
|
"description": "Delivery status. Created as `queued` by the dashboard; updated in place by the backend.",
|
|
@@ -7719,6 +7761,7 @@
|
|
|
7719
7761
|
"uid": "user_u8x92kqm"
|
|
7720
7762
|
},
|
|
7721
7763
|
"createdAt": "createdAt",
|
|
7764
|
+
"contactE164": null,
|
|
7722
7765
|
"status": "status",
|
|
7723
7766
|
"wamid": null,
|
|
7724
7767
|
"error": null,
|