@getlatedev/node 0.2.1354 → 0.2.1356

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
@@ -20522,7 +20522,7 @@ type WorkflowNode = {
20522
20522
  * **Variables** available from the start of every run (absent values are `''`): `lastMessage`, `inboundText`, `triggerText`, `conversationId`, `contact.name`, `contact.phone`, `contact.handle`, `contact.tags` (array), `contact.fields` (the contact's custom fields object), `contact.lastInteractionAt` (ISO date), `contact.lastInteractionHoursAgo` (number), `contact.isFollower` (Instagram, from the stored profile: true, false or `''` when unknown), `referral.ref`, `referral.source`, `referral.type`, `referral.adId`, `referral.adTitle` (the ad title or headline Meta sent), `referral.adName` (the synced ad's name, else `referral.adTitle`), `referral.campaignName` (the synced ad's campaign), `postback.payload`, `postback.title`, `quickReply.payload`, `quickReply.title`, `story.id`, `story.url`, `comment.id`, `comment.text`, `comment.platformPostId`, `reaction.emoji`, `reaction.action` (added|removed). `api_call` runs also get the request's `variables`, merged over these. `lead_received` runs also get `lead.id`, `lead.leadgenId`, `lead.formId`, `lead.formName`, `lead.adId`, `lead.adsetId`, `lead.campaignId` and every form answer by its key (`lead.full_name`, `lead.email`, `lead.phone_number`). Template `variableMapping` entries with `field: custom` interpolate `{{...}}` in `customValue`. An array or object interpolated into text renders as JSON.
20523
20523
  *
20524
20524
  * **send_message**: `{ messageType: text|template|media|interactive|cards, text, template, media:{mediaType:image|video|audio|document, url,caption}, interactive, buttons, quickReplies, messageTag }`. `template` is `{name,language,variableMapping}` for `messageType: template` and `{ type: generic, elements:[{ title, subtitle, imageUrl, buttons }] }` (1 to 10 cards) for `messageType: cards`. `template` and `interactive` are WhatsApp-only. `interactive.type` is inferred from the payload shape when omitted; payloads with neither `type` nor an inferable shape are rejected.
20525
- * Facebook and Instagram only (rejected with a 400 on other platforms; WhatsApp keeps `interactive`): `cards`, plus `buttons` on `text` (cards carry their own buttons) and `quickReplies` / `messageTag` on `text`, `media` and `cards`. `media` takes no `buttons` (a 400 at save). `buttons:[{ type: url|postback|phone, title, url, payload, phone, workflowId }]` (1 to 3, text only and the text then 640 characters at most, sent as Meta's button_template, `phone` Facebook-only, not inside cards), `quickReplies:[{ title, payload, imageUrl, workflowId }]` (1 to 13, not combined with `buttons`) and `messageTag: HUMAN_AGENT|CONFIRMED_EVENT_UPDATE|POST_PURCHASE_UPDATE|ACCOUNT_UPDATE` (Instagram accepts only `HUMAN_AGENT`). Titles are capped at 20 characters (80 for card titles and subtitles). A postback button or quick reply with no `payload` gets `zernio:workflow:<this workflow id>`, so a tap answers this workflow's pending `wait_for_reply` or restarts it; with `workflowId` (a 24-hex workflow id, not combined with `payload`) the tap starts that workflow instead.
20525
+ * Facebook and Instagram only (rejected with a 400 on other platforms; WhatsApp keeps `interactive`): `cards`, plus `buttons` on `text` (cards carry their own buttons) and `quickReplies` / `messageTag` on `text`, `media` and `cards`. `media` takes no `buttons` (a 400 at save). `buttons:[{ type: url|postback|phone, title, url, payload, phone, workflowId }]` (1 to 3, text only and the text then 640 characters at most, sent as Meta's button_template, `phone` Facebook-only, not inside cards), `quickReplies:[{ title, payload, imageUrl, workflowId }]` (1 to 13, not combined with `buttons`). `messageTag` is not available: a workflow only sends within the 24h window, and `HUMAN_AGENT` is rejected with a 400 because it is only for replies typed by a person. Titles are capped at 20 characters (80 for card titles and subtitles). A postback button or quick reply with no `payload` gets `zernio:workflow:<this workflow id>`, so a tap answers this workflow's pending `wait_for_reply` or restarts it; with `workflowId` (a 24-hex workflow id, not combined with `payload`) the tap starts that workflow instead.
20526
20526
  *
20527
20527
  * **wait_for_reply**: `{ timeoutMinutes:int (max 43200), saveAs:string }`. Resume via the `'reply'` edge on inbound, or `'timeout'` edge after `timeoutMinutes` of silence. On Facebook and Instagram a button tap sets `{{postback.payload}}` / `{{postback.title}}` and a quick reply tap sets `{{quickReply.payload}}` / `{{quickReply.title}}`; each reply clears the previous tap.
20528
20528
  *
@@ -33961,7 +33961,7 @@ type SendInboxMessageData = {
33961
33961
  */
33962
33962
  messagingType?: 'RESPONSE' | 'UPDATE' | 'MESSAGE_TAG';
33963
33963
  /**
33964
- * Facebook message tag for messaging outside 24h window. Requires messagingType MESSAGE_TAG. Instagram only supports HUMAN_AGENT.
33964
+ * Facebook and Instagram. To reply after the 24h window, send HUMAN_AGENT with messagingType MESSAGE_TAG: it works up to 7 days after the person's last message, for replies typed by a person only (Meta does not allow it on automated messages). Meta retired the other tags, so they fail.
33965
33965
  */
33966
33966
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
33967
33967
  /**
@@ -43134,7 +43134,7 @@ type CreateBroadcastData = {
43134
43134
  filename?: string;
43135
43135
  }>;
43136
43136
  /**
43137
- * Instagram and Facebook only. Meta message tag sent with every recipient message (messaging_type MESSAGE_TAG) so the broadcast can reach people outside the 24h window. Instagram accepts HUMAN_AGENT only. Rejected with a 400 on any other platform.
43137
+ * Not usable: a broadcast only reaches people within the 24h window. HUMAN_AGENT is rejected with a 400 because it is only for replies typed by a person, and Meta retired the other tags.
43138
43138
  */
43139
43139
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
43140
43140
  };
@@ -46912,6 +46912,48 @@ type UpdateAdSetData = {
46912
46912
  *
46913
46913
  */
46914
46914
  bidStrategy?: (BidStrategy);
46915
+ /**
46916
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
46917
+ * set's `dsa_beneficiary`, the legal entity that benefits from its ads, same field and
46918
+ * limits as `dsaBeneficiary` on POST /v1/ads/create. Only the fields you send are
46919
+ * written. It is the EU DSA field; for the regional regimes (Brazil, Malaysia,
46920
+ * Thailand, Australia, Singapore, Taiwan, India) use `regionalRegulatedCategories` and
46921
+ * `regionalRegulationIdentities` instead. Read it back with
46922
+ * GET /v1/ads/ad-sets/{adSetId}?accountId={accountId}&fields=dsa_beneficiary,dsa_payor.
46923
+ *
46924
+ */
46925
+ dsaBeneficiary?: string;
46926
+ /**
46927
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
46928
+ * set's `dsa_payor`, the legal entity that pays for its ads, same field and limits as
46929
+ * `dsaPayor` on POST /v1/ads/create. Can differ from `dsaBeneficiary`.
46930
+ *
46931
+ */
46932
+ dsaPayor?: string;
46933
+ /**
46934
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
46935
+ * set's `regional_regulated_categories`, same values as on POST /v1/ads/create
46936
+ * (AUSTRALIA_FINSERV, AUSTRALIA_UNIVERSAL, BRAZIL_REGULATION, INDIA_FINSERV,
46937
+ * MALAYSIA_UNIVERSAL, SINGAPORE_UNIVERSAL, TAIWAN_FINSERV, TAIWAN_UNIVERSAL,
46938
+ * THAILAND_UNIVERSAL). Send it with `regionalRegulationIdentities`. An empty array is a 400.
46939
+ *
46940
+ */
46941
+ regionalRegulatedCategories?: Array<(string)>;
46942
+ /**
46943
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
46944
+ * set's `regional_regulation_identities`: the Verified identity IDs of the beneficiary
46945
+ * and payer for each declared category, same keys and validation as on
46946
+ * POST /v1/ads/create (for example `universal_beneficiary` / `universal_payer` for
46947
+ * BRAZIL_REGULATION, MALAYSIA_UNIVERSAL and THAILAND_UNIVERSAL). Send each ID as a
46948
+ * string of digits; an empty object is a 400. When Meta refuses the ad set for a missing
46949
+ * verified advertiser, the 400 `platform_api_error` names the keys the declared categories
46950
+ * expect in `details.expectedIdentityKeys`, as on create. Read both back with
46951
+ * GET /v1/ads/ad-sets/{adSetId}?accountId={accountId}&fields=regional_regulated_categories,regional_regulation_identities.
46952
+ *
46953
+ */
46954
+ regionalRegulationIdentities?: {
46955
+ [key: string]: (string | number);
46956
+ };
46915
46957
  /**
46916
46958
  * TikTok only (a 400 elsewhere). TikTok Smart Targeting on the ad group: `audience` is
46917
46959
  * TikTok's `smart_audience_enabled`, `interestsBehaviors` its `smart_interest_behavior_enabled`.
package/dist/index.d.ts CHANGED
@@ -20522,7 +20522,7 @@ type WorkflowNode = {
20522
20522
  * **Variables** available from the start of every run (absent values are `''`): `lastMessage`, `inboundText`, `triggerText`, `conversationId`, `contact.name`, `contact.phone`, `contact.handle`, `contact.tags` (array), `contact.fields` (the contact's custom fields object), `contact.lastInteractionAt` (ISO date), `contact.lastInteractionHoursAgo` (number), `contact.isFollower` (Instagram, from the stored profile: true, false or `''` when unknown), `referral.ref`, `referral.source`, `referral.type`, `referral.adId`, `referral.adTitle` (the ad title or headline Meta sent), `referral.adName` (the synced ad's name, else `referral.adTitle`), `referral.campaignName` (the synced ad's campaign), `postback.payload`, `postback.title`, `quickReply.payload`, `quickReply.title`, `story.id`, `story.url`, `comment.id`, `comment.text`, `comment.platformPostId`, `reaction.emoji`, `reaction.action` (added|removed). `api_call` runs also get the request's `variables`, merged over these. `lead_received` runs also get `lead.id`, `lead.leadgenId`, `lead.formId`, `lead.formName`, `lead.adId`, `lead.adsetId`, `lead.campaignId` and every form answer by its key (`lead.full_name`, `lead.email`, `lead.phone_number`). Template `variableMapping` entries with `field: custom` interpolate `{{...}}` in `customValue`. An array or object interpolated into text renders as JSON.
20523
20523
  *
20524
20524
  * **send_message**: `{ messageType: text|template|media|interactive|cards, text, template, media:{mediaType:image|video|audio|document, url,caption}, interactive, buttons, quickReplies, messageTag }`. `template` is `{name,language,variableMapping}` for `messageType: template` and `{ type: generic, elements:[{ title, subtitle, imageUrl, buttons }] }` (1 to 10 cards) for `messageType: cards`. `template` and `interactive` are WhatsApp-only. `interactive.type` is inferred from the payload shape when omitted; payloads with neither `type` nor an inferable shape are rejected.
20525
- * Facebook and Instagram only (rejected with a 400 on other platforms; WhatsApp keeps `interactive`): `cards`, plus `buttons` on `text` (cards carry their own buttons) and `quickReplies` / `messageTag` on `text`, `media` and `cards`. `media` takes no `buttons` (a 400 at save). `buttons:[{ type: url|postback|phone, title, url, payload, phone, workflowId }]` (1 to 3, text only and the text then 640 characters at most, sent as Meta's button_template, `phone` Facebook-only, not inside cards), `quickReplies:[{ title, payload, imageUrl, workflowId }]` (1 to 13, not combined with `buttons`) and `messageTag: HUMAN_AGENT|CONFIRMED_EVENT_UPDATE|POST_PURCHASE_UPDATE|ACCOUNT_UPDATE` (Instagram accepts only `HUMAN_AGENT`). Titles are capped at 20 characters (80 for card titles and subtitles). A postback button or quick reply with no `payload` gets `zernio:workflow:<this workflow id>`, so a tap answers this workflow's pending `wait_for_reply` or restarts it; with `workflowId` (a 24-hex workflow id, not combined with `payload`) the tap starts that workflow instead.
20525
+ * Facebook and Instagram only (rejected with a 400 on other platforms; WhatsApp keeps `interactive`): `cards`, plus `buttons` on `text` (cards carry their own buttons) and `quickReplies` / `messageTag` on `text`, `media` and `cards`. `media` takes no `buttons` (a 400 at save). `buttons:[{ type: url|postback|phone, title, url, payload, phone, workflowId }]` (1 to 3, text only and the text then 640 characters at most, sent as Meta's button_template, `phone` Facebook-only, not inside cards), `quickReplies:[{ title, payload, imageUrl, workflowId }]` (1 to 13, not combined with `buttons`). `messageTag` is not available: a workflow only sends within the 24h window, and `HUMAN_AGENT` is rejected with a 400 because it is only for replies typed by a person. Titles are capped at 20 characters (80 for card titles and subtitles). A postback button or quick reply with no `payload` gets `zernio:workflow:<this workflow id>`, so a tap answers this workflow's pending `wait_for_reply` or restarts it; with `workflowId` (a 24-hex workflow id, not combined with `payload`) the tap starts that workflow instead.
20526
20526
  *
20527
20527
  * **wait_for_reply**: `{ timeoutMinutes:int (max 43200), saveAs:string }`. Resume via the `'reply'` edge on inbound, or `'timeout'` edge after `timeoutMinutes` of silence. On Facebook and Instagram a button tap sets `{{postback.payload}}` / `{{postback.title}}` and a quick reply tap sets `{{quickReply.payload}}` / `{{quickReply.title}}`; each reply clears the previous tap.
20528
20528
  *
@@ -33961,7 +33961,7 @@ type SendInboxMessageData = {
33961
33961
  */
33962
33962
  messagingType?: 'RESPONSE' | 'UPDATE' | 'MESSAGE_TAG';
33963
33963
  /**
33964
- * Facebook message tag for messaging outside 24h window. Requires messagingType MESSAGE_TAG. Instagram only supports HUMAN_AGENT.
33964
+ * Facebook and Instagram. To reply after the 24h window, send HUMAN_AGENT with messagingType MESSAGE_TAG: it works up to 7 days after the person's last message, for replies typed by a person only (Meta does not allow it on automated messages). Meta retired the other tags, so they fail.
33965
33965
  */
33966
33966
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
33967
33967
  /**
@@ -43134,7 +43134,7 @@ type CreateBroadcastData = {
43134
43134
  filename?: string;
43135
43135
  }>;
43136
43136
  /**
43137
- * Instagram and Facebook only. Meta message tag sent with every recipient message (messaging_type MESSAGE_TAG) so the broadcast can reach people outside the 24h window. Instagram accepts HUMAN_AGENT only. Rejected with a 400 on any other platform.
43137
+ * Not usable: a broadcast only reaches people within the 24h window. HUMAN_AGENT is rejected with a 400 because it is only for replies typed by a person, and Meta retired the other tags.
43138
43138
  */
43139
43139
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
43140
43140
  };
@@ -46912,6 +46912,48 @@ type UpdateAdSetData = {
46912
46912
  *
46913
46913
  */
46914
46914
  bidStrategy?: (BidStrategy);
46915
+ /**
46916
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
46917
+ * set's `dsa_beneficiary`, the legal entity that benefits from its ads, same field and
46918
+ * limits as `dsaBeneficiary` on POST /v1/ads/create. Only the fields you send are
46919
+ * written. It is the EU DSA field; for the regional regimes (Brazil, Malaysia,
46920
+ * Thailand, Australia, Singapore, Taiwan, India) use `regionalRegulatedCategories` and
46921
+ * `regionalRegulationIdentities` instead. Read it back with
46922
+ * GET /v1/ads/ad-sets/{adSetId}?accountId={accountId}&fields=dsa_beneficiary,dsa_payor.
46923
+ *
46924
+ */
46925
+ dsaBeneficiary?: string;
46926
+ /**
46927
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
46928
+ * set's `dsa_payor`, the legal entity that pays for its ads, same field and limits as
46929
+ * `dsaPayor` on POST /v1/ads/create. Can differ from `dsaBeneficiary`.
46930
+ *
46931
+ */
46932
+ dsaPayor?: string;
46933
+ /**
46934
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
46935
+ * set's `regional_regulated_categories`, same values as on POST /v1/ads/create
46936
+ * (AUSTRALIA_FINSERV, AUSTRALIA_UNIVERSAL, BRAZIL_REGULATION, INDIA_FINSERV,
46937
+ * MALAYSIA_UNIVERSAL, SINGAPORE_UNIVERSAL, TAIWAN_FINSERV, TAIWAN_UNIVERSAL,
46938
+ * THAILAND_UNIVERSAL). Send it with `regionalRegulationIdentities`. An empty array is a 400.
46939
+ *
46940
+ */
46941
+ regionalRegulatedCategories?: Array<(string)>;
46942
+ /**
46943
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
46944
+ * set's `regional_regulation_identities`: the Verified identity IDs of the beneficiary
46945
+ * and payer for each declared category, same keys and validation as on
46946
+ * POST /v1/ads/create (for example `universal_beneficiary` / `universal_payer` for
46947
+ * BRAZIL_REGULATION, MALAYSIA_UNIVERSAL and THAILAND_UNIVERSAL). Send each ID as a
46948
+ * string of digits; an empty object is a 400. When Meta refuses the ad set for a missing
46949
+ * verified advertiser, the 400 `platform_api_error` names the keys the declared categories
46950
+ * expect in `details.expectedIdentityKeys`, as on create. Read both back with
46951
+ * GET /v1/ads/ad-sets/{adSetId}?accountId={accountId}&fields=regional_regulated_categories,regional_regulation_identities.
46952
+ *
46953
+ */
46954
+ regionalRegulationIdentities?: {
46955
+ [key: string]: (string | number);
46956
+ };
46915
46957
  /**
46916
46958
  * TikTok only (a 400 elsewhere). TikTok Smart Targeting on the ad group: `audience` is
46917
46959
  * TikTok's `smart_audience_enabled`, `interestsBehaviors` its `smart_interest_behavior_enabled`.
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: "@getlatedev/node",
39
- version: "0.2.1354",
39
+ version: "0.2.1356",
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: "@getlatedev/node",
8
- version: "0.2.1354",
8
+ version: "0.2.1356",
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": "@getlatedev/node",
3
- "version": "0.2.1354",
3
+ "version": "0.2.1356",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -11575,7 +11575,10 @@ export const getAdSetDetails = <ThrowOnError extends boolean = false>(options: O
11575
11575
  * Changes an ad set's settings, such as its budget, bid strategy, status or delivery options.
11576
11576
  *
11577
11577
  * Use this for ABO budget updates, ad-set-scoped
11578
- * pause/resume, bid-strategy edits, Meta value-rule-set attach/detach, and
11578
+ * pause/resume, bid-strategy edits, Meta value-rule-set attach/detach, Meta
11579
+ * beneficiary and payer (`dsaBeneficiary` / `dsaPayor` for the EU,
11580
+ * `regionalRegulatedCategories` / `regionalRegulationIdentities` for the
11581
+ * regional regimes), and
11579
11582
  * Meta-only post-launch delivery settings via `platformSpecificData`. At
11580
11583
  * least one updatable field is required.
11581
11584
  *
@@ -19181,7 +19181,7 @@ export type WorkflowNode = {
19181
19181
  * **Variables** available from the start of every run (absent values are `''`): `lastMessage`, `inboundText`, `triggerText`, `conversationId`, `contact.name`, `contact.phone`, `contact.handle`, `contact.tags` (array), `contact.fields` (the contact's custom fields object), `contact.lastInteractionAt` (ISO date), `contact.lastInteractionHoursAgo` (number), `contact.isFollower` (Instagram, from the stored profile: true, false or `''` when unknown), `referral.ref`, `referral.source`, `referral.type`, `referral.adId`, `referral.adTitle` (the ad title or headline Meta sent), `referral.adName` (the synced ad's name, else `referral.adTitle`), `referral.campaignName` (the synced ad's campaign), `postback.payload`, `postback.title`, `quickReply.payload`, `quickReply.title`, `story.id`, `story.url`, `comment.id`, `comment.text`, `comment.platformPostId`, `reaction.emoji`, `reaction.action` (added|removed). `api_call` runs also get the request's `variables`, merged over these. `lead_received` runs also get `lead.id`, `lead.leadgenId`, `lead.formId`, `lead.formName`, `lead.adId`, `lead.adsetId`, `lead.campaignId` and every form answer by its key (`lead.full_name`, `lead.email`, `lead.phone_number`). Template `variableMapping` entries with `field: custom` interpolate `{{...}}` in `customValue`. An array or object interpolated into text renders as JSON.
19182
19182
  *
19183
19183
  * **send_message**: `{ messageType: text|template|media|interactive|cards, text, template, media:{mediaType:image|video|audio|document, url,caption}, interactive, buttons, quickReplies, messageTag }`. `template` is `{name,language,variableMapping}` for `messageType: template` and `{ type: generic, elements:[{ title, subtitle, imageUrl, buttons }] }` (1 to 10 cards) for `messageType: cards`. `template` and `interactive` are WhatsApp-only. `interactive.type` is inferred from the payload shape when omitted; payloads with neither `type` nor an inferable shape are rejected.
19184
- * Facebook and Instagram only (rejected with a 400 on other platforms; WhatsApp keeps `interactive`): `cards`, plus `buttons` on `text` (cards carry their own buttons) and `quickReplies` / `messageTag` on `text`, `media` and `cards`. `media` takes no `buttons` (a 400 at save). `buttons:[{ type: url|postback|phone, title, url, payload, phone, workflowId }]` (1 to 3, text only and the text then 640 characters at most, sent as Meta's button_template, `phone` Facebook-only, not inside cards), `quickReplies:[{ title, payload, imageUrl, workflowId }]` (1 to 13, not combined with `buttons`) and `messageTag: HUMAN_AGENT|CONFIRMED_EVENT_UPDATE|POST_PURCHASE_UPDATE|ACCOUNT_UPDATE` (Instagram accepts only `HUMAN_AGENT`). Titles are capped at 20 characters (80 for card titles and subtitles). A postback button or quick reply with no `payload` gets `zernio:workflow:<this workflow id>`, so a tap answers this workflow's pending `wait_for_reply` or restarts it; with `workflowId` (a 24-hex workflow id, not combined with `payload`) the tap starts that workflow instead.
19184
+ * Facebook and Instagram only (rejected with a 400 on other platforms; WhatsApp keeps `interactive`): `cards`, plus `buttons` on `text` (cards carry their own buttons) and `quickReplies` / `messageTag` on `text`, `media` and `cards`. `media` takes no `buttons` (a 400 at save). `buttons:[{ type: url|postback|phone, title, url, payload, phone, workflowId }]` (1 to 3, text only and the text then 640 characters at most, sent as Meta's button_template, `phone` Facebook-only, not inside cards), `quickReplies:[{ title, payload, imageUrl, workflowId }]` (1 to 13, not combined with `buttons`). `messageTag` is not available: a workflow only sends within the 24h window, and `HUMAN_AGENT` is rejected with a 400 because it is only for replies typed by a person. Titles are capped at 20 characters (80 for card titles and subtitles). A postback button or quick reply with no `payload` gets `zernio:workflow:<this workflow id>`, so a tap answers this workflow's pending `wait_for_reply` or restarts it; with `workflowId` (a 24-hex workflow id, not combined with `payload`) the tap starts that workflow instead.
19185
19185
  *
19186
19186
  * **wait_for_reply**: `{ timeoutMinutes:int (max 43200), saveAs:string }`. Resume via the `'reply'` edge on inbound, or `'timeout'` edge after `timeoutMinutes` of silence. On Facebook and Instagram a button tap sets `{{postback.payload}}` / `{{postback.title}}` and a quick reply tap sets `{{quickReply.payload}}` / `{{quickReply.title}}`; each reply clears the previous tap.
19187
19187
  *
@@ -33512,7 +33512,7 @@ export type SendInboxMessageData = {
33512
33512
  */
33513
33513
  messagingType?: 'RESPONSE' | 'UPDATE' | 'MESSAGE_TAG';
33514
33514
  /**
33515
- * Facebook message tag for messaging outside 24h window. Requires messagingType MESSAGE_TAG. Instagram only supports HUMAN_AGENT.
33515
+ * Facebook and Instagram. To reply after the 24h window, send HUMAN_AGENT with messagingType MESSAGE_TAG: it works up to 7 days after the person's last message, for replies typed by a person only (Meta does not allow it on automated messages). Meta retired the other tags, so they fail.
33516
33516
  */
33517
33517
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
33518
33518
  /**
@@ -43562,7 +43562,7 @@ export type CreateBroadcastData = {
43562
43562
  filename?: string;
43563
43563
  }>;
43564
43564
  /**
43565
- * Instagram and Facebook only. Meta message tag sent with every recipient message (messaging_type MESSAGE_TAG) so the broadcast can reach people outside the 24h window. Instagram accepts HUMAN_AGENT only. Rejected with a 400 on any other platform.
43565
+ * Not usable: a broadcast only reaches people within the 24h window. HUMAN_AGENT is rejected with a 400 because it is only for replies typed by a person, and Meta retired the other tags.
43566
43566
  */
43567
43567
  messageTag?: 'CONFIRMED_EVENT_UPDATE' | 'POST_PURCHASE_UPDATE' | 'ACCOUNT_UPDATE' | 'HUMAN_AGENT';
43568
43568
  };
@@ -47598,6 +47598,48 @@ export type UpdateAdSetData = {
47598
47598
  *
47599
47599
  */
47600
47600
  bidStrategy?: (BidStrategy);
47601
+ /**
47602
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
47603
+ * set's `dsa_beneficiary`, the legal entity that benefits from its ads, same field and
47604
+ * limits as `dsaBeneficiary` on POST /v1/ads/create. Only the fields you send are
47605
+ * written. It is the EU DSA field; for the regional regimes (Brazil, Malaysia,
47606
+ * Thailand, Australia, Singapore, Taiwan, India) use `regionalRegulatedCategories` and
47607
+ * `regionalRegulationIdentities` instead. Read it back with
47608
+ * GET /v1/ads/ad-sets/{adSetId}?accountId={accountId}&fields=dsa_beneficiary,dsa_payor.
47609
+ *
47610
+ */
47611
+ dsaBeneficiary?: string;
47612
+ /**
47613
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
47614
+ * set's `dsa_payor`, the legal entity that pays for its ads, same field and limits as
47615
+ * `dsaPayor` on POST /v1/ads/create. Can differ from `dsaBeneficiary`.
47616
+ *
47617
+ */
47618
+ dsaPayor?: string;
47619
+ /**
47620
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
47621
+ * set's `regional_regulated_categories`, same values as on POST /v1/ads/create
47622
+ * (AUSTRALIA_FINSERV, AUSTRALIA_UNIVERSAL, BRAZIL_REGULATION, INDIA_FINSERV,
47623
+ * MALAYSIA_UNIVERSAL, SINGAPORE_UNIVERSAL, TAIWAN_FINSERV, TAIWAN_UNIVERSAL,
47624
+ * THAILAND_UNIVERSAL). Send it with `regionalRegulationIdentities`. An empty array is a 400.
47625
+ *
47626
+ */
47627
+ regionalRegulatedCategories?: Array<(string)>;
47628
+ /**
47629
+ * Meta only (400 elsewhere, before anything in the request is written). Writes the ad
47630
+ * set's `regional_regulation_identities`: the Verified identity IDs of the beneficiary
47631
+ * and payer for each declared category, same keys and validation as on
47632
+ * POST /v1/ads/create (for example `universal_beneficiary` / `universal_payer` for
47633
+ * BRAZIL_REGULATION, MALAYSIA_UNIVERSAL and THAILAND_UNIVERSAL). Send each ID as a
47634
+ * string of digits; an empty object is a 400. When Meta refuses the ad set for a missing
47635
+ * verified advertiser, the 400 `platform_api_error` names the keys the declared categories
47636
+ * expect in `details.expectedIdentityKeys`, as on create. Read both back with
47637
+ * GET /v1/ads/ad-sets/{adSetId}?accountId={accountId}&fields=regional_regulated_categories,regional_regulation_identities.
47638
+ *
47639
+ */
47640
+ regionalRegulationIdentities?: {
47641
+ [key: string]: (string | number);
47642
+ };
47601
47643
  /**
47602
47644
  * TikTok only (a 400 elsewhere). TikTok Smart Targeting on the ad group: `audience` is
47603
47645
  * TikTok's `smart_audience_enabled`, `interestsBehaviors` its `smart_interest_behavior_enabled`.