@zernio/node 0.2.952 → 0.2.954

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.
@@ -5487,6 +5487,62 @@ export type GooglePmaxAssetGroupUpdate = {
5487
5487
  youtubeVideoIds?: Array<(string)>;
5488
5488
  };
5489
5489
 
5490
+ export type GoogleRecommendation = {
5491
+ /**
5492
+ * customers/{customerId}/recommendations/{id}. Pass it to apply or dismiss.
5493
+ */
5494
+ resourceName: string;
5495
+ id: string;
5496
+ /**
5497
+ * Google RecommendationType, such as CAMPAIGN_BUDGET, KEYWORD or SET_TARGET_CPA.
5498
+ */
5499
+ type: string;
5500
+ dismissed: boolean;
5501
+ campaignId: (string) | null;
5502
+ /**
5503
+ * Every campaign the recommendation targets (several for account-level types).
5504
+ */
5505
+ campaignIds: Array<(string)>;
5506
+ adGroupId: (string) | null;
5507
+ campaignBudgetId: (string) | null;
5508
+ /**
5509
+ * Google's estimate over its own window. Null when Google gives none for the type.
5510
+ */
5511
+ impact: {
5512
+ base?: GoogleRecommendationMetrics;
5513
+ potential?: GoogleRecommendationMetrics;
5514
+ } | null;
5515
+ /**
5516
+ * The type-specific recommendation payload exactly as Google returns it (camelCase, amounts in micros), for example recommendedTargetCpaMicros or budgetOptions.
5517
+ */
5518
+ details: {
5519
+ [key: string]: unknown;
5520
+ } | null;
5521
+ };
5522
+
5523
+ export type GoogleRecommendationMetrics = {
5524
+ impressions?: number;
5525
+ clicks?: number;
5526
+ /**
5527
+ * Account currency units.
5528
+ */
5529
+ cost?: number;
5530
+ conversions?: number;
5531
+ conversionsValue?: number;
5532
+ videoViews?: number;
5533
+ };
5534
+
5535
+ export type GoogleRecommendationResult = {
5536
+ resourceName: string;
5537
+ status: 'applied' | 'dismissed' | 'failed';
5538
+ /**
5539
+ * Google's message when status is failed.
5540
+ */
5541
+ error?: string;
5542
+ };
5543
+
5544
+ export type status14 = 'applied' | 'dismissed' | 'failed';
5545
+
5490
5546
  export type GoogleRsaDescription = {
5491
5547
  text: string;
5492
5548
  /**
@@ -5617,7 +5673,7 @@ export type kind = 'phone' | 'email';
5617
5673
 
5618
5674
  export type region = 'US' | 'GB';
5619
5675
 
5620
- export type status14 = 'ordering' | 'activating' | 'active' | 'suspended' | 'canceled' | 'failed';
5676
+ export type status15 = 'ordering' | 'activating' | 'active' | 'suspended' | 'canceled' | 'failed';
5621
5677
 
5622
5678
  /**
5623
5679
  * Attachment snapshot inside an edit-history entry.
@@ -5689,7 +5745,7 @@ export type InboxWebhookConversation = {
5689
5745
  contactId?: string;
5690
5746
  };
5691
5747
 
5692
- export type status15 = 'active' | 'archived';
5748
+ export type status16 = 'active' | 'archived';
5693
5749
 
5694
5750
  /**
5695
5751
  * The conversation object included in conversation lifecycle webhook payloads (conversation.started, conversation.control_changed).
@@ -7276,7 +7332,7 @@ export type OwnedPhoneNumber = {
7276
7332
  }>;
7277
7333
  };
7278
7334
 
7279
- export type status16 = 'pending_payment' | 'pending_regulatory' | 'regulatory_declined' | 'provisioning' | 'verifying' | 'active' | 'suspended' | 'releasing' | 'released';
7335
+ export type status17 = 'pending_payment' | 'pending_regulatory' | 'regulatory_declined' | 'provisioning' | 'verifying' | 'active' | 'suspended' | 'releasing' | 'released';
7280
7336
 
7281
7337
  export type metaVerificationStatus = 'pending' | 'code_requested' | 'verified' | 'expired';
7282
7338
 
@@ -7401,7 +7457,7 @@ export type PlatformAnalytics = {
7401
7457
  errorMessage?: (string) | null;
7402
7458
  };
7403
7459
 
7404
- export type status17 = 'published' | 'failed';
7460
+ export type status18 = 'published' | 'failed';
7405
7461
 
7406
7462
  /**
7407
7463
  * Sync state of analytics for this platform
@@ -7803,7 +7859,7 @@ export type Product = {
7803
7859
 
7804
7860
  export type platform8 = 'shopify';
7805
7861
 
7806
- export type status18 = 'active' | 'draft' | 'archived';
7862
+ export type status19 = 'active' | 'draft' | 'archived';
7807
7863
 
7808
7864
  export type ProductImage = {
7809
7865
  url?: string;
@@ -9079,7 +9135,7 @@ export type UploadTokenResponse = {
9079
9135
  status?: 'pending' | 'completed' | 'expired';
9080
9136
  };
9081
9137
 
9082
- export type status19 = 'pending' | 'completed' | 'expired';
9138
+ export type status20 = 'pending' | 'completed' | 'expired';
9083
9139
 
9084
9140
  export type UploadTokenStatusResponse = {
9085
9141
  token?: string;
@@ -9578,7 +9634,7 @@ export type Verification = {
9578
9634
  resend?: boolean;
9579
9635
  };
9580
9636
 
9581
- export type status20 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
9637
+ export type status21 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
9582
9638
 
9583
9639
  export type channel4 = 'sms';
9584
9640
 
@@ -9605,7 +9661,7 @@ export type Webhook = {
9605
9661
  /**
9606
9662
  * Events subscribed to
9607
9663
  */
9608
- 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' | '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.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | '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' | 'sms.registration.action_required' | 'sms.registration.status_updated')>;
9664
+ 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.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | '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' | 'sms.registration.action_required' | 'sms.registration.status_updated')>;
9609
9665
  /**
9610
9666
  * Whether webhook delivery is enabled
9611
9667
  */
@@ -9638,6 +9694,28 @@ export type Webhook = {
9638
9694
  accountIds?: Array<(string)>;
9639
9695
  };
9640
9696
 
9697
+ export type WebhookAdsSyncAccount = {
9698
+ /**
9699
+ * The ads connection's account ID (same as used in /v1/accounts/{accountId})
9700
+ */
9701
+ accountId: string;
9702
+ profileId: string;
9703
+ /**
9704
+ * The ads connection platform, e.g. metaads, googleads, tiktokads, linkedinads
9705
+ */
9706
+ platform: string;
9707
+ username: string;
9708
+ displayName?: (string) | null;
9709
+ };
9710
+
9711
+ export type WebhookAdsSyncAdAccount = {
9712
+ /**
9713
+ * The platform ad account ID, e.g. act_1489036928764209 on Meta
9714
+ */
9715
+ platformAdAccountId: string;
9716
+ name: (string) | null;
9717
+ };
9718
+
9641
9719
  /**
9642
9720
  * A single webhook delivery attempt recorded by Zernio (30-day retention).
9643
9721
  */
@@ -9705,7 +9783,7 @@ export type WebhookLog = {
9705
9783
  /**
9706
9784
  * Delivery outcome
9707
9785
  */
9708
- export type status21 = 'success' | 'failed';
9786
+ export type status22 = 'success' | 'failed';
9709
9787
 
9710
9788
  /**
9711
9789
  * Webhook payload for `account.ads.initial_sync_completed` events.
@@ -9817,7 +9895,7 @@ export type event = 'account.ads.initial_sync_completed';
9817
9895
  /**
9818
9896
  * Overall outcome of the initial sync.
9819
9897
  */
9820
- export type status22 = 'success' | 'failure';
9898
+ export type status23 = 'success' | 'failure';
9821
9899
 
9822
9900
  /**
9823
9901
  * Stable category for UX branching. New values may be added; existing ones are
@@ -9835,6 +9913,85 @@ export type status22 = 'success' | 'failure';
9835
9913
  */
9836
9914
  export type errorCategory2 = 'token_invalid' | 'permission_denied' | 'no_ad_accounts' | 'rate_limited' | 'discovery_failed' | 'unknown';
9837
9915
 
9916
+ /**
9917
+ * Webhook payload for `account.ads.sync_failed` events. Fired once per ad account
9918
+ * when its ads stop syncing: no successful sync for 24 hours, or every live ad in it
9919
+ * at the retry cap. It does not fire again for the same ad account until
9920
+ * `account.ads.sync_recovered`. Metrics for the ad account are stale meanwhile.
9921
+ *
9922
+ */
9923
+ export type WebhookPayloadAccountAdsSyncFailed = {
9924
+ /**
9925
+ * Stable webhook event ID: the dedupe key, also sent as the X-Zernio-Event-Id header and identical on every retry and redelivery.
9926
+ */
9927
+ id: string;
9928
+ event: 'account.ads.sync_failed';
9929
+ account: WebhookAdsSyncAccount;
9930
+ adAccount: WebhookAdsSyncAdAccount;
9931
+ sync: {
9932
+ lastSuccessfulSyncAt: string;
9933
+ /**
9934
+ * Consecutive failed sync attempts on the ad account's ads.
9935
+ */
9936
+ failureCount: number;
9937
+ /**
9938
+ * ad_account_not_listed = the platform no longer returns the ad account to this
9939
+ * connection (access removed, or a platform-side change); sync_error = the platform
9940
+ * returned an error, see `error`; stale = no sync succeeded and no error was
9941
+ * recorded. New values may be added.
9942
+ *
9943
+ */
9944
+ errorCategory: 'ad_account_not_listed' | 'sync_error' | 'stale';
9945
+ /**
9946
+ * Human-readable detail, for display and debugging. Branch on errorCategory.
9947
+ */
9948
+ error: string;
9949
+ };
9950
+ /**
9951
+ * UTC time at which Zernio generated this event. Retries and redeliveries keep the original value.
9952
+ */
9953
+ timestamp: string;
9954
+ };
9955
+
9956
+ export type event2 = 'account.ads.sync_failed';
9957
+
9958
+ /**
9959
+ * ad_account_not_listed = the platform no longer returns the ad account to this
9960
+ * connection (access removed, or a platform-side change); sync_error = the platform
9961
+ * returned an error, see `error`; stale = no sync succeeded and no error was
9962
+ * recorded. New values may be added.
9963
+ *
9964
+ */
9965
+ export type errorCategory3 = 'ad_account_not_listed' | 'sync_error' | 'stale';
9966
+
9967
+ /**
9968
+ * Webhook payload for `account.ads.sync_recovered` events. Fired once when an ad account
9969
+ * previously reported by `account.ads.sync_failed` syncs successfully again.
9970
+ *
9971
+ */
9972
+ export type WebhookPayloadAccountAdsSyncRecovered = {
9973
+ /**
9974
+ * Stable webhook event ID: the dedupe key, also sent as the X-Zernio-Event-Id header and identical on every retry and redelivery.
9975
+ */
9976
+ id: string;
9977
+ event: 'account.ads.sync_recovered';
9978
+ account: WebhookAdsSyncAccount;
9979
+ adAccount: WebhookAdsSyncAdAccount;
9980
+ sync: {
9981
+ lastSuccessfulSyncAt: string;
9982
+ /**
9983
+ * The last successful sync before the failure started.
9984
+ */
9985
+ failingSince: string;
9986
+ };
9987
+ /**
9988
+ * UTC time at which Zernio generated this event. Retries and redeliveries keep the original value.
9989
+ */
9990
+ timestamp: string;
9991
+ };
9992
+
9993
+ export type event3 = 'account.ads.sync_recovered';
9994
+
9838
9995
  /**
9839
9996
  * Webhook payload for account connected events
9840
9997
  */
@@ -9863,7 +10020,7 @@ export type WebhookPayloadAccountConnected = {
9863
10020
  timestamp: string;
9864
10021
  };
9865
10022
 
9866
- export type event2 = 'account.connected';
10023
+ export type event4 = 'account.connected';
9867
10024
 
9868
10025
  /**
9869
10026
  * Webhook payload for account disconnected events
@@ -9901,7 +10058,7 @@ export type WebhookPayloadAccountDisconnected = {
9901
10058
  timestamp: string;
9902
10059
  };
9903
10060
 
9904
- export type event3 = 'account.disconnected';
10061
+ export type event5 = 'account.disconnected';
9905
10062
 
9906
10063
  /**
9907
10064
  * Whether the disconnection was intentional (user action) or unintentional (token expired/revoked)
@@ -10022,7 +10179,7 @@ export type WebhookPayloadAdStatusChanged = {
10022
10179
  timestamp: string;
10023
10180
  };
10024
10181
 
10025
- export type event4 = 'ad.status_changed';
10182
+ export type event6 = 'ad.status_changed';
10026
10183
 
10027
10184
  /**
10028
10185
  * Hierarchy level the status applies to. Mirrors Meta's `level`. Creative-level events are not forwarded.
@@ -10100,7 +10257,7 @@ export type WebhookPayloadAnalyticsSynced = {
10100
10257
  timestamp: string;
10101
10258
  };
10102
10259
 
10103
- export type event5 = 'analytics.synced';
10260
+ export type event7 = 'analytics.synced';
10104
10261
 
10105
10262
  /**
10106
10263
  * Webhook payload for the `call.ended` event. Fires on call hangup
@@ -10170,7 +10327,7 @@ export type WebhookPayloadCallEnded = {
10170
10327
  timestamp: string;
10171
10328
  };
10172
10329
 
10173
- export type event6 = 'call.ended';
10330
+ export type event8 = 'call.ended';
10174
10331
 
10175
10332
  /**
10176
10333
  * Webhook payload for the `call.failed` event. Fired when a call
@@ -10204,7 +10361,7 @@ export type WebhookPayloadCallFailed = {
10204
10361
  timestamp: string;
10205
10362
  };
10206
10363
 
10207
- export type event7 = 'call.failed';
10364
+ export type event9 = 'call.failed';
10208
10365
 
10209
10366
  /**
10210
10367
  * Webhook payload for the `call.permission_request` event. Fires
@@ -10241,7 +10398,7 @@ export type WebhookPayloadCallPermissionRequest = {
10241
10398
  timestamp: string;
10242
10399
  };
10243
10400
 
10244
- export type event8 = 'call.permission_request';
10401
+ export type event10 = 'call.permission_request';
10245
10402
 
10246
10403
  export type response = 'accept' | 'reject';
10247
10404
 
@@ -10295,7 +10452,7 @@ export type WebhookPayloadCallReceived = {
10295
10452
  timestamp: string;
10296
10453
  };
10297
10454
 
10298
- export type event9 = 'call.received';
10455
+ export type event11 = 'call.received';
10299
10456
 
10300
10457
  /**
10301
10458
  * Webhook payload for comment received events (Instagram, Facebook, Threads, YouTube, LinkedIn, Bluesky, Reddit, TikTok). X/Twitter does NOT fire this event. TikTok events carry only the author id: the comment.update webhook has no username, picture or owner flag.
@@ -10451,7 +10608,7 @@ export type WebhookPayloadComment = {
10451
10608
  timestamp: string;
10452
10609
  };
10453
10610
 
10454
- export type event10 = 'comment.received';
10611
+ export type event12 = 'comment.received';
10455
10612
 
10456
10613
  export type platform12 = 'instagram' | 'facebook' | 'threads' | 'youtube' | 'linkedin' | 'bluesky' | 'reddit' | 'tiktok';
10457
10614
 
@@ -10489,7 +10646,7 @@ export type WebhookPayloadConversationControlChanged = {
10489
10646
  timestamp: string;
10490
10647
  };
10491
10648
 
10492
- export type event11 = 'conversation.control_changed';
10649
+ export type event13 = 'conversation.control_changed';
10493
10650
 
10494
10651
  /**
10495
10652
  * Who answers now. ai_agent: Meta Business Agent; app: you; other: another partner app on the number.
@@ -10526,7 +10683,7 @@ export type WebhookPayloadConversationStarted = {
10526
10683
  timestamp: string;
10527
10684
  };
10528
10685
 
10529
- export type event12 = 'conversation.started';
10686
+ export type event14 = 'conversation.started';
10530
10687
 
10531
10688
  /**
10532
10689
  * Webhook payload for post.external.created / post.external.updated /
@@ -10558,7 +10715,7 @@ export type WebhookPayloadExternalPost = {
10558
10715
  timestamp: string;
10559
10716
  };
10560
10717
 
10561
- export type event13 = 'post.external.created' | 'post.external.updated' | 'post.external.deleted';
10718
+ export type event15 = 'post.external.created' | 'post.external.updated' | 'post.external.deleted';
10562
10719
 
10563
10720
  /**
10564
10721
  * Webhook payload for lead.received events (Meta Lead Gen / Instant Forms).
@@ -10629,7 +10786,7 @@ export type WebhookPayloadLead = {
10629
10786
  timestamp: string;
10630
10787
  };
10631
10788
 
10632
- export type event14 = 'lead.received';
10789
+ export type event16 = 'lead.received';
10633
10790
 
10634
10791
  export type platform13 = 'facebook';
10635
10792
 
@@ -11167,7 +11324,7 @@ export type WebhookPayloadMessage = {
11167
11324
  timestamp: string;
11168
11325
  };
11169
11326
 
11170
- export type event15 = 'message.received';
11327
+ export type event17 = 'message.received';
11171
11328
 
11172
11329
  /**
11173
11330
  * Which Zernio surface produced the message. Always present and
@@ -11228,7 +11385,7 @@ export type WebhookPayloadMessageDeleted = {
11228
11385
  timestamp: string;
11229
11386
  };
11230
11387
 
11231
- export type event16 = 'message.deleted';
11388
+ export type event18 = 'message.deleted';
11232
11389
 
11233
11390
  /**
11234
11391
  * Shared payload for message.delivered, message.read, and
@@ -11288,7 +11445,7 @@ export type WebhookPayloadMessageDeliveryStatus = {
11288
11445
  timestamp: string;
11289
11446
  };
11290
11447
 
11291
- export type event17 = 'message.delivered' | 'message.read' | 'message.failed';
11448
+ export type event19 = 'message.delivered' | 'message.read' | 'message.failed';
11292
11449
 
11293
11450
  /**
11294
11451
  * Webhook payload for message.edited events. Fires when the sender
@@ -11326,7 +11483,7 @@ export type WebhookPayloadMessageEdited = {
11326
11483
  timestamp: string;
11327
11484
  };
11328
11485
 
11329
- export type event18 = 'message.edited';
11486
+ export type event20 = 'message.edited';
11330
11487
 
11331
11488
  /**
11332
11489
  * Webhook payload for message sent events (fired when a message is sent via the API, or from the WhatsApp Business app on Coexistence numbers)
@@ -11542,7 +11699,7 @@ export type WebhookPayloadMessageSent = {
11542
11699
  timestamp: string;
11543
11700
  };
11544
11701
 
11545
- export type event19 = 'message.sent';
11702
+ export type event21 = 'message.sent';
11546
11703
 
11547
11704
  /**
11548
11705
  * Every platform whose outgoing messages Zernio observes. sms is absent on purpose: its carrier receipts update delivery status and never raise message.sent.
@@ -11596,7 +11753,7 @@ export type WebhookPayloadPhoneNumberStockAvailable = {
11596
11753
  timestamp: string;
11597
11754
  };
11598
11755
 
11599
- export type event20 = 'phone_number.stock_available';
11756
+ export type event22 = 'phone_number.stock_available';
11600
11757
 
11601
11758
  /**
11602
11759
  * Webhook payload for post events
@@ -11646,7 +11803,7 @@ export type WebhookPayloadPost = {
11646
11803
  timestamp: string;
11647
11804
  };
11648
11805
 
11649
- export type event21 = 'post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled';
11806
+ export type event23 = 'post.scheduled' | 'post.published' | 'post.failed' | 'post.partial' | 'post.cancelled' | 'post.recycled';
11650
11807
 
11651
11808
  /**
11652
11809
  * Webhook payload for the per-platform terminal events
@@ -11765,12 +11922,12 @@ export type WebhookPayloadPostPlatform = {
11765
11922
  timestamp: string;
11766
11923
  };
11767
11924
 
11768
- export type event22 = 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved';
11925
+ export type event24 = 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved';
11769
11926
 
11770
11927
  /**
11771
11928
  * Terminal status this event fires on. Matches the event suffix.
11772
11929
  */
11773
- export type status23 = 'published' | 'failed' | 'deleted';
11930
+ export type status24 = 'published' | 'failed' | 'deleted';
11774
11931
 
11775
11932
  /**
11776
11933
  * Webhook payload for reaction received events (WhatsApp, Telegram, Slack, Instagram, Facebook Messenger, TikTok)
@@ -11825,7 +11982,7 @@ export type WebhookPayloadReaction = {
11825
11982
  timestamp: string;
11826
11983
  };
11827
11984
 
11828
- export type event23 = 'reaction.received';
11985
+ export type event25 = 'reaction.received';
11829
11986
 
11830
11987
  export type action = 'added' | 'removed';
11831
11988
 
@@ -11899,7 +12056,7 @@ export type WebhookPayloadReferral = {
11899
12056
  timestamp: string;
11900
12057
  };
11901
12058
 
11902
- export type event24 = 'referral.received';
12059
+ export type event26 = 'referral.received';
11903
12060
 
11904
12061
  /**
11905
12062
  * Webhook payload for the review.new event (new review posted on a connected account).
@@ -11926,7 +12083,7 @@ export type WebhookPayloadReviewNew = {
11926
12083
  timestamp: string;
11927
12084
  };
11928
12085
 
11929
- export type event25 = 'review.new';
12086
+ export type event27 = 'review.new';
11930
12087
 
11931
12088
  /**
11932
12089
  * Webhook payload for the review.updated event. Fired when the reviewer edits their
@@ -11959,7 +12116,7 @@ export type WebhookPayloadReviewUpdated = {
11959
12116
  timestamp: string;
11960
12117
  };
11961
12118
 
11962
- export type event26 = 'review.updated';
12119
+ export type event28 = 'review.updated';
11963
12120
 
11964
12121
  /**
11965
12122
  * Webhook payload for test deliveries
@@ -11980,7 +12137,7 @@ export type WebhookPayloadTest = {
11980
12137
  timestamp: string;
11981
12138
  };
11982
12139
 
11983
- export type event27 = 'webhook.test';
12140
+ export type event29 = 'webhook.test';
11984
12141
 
11985
12142
  /**
11986
12143
  * Webhook payload for the `whatsapp.account.name_status_updated` event.
@@ -12029,14 +12186,14 @@ export type WebhookPayloadWhatsAppAccountNameStatusUpdated = {
12029
12186
  timestamp: string;
12030
12187
  };
12031
12188
 
12032
- export type event28 = 'whatsapp.account.name_status_updated';
12189
+ export type event30 = 'whatsapp.account.name_status_updated';
12033
12190
 
12034
12191
  export type platform15 = 'whatsapp';
12035
12192
 
12036
12193
  /**
12037
12194
  * Normalized from Meta's `decision` (REJECTED -> DECLINED, DEFERRED -> PENDING_REVIEW; the review is still open on DEFERRED, not a rejection).
12038
12195
  */
12039
- export type status24 = 'APPROVED' | 'DECLINED' | 'PENDING_REVIEW';
12196
+ export type status25 = 'APPROVED' | 'DECLINED' | 'PENDING_REVIEW';
12040
12197
 
12041
12198
  /**
12042
12199
  * Webhook payload for the `whatsapp.template.category_updated` event.
@@ -12100,7 +12257,7 @@ export type WebhookPayloadWhatsAppTemplateCategoryUpdated = {
12100
12257
  timestamp: string;
12101
12258
  };
12102
12259
 
12103
- export type event29 = 'whatsapp.template.category_updated';
12260
+ export type event31 = 'whatsapp.template.category_updated';
12104
12261
 
12105
12262
  /**
12106
12263
  * `scheduled` is Meta's 24h advance notice of an upcoming
@@ -12177,7 +12334,7 @@ export type WebhookPayloadWhatsAppTemplateStatusUpdated = {
12177
12334
  timestamp: string;
12178
12335
  };
12179
12336
 
12180
- export type event30 = 'whatsapp.template.status_updated';
12337
+ export type event32 = 'whatsapp.template.status_updated';
12181
12338
 
12182
12339
  /**
12183
12340
  * New status. Forwarded verbatim from Meta's `event` field.
@@ -12185,7 +12342,7 @@ export type event30 = 'whatsapp.template.status_updated';
12185
12342
  * request before the template is actually removed.
12186
12343
  *
12187
12344
  */
12188
- export type status25 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
12345
+ export type status26 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
12189
12346
 
12190
12347
  export type WhatsAppBodyComponent = {
12191
12348
  type: 'body';
@@ -12339,7 +12496,7 @@ export type WhatsAppSandboxSession = {
12339
12496
  * list responses.
12340
12497
  *
12341
12498
  */
12342
- export type status26 = 'pending' | 'active';
12499
+ export type status27 = 'pending' | 'active';
12343
12500
 
12344
12501
  export type WhatsAppTemplateButton = {
12345
12502
  type: 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
@@ -12497,7 +12654,7 @@ export type WorkflowExecutionEvent = {
12497
12654
 
12498
12655
  export type action2 = 'execution_started' | 'execution_completed' | 'execution_exited' | 'execution_paused' | 'execution_resumed' | 'node_started' | 'node_completed' | 'node_failed' | 'node_skipped';
12499
12656
 
12500
- export type status27 = 'success' | 'failed' | 'pending';
12657
+ export type status28 = 'success' | 'failed' | 'pending';
12501
12658
 
12502
12659
  /**
12503
12660
  * A node in a workflow graph. `config` shape depends on `type`.
@@ -22732,7 +22889,7 @@ export type CreateWebhookSettingsData = {
22732
22889
  /**
22733
22890
  * Events to subscribe to (at least one required)
22734
22891
  */
22735
- 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' | '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.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | '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' | 'sms.registration.action_required' | 'sms.registration.status_updated')>;
22892
+ 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.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | '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' | 'sms.registration.action_required' | 'sms.registration.status_updated')>;
22736
22893
  /**
22737
22894
  * Enable or disable webhook delivery. Defaults to `true` when omitted.
22738
22895
  */
@@ -22800,7 +22957,7 @@ export type UpdateWebhookSettingsData = {
22800
22957
  /**
22801
22958
  * Events to subscribe to. Must contain at least one event if provided.
22802
22959
  */
22803
- 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' | '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.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | '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' | 'sms.registration.action_required' | 'sms.registration.status_updated')>;
22960
+ 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.failed' | 'reaction.received' | 'referral.received' | 'comment.received' | 'review.new' | 'review.updated' | 'lead.received' | 'ad.status_changed' | 'whatsapp.template.status_updated' | 'whatsapp.template.category_updated' | 'whatsapp.account.name_status_updated' | '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' | 'sms.registration.action_required' | 'sms.registration.status_updated')>;
22804
22961
  /**
22805
22962
  * Enable or disable webhook delivery
22806
22963
  */
@@ -35640,6 +35797,103 @@ export type GetAdsSearchTermsError = (ErrorResponse | {
35640
35797
  error?: string;
35641
35798
  } | unknown);
35642
35799
 
35800
+ export type ListGoogleRecommendationsData = {
35801
+ query: {
35802
+ /**
35803
+ * Google ads SocialAccount id.
35804
+ */
35805
+ accountId: string;
35806
+ /**
35807
+ * Google customer id, digits only. Defaults to the connection's only customer.
35808
+ */
35809
+ adAccountId?: string;
35810
+ /**
35811
+ * Only recommendations targeting this campaign.
35812
+ */
35813
+ campaignId?: string;
35814
+ /**
35815
+ * Alias of adAccountId, kept for consistency with other Google endpoints.
35816
+ * @deprecated
35817
+ */
35818
+ customerId?: string;
35819
+ /**
35820
+ * Comma-separated Google RecommendationType values, for example CAMPAIGN_BUDGET,KEYWORD,SET_TARGET_CPA.
35821
+ */
35822
+ types?: string;
35823
+ };
35824
+ };
35825
+
35826
+ export type ListGoogleRecommendationsResponse = ({
35827
+ adAccountId: string;
35828
+ recommendations: Array<GoogleRecommendation>;
35829
+ cachedAt: (string) | null;
35830
+ stale: boolean;
35831
+ });
35832
+
35833
+ export type ListGoogleRecommendationsError = (ErrorResponse | {
35834
+ error?: string;
35835
+ } | unknown);
35836
+
35837
+ export type ApplyGoogleRecommendationsData = {
35838
+ body: {
35839
+ /**
35840
+ * Google ads SocialAccount id.
35841
+ */
35842
+ accountId: string;
35843
+ /**
35844
+ * Google customer id, digits only. Required when the connection has several customers.
35845
+ */
35846
+ adAccountId?: string;
35847
+ recommendations: Array<{
35848
+ /**
35849
+ * Recommendation resource name from the list, or its id.
35850
+ */
35851
+ resourceName: string;
35852
+ /**
35853
+ * One key, such as campaignBudget, keyword, textAd, targetCpaOptIn, targetRoasOptIn, callAsset, calloutAsset, sitelinkAsset, moveUnusedBudget, responsiveSearchAd, responsiveSearchAdAsset, responsiveSearchAdImproveAdStrength, useBroadMatchKeyword, raiseTargetCpa, lowerTargetRoas, setTargetCpa, setTargetRoas, forecastingSetTargetCpa, forecastingSetTargetRoas, leadFormAsset, raiseTargetCpaBidTooLow, raiseTargetCpaPerformanceBidTooLow, lowerTargetRoasPerformanceBidTooLow, calloutExtension, callExtension or sitelinkExtension.
35854
+ */
35855
+ parameters?: {
35856
+ [key: string]: unknown;
35857
+ };
35858
+ }>;
35859
+ };
35860
+ };
35861
+
35862
+ export type ApplyGoogleRecommendationsResponse = ({
35863
+ adAccountId: string;
35864
+ results: Array<GoogleRecommendationResult>;
35865
+ });
35866
+
35867
+ export type ApplyGoogleRecommendationsError = (ErrorResponse | {
35868
+ error?: string;
35869
+ } | unknown);
35870
+
35871
+ export type DismissGoogleRecommendationsData = {
35872
+ body: {
35873
+ /**
35874
+ * Google ads SocialAccount id.
35875
+ */
35876
+ accountId: string;
35877
+ /**
35878
+ * Google customer id, digits only. Required when the connection has several customers.
35879
+ */
35880
+ adAccountId?: string;
35881
+ /**
35882
+ * Recommendation resource names from the list, or their ids.
35883
+ */
35884
+ resourceNames: Array<(string)>;
35885
+ };
35886
+ };
35887
+
35888
+ export type DismissGoogleRecommendationsResponse = ({
35889
+ adAccountId: string;
35890
+ results: Array<GoogleRecommendationResult>;
35891
+ });
35892
+
35893
+ export type DismissGoogleRecommendationsError = (ErrorResponse | {
35894
+ error?: string;
35895
+ } | unknown);
35896
+
35643
35897
  export type ListBidStrategiesData = {
35644
35898
  query: {
35645
35899
  /**