@getlatedev/node 0.2.1364 → 0.2.1366

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.
@@ -1598,6 +1598,49 @@ export type direction = 'increase' | 'decrease';
1598
1598
  */
1599
1599
  export type AdRuleActions = Array<AdRuleAction>;
1600
1600
 
1601
+ export type AdRuleActivityEntry = {
1602
+ /**
1603
+ * Stable ID of this entry.
1604
+ */
1605
+ id: string;
1606
+ ranAt: string;
1607
+ ruleId: string;
1608
+ /**
1609
+ * The rule's name when it acted.
1610
+ */
1611
+ ruleName: string;
1612
+ platform: string;
1613
+ /**
1614
+ * The ads connection the rule runs on.
1615
+ */
1616
+ accountId: string;
1617
+ adAccountId: string;
1618
+ level: 'campaign' | 'adset';
1619
+ /**
1620
+ * Platform ID of the campaign or ad set.
1621
+ */
1622
+ objectId: string;
1623
+ /**
1624
+ * Its name when the rule acted.
1625
+ */
1626
+ objectName: (string) | null;
1627
+ type: 'pause' | 'activate' | 'adjust_budget';
1628
+ status: 'done' | 'skipped' | 'failed';
1629
+ /**
1630
+ * Why it was skipped or failed, for example `already_paused`.
1631
+ */
1632
+ reason: (string) | null;
1633
+ previousDailyBudget: (number) | null;
1634
+ newDailyBudget: (number) | null;
1635
+ currency: (string) | null;
1636
+ };
1637
+
1638
+ export type level = 'campaign' | 'adset';
1639
+
1640
+ export type type3 = 'pause' | 'activate' | 'adjust_budget';
1641
+
1642
+ export type status3 = 'done' | 'skipped' | 'failed';
1643
+
1601
1644
  export type AdRuleCondition = {
1602
1645
  /**
1603
1646
  * `ctr` is a percentage. `spend`, `cpc`, `cpm` and `cpa` are in the ad account currency.
@@ -1693,6 +1736,17 @@ export type AdRuleRun = {
1693
1736
  * The matched objects with their condition values, and what each action did.
1694
1737
  */
1695
1738
  evaluation: {
1739
+ /**
1740
+ * The rule as it was when this run happened, so its actions stay readable after the rule is renamed or deleted. Absent on runs recorded before October 2026.
1741
+ */
1742
+ rule?: {
1743
+ name?: string;
1744
+ profileId?: string;
1745
+ accountId?: string;
1746
+ platform?: string;
1747
+ platformAdAccountId?: string;
1748
+ level?: 'campaign' | 'adset';
1749
+ };
1696
1750
  today?: string;
1697
1751
  timezone?: string;
1698
1752
  timezoneAssumed?: boolean;
@@ -1728,7 +1782,7 @@ export type AdRuleRun = {
1728
1782
  */
1729
1783
  export type outcome = 'triggered' | 'cooldown' | 'no_match' | 'failed';
1730
1784
 
1731
- export type status3 = 'done' | 'failed';
1785
+ export type status4 = 'done' | 'failed';
1732
1786
 
1733
1787
  export type AdRuleSchedule = {
1734
1788
  /**
@@ -1784,7 +1838,7 @@ export type kind = 'ad_rejected' | 'delivery_issue' | 'payment' | 'budget_limite
1784
1838
 
1785
1839
  export type severity = 'error' | 'warning' | 'info';
1786
1840
 
1787
- export type level = 'ad_account' | 'campaign' | 'ad_set' | 'ad';
1841
+ export type level2 = 'ad_account' | 'campaign' | 'ad_set' | 'ad';
1788
1842
 
1789
1843
  /**
1790
1844
  * One ad schedule window as Google stores it. Half-open: it is exclusive of the end minute, so 09:00-12:00 and 12:00-17:00 are adjacent, not overlapping.
@@ -2541,7 +2595,7 @@ export type AnalyticsSinglePostResponse = {
2541
2595
  /**
2542
2596
  * Overall post status. "partial" when some platforms published and others failed. While any platform is still pending or processing, the post's own status is returned instead (usually scheduled or publishing), even if another platform already published. A post with no published or failed platform (for example every platform cancelled) returns its own status with syncStatus unavailable and no platformAnalytics.
2543
2597
  */
2544
- export type status4 = 'published' | 'failed' | 'partial' | 'scheduled' | 'publishing' | 'draft' | 'cancelled';
2598
+ export type status5 = 'published' | 'failed' | 'partial' | 'scheduled' | 'publishing' | 'draft' | 'cancelled';
2545
2599
 
2546
2600
  /**
2547
2601
  * Overall sync state across all platforms
@@ -2614,7 +2668,7 @@ export type ApiChangelogEntry = {
2614
2668
  /**
2615
2669
  * When `impact` is set, `breaking_change` means exactly `impact: action_required`.
2616
2670
  */
2617
- export type type3 = 'new_feature' | 'breaking_change' | 'improvement' | 'deprecation' | 'minor';
2671
+ export type type4 = 'new_feature' | 'breaking_change' | 'improvement' | 'deprecation' | 'minor';
2618
2672
 
2619
2673
  /**
2620
2674
  * What an integrator has to do, computed from the OpenAPI diff rather than from the prose. `action_required`: an existing call or parser can break (an operation, parameter or field removed, a field newly required, a type narrowed, an enum value removed, or authentication changed). `additive`: only new or looser things, existing integrations keep working. `none`: descriptions or examples only. Null on entries published before October 2026.
@@ -2857,7 +2911,7 @@ export type BlogArticle = {
2857
2911
  /**
2858
2912
  * WordPress and Wix. Post status (`future` = scheduled, `pending` = in review on Wix); omitted for Shopify.
2859
2913
  */
2860
- export type status5 = 'publish' | 'future' | 'draft' | 'pending' | 'private';
2914
+ export type status6 = 'publish' | 'future' | 'draft' | 'pending' | 'private';
2861
2915
 
2862
2916
  /**
2863
2917
  * Bluesky post settings. Supports text posts with up to 4 images or a single video. threadItems creates a reply chain (Bluesky thread). Images exceeding 1MB are automatically compressed. Alt text supported via mediaItem properties. Use langs to tag post language for feed-generator filtering.
@@ -3005,7 +3059,7 @@ export type BrandedCallingIdentity = {
3005
3059
  /**
3006
3060
  * requested = in Zernio review; changes_requested = answer the review (PATCH); pending_email_verification = confirm the code emailed to the authorizer; in_review = with the carrier vetting team; verified = attach numbers; rejected = fix and PATCH to resubmit; suspended = an infringement claim is open; expired = the yearly verification lapsed; permanently_rejected = terminal.
3007
3061
  */
3008
- export type status6 = 'requested' | 'changes_requested' | 'rejected' | 'pending_email_verification' | 'in_review' | 'verified' | 'suspended' | 'expired' | 'permanently_rejected';
3062
+ export type status7 = 'requested' | 'changes_requested' | 'rejected' | 'pending_email_verification' | 'in_review' | 'verified' | 'suspended' | 'expired' | 'permanently_rejected';
3009
3063
 
3010
3064
  export type BrandedCallingIdentityNumber = {
3011
3065
  phoneNumberId?: string;
@@ -3027,7 +3081,7 @@ export type BrandedCallingIdentityNumber = {
3027
3081
  /**
3028
3082
  * verified = the identity shows on calls from this number. permanently_rejected cannot be attached again anywhere.
3029
3083
  */
3030
- export type status7 = 'submitted' | 'in_review' | 'verified' | 'unsuccessful' | 'suspended' | 'expired' | 'permanently_rejected';
3084
+ export type status8 = 'submitted' | 'in_review' | 'verified' | 'unsuccessful' | 'suspended' | 'expired' | 'permanently_rejected';
3031
3085
 
3032
3086
  /**
3033
3087
  * A person the carrier vetting team phones to confirm the business. Business references are senior contacts at a vendor, partner or client; the financial reference is a CPA or a bank contact. Calls are placed in the reference's local 8am-9pm window.
@@ -3259,7 +3313,7 @@ export type BusinessAgentEventStatus = {
3259
3313
  updated_at: string;
3260
3314
  };
3261
3315
 
3262
- export type status8 = 'request_received' | 'processing' | 'sent' | 'failed' | 'skipped' | 'success';
3316
+ export type status9 = 'request_received' | 'processing' | 'sent' | 'failed' | 'skipped' | 'success';
3263
3317
 
3264
3318
  export type BusinessAgentFaq = BusinessAgentFaqInput & {
3265
3319
  id: string;
@@ -3356,7 +3410,7 @@ export type BusinessAgentSkill = BusinessAgentSkillInput & {
3356
3410
  /**
3357
3411
  * pending_review right after a write; blocked means Meta content review rejected it and the agent never applies it.
3358
3412
  */
3359
- export type status9 = 'active' | 'pending_review' | 'blocked';
3413
+ export type status10 = 'active' | 'pending_review' | 'blocked';
3360
3414
 
3361
3415
  export type BusinessAgentSkillInput = {
3362
3416
  /**
@@ -3458,7 +3512,7 @@ export type BusinessAgentUiSkillInput = {
3458
3512
 
3459
3513
  export type component_type = 'carousel_quick_reply' | 'carousel_url' | 'cta_url' | 'flow' | 'image' | 'interactive_list' | 'interactive_reply_buttons' | 'location' | 'location_request';
3460
3514
 
3461
- export type status10 = 'enabled' | 'disabled';
3515
+ export type status11 = 'enabled' | 'disabled';
3462
3516
 
3463
3517
  export type BusinessAgentWebsite = BusinessAgentWebsiteInput & {
3464
3518
  id: string;
@@ -3583,7 +3637,7 @@ export type CalendarEvent = {
3583
3637
 
3584
3638
  export type visibility = 'default' | 'public' | 'private';
3585
3639
 
3586
- export type status11 = 'confirmed' | 'tentative' | 'cancelled';
3640
+ export type status12 = 'confirmed' | 'tentative' | 'cancelled';
3587
3641
 
3588
3642
  export type CalendarEventFields = {
3589
3643
  title?: string;
@@ -3757,7 +3811,7 @@ export type channel = 'whatsapp' | 'pstn';
3757
3811
 
3758
3812
  export type direction2 = 'inbound' | 'outbound';
3759
3813
 
3760
- export type status12 = 'ringing' | 'answered' | 'ended' | 'failed';
3814
+ export type status13 = 'ringing' | 'answered' | 'ended' | 'failed';
3761
3815
 
3762
3816
  /**
3763
3817
  * Caller ID presented on the forwarded leg.
@@ -4029,7 +4083,7 @@ export type CommentAutomationDmMedia = {
4029
4083
  url: string;
4030
4084
  };
4031
4085
 
4032
- export type type4 = 'image' | 'video' | 'audio' | 'file';
4086
+ export type type5 = 'image' | 'video' | 'audio' | 'file';
4033
4087
 
4034
4088
  /**
4035
4089
  * Copy for the follow gate. Sensible defaults are used for any field left empty.
@@ -4147,7 +4201,7 @@ export type source = 'comment' | 'live_comment' | 'story_reply' | 'story_mention
4147
4201
  /**
4148
4202
  * DM outcome. 'pending' = the automation has a dmDelaySeconds and the response is queued but not sent yet. 'gated' = the follow-gate confirmation DM went out and we are waiting for the tap; it flips to 'sent' or 'skipped' when they tap. 'skipped' also covers repeatPolicy, cooldown and dedupeSameTextHours suppressions, with the reason in error.
4149
4203
  */
4150
- export type status13 = 'pending' | 'sent' | 'failed' | 'skipped' | 'gated';
4204
+ export type status14 = 'pending' | 'sent' | 'failed' | 'skipped' | 'gated';
4151
4205
 
4152
4206
  /**
4153
4207
  * How the audience rule resolved. Null on automations without one.
@@ -4251,7 +4305,7 @@ export type CommentAutomationTemplate = {
4251
4305
  elements: Array<CommentAutomationTemplateElement>;
4252
4306
  };
4253
4307
 
4254
- export type type5 = 'generic';
4308
+ export type type6 = 'generic';
4255
4309
 
4256
4310
  /**
4257
4311
  * Facebook only. How Messenger renders each element imageUrl: horizontal (1.91:1, the default) or square (1:1). Instagram has no such setting, so an Instagram automation carrying it is a 400.
@@ -4439,9 +4493,9 @@ export type platform5 = 'shopify';
4439
4493
 
4440
4494
  export type method = 'code' | 'automatic';
4441
4495
 
4442
- export type type6 = 'percentage' | 'fixed_amount' | 'free_shipping' | 'buy_x_get_y' | 'app';
4496
+ export type type7 = 'percentage' | 'fixed_amount' | 'free_shipping' | 'buy_x_get_y' | 'app';
4443
4497
 
4444
- export type status14 = 'active' | 'scheduled' | 'expired';
4498
+ export type status15 = 'active' | 'scheduled' | 'expired';
4445
4499
 
4446
4500
  export type CommerceImage = {
4447
4501
  /**
@@ -4496,7 +4550,7 @@ export type CommerceMarket = {
4496
4550
  type?: string;
4497
4551
  };
4498
4552
 
4499
- export type status15 = 'active' | 'draft';
4553
+ export type status16 = 'active' | 'draft';
4500
4554
 
4501
4555
  export type CommerceMenu = {
4502
4556
  id?: string;
@@ -4517,7 +4571,7 @@ export type CommerceMenuItem = {
4517
4571
  items?: Array<CommerceMenuItem>;
4518
4572
  };
4519
4573
 
4520
- export type type7 = 'frontpage' | 'collection' | 'collections' | 'product' | 'catalog' | 'page' | 'blog' | 'article' | 'search' | 'shop_policy' | 'http' | 'metaobject' | 'customer_account_page';
4574
+ export type type8 = 'frontpage' | 'collection' | 'collections' | 'product' | 'catalog' | 'page' | 'blog' | 'article' | 'search' | 'shop_policy' | 'http' | 'metaobject' | 'customer_account_page';
4521
4575
 
4522
4576
  export type CommerceMenuItemInput = {
4523
4577
  title: string;
@@ -5011,7 +5065,7 @@ export type ConnectHandoff = {
5011
5065
  } | null;
5012
5066
  };
5013
5067
 
5014
- export type status16 = 'waiting' | 'opened' | 'connected' | 'failed' | 'expired';
5068
+ export type status17 = 'waiting' | 'opened' | 'connected' | 'failed' | 'expired';
5015
5069
 
5016
5070
  /**
5017
5071
  * Only with `handoff=true`: the link to show as a QR code.
@@ -5232,7 +5286,7 @@ export type ConversionDestination = {
5232
5286
  * For LinkedIn, `inactive` means the rule is soft-deleted (`enabled: false`).
5233
5287
  *
5234
5288
  */
5235
- export type status17 = 'active' | 'inactive';
5289
+ export type status18 = 'active' | 'inactive';
5236
5290
 
5237
5291
  /**
5238
5292
  * A single conversion event to relay to the ad platform. All PII fields
@@ -6377,7 +6431,7 @@ export type objective = 'OUTCOME_ENGAGEMENT' | 'OUTCOME_SALES' | 'OUTCOME_LEADS'
6377
6431
  * `adSetId`, the new ads themselves.
6378
6432
  *
6379
6433
  */
6380
- export type status18 = 'ACTIVE' | 'PAUSED';
6434
+ export type status19 = 'ACTIVE' | 'PAUSED';
6381
6435
 
6382
6436
  /**
6383
6437
  * Campaign-level status, same semantics as `POST /v1/ads/create`. Defaults
@@ -6777,7 +6831,7 @@ export type privacy_level = 2;
6777
6831
  /**
6778
6832
  * 1=SCHEDULED, 2=ACTIVE, 3=COMPLETED, 4=CANCELED
6779
6833
  */
6780
- export type status19 = 1 | 2 | 3 | 4;
6834
+ export type status20 = 1 | 2 | 3 | 4;
6781
6835
 
6782
6836
  /**
6783
6837
  * 1=STAGE_INSTANCE, 2=VOICE, 3=EXTERNAL
@@ -6811,7 +6865,7 @@ export type DmButton = {
6811
6865
  phone?: string;
6812
6866
  };
6813
6867
 
6814
- export type type8 = 'url' | 'postback' | 'phone';
6868
+ export type type9 = 'url' | 'postback' | 'phone';
6815
6869
 
6816
6870
  export type EmailAddress = {
6817
6871
  email: string;
@@ -7063,7 +7117,7 @@ export type ErrorResponse = {
7063
7117
  /**
7064
7118
  * Error class for programmatic handling.
7065
7119
  */
7066
- export type type9 = 'invalid_request_error' | 'authentication_error' | 'permission_error' | 'not_found' | 'rate_limit_error' | 'platform_error' | 'api_error';
7120
+ export type type10 = 'invalid_request_error' | 'authentication_error' | 'permission_error' | 'not_found' | 'rate_limit_error' | 'platform_error' | 'api_error';
7067
7121
 
7068
7122
  /**
7069
7123
  * Meta ad create failures only. The step that failed: `media` (image/video download or upload), `campaign`, `adset`, `creative`, `ad` (the ad POST itself, where Meta's code 31 / 3858385 hold and 100 / 1359188 payment rejections land), `activation` (switching the created objects on; no longer returned, since a refused switch to ACTIVE now answers 201 with an `activation_failed:` warning and the objects kept PAUSED), or `other` (a read or check before any write).
@@ -7122,7 +7176,7 @@ export type ExternalPostMediaItem = {
7122
7176
  unavailableReason?: 'platform_withheld';
7123
7177
  };
7124
7178
 
7125
- export type type10 = 'image' | 'video';
7179
+ export type type11 = 'image' | 'video';
7126
7180
 
7127
7181
  /**
7128
7182
  * unavailable means the media file could not be retrieved (url is null or, for LinkedIn videos, a cover image standing in for the file). available or absent means the file is available at url (older synced items omit the field).
@@ -7555,7 +7609,7 @@ export type FeedbackReceipt = {
7555
7609
  duplicate?: boolean;
7556
7610
  };
7557
7611
 
7558
- export type status20 = 'received';
7612
+ export type status21 = 'received';
7559
7613
 
7560
7614
  /**
7561
7615
  * A file or folder in a connected Google Drive or OneDrive. Ids are the provider's own.
@@ -7740,7 +7794,7 @@ export type GoogleAdLabel = {
7740
7794
  description?: (string) | null;
7741
7795
  };
7742
7796
 
7743
- export type status21 = 'ENABLED' | 'REMOVED' | 'UNKNOWN';
7797
+ export type status22 = 'ENABLED' | 'REMOVED' | 'UNKNOWN';
7744
7798
 
7745
7799
  /**
7746
7800
  * At least one id across the four target lists. Up to 1000 ids per list.
@@ -7843,7 +7897,7 @@ export type GoogleAdsManagerLink = {
7843
7897
  /**
7844
7898
  * Status the link has after this call.
7845
7899
  */
7846
- export type status22 = 'PENDING' | 'ACTIVE' | 'REFUSED' | 'CANCELED' | 'INACTIVE';
7900
+ export type status23 = 'PENDING' | 'ACTIVE' | 'REFUSED' | 'CANCELED' | 'INACTIVE';
7847
7901
 
7848
7902
  export type GoogleAdsUserAccessInvitation = {
7849
7903
  invitationId?: string;
@@ -7858,7 +7912,7 @@ export type GoogleAdsUserAccessInvitation = {
7858
7912
 
7859
7913
  export type accessRole = 'ADMIN' | 'STANDARD' | 'READ_ONLY' | 'EMAIL_ONLY' | 'UNKNOWN';
7860
7914
 
7861
- export type status23 = 'PENDING' | 'DECLINED' | 'EXPIRED' | 'UNKNOWN';
7915
+ export type status24 = 'PENDING' | 'DECLINED' | 'EXPIRED' | 'UNKNOWN';
7862
7916
 
7863
7917
  export type GoogleAdsUserAccessInvitationResult = {
7864
7918
  customerId?: string;
@@ -7882,7 +7936,7 @@ export type GoogleAdsUserAccessInvitationResult = {
7882
7936
  /**
7883
7937
  * PENDING once the email is sent; PENDING_APPROVAL while Google waits for a second admin's multi-party approval.
7884
7938
  */
7885
- export type status24 = 'PENDING' | 'PENDING_APPROVAL';
7939
+ export type status25 = 'PENDING' | 'PENDING_APPROVAL';
7886
7940
 
7887
7941
  export type GoogleAdsUserInvitationApproval = {
7888
7942
  /**
@@ -8159,7 +8213,7 @@ export type topicType = 'STANDARD' | 'EVENT' | 'OFFER';
8159
8213
  /**
8160
8214
  * Button action type: LEARN_MORE, BOOK, ORDER, SHOP, SIGN_UP, CALL
8161
8215
  */
8162
- export type type11 = 'LEARN_MORE' | 'BOOK' | 'ORDER' | 'SHOP' | 'SIGN_UP' | 'CALL';
8216
+ export type type12 = 'LEARN_MORE' | 'BOOK' | 'ORDER' | 'SHOP' | 'SIGN_UP' | 'CALL';
8163
8217
 
8164
8218
  /**
8165
8219
  * A Google Business Profile review, as returned by every gmb-reviews read endpoint.
@@ -8449,7 +8503,7 @@ export type GoogleListingGroupDimension = {
8449
8503
  };
8450
8504
  };
8451
8505
 
8452
- export type level2 = 'LEVEL1' | 'LEVEL2' | 'LEVEL3' | 'LEVEL4' | 'LEVEL5';
8506
+ export type level3 = 'LEVEL1' | 'LEVEL2' | 'LEVEL3' | 'LEVEL4' | 'LEVEL5';
8453
8507
 
8454
8508
  export type condition = 'NEW' | 'REFURBISHED' | 'USED';
8455
8509
 
@@ -8477,7 +8531,7 @@ export type GoogleListingGroupFilterNode = {
8477
8531
  } | null;
8478
8532
  };
8479
8533
 
8480
- export type type12 = 'SUBDIVISION' | 'UNIT_INCLUDED' | 'UNIT_EXCLUDED';
8534
+ export type type13 = 'SUBDIVISION' | 'UNIT_INCLUDED' | 'UNIT_EXCLUDED';
8481
8535
 
8482
8536
  export type GoogleListingGroupNode = {
8483
8537
  dimension: GoogleListingGroupDimension;
@@ -8732,7 +8786,7 @@ export type GoogleRecommendationResult = {
8732
8786
  error?: string;
8733
8787
  };
8734
8788
 
8735
- export type status25 = 'applied' | 'dismissed' | 'failed';
8789
+ export type status26 = 'applied' | 'dismissed' | 'failed';
8736
8790
 
8737
8791
  export type GoogleRsaDescription = {
8738
8792
  text: string;
@@ -8867,7 +8921,7 @@ export type ImessageSandboxContact = {
8867
8921
  createdAt?: string;
8868
8922
  };
8869
8923
 
8870
- export type status26 = 'pending' | 'active';
8924
+ export type status27 = 'pending' | 'active';
8871
8925
 
8872
8926
  /**
8873
8927
  * An iMessage sender registered as an account on a profile.
@@ -8942,7 +8996,7 @@ export type region = 'US' | 'GB';
8942
8996
  /**
8943
8997
  * `awaiting_payment`: the first-month charge is still being confirmed by the card; the number is ordered automatically once it is paid (usually under 5 minutes), or the order fails with `failureReason` when the card declines or nothing confirms within 30 minutes.
8944
8998
  */
8945
- export type status27 = 'ordering' | 'awaiting_payment' | 'activating' | 'active' | 'suspended' | 'canceled' | 'failed';
8999
+ export type status28 = 'ordering' | 'awaiting_payment' | 'activating' | 'active' | 'suspended' | 'canceled' | 'failed';
8946
9000
 
8947
9001
  /**
8948
9002
  * Click attribution for a conversation that started from a Meta ad or
@@ -9145,7 +9199,7 @@ export type InboxWebhookConversation = {
9145
9199
  contactId?: string;
9146
9200
  };
9147
9201
 
9148
- export type status28 = 'active' | 'archived';
9202
+ export type status29 = 'active' | 'archived';
9149
9203
 
9150
9204
  /**
9151
9205
  * The conversation object included in conversation lifecycle webhook payloads (conversation.started, conversation.control_changed).
@@ -10490,7 +10544,7 @@ export type MediaItem = {
10490
10544
  /**
10491
10545
  * Optional when the item names a connected file (`fileId`): inferred from the file's MIME type.
10492
10546
  */
10493
- export type type13 = 'image' | 'video' | 'gif' | 'document';
10547
+ export type type14 = 'image' | 'video' | 'gif' | 'document';
10494
10548
 
10495
10549
  export type MediaSubtitle = {
10496
10550
  /**
@@ -11093,6 +11147,65 @@ export type MoneyAmount = {
11093
11147
  currencyCode: string;
11094
11148
  };
11095
11149
 
11150
+ export type OAuthApp = {
11151
+ /**
11152
+ * Pass it as `oauthAppId` on GET /v1/connect/{platform} to connect through this app.
11153
+ */
11154
+ id: string;
11155
+ /**
11156
+ * The platform the app belongs to, as in GET /v1/connect/{platform}.
11157
+ */
11158
+ platform: string;
11159
+ label: string;
11160
+ /**
11161
+ * The client ID (or app ID) of your app on the platform. The secret is never returned.
11162
+ */
11163
+ clientId: string;
11164
+ /**
11165
+ * The permission areas every connect through this app requests. Pick only what your app is approved for on the platform.
11166
+ */
11167
+ scopeAreas: Array<('posting' | 'analytics' | 'comments' | 'messaging' | 'ads')>;
11168
+ /**
11169
+ * `ok`: the platform accepted the keys at the last check. `unchecked`: the check could not reach a verdict (see lastError). `invalid`: the platform rejected the keys; connects and token refreshes through this app will fail until the secret is rotated.
11170
+ */
11171
+ status: 'ok' | 'unchecked' | 'invalid';
11172
+ lastCheckedAt?: (string) | null;
11173
+ lastError?: (string) | null;
11174
+ /**
11175
+ * Connected accounts currently running on this app.
11176
+ */
11177
+ accountCount: number;
11178
+ /**
11179
+ * The OAuth redirect URI to allow in your app's settings on the platform.
11180
+ */
11181
+ redirectUri: string;
11182
+ createdAt: string;
11183
+ };
11184
+
11185
+ /**
11186
+ * `ok`: the platform accepted the keys at the last check. `unchecked`: the check could not reach a verdict (see lastError). `invalid`: the platform rejected the keys; connects and token refreshes through this app will fail until the secret is rotated.
11187
+ */
11188
+ export type status30 = 'ok' | 'unchecked' | 'invalid';
11189
+
11190
+ export type OAuthAppSetup = {
11191
+ platform: string;
11192
+ /**
11193
+ * Allow this OAuth redirect URI in your app on the platform.
11194
+ */
11195
+ redirectUri: string;
11196
+ /**
11197
+ * Requested on every connect, whatever areas the app enables.
11198
+ */
11199
+ coreScopes: Array<(string)>;
11200
+ /**
11201
+ * The areas an app on this platform can enable, each with the scopes it requests.
11202
+ */
11203
+ scopeAreas: Array<{
11204
+ area: 'posting' | 'analytics' | 'comments' | 'messaging' | 'ads';
11205
+ scopes: Array<(string)>;
11206
+ }>;
11207
+ };
11208
+
11096
11209
  export type OpenHours = Array<{
11097
11210
  /**
11098
11211
  * 0 = Sunday.
@@ -11282,7 +11395,7 @@ export type OwnedPhoneNumber = {
11282
11395
  }>;
11283
11396
  };
11284
11397
 
11285
- export type status29 = 'pending_payment' | 'pending_regulatory' | 'regulatory_declined' | 'provisioning' | 'verifying' | 'active' | 'suspended' | 'releasing' | 'released';
11398
+ export type status31 = 'pending_payment' | 'pending_regulatory' | 'regulatory_declined' | 'provisioning' | 'verifying' | 'active' | 'suspended' | 'releasing' | 'released';
11286
11399
 
11287
11400
  export type metaVerificationStatus = 'pending' | 'code_requested' | 'verified' | 'expired';
11288
11401
 
@@ -11454,7 +11567,7 @@ export type PlatformAnalytics = {
11454
11567
  isOwner?: (boolean) | null;
11455
11568
  };
11456
11569
 
11457
- export type status30 = 'published' | 'failed';
11570
+ export type status32 = 'published' | 'failed';
11458
11571
 
11459
11572
  /**
11460
11573
  * Sync state of analytics for this platform
@@ -11600,7 +11713,7 @@ export type PortfolioBidStrategy = {
11600
11713
  targetImpressionShare?: (GoogleTargetImpressionShare | null);
11601
11714
  };
11602
11715
 
11603
- export type type14 = 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'TARGET_IMPRESSION_SHARE';
11716
+ export type type15 = 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'TARGET_IMPRESSION_SHARE';
11604
11717
 
11605
11718
  export type Post = {
11606
11719
  _id?: string;
@@ -11657,7 +11770,7 @@ export type Post = {
11657
11770
  /**
11658
11771
  * `cancelled` is set by POST /v1/posts/{postId}/unpublish once every platform entry has been removed from its platform (a post with published entries left becomes `partial`); cancelled posts can be edited and rescheduled like drafts. `pending_approval` (set by `requiresApproval: true`) never publishes until POST /v1/posts/{postId}/review approves it.
11659
11772
  */
11660
- export type status31 = 'draft' | 'pending_approval' | 'scheduled' | 'publishing' | 'published' | 'partial' | 'failed' | 'cancelled';
11773
+ export type status33 = 'draft' | 'pending_approval' | 'scheduled' | 'publishing' | 'published' | 'partial' | 'failed' | 'cancelled';
11661
11774
 
11662
11775
  export type visibility3 = 'public' | 'private' | 'unlisted';
11663
11776
 
@@ -11894,7 +12007,7 @@ export type Product = {
11894
12007
  publishedAt?: (string) | null;
11895
12008
  };
11896
12009
 
11897
- export type status32 = 'active' | 'draft' | 'archived';
12010
+ export type status34 = 'active' | 'draft' | 'archived';
11898
12011
 
11899
12012
  export type ProductImage = {
11900
12013
  url?: string;
@@ -12113,7 +12226,7 @@ export type RcsAgent = {
12113
12226
  createdAt?: string;
12114
12227
  };
12115
12228
 
12116
- export type status33 = 'requested' | 'changes_requested' | 'brand_vetting' | 'agent_review' | 'testing' | 'launch_review' | 'launching' | 'live' | 'rejected' | 'deactivated';
12229
+ export type status35 = 'requested' | 'changes_requested' | 'brand_vetting' | 'agent_review' | 'testing' | 'launch_review' | 'launching' | 'live' | 'rejected' | 'deactivated';
12117
12230
 
12118
12231
  export type useCase = 'MULTI_USE' | 'PROMOTIONAL' | 'TRANSACTIONAL' | 'OTP';
12119
12232
 
@@ -12165,7 +12278,7 @@ export type RcsBrand = RcsBrandInput & {
12165
12278
  /**
12166
12279
  * draft = not filed yet (still editable).
12167
12280
  */
12168
- export type status34 = 'draft' | 'vetting' | 'verified' | 'rejected';
12281
+ export type status36 = 'draft' | 'vetting' | 'verified' | 'rejected';
12169
12282
 
12170
12283
  export type RcsBrandInput = {
12171
12284
  displayName: string;
@@ -12252,7 +12365,7 @@ export type RcsCarrierApproval = {
12252
12365
 
12253
12366
  export type scope3 = 'carrier' | 'hub' | 'bot';
12254
12367
 
12255
- export type status35 = 'PENDING' | 'SUBMITTED' | 'APPROVED' | 'REJECTED';
12368
+ export type status37 = 'PENDING' | 'SUBMITTED' | 'APPROVED' | 'REJECTED';
12256
12369
 
12257
12370
  /**
12258
12371
  * Message content. `suggestions` (max 11) render as chips under the message.
@@ -12278,7 +12391,7 @@ export type RcsContent = {
12278
12391
  suggestions?: Array<RcsSuggestion>;
12279
12392
  };
12280
12393
 
12281
- export type type15 = 'text';
12394
+ export type type16 = 'text';
12282
12395
 
12283
12396
  export type orientation = 'VERTICAL' | 'HORIZONTAL';
12284
12397
 
@@ -12391,7 +12504,7 @@ export type RcsSuggestion = {
12391
12504
  postbackData?: string;
12392
12505
  };
12393
12506
 
12394
- export type type16 = 'reply';
12507
+ export type type17 = 'reply';
12395
12508
 
12396
12509
  export type application = 'BROWSER' | 'WEBVIEW';
12397
12510
 
@@ -12896,6 +13009,14 @@ export type SocialAccount = {
12896
13009
  * The account's id on its platform as the platform reports it to Zernio; stable across reconnects, so it is the key to match an account against your own records. Instagram: the app-scoped user id on Instagram Login accounts (the professional account id is in `metadata.instagramScopedId`), the professional account id (`17841...`) on Facebook Login accounts. TikTok: the open_id of Zernio's TikTok app, which differs from the open_id any other app sees for the same user. Either value can be passed back as `expectedPlatformUserId` on GET /v1/connect/{platform}.
12897
13010
  */
12898
13011
  platformUserId?: string;
13012
+ /**
13013
+ * Accounts connected through your own OAuth app: the permission areas the connect requested. Null on accounts connected through Zernio's app.
13014
+ */
13015
+ scopeAreas?: Array<(string)> | null;
13016
+ /**
13017
+ * The id of your own OAuth app this account connected through (see /v1/connect/oauth-apps); null when it uses Zernio's app.
13018
+ */
13019
+ oauthAppId?: (string) | null;
12899
13020
  /**
12900
13021
  * TikTok accounts only. The account type TikTok reported when the account was connected. `personal` accounts cannot use TikTok direct messages through the API (TikTok limits Business Messaging to Business Accounts): skip the inbox for them and tell the user to switch to a Business Account in the TikTok app, then reconnect. `business` is the prerequisite, not a guarantee; messaging also needs the messaging scopes granted and TikTok's regional availability. `unknown` on accounts connected before this was captured or whose grant left out the account-type scope.
12901
13022
  */
@@ -13140,7 +13261,7 @@ export type SupportRun = {
13140
13261
  /**
13141
13262
  * queued and running are in progress. needs_human means the assistant handed the question to a person instead of answering; when `supportTicket` is set, a Zernio teammate has been notified and will follow up by email.
13142
13263
  */
13143
- export type status36 = 'queued' | 'running' | 'completed' | 'needs_human' | 'failed';
13264
+ export type status38 = 'queued' | 'running' | 'completed' | 'needs_human' | 'failed';
13144
13265
 
13145
13266
  /**
13146
13267
  * Why the run stopped. Null while it is in progress.
@@ -14098,7 +14219,7 @@ export type UploadedFile = {
14098
14219
  mimeType?: string;
14099
14220
  };
14100
14221
 
14101
- export type type17 = 'image' | 'video' | 'document';
14222
+ export type type18 = 'image' | 'video' | 'document';
14102
14223
 
14103
14224
  export type UploadTokenResponse = {
14104
14225
  token?: string;
@@ -14107,7 +14228,7 @@ export type UploadTokenResponse = {
14107
14228
  status?: 'pending' | 'completed' | 'expired';
14108
14229
  };
14109
14230
 
14110
- export type status37 = 'pending' | 'completed' | 'expired';
14231
+ export type status39 = 'pending' | 'completed' | 'expired';
14111
14232
 
14112
14233
  export type UploadTokenStatusResponse = {
14113
14234
  token?: string;
@@ -14618,7 +14739,7 @@ export type Verification = {
14618
14739
  resend?: boolean;
14619
14740
  };
14620
14741
 
14621
- export type status38 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
14742
+ export type status40 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
14622
14743
 
14623
14744
  export type channel5 = 'sms' | 'whatsapp';
14624
14745
 
@@ -14650,7 +14771,7 @@ export type Webhook = {
14650
14771
  /**
14651
14772
  * Events subscribed to
14652
14773
  */
14653
- events?: Array<('post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled' | 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved' | 'post.external.created' | 'post.external.updated' | 'post.external.deleted' | 'account.connected' | 'account.disconnected' | 'account.ads.initial_sync_completed' | 'account.ads.sync_failed' | 'account.ads.sync_recovered' | 'analytics.synced' | 'message.received' | 'conversation.started' | 'conversation.control_changed' | 'call.received' | 'call.ended' | 'call.failed' | 'call.permission_request' | 'message.sent' | 'message.edited' | 'message.deleted' | 'message.delivered' | 'message.read' | 'message.played' | 'message.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'ad.review.approved' | 'ad.review.rejected' | 'ad.delivery_issue' | 'campaign.budget.depleted' | 'ad_account.status_changed' | 'ad.video.processed' | 'ad_rule.triggered' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | 'whatsapp.account.quality_updated' | 'whatsapp.account.status_updated' | 'whatsapp.account.alert_received' | 'whatsapp.contact.identity_changed' | 'whatsapp.automatic_event' | 'whatsapp.number.activated' | 'whatsapp.number.declined' | 'whatsapp.number.action_required' | 'whatsapp.number.verification_required' | 'whatsapp.number.suspended' | 'whatsapp.number.reactivated' | 'whatsapp.number.released' | 'whatsapp.number.kyc_submitted' | 'phone_number.stock_available' | 'verification.approved' | 'verification.failed' | 'api.changelog.published' | 'sms.registration.action_required' | 'sms.registration.status_updated' | 'branded_calling.identity.status_updated' | 'branded_calling.identity.action_required' | 'branded_calling.number.status_updated' | 'rcs.agent.status_updated' | 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted' | 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded' | 'contact.tag_added' | 'contact.tag_removed' | 'contact.field_changed' | 'sequence.enrolled' | 'sequence.exited' | 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed' | 'support.run.completed' | 'support.run.failed' | 'account.rate_limited' | 'calendar.event.created' | 'calendar.event.updated' | 'calendar.event.deleted' | 'file.created' | 'file.updated' | 'file.deleted' | 'file.picked' | 'contact.updated' | 'contact.deleted')>;
14774
+ events?: Array<('post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled' | 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved' | 'post.external.created' | 'post.external.updated' | 'post.external.deleted' | 'account.connected' | 'account.disconnected' | 'account.permissions_changed' | 'account.ads.initial_sync_completed' | 'account.ads.sync_failed' | 'account.ads.sync_recovered' | 'analytics.synced' | 'message.received' | 'conversation.started' | 'conversation.control_changed' | 'call.received' | 'call.ended' | 'call.failed' | 'call.permission_request' | 'message.sent' | 'message.edited' | 'message.deleted' | 'message.delivered' | 'message.read' | 'message.played' | 'message.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'ad.review.approved' | 'ad.review.rejected' | 'ad.delivery_issue' | 'campaign.budget.depleted' | 'ad_account.status_changed' | 'ad.video.processed' | 'ad_rule.triggered' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | 'whatsapp.account.quality_updated' | 'whatsapp.account.status_updated' | 'whatsapp.account.alert_received' | 'whatsapp.contact.identity_changed' | 'whatsapp.automatic_event' | 'whatsapp.number.activated' | 'whatsapp.number.declined' | 'whatsapp.number.action_required' | 'whatsapp.number.verification_required' | 'whatsapp.number.suspended' | 'whatsapp.number.reactivated' | 'whatsapp.number.released' | 'whatsapp.number.kyc_submitted' | 'phone_number.stock_available' | 'verification.approved' | 'verification.failed' | 'api.changelog.published' | 'sms.registration.action_required' | 'sms.registration.status_updated' | 'branded_calling.identity.status_updated' | 'branded_calling.identity.action_required' | 'branded_calling.number.status_updated' | 'rcs.agent.status_updated' | 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted' | 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded' | 'contact.tag_added' | 'contact.tag_removed' | 'contact.field_changed' | 'sequence.enrolled' | 'sequence.exited' | 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed' | 'support.run.completed' | 'support.run.failed' | 'account.rate_limited' | 'calendar.event.created' | 'calendar.event.updated' | 'calendar.event.deleted' | 'file.created' | 'file.updated' | 'file.deleted' | 'file.picked' | 'contact.updated' | 'contact.deleted')>;
14654
14775
  /**
14655
14776
  * Whether webhook delivery is enabled
14656
14777
  */
@@ -14796,7 +14917,7 @@ export type WebhookLog = {
14796
14917
  /**
14797
14918
  * Delivery outcome
14798
14919
  */
14799
- export type status39 = 'success' | 'failed';
14920
+ export type status41 = 'success' | 'failed';
14800
14921
 
14801
14922
  /**
14802
14923
  * Webhook payload for `account.ads.initial_sync_completed` events.
@@ -14913,7 +15034,7 @@ export type event = 'account.ads.initial_sync_completed';
14913
15034
  /**
14914
15035
  * Overall outcome of the initial sync.
14915
15036
  */
14916
- export type status40 = 'success' | 'failure';
15037
+ export type status42 = 'success' | 'failure';
14917
15038
 
14918
15039
  /**
14919
15040
  * Stable category for UX branching. New values may be added; existing ones are
@@ -15103,6 +15224,44 @@ export type event5 = 'account.disconnected';
15103
15224
  */
15104
15225
  export type disconnectionType = 'intentional' | 'unintentional';
15105
15226
 
15227
+ /**
15228
+ * Webhook payload for account.permissions_changed events: an account connected through your own OAuth app hit a missing permission and stays connected for its other areas.
15229
+ */
15230
+ export type WebhookPayloadAccountPermissionsChanged = {
15231
+ /**
15232
+ * Stable webhook event ID: the dedupe key, also sent as the X-Zernio-Event-Id header and identical on every retry and redelivery.
15233
+ */
15234
+ id: string;
15235
+ profiles?: WebhookProfiles;
15236
+ /**
15237
+ * Always true when present: only a sample sent by POST /v1/webhooks/test with an event carries it.
15238
+ */
15239
+ test?: boolean;
15240
+ event: 'account.permissions_changed';
15241
+ account: {
15242
+ accountId: string;
15243
+ profileId: string;
15244
+ platform: string;
15245
+ username: string;
15246
+ displayName?: string;
15247
+ /**
15248
+ * The OAuth app the account connected through.
15249
+ */
15250
+ oauthAppId: string;
15251
+ /**
15252
+ * Every area now missing. Enable the permission on your app (or have the user grant it), then reconnect the account.
15253
+ */
15254
+ missingScopeAreas: Array<('posting' | 'analytics' | 'comments' | 'messaging' | 'ads')>;
15255
+ /**
15256
+ * The platform error that revealed it.
15257
+ */
15258
+ reason: string;
15259
+ };
15260
+ timestamp: string;
15261
+ };
15262
+
15263
+ export type event6 = 'account.permissions_changed';
15264
+
15106
15265
  /**
15107
15266
  * Webhook payload for account.rate_limited: a mailbox entered a sending cooldown.
15108
15267
  */
@@ -15127,7 +15286,7 @@ export type WebhookPayloadAccountRateLimited = {
15127
15286
  timestamp: string;
15128
15287
  };
15129
15288
 
15130
- export type event6 = 'account.rate_limited';
15289
+ export type event7 = 'account.rate_limited';
15131
15290
 
15132
15291
  export type reason = 'recipient_burst' | 'provider_rejection' | 'bounces' | 'daily_cap';
15133
15292
 
@@ -15177,7 +15336,7 @@ export type WebhookPayloadAdAccountStatusChanged = {
15177
15336
  timestamp: string;
15178
15337
  };
15179
15338
 
15180
- export type event7 = 'ad_account.status_changed';
15339
+ export type event8 = 'ad_account.status_changed';
15181
15340
 
15182
15341
  export type previous = 'active' | 'restricted' | 'disabled' | 'closed';
15183
15342
 
@@ -15244,12 +15403,12 @@ export type WebhookPayloadAdDeliveryIssue = {
15244
15403
  timestamp: string;
15245
15404
  };
15246
15405
 
15247
- export type event8 = 'ad.delivery_issue';
15406
+ export type event9 = 'ad.delivery_issue';
15248
15407
 
15249
15408
  /**
15250
15409
  * Always `AD`.
15251
15410
  */
15252
- export type level3 = 'AD';
15411
+ export type level4 = 'AD';
15253
15412
 
15254
15413
  /**
15255
15414
  * Webhook payload for the `ad.review.approved` and `ad.review.rejected` events.
@@ -15318,9 +15477,9 @@ export type WebhookPayloadAdReview = {
15318
15477
  timestamp: string;
15319
15478
  };
15320
15479
 
15321
- export type event9 = 'ad.review.approved' | 'ad.review.rejected';
15480
+ export type event10 = 'ad.review.approved' | 'ad.review.rejected';
15322
15481
 
15323
- export type status41 = 'approved' | 'rejected';
15482
+ export type status43 = 'approved' | 'rejected';
15324
15483
 
15325
15484
  /**
15326
15485
  * Webhook payload for the `ad_rule.triggered` event.
@@ -15452,12 +15611,7 @@ export type WebhookPayloadAdRuleTriggered = {
15452
15611
  timestamp: string;
15453
15612
  };
15454
15613
 
15455
- export type event10 = 'ad_rule.triggered';
15456
-
15457
- /**
15458
- * Whether the rule evaluates campaigns or ad sets.
15459
- */
15460
- export type level4 = 'campaign' | 'adset';
15614
+ export type event11 = 'ad_rule.triggered';
15461
15615
 
15462
15616
  /**
15463
15617
  * Webhook payload for the `ad.status_changed` event. Currently emitted
@@ -15584,7 +15738,7 @@ export type WebhookPayloadAdStatusChanged = {
15584
15738
  timestamp: string;
15585
15739
  };
15586
15740
 
15587
- export type event11 = 'ad.status_changed';
15741
+ export type event12 = 'ad.status_changed';
15588
15742
 
15589
15743
  /**
15590
15744
  * Hierarchy level the status applies to. Mirrors Meta's `level`. Creative-level events are not forwarded.
@@ -15655,12 +15809,12 @@ export type WebhookPayloadAdVideoProcessed = {
15655
15809
  timestamp: string;
15656
15810
  };
15657
15811
 
15658
- export type event12 = 'ad.video.processed';
15812
+ export type event13 = 'ad.video.processed';
15659
15813
 
15660
15814
  /**
15661
15815
  * `ready`: usable as `video.id` on the create endpoints. `error`: Meta could not process it; upload again.
15662
15816
  */
15663
- export type status42 = 'ready' | 'error';
15817
+ export type status44 = 'ready' | 'error';
15664
15818
 
15665
15819
  /**
15666
15820
  * Webhook payload for `analytics.synced`. Fired once per connected account each
@@ -15738,7 +15892,7 @@ export type WebhookPayloadAnalyticsSynced = {
15738
15892
  timestamp: string;
15739
15893
  };
15740
15894
 
15741
- export type event13 = 'analytics.synced';
15895
+ export type event14 = 'analytics.synced';
15742
15896
 
15743
15897
  export type WebhookPayloadApiChangelogPublished = {
15744
15898
  /**
@@ -15757,7 +15911,7 @@ export type WebhookPayloadApiChangelogPublished = {
15757
15911
  timestamp: string;
15758
15912
  };
15759
15913
 
15760
- export type event14 = 'api.changelog.published';
15914
+ export type event15 = 'api.changelog.published';
15761
15915
 
15762
15916
  /**
15763
15917
  * Webhook payload for calendar.event.created, calendar.event.updated and calendar.event.deleted. Carries the provider event id and the change only; read the event with `GET /v1/calendar/events/{id}` (deleted ids answer 404).
@@ -15784,7 +15938,7 @@ export type WebhookPayloadCalendarEvent = {
15784
15938
  timestamp: string;
15785
15939
  };
15786
15940
 
15787
- export type event15 = 'calendar.event.created' | 'calendar.event.updated' | 'calendar.event.deleted';
15941
+ export type event16 = 'calendar.event.created' | 'calendar.event.updated' | 'calendar.event.deleted';
15788
15942
 
15789
15943
  export type changeType = 'created' | 'updated' | 'deleted';
15790
15944
 
@@ -15861,7 +16015,7 @@ export type WebhookPayloadCallEnded = {
15861
16015
  timestamp: string;
15862
16016
  };
15863
16017
 
15864
- export type event16 = 'call.ended';
16018
+ export type event17 = 'call.ended';
15865
16019
 
15866
16020
  /**
15867
16021
  * Webhook payload for the `call.failed` event. Fired when a call
@@ -15900,7 +16054,7 @@ export type WebhookPayloadCallFailed = {
15900
16054
  timestamp: string;
15901
16055
  };
15902
16056
 
15903
- export type event17 = 'call.failed';
16057
+ export type event18 = 'call.failed';
15904
16058
 
15905
16059
  /**
15906
16060
  * Webhook payload for the `call.permission_request` event. Fires
@@ -15942,7 +16096,7 @@ export type WebhookPayloadCallPermissionRequest = {
15942
16096
  timestamp: string;
15943
16097
  };
15944
16098
 
15945
- export type event18 = 'call.permission_request';
16099
+ export type event19 = 'call.permission_request';
15946
16100
 
15947
16101
  export type response = 'accept' | 'reject';
15948
16102
 
@@ -16001,7 +16155,7 @@ export type WebhookPayloadCallReceived = {
16001
16155
  timestamp: string;
16002
16156
  };
16003
16157
 
16004
- export type event19 = 'call.received';
16158
+ export type event20 = 'call.received';
16005
16159
 
16006
16160
  /**
16007
16161
  * Webhook payload for the `campaign.budget.depleted` event. Fires when a campaign
@@ -16052,7 +16206,7 @@ export type WebhookPayloadCampaignBudgetDepleted = {
16052
16206
  timestamp: string;
16053
16207
  };
16054
16208
 
16055
- export type event20 = 'campaign.budget.depleted';
16209
+ export type event21 = 'campaign.budget.depleted';
16056
16210
 
16057
16211
  /**
16058
16212
  * Always `CAMPAIGN`.
@@ -16234,7 +16388,7 @@ export type WebhookPayloadComment = {
16234
16388
  timestamp: string;
16235
16389
  };
16236
16390
 
16237
- export type event21 = 'comment.received';
16391
+ export type event22 = 'comment.received';
16238
16392
 
16239
16393
  export type platform15 = 'instagram' | 'facebook' | 'threads' | 'youtube' | 'linkedin' | 'bluesky' | 'reddit' | 'tiktok';
16240
16394
 
@@ -16280,9 +16434,9 @@ export type WebhookPayloadCommerceOrder = {
16280
16434
  };
16281
16435
  };
16282
16436
 
16283
- export type event22 = 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded';
16437
+ export type event23 = 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded';
16284
16438
 
16285
- export type type18 = 'order';
16439
+ export type type19 = 'order';
16286
16440
 
16287
16441
  export type WebhookPayloadCommerceProduct = {
16288
16442
  /**
@@ -16323,9 +16477,9 @@ export type WebhookPayloadCommerceProduct = {
16323
16477
  };
16324
16478
  };
16325
16479
 
16326
- export type event23 = 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted';
16480
+ export type event24 = 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted';
16327
16481
 
16328
- export type type19 = 'product';
16482
+ export type type20 = 'product';
16329
16483
 
16330
16484
  /**
16331
16485
  * Webhook payload for contact.updated and contact.deleted, fired after a provider contacts sync (Google Contacts, Outlook) changed a contact. Read the contact with `GET /v1/contacts/{id}`.
@@ -16352,7 +16506,7 @@ export type WebhookPayloadContact = {
16352
16506
  timestamp: string;
16353
16507
  };
16354
16508
 
16355
- export type event24 = 'contact.updated' | 'contact.deleted';
16509
+ export type event25 = 'contact.updated' | 'contact.deleted';
16356
16510
 
16357
16511
  export type changeType2 = 'updated' | 'deleted';
16358
16512
 
@@ -16392,7 +16546,7 @@ export type WebhookPayloadContactFieldChanged = {
16392
16546
  source: 'api' | 'workflow' | 'automation';
16393
16547
  };
16394
16548
 
16395
- export type event25 = 'contact.field_changed';
16549
+ export type event26 = 'contact.field_changed';
16396
16550
 
16397
16551
  /**
16398
16552
  * Who wrote the field: the API or dashboard, a workflow set_field node, or an automation.
@@ -16424,7 +16578,7 @@ export type WebhookPayloadContactTag = {
16424
16578
  source: 'api' | 'workflow' | 'automation';
16425
16579
  };
16426
16580
 
16427
- export type event26 = 'contact.tag_added' | 'contact.tag_removed';
16581
+ export type event27 = 'contact.tag_added' | 'contact.tag_removed';
16428
16582
 
16429
16583
  /**
16430
16584
  * Who answers a conversation changed under Meta's handover protocol. WhatsApp: Meta
@@ -16470,7 +16624,7 @@ export type WebhookPayloadConversationControlChanged = {
16470
16624
  timestamp: string;
16471
16625
  };
16472
16626
 
16473
- export type event27 = 'conversation.control_changed';
16627
+ export type event28 = 'conversation.control_changed';
16474
16628
 
16475
16629
  /**
16476
16630
  * Who answers now. ai_agent: Meta Business Agent (WhatsApp); app: you; other: another app (a WhatsApp partner, or a Messenger / Instagram receiver such as Page Inbox).
@@ -16529,7 +16683,7 @@ export type WebhookPayloadConversationStarted = {
16529
16683
  timestamp: string;
16530
16684
  };
16531
16685
 
16532
- export type event28 = 'conversation.started';
16686
+ export type event29 = 'conversation.started';
16533
16687
 
16534
16688
  /**
16535
16689
  * Webhook payload for post.external.created / post.external.updated /
@@ -16566,7 +16720,7 @@ export type WebhookPayloadExternalPost = {
16566
16720
  timestamp: string;
16567
16721
  };
16568
16722
 
16569
- export type event29 = 'post.external.created' | 'post.external.updated' | 'post.external.deleted';
16723
+ export type event30 = 'post.external.created' | 'post.external.updated' | 'post.external.deleted';
16570
16724
 
16571
16725
  /**
16572
16726
  * Webhook payload for file.created, file.updated and file.deleted. Carries the provider file id and the change only; read the file with `GET /v1/files/{id}`.
@@ -16593,7 +16747,7 @@ export type WebhookPayloadFile = {
16593
16747
  timestamp: string;
16594
16748
  };
16595
16749
 
16596
- export type event30 = 'file.created' | 'file.updated' | 'file.deleted';
16750
+ export type event31 = 'file.created' | 'file.updated' | 'file.deleted';
16597
16751
 
16598
16752
  /**
16599
16753
  * Webhook payload for file.picked: the user picked files on a hosted picker page (`POST /v1/files/picker-sessions`), so the app may now open them. Every id was checked against Drive before the event fired.
@@ -16628,7 +16782,7 @@ export type WebhookPayloadFilePicked = {
16628
16782
  timestamp: string;
16629
16783
  };
16630
16784
 
16631
- export type event31 = 'file.picked';
16785
+ export type event32 = 'file.picked';
16632
16786
 
16633
16787
  /**
16634
16788
  * Webhook payload for lead.received events (Meta Lead Gen / Instant Forms).
@@ -16708,7 +16862,7 @@ export type WebhookPayloadLead = {
16708
16862
  timestamp: string;
16709
16863
  };
16710
16864
 
16711
- export type event32 = 'lead.received';
16865
+ export type event33 = 'lead.received';
16712
16866
 
16713
16867
  export type platform16 = 'facebook';
16714
16868
 
@@ -17311,7 +17465,7 @@ export type WebhookPayloadMessage = {
17311
17465
  timestamp: string;
17312
17466
  };
17313
17467
 
17314
- export type event33 = 'message.received';
17468
+ export type event34 = 'message.received';
17315
17469
 
17316
17470
  /**
17317
17471
  * Which Zernio surface produced the message. Always present and
@@ -17377,7 +17531,7 @@ export type WebhookPayloadMessageDeleted = {
17377
17531
  timestamp: string;
17378
17532
  };
17379
17533
 
17380
- export type event34 = 'message.deleted';
17534
+ export type event35 = 'message.deleted';
17381
17535
 
17382
17536
  /**
17383
17537
  * Shared payload for message.delivered, message.read, message.played and
@@ -17445,7 +17599,7 @@ export type WebhookPayloadMessageDeliveryStatus = {
17445
17599
  timestamp: string;
17446
17600
  };
17447
17601
 
17448
- export type event35 = 'message.delivered' | 'message.read' | 'message.played' | 'message.failed';
17602
+ export type event36 = 'message.delivered' | 'message.read' | 'message.played' | 'message.failed';
17449
17603
 
17450
17604
  /**
17451
17605
  * Webhook payload for message.edited events. Fires when the sender
@@ -17488,7 +17642,7 @@ export type WebhookPayloadMessageEdited = {
17488
17642
  timestamp: string;
17489
17643
  };
17490
17644
 
17491
- export type event36 = 'message.edited';
17645
+ export type event37 = 'message.edited';
17492
17646
 
17493
17647
  /**
17494
17648
  * Webhook payload for message sent events (fired when a message is sent via the API, or from the WhatsApp Business app on Coexistence numbers)
@@ -17734,7 +17888,7 @@ export type WebhookPayloadMessageSent = {
17734
17888
  timestamp: string;
17735
17889
  };
17736
17890
 
17737
- export type event37 = 'message.sent';
17891
+ export type event38 = 'message.sent';
17738
17892
 
17739
17893
  /**
17740
17894
  * Every platform whose outgoing messages Zernio observes. sms is absent on purpose: its carrier receipts update delivery status and never raise message.sent.
@@ -17792,7 +17946,7 @@ export type WebhookPayloadPhoneNumberStockAvailable = {
17792
17946
  timestamp: string;
17793
17947
  };
17794
17948
 
17795
- export type event38 = 'phone_number.stock_available';
17949
+ export type event39 = 'phone_number.stock_available';
17796
17950
 
17797
17951
  /**
17798
17952
  * Webhook payload for post events
@@ -17847,7 +18001,7 @@ export type WebhookPayloadPost = {
17847
18001
  timestamp: string;
17848
18002
  };
17849
18003
 
17850
- export type event39 = 'post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled';
18004
+ export type event40 = 'post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled';
17851
18005
 
17852
18006
  /**
17853
18007
  * Webhook payload for the per-platform terminal events
@@ -17971,12 +18125,12 @@ export type WebhookPayloadPostPlatform = {
17971
18125
  timestamp: string;
17972
18126
  };
17973
18127
 
17974
- export type event40 = 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved';
18128
+ export type event41 = 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved';
17975
18129
 
17976
18130
  /**
17977
18131
  * Terminal status this event fires on. Matches the event suffix.
17978
18132
  */
17979
- export type status43 = 'published' | 'failed' | 'deleted';
18133
+ export type status45 = 'published' | 'failed' | 'deleted';
17980
18134
 
17981
18135
  /**
17982
18136
  * Webhook payload for reaction received events (WhatsApp, Telegram, Slack, Instagram, Facebook Messenger, TikTok)
@@ -18036,7 +18190,7 @@ export type WebhookPayloadReaction = {
18036
18190
  timestamp: string;
18037
18191
  };
18038
18192
 
18039
- export type event41 = 'reaction.received';
18193
+ export type event42 = 'reaction.received';
18040
18194
 
18041
18195
  export type action = 'added' | 'removed';
18042
18196
 
@@ -18115,7 +18269,7 @@ export type WebhookPayloadReferral = {
18115
18269
  timestamp: string;
18116
18270
  };
18117
18271
 
18118
- export type event42 = 'referral.received';
18272
+ export type event43 = 'referral.received';
18119
18273
 
18120
18274
  /**
18121
18275
  * Webhook payload for the review.new event (new review posted on a connected account).
@@ -18147,7 +18301,7 @@ export type WebhookPayloadReviewNew = {
18147
18301
  timestamp: string;
18148
18302
  };
18149
18303
 
18150
- export type event43 = 'review.new';
18304
+ export type event44 = 'review.new';
18151
18305
 
18152
18306
  /**
18153
18307
  * Webhook payload for the review.updated event. Fired when the reviewer edits their
@@ -18185,7 +18339,7 @@ export type WebhookPayloadReviewUpdated = {
18185
18339
  timestamp: string;
18186
18340
  };
18187
18341
 
18188
- export type event44 = 'review.updated';
18342
+ export type event45 = 'review.updated';
18189
18343
 
18190
18344
  export type WebhookPayloadSequenceEnrollment = {
18191
18345
  /**
@@ -18218,7 +18372,7 @@ export type WebhookPayloadSequenceEnrollment = {
18218
18372
  exitReason?: 'completed' | 'replied' | 'manual' | 'failed' | 'unsubscribed';
18219
18373
  };
18220
18374
 
18221
- export type event45 = 'sequence.enrolled' | 'sequence.exited';
18375
+ export type event46 = 'sequence.enrolled' | 'sequence.exited';
18222
18376
 
18223
18377
  /**
18224
18378
  * sequence.exited only. completed: the last step was sent; replied: the contact replied and the sequence exits on reply; manual: unenrolled through the API; failed: the step kept failing to send; unsubscribed: the contact opted out.
@@ -18239,7 +18393,7 @@ export type WebhookPayloadSupportRun = {
18239
18393
  run: SupportRun;
18240
18394
  };
18241
18395
 
18242
- export type event46 = 'support.run.completed' | 'support.run.failed';
18396
+ export type event47 = 'support.run.completed' | 'support.run.failed';
18243
18397
 
18244
18398
  /**
18245
18399
  * Webhook payload for test deliveries
@@ -18260,7 +18414,7 @@ export type WebhookPayloadTest = {
18260
18414
  timestamp: string;
18261
18415
  };
18262
18416
 
18263
- export type event47 = 'webhook.test';
18417
+ export type event48 = 'webhook.test';
18264
18418
 
18265
18419
  /**
18266
18420
  * Webhook payload for `whatsapp.account.alert_received`, forwarded from Meta's
@@ -18312,7 +18466,7 @@ export type WebhookPayloadWhatsAppAccountAlertReceived = {
18312
18466
  timestamp: string;
18313
18467
  };
18314
18468
 
18315
- export type event48 = 'whatsapp.account.alert_received';
18469
+ export type event49 = 'whatsapp.account.alert_received';
18316
18470
 
18317
18471
  export type platform18 = 'whatsapp';
18318
18472
 
@@ -18368,12 +18522,12 @@ export type WebhookPayloadWhatsAppAccountNameStatusUpdated = {
18368
18522
  timestamp: string;
18369
18523
  };
18370
18524
 
18371
- export type event49 = 'whatsapp.account.name_status_updated';
18525
+ export type event50 = 'whatsapp.account.name_status_updated';
18372
18526
 
18373
18527
  /**
18374
18528
  * Normalized from Meta's `decision` (REJECTED -> DECLINED, DEFERRED -> PENDING_REVIEW; the review is still open on DEFERRED, not a rejection).
18375
18529
  */
18376
- export type status44 = 'APPROVED' | 'DECLINED' | 'PENDING_REVIEW';
18530
+ export type status46 = 'APPROVED' | 'DECLINED' | 'PENDING_REVIEW';
18377
18531
 
18378
18532
  /**
18379
18533
  * Webhook payload for `whatsapp.account.quality_updated`. Fired when a connected
@@ -18426,7 +18580,7 @@ export type WebhookPayloadWhatsAppAccountQualityUpdated = {
18426
18580
  timestamp: string;
18427
18581
  };
18428
18582
 
18429
- export type event50 = 'whatsapp.account.quality_updated';
18583
+ export type event51 = 'whatsapp.account.quality_updated';
18430
18584
 
18431
18585
  /**
18432
18586
  * The Meta webhook field that reported the change.
@@ -18502,12 +18656,12 @@ export type WebhookPayloadWhatsAppAccountStatusUpdated = {
18502
18656
  timestamp: string;
18503
18657
  };
18504
18658
 
18505
- export type event51 = 'whatsapp.account.status_updated';
18659
+ export type event52 = 'whatsapp.account.status_updated';
18506
18660
 
18507
18661
  /**
18508
18662
  * `active` only on a reinstatement (DISABLED_UPDATE with ban state REINSTATE).
18509
18663
  */
18510
- export type status45 = 'restricted' | 'active';
18664
+ export type status47 = 'restricted' | 'active';
18511
18665
 
18512
18666
  /**
18513
18667
  * Webhook payload for the `whatsapp.contact.identity_changed` event. Fired when
@@ -18559,7 +18713,7 @@ export type WebhookPayloadWhatsAppContactIdentityChanged = {
18559
18713
  timestamp: string;
18560
18714
  };
18561
18715
 
18562
- export type event52 = 'whatsapp.contact.identity_changed';
18716
+ export type event53 = 'whatsapp.contact.identity_changed';
18563
18717
 
18564
18718
  /**
18565
18719
  * Which Meta signal reported the change. `user_changed_number`: new phone number. `user_changed_user_id` and `user_id_update`: new BSUID.
@@ -18633,7 +18787,7 @@ export type WebhookPayloadWhatsAppTemplateCategoryUpdated = {
18633
18787
  timestamp: string;
18634
18788
  };
18635
18789
 
18636
- export type event53 = 'whatsapp.template.category_updated';
18790
+ export type event54 = 'whatsapp.template.category_updated';
18637
18791
 
18638
18792
  /**
18639
18793
  * `scheduled` is Meta's 24h advance notice of an upcoming
@@ -18715,7 +18869,7 @@ export type WebhookPayloadWhatsAppTemplateStatusUpdated = {
18715
18869
  timestamp: string;
18716
18870
  };
18717
18871
 
18718
- export type event54 = 'whatsapp.template.status_updated';
18872
+ export type event55 = 'whatsapp.template.status_updated';
18719
18873
 
18720
18874
  /**
18721
18875
  * New status. Forwarded verbatim from Meta's `event` field.
@@ -18723,7 +18877,7 @@ export type event54 = 'whatsapp.template.status_updated';
18723
18877
  * request before the template is actually removed.
18724
18878
  *
18725
18879
  */
18726
- export type status46 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
18880
+ export type status48 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
18727
18881
 
18728
18882
  export type WebhookPayloadWorkflowRun = {
18729
18883
  /**
@@ -18782,12 +18936,12 @@ export type WebhookPayloadWorkflowRun = {
18782
18936
  error?: string;
18783
18937
  };
18784
18938
 
18785
- export type event55 = 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed';
18939
+ export type event56 = 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed';
18786
18940
 
18787
18941
  /**
18788
18942
  * running on workflow.run.started; completed or exited (ended on purpose before the last node, e.g. a handoff) on workflow.run.completed; failed on workflow.run.failed.
18789
18943
  */
18790
- export type status47 = 'running' | 'waiting' | 'completed' | 'exited' | 'failed';
18944
+ export type status49 = 'running' | 'waiting' | 'completed' | 'exited' | 'failed';
18791
18945
 
18792
18946
  /**
18793
18947
  * The profiles this event belongs to, each with the externalId you set on it (null when none is set). Present on every event tied to a profile and absent on events that belong to none. Events spanning several profiles (a post published to accounts of different profiles) list each once. Use it to route the event to your tenant without storing Zernio profile ids.
@@ -19060,7 +19214,7 @@ export type WhatsAppTemplateButton = {
19060
19214
  navigate_screen?: string;
19061
19215
  };
19062
19216
 
19063
- export type type20 = 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
19217
+ export type type21 = 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
19064
19218
 
19065
19219
  /**
19066
19220
  * Required when type is otp
@@ -19102,7 +19256,7 @@ export type WhatsAppTemplateLookupError = {
19102
19256
  };
19103
19257
  };
19104
19258
 
19105
- export type type21 = 'platform_error';
19259
+ export type type22 = 'platform_error';
19106
19260
 
19107
19261
  export type code2 = 'platform_api_error';
19108
19262
 
@@ -19185,7 +19339,7 @@ export type WorkflowExecutionEvent = {
19185
19339
 
19186
19340
  export type action2 = 'execution_started' | 'execution_completed' | 'execution_exited' | 'execution_paused' | 'execution_resumed' | 'node_started' | 'node_completed' | 'node_failed' | 'node_skipped';
19187
19341
 
19188
- export type status48 = 'success' | 'failed' | 'pending';
19342
+ export type status50 = 'success' | 'failed' | 'pending';
19189
19343
 
19190
19344
  /**
19191
19345
  * A node in a workflow graph. `config` shape depends on `type`.
@@ -19267,7 +19421,7 @@ export type WorkflowNode = {
19267
19421
  * integrations (webhook, hubspot_upsert_contact, ai, handoff, start_call).
19268
19422
  *
19269
19423
  */
19270
- export type type22 = 'trigger' | 'send_message' | 'wait_for_reply' | 'condition' | 'set_variable' | 'delay' | 'webhook' | 'hubspot_upsert_contact' | 'ai' | 'handoff' | 'start_call' | 'a_b_split' | 'set_field' | 'enroll_sequence' | 'add_tag' | 'remove_tag' | 'end';
19424
+ export type type23 = 'trigger' | 'send_message' | 'wait_for_reply' | 'condition' | 'set_variable' | 'delay' | 'webhook' | 'hubspot_upsert_contact' | 'ai' | 'handoff' | 'start_call' | 'a_b_split' | 'set_field' | 'enroll_sequence' | 'add_tag' | 'remove_tag' | 'end';
19271
19425
 
19272
19426
  /**
19273
19427
  * A single X API operation with its per-call price and the Zernio platform methods that trigger it.
@@ -19403,7 +19557,7 @@ export type XArticleBlock = {
19403
19557
  entity_ranges?: Array<XArticleEntityRange>;
19404
19558
  };
19405
19559
 
19406
- export type type23 = 'unstyled' | 'header-one' | 'header-two' | 'header-three' | 'unordered-list-item' | 'ordered-list-item' | 'blockquote' | 'atomic';
19560
+ export type type24 = 'unstyled' | 'header-one' | 'header-two' | 'header-three' | 'unordered-list-item' | 'ordered-list-item' | 'blockquote' | 'atomic';
19407
19561
 
19408
19562
  /**
19409
19563
  * X's snake_case content-state shape. Standard DraftJS camelCase fields such as entityMap, inlineStyleRanges, and entityRanges are rejected.
@@ -19482,7 +19636,7 @@ export type XArticleEntity = {
19482
19636
 
19483
19637
  export type mutability = 'immutable' | 'mutable' | 'segmented';
19484
19638
 
19485
- export type type24 = 'divider' | 'latex';
19639
+ export type type25 = 'divider' | 'latex';
19486
19640
 
19487
19641
  /**
19488
19642
  * The referenced entity must exist, and offset plus length must not exceed the containing block's text length.
@@ -24011,6 +24165,10 @@ export type GetConnectUrlData = {
24011
24165
  * Welcome screen only (`welcome=true`): https URL of your logo, shown in a square tile, so use a square image. Without it the tile shows the first letter of `brandName`, or the Zernio mark when there is no `brandName` either. Rejected with 400 `INVALID_FIELD_VALUE` when the welcome screen is not shown.
24012
24166
  */
24013
24167
  logoUrl?: string;
24168
+ /**
24169
+ * Connect through one of your own OAuth apps (see /v1/connect/oauth-apps), so the consent screen shows your app and the platform's limits are your app's. Without it the connect runs on Zernio's app, whatever apps the workspace has saved. Only platforms listed in `platforms` of GET /v1/connect/oauth-apps accept an app; any other, and connects that end on a destination picker (Facebook Pages, Instagram through Facebook Login), return 400. The connect requests the app's `scopeAreas`; `scopes` may narrow them but not add an area the app does not enable (400). If the user does not grant every requested area, the account still connects and the redirect carries `missing_permissions=<areas>` (the headless POST returns `missingPermissions`). If the platform refuses a permission your app is not approved for, the redirect carries `error=oauth_app_scope_not_allowed`. The account remembers the app, and token refresh, publishing and inbox run on it; reconnecting through another app, or without one, moves the account to that app.
24170
+ */
24171
+ oauthAppId?: string;
24014
24172
  /**
24015
24173
  * WhatsApp only. Ignored for every other platform. Controls which screen Meta's Embedded Signup popup shows.
24016
24174
  *
@@ -27220,6 +27378,118 @@ export type UpdateConnectWelcomeScreenResponse = (ConnectWelcomeScreen);
27220
27378
 
27221
27379
  export type UpdateConnectWelcomeScreenError = (ErrorResponse | unknown);
27222
27380
 
27381
+ export type ListOAuthAppsData = {
27382
+ query?: {
27383
+ /**
27384
+ * `pagination.nextCursor` from the previous page.
27385
+ */
27386
+ cursor?: string;
27387
+ limit?: number;
27388
+ };
27389
+ };
27390
+
27391
+ export type ListOAuthAppsResponse = ({
27392
+ apps: Array<OAuthApp>;
27393
+ pagination: {
27394
+ /**
27395
+ * Null on the last page.
27396
+ */
27397
+ nextCursor: (string) | null;
27398
+ };
27399
+ platforms: Array<OAuthAppSetup>;
27400
+ });
27401
+
27402
+ export type ListOAuthAppsError = (ErrorResponse);
27403
+
27404
+ export type CreateOAuthAppData = {
27405
+ body: {
27406
+ /**
27407
+ * One of the platforms listed in `platforms` of GET /v1/connect/oauth-apps.
27408
+ */
27409
+ platform: string;
27410
+ label: string;
27411
+ clientId: string;
27412
+ clientSecret: string;
27413
+ /**
27414
+ * Areas this app requests. Defaults to every area the platform supports; an area the platform cannot request separately is a 400.
27415
+ */
27416
+ scopeAreas?: Array<('posting' | 'analytics' | 'comments' | 'messaging' | 'ads')>;
27417
+ };
27418
+ };
27419
+
27420
+ export type CreateOAuthAppResponse = ({
27421
+ app: OAuthApp;
27422
+ });
27423
+
27424
+ export type CreateOAuthAppError = (ErrorResponse | unknown);
27425
+
27426
+ export type GetOAuthAppData = {
27427
+ path: {
27428
+ appId: string;
27429
+ };
27430
+ };
27431
+
27432
+ export type GetOAuthAppResponse = ({
27433
+ app: OAuthApp;
27434
+ });
27435
+
27436
+ export type GetOAuthAppError = (ErrorResponse | {
27437
+ error?: string;
27438
+ });
27439
+
27440
+ export type UpdateOAuthAppData = {
27441
+ body: {
27442
+ label?: string;
27443
+ clientSecret?: string;
27444
+ /**
27445
+ * Replaces the areas new connects request. Accounts already connected keep what they were granted until they reconnect.
27446
+ */
27447
+ scopeAreas?: Array<('posting' | 'analytics' | 'comments' | 'messaging' | 'ads')>;
27448
+ };
27449
+ path: {
27450
+ appId: string;
27451
+ };
27452
+ };
27453
+
27454
+ export type UpdateOAuthAppResponse = ({
27455
+ app: OAuthApp;
27456
+ });
27457
+
27458
+ export type UpdateOAuthAppError = (ErrorResponse | unknown | {
27459
+ error?: string;
27460
+ });
27461
+
27462
+ export type DeleteOAuthAppData = {
27463
+ path: {
27464
+ appId: string;
27465
+ };
27466
+ query?: {
27467
+ confirm?: boolean;
27468
+ };
27469
+ };
27470
+
27471
+ export type DeleteOAuthAppResponse = ({
27472
+ disconnectedAccounts: number;
27473
+ });
27474
+
27475
+ export type DeleteOAuthAppError = (ErrorResponse | unknown | {
27476
+ error?: string;
27477
+ });
27478
+
27479
+ export type TestOAuthAppData = {
27480
+ path: {
27481
+ appId: string;
27482
+ };
27483
+ };
27484
+
27485
+ export type TestOAuthAppResponse = ({
27486
+ app: OAuthApp;
27487
+ });
27488
+
27489
+ export type TestOAuthAppError = (ErrorResponse | {
27490
+ error?: string;
27491
+ });
27492
+
27223
27493
  export type GetPendingOAuthDataData = {
27224
27494
  query: {
27225
27495
  /**
@@ -30976,7 +31246,7 @@ export type CreateWebhookSettingsData = {
30976
31246
  /**
30977
31247
  * Events to subscribe to (at least one required)
30978
31248
  */
30979
- events: Array<('post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled' | 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved' | 'post.external.created' | 'post.external.updated' | 'post.external.deleted' | 'account.connected' | 'account.disconnected' | 'account.ads.initial_sync_completed' | 'account.ads.sync_failed' | 'account.ads.sync_recovered' | 'analytics.synced' | 'message.received' | 'conversation.started' | 'conversation.control_changed' | 'call.received' | 'call.ended' | 'call.failed' | 'call.permission_request' | 'message.sent' | 'message.edited' | 'message.deleted' | 'message.delivered' | 'message.read' | 'message.played' | 'message.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'ad.review.approved' | 'ad.review.rejected' | 'ad.delivery_issue' | 'campaign.budget.depleted' | 'ad_account.status_changed' | 'ad.video.processed' | 'ad_rule.triggered' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | 'whatsapp.account.quality_updated' | 'whatsapp.account.status_updated' | 'whatsapp.account.alert_received' | 'whatsapp.contact.identity_changed' | 'whatsapp.automatic_event' | 'whatsapp.number.activated' | 'whatsapp.number.declined' | 'whatsapp.number.action_required' | 'whatsapp.number.verification_required' | 'whatsapp.number.suspended' | 'whatsapp.number.reactivated' | 'whatsapp.number.released' | 'whatsapp.number.kyc_submitted' | 'phone_number.stock_available' | 'verification.approved' | 'verification.failed' | 'api.changelog.published' | 'sms.registration.action_required' | 'sms.registration.status_updated' | 'branded_calling.identity.status_updated' | 'branded_calling.identity.action_required' | 'branded_calling.number.status_updated' | 'rcs.agent.status_updated' | 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted' | 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded' | 'contact.tag_added' | 'contact.tag_removed' | 'contact.field_changed' | 'sequence.enrolled' | 'sequence.exited' | 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed' | 'support.run.completed' | 'support.run.failed')>;
31249
+ events: Array<('post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled' | 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved' | 'post.external.created' | 'post.external.updated' | 'post.external.deleted' | 'account.connected' | 'account.disconnected' | 'account.permissions_changed' | 'account.ads.initial_sync_completed' | 'account.ads.sync_failed' | 'account.ads.sync_recovered' | 'analytics.synced' | 'message.received' | 'conversation.started' | 'conversation.control_changed' | 'call.received' | 'call.ended' | 'call.failed' | 'call.permission_request' | 'message.sent' | 'message.edited' | 'message.deleted' | 'message.delivered' | 'message.read' | 'message.played' | 'message.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'ad.review.approved' | 'ad.review.rejected' | 'ad.delivery_issue' | 'campaign.budget.depleted' | 'ad_account.status_changed' | 'ad.video.processed' | 'ad_rule.triggered' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | 'whatsapp.account.quality_updated' | 'whatsapp.account.status_updated' | 'whatsapp.account.alert_received' | 'whatsapp.contact.identity_changed' | 'whatsapp.automatic_event' | 'whatsapp.number.activated' | 'whatsapp.number.declined' | 'whatsapp.number.action_required' | 'whatsapp.number.verification_required' | 'whatsapp.number.suspended' | 'whatsapp.number.reactivated' | 'whatsapp.number.released' | 'whatsapp.number.kyc_submitted' | 'phone_number.stock_available' | 'verification.approved' | 'verification.failed' | 'api.changelog.published' | 'sms.registration.action_required' | 'sms.registration.status_updated' | 'branded_calling.identity.status_updated' | 'branded_calling.identity.action_required' | 'branded_calling.number.status_updated' | 'rcs.agent.status_updated' | 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted' | 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded' | 'contact.tag_added' | 'contact.tag_removed' | 'contact.field_changed' | 'sequence.enrolled' | 'sequence.exited' | 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed' | 'support.run.completed' | 'support.run.failed')>;
30980
31250
  /**
30981
31251
  * Enable or disable webhook delivery. Defaults to `true` when omitted.
30982
31252
  */
@@ -31042,7 +31312,7 @@ export type UpdateWebhookSettingsData = {
31042
31312
  /**
31043
31313
  * Events to subscribe to. Must contain at least one event if provided.
31044
31314
  */
31045
- events?: Array<('post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled' | 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved' | 'post.external.created' | 'post.external.updated' | 'post.external.deleted' | 'account.connected' | 'account.disconnected' | 'account.ads.initial_sync_completed' | 'account.ads.sync_failed' | 'account.ads.sync_recovered' | 'analytics.synced' | 'message.received' | 'conversation.started' | 'conversation.control_changed' | 'call.received' | 'call.ended' | 'call.failed' | 'call.permission_request' | 'message.sent' | 'message.edited' | 'message.deleted' | 'message.delivered' | 'message.read' | 'message.played' | 'message.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'ad.review.approved' | 'ad.review.rejected' | 'ad.delivery_issue' | 'campaign.budget.depleted' | 'ad_account.status_changed' | 'ad.video.processed' | 'ad_rule.triggered' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | 'whatsapp.account.quality_updated' | 'whatsapp.account.status_updated' | 'whatsapp.account.alert_received' | 'whatsapp.contact.identity_changed' | 'whatsapp.automatic_event' | 'whatsapp.number.activated' | 'whatsapp.number.declined' | 'whatsapp.number.action_required' | 'whatsapp.number.verification_required' | 'whatsapp.number.suspended' | 'whatsapp.number.reactivated' | 'whatsapp.number.released' | 'whatsapp.number.kyc_submitted' | 'phone_number.stock_available' | 'verification.approved' | 'verification.failed' | 'api.changelog.published' | 'sms.registration.action_required' | 'sms.registration.status_updated' | 'branded_calling.identity.status_updated' | 'branded_calling.identity.action_required' | 'branded_calling.number.status_updated' | 'rcs.agent.status_updated' | 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted' | 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded' | 'contact.tag_added' | 'contact.tag_removed' | 'contact.field_changed' | 'sequence.enrolled' | 'sequence.exited' | 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed' | 'support.run.completed' | 'support.run.failed')>;
31315
+ events?: Array<('post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled' | 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved' | 'post.external.created' | 'post.external.updated' | 'post.external.deleted' | 'account.connected' | 'account.disconnected' | 'account.permissions_changed' | 'account.ads.initial_sync_completed' | 'account.ads.sync_failed' | 'account.ads.sync_recovered' | 'analytics.synced' | 'message.received' | 'conversation.started' | 'conversation.control_changed' | 'call.received' | 'call.ended' | 'call.failed' | 'call.permission_request' | 'message.sent' | 'message.edited' | 'message.deleted' | 'message.delivered' | 'message.read' | 'message.played' | 'message.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'ad.review.approved' | 'ad.review.rejected' | 'ad.delivery_issue' | 'campaign.budget.depleted' | 'ad_account.status_changed' | 'ad.video.processed' | 'ad_rule.triggered' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | 'whatsapp.account.quality_updated' | 'whatsapp.account.status_updated' | 'whatsapp.account.alert_received' | 'whatsapp.contact.identity_changed' | 'whatsapp.automatic_event' | 'whatsapp.number.activated' | 'whatsapp.number.declined' | 'whatsapp.number.action_required' | 'whatsapp.number.verification_required' | 'whatsapp.number.suspended' | 'whatsapp.number.reactivated' | 'whatsapp.number.released' | 'whatsapp.number.kyc_submitted' | 'phone_number.stock_available' | 'verification.approved' | 'verification.failed' | 'api.changelog.published' | 'sms.registration.action_required' | 'sms.registration.status_updated' | 'branded_calling.identity.status_updated' | 'branded_calling.identity.action_required' | 'branded_calling.number.status_updated' | 'rcs.agent.status_updated' | 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted' | 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded' | 'contact.tag_added' | 'contact.tag_removed' | 'contact.field_changed' | 'sequence.enrolled' | 'sequence.exited' | 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed' | 'support.run.completed' | 'support.run.failed')>;
31046
31316
  /**
31047
31317
  * Enable or disable webhook delivery
31048
31318
  */
@@ -31212,7 +31482,7 @@ export type TestWebhookData = {
31212
31482
  /**
31213
31483
  * Send a sample payload of this event instead of `webhook.test`. The sample is marked with `test: true`.
31214
31484
  */
31215
- event?: 'post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled' | 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved' | 'post.external.created' | 'post.external.updated' | 'post.external.deleted' | 'account.connected' | 'account.disconnected' | 'account.ads.initial_sync_completed' | 'account.ads.sync_failed' | 'account.ads.sync_recovered' | 'account.rate_limited' | 'calendar.event.created' | 'calendar.event.updated' | 'calendar.event.deleted' | 'file.created' | 'file.updated' | 'file.deleted' | 'file.picked' | 'contact.updated' | 'contact.deleted' | 'analytics.synced' | 'message.received' | 'message.sent' | 'message.edited' | 'message.deleted' | 'message.delivered' | 'message.read' | 'message.played' | 'message.failed' | 'reaction.received' | 'referral.received' | 'conversation.started' | 'conversation.control_changed' | 'contact.tag_added' | 'contact.tag_removed' | 'contact.field_changed' | 'sequence.enrolled' | 'sequence.exited' | 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed' | 'support.run.completed' | 'support.run.failed' | 'call.received' | 'call.ended' | 'call.failed' | 'call.permission_request' | 'comment.received' | 'review.new' | 'review.updated' | 'ad.status_changed' | 'ad.review.approved' | 'ad.review.rejected' | 'ad.delivery_issue' | 'campaign.budget.depleted' | 'ad_account.status_changed' | 'ad.video.processed' | 'ad_rule.triggered' | 'lead.received' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | 'whatsapp.account.quality_updated' | 'whatsapp.account.status_updated' | 'whatsapp.account.alert_received' | 'whatsapp.contact.identity_changed' | 'whatsapp.number.activated' | 'whatsapp.number.declined' | 'whatsapp.number.action_required' | 'whatsapp.automatic_event' | 'whatsapp.number.verification_required' | 'whatsapp.number.suspended' | 'whatsapp.number.reactivated' | 'whatsapp.number.released' | 'whatsapp.number.kyc_submitted' | 'phone_number.stock_available' | 'sms.registration.action_required' | 'sms.registration.status_updated' | 'branded_calling.identity.status_updated' | 'branded_calling.identity.action_required' | 'branded_calling.number.status_updated' | 'rcs.agent.status_updated' | 'verification.approved' | 'verification.failed' | 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted' | 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded' | 'api.changelog.published';
31485
+ event?: 'post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled' | 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved' | 'post.external.created' | 'post.external.updated' | 'post.external.deleted' | 'account.connected' | 'account.disconnected' | 'account.permissions_changed' | 'account.ads.initial_sync_completed' | 'account.ads.sync_failed' | 'account.ads.sync_recovered' | 'account.rate_limited' | 'calendar.event.created' | 'calendar.event.updated' | 'calendar.event.deleted' | 'file.created' | 'file.updated' | 'file.deleted' | 'file.picked' | 'contact.updated' | 'contact.deleted' | 'analytics.synced' | 'message.received' | 'message.sent' | 'message.edited' | 'message.deleted' | 'message.delivered' | 'message.read' | 'message.played' | 'message.failed' | 'reaction.received' | 'referral.received' | 'conversation.started' | 'conversation.control_changed' | 'contact.tag_added' | 'contact.tag_removed' | 'contact.field_changed' | 'sequence.enrolled' | 'sequence.exited' | 'workflow.run.started' | 'workflow.run.completed' | 'workflow.run.failed' | 'support.run.completed' | 'support.run.failed' | 'call.received' | 'call.ended' | 'call.failed' | 'call.permission_request' | 'comment.received' | 'review.new' | 'review.updated' | 'ad.status_changed' | 'ad.review.approved' | 'ad.review.rejected' | 'ad.delivery_issue' | 'campaign.budget.depleted' | 'ad_account.status_changed' | 'ad.video.processed' | 'ad_rule.triggered' | 'lead.received' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | 'whatsapp.account.quality_updated' | 'whatsapp.account.status_updated' | 'whatsapp.account.alert_received' | 'whatsapp.contact.identity_changed' | 'whatsapp.number.activated' | 'whatsapp.number.declined' | 'whatsapp.number.action_required' | 'whatsapp.automatic_event' | 'whatsapp.number.verification_required' | 'whatsapp.number.suspended' | 'whatsapp.number.reactivated' | 'whatsapp.number.released' | 'whatsapp.number.kyc_submitted' | 'phone_number.stock_available' | 'sms.registration.action_required' | 'sms.registration.status_updated' | 'branded_calling.identity.status_updated' | 'branded_calling.identity.action_required' | 'branded_calling.number.status_updated' | 'rcs.agent.status_updated' | 'verification.approved' | 'verification.failed' | 'commerce.product.created' | 'commerce.product.updated' | 'commerce.product.deleted' | 'commerce.order.created' | 'commerce.order.updated' | 'commerce.order.refunded' | 'api.changelog.published';
31216
31486
  };
31217
31487
  };
31218
31488
 
@@ -46187,6 +46457,37 @@ export type CreateAdRuleResponse = ({
46187
46457
 
46188
46458
  export type CreateAdRuleError = (ErrorResponse);
46189
46459
 
46460
+ export type ListAdRuleActivityData = {
46461
+ query?: {
46462
+ /**
46463
+ * Only changes of rules on this ads connection.
46464
+ */
46465
+ accountId?: string;
46466
+ /**
46467
+ * `nextCursor` from the previous page.
46468
+ */
46469
+ cursor?: string;
46470
+ /**
46471
+ * ISO 8601 date-time, inclusive.
46472
+ */
46473
+ from?: string;
46474
+ limit?: number;
46475
+ ruleId?: string;
46476
+ /**
46477
+ * ISO 8601 date-time, inclusive.
46478
+ */
46479
+ to?: string;
46480
+ type?: 'pause' | 'activate' | 'adjust_budget';
46481
+ };
46482
+ };
46483
+
46484
+ export type ListAdRuleActivityResponse = ({
46485
+ activity: Array<AdRuleActivityEntry>;
46486
+ nextCursor: (string) | null;
46487
+ });
46488
+
46489
+ export type ListAdRuleActivityError = (ErrorResponse);
46490
+
46190
46491
  export type GetAdRuleData = {
46191
46492
  path: {
46192
46493
  ruleId: string;