@zernio/node 0.2.518 → 0.2.520

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.
@@ -1623,6 +1623,15 @@ export type ConversionEvent = {
1623
1623
  * Meta advanced matching (ge). 'f' or 'm'; hashed server-side. Meta only.
1624
1624
  */
1625
1625
  gender?: string;
1626
+ /**
1627
+ * Meta lead ID from a Lead Ad submission, as a string. Required
1628
+ * for Conversion Leads CRM events: send it with
1629
+ * `actionSource: 'crm'` and
1630
+ * `platformData: { event_source: 'crm', lead_event_source: '<CRM name>' }`.
1631
+ * Forwarded unhashed to Meta's `user_data.lead_id`. Meta only.
1632
+ *
1633
+ */
1634
+ leadId?: string;
1626
1635
  /**
1627
1636
  * Platform click identifiers captured from the originating ad click.
1628
1637
  */
@@ -1678,7 +1687,13 @@ export type ConversionEvent = {
1678
1687
  */
1679
1688
  actionSource?: 'web' | 'app' | 'offline' | 'crm' | 'phone_call' | 'system_generated';
1680
1689
  /**
1681
- * Escape hatch for platform-specific fields we haven't normalized. Forwarded as-is.
1690
+ * Escape hatch for platform-specific fields we haven't normalized.
1691
+ * On Meta, keys are shallow-merged into `custom_data` only: fields
1692
+ * Zernio already builds (`value`, `currency`, `contents`,
1693
+ * `num_items`) always win on collision, and `user_data` (hashed
1694
+ * match keys) is never touched. Use first-class fields (e.g.
1695
+ * `user.leadId`) for anything that must reach `user_data`.
1696
+ *
1682
1697
  */
1683
1698
  platformData?: {
1684
1699
  [key: string]: unknown;
@@ -25488,6 +25503,14 @@ export type ListCommentAutomationsResponse = ({
25488
25503
  * Tag applied to a contact when they click a tracked link.
25489
25504
  */
25490
25505
  clickTag?: string;
25506
+ /**
25507
+ * Seconds waited after the trigger before the DM is sent. Absent when the DM goes out immediately.
25508
+ */
25509
+ dmDelaySeconds?: number;
25510
+ /**
25511
+ * Seconds waited before the public reply is posted. Absent when it follows the DM immediately.
25512
+ */
25513
+ commentReplyDelaySeconds?: number;
25491
25514
  isActive?: boolean;
25492
25515
  stats?: {
25493
25516
  triggered?: number;
@@ -25594,6 +25617,14 @@ export type CreateCommentAutomationData = {
25594
25617
  * Optional tag applied to a contact when they click a tracked link (requires linkTracking). Lets you segment clickers for broadcasts/sequences.
25595
25618
  */
25596
25619
  clickTag?: string;
25620
+ /**
25621
+ * Seconds to wait after the trigger before sending the DM. Omit or send 0 to reply immediately (the default). Max 86400 (24h). The trigger is still matched and deduplicated the moment the comment arrives, so a delay only moves when the response is sent.
25622
+ */
25623
+ dmDelaySeconds?: number;
25624
+ /**
25625
+ * Seconds to wait before posting the public comment reply. Omit or send 0 to post it right after the DM (the default). The reply never goes out before the DM, so a value below dmDelaySeconds is raised to it. Ignored when trigger=story_reply, which has no public reply.
25626
+ */
25627
+ commentReplyDelaySeconds?: number;
25597
25628
  audience?: CommentAutomationAudience;
25598
25629
  followGate?: CommentAutomationFollowGate;
25599
25630
  };
@@ -25636,6 +25667,14 @@ export type CreateCommentAutomationResponse = ({
25636
25667
  commentReplyVariations?: Array<(string)>;
25637
25668
  linkTracking?: boolean;
25638
25669
  clickTag?: string;
25670
+ /**
25671
+ * Seconds waited after the trigger before the DM is sent. Absent when the DM goes out immediately.
25672
+ */
25673
+ dmDelaySeconds?: number;
25674
+ /**
25675
+ * Seconds waited before the public reply is posted. Absent when it follows the DM immediately.
25676
+ */
25677
+ commentReplyDelaySeconds?: number;
25639
25678
  audience?: CommentAutomationAudience;
25640
25679
  followGate?: CommentAutomationFollowGate;
25641
25680
  isActive?: boolean;
@@ -25698,6 +25737,14 @@ export type GetCommentAutomationResponse = ({
25698
25737
  commentReplyVariations?: Array<(string)>;
25699
25738
  linkTracking?: boolean;
25700
25739
  clickTag?: string;
25740
+ /**
25741
+ * Seconds waited after the trigger before the DM is sent. Absent when the DM goes out immediately.
25742
+ */
25743
+ dmDelaySeconds?: number;
25744
+ /**
25745
+ * Seconds waited before the public reply is posted. Absent when it follows the DM immediately.
25746
+ */
25747
+ commentReplyDelaySeconds?: number;
25701
25748
  audience?: CommentAutomationAudience;
25702
25749
  followGate?: CommentAutomationFollowGate;
25703
25750
  isActive?: boolean;
@@ -25716,9 +25763,9 @@ export type GetCommentAutomationResponse = ({
25716
25763
  commenterName?: string;
25717
25764
  commentText?: string;
25718
25765
  /**
25719
- * DM outcome. 'gated' = the follow-gate confirmation DM went out and we are waiting for the tap; it flips to 'sent' or 'skipped' when they tap.
25766
+ * 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.
25720
25767
  */
25721
- status?: 'sent' | 'failed' | 'skipped' | 'gated';
25768
+ status?: 'pending' | 'sent' | 'failed' | 'skipped' | 'gated';
25722
25769
  /**
25723
25770
  * How the audience rule resolved. Absent on automations without one.
25724
25771
  */
@@ -25740,6 +25787,10 @@ export type GetCommentAutomationResponse = ({
25740
25787
  * Public-reply error message if commentReplyStatus is failed
25741
25788
  */
25742
25789
  commentReplyError?: string;
25790
+ /**
25791
+ * When the next queued send fires. Present only while something is still pending.
25792
+ */
25793
+ nextDueAt?: string;
25743
25794
  createdAt?: string;
25744
25795
  }>;
25745
25796
  });
@@ -25790,6 +25841,14 @@ export type UpdateCommentAutomationData = {
25790
25841
  * Tag applied to a contact when they click a tracked link (requires linkTracking). Empty string clears it.
25791
25842
  */
25792
25843
  clickTag?: string;
25844
+ /**
25845
+ * Seconds to wait after the trigger before sending the DM. Send 0 to clear the delay and reply immediately.
25846
+ */
25847
+ dmDelaySeconds?: number;
25848
+ /**
25849
+ * Seconds to wait before posting the public comment reply. Send 0 to clear it. The reply never goes out before the DM.
25850
+ */
25851
+ commentReplyDelaySeconds?: number;
25793
25852
  audience?: CommentAutomationAudience;
25794
25853
  followGate?: CommentAutomationFollowGate;
25795
25854
  isActive?: boolean;
@@ -25864,7 +25923,7 @@ export type ListCommentAutomationLogsData = {
25864
25923
  /**
25865
25924
  * Filter by result status
25866
25925
  */
25867
- status?: 'sent' | 'failed' | 'skipped' | 'gated';
25926
+ status?: 'pending' | 'sent' | 'failed' | 'skipped' | 'gated';
25868
25927
  };
25869
25928
  };
25870
25929
 
@@ -25877,9 +25936,9 @@ export type ListCommentAutomationLogsResponse = ({
25877
25936
  commenterName?: string;
25878
25937
  commentText?: string;
25879
25938
  /**
25880
- * DM outcome. 'gated' = the follow-gate confirmation DM went out and we are waiting for the tap; it flips to 'sent' or 'skipped' when they tap.
25939
+ * 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.
25881
25940
  */
25882
- status?: 'sent' | 'failed' | 'skipped' | 'gated';
25941
+ status?: 'pending' | 'sent' | 'failed' | 'skipped' | 'gated';
25883
25942
  /**
25884
25943
  * How the audience rule resolved. Absent on automations without one.
25885
25944
  */
@@ -25901,6 +25960,10 @@ export type ListCommentAutomationLogsResponse = ({
25901
25960
  * Public-reply error message if commentReplyStatus is failed
25902
25961
  */
25903
25962
  commentReplyError?: string;
25963
+ /**
25964
+ * When the next queued send fires. Present only while something is still pending.
25965
+ */
25966
+ nextDueAt?: string;
25904
25967
  createdAt?: string;
25905
25968
  }>;
25906
25969
  pagination?: {