@messagebird/n8n-nodes-bird 0.14.0 → 0.15.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.
@@ -26,7 +26,7 @@ exports.birdProperties = [
26
26
  { name: "SMS Template", value: "sms_templates", description: "Browse the SMS templates available to the workspace" },
27
27
  { name: "Suppression", value: "suppression", description: "Manage the email suppression list" },
28
28
  { name: "Verify", value: "verify", description: "Send one-time passcodes and check them" },
29
- { name: "Voice", value: "voice", description: "Place calls, read call legs and statistics, and configure Voice" },
29
+ { name: "Voice", value: "voice", description: "Place and read calls, read legs and statistics, and configure Voice" },
30
30
  { name: "Webhook", value: "webhooks", description: "Manage outbound webhook endpoints" },
31
31
  { name: "WhatsApp", value: "whatsapp", description: "Send WhatsApp messages, connect its senders, and read templates and stats" },
32
32
  { name: "Workspace", value: "workspace", description: "Inspect the current workspace and its settings" },
@@ -2591,33 +2591,40 @@ exports.birdProperties = [
2591
2591
  default: {},
2592
2592
  displayOptions: { show: { resource: ["email"], operation: ["stats_by_broadcast"] } },
2593
2593
  options: [
2594
+ {
2595
+ displayName: "Category",
2596
+ name: "category",
2597
+ type: "string",
2598
+ default: "",
2599
+ description: "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.",
2600
+ },
2594
2601
  {
2595
2602
  displayName: "From",
2596
2603
  name: "from",
2597
2604
  type: "string",
2598
2605
  default: "",
2599
- description: "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted.",
2606
+ description: "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (UTC when omitted). Defaults to 30 days before `to` when omitted.",
2600
2607
  },
2601
2608
  {
2602
- displayName: "To",
2603
- name: "to",
2604
- type: "string",
2609
+ displayName: "Max Results",
2610
+ name: "max_results",
2611
+ type: "number",
2605
2612
  default: "",
2606
- description: "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days.",
2613
+ description: "Maximum number of broadcast rows to return, ranked by the `sort` field descending",
2607
2614
  },
2608
2615
  {
2609
- displayName: "Category",
2610
- name: "category",
2616
+ displayName: "Timezone",
2617
+ name: "timezone",
2611
2618
  type: "string",
2612
2619
  default: "",
2613
- description: "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter.",
2620
+ description: "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.",
2614
2621
  },
2615
2622
  {
2616
- displayName: "Max Results",
2617
- name: "max_results",
2618
- type: "number",
2623
+ displayName: "To",
2624
+ name: "to",
2625
+ type: "string",
2619
2626
  default: "",
2620
- description: "Maximum number of broadcast rows to return, ranked by the `sort` field descending",
2627
+ description: "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (UTC when omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days.",
2621
2628
  },
2622
2629
  ],
2623
2630
  },
@@ -6822,6 +6829,53 @@ exports.birdProperties = [
6822
6829
  },
6823
6830
  ],
6824
6831
  },
6832
+ {
6833
+ displayName: "Webhook",
6834
+ name: "webhook_id",
6835
+ type: "resourceLocator",
6836
+ required: true,
6837
+ default: { mode: "list", value: "" },
6838
+ displayOptions: { show: { resource: ["webhooks"], operation: ["replay"] } },
6839
+ modes: [
6840
+ {
6841
+ displayName: "From List",
6842
+ name: "list",
6843
+ type: "list",
6844
+ placeholder: "Select a Webhook...",
6845
+ typeOptions: { searchListMethod: "webhooksList", searchable: true },
6846
+ },
6847
+ {
6848
+ displayName: "By ID",
6849
+ name: "id",
6850
+ type: "string",
6851
+ },
6852
+ ],
6853
+ description: "ID of the webhook endpoint (`whk_` prefix), as returned when it was created",
6854
+ },
6855
+ {
6856
+ displayName: "Additional Fields",
6857
+ name: "additionalFields",
6858
+ type: "collection",
6859
+ placeholder: "Add Field",
6860
+ default: {},
6861
+ displayOptions: { show: { resource: ["webhooks"], operation: ["replay"] } },
6862
+ options: [
6863
+ {
6864
+ displayName: "Since",
6865
+ name: "since",
6866
+ type: "dateTime",
6867
+ default: "",
6868
+ description: "Replay events whose delivery attempt failed at or after this timestamp. The bound is inclusive and applies to attempt time, not to when the event occurred, so a retry that trailed its event by a day falls in the window by the hour it was attempted. Defaults to 24 hours before the request when omitted. Attempts are retained for three days, so that is the oldest history a replay reaches: an earlier `since` widens the window without recovering anything older.",
6869
+ },
6870
+ {
6871
+ displayName: "Until",
6872
+ name: "until",
6873
+ type: "dateTime",
6874
+ default: "",
6875
+ description: "Replay events whose delivery attempt failed at or before this timestamp, on the same attempt-time bound as `since`. Omitted, it resolves to the time of the request.",
6876
+ },
6877
+ ],
6878
+ },
6825
6879
  {
6826
6880
  displayName: "Webhook",
6827
6881
  name: "webhook_id",
@@ -10079,53 +10133,6 @@ exports.birdProperties = [
10079
10133
  ],
10080
10134
  description: "ID of the Realtime app key (`rak_` prefix), as returned when the key was created",
10081
10135
  },
10082
- {
10083
- displayName: "Webhook",
10084
- name: "webhook_id",
10085
- type: "resourceLocator",
10086
- required: true,
10087
- default: { mode: "list", value: "" },
10088
- displayOptions: { show: { resource: ["webhooks"], operation: ["replay"] } },
10089
- modes: [
10090
- {
10091
- displayName: "From List",
10092
- name: "list",
10093
- type: "list",
10094
- placeholder: "Select a Webhook...",
10095
- typeOptions: { searchListMethod: "webhooksList", searchable: true },
10096
- },
10097
- {
10098
- displayName: "By ID",
10099
- name: "id",
10100
- type: "string",
10101
- },
10102
- ],
10103
- description: "ID of the webhook endpoint (`whk_` prefix), as returned when it was created",
10104
- },
10105
- {
10106
- displayName: "Additional Fields",
10107
- name: "additionalFields",
10108
- type: "collection",
10109
- placeholder: "Add Field",
10110
- default: {},
10111
- displayOptions: { show: { resource: ["webhooks"], operation: ["replay"] } },
10112
- options: [
10113
- {
10114
- displayName: "Since",
10115
- name: "since",
10116
- type: "dateTime",
10117
- default: "",
10118
- description: "Replay events whose delivery attempt failed at or after this timestamp. The bound is inclusive and applies to attempt time, not to when the event occurred, so a retry that trailed its event by a day falls in the window by the hour it was attempted. Defaults to 24 hours before the request when omitted. Attempts are retained for three days, so that is the oldest history a replay reaches: an earlier `since` widens the window without recovering anything older.",
10119
- },
10120
- {
10121
- displayName: "Until",
10122
- name: "until",
10123
- type: "dateTime",
10124
- default: "",
10125
- description: "Replay events whose delivery attempt failed at or before this timestamp, on the same attempt-time bound as `since`. Omitted, it resolves to the time of the request.",
10126
- },
10127
- ],
10128
- },
10129
10136
  {
10130
10137
  displayName: "Message",
10131
10138
  name: "message_id",
@@ -22,7 +22,7 @@ exports.birdRoutes = {
22
22
  "email:stats_by_client": { method: "GET", path: "/v1/email/stats/clients", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["starting_after", "ending_before", "from", "to", "timezone", "category", "group_by", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
23
23
  "email:stats_by_bounce_code": { method: "GET", path: "/v1/email/stats/bounce-codes", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["starting_after", "ending_before", "from", "to", "timezone", "category", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
24
24
  "email:stats_by_complaint_type": { method: "GET", path: "/v1/email/stats/complaint-types", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["starting_after", "ending_before", "from", "to", "timezone", "category", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
25
- "email:stats_by_broadcast": { method: "GET", path: "/v1/email/stats/broadcasts", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["starting_after", "ending_before", "from", "to", "category", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_marketing"] },
25
+ "email:stats_by_broadcast": { method: "GET", path: "/v1/email/stats/broadcasts", pathParams: [], topLevel: [], collections: ["additionalFields", "sort"], query: ["starting_after", "ending_before", "from", "to", "timezone", "category", "sort", "limit"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_marketing"] },
26
26
  "email:templates_list": { method: "GET", path: "/v1/email/templates", pathParams: [], topLevel: [], collections: ["additionalFields"], query: ["scope", "category", "source", "theme", "q", "limit", "starting_after", "ending_before"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["email_management"] },
27
27
  "sms:send": { method: "POST", path: "/v1/sms/messages", pathParams: [], topLevel: ["to"], collections: ["additionalFields"], query: [], body: ["to", "from", "text", "category", "tags", "metadata", "options", "template"], jsonFields: [], structured: { "tags": "list", "metadata": "map", "options": "struct", "template": "struct" }, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["sms"] },
28
28
  "sms:send_batch": { method: "POST", path: "/v1/sms/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: ["sms"] },
@@ -101,6 +101,7 @@ exports.birdRoutes = {
101
101
  "webhooks:test": { method: "POST", path: "/v1/webhooks/{webhook_id}/test", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: ["event_type"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
102
102
  "webhooks:delete": { method: "DELETE", path: "/v1/webhooks/{webhook_id}", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
103
103
  "webhooks:attempts": { method: "GET", path: "/v1/webhooks/{webhook_id}/attempts", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: ["limit", "before", "after"], body: [], jsonFields: [], structured: {}, renames: { "max_results": "limit" }, arrayFields: [], dateTimeFields: ["before", "after"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["webhooks"] },
104
+ "webhooks:replay": { method: "POST", path: "/v1/webhooks/{webhook_id}/replay", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: ["since", "until"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: ["since", "until"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
104
105
  "webhooks:rotate_secret": { method: "POST", path: "/v1/webhooks/{webhook_id}/rotate-secret", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
105
106
  "webhooks:update": { method: "PATCH", path: "/v1/webhooks/{webhook_id}", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["updateFields"], query: [], body: ["url", "description", "events", "status"], jsonFields: [], structured: {}, renames: {}, arrayFields: ["events"], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
106
107
  "workspace:get": { method: "GET", path: "/v1/workspace", pathParams: [], topLevel: [], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: false, scopes: ["workspace"] },
@@ -165,7 +166,6 @@ exports.birdRoutes = {
165
166
  "realtime:apps_keys_create": { method: "POST", path: "/v1/realtime/apps/{realtime_app_id}/keys", pathParams: ["realtime_app_id"], topLevel: ["realtime_app_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["realtime"] },
166
167
  "realtime:apps_keys_revoke": { method: "POST", path: "/v1/realtime/apps/{realtime_app_id}/keys/{realtime_app_key_id}/revoke", pathParams: ["realtime_app_id", "realtime_app_key_id"], topLevel: ["realtime_app_id", "realtime_app_key_id"], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["realtime"] },
167
168
  "realtime:regions_list": { method: "GET", path: "/v1/realtime/regions", pathParams: [], topLevel: [], collections: ["additionalFields"], query: [], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: true, idempotencyHeader: false, scopes: ["realtime"] },
168
- "webhooks:replay": { method: "POST", path: "/v1/webhooks/{webhook_id}/replay", pathParams: ["webhook_id"], topLevel: ["webhook_id"], collections: ["additionalFields"], query: [], body: ["since", "until"], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: ["since", "until"], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["webhooks"] },
169
169
  "email:list_events": { method: "GET", path: "/v1/email/messages/{message_id}/events", pathParams: ["message_id"], topLevel: ["message_id"], collections: ["additionalFields"], query: ["limit", "starting_after", "ending_before", "type"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: true, collection: true, idempotencyHeader: false, scopes: ["emails"] },
170
170
  "email:threads_messages_update": { method: "PATCH", path: "/v1/email/threads/{thread_id}/messages/{message_id}", pathParams: ["thread_id", "message_id"], topLevel: ["thread_id", "message_id"], collections: ["updateFields"], query: [], body: ["labels", "contact_id"], jsonFields: [], structured: { "labels": "struct" }, renames: {}, arrayFields: ["labels.add", "labels.remove"], dateTimeFields: [], nullableFields: ["contact_id"], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox"] },
171
171
  "email:threads_messages_delete": { method: "DELETE", path: "/v1/email/threads/{thread_id}/messages/{message_id}", pathParams: ["thread_id", "message_id"], topLevel: ["thread_id", "message_id"], collections: ["additionalFields"], query: ["permanent"], body: [], jsonFields: [], structured: {}, renames: {}, arrayFields: [], dateTimeFields: [], nullableFields: [], binaryFields: [], rawBodyField: "", paginated: false, collection: false, idempotencyHeader: true, scopes: ["mailbox"] },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messagebird/n8n-nodes-bird",
3
- "version": "0.14.0",
3
+ "version": "0.15.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": {