@messagebird/n8n-nodes-bird 0.20.0 → 0.21.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
@@ -21,7 +21,7 @@ On a self-hosted instance that has not enabled community nodes in the panel, use
21
21
  The **Bird** node covers the public Bird API: email and SMS sends, delivery status and event timelines, WhatsApp, verification, templates, sending domains, suppressions, inbound routes, webhooks, statistics, lookup, and more. Resources and operations mirror the API reference at https://bird.com/docs/api. Four areas are deliberately out: publishing and subscribing on Realtime, which needs an app key and secret this credential cannot hold (managing Realtime apps and keys is included); the attachment and media downloads, which return bytes rather than the JSON a workflow item carries; redirect-based media fetches; and authoring reusable email templates (sending an existing email template, and listing the ones a workspace has, are covered).
22
22
 
23
23
  <details>
24
- <summary><strong>180 operations across 22 resources</strong></summary>
24
+ <summary><strong>181 operations across 22 resources</strong></summary>
25
25
 
26
26
  - **Audience** (9) — Add Contacts, Create, Delete, Get, List, List Contacts, Remove Contact, Remove Contacts, Update
27
27
  - **Contact** (7) — Batch, Create, Delete, Get, List, List Preferences, Update
@@ -32,7 +32,7 @@ The **Bird** node covers the public Bird API: email and SMS sends, delivery stat
32
32
  - **Inbound Address** (5) — Create, Delete, Get, List, Update
33
33
  - **Inbound Message** (4) — Attachments, Body, Get, List
34
34
  - **Lookup** (3) — Email, Email Batch, Phone Number
35
- - **Number** (9) — Create Order, Get, Get Available Number, Get Order, List, List Available Numbers, List Orders, Release, Update
35
+ - **Number** (10) — Cancel, Create Order, Get, Get Available Number, Get Order, List, List Available Numbers, List Orders, Release, Update
36
36
  - **Preference** (4) — Create, Delete, Get, List
37
37
  - **Realtime** (9) — Create App, Create App Key, Delete App, Get App, List App Keys, List Apps, List Regions, Revoke App Key, Update App
38
38
  - **SMS** (21) — Get, List, List Events, Send, Send Batch, Stats By Carrier, Stats By Category, Stats By Country, Stats By Error Code, Stats By Originator, Stats By Status, Stats By Tag, Stats Daily, Stats Hourly, Stats Inbound By Country, Stats Inbound By Number, Stats Inbound By Operator, Stats Inbound Daily, Stats Inbound Hourly, Stats Inbound Summary, Stats Summary
@@ -232,6 +232,7 @@ exports.birdProperties = [
232
232
  noDataExpression: true,
233
233
  displayOptions: { show: { resource: ["numbers"] } },
234
234
  options: [
235
+ { name: "Cancel", value: "cancel", action: "Cancel a dedicated number", description: "Cancel a dedicated number" },
235
236
  { name: "Create Order", value: "orders_create", action: "Create a number order", description: "Create a number order" },
236
237
  { name: "Get", value: "get", action: "Get an allocated number", description: "Get an allocated number" },
237
238
  { name: "Get Available Number", value: "available_get", action: "Get an available phone number", description: "Get an available phone number" },
@@ -843,6 +844,13 @@ exports.birdProperties = [
843
844
  default: {},
844
845
  displayOptions: { show: { resource: ["email"], operation: ["list"] } },
845
846
  options: [
847
+ {
848
+ displayName: "Broadcast ID",
849
+ name: "broadcast_id",
850
+ type: "string",
851
+ default: "",
852
+ description: "Filter messages by broadcast ID",
853
+ },
846
854
  {
847
855
  displayName: "Category",
848
856
  name: "category",
@@ -5684,6 +5692,29 @@ exports.birdProperties = [
5684
5692
  ],
5685
5693
  description: "Identifier of the number to release, as returned in the ID field of GET /v1/numbers",
5686
5694
  },
5695
+ {
5696
+ displayName: "Number",
5697
+ name: "number_id",
5698
+ type: "resourceLocator",
5699
+ required: true,
5700
+ default: { mode: "list", value: "" },
5701
+ displayOptions: { show: { resource: ["numbers"], operation: ["cancel"] } },
5702
+ modes: [
5703
+ {
5704
+ displayName: "From List",
5705
+ name: "list",
5706
+ type: "list",
5707
+ placeholder: "Select a Number...",
5708
+ typeOptions: { searchListMethod: "numbersList", searchable: true },
5709
+ },
5710
+ {
5711
+ displayName: "By ID",
5712
+ name: "id",
5713
+ type: "string",
5714
+ },
5715
+ ],
5716
+ description: "Identifier of the number to cancel, as returned in the ID field of GET /v1/numbers",
5717
+ },
5687
5718
  {
5688
5719
  displayName: "Return All",
5689
5720
  name: "returnAll",
@@ -5,7 +5,7 @@ exports.birdRoutes = {
5
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
- "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"] },
8
+ "email:list": { method: "GET", path: "/v1/email/messages", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before", "created_after", "created_before", "broadcast_id", "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"] },
9
9
  "email:cancel": { method: "POST", path: "/v1/email/messages/{message_id}/cancel", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["emails"] },
10
10
  "email:stats_summary": { method: "GET", path: "/v1/email/stats/summary", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "category", "sending_domain", "tag", "sending_ip", "recipient_domain", "template", "compare"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["emails"] },
11
11
  "email:stats_daily": { method: "GET", path: "/v1/email/stats/daily", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["from", "to", "timezone", "category", "sending_domain", "tag", "sending_ip", "recipient_domain", "template"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["emails"] },
@@ -71,7 +71,8 @@ exports.birdRoutes = {
71
71
  "numbers:list": { method: "GET", path: "/v1/numbers", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["search", "reference", "number", "country_code", "number_type", "prefix", "capabilities", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["capabilities"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["numbers"] },
72
72
  "numbers:get": { method: "GET", path: "/v1/numbers/{number_id}", pathParams: ["number_id"], topLevel: ["number_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["numbers"] },
73
73
  "numbers:update": { method: "PATCH", path: "/v1/numbers/{number_id}", pathParams: ["number_id"], topLevel: ["number_id"], collections: ["updateFields"], query: [], body: ["name", "reference"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: ["name", "reference"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["numbers"] },
74
- "numbers:release": { method: "DELETE", path: "/v1/numbers/{number_id}", pathParams: ["number_id"], topLevel: ["number_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["numbers"] },
74
+ "numbers:release": { method: "POST", path: "/v1/numbers/{number_id}/release", pathParams: ["number_id"], topLevel: ["number_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["numbers"] },
75
+ "numbers:cancel": { method: "DELETE", path: "/v1/numbers/{number_id}", pathParams: ["number_id"], topLevel: ["number_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["numbers"] },
75
76
  "numbers:available_list": { method: "GET", path: "/v1/numbers/available", pathParams: [], topLevel: ["country_code"], collections: ["additionalFields"], query: ["country_code", "number_type", "prefix", "capabilities", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: ["capabilities"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["numbers"] },
76
77
  "numbers:available_get": { method: "GET", path: "/v1/numbers/available/{number}", pathParams: ["number"], topLevel: ["number"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["numbers"] },
77
78
  "numbers:orders_create": { method: "POST", path: "/v1/numbers/orders", pathParams: [], topLevel: ["number"], collections: ["additionalFields"], query: [], body: ["number", "reference"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["numbers"] },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messagebird/n8n-nodes-bird",
3
- "version": "0.20.0",
3
+ "version": "0.21.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": {