Zum Hauptinhalt springen

Einführung

Templates sind wesentliche Komponenten der Lovi API, die es ermöglichen, standardisierte und personalisierte Nachrichten für WhatsApp-Kommunikationen zu erstellen. Diese Anleitung deckt alle Operationen im Zusammenhang mit der Template-Verwaltung ab.

📋 Verfügbare Templates abrufen

Alle Templates abrufen, die für Ihr Unternehmen und Ihre Telefonnummer verfügbar sind.

Endpunkt

GET https://cloud.lovi.ai/functions/v1/notify/templates?access_key={YOUR_ACCESS_KEY}&phone_number={PHONE_NUMBER}

Abfrageparameter

ParameterErforderlichBeschreibung
access_keyJaIhr eindeutiger API-Zugriffsschlüssel.
phone_numberJaTelefonnummer zur Filterung der Templates (ohne ’+’).
Beispielanfrage:
GET https://cloud.lovi.ai/functions/v1/notify/templates?access_key=your-api-key&phone_number=34666033135

Antwort

Die API gibt ein Array von Template-Objekten zurück (nicht in einem Objekt verpackt).
[
  {
    "id": "696796403510039",
    "name": "welcome_message",
    "status": "APPROVED",
    "category": "MARKETING",
    "language": "en",
    "components": [
      {
        "text": "Welcome! This is a test message.",
        "type": "BODY"
      }
    ],
    "parameter_format": "POSITIONAL"
  }
]
Wichtige Hinweise:
  • Templates werden nach Telefonnummer gefiltert
  • Nur genehmigte Templates werden zurückgegeben
  • Die Antwort ist ein direktes Array ohne Schlüssel-Wrapper

📝 Templates erstellen

Template-Struktur

Basis-Template:
{
  "name": "welcome_user",
  "language": "de_DE",
  "content": "Hallo {{name}}! Willkommen bei {{company}}. Wie können wir Ihnen helfen?",
  "variables": ["name", "company"],
  "category": "UTILITY"
}
Template mit Bild:
{
  "name": "promo_with_image",
  "language": "de_DE",
  "content": "Schauen Sie sich unser Sonderangebot an!",
  "components": [
    {
      "type": "HEADER",
      "format": "IMAGE",
      "example": {
        "header_handle": ["https://example.com/image.jpg"]
      }
    },
    {
      "text": "Vielen Dank, dass Sie uns wählen!",
      "type": "FOOTER"
    }
  ],
  "category": "MARKETING"
}

Genehmigungsprozess

Template-Status:
StatusBeschreibungVerfügbare Aktionen
draftTemplate im EntwurfBearbeiten, zur Genehmigung einreichen
pendingWartet auf GenehmigungBearbeiten, Status prüfen
approvedGenehmigt und verwendbarIn Benachrichtigungen verwenden
rejectedAbgelehntBearbeiten und erneut einreichen

Variablenvalidierung

Variablen prüfen:
function validateTemplateVariables(content, providedVariables) {
  const requiredVars = extractVariables(content); // {{var}} aus Inhalt extrahieren
  const providedVars = Object.keys(providedVariables);
  
  const missing = requiredVars.filter(v => !providedVars.includes(v));
  const extra = providedVars.filter(v => !requiredVars.includes(v));
  
  if (missing.length > 0) {
    throw new Error(`Fehlende Variablen: ${missing.join(', ')}`);
  }
  
  if (extra.length > 0) {
    console.warn(`Zusätzliche Variablen bereitgestellt: ${extra.join(', ')}`);
  }
}

🎯 Templates verwenden

Einfache Benachrichtigung senden

Mit genehmigtem Template:
await loviService.sendNotification({
  contact: { number: "34666033135" },
  template: "welcome_user",
  variables: {
    name: "Hans",
    company: "TechCorp"
  }
});

Benachrichtigungen planen

Geplante Sendung:
await loviService.sendNotification({
  contact: { number: "34666033135" },
  template: "appointment_reminder",
  variables: {
    name: "Hans",
    date: "25 Dezember",
    time: "10:00"
  },
  datetime_sending: "2024-12-24T20:00:00Z" // Am Vorabend
});

Template-Kategorien

Unterstützte Kategorien:
  • MARKETING: Werbung, Ankündigungen, Sonderangebote
  • UTILITY: Bestätigungen, Updates, Belege
  • AUTHENTICATION: Bestätigungscodes, Sicherheit

Mehrsprachige Unterstützung

Template auf Deutsch:
await loviService.createTemplate({
  name: "welcome_user",
  language: "de_DE",
  content": "Hallo {{name}}! Willkommen bei {{company}}."
});
Template auf Englisch:
await loviService.createTemplate({
  name: "welcome_user", 
  language: "en_US",
  content": "Hello {{name}}! Welcome to {{company}}."
});

📊 Template-Analytik

Leistungsmetriken

Nutzungsstatistiken:
const stats = await loviService.getTemplateStats("welcome_user");
// Gibt zurück: Zustellungen, Öffnungen, Klicks usw.
Berichte nach Zeitraum:
const report = await loviService.getTemplateReport({
  template: "welcome_user",
  start_date: "2024-01-01",
  end_date: "2024-01-31"
});

⚠️ Einschränkungen und Überlegungen

Template-Einschränkungen

  • Inhaltslänge: Max 1024 Zeichen
  • Variablen: Max 20 pro Template
  • Templates pro Konto: 100 aktive gleichzeitig
  • Erstellungsrate: 10 Templates pro Tag

Best Practices

Template-Namen:
// ✅ Gute Namen
"welcome_user"
"order_confirmation" 
"appointment_reminder"

// ❌ Zu vermeidende Namen  
"template1"
"new_template_2024"
"test"
Template-Inhalt:
// ✅ Klar und prägnant
"Hallo {{name}}, Ihr Termin ist für {{date}} um {{time}} bestätigt."

// ❌ Zu lang oder verwirrend
"Sehr geehrter Kunde {{name}}, wir freuen uns, Ihnen mitteilen zu können, dass Ihre Buchung bei unserem Unternehmen für den gewünschten Service korrekt in unserem System für das Datum des {{date}} mit der vorgesehenen Uhrzeit von {{time}} Uhr registriert wurde. Wir bitten Sie, 15 Minuten vor der festgelegten Uhrzeit zu erscheinen."

Sicherheit

Eingabebereinigung:
function sanitizeVariables(variables) {
  const sanitized = {};
  for (const [key, value] of Object.entries(variables)) {
    // Potenziell gefährliche Zeichen entfernen
    sanitized[key] = String(value).replace(/[<>]/g, '');
  }
  return sanitized;
}
Templates sind entscheidend für effektive WhatsApp-Kommunikation. Befolgen Sie diese Richtlinien, um die Wirkung Ihrer Kommunikationskampagnen zu maximieren.