@messagebird/n8n-nodes-bird 0.22.3 → 0.23.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.
@@ -4571,7 +4571,7 @@ exports.birdProperties = [
4571
4571
  required: true,
4572
4572
  displayOptions: { show: { resource: ["whatsapp"], operation: ["send"] } },
4573
4573
  default: "",
4574
- 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.",
4574
+ description: "The recipient: a phone number in E.164 format (for example `+14155550100`), a business-scoped user ID (for example `US.13491208655302741918`) for a WhatsApp user whose number you do not have, or a WhatsApp group ID (for example `wag_01krdgeqcxet5s7t44vh8rt9mg`). One-time-passcode templates need a phone number. Bird tracks the customer service window per identity and business number, so reply to the identity a contact's message came from, from the number it reached.",
4575
4575
  },
4576
4576
  {
4577
4577
  displayName: "Additional Fields",
@@ -4587,21 +4587,21 @@ exports.birdProperties = [
4587
4587
  type: "collection",
4588
4588
  placeholder: "Add Field",
4589
4589
  default: {},
4590
- description: "Free-form audio to send instead of a template. 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`.",
4590
+ description: "Free-form audio. Deliverable only inside an open customer service window.",
4591
4591
  options: [
4592
4592
  {
4593
4593
  displayName: "URL",
4594
4594
  name: "url",
4595
4595
  type: "string",
4596
4596
  default: "",
4597
- description: "Public `https` URL of the audio file. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. AAC, AMR, MP3, M4A and OGG (OPUS codec, mono) are supported, up to 16 MB.",
4597
+ description: "Public `https` URL of the audio file. WhatsApp fetches it at send time, so it must still be reachable then. AAC, AMR, MP3, M4A or OGG (OPUS codec, mono), up to 16 MB.",
4598
4598
  },
4599
4599
  {
4600
4600
  displayName: "Voice",
4601
4601
  name: "voice",
4602
4602
  type: "boolean",
4603
4603
  default: false,
4604
- description: "Whether to send this as a voice note rather than a basic audio message. A voice note auto-downloads, shows the sender's profile picture, and can be transcribed for the recipient. It requires an `.ogg` file encoded with the OPUS codec; any other format makes transcription fail. Leave it false for an ordinary audio attachment.",
4604
+ description: "Whether to send this as a voice note rather than an audio file. A voice note needs an `.ogg` file encoded with the OPUS codec.",
4605
4605
  },
4606
4606
  ],
4607
4607
  },
@@ -4610,7 +4610,7 @@ exports.birdProperties = [
4610
4610
  name: "contact_cards",
4611
4611
  type: "json",
4612
4612
  default: "",
4613
- description: "Contact cards to send instead of a template. Up to five: WhatsApp accepts far more, and a message that opens as one name plus a count of the rest is not a card the recipient will read.",
4613
+ description: "Up to five contact cards, each `name` carrying `formatted_name` plus at least one other part. Deliverable only inside an open customer service window.",
4614
4614
  },
4615
4615
  {
4616
4616
  displayName: "Document",
@@ -4618,14 +4618,14 @@ exports.birdProperties = [
4618
4618
  type: "collection",
4619
4619
  placeholder: "Add Field",
4620
4620
  default: {},
4621
- description: "A free-form document to send instead of a template. 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`.",
4621
+ description: "A free-form document. Deliverable only inside an open customer service window.",
4622
4622
  options: [
4623
4623
  {
4624
4624
  displayName: "URL",
4625
4625
  name: "url",
4626
4626
  type: "string",
4627
4627
  default: "",
4628
- description: "Public `https` URL of the document. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. Up to 100 MB. PDF, Word, Excel, PowerPoint and plain text render reliably in the WhatsApp client; other file types are transmitted but WhatsApp does not support them.",
4628
+ description: "Public `https` URL of the document. WhatsApp fetches it at send time, so it must still be reachable then. Up to 100 MB; PDF, Word, Excel, PowerPoint and plain text render reliably in the WhatsApp client.",
4629
4629
  },
4630
4630
  {
4631
4631
  displayName: "Caption",
@@ -4648,7 +4648,7 @@ exports.birdProperties = [
4648
4648
  name: "from",
4649
4649
  type: "string",
4650
4650
  default: "",
4651
- 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`.",
4651
+ description: "The business phone number to send from, in E.164 format: a connected number this workspace owns, on the same WhatsApp Business Account as an authored template. Omit it for a Bird-managed template or a group send, which use their own number; every other send requires it.",
4652
4652
  },
4653
4653
  {
4654
4654
  displayName: "Image",
@@ -4656,14 +4656,14 @@ exports.birdProperties = [
4656
4656
  type: "collection",
4657
4657
  placeholder: "Add Field",
4658
4658
  default: {},
4659
- description: "A free-form image to send instead of a template. 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`.",
4659
+ description: "A free-form image. Deliverable only inside an open customer service window.",
4660
4660
  options: [
4661
4661
  {
4662
4662
  displayName: "URL",
4663
4663
  name: "url",
4664
4664
  type: "string",
4665
4665
  default: "",
4666
- description: "Public `https` URL of the image. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. JPEG and PNG only, up to 5 MB.",
4666
+ description: "Public `https` URL of the image. WhatsApp fetches it at send time, so it must still be reachable then. JPEG or PNG, up to 5 MB.",
4667
4667
  },
4668
4668
  {
4669
4669
  displayName: "Caption",
@@ -4679,7 +4679,7 @@ exports.birdProperties = [
4679
4679
  name: "in_reply_to_message_id",
4680
4680
  type: "string",
4681
4681
  default: "",
4682
- description: "Quote a message the contact will see above this one, the way replying in the WhatsApp client does. Name a message from the same conversation: one this workspace sent to this recipient, or received from them. Any content quotes, template or free-form. The quote is resolved before the send is accepted, so a quote WhatsApp cannot render fails this request rather than the message. An ID naming no message this workspace holds, or one older than the 15 days we keep provider IDs for, answers `404`; a message that never reached WhatsApp, or one from a different conversation than this send's `to` and `from`, answers `422`. Nothing is charged either way.",
4682
+ description: "An earlier message to quote above this one: one from the same conversation, between this `to` and `from`, in the last 15 days",
4683
4683
  },
4684
4684
  {
4685
4685
  displayName: "Interactive",
@@ -4687,28 +4687,28 @@ exports.birdProperties = [
4687
4687
  type: "collection",
4688
4688
  placeholder: "Add Field",
4689
4689
  default: {},
4690
- 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`.",
4690
+ description: "Free-form interactive content: reply buttons, a list menu, a link button, media cards, or a request for the recipient's location or contact details. Deliverable only inside an open customer service window, and never to a group.",
4691
4691
  options: [
4692
4692
  {
4693
4693
  displayName: "Body Text",
4694
4694
  name: "body_text",
4695
4695
  type: "string",
4696
4696
  default: "",
4697
- description: "The message's main text, required on every kind, and the whole message on `location_request_message` and `request_contact_info`. The WhatsApp client turns any URL it contains into a clickable link. Only a `list` may use the full length; the other kinds cap it at 1024 characters.",
4697
+ description: "The message's main text, required on every kind. Up to 1024 characters, except on a `list`.",
4698
4698
  },
4699
4699
  {
4700
4700
  displayName: "Buttons",
4701
4701
  name: "buttons",
4702
4702
  type: "json",
4703
4703
  default: "",
4704
- description: "The buttons to show, in the order given. Send this on a `button` message, where every button is a `quick_reply`. Every label must be unique within the message; a repeat returns a `422` `WhatsAppInteractiveDuplicateLabel`.",
4704
+ description: "The `quick_reply` buttons of a `button` message, in order. Labels must be unique within the message.",
4705
4705
  },
4706
4706
  {
4707
4707
  displayName: "Cards",
4708
4708
  name: "cards",
4709
4709
  type: "json",
4710
4710
  default: "",
4711
- description: "The cards to show, in the order they appear, left to right. Send this on a `carousel` message, with between 2 and 10 cards. The message's own `body_text` introduces them; a carousel carries no header and no footer of its own.",
4711
+ description: "The cards of a `carousel` message, 2 to 10, left to right. A carousel takes no header or footer of its own.",
4712
4712
  },
4713
4713
  {
4714
4714
  displayName: "Cta URL",
@@ -4729,7 +4729,7 @@ exports.birdProperties = [
4729
4729
  name: "header",
4730
4730
  type: "json",
4731
4731
  default: "",
4732
- description: "Optional content above the body. A `list` accepts a `text` header only; `button` and `cta_url` also accept an image, video or document. A `carousel` accepts none: its cards carry their own media. Neither request kind accepts one.",
4732
+ description: "Optional content above the body: text on a `list`; text, image, video or document on `button` and `cta_url`. A `carousel` and the two request kinds take none.",
4733
4733
  },
4734
4734
  {
4735
4735
  displayName: "List",
@@ -4762,7 +4762,7 @@ exports.birdProperties = [
4762
4762
  type: "collection",
4763
4763
  placeholder: "Add Field",
4764
4764
  default: {},
4765
- description: "A free-form location to send instead of a template. 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`.",
4765
+ description: "A free-form location. Deliverable only inside an open customer service window.",
4766
4766
  options: [
4767
4767
  {
4768
4768
  displayName: "Latitude",
@@ -4829,14 +4829,14 @@ exports.birdProperties = [
4829
4829
  type: "collection",
4830
4830
  placeholder: "Add Field",
4831
4831
  default: {},
4832
- description: "A free-form sticker to send instead of a template. 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`.",
4832
+ description: "A free-form sticker. Deliverable only inside an open customer service window.",
4833
4833
  options: [
4834
4834
  {
4835
4835
  displayName: "URL",
4836
4836
  name: "url",
4837
4837
  type: "string",
4838
4838
  default: "",
4839
- description: "Public `https` URL of the sticker. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. WebP only: up to 100 KB for a static sticker and 500 KB for an animated one. A sticker carries no caption.",
4839
+ description: "Public `https` URL of the sticker. WhatsApp fetches it at send time, so it must still be reachable then. WebP only, up to 100 KB static or 500 KB animated.",
4840
4840
  },
4841
4841
  ],
4842
4842
  },
@@ -4877,7 +4877,7 @@ exports.birdProperties = [
4877
4877
  type: "collection",
4878
4878
  placeholder: "Add Field",
4879
4879
  default: {},
4880
- 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`.",
4880
+ description: "The template to send, the only content deliverable outside the customer service window. A group takes only templates your workspace authored, outside the authentication category.",
4881
4881
  options: [
4882
4882
  {
4883
4883
  displayName: "ID",
@@ -4898,14 +4898,14 @@ exports.birdProperties = [
4898
4898
  name: "language",
4899
4899
  type: "string",
4900
4900
  default: "",
4901
- description: "Which of the template's languages to send, as a BCP-47 tag (for example `en` or `pt-BR`); Meta's underscore form (`pt_BR`) is accepted and normalized. Omit it to send the template's default language, unless the template sets `language_source_required`, in which case a send naming no language is rejected. When the template does not carry the language you ask for, its own `on_missing_language` setting decides whether the closest available language is sent instead or the send is rejected. The accepted message echoes the canonical BCP-47 form of the language it resolved to, which is the language it is priced at: Meta categorizes each language separately, so a send served by a different language than the one you asked for is priced at that language's category.",
4901
+ description: "Which of the template's languages to send, as a BCP-47 tag (for example `en-US`; Meta's `en_US` is accepted too). Omit it for the template's default language, unless the template sets `language_source_required`. A language the template lacks is handled by its `on_missing_language` setting. The message is priced at the language it resolves to, which the accepted message echoes.",
4902
4902
  },
4903
4903
  {
4904
4904
  displayName: "Components",
4905
4905
  name: "components",
4906
4906
  type: "json",
4907
4907
  default: "",
4908
- description: "The values that fill the template's placeholders: one entry per content block that has placeholders, each carrying its `parameters`. A positional template takes its parameters in `{{n}}` order; a template with named parameters requires each parameter's `name` to match one the template declares. Either way, sending parameters that do not match what the template declares returns a `422` `WhatsAppTemplateParameterMismatch`.",
4908
+ description: "Values for the template's placeholders. Build it from the template language's `components`: each block's `example_parameters`, with real values, becomes that part's `parameters`. A template's `buttons` block becomes one `button` part per button that has `example_parameters`, in order; a `carousel` becomes one `cards` entry per card, built the same way. A `location` header always needs a part with a `location` parameter. Leave out other blocks without any.",
4909
4909
  },
4910
4910
  ],
4911
4911
  },
@@ -4915,7 +4915,7 @@ exports.birdProperties = [
4915
4915
  type: "collection",
4916
4916
  placeholder: "Add Field",
4917
4917
  default: {},
4918
- description: "Free-form text to send instead of a template. 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`.",
4918
+ description: "Free-form text. Deliverable only inside an open customer service window.",
4919
4919
  options: [
4920
4920
  {
4921
4921
  displayName: "Body",
@@ -4929,7 +4929,7 @@ exports.birdProperties = [
4929
4929
  name: "preview_url",
4930
4930
  type: "boolean",
4931
4931
  default: false,
4932
- description: "Whether the WhatsApp client renders a preview of the first URL in `body`. A URL must begin with `http://` or `https://`, only the first one is previewed, and the client falls back to a plain link when it cannot fetch a preview. Not returned when the message is read back, because WhatsApp does not report whether a preview rendered.",
4932
+ description: "Whether the WhatsApp client previews the first link in `body`. Not returned when the message is read back.",
4933
4933
  },
4934
4934
  ],
4935
4935
  },
@@ -4939,14 +4939,14 @@ exports.birdProperties = [
4939
4939
  type: "collection",
4940
4940
  placeholder: "Add Field",
4941
4941
  default: {},
4942
- description: "A free-form video to send instead of a template. 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`.",
4942
+ description: "A free-form video. Deliverable only inside an open customer service window.",
4943
4943
  options: [
4944
4944
  {
4945
4945
  displayName: "URL",
4946
4946
  name: "url",
4947
4947
  type: "string",
4948
4948
  default: "",
4949
- description: "Public `https` URL of the video. WhatsApp fetches it at send time, so it must still be reachable then: a signed URL has to outlive the send. We do not store or proxy the file. WhatsApp caches a fetched URL for 10 minutes and re-serves that copy for an identical URL sent again within the window; vary the URL to force a re-fetch. MP4 with H.264 video and AAC audio, up to 16 MB.",
4949
+ description: "Public `https` URL of the video. WhatsApp fetches it at send time, so it must still be reachable then. MP4 with H.264 video and AAC audio, up to 16 MB.",
4950
4950
  },
4951
4951
  {
4952
4952
  displayName: "Caption",
@@ -8509,7 +8509,7 @@ exports.birdProperties = [
8509
8509
  name: "domain",
8510
8510
  type: "string",
8511
8511
  default: "",
8512
- description: "The domain the address lives under. Defaults to `inbox.ai`, our shared mailbox domain. Creating a mailbox claims the shared address for your organization on a first-come, first-served basis. The address remains reserved to your organization after the mailbox is deleted. You can instead use one of your own domains enabled for receiving email.",
8512
+ description: "The domain the address lives under. Defaults to `inbox.ai`, our shared mailbox domain. Creating a mailbox claims the shared address for your organization on a first-come, first-served basis. The address remains reserved to your organization after the mailbox is deleted. You can instead use one of your own domains. On a domain enabled for receiving, mail arrives directly. On a domain this workspace has verified (its `status` is `verified`) that is not set up for receiving, the mailbox gets a `forwarding_address`: forward mail for the address there from your current email provider, with no MX change. If another workspace receives the domain's mail, creation fails with `E17009`.",
8513
8513
  },
8514
8514
  {
8515
8515
  displayName: "Local Part",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messagebird/n8n-nodes-bird",
3
- "version": "0.22.3",
3
+ "version": "0.23.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": {