@messagebird/n8n-nodes-bird 0.7.0 → 0.8.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.
@@ -51,6 +51,7 @@ exports.birdEvents = [
51
51
  { name: "whatsapp.accepted", value: "whatsapp.accepted", description: "The API accepted and charged the send request" },
52
52
  { name: "whatsapp.delivered", value: "whatsapp.delivered", description: "The message was delivered to the recipient's device" },
53
53
  { name: "whatsapp.failed", value: "whatsapp.failed", description: "Message delivery failed permanently" },
54
+ { name: "whatsapp.reacted", value: "whatsapp.reacted", description: "A contact placed, changed or took back a reaction on a message" },
54
55
  { name: "whatsapp.read", value: "whatsapp.read", description: "The recipient read the message" },
55
56
  { name: "whatsapp.received", value: "whatsapp.received", description: "A contact sent the business a WhatsApp message" },
56
57
  { name: "whatsapp.rejected", value: "whatsapp.rejected", description: "The API rejected the message before sending it to WhatsApp because the recipient is on the workspace suppression list, the wallet has insufficient balance, or the destination is unpriced. The message is not sent or charged." },
@@ -627,7 +627,7 @@ exports.birdProperties = [
627
627
  typeOptions: { multipleValues: true },
628
628
  placeholder: "Add Pair",
629
629
  default: {},
630
- description: "Parameter values used to personalize inline content. A parameter is a single word, and a token in the subject or body (for example `{{ animal }}`) is replaced with the value of that name at send time. Shared across all recipients of this send. A token with no matching key renders empty. Cap: 16 KB serialized. When sending a stored `template`, put the values in `template.parameters` instead.",
630
+ description: "Parameter values used to personalize inline content, shared across all recipients of this send. Tokens such as `{{ animal }}` are replaced with matching values; missing values render empty. Include this object, even as `{}`, to use Liquid, or omit it to leave tokens unchanged. Use single-word names other than `bird`. Cap: 16 KB serialized. For a stored template, use `template.parameters` instead. See [inline personalization](https://bird.com/docs/guides/email/sending-email#content) for validation and URL encoding examples.",
631
631
  options: [
632
632
  {
633
633
  displayName: "Pair",
@@ -6327,6 +6327,7 @@ exports.birdProperties = [
6327
6327
  { name: "Whatsapp Accepted", value: "whatsapp.accepted" },
6328
6328
  { name: "Whatsapp Delivered", value: "whatsapp.delivered" },
6329
6329
  { name: "Whatsapp Failed", value: "whatsapp.failed" },
6330
+ { name: "Whatsapp Reacted", value: "whatsapp.reacted" },
6330
6331
  { name: "Whatsapp Read", value: "whatsapp.read" },
6331
6332
  { name: "Whatsapp Received", value: "whatsapp.received" },
6332
6333
  { name: "Whatsapp Rejected", value: "whatsapp.rejected" },
@@ -6591,6 +6592,7 @@ exports.birdProperties = [
6591
6592
  { name: "Whatsapp Accepted", value: "whatsapp.accepted" },
6592
6593
  { name: "Whatsapp Delivered", value: "whatsapp.delivered" },
6593
6594
  { name: "Whatsapp Failed", value: "whatsapp.failed" },
6595
+ { name: "Whatsapp Reacted", value: "whatsapp.reacted" },
6594
6596
  { name: "Whatsapp Read", value: "whatsapp.read" },
6595
6597
  { name: "Whatsapp Received", value: "whatsapp.received" },
6596
6598
  { name: "Whatsapp Rejected", value: "whatsapp.rejected" },
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.birdRoutes = void 0;
4
4
  exports.birdRoutes = {
5
- "email:send": { method: "POST", path: "/v1/email/messages", pathParams: [], topLevel: ["from", "to"], collections: ["additionalFields"], query: [], body: ["from", "to", "cc", "bcc", "subject", "html", "text", "reply_to", "headers", "tags", "metadata", "parameters", "template", "track_opens", "track_clicks", "ip_pool_id", "category", "attachments", "scheduled_at"], jsonFields: [], structured: { "headers": "map", "tags": "list", "metadata": "map", "parameters": "map", "template": "struct", "attachments": "list" }, renames: {}, arrayFields: ["to", "cc", "bcc", "reply_to"], dateTimeFields: ["scheduled_at"], nullableFields: [], binaryFields: ["attachments"], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["emails"] },
5
+ "email:send": { method: "POST", path: "/v1/email/messages", pathParams: [], topLevel: ["from", "to"], collections: ["additionalFields"], query: [], body: ["from", "to", "cc", "bcc", "subject", "html", "text", "reply_to", "headers", "tags", "metadata", "parameters", "template", "track_opens", "track_clicks", "ip_pool_id", "category", "attachments", "scheduled_at"], jsonFields: [], structured: { "headers": "map", "tags": "list", "metadata": "map", "parameters": "map", "template": "struct", "attachments": "list" }, preserveEmptyFields: ["parameters"], renames: {}, arrayFields: ["to", "cc", "bcc", "reply_to"], dateTimeFields: ["scheduled_at"], nullableFields: [], binaryFields: ["attachments"], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["emails"] },
6
6
  "email:send_batch": { method: "POST", path: "/v1/email/batches", pathParams: [], topLevel: ["messages"], collections: ["additionalFields"], query: [], body: ["messages"], jsonFields: ["messages"], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: true, scopes: ["emails"] },
7
7
  "email:get": { method: "GET", path: "/v1/email/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: ["emails"] },
8
8
  "email:list": { method: "GET", path: "/v1/email/messages", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before", "created_after", "created_before", "status", "tag", "category", "to", "from"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["tag"], dateTimeFields: ["created_after", "created_before"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
@@ -206,7 +206,10 @@ function unwrapStructured(node, itemIndex, route, v) {
206
206
  if (typeof raw === "object" &&
207
207
  raw !== null &&
208
208
  Object.keys(raw).length === 0) {
209
- delete v[name];
209
+ if (route.preserveEmptyFields?.includes(name))
210
+ v[name] = raw;
211
+ else
212
+ delete v[name];
210
213
  continue;
211
214
  }
212
215
  v[name] = raw;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messagebird/n8n-nodes-bird",
3
- "version": "0.7.0",
3
+ "version": "0.8.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": {