@zernio/node 0.2.547 → 0.2.549

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1800,7 +1800,7 @@ type AdEngagementCounts = {
1800
1800
  */
1801
1801
  videoViews?: number;
1802
1802
  /**
1803
- * Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session `inline_link_clicks` reported by `GET /v1/ads/{adId}/analytics`.
1803
+ * Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session count in the sibling `inlineLinkClicks` field.
1804
1804
  */
1805
1805
  linkClicks?: number;
1806
1806
  };
@@ -1925,6 +1925,36 @@ type AdMetrics = {
1925
1925
  * Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level.
1926
1926
  */
1927
1927
  roas?: number;
1928
+ /**
1929
+ * Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported.
1930
+ */
1931
+ costPerAction?: {
1932
+ [key: string]: (number);
1933
+ };
1934
+ /**
1935
+ * Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0.
1936
+ */
1937
+ outboundClicks?: number;
1938
+ /**
1939
+ * Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level.
1940
+ */
1941
+ outboundClicksCtr?: number;
1942
+ /**
1943
+ * In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only.
1944
+ */
1945
+ inlineLinkClicks?: number;
1946
+ /**
1947
+ * Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level.
1948
+ */
1949
+ inlineLinkClickCtr?: number;
1950
+ /**
1951
+ * People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only.
1952
+ */
1953
+ uniqueClicks?: number;
1954
+ /**
1955
+ * Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`.
1956
+ */
1957
+ uniqueCtr?: number;
1928
1958
  /**
1929
1959
  * Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`.
1930
1960
  */
@@ -8201,7 +8231,7 @@ type WebhookPayloadMessageSent = {
8201
8231
  sender: {
8202
8232
  id: string;
8203
8233
  /**
8204
- * Zernio CRM Contact id for this sender, when one exists.
8234
+ * Always omitted on this event: the sender is the business, not a contact. Use conversation.contactId to join back to the CRM Contact.
8205
8235
  */
8206
8236
  contactId?: string;
8207
8237
  name?: string;
@@ -24288,6 +24318,9 @@ type ListContactsData = {
24288
24318
  * Filter by profile. Omit to list across all profiles. Matches the profile recorded on the contact itself, which is set when the contact is created and is independent of the profile its account currently belongs to. Filter by accountId to list a contact through its channel instead.
24289
24319
  */
24290
24320
  profileId?: string;
24321
+ /**
24322
+ * Case-insensitive substring match on the contact name, email and company. Phone numbers and other platform identifiers are not matched: they live on the contact channel, not on the contact. To reach a contact from an inbox webhook, use the conversation.contactId it already carries.
24323
+ */
24291
24324
  search?: string;
24292
24325
  skip?: number;
24293
24326
  tag?: string;
package/dist/index.d.ts CHANGED
@@ -1800,7 +1800,7 @@ type AdEngagementCounts = {
1800
1800
  */
1801
1801
  videoViews?: number;
1802
1802
  /**
1803
- * Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session `inline_link_clicks` reported by `GET /v1/ads/{adId}/analytics`.
1803
+ * Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session count in the sibling `inlineLinkClicks` field.
1804
1804
  */
1805
1805
  linkClicks?: number;
1806
1806
  };
@@ -1925,6 +1925,36 @@ type AdMetrics = {
1925
1925
  * Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level.
1926
1926
  */
1927
1927
  roas?: number;
1928
+ /**
1929
+ * Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported.
1930
+ */
1931
+ costPerAction?: {
1932
+ [key: string]: (number);
1933
+ };
1934
+ /**
1935
+ * Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0.
1936
+ */
1937
+ outboundClicks?: number;
1938
+ /**
1939
+ * Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level.
1940
+ */
1941
+ outboundClicksCtr?: number;
1942
+ /**
1943
+ * In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only.
1944
+ */
1945
+ inlineLinkClicks?: number;
1946
+ /**
1947
+ * Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level.
1948
+ */
1949
+ inlineLinkClickCtr?: number;
1950
+ /**
1951
+ * People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only.
1952
+ */
1953
+ uniqueClicks?: number;
1954
+ /**
1955
+ * Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`.
1956
+ */
1957
+ uniqueCtr?: number;
1928
1958
  /**
1929
1959
  * Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`.
1930
1960
  */
@@ -8201,7 +8231,7 @@ type WebhookPayloadMessageSent = {
8201
8231
  sender: {
8202
8232
  id: string;
8203
8233
  /**
8204
- * Zernio CRM Contact id for this sender, when one exists.
8234
+ * Always omitted on this event: the sender is the business, not a contact. Use conversation.contactId to join back to the CRM Contact.
8205
8235
  */
8206
8236
  contactId?: string;
8207
8237
  name?: string;
@@ -24288,6 +24318,9 @@ type ListContactsData = {
24288
24318
  * Filter by profile. Omit to list across all profiles. Matches the profile recorded on the contact itself, which is set when the contact is created and is independent of the profile its account currently belongs to. Filter by accountId to list a contact through its channel instead.
24289
24319
  */
24290
24320
  profileId?: string;
24321
+ /**
24322
+ * Case-insensitive substring match on the contact name, email and company. Phone numbers and other platform identifiers are not matched: they live on the contact channel, not on the contact. To reach a contact from an inbox webhook, use the conversation.contactId it already carries.
24323
+ */
24291
24324
  search?: string;
24292
24325
  skip?: number;
24293
24326
  tag?: string;
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(index_exports);
36
36
  // package.json
37
37
  var package_default = {
38
38
  name: "@zernio/node",
39
- version: "0.2.547",
39
+ version: "0.2.549",
40
40
  description: "The official Node.js library for the Zernio API",
41
41
  main: "dist/index.js",
42
42
  module: "dist/index.mjs",
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5
5
  // package.json
6
6
  var package_default = {
7
7
  name: "@zernio/node",
8
- version: "0.2.547",
8
+ version: "0.2.549",
9
9
  description: "The official Node.js library for the Zernio API",
10
10
  main: "dist/index.js",
11
11
  module: "dist/index.mjs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zernio/node",
3
- "version": "0.2.547",
3
+ "version": "0.2.549",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -6311,7 +6311,7 @@ export const listWhatsAppFlowResponses = <ThrowOnError extends boolean = false>(
6311
6311
 
6312
6312
  /**
6313
6313
  * List contacts
6314
- * List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and full-text search.
6314
+ * List and search contacts for a profile. Supports filtering by tags, platform, subscription status, and text search on name, email and company.
6315
6315
  */
6316
6316
  export const listContacts = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListContactsData, ThrowOnError>) => {
6317
6317
  return (options?.client ?? client).get<ListContactsResponse, ListContactsError, ThrowOnError>({
@@ -547,7 +547,7 @@ export type AdEngagementCounts = {
547
547
  */
548
548
  videoViews?: number;
549
549
  /**
550
- * Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session `inline_link_clicks` reported by `GET /v1/ads/{adId}/analytics`.
550
+ * Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session count in the sibling `inlineLinkClicks` field.
551
551
  */
552
552
  linkClicks?: number;
553
553
  };
@@ -674,6 +674,36 @@ export type AdMetrics = {
674
674
  * Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level.
675
675
  */
676
676
  roas?: number;
677
+ /**
678
+ * Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported.
679
+ */
680
+ costPerAction?: {
681
+ [key: string]: (number);
682
+ };
683
+ /**
684
+ * Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0.
685
+ */
686
+ outboundClicks?: number;
687
+ /**
688
+ * Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level.
689
+ */
690
+ outboundClicksCtr?: number;
691
+ /**
692
+ * In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only.
693
+ */
694
+ inlineLinkClicks?: number;
695
+ /**
696
+ * Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level.
697
+ */
698
+ inlineLinkClickCtr?: number;
699
+ /**
700
+ * People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only.
701
+ */
702
+ uniqueClicks?: number;
703
+ /**
704
+ * Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`.
705
+ */
706
+ uniqueCtr?: number;
677
707
  /**
678
708
  * Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`.
679
709
  */
@@ -7196,7 +7226,7 @@ export type WebhookPayloadMessageSent = {
7196
7226
  sender: {
7197
7227
  id: string;
7198
7228
  /**
7199
- * Zernio CRM Contact id for this sender, when one exists.
7229
+ * Always omitted on this event: the sender is the business, not a contact. Use conversation.contactId to join back to the CRM Contact.
7200
7230
  */
7201
7231
  contactId?: string;
7202
7232
  name?: string;
@@ -24479,6 +24509,9 @@ export type ListContactsData = {
24479
24509
  * Filter by profile. Omit to list across all profiles. Matches the profile recorded on the contact itself, which is set when the contact is created and is independent of the profile its account currently belongs to. Filter by accountId to list a contact through its channel instead.
24480
24510
  */
24481
24511
  profileId?: string;
24512
+ /**
24513
+ * Case-insensitive substring match on the contact name, email and company. Phone numbers and other platform identifiers are not matched: they live on the contact channel, not on the contact. To reach a contact from an inbox webhook, use the conversation.contactId it already carries.
24514
+ */
24482
24515
  search?: string;
24483
24516
  skip?: number;
24484
24517
  tag?: string;