
Common Use Cases
Key Features
Automatic Contact Management
- Contact Upsert: Contacts are automatically created or updated before sending
- Profile Enrichment: Template data is automatically merged with existing contact profile information
- Data Consistency: Ensures contact information is always current
Template Data Enrichment
When you send a transactional email, Notifuse automatically:- Looks up the contact by email address in your workspace
- Merges your API data with the existing contact profile
- Enriches the template with the complete contact information
- Sends the personalized email with all available data
{"order_id": "12345"} but the contact profile contains {"first_name": "John", "last_name": "Doe"}, the template will have access to both the order data and the contact’s full profile.
Deduplication with External ID
- Prevent Duplicates: Use
external_idto prevent sending the same notification multiple times - Idempotent Requests: Notifications with the same
external_idwill only be sent once - Custom Identifiers: Use your own unique identifiers (order IDs, event IDs, etc.)
external_id: "order-12345" ensures that even if your system sends the same order confirmation multiple times, the email will only be delivered once.
Email Delivery Options
Configure email routing with flexible options:- Reply-To: Set custom reply-to addresses
- CC: Add carbon copy recipients
- BCC: Include blind carbon copy recipients
- Attachments: Attach files to emails (PDFs, images, documents, etc.)
API Endpoint
Send transactional emails using a simple POST request:Request
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workspace_id | string | Yes | Your workspace identifier |
notification.id | string | Yes | Template identifier for the email |
notification.external_id | string | No | Unique identifier for deduplication |
notification.channels | array | Yes | Must include “email” |
notification.contact | object | Yes | Contact object with at least an email field |
notification.data | object | No | Template variables for email content |
notification.metadata | object | No | Tracking data (not available in templates) |
notification.email_options | object | No | Email routing configuration |
Email Options
| Parameter | Type | Description |
|---|---|---|
reply_to | string | Set custom reply-to email address |
cc | array | List of carbon copy recipients |
bcc | array | List of blind carbon copy recipients |
attachments | array | File attachments (max 20 files, 3MB per file, 10MB total) |
Data vs Metadata
Template Variables (data)
The data object contains variables that will be available in your email templates:
{{ order_id }}, {{ total }}, {{ discount_code }}
Tracking Data (metadata)
The metadata object stores information for analytics and tracking but is not available in templates:
Email Attachments
Send files with your transactional emails such as invoices, receipts, tickets, or documents. Attachments are automatically deduplicated and stored efficiently.Attachment Limits
- Maximum files: 20 attachments per email
- File size: 3MB per file
- Total size: 10MB per email
- Supported formats: All file types (PDF, PNG, JPEG, DOCX, etc.)
Attachment Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
filename | string | Yes | Name of the file (max 255 characters) |
content | string | Yes | Base64-encoded file content |
content_type | string | No | MIME type (e.g., “application/pdf”), auto-detected if not provided |
disposition | string | No | ”attachment” (default) or “inline” |
Example with PDF Invoice
Example with Multiple Attachments
Common Use Cases
- Order Confirmations: Attach invoices and receipts
- Booking Confirmations: Attach tickets and itineraries
- Legal Documents: Attach contracts and agreements
- Reports: Attach analytics reports and summaries
- Certificates: Attach completion certificates and badges
SMTP Relay
Notifuse includes a built-in SMTP relay server that allows you to send transactional emails using standard SMTP clients instead of HTTP API calls. This is particularly useful when:- Legacy Systems: Integrating with existing applications that only support SMTP
- Email Libraries: Using standard email libraries in any programming language
- Framework Integration: Working with frameworks that have built-in SMTP support
- Gradual Migration: Moving from existing email providers without changing application code
How It Works
The SMTP relay server accepts emails via SMTP with TLS encryption on port 587. The email body must contain a JSON payload matching the Transactional API format. Authentication is done using your workspace API credentials.Sending Emails via SMTP
Authentication
- Username: Your workspace API email (the email associated with your API key)
- Password: Your workspace API key
- Security: STARTTLS (port 587)
- Server: Your configured SMTP relay host (e.g.,
smtp.yourdomain.com)
Email Format
The email body must be a JSON payload matching the Transactional API format:Template Integration
Data Structure in Templates
Your templates have access to both API data and contact profile:Complete Example
API Request:API Reference
Deduplication Examples
Order Confirmations
Password Resets
Welcome Emails
external_id patterns ensures that duplicate notifications are automatically prevented, even if your application sends multiple requests.
For complete API documentation and additional parameters, see the API Reference.