@zernio/node 0.2.546 → 0.2.548

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
@@ -8201,7 +8201,7 @@ type WebhookPayloadMessageSent = {
8201
8201
  sender: {
8202
8202
  id: string;
8203
8203
  /**
8204
- * Zernio CRM Contact id for this sender, when one exists.
8204
+ * Always omitted on this event: the sender is the business, not a contact. Use conversation.contactId to join back to the CRM Contact.
8205
8205
  */
8206
8206
  contactId?: string;
8207
8207
  name?: string;
@@ -24288,6 +24288,9 @@ type ListContactsData = {
24288
24288
  * 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
24289
  */
24290
24290
  profileId?: string;
24291
+ /**
24292
+ * 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.
24293
+ */
24291
24294
  search?: string;
24292
24295
  skip?: number;
24293
24296
  tag?: string;
@@ -27234,10 +27237,25 @@ type UpdateAdData = {
27234
27237
  type?: 'daily' | 'lifetime';
27235
27238
  };
27236
27239
  /**
27237
- * Meta + TikTok only. Pinterest / X / LinkedIn / Google return 501.
27240
+ * Meta + TikTok (demographics/interests) and Google (keyword edits only).
27241
+ * Pinterest / X / LinkedIn return 501.
27238
27242
  *
27239
27243
  */
27240
27244
  targeting?: {
27245
+ /**
27246
+ * Google only. The FULL new set of positive keywords for the ad group; live keywords not listed are removed. Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad. Mirrored to GET /v1/ads/keywords immediately.
27247
+ */
27248
+ keywords?: Array<(string | {
27249
+ text: string;
27250
+ matchType?: 'exact' | 'phrase' | 'broad';
27251
+ })>;
27252
+ /**
27253
+ * Google only. Same declarative contract as keywords, for the ad group's negative keywords.
27254
+ */
27255
+ negativeKeywords?: Array<(string | {
27256
+ text: string;
27257
+ matchType?: 'exact' | 'phrase' | 'broad';
27258
+ })>;
27241
27259
  ageMin?: number;
27242
27260
  ageMax?: number;
27243
27261
  countries?: Array<(string)>;
@@ -29843,9 +29861,13 @@ type CreateStandaloneAdData = {
29843
29861
  */
29844
29862
  campaignType?: 'display' | 'search';
29845
29863
  /**
29846
- * Google Search only
29864
+ * Google Search only. BROAD-match keywords on the new ad group (first 20).
29847
29865
  */
29848
29866
  keywords?: Array<(string)>;
29867
+ /**
29868
+ * Google Search only; other platforms return 400. BROAD-match negative keywords on the new ad group. Editable later via PUT /v1/ads/{adId} targeting.negativeKeywords.
29869
+ */
29870
+ negativeKeywords?: Array<(string)>;
29849
29871
  /**
29850
29872
  * Google Search RSA only. Extra headlines.
29851
29873
  */
package/dist/index.d.ts CHANGED
@@ -8201,7 +8201,7 @@ type WebhookPayloadMessageSent = {
8201
8201
  sender: {
8202
8202
  id: string;
8203
8203
  /**
8204
- * Zernio CRM Contact id for this sender, when one exists.
8204
+ * Always omitted on this event: the sender is the business, not a contact. Use conversation.contactId to join back to the CRM Contact.
8205
8205
  */
8206
8206
  contactId?: string;
8207
8207
  name?: string;
@@ -24288,6 +24288,9 @@ type ListContactsData = {
24288
24288
  * 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
24289
  */
24290
24290
  profileId?: string;
24291
+ /**
24292
+ * 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.
24293
+ */
24291
24294
  search?: string;
24292
24295
  skip?: number;
24293
24296
  tag?: string;
@@ -27234,10 +27237,25 @@ type UpdateAdData = {
27234
27237
  type?: 'daily' | 'lifetime';
27235
27238
  };
27236
27239
  /**
27237
- * Meta + TikTok only. Pinterest / X / LinkedIn / Google return 501.
27240
+ * Meta + TikTok (demographics/interests) and Google (keyword edits only).
27241
+ * Pinterest / X / LinkedIn return 501.
27238
27242
  *
27239
27243
  */
27240
27244
  targeting?: {
27245
+ /**
27246
+ * Google only. The FULL new set of positive keywords for the ad group; live keywords not listed are removed. Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad. Mirrored to GET /v1/ads/keywords immediately.
27247
+ */
27248
+ keywords?: Array<(string | {
27249
+ text: string;
27250
+ matchType?: 'exact' | 'phrase' | 'broad';
27251
+ })>;
27252
+ /**
27253
+ * Google only. Same declarative contract as keywords, for the ad group's negative keywords.
27254
+ */
27255
+ negativeKeywords?: Array<(string | {
27256
+ text: string;
27257
+ matchType?: 'exact' | 'phrase' | 'broad';
27258
+ })>;
27241
27259
  ageMin?: number;
27242
27260
  ageMax?: number;
27243
27261
  countries?: Array<(string)>;
@@ -29843,9 +29861,13 @@ type CreateStandaloneAdData = {
29843
29861
  */
29844
29862
  campaignType?: 'display' | 'search';
29845
29863
  /**
29846
- * Google Search only
29864
+ * Google Search only. BROAD-match keywords on the new ad group (first 20).
29847
29865
  */
29848
29866
  keywords?: Array<(string)>;
29867
+ /**
29868
+ * Google Search only; other platforms return 400. BROAD-match negative keywords on the new ad group. Editable later via PUT /v1/ads/{adId} targeting.negativeKeywords.
29869
+ */
29870
+ negativeKeywords?: Array<(string)>;
29849
29871
  /**
29850
29872
  * Google Search RSA only. Extra headlines.
29851
29873
  */
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.546",
39
+ version: "0.2.548",
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.546",
8
+ version: "0.2.548",
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.546",
3
+ "version": "0.2.548",
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>({
@@ -7333,7 +7333,12 @@ export const getAd = <ThrowOnError extends boolean = false>(options: OptionsLega
7333
7333
  * - **Meta** (Facebook + Instagram): all fields supported.
7334
7334
  * - **TikTok**: status, budget, targeting (via `/v2/adgroup/update/`), and creative
7335
7335
  * (via `/v2/ad/update/` patch-style — `headline` is ignored, `body` becomes `ad_text`).
7336
- * - **Pinterest / X / LinkedIn / Google / OpenAI Ads**: status + budget only. Sending
7336
+ * - **Google**: status, budget, and KEYWORD edits via `targeting.keywords` /
7337
+ * `targeting.negativeKeywords` — each list you send becomes the FULL new set of its
7338
+ * kind on the ad group (criteria not in the list are removed); a kind left out is
7339
+ * untouched. Any other `targeting` field returns 400: Google cannot mutate broad
7340
+ * targeting post-create without recreating the campaign. `creative` returns 501.
7341
+ * - **Pinterest / X / LinkedIn / OpenAI Ads**: status + budget only. Sending
7337
7342
  * `targeting` or `creative` returns 501 with code `unsupported_platform_operation`.
7338
7343
  * OpenAI Ads budget is lifetime-only (see `budget.type` below).
7339
7344
  *
@@ -7196,7 +7196,7 @@ export type WebhookPayloadMessageSent = {
7196
7196
  sender: {
7197
7197
  id: string;
7198
7198
  /**
7199
- * Zernio CRM Contact id for this sender, when one exists.
7199
+ * Always omitted on this event: the sender is the business, not a contact. Use conversation.contactId to join back to the CRM Contact.
7200
7200
  */
7201
7201
  contactId?: string;
7202
7202
  name?: string;
@@ -24479,6 +24479,9 @@ export type ListContactsData = {
24479
24479
  * 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
24480
  */
24481
24481
  profileId?: string;
24482
+ /**
24483
+ * 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.
24484
+ */
24482
24485
  search?: string;
24483
24486
  skip?: number;
24484
24487
  tag?: string;
@@ -27638,10 +27641,25 @@ export type UpdateAdData = {
27638
27641
  type?: 'daily' | 'lifetime';
27639
27642
  };
27640
27643
  /**
27641
- * Meta + TikTok only. Pinterest / X / LinkedIn / Google return 501.
27644
+ * Meta + TikTok (demographics/interests) and Google (keyword edits only).
27645
+ * Pinterest / X / LinkedIn return 501.
27642
27646
  *
27643
27647
  */
27644
27648
  targeting?: {
27649
+ /**
27650
+ * Google only. The FULL new set of positive keywords for the ad group; live keywords not listed are removed. Entries are strings (BROAD) or { text, matchType } with matchType exact | phrase | broad. Mirrored to GET /v1/ads/keywords immediately.
27651
+ */
27652
+ keywords?: Array<(string | {
27653
+ text: string;
27654
+ matchType?: 'exact' | 'phrase' | 'broad';
27655
+ })>;
27656
+ /**
27657
+ * Google only. Same declarative contract as keywords, for the ad group's negative keywords.
27658
+ */
27659
+ negativeKeywords?: Array<(string | {
27660
+ text: string;
27661
+ matchType?: 'exact' | 'phrase' | 'broad';
27662
+ })>;
27645
27663
  ageMin?: number;
27646
27664
  ageMax?: number;
27647
27665
  countries?: Array<(string)>;
@@ -30373,9 +30391,13 @@ export type CreateStandaloneAdData = {
30373
30391
  */
30374
30392
  campaignType?: 'display' | 'search';
30375
30393
  /**
30376
- * Google Search only
30394
+ * Google Search only. BROAD-match keywords on the new ad group (first 20).
30377
30395
  */
30378
30396
  keywords?: Array<(string)>;
30397
+ /**
30398
+ * Google Search only; other platforms return 400. BROAD-match negative keywords on the new ad group. Editable later via PUT /v1/ads/{adId} targeting.negativeKeywords.
30399
+ */
30400
+ negativeKeywords?: Array<(string)>;
30379
30401
  /**
30380
30402
  * Google Search RSA only. Extra headlines.
30381
30403
  */