n8n-nodes-resend 1.0.6 → 1.0.8

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
@@ -2,12 +2,17 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- This package provides n8n nodes to interact with the Resend email platform. It allows you to:
5
+ This package provides comprehensive n8n nodes to interact with the Resend email platform. It allows you to:
6
6
 
7
- * Send emails using the Resend API.
8
- * Receive and process webhook events from Resend for various email activities.
7
+ * **Email Operations:** Send, get, update, and cancel emails
8
+ * **Contact Management:** Create, get, update, and delete contacts in audiences
9
+ * **Audience Management:** Create, get, update, and delete audiences
10
+ * **Domain Management:** Create, get, update, verify, and delete domains
11
+ * **API Key Management:** Create and delete API keys
12
+ * **Broadcast Management:** Create, get, and update email broadcasts
13
+ * **Webhook Processing:** Receive and process webhook events from Resend
9
14
 
10
- This integration uses the official [Resend API](https://resend.com/docs/api-reference/introduction).
15
+ This integration uses the official [Resend API](https://resend.com/docs/api-reference/introduction) and provides full coverage of all available endpoints.
11
16
 
12
17
  ## Prerequisites/Setup
13
18
 
@@ -30,12 +35,13 @@ To use these nodes, you need to configure the "Resend API" credentials in n8n:
30
35
  ### Resend Action Node
31
36
 
32
37
  * **Name:** `Resend`
33
- * **Description:** Allows sending emails and performing other Resend actions (currently, only sending email is implemented).
38
+ * **Description:** Comprehensive Resend API integration supporting all major operations including emails, contacts, audiences, domains, API keys, and broadcasts.
34
39
 
35
- #### Operations
40
+ #### Resources and Operations
36
41
 
37
- ##### Send Email
42
+ ##### Email Operations
38
43
 
44
+ ###### Send Email
39
45
  * **Description:** Sends an email using the Resend API.
40
46
  * **Parameters:**
41
47
  * **Email Format**: Choose between HTML, Text, or Both formats for your email content.
@@ -51,6 +57,156 @@ To use these nodes, you need to configure the "Resend API" credentials in n8n:
51
57
  * **Text Content (Fallback)**: Plain text version for HTML-only emails (recommended for better deliverability).
52
58
  * **Tags**: (Collection, Optional) A list of tags (name/value pairs) to categorize the email (e.g., `[{ "name": "category", "value": "transactional" }]`).
53
59
 
60
+ ###### Get Email
61
+ * **Description:** Retrieves information about a specific email by ID.
62
+ * **Parameters:**
63
+ * **Email ID**: (String, Required) The unique identifier of the email to retrieve.
64
+
65
+ ###### Update Email
66
+ * **Description:** Updates an email (e.g., to schedule it for later delivery).
67
+ * **Parameters:**
68
+ * **Email ID**: (String, Required) The unique identifier of the email to update.
69
+ * **Scheduled At**: (String, Optional) Schedule email to be sent later in ISO 8601 format.
70
+
71
+ ###### Cancel Email
72
+ * **Description:** Cancels a scheduled email before it's sent.
73
+ * **Parameters:**
74
+ * **Email ID**: (String, Required) The unique identifier of the email to cancel.
75
+
76
+ ##### Contact Operations
77
+
78
+ ###### Create Contact
79
+ * **Description:** Creates a new contact in an audience.
80
+ * **Parameters:**
81
+ * **Audience ID**: (String, Required) The audience to add the contact to.
82
+ * **Email**: (String, Required) The contact's email address.
83
+ * **Additional Fields**: (Collection, Optional) Additional contact information:
84
+ * **First Name**: Contact's first name.
85
+ * **Last Name**: Contact's last name.
86
+ * **Unsubscribed**: Whether the contact is unsubscribed.
87
+
88
+ ###### Get Contact
89
+ * **Description:** Retrieves information about a specific contact.
90
+ * **Parameters:**
91
+ * **Audience ID**: (String, Required) The audience containing the contact.
92
+ * **Contact ID**: (String, Required) The unique identifier of the contact.
93
+
94
+ ###### Update Contact
95
+ * **Description:** Updates an existing contact's information.
96
+ * **Parameters:**
97
+ * **Audience ID**: (String, Required) The audience containing the contact.
98
+ * **Update By**: (Options, Required) Whether to update by Contact ID or Email address.
99
+ * **Contact Identifier**: (String, Required) Either the contact ID or email address.
100
+ * **Additional Fields**: (Collection, Optional) Fields to update:
101
+ * **First Name**: Updated first name.
102
+ * **Last Name**: Updated last name.
103
+ * **Unsubscribed**: Updated subscription status.
104
+
105
+ ###### Delete Contact
106
+ * **Description:** Removes a contact from an audience.
107
+ * **Parameters:**
108
+ * **Audience ID**: (String, Required) The audience containing the contact.
109
+ * **Contact ID**: (String, Required) The unique identifier of the contact to delete.
110
+
111
+ ###### List Contacts
112
+ * **Description:** Retrieves all contacts in an audience.
113
+ * **Parameters:**
114
+ * **Audience ID**: (String, Required) The audience to list contacts from.
115
+
116
+ ##### Audience Operations
117
+
118
+ ###### Create Audience
119
+ * **Description:** Creates a new audience for organizing contacts.
120
+ * **Parameters:**
121
+ * **Audience Name**: (String, Required) The name of the audience.
122
+
123
+ ###### Get Audience
124
+ * **Description:** Retrieves information about a specific audience.
125
+ * **Parameters:**
126
+ * **Audience ID**: (String, Required) The unique identifier of the audience.
127
+
128
+ ###### List Audiences
129
+ * **Description:** Retrieves all audiences in your account.
130
+
131
+ ###### Delete Audience
132
+ * **Description:** Deletes an audience and all its contacts.
133
+ * **Parameters:**
134
+ * **Audience ID**: (String, Required) The unique identifier of the audience to delete.
135
+
136
+ ##### Domain Operations
137
+
138
+ ###### Create Domain
139
+ * **Description:** Adds a new domain to your Resend account.
140
+ * **Parameters:**
141
+ * **Domain Name**: (String, Required) The domain name to add (e.g., `example.com`).
142
+ * **Region**: (Options, Optional) The region for the domain (us-east-1, eu-west-1, etc.).
143
+
144
+ ###### Get Domain
145
+ * **Description:** Retrieves information about a specific domain.
146
+ * **Parameters:**
147
+ * **Domain ID**: (String, Required) The unique identifier of the domain.
148
+
149
+ ###### Update Domain
150
+ * **Description:** Updates domain configuration settings.
151
+ * **Parameters:**
152
+ * **Domain ID**: (String, Required) The unique identifier of the domain.
153
+ * **Domain Update Options**: (Collection, Optional) Settings to update:
154
+ * **Click Tracking**: Whether to track clicks in emails.
155
+ * **Open Tracking**: Whether to track email opens.
156
+ * **TLS**: TLS enforcement setting (Opportunistic or Enforced).
157
+
158
+ ###### Verify Domain
159
+ * **Description:** Initiates domain verification process.
160
+ * **Parameters:**
161
+ * **Domain ID**: (String, Required) The unique identifier of the domain to verify.
162
+
163
+ ###### List Domains
164
+ * **Description:** Retrieves all domains in your account.
165
+
166
+ ###### Delete Domain
167
+ * **Description:** Removes a domain from your account.
168
+ * **Parameters:**
169
+ * **Domain ID**: (String, Required) The unique identifier of the domain to delete.
170
+
171
+ ##### API Key Operations
172
+
173
+ ###### Create API Key
174
+ * **Description:** Creates a new API key with specified permissions.
175
+ * **Parameters:**
176
+ * **API Key Name**: (String, Required) The name for the new API key.
177
+ * **Permission**: (Options, Required) The permission level (full_access or sending_access).
178
+ * **Domain ID**: (String, Optional) Required when permission is sending_access - restricts the key to a specific domain.
179
+
180
+ ###### Delete API Key
181
+ * **Description:** Revokes an existing API key.
182
+ * **Parameters:**
183
+ * **API Key ID**: (String, Required) The unique identifier of the API key to delete.
184
+
185
+ ##### Broadcast Operations
186
+
187
+ ###### Create Broadcast
188
+ * **Description:** Creates a new email broadcast campaign.
189
+ * **Parameters:**
190
+ * **Broadcast Content**: (Collection, Required) The broadcast content and settings:
191
+ * **Audience ID**: The audience to send the broadcast to.
192
+ * **From**: Sender email address.
193
+ * **HTML Content**: HTML version of the email.
194
+ * **Name**: Internal name for the broadcast.
195
+ * **Reply To**: Reply-to email address.
196
+ * **Subject**: Email subject line.
197
+ * **Text Content**: Plain text version of the email.
198
+
199
+ ###### Get Broadcast
200
+ * **Description:** Retrieves information about a specific broadcast.
201
+ * **Parameters:**
202
+ * **Broadcast ID**: (String, Required) The unique identifier of the broadcast.
203
+
204
+ ###### Update Broadcast
205
+ * **Description:** Updates an existing broadcast.
206
+ * **Parameters:**
207
+ * **Broadcast ID**: (String, Required) The unique identifier of the broadcast.
208
+ * **Broadcast Content**: (Collection, Optional) Fields to update (same as create operation).
209
+
54
210
  ### Resend Trigger Node
55
211
 
56
212
  * **Name:** `Resend Trigger`
@@ -107,13 +263,88 @@ The trigger node outputs the complete JSON payload sent by Resend for the config
107
263
 
108
264
  ## Example Usage
109
265
 
110
- * **Resend Action Node:**
111
- * _Scenario:_ When a new user signs up in your application (e.g., via a webhook from your backend or a database trigger), use the `Resend` node to send them a personalized welcome email.
112
- * **Resend Trigger Node:**
113
- * _Scenario:_ When an `email.bounced` event is received, you could have a workflow that:
114
- 1. Parses the bounced email address from the trigger output.
115
- 2. Updates a contact record in your CRM to mark the email as invalid.
116
- 3. Notifies your support team about the bounce.
266
+ ### Resend Action Node Examples
267
+
268
+ #### Email Operations
269
+ * **Send Welcome Email:** When a new user signs up, send a personalized welcome email with HTML formatting and tracking.
270
+ * **Schedule Marketing Email:** Create and schedule promotional emails to be sent at optimal times.
271
+ * **Cancel Scheduled Email:** Cancel emails that are no longer relevant before they're sent.
272
+
273
+ #### Contact Management
274
+ * **Newsletter Signup:** When users subscribe to your newsletter, create contacts in your audience with their preferences.
275
+ * **Update Contact Preferences:** Update contact information when users modify their profile or preferences.
276
+ * **Clean Contact Lists:** Remove bounced or unsubscribed contacts to maintain list hygiene.
277
+
278
+ #### Audience Segmentation
279
+ * **Create Targeted Audiences:** Organize contacts into specific audiences based on behavior, location, or preferences.
280
+ * **Manage Multiple Lists:** Maintain separate audiences for different product lines or customer segments.
281
+
282
+ #### Domain Management
283
+ * **Add New Domains:** Set up new sending domains when expanding to new brands or regions.
284
+ * **Configure Tracking:** Enable click and open tracking to measure email engagement.
285
+ * **Domain Verification:** Automate domain verification workflows for new domains.
286
+
287
+ #### API Key Management
288
+ * **Provision Access:** Create limited API keys for third-party integrations or team members.
289
+ * **Rotate Keys:** Regularly delete and recreate API keys for security compliance.
290
+
291
+ #### Broadcast Campaigns
292
+ * **Newsletter Campaigns:** Create and send newsletters to your entire audience.
293
+ * **Product Announcements:** Send targeted broadcasts about new features or products.
294
+ * **Event Invitations:** Create and manage event invitation campaigns.
295
+
296
+ ### Resend Trigger Node Examples
297
+ ### Resend Trigger Node Examples
298
+
299
+ #### Email Event Automation
300
+ * **Bounce Handling:** When an `email.bounced` event is received:
301
+ 1. Parse the bounced email address from the trigger output
302
+ 2. Update the contact record in your CRM to mark the email as invalid
303
+ 3. Move the contact to a "bounced" audience
304
+ 4. Notify your support team about the bounce
305
+
306
+ * **Engagement Tracking:** When `email.opened` or `email.clicked` events occur:
307
+ 1. Update customer engagement scores in your database
308
+ 2. Trigger follow-up email sequences based on engagement
309
+ 3. Add engaged contacts to VIP audiences
310
+
311
+ * **Delivery Monitoring:** When `email.delivery_delayed` events happen:
312
+ 1. Log delivery issues for monitoring
313
+ 2. Retry sending through alternative channels if needed
314
+ 3. Alert administrators about potential delivery problems
315
+
316
+ #### Contact Event Automation
317
+ * **Contact Lifecycle Management:** When `contact.created`, `contact.updated`, or `contact.deleted` events occur:
318
+ 1. Sync contact changes with your CRM or database
319
+ 2. Update customer profiles in your application
320
+ 3. Trigger welcome sequences for new contacts
321
+
322
+ #### Domain Event Automation
323
+ * **Domain Management:** When `domain.created`, `domain.updated`, or `domain.deleted` events happen:
324
+ 1. Update your internal domain registry
325
+ 2. Configure DNS settings automatically
326
+ 3. Notify team members about domain changes
327
+
328
+ ## Advanced Features
329
+
330
+ ### Variable Support in Broadcasts
331
+ Broadcasts support dynamic content using variables like:
332
+ * `{{{FIRST_NAME|there}}}` - Personalize with first name, fallback to "there"
333
+ * `{{{RESEND_UNSUBSCRIBE_URL}}}` - Automatic unsubscribe link
334
+ * `{{{COMPANY_NAME}}}` - Company name from contact data
335
+
336
+ ### Error Handling
337
+ All operations include comprehensive error handling with descriptive messages for common issues like:
338
+ * Invalid email addresses
339
+ * Missing required fields
340
+ * API rate limits
341
+ * Authentication failures
342
+ * Domain verification issues
343
+
344
+ ### Security Features
345
+ * **Webhook Signature Verification:** All webhooks are verified using Svix for security
346
+ * **API Key Scoping:** Create limited-scope API keys for specific domains or operations
347
+ * **TLS Enforcement:** Configure domains with enforced TLS for secure email delivery
117
348
 
118
349
  ## License
119
350