Audience
Audience
Section titled “Audience”The ResendAudience
resource manages audiences (contact lists) for organizing email recipients. Audiences are used to group contacts for targeted email campaigns and broadcasts.
Example Usage
Section titled “Example Usage”Basic Audience
Section titled “Basic Audience”Create an audience with a name:
import { ResendAudience } from "alchemy/resend";
const audience = await ResendAudience("newsletter-subscribers", { name: "Newsletter Subscribers"});
console.log(`Audience ID: ${audience.id}`);console.log(`Audience Name: ${audience.name}`);console.log(`Created: ${audience.created_at}`);
Audience with Custom API Key
Section titled “Audience with Custom API Key”Create an audience with a custom API key:
const audience = await ResendAudience("premium-users", { name: "Premium Users", apiKey: alchemy.secret(process.env.RESEND_API_KEY)});
Multiple Audiences for Segmentation
Section titled “Multiple Audiences for Segmentation”Create different audiences for different user segments:
const newsletters = await ResendAudience("newsletters", { name: "Newsletter Subscribers"});
const promotions = await ResendAudience("promotions", { name: "Promotional Offers"});
const announcements = await ResendAudience("announcements", { name: "Product Announcements"});
console.log("Created audiences:");console.log(`- ${newsletters.name}: ${newsletters.id}`);console.log(`- ${promotions.name}: ${promotions.id}`);console.log(`- ${announcements.name}: ${announcements.id}`);
Using Audience for Broadcasts
Section titled “Using Audience for Broadcasts”Create an audience and use it for broadcasts:
import { ResendAudience, ResendBroadcast } from "alchemy/resend";
const audience = await ResendAudience("marketing-list", { name: "Marketing List"});
// Use the audience for a broadcastconst broadcast = await ResendBroadcast("weekly-newsletter", { name: "Weekly Newsletter", subject: "This Week's Updates", from: "news@example.com", html: "<h1>Weekly Newsletter</h1><p>Content here...</p>", audience: audience // Pass the audience resource directly});
Properties
Section titled “Properties”Input Properties
Section titled “Input Properties”name
(required): Name of the audience for identification and organizationapiKey
(optional): API key for authentication. Falls back toRESEND_API_KEY
environment variablebaseUrl
(optional): Custom API base URL. Defaults to"https://api.resend.com"
Output Properties
Section titled “Output Properties”All input properties, plus:
id
: The unique identifier for the audiencecreated_at
: Timestamp when the audience was created
Updating Audiences
Section titled “Updating Audiences”You can update an audience’s name:
// Initial creationlet audience = await ResendAudience("user-group", { name: "Beta Users"});
// Update the nameaudience = await ResendAudience("user-group", { name: "Premium Beta Users"});
console.log(`Updated name: ${audience.name}`);
Audience Management Best Practices
Section titled “Audience Management Best Practices”Descriptive Naming
Section titled “Descriptive Naming”Use clear, descriptive names that indicate the audience purpose:
const audiences = [ await ResendAudience("weekly-newsletter", { name: "Weekly Newsletter Subscribers" }), await ResendAudience("product-updates", { name: "Product Update Notifications" }), await ResendAudience("security-alerts", { name: "Security Alert Recipients" })];
Segmentation Strategy
Section titled “Segmentation Strategy”Create audiences based on user behavior and preferences:
// Geographic segmentationconst usUsers = await ResendAudience("us-users", { name: "United States Users"});
const euUsers = await ResendAudience("eu-users", { name: "European Users"});
// Engagement segmentationconst activeUsers = await ResendAudience("active-users", { name: "Active Users (30 days)"});
const dormantUsers = await ResendAudience("dormant-users", { name: "Dormant Users (90+ days)"});
Compliance and Privacy
Section titled “Compliance and Privacy”Create audiences with privacy considerations in mind:
const gdprAudience = await ResendAudience("gdpr-subscribers", { name: "GDPR Compliant Newsletter (EU)"});
const optInAudience = await ResendAudience("double-opt-in", { name: "Double Opt-in Confirmed Subscribers"});
Integration with Contact Management
Section titled “Integration with Contact Management”While the audience resource creates the container for contacts, you’ll typically manage contacts through the Resend API or dashboard:
const audience = await ResendAudience("app-users", { name: "Application Users"});
console.log(`Audience created: ${audience.id}`);console.log(`Add contacts via Resend API or dashboard`);console.log(`Audience URL: https://resend.com/audiences/${audience.id}`);
Important Notes
Section titled “Important Notes”- Contact Management: Audiences are containers; contacts are managed separately via Resend API
- Naming: Use descriptive names to easily identify audience purposes
- Updates: Only the audience name can be updated; the ID remains constant
- Deletion: Deleting an audience will also remove all associated contacts
- Broadcast Targeting: Audiences are the primary way to target broadcasts to specific groups