Willkommens-E-Mail
Versenden Sie eine personalisierte Willkommens-E-Mail, wenn sich ein neuer Benutzer registriert.
Versenden Sie eine personalisierte Willkommens-E-Mail, wenn sich ein neuer Benutzer registriert.
Voraussetzungen
- Ein veröffentlichtes transaktionales Template mit dem Slug
welcome, das die VariablenfirstName,dashboardUrlundtrialDaysLeftenthält - Ein API-Schlüssel mit Berechtigungen für den transaktionalen Versand
Die E-Mail versenden
import { Owlat } from '@owlat/sdk-js'
const owlat = new Owlat('lm_live_...')
const result = await owlat.transactional.send({
slug: 'welcome',
email: 'mira@acme.io',
dataVariables: {
firstName: 'Mira',
dashboardUrl: 'https://app.acme.io/dashboard',
trialDaysLeft: '14',
},
})
console.log(result.status) // "queued"
curl -X POST https://your-deployment.convex.site/api/v1/transactional \
-H "Authorization: Bearer lm_live_..." \
-H "Content-Type: application/json" \
-d '{
"slug": "welcome",
"email": "mira@acme.io",
"dataVariables": {
"firstName": "Mira",
"dashboardUrl": "https://app.acme.io/dashboard",
"trialDaysLeft": "14"
}
}'
Fehlerbehandlung
Kapseln Sie den Sendeaufruf, um gängige Fehlerfälle abzufangen:
import { Owlat, ValidationError, RateLimitError } from '@owlat/sdk-js'
const owlat = new Owlat('lm_live_...')
async function sendWelcomeEmail(email: string, firstName: string) {
try {
const result = await owlat.transactional.send({
slug: 'welcome',
email,
dataVariables: {
firstName,
dashboardUrl: `https://app.acme.io/dashboard`,
trialDaysLeft: '14',
},
})
return result
} catch (error) {
if (error instanceof ValidationError) {
console.error('Invalid request:', error.message)
} else if (error instanceof RateLimitError) {
console.error('Rate limited — retry with backoff')
} else {
throw error
}
}
}
Vollständiger Route-Handler
Ein vollständiger Handler im Express-/Hono-Stil, der die Willkommens-E-Mail nach der Benutzeranlage versendet:
import { Hono } from 'hono'
import { Owlat } from '@owlat/sdk-js'
const app = new Hono()
const owlat = new Owlat(process.env.OWLAT_API_KEY!)
app.post('/api/signup', async (c) => {
const { email, firstName } = await c.req.json()
// 1. Create user in your database
const user = await db.users.create({ email, firstName })
// 2. Send the welcome email
await owlat.transactional.send({
slug: 'welcome',
email,
dataVariables: {
firstName,
dashboardUrl: `https://app.acme.io/dashboard/${user.id}`,
trialDaysLeft: '14',
},
})
return c.json({ userId: user.id })
})
Nächste Schritte
- Rechnungs-E-Mail — Anhänge zu transaktionalen E-Mails hinzufügen
- Event-Automatisierung — parallel zur Willkommens-E-Mail ein
trial_started-Event auslösen - Referenz zur Transactional-API — vollständige Dokumentation zu Request und Response