@funnelchat-hq/sandbox 0.4.0 → 0.5.0
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/README.md +23 -20
- package/dist/{chunk-4WUZK3N2.js → chunk-67XBJEXM.js} +458 -434
- package/dist/cli.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/spec/procedencia.json +13 -13
|
@@ -329,7 +329,7 @@ function resolveConfig(args, cwd = process.cwd()) {
|
|
|
329
329
|
return { config, configFile };
|
|
330
330
|
}
|
|
331
331
|
|
|
332
|
-
//
|
|
332
|
+
// generated/catalog.json
|
|
333
333
|
var catalog_default = {
|
|
334
334
|
meta: {
|
|
335
335
|
envelope_version: "v1",
|
|
@@ -341,9 +341,7 @@ var catalog_default = {
|
|
|
341
341
|
type: "device.disconnected",
|
|
342
342
|
area: "accounts",
|
|
343
343
|
status: "active",
|
|
344
|
-
|
|
345
|
-
label: "N\xFAmero desconectado",
|
|
346
|
-
description: "Uno de los n\xFAmeros de WhatsApp de la cuenta se desconect\xF3 y dej\xF3 de poder enviar o recibir. `reason` dice por qu\xE9: `qr_logged_out` (se cerr\xF3 la sesi\xF3n de un n\xFAmero por QR), `meta_account_not_registered` (un n\xFAmero oficial dej\xF3 de estar registrado en Meta y no se pudo volver a registrar solo), `shadow_ban_protection` (Funnelchat lo desconect\xF3 para protegerlo de un posible bloqueo), `disconnected_by_user` (alguien de la cuenta desconect\xF3 o borr\xF3 los datos de un n\xFAmero oficial), `provider_error` o `unknown`. Trae `device.connection`, `device.external_reference` y `connect_link_id` (el link de alta que conect\xF3 el n\xFAmero por \xFAltima vez, o null).",
|
|
344
|
+
description: "One of the numbers of the account disconnected and can no longer send or receive: a QR session that closed or was protected from a shadow ban, an official number that failed its re-registration, or one disconnected from the panel.",
|
|
347
345
|
subscribable: true,
|
|
348
346
|
example: {
|
|
349
347
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -369,9 +367,7 @@ var catalog_default = {
|
|
|
369
367
|
type: "device.connected",
|
|
370
368
|
area: "accounts",
|
|
371
369
|
status: "active",
|
|
372
|
-
|
|
373
|
-
label: "N\xFAmero conectado",
|
|
374
|
-
description: "Uno de los n\xFAmeros de WhatsApp de la cuenta qued\xF3 conectado: al escanear el c\xF3digo QR o al terminar el alta de un n\xFAmero de WhatsApp Cloud. Trae `device.connection` (`qr`, `coexistence` o `dedicated`), `device.external_reference` y `connect_link_id` (el link de alta que lo conect\xF3, o null).",
|
|
370
|
+
description: "One of the numbers of the account got connected: by scanning the QR code, by finishing the sign-up of a WhatsApp Cloud number, or through a connect link.",
|
|
375
371
|
subscribable: true,
|
|
376
372
|
example: {
|
|
377
373
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -396,9 +392,7 @@ var catalog_default = {
|
|
|
396
392
|
type: "device.deleted",
|
|
397
393
|
area: "accounts",
|
|
398
394
|
status: "active",
|
|
399
|
-
|
|
400
|
-
label: "N\xFAmero borrado",
|
|
401
|
-
description: "Uno de los n\xFAmeros de WhatsApp de la cuenta se borr\xF3 y liber\xF3 su lugar en el plan (desde el panel, la API o porque un link de alta venci\xF3 sin conectarlo). Un n\xFAmero oficial deja de recibir mensajes en Funnelchat, pero sigue registrado en Meta; a uno por QR se le cierra la sesi\xF3n. Trae `connect_link_id` (el link de alta que conect\xF3 el n\xFAmero por \xFAltima vez, o null).",
|
|
395
|
+
description: "A number of the account was deleted (from the panel, the API, or because a connect link expired without connecting it): its slot of the plan is free again.",
|
|
402
396
|
subscribable: true,
|
|
403
397
|
example: {
|
|
404
398
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -423,9 +417,7 @@ var catalog_default = {
|
|
|
423
417
|
type: "device.health_changed",
|
|
424
418
|
area: "accounts",
|
|
425
419
|
status: "active",
|
|
426
|
-
|
|
427
|
-
label: "Cambi\xF3 la salud del n\xFAmero",
|
|
428
|
-
description: "Cambi\xF3 el estado de env\xEDo de uno de los n\xFAmeros oficiales de la cuenta, seg\xFAn Meta: `available`, `limited`, `blocked` o `unknown` (`previous_state` y `state`). Sale solo cuando el estado cambia, no con cada aviso de Meta. El motivo se consulta en `GET api/v1/devices/{device}/health`. Trae `connect_link_id` (el link de alta que conect\xF3 el n\xFAmero por \xFAltima vez, o null).",
|
|
420
|
+
description: "The health of an official number changed (what Meta lets it do). Emitted only when the overall state changes.",
|
|
429
421
|
subscribable: true,
|
|
430
422
|
example: {
|
|
431
423
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -452,9 +444,7 @@ var catalog_default = {
|
|
|
452
444
|
type: "device.quality_changed",
|
|
453
445
|
area: "accounts",
|
|
454
446
|
status: "active",
|
|
455
|
-
|
|
456
|
-
label: "Cambi\xF3 la calidad del n\xFAmero",
|
|
457
|
-
description: "Cambi\xF3 la calidad que Meta le da a uno de los n\xFAmeros oficiales de la cuenta (`previous` y `current`, tal cual los manda Meta: `GREEN`, `YELLOW` o `RED`). Si la calidad baja, conviene frenar los env\xEDos de ese n\xFAmero antes de que Meta lo limite. Sale una vez por cambio, no con cada aviso de Meta, y no sale cuando Meta no tiene datos de calidad (`NA` o `UNKNOWN`). Trae `connect_link_id` (el link de alta que conect\xF3 el n\xFAmero por \xFAltima vez, o null).",
|
|
447
|
+
description: "The quality Meta gives an official number changed (`GREEN`, `YELLOW` or `RED`, as Meta sends them). If it drops, slow down the sends of that number before Meta limits it. Once per change; not when Meta has no quality data.",
|
|
458
448
|
subscribable: true,
|
|
459
449
|
example: {
|
|
460
450
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -481,9 +471,7 @@ var catalog_default = {
|
|
|
481
471
|
type: "device.messaging_limit_changed",
|
|
482
472
|
area: "accounts",
|
|
483
473
|
status: "active",
|
|
484
|
-
|
|
485
|
-
label: "Cambio del l\xEDmite de mensajes",
|
|
486
|
-
description: "Cambi\xF3 el l\xEDmite de mensajes que Meta le da a uno de los n\xFAmeros oficiales de la cuenta: cu\xE1ntas personas distintas se pueden contactar por d\xEDa con mensajes que inicia la empresa (`previous` y `current`, tal cual los manda Meta: `TIER_250`, `TIER_1K`, `TIER_2K`, `TIER_10K`, `TIER_100K` o `TIER_UNLIMITED`). Meta fija el l\xEDmite para todos los n\xFAmeros de una misma empresa: llega un aviso por cada n\xFAmero de la cuenta que cambi\xF3. Sale una vez por cambio y no sale cuando el n\xFAmero todav\xEDa no tiene l\xEDmite asignado (`TIER_NOT_SET`). Trae `connect_link_id` (el link de alta que conect\xF3 el n\xFAmero por \xFAltima vez, o null).",
|
|
474
|
+
description: "The messaging limit Meta gives an official number changed: how many different people it can start a conversation with per day (`TIER_250`, `TIER_1K`, `TIER_2K`, `TIER_10K`, `TIER_100K` or `TIER_UNLIMITED`). Meta sets it per business: one notice per number of the account that changed.",
|
|
487
475
|
subscribable: true,
|
|
488
476
|
example: {
|
|
489
477
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -510,9 +498,7 @@ var catalog_default = {
|
|
|
510
498
|
type: "device.display_name_reviewed",
|
|
511
499
|
area: "accounts",
|
|
512
500
|
status: "active",
|
|
513
|
-
|
|
514
|
-
label: "Nombre visible revisado",
|
|
515
|
-
description: "Meta aprob\xF3 (`decision`: `approved`) o rechaz\xF3 (`rejected`) el nombre visible de uno de los n\xFAmeros oficiales de la cuenta. Trae el estado anterior y el nuevo, tal cual los manda Meta (`previous_status`; `status`: `APPROVED` o `DECLINED`), el nombre visible actual (`verified_name`) y, en un rechazo, el motivo que da Meta en su aviso (`rejection_reason`), o null si Meta no lo informa. Sale una vez por revisi\xF3n. Trae `connect_link_id` (el link de alta que conect\xF3 el n\xFAmero por \xFAltima vez, o null).",
|
|
501
|
+
description: "Meta approved or rejected the display name of an official number.",
|
|
516
502
|
subscribable: true,
|
|
517
503
|
example: {
|
|
518
504
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -542,12 +528,10 @@ var catalog_default = {
|
|
|
542
528
|
type: "billing.payment_failed",
|
|
543
529
|
area: "accounts",
|
|
544
530
|
status: "active",
|
|
545
|
-
|
|
546
|
-
label: "Pago fallido",
|
|
547
|
-
description: "Un cobro de la suscripci\xF3n no pudo procesarse (solo suscripciones de Stripe). Se emite una vez por factura (el primer intento fallido); no se repite en los reintentos de cobro. No incluye las recargas de IA.",
|
|
531
|
+
description: "A charge of the subscription could not be processed (Stripe subscriptions only).",
|
|
548
532
|
subscribable: true,
|
|
549
533
|
example: {
|
|
550
|
-
id: "
|
|
534
|
+
id: "evt_000000000000000000000000",
|
|
551
535
|
type: "billing.payment_failed",
|
|
552
536
|
version: 1,
|
|
553
537
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -558,26 +542,14 @@ var catalog_default = {
|
|
|
558
542
|
}
|
|
559
543
|
}
|
|
560
544
|
},
|
|
561
|
-
{
|
|
562
|
-
type: "billing.plan_blocked",
|
|
563
|
-
area: "accounts",
|
|
564
|
-
status: "planned",
|
|
565
|
-
is_critical: true,
|
|
566
|
-
label: "Plan bloqueado",
|
|
567
|
-
description: "El plan qued\xF3 bloqueado por un cobro no procesado.",
|
|
568
|
-
subscribable: true,
|
|
569
|
-
example: null
|
|
570
|
-
},
|
|
571
545
|
{
|
|
572
546
|
type: "billing.upcoming_charge",
|
|
573
547
|
area: "accounts",
|
|
574
548
|
status: "active",
|
|
575
|
-
|
|
576
|
-
label: "Pr\xF3ximo cobro",
|
|
577
|
-
description: "Se acerca el pr\xF3ximo cobro de la suscripci\xF3n (solo suscripciones de Stripe); el aviso llega unos d\xEDas antes de la fecha de cobro.",
|
|
549
|
+
description: "The next charge of the subscription is coming up (Stripe subscriptions only).",
|
|
578
550
|
subscribable: true,
|
|
579
551
|
example: {
|
|
580
|
-
id: "
|
|
552
|
+
id: "evt_000000000000000000000000",
|
|
581
553
|
type: "billing.upcoming_charge",
|
|
582
554
|
version: 1,
|
|
583
555
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -589,23 +561,11 @@ var catalog_default = {
|
|
|
589
561
|
}
|
|
590
562
|
}
|
|
591
563
|
},
|
|
592
|
-
{
|
|
593
|
-
type: "subscription.expiring",
|
|
594
|
-
area: "accounts",
|
|
595
|
-
status: "planned",
|
|
596
|
-
is_critical: false,
|
|
597
|
-
label: "Suscripci\xF3n por vencer",
|
|
598
|
-
description: "La suscripci\xF3n est\xE1 pr\xF3xima a vencer.",
|
|
599
|
-
subscribable: true,
|
|
600
|
-
example: null
|
|
601
|
-
},
|
|
602
564
|
{
|
|
603
565
|
type: "subscription.trial_ending",
|
|
604
566
|
area: "accounts",
|
|
605
567
|
status: "active",
|
|
606
|
-
|
|
607
|
-
label: "Trial por terminar",
|
|
608
|
-
description: "El per\xEDodo de prueba est\xE1 por terminar; el aviso llega entre 1 y 3 d\xEDas antes del final, seg\xFAn c\xF3mo se contrat\xF3 (en las suscripciones de Stripe, el aviso de Stripe).",
|
|
568
|
+
description: "El per\xEDodo de prueba est\xE1 por terminar; el evento llega entre 1 y 3 d\xEDas antes del final, seg\xFAn c\xF3mo se contrat\xF3 (en las suscripciones de Stripe, el evento de Stripe).",
|
|
609
569
|
subscribable: true,
|
|
610
570
|
example: {
|
|
611
571
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -622,8 +582,6 @@ var catalog_default = {
|
|
|
622
582
|
type: "subscription.reactivated",
|
|
623
583
|
area: "accounts",
|
|
624
584
|
status: "active",
|
|
625
|
-
is_critical: false,
|
|
626
|
-
label: "Suscripci\xF3n reactivada",
|
|
627
585
|
description: "Se revirti\xF3 la cancelaci\xF3n programada de la suscripci\xF3n (solo suscripciones de Stripe): sigue vigente y se renueva en la fecha indicada.",
|
|
628
586
|
subscribable: true,
|
|
629
587
|
example: {
|
|
@@ -641,8 +599,6 @@ var catalog_default = {
|
|
|
641
599
|
type: "subscription.cancellation_confirmed",
|
|
642
600
|
area: "accounts",
|
|
643
601
|
status: "active",
|
|
644
|
-
is_critical: false,
|
|
645
|
-
label: "Cancelaci\xF3n confirmada",
|
|
646
602
|
description: "Qued\xF3 confirmada la cancelaci\xF3n de la suscripci\xF3n (solo suscripciones de Stripe): se conserva el acceso hasta la fecha indicada.",
|
|
647
603
|
subscribable: true,
|
|
648
604
|
example: {
|
|
@@ -660,12 +616,10 @@ var catalog_default = {
|
|
|
660
616
|
type: "subscription.dormant_ending",
|
|
661
617
|
area: "accounts",
|
|
662
618
|
status: "active",
|
|
663
|
-
|
|
664
|
-
label: "Per\xEDodo dormido por terminar",
|
|
665
|
-
description: "El per\xEDodo de cuenta en reposo est\xE1 por terminar (el aviso llega unos 7 d\xEDas antes); en esa fecha se intenta el cobro indicado.",
|
|
619
|
+
description: "The dormant-account period is about to end.",
|
|
666
620
|
subscribable: true,
|
|
667
621
|
example: {
|
|
668
|
-
id: "
|
|
622
|
+
id: "evt_000000000000000000000000",
|
|
669
623
|
type: "subscription.dormant_ending",
|
|
670
624
|
version: 1,
|
|
671
625
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -677,43 +631,11 @@ var catalog_default = {
|
|
|
677
631
|
}
|
|
678
632
|
}
|
|
679
633
|
},
|
|
680
|
-
{
|
|
681
|
-
type: "ai_quota.low_balance",
|
|
682
|
-
area: "accounts",
|
|
683
|
-
status: "planned",
|
|
684
|
-
is_critical: false,
|
|
685
|
-
label: "Cuota de IA baja",
|
|
686
|
-
description: "La cuota de mensajes de IA de la cuenta est\xE1 por agotarse.",
|
|
687
|
-
subscribable: true,
|
|
688
|
-
example: null
|
|
689
|
-
},
|
|
690
|
-
{
|
|
691
|
-
type: "ai_quota.topup_succeeded",
|
|
692
|
-
area: "accounts",
|
|
693
|
-
status: "planned",
|
|
694
|
-
is_critical: false,
|
|
695
|
-
label: "Recarga de IA exitosa",
|
|
696
|
-
description: "Una recarga de cuota de IA se acredit\xF3 correctamente.",
|
|
697
|
-
subscribable: true,
|
|
698
|
-
example: null
|
|
699
|
-
},
|
|
700
|
-
{
|
|
701
|
-
type: "ai_quota.topup_failed",
|
|
702
|
-
area: "accounts",
|
|
703
|
-
status: "planned",
|
|
704
|
-
is_critical: true,
|
|
705
|
-
label: "Recarga de IA fallida",
|
|
706
|
-
description: "Una recarga de cuota de IA no pudo procesarse.",
|
|
707
|
-
subscribable: true,
|
|
708
|
-
example: null
|
|
709
|
-
},
|
|
710
634
|
{
|
|
711
635
|
type: "mac.usage_80",
|
|
712
636
|
area: "accounts",
|
|
713
637
|
status: "active",
|
|
714
|
-
|
|
715
|
-
label: "Contactos activos al 80%",
|
|
716
|
-
description: "La cuenta alcanz\xF3 el 80% de sus contactos activos mensuales del ciclo. `workspace_id` es el workspace al que se rutea el aviso, como en todos los eventos: el workspace con facturaci\xF3n propia cuyo pool alcanz\xF3 el umbral, o el workspace por defecto cuando el pool es el de la cuenta.",
|
|
638
|
+
description: "La cuenta alcanz\xF3 el 80% de sus contactos activos mensuales del ciclo.",
|
|
717
639
|
subscribable: true,
|
|
718
640
|
example: {
|
|
719
641
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -733,9 +655,7 @@ var catalog_default = {
|
|
|
733
655
|
type: "mac.usage_100",
|
|
734
656
|
area: "accounts",
|
|
735
657
|
status: "active",
|
|
736
|
-
|
|
737
|
-
label: "Contactos activos al 100%",
|
|
738
|
-
description: "La cuenta agot\xF3 sus contactos activos mensuales del ciclo; se abre una gracia de 24 horas cuyo vencimiento viaja en `grace_expires_at`. `workspace_id` es el workspace al que se rutea el aviso, como en todos los eventos: el workspace con facturaci\xF3n propia cuyo pool se agot\xF3, o el workspace por defecto cuando el pool es el de la cuenta.",
|
|
658
|
+
description: "La cuenta agot\xF3 sus contactos activos mensuales del ciclo; se abre una gracia de 24 horas cuyo vencimiento viaja en `grace_expires_at`.",
|
|
739
659
|
subscribable: true,
|
|
740
660
|
example: {
|
|
741
661
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -756,8 +676,6 @@ var catalog_default = {
|
|
|
756
676
|
type: "mac.expiring",
|
|
757
677
|
area: "accounts",
|
|
758
678
|
status: "active",
|
|
759
|
-
is_critical: false,
|
|
760
|
-
label: "Contactos activos por expirar",
|
|
761
679
|
description: "Hay contactos activos mensuales que vencen en los pr\xF3ximos 7 d\xEDas.",
|
|
762
680
|
subscribable: true,
|
|
763
681
|
example: {
|
|
@@ -776,8 +694,6 @@ var catalog_default = {
|
|
|
776
694
|
type: "account.blocked",
|
|
777
695
|
area: "accounts",
|
|
778
696
|
status: "active",
|
|
779
|
-
is_critical: true,
|
|
780
|
-
label: "Cuenta bloqueada",
|
|
781
697
|
description: "La cuenta qued\xF3 bloqueada por consumo: termin\xF3 la gracia de 24 horas tras agotar los contactos activos mensuales sin que se regularizara.",
|
|
782
698
|
subscribable: true,
|
|
783
699
|
example: {
|
|
@@ -793,36 +709,14 @@ var catalog_default = {
|
|
|
793
709
|
}
|
|
794
710
|
}
|
|
795
711
|
},
|
|
796
|
-
{
|
|
797
|
-
type: "webhook.test",
|
|
798
|
-
area: "accounts",
|
|
799
|
-
status: "active",
|
|
800
|
-
is_critical: false,
|
|
801
|
-
label: "Evento de prueba",
|
|
802
|
-
description: "Evento de prueba enviado por `POST webhooks/{id}/test`; no se puede suscribir.",
|
|
803
|
-
subscribable: false,
|
|
804
|
-
example: {
|
|
805
|
-
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
806
|
-
type: "webhook.test",
|
|
807
|
-
version: 1,
|
|
808
|
-
occurred_at: "2026-10-01T12:00:00Z",
|
|
809
|
-
data: {
|
|
810
|
-
subscription: "00000000-0000-4000-8000-000000000001",
|
|
811
|
-
sent_at: "2026-10-01T12:00:00Z",
|
|
812
|
-
workspace_id: 37
|
|
813
|
-
}
|
|
814
|
-
}
|
|
815
|
-
},
|
|
816
712
|
{
|
|
817
713
|
type: "message.received",
|
|
818
714
|
area: "conversations",
|
|
819
715
|
status: "active",
|
|
820
|
-
|
|
821
|
-
label: "Mensaje recibido",
|
|
822
|
-
description: "Un contacto le escribi\xF3 a un n\xFAmero de WhatsApp de la cuenta. `device_id` identifica ese n\xFAmero y puede venir `null`.",
|
|
716
|
+
description: "A contact wrote to one of the WhatsApp numbers of the account.",
|
|
823
717
|
subscribable: true,
|
|
824
718
|
example: {
|
|
825
|
-
id: "
|
|
719
|
+
id: "evt_000000000000000000000001",
|
|
826
720
|
type: "message.received",
|
|
827
721
|
version: 1,
|
|
828
722
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -830,18 +724,18 @@ var catalog_default = {
|
|
|
830
724
|
message: {
|
|
831
725
|
id: 1001,
|
|
832
726
|
type: "text",
|
|
833
|
-
text: "
|
|
727
|
+
text: "Hi, I want more information",
|
|
834
728
|
media: null
|
|
835
729
|
},
|
|
836
730
|
contact: {
|
|
837
731
|
id: 2001,
|
|
838
|
-
name: "
|
|
732
|
+
name: "Example contact",
|
|
839
733
|
phone: "+5491100000000"
|
|
840
734
|
},
|
|
841
735
|
receiver: {
|
|
842
736
|
phone: "+5491100000001"
|
|
843
737
|
},
|
|
844
|
-
device_id:
|
|
738
|
+
device_id: 3,
|
|
845
739
|
workspace_id: 37
|
|
846
740
|
}
|
|
847
741
|
}
|
|
@@ -850,12 +744,10 @@ var catalog_default = {
|
|
|
850
744
|
type: "flow.completed",
|
|
851
745
|
area: "conversations",
|
|
852
746
|
status: "active",
|
|
853
|
-
|
|
854
|
-
label: "Flujo completado",
|
|
855
|
-
description: "Un contacto termin\xF3 un flujo de automatizaci\xF3n.",
|
|
747
|
+
description: "Un contacto termin\xF3 un flujo de automatizaci\xF3n.\n\nSe env\xEDa una sola vez por cada ejecuci\xF3n de un flujo, cuando termina con \xE9xito. No se env\xEDa si la ejecuci\xF3n se cort\xF3, se cancel\xF3, qued\xF3 bloqueada o fall\xF3. `contact` es `null` si la ejecuci\xF3n no tiene un contacto asociado. Un flujo muy usado puede generar muchos eventos seguidos.",
|
|
856
748
|
subscribable: true,
|
|
857
749
|
example: {
|
|
858
|
-
id: "
|
|
750
|
+
id: "evt_000000000000000000000003",
|
|
859
751
|
type: "flow.completed",
|
|
860
752
|
version: 1,
|
|
861
753
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -877,12 +769,10 @@ var catalog_default = {
|
|
|
877
769
|
type: "broadcast.finished",
|
|
878
770
|
area: "conversations",
|
|
879
771
|
status: "active",
|
|
880
|
-
|
|
881
|
-
label: "Campa\xF1a finalizada",
|
|
882
|
-
description: "Una campa\xF1a lleg\xF3 a su estado final (enviada, fallida o con fallos parciales), con sus conteos.",
|
|
772
|
+
description: "Una campa\xF1a lleg\xF3 a su estado final (enviada, fallida o con fallos parciales), con sus conteos.\n\n`status` es `success`, `failed` o `partially_failed`. `reason` dice por qu\xE9 termin\xF3: `completed` (se enviaron todas las p\xE1ginas), `cancelled` (se cerr\xF3 una campa\xF1a pausada), `template_rejected` (Meta rechaz\xF3 la plantilla, o su categor\xEDa cambi\xF3, mientras la campa\xF1a esperaba; tambi\xE9n cuando Meta la paus\xF3 durante el env\xEDo y se detuvo la campa\xF1a), `approval_expired` (la plantilla no se aprob\xF3 a tiempo), `mac_lockout` (la cuenta alcanz\xF3 su l\xEDmite de contactos activos), `mac_check_unavailable` (la campa\xF1a la inici\xF3 una API key y el l\xEDmite de contactos activos no se pudo verificar, as\xED que no se envi\xF3 nada), `no_recipients` (la audiencia qued\xF3 vac\xEDa) o `error` (el env\xEDo no pudo despacharse). `totals` son los conteos del env\xEDo: `processed` (destinatarios procesados), `failed` y `skipped_unreachable` (destinatarios que el canal no puede alcanzar); valen 0 si la campa\xF1a termin\xF3 antes de enviar. Se emite una sola vez por campa\xF1a.",
|
|
883
773
|
subscribable: true,
|
|
884
774
|
example: {
|
|
885
|
-
id: "
|
|
775
|
+
id: "evt_000000000000000000000011",
|
|
886
776
|
type: "broadcast.finished",
|
|
887
777
|
version: 1,
|
|
888
778
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -906,12 +796,10 @@ var catalog_default = {
|
|
|
906
796
|
type: "contact.stage_changed",
|
|
907
797
|
area: "conversations",
|
|
908
798
|
status: "active",
|
|
909
|
-
|
|
910
|
-
label: "Contacto cambi\xF3 de etapa",
|
|
911
|
-
description: "Un contacto cambi\xF3 de etapa en un tablero.",
|
|
799
|
+
description: "Un contacto cambi\xF3 de etapa en un tablero.\n\nSe env\xEDa un evento por cada contacto que cambia de etapa en un tablero por etapas. `kind` es entry (entra al tablero, `from_stage` es null), move (pasa de una etapa a otra), exit (sale del tablero, `to_stage` es null) o stage_deleted (se reubica porque su etapa se borr\xF3; el nombre de la etapa borrada es null). No se env\xEDa si el contacto se coloca en la etapa en la que ya estaba.",
|
|
912
800
|
subscribable: true,
|
|
913
801
|
example: {
|
|
914
|
-
id: "
|
|
802
|
+
id: "evt_000000000000000000000008",
|
|
915
803
|
type: "contact.stage_changed",
|
|
916
804
|
version: 1,
|
|
917
805
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -944,12 +832,10 @@ var catalog_default = {
|
|
|
944
832
|
type: "message.status_changed",
|
|
945
833
|
area: "conversations",
|
|
946
834
|
status: "active",
|
|
947
|
-
|
|
948
|
-
label: "Estado de mensaje cambiado",
|
|
949
|
-
description: "Cambi\xF3 el estado de entrega de un mensaje enviado: `status` es `sent`, `delivered`, `read` o `failed`. `previous_status` es el estado que el mensaje ten\xEDa justo antes de este cambio y es `null` en tres casos: es el primer aviso del mensaje, es el mismo estado que `status` (por ejemplo, el proveedor confirma el `sent` que ya registr\xF3 el env\xEDo) o no se pudo leer. `error` solo viene cuando `status` es `failed`: `code` es el c\xF3digo num\xE9rico del proveedor y `title` su t\xEDtulo, y cualquiera de los dos puede ser `null` si el proveedor no los informa. `error.reason` es `null` cuando el fallo lo inform\xF3 el proveedor; cuando Funnelchat decidi\xF3 que un mensaje enviado con clave no sal\xEDa (por ejemplo, por saldo insuficiente o ventana de 24 horas cerrada) trae el motivo (`device_unavailable`, `insufficient_balance`, `window_closed`, `recipient_unreachable`, `template_not_found`, `template_unresolved_placeholder`, `not_queued` o `not_sent`), `code` es `null` y `title` es un texto llano en el idioma de la cuenta. Un mensaje enviado con clave que Funnelchat no lleg\xF3 a enviar avisa `failed` con `previous_status` `null`. `client_reference` es el identificador propio que el integrador envi\xF3 con el mensaje, para relacionar el evento con su env\xEDo; viene `null` si no envi\xF3 ninguno.",
|
|
835
|
+
description: "The delivery status of a message you sent with the API changed. One notice per transition, never one that goes back; `queued` is not reported. It must be asked for explicitly in `events`.",
|
|
950
836
|
subscribable: true,
|
|
951
837
|
example: {
|
|
952
|
-
id: "
|
|
838
|
+
id: "evt_000000000000000000000014",
|
|
953
839
|
type: "message.status_changed",
|
|
954
840
|
version: 1,
|
|
955
841
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -965,7 +851,7 @@ var catalog_default = {
|
|
|
965
851
|
reason: null
|
|
966
852
|
},
|
|
967
853
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
968
|
-
client_reference: "pedido-
|
|
854
|
+
client_reference: "pedido-1001",
|
|
969
855
|
workspace_id: 37
|
|
970
856
|
}
|
|
971
857
|
}
|
|
@@ -974,12 +860,10 @@ var catalog_default = {
|
|
|
974
860
|
type: "conversation.closed",
|
|
975
861
|
area: "conversations",
|
|
976
862
|
status: "active",
|
|
977
|
-
|
|
978
|
-
label: "Conversaci\xF3n cerrada",
|
|
979
|
-
description: "Se cerr\xF3 la conversaci\xF3n con un contacto.",
|
|
863
|
+
description: "Una conversaci\xF3n pas\xF3 a cerrada.\n\nSe env\xEDa cuando una conversaci\xF3n pasa de abierta a cerrada. No se env\xEDa si la conversaci\xF3n ya estaba cerrada ni cuando se reabre.",
|
|
980
864
|
subscribable: true,
|
|
981
865
|
example: {
|
|
982
|
-
id: "
|
|
866
|
+
id: "evt_000000000000000000000004",
|
|
983
867
|
type: "conversation.closed",
|
|
984
868
|
version: 1,
|
|
985
869
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -997,12 +881,10 @@ var catalog_default = {
|
|
|
997
881
|
type: "conversation.assigned",
|
|
998
882
|
area: "conversations",
|
|
999
883
|
status: "active",
|
|
1000
|
-
|
|
1001
|
-
label: "Conversaci\xF3n asignada",
|
|
1002
|
-
description: "Se asign\xF3 la conversaci\xF3n con un contacto a una persona o a la IA.",
|
|
884
|
+
description: "Una conversaci\xF3n qued\xF3 asignada a una persona del equipo o a un agente de IA.\n\nSe env\xEDa cuando una conversaci\xF3n queda asignada a una persona del equipo (`assignee.type` = `human`) o a un agente de IA (`assignee.type` = `ai`), por cualquier camino. `assignee` trae el tipo y el nombre, nunca un identificador. No se env\xEDa al desasignar, ni cuando se vuelve a enviar el mismo asignado.",
|
|
1003
885
|
subscribable: true,
|
|
1004
886
|
example: {
|
|
1005
|
-
id: "
|
|
887
|
+
id: "evt_000000000000000000000005",
|
|
1006
888
|
type: "conversation.assigned",
|
|
1007
889
|
version: 1,
|
|
1008
890
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -1024,12 +906,10 @@ var catalog_default = {
|
|
|
1024
906
|
type: "contact.tag_added",
|
|
1025
907
|
area: "conversations",
|
|
1026
908
|
status: "active",
|
|
1027
|
-
|
|
1028
|
-
label: "Etiqueta agregada a un contacto",
|
|
1029
|
-
description: "Se agreg\xF3 una etiqueta a un contacto.",
|
|
909
|
+
description: "Un contacto recibi\xF3 una etiqueta.\n\nSe env\xEDa un evento por cada contacto y etiqueta agregados, tambi\xE9n en operaciones en bloque; no se env\xEDa si el contacto ya ten\xEDa la etiqueta. `source` indica el origen: manual, flow, bulk, import, sync, walink o ai. En operaciones en bloque grandes el l\xEDmite de volumen de la cuenta puede descartar parte de los eventos.",
|
|
1030
910
|
subscribable: true,
|
|
1031
911
|
example: {
|
|
1032
|
-
id: "
|
|
912
|
+
id: "evt_000000000000000000000006",
|
|
1033
913
|
type: "contact.tag_added",
|
|
1034
914
|
version: 1,
|
|
1035
915
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -1052,12 +932,10 @@ var catalog_default = {
|
|
|
1052
932
|
type: "broadcast.paused",
|
|
1053
933
|
area: "conversations",
|
|
1054
934
|
status: "active",
|
|
1055
|
-
|
|
1056
|
-
label: "Campa\xF1a pausada",
|
|
1057
|
-
description: "Una campa\xF1a se paus\xF3 por calidad del n\xFAmero.",
|
|
935
|
+
description: "Una campa\xF1a se paus\xF3 sola, por ejemplo porque baj\xF3 la calidad del n\xFAmero.\n\n`reason` es `quality_degraded` (la calidad del n\xFAmero baj\xF3 respecto de la del inicio, o lleg\xF3 a RED), `quality_unreadable` (no se pudo leer la calidad en tres controles seguidos), `template_unavailable` (Meta dej\xF3 la plantilla en `PAUSED`, `DISABLED` o `REJECTED` antes de una tanda), `payment_issue` (el 2 % o m\xE1s de los env\xEDos de la misma campa\xF1a, con un m\xEDnimo de 20 env\xEDos, fueron rechazados por Meta con el c\xF3digo 131042, un problema de pago o de facturaci\xF3n de la cuenta de WhatsApp Business; el 2 % y el m\xEDnimo de 20 env\xEDos son los valores por defecto y se pueden configurar; aplica a cualquier campa\xF1a, tenga o no env\xEDo inteligente; no frena el n\xFAmero; al reanudar la campa\xF1a el conteo, incluidos los env\xEDos que cuentan, vuelve a empezar de cero) o `rejection_rate` (entre los env\xEDos recientes de la propia campa\xF1a, por defecto las \xFAltimas 24 horas, Meta rechaz\xF3 una proporci\xF3n igual o mayor al umbral configurable, por defecto 15 %, con los c\xF3digos que indican una restricci\xF3n de la cuenta o del n\xFAmero; la lista es configurable y por defecto es 131048, 131031 y 368; los c\xF3digos 131049 y 131026 no pausan la campa\xF1a). Con `rejection_rate` llega adem\xE1s `rejection`: `codes` (los que llegaron a su umbral: hoy `failed`), `rates` (el porcentaje de cada uno; las tasas de `131049` y `131026` se informan como dato aunque no pausen), `attempts` (los env\xEDos medidos) y `window_hours`. `quality` y `quality_baseline` son la calidad de Meta le\xEDda en el control y la del inicio del env\xEDo (`GREEN`, `YELLOW`, `RED`), o `null` si no se pudo leer, y siempre `null` en una difusi\xF3n sin env\xEDo inteligente. `template` es `{name, status}` con el nombre de la plantilla y su estado en Meta cuando `reason` es `template_unavailable`, y `null` en las dem\xE1s pausas (por calidad, pago o rechazos). Con `rejection_rate` el n\xFAmero adem\xE1s queda frenado 7 d\xEDas (configurable): mientras dure no se pueden crear, ejecutar ni reanudar campa\xF1as desde ese n\xFAmero, ni mandar plantillas a contactos que no le escribieron en las \xFAltimas 24 horas, y solo soporte lo levanta antes. Las pausas por calidad, por plantilla y por rechazos son solo de las campa\xF1as con env\xEDo inteligente; la pausa por `payment_issue` puede ocurrir en cualquier campa\xF1a. Reanudar la campa\xF1a y que se pause otra vez emite otro evento.",
|
|
1058
936
|
subscribable: true,
|
|
1059
937
|
example: {
|
|
1060
|
-
id: "
|
|
938
|
+
id: "evt_000000000000000000000007",
|
|
1061
939
|
type: "broadcast.paused",
|
|
1062
940
|
version: 1,
|
|
1063
941
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -1069,6 +947,7 @@ var catalog_default = {
|
|
|
1069
947
|
reason: "quality_degraded",
|
|
1070
948
|
quality: "YELLOW",
|
|
1071
949
|
quality_baseline: "GREEN",
|
|
950
|
+
template: null,
|
|
1072
951
|
workspace_id: 37
|
|
1073
952
|
}
|
|
1074
953
|
}
|
|
@@ -1077,12 +956,10 @@ var catalog_default = {
|
|
|
1077
956
|
type: "contact.tag_removed",
|
|
1078
957
|
area: "conversations",
|
|
1079
958
|
status: "active",
|
|
1080
|
-
|
|
1081
|
-
label: "Etiqueta quitada de un contacto",
|
|
1082
|
-
description: "Se quit\xF3 una etiqueta de un contacto.",
|
|
959
|
+
description: "Un contacto perdi\xF3 una etiqueta.\n\nSe env\xEDa un evento por cada contacto y etiqueta quitados, tambi\xE9n en operaciones en bloque; no se env\xEDa si el contacto no ten\xEDa la etiqueta. No se env\xEDa al borrar la etiqueta, al borrar o fusionar contactos ni al desvincular etiquetas de un tablero. `source` indica el origen: manual, flow, bulk o ai. En operaciones en bloque grandes el l\xEDmite de volumen de la cuenta puede descartar parte de los eventos.",
|
|
1083
960
|
subscribable: true,
|
|
1084
961
|
example: {
|
|
1085
|
-
id: "
|
|
962
|
+
id: "evt_000000000000000000000009",
|
|
1086
963
|
type: "contact.tag_removed",
|
|
1087
964
|
version: 1,
|
|
1088
965
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -1105,12 +982,10 @@ var catalog_default = {
|
|
|
1105
982
|
type: "contact.created",
|
|
1106
983
|
area: "conversations",
|
|
1107
984
|
status: "active",
|
|
1108
|
-
|
|
1109
|
-
label: "Contacto creado",
|
|
1110
|
-
description: "Se cre\xF3 un contacto.",
|
|
985
|
+
description: "Se cre\xF3 un contacto nuevo en la cuenta.\n\nSe env\xEDa un evento por cada contacto nuevo, sea cual sea el canal: un mensaje entrante, la creaci\xF3n manual, una importaci\xF3n o la API. No se env\xEDa cuando el contacto ya exist\xEDa y s\xF3lo se actualiza, ni para los contactos que la plataforma crea para sus propias notificaciones. En importaciones grandes el l\xEDmite de volumen de la cuenta puede descartar parte de los eventos.",
|
|
1111
986
|
subscribable: true,
|
|
1112
987
|
example: {
|
|
1113
|
-
id: "
|
|
988
|
+
id: "evt_000000000000000000000010",
|
|
1114
989
|
type: "contact.created",
|
|
1115
990
|
version: 1,
|
|
1116
991
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -1129,12 +1004,10 @@ var catalog_default = {
|
|
|
1129
1004
|
type: "template.status_changed",
|
|
1130
1005
|
area: "conversations",
|
|
1131
1006
|
status: "active",
|
|
1132
|
-
|
|
1133
|
-
label: "Plantilla cambi\xF3 de estado",
|
|
1134
|
-
description: "Cambi\xF3 el estado de una plantilla de WhatsApp.",
|
|
1007
|
+
description: "Una plantilla cambi\xF3 de estado de aprobaci\xF3n en Meta.\n\n`template` identifica la plantilla igual que `GET /templates` (`id`, `uid`, `name`, `category`). `previous_status` y `status` son los estados tal como los devuelve la API (por ejemplo `PENDING`, `APPROVED`, `REJECTED`, `PAUSED`); `previous_status` es `null` si la plantilla no ten\xEDa estado. `reason` trae la observaci\xF3n de rechazo (traducida como en la API y limitada a 500 caracteres) cuando el cambio es un rechazo informado al crear la plantilla, y es `null` en el resto. No se emite si Meta reenv\xEDa el estado que la plantilla ya ten\xEDa. Si una misma plantilla de Meta figura en varias cuentas, cada cuenta recibe su propio evento.",
|
|
1135
1008
|
subscribable: true,
|
|
1136
1009
|
example: {
|
|
1137
|
-
id: "
|
|
1010
|
+
id: "evt_000000000000000000000012",
|
|
1138
1011
|
type: "template.status_changed",
|
|
1139
1012
|
version: 1,
|
|
1140
1013
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -1156,12 +1029,10 @@ var catalog_default = {
|
|
|
1156
1029
|
type: "flow.failed",
|
|
1157
1030
|
area: "conversations",
|
|
1158
1031
|
status: "active",
|
|
1159
|
-
|
|
1160
|
-
label: "Flujo fallido",
|
|
1161
|
-
description: "Un flujo de automatizaci\xF3n fall\xF3.",
|
|
1032
|
+
description: "La ejecuci\xF3n de un flujo para un contacto termin\xF3 por un error.\n\nSe env\xEDa una sola vez por cada ejecuci\xF3n de un flujo que termina por un error, no porque lleg\xF3 al final. `reason` indica el motivo y toma uno de estos valores: `node_missing` (el paso a ejecutar ya no existe), `unknown_node_type` (el paso es de un tipo no reconocido), `missing_subflow` (el flujo que deb\xEDa ejecutarse dentro de otro ya no existe), `malformed_node` (el paso tiene una configuraci\xF3n da\xF1ada), `loop_detected` (la ejecuci\xF3n dio vueltas sin esperar nada) y `execution_error` (un error inesperado detuvo la ejecuci\xF3n). No se env\xEDa si la ejecuci\xF3n se cancel\xF3, qued\xF3 bloqueada o se cort\xF3 porque se edit\xF3 el flujo o se unieron contactos. `contact` es `null` si la ejecuci\xF3n no tiene un contacto asociado.",
|
|
1162
1033
|
subscribable: true,
|
|
1163
1034
|
example: {
|
|
1164
|
-
id: "
|
|
1035
|
+
id: "evt_000000000000000000000013",
|
|
1165
1036
|
type: "flow.failed",
|
|
1166
1037
|
version: 1,
|
|
1167
1038
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
@@ -1184,59 +1055,90 @@ var catalog_default = {
|
|
|
1184
1055
|
type: "whatsapp_form.completed",
|
|
1185
1056
|
area: "conversations",
|
|
1186
1057
|
status: "active",
|
|
1187
|
-
|
|
1188
|
-
label: "Formulario de WhatsApp completado",
|
|
1189
|
-
description: "Un contacto complet\xF3 un formulario de WhatsApp que se le envi\xF3 desde un n\xFAmero de la cuenta. `form.id` identifica el formulario y es el mismo en todas sus versiones; `form.version_id` es la versi\xF3n que se le envi\xF3. `message_id` es el id p\xFAblico del mensaje con el que se envi\xF3 el formulario (el mismo que devolvi\xF3 el env\xEDo, si se hizo por API) y viene `null` si el env\xEDo no tuvo un mensaje p\xFAblico. `contact_id` identifica al contacto y `device_id`, al n\xFAmero. `answers` trae las respuestas en el orden del formulario, como una lista de `{key, label, value}`: `key` es la clave del campo y `label`, su etiqueta. `value` puede ser texto, n\xFAmero, booleano, una lista de textos (en las preguntas de opci\xF3n m\xFAltiple) o `null`; las fechas llegan como texto en formato ISO 8601.",
|
|
1058
|
+
description: "A contact completed a form you sent them.",
|
|
1190
1059
|
subscribable: true,
|
|
1191
1060
|
example: {
|
|
1192
|
-
id: "
|
|
1061
|
+
id: "evt_000000000000000000000015",
|
|
1193
1062
|
type: "whatsapp_form.completed",
|
|
1194
1063
|
version: 1,
|
|
1195
1064
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1196
1065
|
data: {
|
|
1197
1066
|
form: {
|
|
1198
|
-
id:
|
|
1199
|
-
name: "
|
|
1200
|
-
version_id:
|
|
1067
|
+
id: 12,
|
|
1068
|
+
name: "Example survey",
|
|
1069
|
+
version_id: 34
|
|
1201
1070
|
},
|
|
1202
|
-
message_id:
|
|
1071
|
+
message_id: 1002,
|
|
1203
1072
|
contact_id: 2001,
|
|
1204
|
-
device_id:
|
|
1073
|
+
device_id: 3,
|
|
1205
1074
|
answers: [
|
|
1206
1075
|
{
|
|
1207
1076
|
key: "nombre",
|
|
1208
|
-
label: "
|
|
1209
|
-
value: "
|
|
1210
|
-
}
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1077
|
+
label: "Your name",
|
|
1078
|
+
value: "Example contact"
|
|
1079
|
+
}
|
|
1080
|
+
],
|
|
1081
|
+
occurred_at: "2026-10-22T12:00:00Z",
|
|
1082
|
+
workspace_id: 37
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
},
|
|
1086
|
+
{
|
|
1087
|
+
type: "contact.updated",
|
|
1088
|
+
area: "conversations",
|
|
1089
|
+
status: "active",
|
|
1090
|
+
description: "Cambi\xF3 el nombre, el email, el tel\xE9fono o el valor de un campo personalizado de un contacto.\n\nSe env\xEDa cuando cambia el nombre, el email o el tel\xE9fono de un contacto que ya exist\xEDa, o cuando se pone, cambia o quita el valor de uno de sus campos personalizados, venga del panel, de la API, de un flujo o de una importaci\xF3n. Varios cambios del mismo contacto en una misma operaci\xF3n llegan en un solo evento. `changed` dice qu\xE9 cambi\xF3 (`name`, `email`, `phone`, `custom_fields`); `contact` trae el estado despu\xE9s del cambio y `custom_fields`, s\xF3lo los campos que cambiaron, con su valor nuevo (`null` si se quit\xF3). No se env\xEDa al crear un contacto (eso es `contact.created`), por etiquetas, por el estado de la conversaci\xF3n ni si el valor nuevo es igual al anterior; tampoco al borrar un campo personalizado de la cuenta. En importaciones grandes el l\xEDmite de volumen de la cuenta puede descartar parte de los eventos.",
|
|
1091
|
+
subscribable: true,
|
|
1092
|
+
example: {
|
|
1093
|
+
id: "evt_000000000000000000000017",
|
|
1094
|
+
type: "contact.updated",
|
|
1095
|
+
version: 1,
|
|
1096
|
+
occurred_at: "2026-10-01T12:00:00Z",
|
|
1097
|
+
data: {
|
|
1098
|
+
contact: {
|
|
1099
|
+
id: 2001,
|
|
1100
|
+
name: "Ana P\xE9rez",
|
|
1101
|
+
phone: "+5491100000000",
|
|
1102
|
+
email: "ana@example.com"
|
|
1103
|
+
},
|
|
1104
|
+
changed: [
|
|
1105
|
+
"email",
|
|
1106
|
+
"custom_fields"
|
|
1107
|
+
],
|
|
1108
|
+
custom_fields: [
|
|
1229
1109
|
{
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
value: "
|
|
1110
|
+
id: 12,
|
|
1111
|
+
name: "Plan",
|
|
1112
|
+
value: "Pro"
|
|
1233
1113
|
},
|
|
1234
1114
|
{
|
|
1235
|
-
|
|
1236
|
-
|
|
1115
|
+
id: 15,
|
|
1116
|
+
name: "Ciudad",
|
|
1237
1117
|
value: null
|
|
1238
1118
|
}
|
|
1239
1119
|
],
|
|
1120
|
+
workspace_id: 37
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
type: "message.reaction_failed",
|
|
1126
|
+
area: "conversations",
|
|
1127
|
+
status: "active",
|
|
1128
|
+
description: "Una reacci\xF3n a un mensaje que se acept\xF3 no se pudo aplicar.\n\nSe emite cuando una reacci\xF3n a un mensaje (ponerla, reemplazarla o quitarla) que se acept\xF3 con `202` termina sin aplicarse, la haya pedido una clave o una persona del equipo desde el chat. Sale una sola vez por pedido: los reintentos internos del mismo pedido no generan otro evento. No se emite cuando la reacci\xF3n se aplic\xF3, cuando una reacci\xF3n m\xE1s nueva al mismo mensaje ya la reemplaz\xF3, ni cuando el mensaje ya no existe. `message_id` es el mensaje al que se reaccionaba (el mismo id de la ruta), `contact_id` el del contacto y `device_id` el n\xFAmero de tu cuenta por el que iba a salir (`null` si el mensaje ya no tiene n\xFAmero). `emoji` es el emoji pedido y `null` si el pedido era quitar la reacci\xF3n. `reason` es uno de `no_provider_uid`, `message_not_reactable`, `message_deleted`, `device_disconnected`, `provider_unsupported`, `window_expired`, `provider_rejected`, `insufficient_balance`, `payment_expired`. `requested_at` es el momento en que se acept\xF3 el pedido, en UTC y con microsegundos: sirve para relacionar el evento con la llamada que respondi\xF3 `202`. `occurred_at` es el momento en que Funnelchat decidi\xF3 el fallo, en UTC. Mientras tanto, `reactions` de `GET /contacts/{contact_id}/messages` queda como estaba.",
|
|
1129
|
+
subscribable: true,
|
|
1130
|
+
example: {
|
|
1131
|
+
id: "evt_000000000000000000000016",
|
|
1132
|
+
type: "message.reaction_failed",
|
|
1133
|
+
version: 1,
|
|
1134
|
+
occurred_at: "2026-10-01T12:00:00Z",
|
|
1135
|
+
data: {
|
|
1136
|
+
message_id: 1001,
|
|
1137
|
+
contact_id: 2001,
|
|
1138
|
+
device_id: 4521,
|
|
1139
|
+
emoji: "\u{1F44D}",
|
|
1140
|
+
reason: "provider_rejected",
|
|
1141
|
+
requested_at: "2026-10-01T11:59:58.123456Z",
|
|
1240
1142
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1241
1143
|
workspace_id: 37
|
|
1242
1144
|
}
|
|
@@ -1246,26 +1148,24 @@ var catalog_default = {
|
|
|
1246
1148
|
type: "group.created",
|
|
1247
1149
|
area: "communities",
|
|
1248
1150
|
status: "active",
|
|
1249
|
-
|
|
1250
|
-
label: "Grupo creado",
|
|
1251
|
-
description: "Se cre\xF3 un grupo de una campa\xF1a.",
|
|
1151
|
+
description: "Se cre\xF3 o se import\xF3 un grupo dentro de una campa\xF1a de la cuenta.",
|
|
1252
1152
|
subscribable: true,
|
|
1253
1153
|
example: {
|
|
1254
|
-
id: "
|
|
1154
|
+
id: "evt_00000000000000000000000000000001",
|
|
1255
1155
|
type: "group.created",
|
|
1256
1156
|
version: 1,
|
|
1257
1157
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1258
1158
|
data: {
|
|
1259
1159
|
group: {
|
|
1260
|
-
uid: "
|
|
1160
|
+
uid: "120363000000000001@g.us",
|
|
1261
1161
|
name: "Grupo de ejemplo",
|
|
1262
1162
|
type: "group"
|
|
1263
1163
|
},
|
|
1264
1164
|
campaign: {
|
|
1265
|
-
uuid: "
|
|
1165
|
+
uuid: "00000000-0000-4000-8000-000000000001",
|
|
1266
1166
|
name: "Campa\xF1a de ejemplo"
|
|
1267
1167
|
},
|
|
1268
|
-
source: "
|
|
1168
|
+
source: "created",
|
|
1269
1169
|
workspace_id: 37
|
|
1270
1170
|
}
|
|
1271
1171
|
}
|
|
@@ -1274,26 +1174,24 @@ var catalog_default = {
|
|
|
1274
1174
|
type: "group.invite_link_down",
|
|
1275
1175
|
area: "communities",
|
|
1276
1176
|
status: "active",
|
|
1277
|
-
|
|
1278
|
-
label: "Link de invitaci\xF3n ca\xEDdo",
|
|
1279
|
-
description: "El link de invitaci\xF3n de un grupo dej\xF3 de funcionar.",
|
|
1177
|
+
description: "El enlace de invitaci\xF3n de un grupo qued\xF3 confirmado ca\xEDdo (WhatsApp respondi\xF3 que no existe y la renovaci\xF3n no consigui\xF3 otro); no se publica por errores transitorios ni por grupos prohibidos o suspendidos, y se publica una sola vez por episodio de bloqueo.",
|
|
1280
1178
|
subscribable: true,
|
|
1281
1179
|
example: {
|
|
1282
|
-
id: "
|
|
1180
|
+
id: "evt_0000000000000000000000000000000d",
|
|
1283
1181
|
type: "group.invite_link_down",
|
|
1284
1182
|
version: 1,
|
|
1285
1183
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1286
1184
|
data: {
|
|
1287
1185
|
group: {
|
|
1288
|
-
uid: "
|
|
1186
|
+
uid: "120363000000000001@g.us",
|
|
1289
1187
|
name: "Grupo de ejemplo",
|
|
1290
1188
|
type: "group"
|
|
1291
1189
|
},
|
|
1292
1190
|
campaign: {
|
|
1293
|
-
uuid: "
|
|
1191
|
+
uuid: "00000000-0000-4000-8000-000000000001",
|
|
1294
1192
|
name: "Campa\xF1a de ejemplo"
|
|
1295
1193
|
},
|
|
1296
|
-
reason: "
|
|
1194
|
+
reason: "http_404",
|
|
1297
1195
|
renewal_attempted: true,
|
|
1298
1196
|
workspace_id: 37
|
|
1299
1197
|
}
|
|
@@ -1303,29 +1201,27 @@ var catalog_default = {
|
|
|
1303
1201
|
type: "group.invite_link_renewed",
|
|
1304
1202
|
area: "communities",
|
|
1305
1203
|
status: "active",
|
|
1306
|
-
|
|
1307
|
-
label: "Link de invitaci\xF3n renovado",
|
|
1308
|
-
description: "Se renov\xF3 el link de invitaci\xF3n de un grupo.",
|
|
1204
|
+
description: "El enlace de invitaci\xF3n de un grupo cambi\xF3 por una renovaci\xF3n, autom\xE1tica al detectarse inv\xE1lido o pedida por el usuario; no se publican los cambios que detecta la sincronizaci\xF3n ni el enlace inicial al crear el grupo.",
|
|
1309
1205
|
subscribable: true,
|
|
1310
1206
|
example: {
|
|
1311
|
-
id: "
|
|
1207
|
+
id: "evt_0000000000000000000000000000000c",
|
|
1312
1208
|
type: "group.invite_link_renewed",
|
|
1313
1209
|
version: 1,
|
|
1314
1210
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1315
1211
|
data: {
|
|
1316
1212
|
group: {
|
|
1317
|
-
uid: "
|
|
1213
|
+
uid: "120363000000000001@g.us",
|
|
1318
1214
|
name: "Grupo de ejemplo",
|
|
1319
1215
|
type: "group"
|
|
1320
1216
|
},
|
|
1321
1217
|
campaign: {
|
|
1322
|
-
uuid: "
|
|
1218
|
+
uuid: "00000000-0000-4000-8000-000000000001",
|
|
1323
1219
|
name: "Campa\xF1a de ejemplo"
|
|
1324
1220
|
},
|
|
1325
|
-
invite_link: "https://chat.whatsapp.com/
|
|
1326
|
-
previous_invite_link: "https://chat.whatsapp.com/
|
|
1221
|
+
invite_link: "https://chat.whatsapp.com/EjemploNuevo0000000000001",
|
|
1222
|
+
previous_invite_link: "https://chat.whatsapp.com/EjemploAnterior000000000001",
|
|
1327
1223
|
trigger: "automatic",
|
|
1328
|
-
recovered:
|
|
1224
|
+
recovered: false,
|
|
1329
1225
|
workspace_id: 37
|
|
1330
1226
|
}
|
|
1331
1227
|
}
|
|
@@ -1334,27 +1230,23 @@ var catalog_default = {
|
|
|
1334
1230
|
type: "group_participant.joined",
|
|
1335
1231
|
area: "communities",
|
|
1336
1232
|
status: "active",
|
|
1337
|
-
|
|
1338
|
-
label: "Participante se uni\xF3",
|
|
1339
|
-
description: "Una persona entr\xF3 a un grupo.",
|
|
1233
|
+
description: "A person joined one of the account's groups.",
|
|
1340
1234
|
subscribable: true,
|
|
1341
1235
|
example: {
|
|
1342
|
-
id: "
|
|
1236
|
+
id: "evt_00000000000000000000000000000002",
|
|
1343
1237
|
type: "group_participant.joined",
|
|
1344
1238
|
version: 1,
|
|
1345
1239
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1346
1240
|
data: {
|
|
1347
1241
|
group: {
|
|
1348
|
-
uid: "
|
|
1349
|
-
name: "
|
|
1350
|
-
},
|
|
1351
|
-
campaign: {
|
|
1352
|
-
uuid: "xK9mQz"
|
|
1242
|
+
uid: "120363000000000001@g.us",
|
|
1243
|
+
name: "Example group"
|
|
1353
1244
|
},
|
|
1245
|
+
campaign: null,
|
|
1354
1246
|
participant: {
|
|
1355
1247
|
identity: "5491100000000",
|
|
1356
1248
|
identity_type: "phone",
|
|
1357
|
-
name: "Ana
|
|
1249
|
+
name: "Ana"
|
|
1358
1250
|
},
|
|
1359
1251
|
workspace_id: 37
|
|
1360
1252
|
}
|
|
@@ -1364,27 +1256,23 @@ var catalog_default = {
|
|
|
1364
1256
|
type: "group_participant.left",
|
|
1365
1257
|
area: "communities",
|
|
1366
1258
|
status: "active",
|
|
1367
|
-
|
|
1368
|
-
label: "Participante sali\xF3",
|
|
1369
|
-
description: "Una persona sali\xF3 de un grupo.",
|
|
1259
|
+
description: "A person left one of the account's groups.",
|
|
1370
1260
|
subscribable: true,
|
|
1371
1261
|
example: {
|
|
1372
|
-
id: "
|
|
1262
|
+
id: "evt_00000000000000000000000000000003",
|
|
1373
1263
|
type: "group_participant.left",
|
|
1374
1264
|
version: 1,
|
|
1375
1265
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1376
1266
|
data: {
|
|
1377
1267
|
group: {
|
|
1378
|
-
uid: "
|
|
1379
|
-
name: "
|
|
1380
|
-
},
|
|
1381
|
-
campaign: {
|
|
1382
|
-
uuid: "xK9mQz"
|
|
1268
|
+
uid: "120363000000000001@g.us",
|
|
1269
|
+
name: "Example group"
|
|
1383
1270
|
},
|
|
1271
|
+
campaign: null,
|
|
1384
1272
|
participant: {
|
|
1385
1273
|
identity: "5491100000000",
|
|
1386
1274
|
identity_type: "phone",
|
|
1387
|
-
name: "Ana
|
|
1275
|
+
name: "Ana"
|
|
1388
1276
|
},
|
|
1389
1277
|
workspace_id: 37
|
|
1390
1278
|
}
|
|
@@ -1394,26 +1282,24 @@ var catalog_default = {
|
|
|
1394
1282
|
type: "scheduled_message.group_delivery_failed",
|
|
1395
1283
|
area: "communities",
|
|
1396
1284
|
status: "active",
|
|
1397
|
-
|
|
1398
|
-
label: "Mensaje programado no entregado a un grupo",
|
|
1399
|
-
description: "Un mensaje programado no pudo entregarse a un grupo. Reemplaza la alerta \xABmensaje fallido\xBB de las campa\xF1as y avisa en m\xE1s casos.",
|
|
1285
|
+
description: "Un env\xEDo programado fall\xF3 en un grupo concreto, con el motivo desagregado.",
|
|
1400
1286
|
subscribable: true,
|
|
1401
1287
|
example: {
|
|
1402
|
-
id: "
|
|
1288
|
+
id: "evt_00000000000000000000000000000007",
|
|
1403
1289
|
type: "scheduled_message.group_delivery_failed",
|
|
1404
1290
|
version: 1,
|
|
1405
1291
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1406
1292
|
data: {
|
|
1407
1293
|
scheduled_message: {
|
|
1408
|
-
uuid: "
|
|
1294
|
+
uuid: "00000000-0000-4000-8000-000000000007"
|
|
1409
1295
|
},
|
|
1410
1296
|
group: {
|
|
1411
|
-
uid: "
|
|
1297
|
+
uid: "120363000000000001@g.us",
|
|
1412
1298
|
name: "Grupo de ejemplo"
|
|
1413
1299
|
},
|
|
1414
|
-
reason: "
|
|
1300
|
+
reason: "device_disconnected",
|
|
1415
1301
|
partial: false,
|
|
1416
|
-
occurrence:
|
|
1302
|
+
occurrence: 1,
|
|
1417
1303
|
workspace_id: 37
|
|
1418
1304
|
}
|
|
1419
1305
|
}
|
|
@@ -1422,31 +1308,31 @@ var catalog_default = {
|
|
|
1422
1308
|
type: "scheduled_message.response_received",
|
|
1423
1309
|
area: "communities",
|
|
1424
1310
|
status: "active",
|
|
1425
|
-
|
|
1426
|
-
label: "Respuesta a un mensaje programado",
|
|
1427
|
-
description: "Se recibi\xF3 una respuesta a un mensaje programado.",
|
|
1311
|
+
description: "Alguien respondi\xF3 a un env\xEDo programado votando una encuesta o respondiendo a un evento.",
|
|
1428
1312
|
subscribable: true,
|
|
1429
1313
|
example: {
|
|
1430
|
-
id: "
|
|
1314
|
+
id: "evt_00000000000000000000000000000008",
|
|
1431
1315
|
type: "scheduled_message.response_received",
|
|
1432
1316
|
version: 1,
|
|
1433
1317
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1434
1318
|
data: {
|
|
1435
1319
|
scheduled_message: {
|
|
1436
|
-
uuid: "
|
|
1320
|
+
uuid: "00000000-0000-4000-8000-000000000008"
|
|
1437
1321
|
},
|
|
1438
1322
|
group: {
|
|
1439
|
-
uid: "
|
|
1323
|
+
uid: "120363000000000001@g.us"
|
|
1440
1324
|
},
|
|
1441
1325
|
participant: {
|
|
1442
|
-
identity: "5491100000000",
|
|
1326
|
+
identity: "+5491100000000",
|
|
1443
1327
|
identity_type: "phone",
|
|
1444
|
-
name: "Ana
|
|
1328
|
+
name: "Ana P\xE9rez"
|
|
1445
1329
|
},
|
|
1446
1330
|
response: {
|
|
1447
|
-
type: "
|
|
1448
|
-
options: [
|
|
1449
|
-
|
|
1331
|
+
type: "poll",
|
|
1332
|
+
options: [
|
|
1333
|
+
"Opci\xF3n A"
|
|
1334
|
+
],
|
|
1335
|
+
rsvp: null
|
|
1450
1336
|
},
|
|
1451
1337
|
workspace_id: 37
|
|
1452
1338
|
}
|
|
@@ -1456,29 +1342,27 @@ var catalog_default = {
|
|
|
1456
1342
|
type: "poll.voted",
|
|
1457
1343
|
area: "communities",
|
|
1458
1344
|
status: "active",
|
|
1459
|
-
|
|
1460
|
-
label: "Voto en una encuesta",
|
|
1461
|
-
description: "Alguien vot\xF3 en una encuesta enviada a un grupo.",
|
|
1345
|
+
description: "Un participante vot\xF3 en una encuesta enviada a un grupo, o cambi\xF3 su voto.",
|
|
1462
1346
|
subscribable: true,
|
|
1463
1347
|
example: {
|
|
1464
|
-
id: "
|
|
1348
|
+
id: "evt_0000000000000000000000000000000b",
|
|
1465
1349
|
type: "poll.voted",
|
|
1466
1350
|
version: 1,
|
|
1467
1351
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1468
1352
|
data: {
|
|
1469
1353
|
poll: {
|
|
1470
|
-
uid: "
|
|
1354
|
+
uid: "3EB0000000000000000001"
|
|
1471
1355
|
},
|
|
1472
1356
|
group: {
|
|
1473
|
-
uid: "
|
|
1357
|
+
uid: "120363000000000001@g.us"
|
|
1474
1358
|
},
|
|
1475
1359
|
scheduled_message: {
|
|
1476
|
-
uuid: "
|
|
1360
|
+
uuid: "00000000-0000-4000-8000-000000000004"
|
|
1477
1361
|
},
|
|
1478
1362
|
participant: {
|
|
1479
|
-
identity: "5491100000000",
|
|
1363
|
+
identity: "+5491100000000",
|
|
1480
1364
|
identity_type: "phone",
|
|
1481
|
-
name:
|
|
1365
|
+
name: null
|
|
1482
1366
|
},
|
|
1483
1367
|
options: [
|
|
1484
1368
|
"Opci\xF3n A"
|
|
@@ -1491,31 +1375,30 @@ var catalog_default = {
|
|
|
1491
1375
|
type: "pipeline.finished",
|
|
1492
1376
|
area: "communities",
|
|
1493
1377
|
status: "active",
|
|
1494
|
-
|
|
1495
|
-
label: "Pipeline finalizado",
|
|
1496
|
-
description: "Termin\xF3 la ejecuci\xF3n de un pipeline de una campa\xF1a.",
|
|
1378
|
+
description: "Termin\xF3 un pipeline de operaciones sobre grupos, con su resultado agregado y la clave de idempotencia del pedido que lo origin\xF3, cuando la hay.",
|
|
1497
1379
|
subscribable: true,
|
|
1498
1380
|
example: {
|
|
1499
|
-
id: "
|
|
1381
|
+
id: "evt_0000000000000000000000000000000a",
|
|
1500
1382
|
type: "pipeline.finished",
|
|
1501
1383
|
version: 1,
|
|
1502
1384
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1503
1385
|
data: {
|
|
1504
1386
|
campaign: {
|
|
1505
|
-
uuid: "
|
|
1387
|
+
uuid: "00000000-0000-4000-8000-00000000000a"
|
|
1506
1388
|
},
|
|
1507
1389
|
pipeline: {
|
|
1508
|
-
uuid: "
|
|
1390
|
+
uuid: "00000000-0000-4000-8000-00000000000b",
|
|
1509
1391
|
name: "Pipeline de ejemplo"
|
|
1510
1392
|
},
|
|
1511
1393
|
outcome: "completed",
|
|
1512
1394
|
actions: {
|
|
1513
1395
|
total: 5,
|
|
1514
1396
|
succeeded: 4,
|
|
1515
|
-
failed:
|
|
1516
|
-
skipped:
|
|
1397
|
+
failed: 0,
|
|
1398
|
+
skipped: 1,
|
|
1517
1399
|
cancelled: 0
|
|
1518
1400
|
},
|
|
1401
|
+
idempotency_key: "00000000-0000-4000-8000-00000000000d",
|
|
1519
1402
|
workspace_id: 37
|
|
1520
1403
|
}
|
|
1521
1404
|
}
|
|
@@ -1524,24 +1407,22 @@ var catalog_default = {
|
|
|
1524
1407
|
type: "group.blocked",
|
|
1525
1408
|
area: "communities",
|
|
1526
1409
|
status: "active",
|
|
1527
|
-
|
|
1528
|
-
label: "Grupo bloqueado",
|
|
1529
|
-
description: "Un grupo de una campa\xF1a qued\xF3 bloqueado y no puede usarse.",
|
|
1410
|
+
description: "Un grupo qued\xF3 inoperable: sin administrador conectado, con el link de invitaci\xF3n inv\xE1lido o suspendido por WhatsApp.",
|
|
1530
1411
|
subscribable: true,
|
|
1531
1412
|
example: {
|
|
1532
|
-
id: "
|
|
1413
|
+
id: "evt_00000000000000000000000000000005",
|
|
1533
1414
|
type: "group.blocked",
|
|
1534
1415
|
version: 1,
|
|
1535
1416
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1536
1417
|
data: {
|
|
1537
1418
|
group: {
|
|
1538
|
-
uid: "
|
|
1419
|
+
uid: "120363000000000001@g.us",
|
|
1539
1420
|
name: "Grupo de ejemplo"
|
|
1540
1421
|
},
|
|
1541
1422
|
campaign: {
|
|
1542
|
-
uuid: "
|
|
1423
|
+
uuid: "00000000-0000-4000-8000-000000000001"
|
|
1543
1424
|
},
|
|
1544
|
-
reason: "
|
|
1425
|
+
reason: "admin_access_lost",
|
|
1545
1426
|
workspace_id: 37
|
|
1546
1427
|
}
|
|
1547
1428
|
}
|
|
@@ -1550,24 +1431,22 @@ var catalog_default = {
|
|
|
1550
1431
|
type: "group.recovered",
|
|
1551
1432
|
area: "communities",
|
|
1552
1433
|
status: "active",
|
|
1553
|
-
|
|
1554
|
-
label: "Grupo recuperado",
|
|
1555
|
-
description: "Un grupo que estaba bloqueado volvi\xF3 a estar disponible.",
|
|
1434
|
+
description: "Un grupo que estaba bloqueado volvi\xF3 a operar.",
|
|
1556
1435
|
subscribable: true,
|
|
1557
1436
|
example: {
|
|
1558
|
-
id: "
|
|
1437
|
+
id: "evt_00000000000000000000000000000006",
|
|
1559
1438
|
type: "group.recovered",
|
|
1560
1439
|
version: 1,
|
|
1561
1440
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1562
1441
|
data: {
|
|
1563
1442
|
group: {
|
|
1564
|
-
uid: "
|
|
1443
|
+
uid: "120363000000000001@g.us",
|
|
1565
1444
|
name: "Grupo de ejemplo"
|
|
1566
1445
|
},
|
|
1567
1446
|
campaign: {
|
|
1568
|
-
uuid: "
|
|
1447
|
+
uuid: "00000000-0000-4000-8000-000000000001"
|
|
1569
1448
|
},
|
|
1570
|
-
reason: "
|
|
1449
|
+
reason: "access_restored",
|
|
1571
1450
|
workspace_id: 37
|
|
1572
1451
|
}
|
|
1573
1452
|
}
|
|
@@ -1576,18 +1455,16 @@ var catalog_default = {
|
|
|
1576
1455
|
type: "campaign.status_changed",
|
|
1577
1456
|
area: "communities",
|
|
1578
1457
|
status: "active",
|
|
1579
|
-
|
|
1580
|
-
label: "Cambio de estado de campa\xF1a",
|
|
1581
|
-
description: "Una campa\xF1a cambi\xF3 de estado.",
|
|
1458
|
+
description: "Una campa\xF1a se activ\xF3 o se paus\xF3.",
|
|
1582
1459
|
subscribable: true,
|
|
1583
1460
|
example: {
|
|
1584
|
-
id: "
|
|
1461
|
+
id: "evt_00000000000000000000000000000009",
|
|
1585
1462
|
type: "campaign.status_changed",
|
|
1586
1463
|
version: 1,
|
|
1587
1464
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1588
1465
|
data: {
|
|
1589
1466
|
campaign: {
|
|
1590
|
-
uuid: "
|
|
1467
|
+
uuid: "00000000-0000-4000-8000-000000000009",
|
|
1591
1468
|
name: "Campa\xF1a de ejemplo"
|
|
1592
1469
|
},
|
|
1593
1470
|
from: "active",
|
|
@@ -1600,27 +1477,25 @@ var catalog_default = {
|
|
|
1600
1477
|
type: "scheduled_message.finished",
|
|
1601
1478
|
area: "communities",
|
|
1602
1479
|
status: "active",
|
|
1603
|
-
|
|
1604
|
-
label: "Mensaje programado finalizado",
|
|
1605
|
-
description: "Termin\xF3 el env\xEDo de un mensaje programado a sus grupos, con su resultado y el conteo de grupos con fallas.",
|
|
1480
|
+
description: "Un env\xEDo programado termin\xF3, con su resultado agregado.",
|
|
1606
1481
|
subscribable: true,
|
|
1607
1482
|
example: {
|
|
1608
|
-
id: "
|
|
1483
|
+
id: "evt_00000000000000000000000000000004",
|
|
1609
1484
|
type: "scheduled_message.finished",
|
|
1610
1485
|
version: 1,
|
|
1611
1486
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1612
1487
|
data: {
|
|
1613
1488
|
scheduled_message: {
|
|
1614
|
-
uuid: "
|
|
1615
|
-
name: "
|
|
1489
|
+
uuid: "00000000-0000-4000-8000-000000000004",
|
|
1490
|
+
name: "Env\xEDo de ejemplo"
|
|
1616
1491
|
},
|
|
1617
|
-
outcome: "
|
|
1492
|
+
outcome: "partially_failed",
|
|
1618
1493
|
groups: {
|
|
1619
1494
|
total: 10,
|
|
1620
1495
|
failed: 1,
|
|
1621
1496
|
partially_failed: 2
|
|
1622
1497
|
},
|
|
1623
|
-
occurrence:
|
|
1498
|
+
occurrence: 1,
|
|
1624
1499
|
workspace_id: 37
|
|
1625
1500
|
}
|
|
1626
1501
|
}
|
|
@@ -1629,9 +1504,7 @@ var catalog_default = {
|
|
|
1629
1504
|
type: "group_action.failed",
|
|
1630
1505
|
area: "communities",
|
|
1631
1506
|
status: "active",
|
|
1632
|
-
|
|
1633
|
-
label: "Acci\xF3n sobre un grupo fallida",
|
|
1634
|
-
description: "Una acci\xF3n sobre un grupo fall\xF3 entera (si termin\xF3 con resultados por persona, llega `group_action.completed`). Si la pidi\xF3 la API, `action.uuid` es el mismo `action_id` que devolvi\xF3 al pedirla y `pipeline` viene `null`. Si la ejecut\xF3 una campa\xF1a o un pipeline, `action.uuid` viene `null`, y `pipeline` trae ese pipeline (`uuid` y `name`) o viene `null` fuera de un pipeline. `reason` es el motivo de la falla. `group` y `campaign` pueden venir `null`.",
|
|
1507
|
+
description: "An action on a group of a campaign failed.",
|
|
1635
1508
|
subscribable: true,
|
|
1636
1509
|
example: {
|
|
1637
1510
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -1639,20 +1512,17 @@ var catalog_default = {
|
|
|
1639
1512
|
version: 1,
|
|
1640
1513
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1641
1514
|
data: {
|
|
1642
|
-
campaign:
|
|
1643
|
-
uuid: "xK9mQz",
|
|
1644
|
-
name: "Campa\xF1a de ejemplo"
|
|
1645
|
-
},
|
|
1515
|
+
campaign: null,
|
|
1646
1516
|
pipeline: null,
|
|
1647
1517
|
group: {
|
|
1648
|
-
uid: "
|
|
1649
|
-
name: "
|
|
1518
|
+
uid: "120363000000000001@g.us",
|
|
1519
|
+
name: "Example group"
|
|
1650
1520
|
},
|
|
1651
1521
|
action: {
|
|
1652
|
-
uuid: "
|
|
1653
|
-
type: "
|
|
1522
|
+
uuid: "9b2f0a8e-1c3d-4e5f-8a7b-6c5d4e3f2a10",
|
|
1523
|
+
type: "update_name"
|
|
1654
1524
|
},
|
|
1655
|
-
reason: "
|
|
1525
|
+
reason: "device_not_group_admin",
|
|
1656
1526
|
workspace_id: 37
|
|
1657
1527
|
}
|
|
1658
1528
|
}
|
|
@@ -1661,8 +1531,6 @@ var catalog_default = {
|
|
|
1661
1531
|
type: "daily_report.generated",
|
|
1662
1532
|
area: "communities",
|
|
1663
1533
|
status: "active",
|
|
1664
|
-
is_critical: false,
|
|
1665
|
-
label: "Reporte diario generado",
|
|
1666
1534
|
description: "Se gener\xF3 el reporte diario de la cuenta (clics, ingresos y salidas).",
|
|
1667
1535
|
subscribable: true,
|
|
1668
1536
|
example: {
|
|
@@ -1687,8 +1555,6 @@ var catalog_default = {
|
|
|
1687
1555
|
type: "campaign.no_groups_available",
|
|
1688
1556
|
area: "communities",
|
|
1689
1557
|
status: "active",
|
|
1690
|
-
is_critical: false,
|
|
1691
|
-
label: "Campa\xF1a sin grupos disponibles",
|
|
1692
1558
|
description: "Una campa\xF1a no tiene grupos a los que dirigir a las personas que entran por su link.",
|
|
1693
1559
|
subscribable: true,
|
|
1694
1560
|
example: {
|
|
@@ -1710,8 +1576,6 @@ var catalog_default = {
|
|
|
1710
1576
|
type: "group.full",
|
|
1711
1577
|
area: "communities",
|
|
1712
1578
|
status: "active",
|
|
1713
|
-
is_critical: false,
|
|
1714
|
-
label: "Grupo lleno",
|
|
1715
1579
|
description: "Un grupo pas\xF3 de no estar lleno a estarlo.",
|
|
1716
1580
|
subscribable: true,
|
|
1717
1581
|
example: {
|
|
@@ -1739,9 +1603,7 @@ var catalog_default = {
|
|
|
1739
1603
|
type: "group_action.completed",
|
|
1740
1604
|
area: "communities",
|
|
1741
1605
|
status: "active",
|
|
1742
|
-
|
|
1743
|
-
label: "Acci\xF3n sobre un grupo completada",
|
|
1744
|
-
description: "Termin\xF3 una acci\xF3n sobre un grupo. `action.uuid` es el mismo `action_id` que devolvi\xF3 la API al pedirla, y `action.type` dice qu\xE9 acci\xF3n fue. `result` depende del tipo de acci\xF3n: en las que reciben una lista de tel\xE9fonos (agregar o quitar participantes, nombrar o quitar administradores) trae `participants`, con el resultado por persona: `identity`, `identity_type`, `status` (`added`, `removed`, `promoted` o `demoted` seg\xFAn la acci\xF3n, o `failed`) y `reason`, que es `null` salvo cuando `status` es `failed`; al crear un grupo o renovar su link de invitaci\xF3n trae `invite_link`; al enviar un mensaje trae `message.uid`; en las dem\xE1s (cambiar el nombre, la descripci\xF3n, la foto o los ajustes) viene como objeto vac\xEDo (`{}`). `group` y `campaign` pueden venir `null`.",
|
|
1606
|
+
description: "A group action asked through the API finished, such as a message to a group. `action.uuid` is the `action_id` it returned; sending, `result.message.uid` is the id of the message in WhatsApp.",
|
|
1745
1607
|
subscribable: true,
|
|
1746
1608
|
example: {
|
|
1747
1609
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -1750,26 +1612,18 @@ var catalog_default = {
|
|
|
1750
1612
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1751
1613
|
data: {
|
|
1752
1614
|
action: {
|
|
1753
|
-
uuid: "
|
|
1754
|
-
type: "
|
|
1615
|
+
uuid: "9b2f0a8e-1c3d-4e5f-8a7b-6c5d4e3f2a10",
|
|
1616
|
+
type: "send_message"
|
|
1755
1617
|
},
|
|
1756
1618
|
group: {
|
|
1757
|
-
uid: "
|
|
1758
|
-
name: "
|
|
1759
|
-
},
|
|
1760
|
-
campaign: {
|
|
1761
|
-
uuid: "xK9mQz",
|
|
1762
|
-
name: "Campa\xF1a de ejemplo"
|
|
1619
|
+
uid: "120363000000000001@g.us",
|
|
1620
|
+
name: "Example group"
|
|
1763
1621
|
},
|
|
1622
|
+
campaign: null,
|
|
1764
1623
|
result: {
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
identity_type: "phone",
|
|
1769
|
-
status: "added",
|
|
1770
|
-
reason: null
|
|
1771
|
-
}
|
|
1772
|
-
]
|
|
1624
|
+
message: {
|
|
1625
|
+
uid: "3EB0C767D26A1D4E5F6A"
|
|
1626
|
+
}
|
|
1773
1627
|
},
|
|
1774
1628
|
workspace_id: 37
|
|
1775
1629
|
}
|
|
@@ -1779,9 +1633,7 @@ var catalog_default = {
|
|
|
1779
1633
|
type: "group.message_received",
|
|
1780
1634
|
area: "communities",
|
|
1781
1635
|
status: "active",
|
|
1782
|
-
|
|
1783
|
-
label: "Mensaje recibido en un grupo",
|
|
1784
|
-
description: "Una persona escribi\xF3 un mensaje en un grupo.",
|
|
1636
|
+
description: "Someone wrote in a group of one of your numbers. Not emitted for the messages of your own numbers.",
|
|
1785
1637
|
subscribable: true,
|
|
1786
1638
|
example: {
|
|
1787
1639
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -1790,18 +1642,23 @@ var catalog_default = {
|
|
|
1790
1642
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1791
1643
|
data: {
|
|
1792
1644
|
group: {
|
|
1793
|
-
uid: "
|
|
1794
|
-
name: "
|
|
1645
|
+
uid: "120363000000000001@g.us",
|
|
1646
|
+
name: "Example group"
|
|
1647
|
+
},
|
|
1648
|
+
message: {
|
|
1649
|
+
uid: "3EB0C0FFEE0000000001",
|
|
1650
|
+
type: "text",
|
|
1651
|
+
text: "Hello everyone",
|
|
1652
|
+
caption: null,
|
|
1653
|
+
media_url: null,
|
|
1654
|
+
mime_type: null,
|
|
1655
|
+
file_name: null,
|
|
1656
|
+
quoted_uid: null
|
|
1795
1657
|
},
|
|
1796
1658
|
participant: {
|
|
1797
1659
|
identity: "5491100000000",
|
|
1798
1660
|
identity_type: "phone",
|
|
1799
|
-
name:
|
|
1800
|
-
},
|
|
1801
|
-
message: {
|
|
1802
|
-
id: "msg-ejemplo-01",
|
|
1803
|
-
type: "text",
|
|
1804
|
-
text: "Hola a todos"
|
|
1661
|
+
name: null
|
|
1805
1662
|
},
|
|
1806
1663
|
workspace_id: 37
|
|
1807
1664
|
}
|
|
@@ -1811,9 +1668,7 @@ var catalog_default = {
|
|
|
1811
1668
|
type: "group.reaction_added",
|
|
1812
1669
|
area: "communities",
|
|
1813
1670
|
status: "active",
|
|
1814
|
-
|
|
1815
|
-
label: "Reacci\xF3n en un grupo",
|
|
1816
|
-
description: "Una persona reaccion\xF3 a un mensaje de un grupo.",
|
|
1671
|
+
description: "Someone reacted to a message of a group.",
|
|
1817
1672
|
subscribable: true,
|
|
1818
1673
|
example: {
|
|
1819
1674
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -1822,16 +1677,16 @@ var catalog_default = {
|
|
|
1822
1677
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1823
1678
|
data: {
|
|
1824
1679
|
group: {
|
|
1825
|
-
uid: "
|
|
1826
|
-
name: "
|
|
1680
|
+
uid: "120363000000000001@g.us",
|
|
1681
|
+
name: "Example group"
|
|
1682
|
+
},
|
|
1683
|
+
message: {
|
|
1684
|
+
uid: "3EB0C0FFEE0000000001"
|
|
1827
1685
|
},
|
|
1828
1686
|
participant: {
|
|
1829
1687
|
identity: "5491100000000",
|
|
1830
1688
|
identity_type: "phone",
|
|
1831
|
-
name:
|
|
1832
|
-
},
|
|
1833
|
-
message: {
|
|
1834
|
-
id: "msg-ejemplo-01"
|
|
1689
|
+
name: null
|
|
1835
1690
|
},
|
|
1836
1691
|
reaction: "\u{1F44D}",
|
|
1837
1692
|
workspace_id: 37
|
|
@@ -1842,9 +1697,7 @@ var catalog_default = {
|
|
|
1842
1697
|
type: "group_join_request.created",
|
|
1843
1698
|
area: "communities",
|
|
1844
1699
|
status: "active",
|
|
1845
|
-
|
|
1846
|
-
label: "Solicitud para unirse a un grupo",
|
|
1847
|
-
description: 'Una persona pidi\xF3 unirse a un grupo oficial que pide aprobaci\xF3n para entrar, y su solicitud qued\xF3 pendiente. Si el grupo es de una campa\xF1a, tambi\xE9n llega a las suscripciones filtradas por esa campa\xF1a. Se aprueba o rechaza por API con el tel\xE9fono de la persona, cuando el n\xFAmero anuncia `groups.join_requests` en `"list_and_decide"`; el resultado por persona llega en `group_action.completed`.',
|
|
1700
|
+
description: "Someone asked to join a group that requires approval.",
|
|
1848
1701
|
subscribable: true,
|
|
1849
1702
|
example: {
|
|
1850
1703
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -1853,13 +1706,13 @@ var catalog_default = {
|
|
|
1853
1706
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1854
1707
|
data: {
|
|
1855
1708
|
group: {
|
|
1856
|
-
uid: "
|
|
1857
|
-
name: "
|
|
1709
|
+
uid: "120363000000000001@g.us",
|
|
1710
|
+
name: "Example group"
|
|
1858
1711
|
},
|
|
1859
1712
|
participant: {
|
|
1860
1713
|
identity: "5491100000000",
|
|
1861
1714
|
identity_type: "phone",
|
|
1862
|
-
name:
|
|
1715
|
+
name: null
|
|
1863
1716
|
},
|
|
1864
1717
|
workspace_id: 37
|
|
1865
1718
|
}
|
|
@@ -1869,9 +1722,7 @@ var catalog_default = {
|
|
|
1869
1722
|
type: "group_join_request.revoked",
|
|
1870
1723
|
area: "communities",
|
|
1871
1724
|
status: "active",
|
|
1872
|
-
|
|
1873
|
-
label: "Solicitud para unirse retirada",
|
|
1874
|
-
description: "Una persona retir\xF3 su solicitud pendiente para unirse a un grupo antes de que se aprobara o rechazara. Trae los mismos campos que `group_join_request.created`.",
|
|
1725
|
+
description: "Someone withdrew their request to join a group.",
|
|
1875
1726
|
subscribable: true,
|
|
1876
1727
|
example: {
|
|
1877
1728
|
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
@@ -1880,17 +1731,35 @@ var catalog_default = {
|
|
|
1880
1731
|
occurred_at: "2026-10-01T12:00:00Z",
|
|
1881
1732
|
data: {
|
|
1882
1733
|
group: {
|
|
1883
|
-
uid: "
|
|
1884
|
-
name: "
|
|
1734
|
+
uid: "120363000000000001@g.us",
|
|
1735
|
+
name: "Example group"
|
|
1885
1736
|
},
|
|
1886
1737
|
participant: {
|
|
1887
1738
|
identity: "5491100000000",
|
|
1888
1739
|
identity_type: "phone",
|
|
1889
|
-
name:
|
|
1740
|
+
name: null
|
|
1890
1741
|
},
|
|
1891
1742
|
workspace_id: 37
|
|
1892
1743
|
}
|
|
1893
1744
|
}
|
|
1745
|
+
},
|
|
1746
|
+
{
|
|
1747
|
+
type: "webhook.test",
|
|
1748
|
+
area: "accounts",
|
|
1749
|
+
status: "active",
|
|
1750
|
+
description: "Evento de prueba enviado desde la ruta de prueba de una suscripci\xF3n.",
|
|
1751
|
+
subscribable: false,
|
|
1752
|
+
example: {
|
|
1753
|
+
id: "evt_000000000000000000000002",
|
|
1754
|
+
type: "webhook.test",
|
|
1755
|
+
version: 1,
|
|
1756
|
+
occurred_at: "2026-10-01T12:00:00Z",
|
|
1757
|
+
data: {
|
|
1758
|
+
subscription: "00000000-0000-4000-8000-000000000001",
|
|
1759
|
+
sent_at: "2026-10-01T12:00:00Z",
|
|
1760
|
+
workspace_id: 37
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1894
1763
|
}
|
|
1895
1764
|
]
|
|
1896
1765
|
};
|
|
@@ -35616,6 +35485,24 @@ var openapi_default = {
|
|
|
35616
35485
|
]
|
|
35617
35486
|
}
|
|
35618
35487
|
}
|
|
35488
|
+
},
|
|
35489
|
+
example: {
|
|
35490
|
+
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
35491
|
+
type: "device.connected",
|
|
35492
|
+
version: 1,
|
|
35493
|
+
occurred_at: "2026-10-05T03:00:00Z",
|
|
35494
|
+
data: {
|
|
35495
|
+
device: {
|
|
35496
|
+
id: 4521,
|
|
35497
|
+
name: "Ventas",
|
|
35498
|
+
number: "5491100000000",
|
|
35499
|
+
connection: "qr",
|
|
35500
|
+
external_reference: "cliente-42"
|
|
35501
|
+
},
|
|
35502
|
+
connected_at: "2026-10-05T03:00:00+00:00",
|
|
35503
|
+
connect_link_id: 812,
|
|
35504
|
+
workspace_id: 37
|
|
35505
|
+
}
|
|
35619
35506
|
}
|
|
35620
35507
|
}
|
|
35621
35508
|
}
|
|
@@ -35685,6 +35572,25 @@ var openapi_default = {
|
|
|
35685
35572
|
]
|
|
35686
35573
|
}
|
|
35687
35574
|
}
|
|
35575
|
+
},
|
|
35576
|
+
example: {
|
|
35577
|
+
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
35578
|
+
type: "device.disconnected",
|
|
35579
|
+
version: 1,
|
|
35580
|
+
occurred_at: "2026-10-05T03:00:00Z",
|
|
35581
|
+
data: {
|
|
35582
|
+
device: {
|
|
35583
|
+
id: 4521,
|
|
35584
|
+
name: "Ventas",
|
|
35585
|
+
number: "5491100000000",
|
|
35586
|
+
connection: "qr",
|
|
35587
|
+
external_reference: "cliente-42"
|
|
35588
|
+
},
|
|
35589
|
+
disconnected_at: "2026-10-05T03:00:00+00:00",
|
|
35590
|
+
reason: "qr_logged_out",
|
|
35591
|
+
connect_link_id: 812,
|
|
35592
|
+
workspace_id: 37
|
|
35593
|
+
}
|
|
35688
35594
|
}
|
|
35689
35595
|
}
|
|
35690
35596
|
}
|
|
@@ -36532,6 +36438,24 @@ var openapi_default = {
|
|
|
36532
36438
|
]
|
|
36533
36439
|
}
|
|
36534
36440
|
}
|
|
36441
|
+
},
|
|
36442
|
+
example: {
|
|
36443
|
+
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
36444
|
+
type: "device.deleted",
|
|
36445
|
+
version: 1,
|
|
36446
|
+
occurred_at: "2026-10-05T03:00:00Z",
|
|
36447
|
+
data: {
|
|
36448
|
+
device: {
|
|
36449
|
+
id: 4521,
|
|
36450
|
+
name: "Ventas",
|
|
36451
|
+
number: "5491100000000",
|
|
36452
|
+
connection: "qr",
|
|
36453
|
+
external_reference: "cliente-42"
|
|
36454
|
+
},
|
|
36455
|
+
deleted_at: "2026-10-05T03:00:00+00:00",
|
|
36456
|
+
connect_link_id: 812,
|
|
36457
|
+
workspace_id: 37
|
|
36458
|
+
}
|
|
36535
36459
|
}
|
|
36536
36460
|
}
|
|
36537
36461
|
}
|
|
@@ -36609,6 +36533,26 @@ var openapi_default = {
|
|
|
36609
36533
|
]
|
|
36610
36534
|
}
|
|
36611
36535
|
}
|
|
36536
|
+
},
|
|
36537
|
+
example: {
|
|
36538
|
+
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
36539
|
+
type: "device.health_changed",
|
|
36540
|
+
version: 1,
|
|
36541
|
+
occurred_at: "2026-10-05T03:00:00Z",
|
|
36542
|
+
data: {
|
|
36543
|
+
device: {
|
|
36544
|
+
id: 4522,
|
|
36545
|
+
name: "Soporte",
|
|
36546
|
+
number: "5491100000000",
|
|
36547
|
+
connection: "dedicated",
|
|
36548
|
+
external_reference: "cliente-42"
|
|
36549
|
+
},
|
|
36550
|
+
previous_state: "available",
|
|
36551
|
+
state: "limited",
|
|
36552
|
+
changed_at: "2026-10-05T03:00:00+00:00",
|
|
36553
|
+
connect_link_id: null,
|
|
36554
|
+
workspace_id: 37
|
|
36555
|
+
}
|
|
36612
36556
|
}
|
|
36613
36557
|
}
|
|
36614
36558
|
}
|
|
@@ -36674,6 +36618,26 @@ var openapi_default = {
|
|
|
36674
36618
|
]
|
|
36675
36619
|
}
|
|
36676
36620
|
}
|
|
36621
|
+
},
|
|
36622
|
+
example: {
|
|
36623
|
+
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
36624
|
+
type: "device.quality_changed",
|
|
36625
|
+
version: 1,
|
|
36626
|
+
occurred_at: "2026-10-05T03:00:00Z",
|
|
36627
|
+
data: {
|
|
36628
|
+
device: {
|
|
36629
|
+
id: 4522,
|
|
36630
|
+
name: "Soporte",
|
|
36631
|
+
number: "5491100000000",
|
|
36632
|
+
connection: "dedicated",
|
|
36633
|
+
external_reference: "cliente-42"
|
|
36634
|
+
},
|
|
36635
|
+
previous: "GREEN",
|
|
36636
|
+
current: "YELLOW",
|
|
36637
|
+
changed_at: "2026-10-05T03:00:00+00:00",
|
|
36638
|
+
connect_link_id: null,
|
|
36639
|
+
workspace_id: 37
|
|
36640
|
+
}
|
|
36677
36641
|
}
|
|
36678
36642
|
}
|
|
36679
36643
|
}
|
|
@@ -36739,6 +36703,26 @@ var openapi_default = {
|
|
|
36739
36703
|
]
|
|
36740
36704
|
}
|
|
36741
36705
|
}
|
|
36706
|
+
},
|
|
36707
|
+
example: {
|
|
36708
|
+
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
36709
|
+
type: "device.messaging_limit_changed",
|
|
36710
|
+
version: 1,
|
|
36711
|
+
occurred_at: "2026-10-05T03:00:00Z",
|
|
36712
|
+
data: {
|
|
36713
|
+
device: {
|
|
36714
|
+
id: 4522,
|
|
36715
|
+
name: "Soporte",
|
|
36716
|
+
number: "5491100000000",
|
|
36717
|
+
connection: "dedicated",
|
|
36718
|
+
external_reference: "cliente-42"
|
|
36719
|
+
},
|
|
36720
|
+
previous: "TIER_1K",
|
|
36721
|
+
current: "TIER_10K",
|
|
36722
|
+
changed_at: "2026-10-05T03:00:00+00:00",
|
|
36723
|
+
connect_link_id: null,
|
|
36724
|
+
workspace_id: 37
|
|
36725
|
+
}
|
|
36742
36726
|
}
|
|
36743
36727
|
}
|
|
36744
36728
|
}
|
|
@@ -36829,6 +36813,29 @@ var openapi_default = {
|
|
|
36829
36813
|
]
|
|
36830
36814
|
}
|
|
36831
36815
|
}
|
|
36816
|
+
},
|
|
36817
|
+
example: {
|
|
36818
|
+
id: "evt_0f8e4b526c1d4c7a9a3e2b5d",
|
|
36819
|
+
type: "device.display_name_reviewed",
|
|
36820
|
+
version: 1,
|
|
36821
|
+
occurred_at: "2026-10-05T03:00:00Z",
|
|
36822
|
+
data: {
|
|
36823
|
+
device: {
|
|
36824
|
+
id: 4522,
|
|
36825
|
+
name: "Soporte",
|
|
36826
|
+
number: "5491100000000",
|
|
36827
|
+
connection: "dedicated",
|
|
36828
|
+
external_reference: "cliente-42"
|
|
36829
|
+
},
|
|
36830
|
+
decision: "approved",
|
|
36831
|
+
previous_status: "PENDING_REVIEW",
|
|
36832
|
+
status: "APPROVED",
|
|
36833
|
+
verified_name: "Soporte Lucky Shrub",
|
|
36834
|
+
rejection_reason: null,
|
|
36835
|
+
reviewed_at: "2026-10-05T03:00:00+00:00",
|
|
36836
|
+
connect_link_id: null,
|
|
36837
|
+
workspace_id: 37
|
|
36838
|
+
}
|
|
36832
36839
|
}
|
|
36833
36840
|
}
|
|
36834
36841
|
}
|
|
@@ -37355,33 +37362,41 @@ var openapi_default = {
|
|
|
37355
37362
|
description: "The id of the message in the history of the contact."
|
|
37356
37363
|
},
|
|
37357
37364
|
type: {
|
|
37358
|
-
|
|
37359
|
-
|
|
37360
|
-
|
|
37361
|
-
|
|
37362
|
-
|
|
37363
|
-
|
|
37364
|
-
|
|
37365
|
-
|
|
37366
|
-
|
|
37367
|
-
|
|
37368
|
-
|
|
37369
|
-
|
|
37370
|
-
|
|
37371
|
-
|
|
37372
|
-
|
|
37373
|
-
|
|
37374
|
-
|
|
37375
|
-
|
|
37376
|
-
|
|
37377
|
-
|
|
37378
|
-
|
|
37379
|
-
|
|
37380
|
-
|
|
37381
|
-
|
|
37382
|
-
|
|
37383
|
-
|
|
37384
|
-
|
|
37365
|
+
description: "The known types; new ones may appear, so any other string is accepted too.",
|
|
37366
|
+
anyOf: [
|
|
37367
|
+
{
|
|
37368
|
+
type: "string",
|
|
37369
|
+
enum: [
|
|
37370
|
+
"text",
|
|
37371
|
+
"image",
|
|
37372
|
+
"video",
|
|
37373
|
+
"document",
|
|
37374
|
+
"sticker",
|
|
37375
|
+
"contact",
|
|
37376
|
+
"audio",
|
|
37377
|
+
"note",
|
|
37378
|
+
"action",
|
|
37379
|
+
"invalid",
|
|
37380
|
+
"interactive",
|
|
37381
|
+
"location",
|
|
37382
|
+
"voice_call",
|
|
37383
|
+
"video_call",
|
|
37384
|
+
"event",
|
|
37385
|
+
"button",
|
|
37386
|
+
"template",
|
|
37387
|
+
"notification",
|
|
37388
|
+
"option_list",
|
|
37389
|
+
"template_button_reply",
|
|
37390
|
+
"poll",
|
|
37391
|
+
"whatsapp_form",
|
|
37392
|
+
"call_permission_request",
|
|
37393
|
+
"call_permission_reply",
|
|
37394
|
+
"request_contact_info"
|
|
37395
|
+
]
|
|
37396
|
+
},
|
|
37397
|
+
{
|
|
37398
|
+
type: "string"
|
|
37399
|
+
}
|
|
37385
37400
|
]
|
|
37386
37401
|
},
|
|
37387
37402
|
text: {
|
|
@@ -37641,6 +37656,27 @@ var openapi_default = {
|
|
|
37641
37656
|
]
|
|
37642
37657
|
}
|
|
37643
37658
|
}
|
|
37659
|
+
},
|
|
37660
|
+
example: {
|
|
37661
|
+
id: "evt_000000000000000000000014",
|
|
37662
|
+
type: "message.status_changed",
|
|
37663
|
+
version: 1,
|
|
37664
|
+
occurred_at: "2026-10-01T12:00:00Z",
|
|
37665
|
+
data: {
|
|
37666
|
+
message_id: 1001,
|
|
37667
|
+
contact_id: 2001,
|
|
37668
|
+
device_id: 4521,
|
|
37669
|
+
status: "failed",
|
|
37670
|
+
previous_status: "sent",
|
|
37671
|
+
error: {
|
|
37672
|
+
code: 131047,
|
|
37673
|
+
title: "Re-engagement message",
|
|
37674
|
+
reason: null
|
|
37675
|
+
},
|
|
37676
|
+
occurred_at: "2026-10-01T12:00:00Z",
|
|
37677
|
+
client_reference: "pedido-1001",
|
|
37678
|
+
workspace_id: 37
|
|
37679
|
+
}
|
|
37644
37680
|
}
|
|
37645
37681
|
}
|
|
37646
37682
|
}
|
|
@@ -37710,10 +37746,8 @@ var openapi_default = {
|
|
|
37710
37746
|
type: "string"
|
|
37711
37747
|
},
|
|
37712
37748
|
label: {
|
|
37713
|
-
type:
|
|
37714
|
-
|
|
37715
|
-
"null"
|
|
37716
|
-
]
|
|
37749
|
+
type: "string",
|
|
37750
|
+
description: "The question's label, or its name when it has none."
|
|
37717
37751
|
},
|
|
37718
37752
|
value: {
|
|
37719
37753
|
anyOf: [
|
|
@@ -48432,8 +48466,8 @@ var openapi_default = {
|
|
|
48432
48466
|
generated_by: "scripts/generate.mjs",
|
|
48433
48467
|
note: "GENERATED: do not edit it. The portal's snapshot plus the pending layers.",
|
|
48434
48468
|
inputs: {
|
|
48435
|
-
"spec/funnelchat.json": "
|
|
48436
|
-
"spec/pending.json": "
|
|
48469
|
+
"spec/funnelchat.json": "37c54a5aad4cc467e088af50294012484692ef668714dcdd748babc7314b587f",
|
|
48470
|
+
"spec/pending.json": "dd7b8cf6e5be45ddf1c0c00a9f4480cceec11b364adec083bbf989fa11944d9d",
|
|
48437
48471
|
"spec/pending-sandbox.json": "32bcbfef902fbabd57e1626f4d97e964b89f3c561c7b0f0e21531c8576019aaf"
|
|
48438
48472
|
},
|
|
48439
48473
|
snapshot_commit: null,
|
|
@@ -48948,16 +48982,6 @@ function exampleFor(schema, name = "") {
|
|
|
48948
48982
|
}
|
|
48949
48983
|
|
|
48950
48984
|
// src/webhooks/catalog.ts
|
|
48951
|
-
var GROUP = { uid: "120363000000000000@g.us", name: "Grupo de ejemplo" };
|
|
48952
|
-
var PARTICIPANT = { identity: "5491100000000", identity_type: "phone", name: "Ana Ejemplo" };
|
|
48953
|
-
var EMITTED = {
|
|
48954
|
-
"group.message_received": {
|
|
48955
|
-
group: GROUP,
|
|
48956
|
-
message: { uid: "msg-ejemplo-01", type: "text", text: "Hola a todos", caption: null, media_url: null, mime_type: null, file_name: null, quoted_uid: null },
|
|
48957
|
-
participant: PARTICIPANT
|
|
48958
|
-
},
|
|
48959
|
-
"group.reaction_added": { group: GROUP, message: { uid: "msg-ejemplo-01" }, participant: PARTICIPANT, reaction: "\u{1F44D}" }
|
|
48960
|
-
};
|
|
48961
48985
|
var eventTypeOfKey = (key) => key.replace(/\s*\(.*\)\s*$/, "");
|
|
48962
48986
|
function specData(type) {
|
|
48963
48987
|
for (const [key, item] of Object.entries(spec.webhooks ?? {})) {
|
|
@@ -48977,7 +49001,7 @@ function isSubscribable(type) {
|
|
|
48977
49001
|
return catalogEntry(type)?.subscribable === true;
|
|
48978
49002
|
}
|
|
48979
49003
|
function emittedData(entry) {
|
|
48980
|
-
return structuredClone(
|
|
49004
|
+
return structuredClone(entry.example?.data ?? specData(entry.type));
|
|
48981
49005
|
}
|
|
48982
49006
|
function catalogResponse() {
|
|
48983
49007
|
return {
|
|
@@ -49520,7 +49544,7 @@ function shapeOnlyAnswer(op) {
|
|
|
49520
49544
|
|
|
49521
49545
|
// package.json
|
|
49522
49546
|
var package_default = {
|
|
49523
|
-
version: "0.
|
|
49547
|
+
version: "0.5.0"};
|
|
49524
49548
|
|
|
49525
49549
|
// src/version.ts
|
|
49526
49550
|
var VERSION = package_default.version;
|
|
@@ -54038,5 +54062,5 @@ function createSandbox(options = {}) {
|
|
|
54038
54062
|
}
|
|
54039
54063
|
|
|
54040
54064
|
export { ConfigError, DEFAULT_CONFIG_FILE, DEFAULT_PORT, DELIVERY_HEADER, EDGE_ERRORS, EVENT_HEADER, FAILURE_REASONS, FORM_TEMPLATES, META_ERRORS, REJECTIONS, REQUEST_ID_HEADER, SEND_FILE_TYPES, SIGNATURE_HEADER, SIMULATED_HEADER, SUPPORTED_EXTENSIONS, VERSION, catalog, createSandbox, defaultConfig, mergeConfig, parseArgs, resolveConfig, signature };
|
|
54041
|
-
//# sourceMappingURL=chunk-
|
|
54042
|
-
//# sourceMappingURL=chunk-
|
|
54065
|
+
//# sourceMappingURL=chunk-67XBJEXM.js.map
|
|
54066
|
+
//# sourceMappingURL=chunk-67XBJEXM.js.map
|