TrackPost provides powerful features to manage, track, and optimize your transactional emails.
Table of Contents
Feature Overview
Email Templates
Create reusable, dynamic email templates with the Liquid templating engine.
- Liquid Syntax - Powerful templating with variables, conditionals, and loops
- Validation - Automatic template validation and error checking
- Versioning - Track changes and roll back if needed
- MJML Support - Build responsive emails with MJML syntax
Email Tracking
Monitor email performance with comprehensive analytics.
- Open Tracking - See when recipients open emails
- Click Tracking - Track link clicks automatically
- Delivery Status - Real-time delivery, bounce, and complaint tracking
- Analytics Dashboard - Visual reports and metrics
Webhooks
Receive real-time notifications about email events.
- Event Notifications - Instant updates for sends, deliveries, bounces
- Custom Endpoints - Configure your own webhook URLs
- Event Filtering - Subscribe to specific event types
- Secure - Signature verification for webhook authenticity
Quick Feature Comparison
| Feature | Free | Indie | Startup | Growth | Enterprise |
|---|---|---|---|---|---|
| Templates | ✓ | ✓ | ✓ | ✓ | ✓ |
| Open Tracking | ✓ | ✓ | ✓ | ✓ | ✓ |
| Click Tracking | ✓ | ✓ | ✓ | ✓ | ✓ |
| Webhooks | ✓ | ✓ | ✓ | ✓ | ✓ |
| Custom Domain | ✓ | ✓ | ✓ | ✓ | ✓ |
| API Rate Limit | 60/min | 120/min | 300/min | 600/min | 1200/min |
| Monthly Emails | 1,000 | 10,000 | 50,000 | 250,000 | Custom |
All plans include core features. Higher plans offer increased limits.
Common Use Cases
Welcome Emails
Use templates and tracking for user onboarding:
await client.emails.send({
to: user.email,
from: '[email protected]',
template_id: 'welcome_email',
variables: {
user_name: user.name,
onboarding_step: 1
},
track_opens: true,
track_clicks: true
});
Monitor opens to see engagement with your welcome series.
Password Reset
Track link clicks on reset emails:
await client.emails.send({
to: user.email,
from: '[email protected]',
template_id: 'password_reset',
variables: {
reset_url: 'https://yourapp.com/reset?token=abc123',
expiry: '1 hour'
},
track_clicks: true
});
Order Confirmations
Use webhooks to confirm delivery:
// Your webhook endpoint
app.post('/webhooks/trackpost', (req, res) => {
const event = req.body;
if (event.type === 'email.delivered') {
// Update order status
markOrderAsNotified(event.data.email_id);
}
res.status(200).send('OK');
});
Feature Guides
Templates
- Creating and managing templates
- Liquid syntax reference
- Variable validation
- Preview and testing
Tracking
- Enabling open and click tracking
- Analytics dashboard
- Event data and metrics
- Exporting data
Webhooks
- Setting up webhook endpoints
- Event types and payloads
- Security and verification
- Best practices
Next Steps
Ready to dive deeper? Choose a feature to explore: