@topy-ai/maggie 0.7.48 → 0.7.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README-zh-TW.md +2 -2
  2. package/README.md +31 -4
  3. package/bin/maggie.js +17 -4
  4. package/bundled-contracts/google-integrations/capability-report-v2.schema.json +2 -1
  5. package/bundled-contracts/maggie-content/email-localization-v1.schema.json +89 -0
  6. package/bundled-contracts/maggie-content/lifecycle-email-v1.schema.json +76 -0
  7. package/bundled-contracts/maggie-deployment/readiness-v1.schema.json +6 -1
  8. package/bundled-contracts/maggie-ops/marketing-run-v1.schema.json +89 -0
  9. package/bundled-contracts/maggie-ops/notification-catalogue-example-v1.json +941 -0
  10. package/bundled-contracts/maggie-ops/notification-catalogue-v1.schema.json +273 -0
  11. package/bundled-contracts/maggie-service-booking/fact-provenance-v1.schema.json +128 -0
  12. package/bundled-contracts/maggie-service-booking/import-stages-v1.schema.json +191 -0
  13. package/bundled-references/google-integrations-runbook.md +54 -0
  14. package/bundled-skills/maggie-content-localization/SKILL.md +17 -1
  15. package/bundled-skills/maggie-content-localization/references/email-and-lifecycle.md +83 -0
  16. package/bundled-skills/maggie-deployment/SKILL.md +89 -7
  17. package/bundled-skills/maggie-deployment/references/vps.md +38 -6
  18. package/bundled-skills/maggie-design/SKILL.md +55 -0
  19. package/bundled-skills/maggie-feedback/SKILL.md +29 -0
  20. package/bundled-skills/maggie-ops/SKILL.md +37 -0
  21. package/bundled-skills/maggie-ops/references/notifications-operations.md +154 -0
  22. package/bundled-skills/maggie-service-booking/SKILL.md +59 -0
  23. package/bundled-skills/maggie-social-share/SKILL.md +19 -2
  24. package/bundled-skills/maggie-social-share/references/marketing-run.md +57 -0
  25. package/bundled-skills/maggie-social-share/references/queue-and-connections.md +51 -0
  26. package/bundled-tools/clis/maggie_deployment.py +58 -17
  27. package/bundled-tools/clis/maggie_deployment_auth_canary.py +216 -0
  28. package/bundled-tools/clis/maggie_deployment_collect.py +225 -0
  29. package/bundled-tools/clis/maggie_deployment_readiness.py +53 -3
  30. package/bundled-tools/clis/maggie_design.py +8 -0
  31. package/bundled-tools/clis/maggie_design_verify.py +359 -0
  32. package/bundled-tools/clis/maggie_docs.py +82 -4
  33. package/bundled-tools/clis/maggie_email_localization.py +382 -0
  34. package/bundled-tools/clis/maggie_feedback.py +9 -2
  35. package/bundled-tools/clis/maggie_icon_glyph_check.py +382 -0
  36. package/bundled-tools/clis/maggie_icon_release_gate.py +28 -1
  37. package/bundled-tools/clis/maggie_localization.py +5 -0
  38. package/bundled-tools/clis/maggie_marketing_run.py +272 -0
  39. package/bundled-tools/clis/maggie_notifications.py +528 -0
  40. package/bundled-tools/clis/maggie_ops.py +87 -0
  41. package/bundled-tools/clis/maggie_schedule.py +12 -2
  42. package/bundled-tools/clis/maggie_service_import.py +520 -0
  43. package/bundled-tools/clis/maggie_social_queue.py +104 -0
  44. package/bundled-tools/clis/maggie_social_share.py +6 -2
  45. package/bundled-tools/runtime/google_ads.py +306 -0
  46. package/bundled-tools/runtime/google_capabilities.py +18 -2
  47. package/bundled-tools/runtime/google_remediation.py +152 -0
  48. package/package.json +1 -1
  49. package/references/google-integrations-runbook.md +54 -0
@@ -0,0 +1,941 @@
1
+ {
2
+ "schemaVersion": "maggie-notification-catalogue.v1",
3
+ "project": "example-website",
4
+ "retention": {
5
+ "webhook-payload": {
6
+ "days": 30,
7
+ "storeRawPayload": false,
8
+ "minimizedFields": [
9
+ "type",
10
+ "providerMessageId",
11
+ "status",
12
+ "occurredAt"
13
+ ]
14
+ },
15
+ "delivery-record": {
16
+ "days": 365
17
+ },
18
+ "rendered-snapshot": {
19
+ "days": 14
20
+ },
21
+ "template-variables": {
22
+ "days": 30
23
+ }
24
+ },
25
+ "entries": [
26
+ {
27
+ "alias": "auth.email-verification",
28
+ "section": "identity-security",
29
+ "trigger": "account created or email changed",
30
+ "audience": "user",
31
+ "category": "transactional",
32
+ "consent": "not-required",
33
+ "locales": [
34
+ "en",
35
+ "zh-CN"
36
+ ],
37
+ "markets": [
38
+ "gb"
39
+ ],
40
+ "variables": [
41
+ "name",
42
+ "verifyUrl"
43
+ ],
44
+ "cta": null,
45
+ "idempotencyKey": "verify:{userId}:{emailVersion}",
46
+ "retentionDays": 30,
47
+ "provider": "auth-provider",
48
+ "channels": [
49
+ "email"
50
+ ],
51
+ "status": "provider-owned",
52
+ "delivery": "provider",
53
+ "queue": "user"
54
+ },
55
+ {
56
+ "alias": "auth.password-reset",
57
+ "section": "identity-security",
58
+ "trigger": "password reset requested",
59
+ "audience": "user",
60
+ "category": "transactional",
61
+ "consent": "not-required",
62
+ "locales": [
63
+ "en",
64
+ "zh-CN"
65
+ ],
66
+ "markets": [
67
+ "gb"
68
+ ],
69
+ "variables": [
70
+ "resetUrl",
71
+ "expiresInMinutes"
72
+ ],
73
+ "cta": null,
74
+ "idempotencyKey": "reset:{requestId}",
75
+ "retentionDays": 30,
76
+ "provider": "auth-provider",
77
+ "channels": [
78
+ "email"
79
+ ],
80
+ "status": "provider-owned",
81
+ "delivery": "provider",
82
+ "queue": "user"
83
+ },
84
+ {
85
+ "alias": "auth.sign-in-alert",
86
+ "section": "identity-security",
87
+ "trigger": "sign-in from a new device",
88
+ "audience": "user",
89
+ "category": "transactional",
90
+ "consent": "not-required",
91
+ "locales": [
92
+ "en",
93
+ "zh-CN"
94
+ ],
95
+ "markets": [
96
+ "gb"
97
+ ],
98
+ "variables": [
99
+ "device",
100
+ "location",
101
+ "occurredAt"
102
+ ],
103
+ "cta": {
104
+ "label": "Review activity",
105
+ "route": "/account/security"
106
+ },
107
+ "idempotencyKey": "signin:{sessionId}",
108
+ "retentionDays": 90,
109
+ "provider": "resend",
110
+ "channels": [
111
+ "email"
112
+ ],
113
+ "status": "implemented",
114
+ "delivery": "outbox",
115
+ "queue": "user"
116
+ },
117
+ {
118
+ "alias": "auth.credential-changed",
119
+ "section": "identity-security",
120
+ "trigger": "email, password, 2FA or passkey changed",
121
+ "audience": "user",
122
+ "category": "transactional",
123
+ "consent": "not-required",
124
+ "locales": [
125
+ "en",
126
+ "zh-CN"
127
+ ],
128
+ "markets": [
129
+ "gb"
130
+ ],
131
+ "variables": [
132
+ "change",
133
+ "occurredAt"
134
+ ],
135
+ "cta": {
136
+ "label": "Secure account",
137
+ "route": "/account/security"
138
+ },
139
+ "idempotencyKey": "credential:{userId}:{eventId}",
140
+ "retentionDays": 365,
141
+ "provider": "resend",
142
+ "channels": [
143
+ "email"
144
+ ],
145
+ "status": "implemented",
146
+ "delivery": "outbox",
147
+ "queue": "user"
148
+ },
149
+ {
150
+ "alias": "account.deletion-confirmed",
151
+ "section": "identity-security",
152
+ "trigger": "account deletion completed",
153
+ "audience": "user",
154
+ "category": "transactional",
155
+ "consent": "not-required",
156
+ "locales": [
157
+ "en",
158
+ "zh-CN"
159
+ ],
160
+ "markets": [
161
+ "gb"
162
+ ],
163
+ "variables": [
164
+ "name"
165
+ ],
166
+ "cta": null,
167
+ "idempotencyKey": "deletion:{userId}",
168
+ "retentionDays": 30,
169
+ "provider": "resend",
170
+ "channels": [
171
+ "email"
172
+ ],
173
+ "status": "implemented",
174
+ "delivery": "outbox",
175
+ "queue": "user"
176
+ },
177
+ {
178
+ "alias": "account.welcome",
179
+ "section": "account",
180
+ "trigger": "first verified sign-in",
181
+ "audience": "user",
182
+ "category": "transactional",
183
+ "consent": "not-required",
184
+ "locales": [
185
+ "en",
186
+ "zh-CN"
187
+ ],
188
+ "markets": [
189
+ "gb"
190
+ ],
191
+ "variables": [
192
+ "name"
193
+ ],
194
+ "cta": {
195
+ "label": "Get started",
196
+ "route": "/account"
197
+ },
198
+ "idempotencyKey": "welcome:{userId}",
199
+ "retentionDays": 365,
200
+ "provider": "resend",
201
+ "channels": [
202
+ "email"
203
+ ],
204
+ "status": "implemented",
205
+ "delivery": "outbox",
206
+ "queue": "user"
207
+ },
208
+ {
209
+ "alias": "account.onboarding-reminder",
210
+ "section": "account",
211
+ "trigger": "onboarding incomplete after 3 days",
212
+ "audience": "user",
213
+ "category": "transactional",
214
+ "consent": "not-required",
215
+ "locales": [
216
+ "en",
217
+ "zh-CN"
218
+ ],
219
+ "markets": [
220
+ "gb"
221
+ ],
222
+ "variables": [
223
+ "name",
224
+ "nextStep"
225
+ ],
226
+ "cta": {
227
+ "label": "Continue setup",
228
+ "route": "/onboarding"
229
+ },
230
+ "idempotencyKey": "onboarding:{userId}:{step}",
231
+ "retentionDays": 365,
232
+ "provider": "resend",
233
+ "channels": [
234
+ "email"
235
+ ],
236
+ "status": "reserved",
237
+ "delivery": "outbox",
238
+ "queue": "user"
239
+ },
240
+ {
241
+ "alias": "account.preferences-updated",
242
+ "section": "account",
243
+ "trigger": "notification preferences changed",
244
+ "audience": "user",
245
+ "category": "transactional",
246
+ "consent": "not-required",
247
+ "locales": [
248
+ "en",
249
+ "zh-CN"
250
+ ],
251
+ "markets": [
252
+ "gb"
253
+ ],
254
+ "variables": [
255
+ "summary"
256
+ ],
257
+ "cta": null,
258
+ "idempotencyKey": "prefs:{userId}:{version}",
259
+ "retentionDays": 365,
260
+ "provider": "resend",
261
+ "channels": [
262
+ "in-app"
263
+ ],
264
+ "status": "implemented",
265
+ "delivery": "outbox",
266
+ "queue": "user"
267
+ },
268
+ {
269
+ "alias": "business.claim-submitted",
270
+ "section": "business",
271
+ "trigger": "listing claim submitted",
272
+ "audience": "merchant",
273
+ "category": "transactional",
274
+ "consent": "not-required",
275
+ "locales": [
276
+ "en",
277
+ "zh-CN"
278
+ ],
279
+ "markets": [
280
+ "gb"
281
+ ],
282
+ "variables": [
283
+ "businessName"
284
+ ],
285
+ "cta": {
286
+ "label": "View claim",
287
+ "route": "/business/claims/{claimId}"
288
+ },
289
+ "idempotencyKey": "claim:{claimId}:submitted",
290
+ "retentionDays": 365,
291
+ "provider": "resend",
292
+ "channels": [
293
+ "email"
294
+ ],
295
+ "status": "implemented",
296
+ "delivery": "outbox",
297
+ "queue": "user"
298
+ },
299
+ {
300
+ "alias": "business.claim-status",
301
+ "section": "business",
302
+ "trigger": "claim approved or rejected",
303
+ "audience": "merchant",
304
+ "category": "transactional",
305
+ "consent": "not-required",
306
+ "locales": [
307
+ "en",
308
+ "zh-CN"
309
+ ],
310
+ "markets": [
311
+ "gb"
312
+ ],
313
+ "variables": [
314
+ "businessName",
315
+ "status"
316
+ ],
317
+ "cta": {
318
+ "label": "Open dashboard",
319
+ "route": "/business"
320
+ },
321
+ "idempotencyKey": "claim:{claimId}:{status}",
322
+ "retentionDays": 365,
323
+ "provider": "resend",
324
+ "channels": [
325
+ "email"
326
+ ],
327
+ "status": "implemented",
328
+ "delivery": "outbox",
329
+ "queue": "user"
330
+ },
331
+ {
332
+ "alias": "business.team-invite",
333
+ "section": "business",
334
+ "trigger": "team member invited",
335
+ "audience": "team",
336
+ "category": "transactional",
337
+ "consent": "not-required",
338
+ "locales": [
339
+ "en",
340
+ "zh-CN"
341
+ ],
342
+ "markets": [
343
+ "gb"
344
+ ],
345
+ "variables": [
346
+ "businessName",
347
+ "inviterName",
348
+ "acceptUrl"
349
+ ],
350
+ "cta": {
351
+ "label": "Accept invite",
352
+ "route": "/invite/{inviteId}"
353
+ },
354
+ "idempotencyKey": "invite:{inviteId}",
355
+ "retentionDays": 365,
356
+ "provider": "resend",
357
+ "channels": [
358
+ "email"
359
+ ],
360
+ "status": "implemented",
361
+ "delivery": "outbox",
362
+ "queue": "user"
363
+ },
364
+ {
365
+ "alias": "business.import-result",
366
+ "section": "business",
367
+ "trigger": "service import or sync finished or failed",
368
+ "audience": "merchant",
369
+ "category": "transactional",
370
+ "consent": "not-required",
371
+ "locales": [
372
+ "en",
373
+ "zh-CN"
374
+ ],
375
+ "markets": [
376
+ "gb"
377
+ ],
378
+ "variables": [
379
+ "source",
380
+ "status",
381
+ "count"
382
+ ],
383
+ "cta": {
384
+ "label": "Review import",
385
+ "route": "/business/services"
386
+ },
387
+ "idempotencyKey": "import:{jobId}:{status}",
388
+ "retentionDays": 365,
389
+ "provider": "resend",
390
+ "channels": [
391
+ "email",
392
+ "in-app"
393
+ ],
394
+ "status": "implemented",
395
+ "delivery": "outbox",
396
+ "queue": "user"
397
+ },
398
+ {
399
+ "alias": "billing.subscription-active",
400
+ "section": "billing",
401
+ "trigger": "checkout completed",
402
+ "audience": "merchant",
403
+ "category": "transactional",
404
+ "consent": "not-required",
405
+ "locales": [
406
+ "en",
407
+ "zh-CN"
408
+ ],
409
+ "markets": [
410
+ "gb"
411
+ ],
412
+ "variables": [
413
+ "plan",
414
+ "amount"
415
+ ],
416
+ "cta": {
417
+ "label": "Billing",
418
+ "route": "/business/billing"
419
+ },
420
+ "idempotencyKey": "billing:{subscriptionId}:active",
421
+ "retentionDays": 2555,
422
+ "provider": "resend",
423
+ "channels": [
424
+ "email"
425
+ ],
426
+ "status": "implemented",
427
+ "delivery": "outbox",
428
+ "queue": "user"
429
+ },
430
+ {
431
+ "alias": "billing.payment-failed",
432
+ "section": "billing",
433
+ "trigger": "invoice payment failed",
434
+ "audience": "merchant",
435
+ "category": "transactional",
436
+ "consent": "not-required",
437
+ "locales": [
438
+ "en",
439
+ "zh-CN"
440
+ ],
441
+ "markets": [
442
+ "gb"
443
+ ],
444
+ "variables": [
445
+ "amount",
446
+ "retryAt"
447
+ ],
448
+ "cta": {
449
+ "label": "Update payment",
450
+ "route": "/business/billing"
451
+ },
452
+ "idempotencyKey": "billing:{invoiceId}:failed",
453
+ "retentionDays": 2555,
454
+ "provider": "resend",
455
+ "channels": [
456
+ "email"
457
+ ],
458
+ "status": "implemented",
459
+ "delivery": "outbox",
460
+ "queue": "user"
461
+ },
462
+ {
463
+ "alias": "billing.receipt",
464
+ "section": "billing",
465
+ "trigger": "invoice paid",
466
+ "audience": "merchant",
467
+ "category": "transactional",
468
+ "consent": "not-required",
469
+ "locales": [
470
+ "en",
471
+ "zh-CN"
472
+ ],
473
+ "markets": [
474
+ "gb"
475
+ ],
476
+ "variables": [
477
+ "amount",
478
+ "invoiceUrl"
479
+ ],
480
+ "cta": null,
481
+ "idempotencyKey": "receipt:{invoiceId}",
482
+ "retentionDays": 2555,
483
+ "provider": "stripe",
484
+ "channels": [
485
+ "email"
486
+ ],
487
+ "status": "provider-owned",
488
+ "delivery": "provider",
489
+ "queue": "user"
490
+ },
491
+ {
492
+ "alias": "billing.trial-ending",
493
+ "section": "billing",
494
+ "trigger": "trial ends in 3 days",
495
+ "audience": "merchant",
496
+ "category": "transactional",
497
+ "consent": "not-required",
498
+ "locales": [
499
+ "en",
500
+ "zh-CN"
501
+ ],
502
+ "markets": [
503
+ "gb"
504
+ ],
505
+ "variables": [
506
+ "plan",
507
+ "endsAt"
508
+ ],
509
+ "cta": {
510
+ "label": "Choose plan",
511
+ "route": "/business/billing"
512
+ },
513
+ "idempotencyKey": "trial:{subscriptionId}:ending",
514
+ "retentionDays": 365,
515
+ "provider": "resend",
516
+ "channels": [
517
+ "email"
518
+ ],
519
+ "status": "missing",
520
+ "delivery": "outbox",
521
+ "queue": "user"
522
+ },
523
+ {
524
+ "alias": "support.contact-receipt",
525
+ "section": "support",
526
+ "trigger": "visitor contact form submitted",
527
+ "audience": "visitor",
528
+ "category": "support",
529
+ "consent": "not-required",
530
+ "locales": [
531
+ "en",
532
+ "zh-CN"
533
+ ],
534
+ "markets": [
535
+ "gb"
536
+ ],
537
+ "variables": [
538
+ "name"
539
+ ],
540
+ "cta": null,
541
+ "idempotencyKey": "contact:{submissionId}:receipt",
542
+ "retentionDays": 180,
543
+ "provider": "resend",
544
+ "channels": [
545
+ "email"
546
+ ],
547
+ "status": "implemented",
548
+ "delivery": "outbox",
549
+ "queue": "user",
550
+ "lead": true
551
+ },
552
+ {
553
+ "alias": "support.contact-to-team",
554
+ "section": "support",
555
+ "trigger": "visitor contact form submitted",
556
+ "audience": "operator",
557
+ "category": "support",
558
+ "consent": "not-required",
559
+ "locales": [
560
+ "en",
561
+ "zh-CN"
562
+ ],
563
+ "markets": [
564
+ "gb"
565
+ ],
566
+ "variables": [
567
+ "topic",
568
+ "submissionId"
569
+ ],
570
+ "cta": null,
571
+ "idempotencyKey": "contact:{submissionId}:team",
572
+ "retentionDays": 180,
573
+ "provider": "resend",
574
+ "channels": [
575
+ "email"
576
+ ],
577
+ "status": "implemented",
578
+ "delivery": "outbox",
579
+ "queue": "user",
580
+ "lead": true
581
+ },
582
+ {
583
+ "alias": "support.waitlist-receipt",
584
+ "section": "support",
585
+ "trigger": "waitlist joined",
586
+ "audience": "visitor",
587
+ "category": "support",
588
+ "consent": "not-required",
589
+ "locales": [
590
+ "en",
591
+ "zh-CN"
592
+ ],
593
+ "markets": [
594
+ "gb"
595
+ ],
596
+ "variables": [
597
+ "name"
598
+ ],
599
+ "cta": null,
600
+ "idempotencyKey": "waitlist:{entryId}",
601
+ "retentionDays": 180,
602
+ "provider": "resend",
603
+ "channels": [
604
+ "email"
605
+ ],
606
+ "status": "implemented",
607
+ "delivery": "outbox",
608
+ "queue": "user",
609
+ "lead": true
610
+ },
611
+ {
612
+ "alias": "support.case-reply",
613
+ "section": "support",
614
+ "trigger": "support reply posted",
615
+ "audience": "user",
616
+ "category": "support",
617
+ "consent": "not-required",
618
+ "locales": [
619
+ "en",
620
+ "zh-CN"
621
+ ],
622
+ "markets": [
623
+ "gb"
624
+ ],
625
+ "variables": [
626
+ "caseId",
627
+ "excerpt"
628
+ ],
629
+ "cta": {
630
+ "label": "View reply",
631
+ "route": "/support/{caseId}"
632
+ },
633
+ "idempotencyKey": "case:{caseId}:{replyId}",
634
+ "retentionDays": 365,
635
+ "provider": "resend",
636
+ "channels": [
637
+ "email"
638
+ ],
639
+ "status": "implemented",
640
+ "delivery": "outbox",
641
+ "queue": "user"
642
+ },
643
+ {
644
+ "alias": "marketing.opt-in-confirmation",
645
+ "section": "marketing",
646
+ "trigger": "newsletter signup (double opt-in)",
647
+ "audience": "visitor",
648
+ "category": "marketing",
649
+ "consent": "opt-in-required",
650
+ "locales": [
651
+ "en",
652
+ "zh-CN"
653
+ ],
654
+ "markets": [
655
+ "gb"
656
+ ],
657
+ "variables": [
658
+ "confirmUrl"
659
+ ],
660
+ "cta": null,
661
+ "idempotencyKey": "optin:{subscriptionId}",
662
+ "retentionDays": 365,
663
+ "provider": "resend",
664
+ "channels": [
665
+ "email"
666
+ ],
667
+ "status": "implemented",
668
+ "delivery": "outbox",
669
+ "queue": "marketing",
670
+ "unsubscribe": true,
671
+ "frequency": "once"
672
+ },
673
+ {
674
+ "alias": "marketing.newsletter-welcome",
675
+ "section": "marketing",
676
+ "trigger": "opt-in confirmed",
677
+ "audience": "user",
678
+ "category": "marketing",
679
+ "consent": "opt-in-required",
680
+ "locales": [
681
+ "en",
682
+ "zh-CN"
683
+ ],
684
+ "markets": [
685
+ "gb"
686
+ ],
687
+ "variables": [
688
+ "name"
689
+ ],
690
+ "cta": null,
691
+ "idempotencyKey": "nl-welcome:{subscriptionId}",
692
+ "retentionDays": 365,
693
+ "provider": "resend",
694
+ "channels": [
695
+ "email"
696
+ ],
697
+ "status": "implemented",
698
+ "delivery": "outbox",
699
+ "queue": "marketing",
700
+ "unsubscribe": true,
701
+ "frequency": "once"
702
+ },
703
+ {
704
+ "alias": "marketing.content-digest",
705
+ "section": "marketing",
706
+ "trigger": "weekly guide/post digest",
707
+ "audience": "user",
708
+ "category": "marketing",
709
+ "consent": "opt-in-required",
710
+ "locales": [
711
+ "en",
712
+ "zh-CN"
713
+ ],
714
+ "markets": [
715
+ "gb"
716
+ ],
717
+ "variables": [
718
+ "items"
719
+ ],
720
+ "cta": null,
721
+ "idempotencyKey": "digest:{userId}:{isoWeek}",
722
+ "retentionDays": 365,
723
+ "provider": "resend",
724
+ "channels": [
725
+ "email"
726
+ ],
727
+ "status": "reserved",
728
+ "delivery": "outbox",
729
+ "queue": "marketing",
730
+ "unsubscribe": true,
731
+ "frequency": "weekly"
732
+ },
733
+ {
734
+ "alias": "marketing.gift-interest-follow-up",
735
+ "section": "marketing",
736
+ "trigger": "gift-card interest with marketing consent",
737
+ "audience": "visitor",
738
+ "category": "marketing",
739
+ "consent": "opt-in-required",
740
+ "locales": [
741
+ "en",
742
+ "zh-CN"
743
+ ],
744
+ "markets": [
745
+ "gb"
746
+ ],
747
+ "variables": [
748
+ "businessName"
749
+ ],
750
+ "cta": null,
751
+ "idempotencyKey": "gift-interest:{interestId}",
752
+ "retentionDays": 365,
753
+ "provider": "resend",
754
+ "channels": [
755
+ "email"
756
+ ],
757
+ "status": "implemented",
758
+ "delivery": "outbox",
759
+ "queue": "marketing",
760
+ "unsubscribe": true,
761
+ "frequency": "once",
762
+ "lead": true
763
+ },
764
+ {
765
+ "alias": "marketing.merchant-lead-digest",
766
+ "section": "marketing",
767
+ "trigger": "weekly demand summary for a merchant",
768
+ "audience": "merchant",
769
+ "category": "marketing",
770
+ "consent": "opt-in-required",
771
+ "locales": [
772
+ "en",
773
+ "zh-CN"
774
+ ],
775
+ "markets": [
776
+ "gb"
777
+ ],
778
+ "variables": [
779
+ "leadCount",
780
+ "period"
781
+ ],
782
+ "cta": null,
783
+ "idempotencyKey": "lead-digest:{businessId}:{isoWeek}",
784
+ "retentionDays": 365,
785
+ "provider": "resend",
786
+ "channels": [
787
+ "email"
788
+ ],
789
+ "status": "missing",
790
+ "delivery": "outbox",
791
+ "queue": "marketing",
792
+ "unsubscribe": true,
793
+ "frequency": "weekly"
794
+ },
795
+ {
796
+ "alias": "marketing.re-engagement",
797
+ "section": "marketing",
798
+ "trigger": "inactive 90 days",
799
+ "audience": "user",
800
+ "category": "marketing",
801
+ "consent": "opt-in-required",
802
+ "locales": [
803
+ "en",
804
+ "zh-CN"
805
+ ],
806
+ "markets": [
807
+ "gb"
808
+ ],
809
+ "variables": [
810
+ "name"
811
+ ],
812
+ "cta": null,
813
+ "idempotencyKey": "reengage:{userId}:{quarter}",
814
+ "retentionDays": 365,
815
+ "provider": "resend",
816
+ "channels": [
817
+ "email"
818
+ ],
819
+ "status": "missing",
820
+ "delivery": "outbox",
821
+ "queue": "marketing",
822
+ "unsubscribe": true,
823
+ "frequency": "quarterly"
824
+ },
825
+ {
826
+ "alias": "ops.bounce-complaint",
827
+ "section": "deliverability-ops",
828
+ "trigger": "provider bounce or complaint webhook",
829
+ "audience": "operator",
830
+ "category": "transactional",
831
+ "consent": "operator-only",
832
+ "locales": [
833
+ "en",
834
+ "zh-CN"
835
+ ],
836
+ "markets": [
837
+ "gb"
838
+ ],
839
+ "variables": [
840
+ "kind",
841
+ "count"
842
+ ],
843
+ "cta": null,
844
+ "idempotencyKey": "ops:deliverability:{date}:{kind}",
845
+ "retentionDays": 90,
846
+ "provider": "operations-channel",
847
+ "channels": [
848
+ "email"
849
+ ],
850
+ "status": "implemented",
851
+ "delivery": "direct",
852
+ "queue": "operations"
853
+ },
854
+ {
855
+ "alias": "ops.queue-health",
856
+ "section": "deliverability-ops",
857
+ "trigger": "notification health threshold exceeded",
858
+ "audience": "operator",
859
+ "category": "transactional",
860
+ "consent": "operator-only",
861
+ "locales": [
862
+ "en",
863
+ "zh-CN"
864
+ ],
865
+ "markets": [
866
+ "gb"
867
+ ],
868
+ "variables": [
869
+ "code",
870
+ "observed",
871
+ "threshold"
872
+ ],
873
+ "cta": null,
874
+ "idempotencyKey": "ops:queue:{code}:{hour}",
875
+ "retentionDays": 90,
876
+ "provider": "operations-channel",
877
+ "channels": [
878
+ "email"
879
+ ],
880
+ "status": "implemented",
881
+ "delivery": "direct",
882
+ "queue": "operations"
883
+ },
884
+ {
885
+ "alias": "ops.template-drift",
886
+ "section": "deliverability-ops",
887
+ "trigger": "templates drift found before deploy",
888
+ "audience": "operator",
889
+ "category": "transactional",
890
+ "consent": "operator-only",
891
+ "locales": [
892
+ "en",
893
+ "zh-CN"
894
+ ],
895
+ "markets": [
896
+ "gb"
897
+ ],
898
+ "variables": [
899
+ "count"
900
+ ],
901
+ "cta": null,
902
+ "idempotencyKey": "ops:drift:{release}",
903
+ "retentionDays": 90,
904
+ "provider": "operations-channel",
905
+ "channels": [
906
+ "email"
907
+ ],
908
+ "status": "implemented",
909
+ "delivery": "direct",
910
+ "queue": "operations"
911
+ },
912
+ {
913
+ "alias": "ops.sender-domain",
914
+ "section": "deliverability-ops",
915
+ "trigger": "sending domain verification lost",
916
+ "audience": "operator",
917
+ "category": "transactional",
918
+ "consent": "operator-only",
919
+ "locales": [
920
+ "en",
921
+ "zh-CN"
922
+ ],
923
+ "markets": [
924
+ "gb"
925
+ ],
926
+ "variables": [
927
+ "domain"
928
+ ],
929
+ "cta": null,
930
+ "idempotencyKey": "ops:domain:{domain}:{date}",
931
+ "retentionDays": 90,
932
+ "provider": "operations-channel",
933
+ "channels": [
934
+ "email"
935
+ ],
936
+ "status": "implemented",
937
+ "delivery": "direct",
938
+ "queue": "operations"
939
+ }
940
+ ]
941
+ }