@messagebird/n8n-nodes-bird 0.9.1 → 0.10.0

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/README.md CHANGED
@@ -41,7 +41,7 @@ The **Bird** node covers the public Bird API: email and SMS sends, delivery stat
41
41
  - **SMS Template** (2) — Get, List
42
42
  - **Suppression** (4) — Add, Get, List, Remove
43
43
  - **Verify** (3) — Create Next Channel Attempt, Create Verification, Create Verification Check
44
- - **Voice** (2) — Get, List
44
+ - **Voice** (2) — Get Leg, List Legs
45
45
  - **Webhook** (9) — Attempts, Create, Delete, Get, List, Replay, Rotate Secret, Test, Update
46
46
  - **WhatsApp** (4) — Get, List, List Events, Send
47
47
  - **Workspace** (1) — Get
@@ -22,7 +22,7 @@ exports.birdPickers = {
22
22
  smsSuppressionsList: { route: "sms_suppressions:list", fields: ["destination"], search: "", pathFrom: [] },
23
23
  suppressionList: { route: "suppression:list", fields: ["email"], search: "email", pathFrom: [] },
24
24
  emailThreadsList: { route: "email:threads_list", fields: ["subject"], search: "subject", pathFrom: [] },
25
- voiceList: { route: "voice:list", fields: ["to"], search: "", pathFrom: [] },
25
+ voiceLegsList: { route: "voice:legs_list", fields: ["to"], search: "", pathFrom: [] },
26
26
  webhooksList: { route: "webhooks:list", fields: ["url"], search: "", pathFrom: [] },
27
27
  whatsappList: { route: "whatsapp:list", fields: ["to.phone_number", "to.bsuid", "created_at"], search: "", pathFrom: [] },
28
28
  };
@@ -194,10 +194,10 @@ exports.birdProperties = [
194
194
  noDataExpression: true,
195
195
  displayOptions: { show: { resource: ["voice"] } },
196
196
  options: [
197
- { name: "List", value: "list", action: "List calls", description: "List calls" },
198
- { name: "Get", value: "get", action: "Get a call", description: "Get a call" },
197
+ { name: "List Legs", value: "legs_list", action: "List legs" },
198
+ { name: "Get Leg", value: "legs_get", action: "Get a leg", description: "Get a leg" },
199
199
  ],
200
- default: "list",
200
+ default: "legs_list",
201
201
  },
202
202
  {
203
203
  displayName: "Operation",
@@ -814,7 +814,7 @@ exports.birdProperties = [
814
814
  type: "string",
815
815
  },
816
816
  ],
817
- description: "ID of the message to fetch, as returned by the send response",
817
+ description: "ID of the message to fetch. A broadcast records one message per recipient, and [List email messages](/docs/api/reference/list-email-messages) returns those copies alongside ordinary sends. For a single send, this is the message's own ID, as returned by the send response.",
818
818
  },
819
819
  {
820
820
  displayName: "Return All",
@@ -4326,7 +4326,7 @@ exports.birdProperties = [
4326
4326
  required: true,
4327
4327
  displayOptions: { show: { resource: ["whatsapp"], operation: ["send"] } },
4328
4328
  default: "",
4329
- description: "The message recipient: a phone number in E.164 format (for example `+31612345678`), or the recipient's business-scoped user ID (for example `US.13491208655302741918`), which addresses a WhatsApp user whose phone number you do not have. A value that is neither returns a `422` `WhatsAppInvalidRecipient`. One-time-passcode templates require a phone number and return a `422` `WhatsAppRecipientNotSupportedForTemplate` when sent to a business-scoped user ID.",
4329
+ description: "The message recipient: a phone number in E.164 format (for example `+31612345678`), the recipient's business-scoped user ID (for example `US.13491208655302741918`), which addresses a WhatsApp user whose phone number you do not have, or a WhatsApp group ID (for example `wag_01krdgeqcxet5s7t44vh8rt9mg`), which sends to every participant of that group. A value that is none of these returns a `422` `WhatsAppInvalidRecipient`. One-time-passcode templates require a phone number and return a `422` `WhatsAppRecipientNotSupportedForTemplate` when sent to a business-scoped user ID. A group ID naming no group this workspace holds returns a `404` `WhatsAppGroupNotFound`, and one whose group is not active returns a `409` `WhatsAppGroupNotActive`. Content a group cannot take is refused ahead of both, so a group ID paired with interactive content returns the `422` below whether or not the group exists.",
4330
4330
  },
4331
4331
  {
4332
4332
  displayName: "Additional Fields",
@@ -4403,7 +4403,7 @@ exports.birdProperties = [
4403
4403
  name: "from",
4404
4404
  type: "string",
4405
4405
  default: "",
4406
- description: "The business phone number to send from, in E.164 format. Omit it for a Bird-managed template, which selects its own number from its category: setting it there returns a `422` `WhatsAppSenderNotAllowed`. Every other send, whether free-form content of any kind or a template your workspace authored, requires it, and the number must be one this workspace owns. Omitting it returns a `422` `WhatsAppSenderRequired`, and naming a number this workspace cannot send from returns a `422` `WhatsAppSenderNotFound`. Naming a number this workspace owns but that sits on a different WhatsApp Business Account than an authored template returns a `422` `WhatsAppSenderWABAMismatch`. A number this workspace holds but has not finished connecting returns a `422` `WhatsAppSenderNotConnected`.",
4406
+ description: "The business phone number to send from, in E.164 format. Omit it for a Bird-managed template, which selects its own number from its category: setting it there returns a `422` `WhatsAppSenderNotAllowed`. Every other send, whether free-form content of any kind or a template your workspace authored, requires it, and the number must be one this workspace owns. Omitting it returns a `422` `WhatsAppSenderRequired`, and naming a number this workspace cannot send from returns a `422` `WhatsAppSenderNotFound`. Naming a number this workspace owns but that sits on a different WhatsApp Business Account than an authored template returns a `422` `WhatsAppSenderWABAMismatch`. A number this workspace holds but has not finished connecting returns a `422` `WhatsAppSenderNotConnected`. Omit it for a group send too: the group sends on its own number, so naming one returns a `422` `WhatsAppSenderNotAllowed`.",
4407
4407
  },
4408
4408
  {
4409
4409
  displayName: "Image",
@@ -4442,7 +4442,7 @@ exports.birdProperties = [
4442
4442
  type: "collection",
4443
4443
  placeholder: "Add Field",
4444
4444
  default: {},
4445
- description: "Free-form interactive content to send instead of a template: body text plus reply buttons, a menu, a link button, media cards, or a single button asking the recipient to share their location or their phone number. Deliverable only inside an open 24-hour customer service window, which the contact opens by messaging or calling you and resets each time they do it again. A send into a closed window is refused with a `422` `WhatsAppServiceWindowClosed` before anything is created or charged; one whose window closes between accept and dispatch fails asynchronously, with `service_window_expired` on the message's `last_error`.",
4445
+ description: "Free-form interactive content to send instead of a template: body text plus reply buttons, a menu, a link button, media cards, or a single button asking the recipient to share their location or their phone number. Deliverable only inside an open 24-hour customer service window, which the contact opens by messaging or calling you and resets each time they do it again. A send into a closed window is refused with a `422` `WhatsAppServiceWindowClosed` before anything is created or charged; one whose window closes between accept and dispatch fails asynchronously, with `service_window_expired` on the message's `last_error`. WhatsApp does not deliver interactive content to a group, so a group recipient returns a `422` `WhatsAppGroupContentNotSupported`.",
4446
4446
  options: [
4447
4447
  {
4448
4448
  displayName: "Body Text",
@@ -4632,7 +4632,7 @@ exports.birdProperties = [
4632
4632
  type: "collection",
4633
4633
  placeholder: "Add Field",
4634
4634
  default: {},
4635
- description: "The template to send. A Bird-managed template selects the sender number from the template's category, so `from` must be omitted. A template is the only content deliverable outside a customer service window.",
4635
+ description: "The template to send. A Bird-managed template selects the sender number from the template's category, so `from` must be omitted. A template is the only content deliverable outside a customer service window. A group send takes a template your workspace authored in any category but authentication: WhatsApp does not deliver an authentication template to a group, which returns a `422` `WhatsAppGroupContentNotSupported`. A Bird-managed template sends from a Bird-owned number that no group is scoped to, so addressing one to a group returns a `422` `WhatsAppInvalidRecipient`.",
4636
4636
  options: [
4637
4637
  {
4638
4638
  displayName: "ID",
@@ -4815,6 +4815,13 @@ exports.birdProperties = [
4815
4815
  default: "",
4816
4816
  description: "Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.",
4817
4817
  },
4818
+ {
4819
+ displayName: "Group ID",
4820
+ name: "group_id",
4821
+ type: "string",
4822
+ default: "",
4823
+ description: "Filter by the WhatsApp group the message belongs to, in either direction: the group an outbound message was addressed to, or the group an inbound message arrived through. Matches the `group_id` on each message's `to`. It names one group, so there is no way to ask for the messages that belong to no group: omit it to list group and one-to-one messages together.",
4824
+ },
4818
4825
  {
4819
4826
  displayName: "Phone Number",
4820
4827
  name: "phone_number",
@@ -4909,7 +4916,7 @@ exports.birdProperties = [
4909
4916
  displayName: "Return All",
4910
4917
  name: "returnAll",
4911
4918
  type: "boolean",
4912
- displayOptions: { show: { resource: ["voice"], operation: ["list"] } },
4919
+ displayOptions: { show: { resource: ["voice"], operation: ["legs_list"] } },
4913
4920
  default: false,
4914
4921
  description: "Whether to return all results or only up to a given limit",
4915
4922
  },
@@ -4918,7 +4925,7 @@ exports.birdProperties = [
4918
4925
  name: "limit",
4919
4926
  type: "number",
4920
4927
  typeOptions: { minValue: 1 },
4921
- displayOptions: { show: { resource: ["voice"], operation: ["list"] } },
4928
+ displayOptions: { show: { resource: ["voice"], operation: ["legs_list"] } },
4922
4929
  default: 50,
4923
4930
  description: "Max number of results to return",
4924
4931
  },
@@ -4928,8 +4935,15 @@ exports.birdProperties = [
4928
4935
  type: "collection",
4929
4936
  placeholder: "Add Field",
4930
4937
  default: {},
4931
- displayOptions: { show: { resource: ["voice"], operation: ["list"] } },
4938
+ displayOptions: { show: { resource: ["voice"], operation: ["legs_list"] } },
4932
4939
  options: [
4940
+ {
4941
+ displayName: "Call ID",
4942
+ name: "call_id",
4943
+ type: "string",
4944
+ default: "",
4945
+ description: "Return only legs belonging to this call, which is how the legs of one multi-party or transferred call are correlated",
4946
+ },
4933
4947
  {
4934
4948
  displayName: "Direction",
4935
4949
  name: "direction",
@@ -4940,49 +4954,42 @@ exports.birdProperties = [
4940
4954
  { name: "Outbound", value: "outbound" },
4941
4955
  ],
4942
4956
  default: "",
4943
- description: "Return only calls in this direction",
4957
+ description: "Return only legs in this direction",
4944
4958
  },
4945
4959
  {
4946
4960
  displayName: "From",
4947
4961
  name: "from",
4948
4962
  type: "string",
4949
4963
  default: "",
4950
- description: "Return only calls placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.",
4964
+ description: "Return only legs placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same legs. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the leg.",
4951
4965
  },
4952
4966
  {
4953
4967
  displayName: "Number",
4954
4968
  name: "number",
4955
4969
  type: "string",
4956
4970
  default: "",
4957
- description: "Return only calls where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every call to or from it. Combines with `from`/`to`, which match one side exactly.",
4958
- },
4959
- {
4960
- displayName: "Session ID",
4961
- name: "session_id",
4962
- type: "string",
4963
- default: "",
4964
- description: "Return only calls belonging to this session, which is how the legs of one multi-party or transferred call are correlated",
4971
+ description: "Return only legs where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every leg to or from it. Combines with `from`/`to`, which match one side exactly.",
4965
4972
  },
4966
4973
  {
4967
4974
  displayName: "Sip Trunk ID",
4968
4975
  name: "sip_trunk_id",
4969
4976
  type: "string",
4970
4977
  default: "",
4971
- description: "Return only calls carried by this SIP trunk",
4978
+ description: "Return only legs carried by this SIP trunk",
4972
4979
  },
4973
4980
  {
4974
4981
  displayName: "Started After",
4975
4982
  name: "started_after",
4976
4983
  type: "dateTime",
4977
4984
  default: "",
4978
- description: "Return only calls that started at or after this instant, inclusive. RFC 3339 timestamp.",
4985
+ description: "Return only legs that started at or after this instant, inclusive. RFC 3339 timestamp.",
4979
4986
  },
4980
4987
  {
4981
4988
  displayName: "Started Before",
4982
4989
  name: "started_before",
4983
4990
  type: "dateTime",
4984
4991
  default: "",
4985
- description: "Return only calls that started at or before this instant, inclusive. RFC 3339 timestamp.",
4992
+ description: "Return only legs that started at or before this instant, inclusive. RFC 3339 timestamp.",
4986
4993
  },
4987
4994
  {
4988
4995
  displayName: "Status",
@@ -5000,7 +5007,7 @@ exports.birdProperties = [
5000
5007
  { name: "Unknown", value: "unknown" },
5001
5008
  ],
5002
5009
  default: [],
5003
- description: "Return only calls with one of these statuses, comma-separated. In-flight and final statuses may be combined freely.",
5010
+ description: "Return only legs with one of these statuses, comma-separated. In-flight and final statuses may be combined freely.",
5004
5011
  },
5005
5012
  {
5006
5013
  displayName: "Tag",
@@ -5014,24 +5021,24 @@ exports.birdProperties = [
5014
5021
  name: "to",
5015
5022
  type: "string",
5016
5023
  default: "",
5017
- description: "Return only calls placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.",
5024
+ description: "Return only legs placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same legs. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the leg.",
5018
5025
  },
5019
5026
  ],
5020
5027
  },
5021
5028
  {
5022
- displayName: "Call",
5023
- name: "call_id",
5029
+ displayName: "Leg",
5030
+ name: "leg_id",
5024
5031
  type: "resourceLocator",
5025
5032
  required: true,
5026
5033
  default: { mode: "list", value: "" },
5027
- displayOptions: { show: { resource: ["voice"], operation: ["get"] } },
5034
+ displayOptions: { show: { resource: ["voice"], operation: ["legs_get"] } },
5028
5035
  modes: [
5029
5036
  {
5030
5037
  displayName: "From List",
5031
5038
  name: "list",
5032
5039
  type: "list",
5033
- placeholder: "Select a Call...",
5034
- typeOptions: { searchListMethod: "voiceList", searchable: true },
5040
+ placeholder: "Select a Leg...",
5041
+ typeOptions: { searchListMethod: "voiceLegsList", searchable: true },
5035
5042
  },
5036
5043
  {
5037
5044
  displayName: "By ID",
@@ -9394,7 +9401,7 @@ exports.birdProperties = [
9394
9401
  type: "string",
9395
9402
  },
9396
9403
  ],
9397
- description: "ID of the message whose stored content to fetch, as returned by the send response",
9404
+ description: "ID of the message whose stored content to fetch. A broadcast records one message per recipient, and [List email messages](/docs/api/reference/list-email-messages) returns those copies alongside ordinary sends. For a single send, this is the message's own ID, as returned by the send response.",
9398
9405
  },
9399
9406
  {
9400
9407
  displayName: "Message",
@@ -9417,7 +9424,7 @@ exports.birdProperties = [
9417
9424
  type: "string",
9418
9425
  },
9419
9426
  ],
9420
- description: "ID of the message whose recipients to list, as returned by the send response",
9427
+ description: "ID of the message whose recipients to list. A broadcast records one message per recipient, and [List email messages](/docs/api/reference/list-email-messages) returns those copies alongside ordinary sends. For a single send, this is the message's own ID, as returned by the send response.",
9421
9428
  },
9422
9429
  {
9423
9430
  displayName: "Return All",
@@ -9877,7 +9884,7 @@ exports.birdProperties = [
9877
9884
  type: "string",
9878
9885
  },
9879
9886
  ],
9880
- description: "ID of the message whose timeline to read, as returned by the send response",
9887
+ description: "ID of the message whose timeline to read. A broadcast records one message per recipient, and [List email messages](/docs/api/reference/list-email-messages) returns those copies alongside ordinary sends. For a single send, this is the message's own ID, as returned by the send response.",
9881
9888
  },
9882
9889
  {
9883
9890
  displayName: "Return All",
@@ -58,10 +58,10 @@ exports.birdRoutes = {
58
58
  "sms_keyword_rules:delete": { method: "DELETE", path: "/v1/sms/keyword-rules/{id}", pathParams: ["id"], topLevel: ["id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["sms_management"] },
59
59
  "whatsapp:send": { method: "POST", path: "/v1/whatsapp/messages", pathParams: [], topLevel: ["to"], collections: ["additionalFields"], query: [], body: ["to", "from", "template", "text", "image", "video", "audio", "sticker", "document", "location", "interactive", "contact_cards", "in_reply_to_message_id", "tags", "metadata"], jsonFields: ["template.components", "interactive.header", "interactive.buttons", "interactive.list", "interactive.cta_url", "interactive.cards", "contact_cards"], structured: { "template": "struct", "text": "struct", "image": "struct", "video": "struct", "audio": "struct", "sticker": "struct", "document": "struct", "location": "struct", "interactive": "struct", "tags": "list", "metadata": "map" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["whatsapp"] },
60
60
  "whatsapp:get": { method: "GET", path: "/v1/whatsapp/messages/{message_id}", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["whatsapp"] },
61
- "whatsapp:list": { method: "GET", path: "/v1/whatsapp/messages", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before", "created_after", "created_before", "status", "direction", "to", "from", "phone_number", "bsuid", "category", "tag"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["status", "tag"], dateTimeFields: ["created_after", "created_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["whatsapp"] },
61
+ "whatsapp:list": { method: "GET", path: "/v1/whatsapp/messages", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before", "created_after", "created_before", "status", "direction", "to", "from", "phone_number", "bsuid", "category", "group_id", "tag"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["status", "tag"], dateTimeFields: ["created_after", "created_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["whatsapp"] },
62
62
  "whatsapp:list_events": { method: "GET", path: "/v1/whatsapp/messages/{message_id}/events", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: ["type"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["whatsapp"] },
63
- "voice:list": { method: "GET", path: "/v1/voice/calls", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["direction", "status", "session_id", "sip_trunk_id", "from", "to", "number", "tag", "started_after", "started_before", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["status", "tag"], dateTimeFields: ["started_after", "started_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["voice"] },
64
- "voice:get": { method: "GET", path: "/v1/voice/calls/{call_id}", pathParams: ["call_id"], topLevel: ["call_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["voice"] },
63
+ "voice:legs_list": { method: "GET", path: "/v1/voice/legs", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["direction", "status", "call_id", "sip_trunk_id", "from", "to", "number", "tag", "started_after", "started_before", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["status", "tag"], dateTimeFields: ["started_after", "started_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["voice"] },
64
+ "voice:legs_get": { method: "GET", path: "/v1/voice/legs/{leg_id}", pathParams: ["leg_id"], topLevel: ["leg_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["voice"] },
65
65
  "verify:verifications_create": { method: "POST", path: "/v1/verify/verifications", pathParams: [], topLevel: ["to"], collections: ["additionalFields"], query: [], body: ["to", "options", "metadata"], jsonFields: [], structured: { "to": "struct", "options": "struct", "metadata": "map" }, renames: {}, arrayFields: ["options.channels"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["verify"] },
66
66
  "verify:verifications_check": { method: "POST", path: "/v1/verify/verifications/check", pathParams: [], topLevel: ["to", "code"], collections: ["additionalFields"], query: [], body: ["to", "code"], jsonFields: [], structured: { "to": "struct" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["verify"] },
67
67
  "verify:verifications_next_channel": { method: "POST", path: "/v1/verify/verifications/next-channel", pathParams: [], topLevel: ["to"], collections: ["additionalFields"], query: [], body: ["to"], jsonFields: [], structured: { "to": "struct" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["verify"] },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messagebird/n8n-nodes-bird",
3
- "version": "0.9.1",
3
+ "version": "0.10.0",
4
4
  "description": "The official Bird node for n8n: email, SMS, WhatsApp, and verification, plus a webhook trigger for Bird events.",
5
5
  "license": "MIT",
6
6
  "author": {