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 Variablen firstName, dashboardUrl und trialDaysLeft enthä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