WhatsApp Templates API
WhatsApp-Nachrichtenvorlagen sind vorformulierte Nachrichten, die für den Versand außerhalb des normalen 24-Stunden-Konversationsfensters genehmigt wurden – zum Beispiel eine Willkommensnachricht, eine Terminerinnerung oder ein Impuls zur erneuten Interaktion. Diese API ermöglicht es Ihnen, Vorlagen programmgesteuert aufzulisten, zu erstellen, zu bearbeiten, einzureichen, zu überprüfen, zu löschen und zu versenden.
Alle unten aufgeführten Pfade sind relativ zur API-Basis-URL:
https://api.youraiconnector.com/v1
Jede Anfrage muss authentifiziert sein. Siehe Authentifizierung für die vier akzeptierten Methoden. Die Beispiele auf dieser Seite verwenden den X-API-Key-Header (und eine Abfrageparameter-Form für cURL).
Hinweis: Vorlagen basieren auf dem WhatsApp Business API-Kanal. Daher erfordert dieser Teil der API sowohl API-Zugriff als auch einen Plan, der WhatsApp-Kanäle beinhaltet. Ohne diese werden Anfragen mit einem 403 abgelehnt.
Arbeiten mit Unterkonten (Agenturen)
Genehmigungsstatus
Da Nachrichten, die außerhalb einer offenen Konversation gesendet werden, zuerst von WhatsApp überprüft werden müssen, trägt jede Vorlage einen Genehmigungs-status:
| Status | Bedeutung |
|---|---|
draft |
Erstellt oder gespeichert, aber noch nicht zur Überprüfung eingereicht. Sie können sie noch bearbeiten. |
received |
Eingereicht und in die Überprüfungswarteschlange aufgenommen. |
pending |
In Überprüfung. |
approved |
Zum Versand freigegeben. |
rejected |
Abgelehnt. Das Feld rejection_reason erklärt den Grund; korrigieren Sie es und reichen Sie es dann erneut ein. |
Nur draft- und rejected-Vorlagen können bearbeitet oder (erneut) eingereicht werden. Sobald eine Vorlage approved ist, ist sie gesperrt – erstellen Sie eine neue, falls Sie Änderungen benötigen.
Automatische Genehmigung: Einige Kanäle erfordern keinen externen Überprüfungsschritt. Vorlagen, die für eine Kampagne auf einem solchen Kanal erstellt oder eingereicht werden, werden sofort als
approvedgespeichert, ohne Inhalts-ID (sid).
Vorlagen für Meta-verbundene Konten
Diese Endpunkte funktionieren auf die gleiche Weise, unabhängig davon, welche WhatsApp-Verbindung Ihr Konto verwendet, aber die Vorgänge im Hintergrund unterscheiden sich:
- Bei einer verwalteten WhatsApp-Verbindung werden Vorlagen beim Messaging-Anbieter registriert und
sidist die Inhalts-ID des Anbieters (HXXXXXXXX…). - Bei einem Konto, dessen Nummer über ein eigenes WhatsApp Business-Konto läuft (beide Meta-Verbindungsoptionen), werden Vorlagen in diesem WhatsApp Business-Konto erstellt und geprüft, und
sidist die eigene Vorlagen-ID von Meta – eine numerische Zeichenfolge wie"3394843740694756".statusverwendet weiterhin die Werte in der obigen Tabelle, undrejection_reasonenthält weiterhin die Erläuterung von Meta.
Dafür gibt es zwei zusätzliche Endpunkte: einen, um abzufragen, welche Verbindung Sie nutzen, und einen, um Ihre Vorlagenliste mit Ihrem WhatsApp Business-Konto abzugleichen. Vorlagen, die bereits im WhatsApp Business-Konto vorhanden sind, werden durch die Synchronisierung in Ihre Bibliothek importiert, sodass ein anschließender GET /whatsapp-templates sie wie jede andere Vorlage auflistet.
Überprüfen, über welche Verbindung Vorlagen laufen
GET /whatsapp-templates/provider
| Feld | Beschreibung |
|---|---|
provider |
twilio, wenn Vorlagen beim verwalteten Messaging-Anbieter registriert sind, meta, wenn sie in Ihrem eigenen WhatsApp Business-Konto liegen. |
lane |
Welche Meta-Verbindung verwendet wird – meta_cloud_api (Ihre eigene Meta-App) oder meta_embedded (verbunden über unsere Meta-App). null bei einer verwalteten Verbindung. |
waba_id |
Das WhatsApp Business-Konto, in dem die Vorlagen erstellt werden, oder null. |
templates_enabled |
false, wenn die Meta-Verbindung noch nicht abgeschlossen ist (kein WhatsApp Business-Konto oder Zugriffstoken gespeichert). Das Erstellen oder Einreichen von Vorlagen schlägt bis dahin mit einem 400 fehl. |
cURL
curl "https://api.youraiconnector.com/v1/whatsapp-templates/provider?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/whatsapp-templates/provider", {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/whatsapp-templates/provider",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"provider": "meta",
"lane": "meta_cloud_api",
"waba_id": "2357661648036355",
"templates_enabled": true
}
Vorlagen von Meta synchronisieren
Aktualisiert den Genehmigungsstatus jeder Vorlage, die in Ihrem WhatsApp Business-Konto vorhanden ist, und importiert jede Vorlage, die dort existiert, aber noch nicht in Ihrer Bibliothek enthalten ist. Kann bedenkenlos so oft aufgerufen werden, wie Sie möchten. Bei einer verwalteten Verbindung gibt es nichts zu synchronisieren, daher bewirkt der Aufruf nichts und meldet lediglich, wie viele Vorlagen Sie haben.
POST /whatsapp-templates/meta-sync
| Feld | Beschreibung |
|---|---|
imported |
Vorlagen, die im WhatsApp Business-Konto gefunden und durch diesen Aufruf zu Ihrer Bibliothek hinzugefügt wurden. |
updated |
Bestehende Vorlagen, deren Status oder Details sich geändert haben. |
total |
Vorlagen in Ihrer Bibliothek nach der Synchronisierung. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/meta-sync?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/whatsapp-templates/meta-sync", {
method: "POST",
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/meta-sync",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"provider": "meta",
"imported": 2,
"updated": 5,
"total": 12
}
Direkte Kommunikation mit Meta (fortgeschritten)
Wenn Sie etwas benötigen, das die oben genannten Endpunkte nicht bereitstellen – Vorlagen-Header, -Footer, -Buttons oder eine vollständig manuell erstellte Vorlage –, leitet /v1/meta-templates Ihre Anfrage direkt an die eigene Vorlagen-API von Meta weiter, ohne etwas in Ihrer Vorlagenbibliothek zu speichern. Dies funktioniert nur bei Konten, deren Nummer über ein eigenes WhatsApp Business-Konto läuft; bei einer verwalteten Verbindung gibt jeder Aufruf 400 zurück und fordert Sie auf, zuerst eine Meta-App zu verbinden.
| Endpunkt | Funktion |
|---|---|
GET /meta-templates |
Listet die Vorlagen in Ihrem WhatsApp Business-Konto mit ihrem aktuellen Status auf. Fügen Sie ?name= hinzu, um nach einem exakten Vorlagennamen zu filtern. Gibt { "success": true, "templates": [...] } zurück. |
POST /meta-templates |
Erstellt eine Vorlage und reicht sie in einem Schritt zur Prüfung bei Meta ein. Erfordert name, language und body (oder ein vollständiges components-Array anstelle von body). Optional: variables (Array von Strings), category (MARKETING, UTILITY oder AUTHENTICATION), header, footer, buttons. Gibt 201 mit { "success": true, "template": {...} } zurück. |
DELETE /meta-templates/{name} |
Löscht die Vorlage anhand ihres Meta-Namens – in jeder Sprache. Fügen Sie ?hsm_id= mit der Vorlagen-ID von Meta hinzu, um nur eine einzelne Sprache zu entfernen. Gibt { "success": true, "name": "..." } zurück. |
Eine Vorlage, die von Meta abgelehnt wurde, gibt 400 mit der eigenen Erläuterung von Meta in error zurück.
Vorlagen auflisten
Gibt alle Vorlagen in Ihrem Konto mit einer kompakten Zusammenfassung jeder Vorlage zurück.
GET /whatsapp-templates
cURL
curl "https://api.youraiconnector.com/v1/whatsapp-templates?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/whatsapp-templates", {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/whatsapp-templates",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"data": [
{
"id": "template_abc123",
"name": "welcome_message",
"status": "approved",
"language": "en",
"body": "Hi {{first_name}}, thanks for reaching out!"
},
{
"id": "template_def456",
"name": "appointment_reminder",
"status": "pending",
"language": "en",
"body": "Hi {{first_name}}, this is a reminder about your appointment."
}
]
}
Eine Vorlage abrufen
Gibt die vollständigen Details einer einzelnen Vorlage zurück, einschließlich ihrer Variablen, ihres Status und ihrer Zeitstempel.
GET /whatsapp-templates/{templateId}
cURL
curl "https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123" \
-H "X-API-Key: YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"template": {
"id": "template_abc123",
"name": "welcome_message",
"body": "Hi {{first_name}}, thanks for reaching out!",
"language": "en",
"variables": ["first_name"],
"status": "approved",
"sid": "HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"type": "general",
"category": "marketing",
"rejection_reason": null,
"campaign_id": "campaign123",
"date_created": "2026-06-01T10:00:00.000Z",
"date_updated": "2026-06-02T08:30:00.000Z",
"submitted_at": "2026-06-01T10:05:00.000Z",
"approved_at": "2026-06-02T08:30:00.000Z"
}
}
Eine Vorlage, die nicht in Ihrem Konto existiert, gibt 404 mit { "success": false, "error": "Template not found" } zurück.
Vorlage erstellen
Erstellt eine Vorlage für die Eröffnungsnachricht einer Kampagne und reicht sie in einem Schritt zur Genehmigung ein.
POST /whatsapp-templates
| Feld | Erforderlich | Beschreibung |
|---|---|---|
campaign_id |
Ja | Die Kampagne, zu der die Vorlage gehört. |
name |
Ja | Ein Name für die Vorlage. |
language |
Ja | Sprachcode, zum Beispiel en, es, de, pt_BR, zh_CN. |
body |
Ja | Der Nachrichtentext, bis zu 1024 Zeichen. |
variables |
Nein | Geordnete Liste der im Textkörper verwendeten Variablennamen. |
Variablen-Platzhalter können als {{first_name}}, {first_name} oder [first_name] geschrieben werden – sie werden alle in die Form mit doppelten geschweiften Klammern normalisiert.
Das Ergebnis hängt von den Kanälen der Kampagne ab:
- WhatsApp Business API-Kampagne: Der Inhalt wird zur WhatsApp-Überprüfung gesendet. Die Antwort enthält
campaign_status(receivedoderpending) und einentemplate_sid. - Ein Kanal ohne externen Überprüfungsschritt: Die Vorlage wird gespeichert und automatisch genehmigt (
campaign_status: "approved",template_sid: null). - Kein WhatsApp-Kanal in der Kampagne: Es wird nichts erstellt und
campaign_statusistnot_applicable.
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "campaign123",
"name": "welcome_message",
"language": "en",
"body": "Hi {{first_name}}, thanks for reaching out!",
"variables": ["first_name"]
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/whatsapp-templates", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
campaign_id: "campaign123",
name: "welcome_message",
language: "en",
body: "Hi {{first_name}}, thanks for reaching out!",
variables: ["first_name"],
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"campaign_id": "campaign123",
"name": "welcome_message",
"language": "en",
"body": "Hi {{first_name}}, thanks for reaching out!",
"variables": ["first_name"],
},
)
data = res.json()
Antwort (zur Überprüfung eingereicht)
{
"success": true,
"campaign_status": "pending",
"template_sid": "HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Erstellen einer eigenständigen Vorlage
Erstellt eine Vorlage in Ihrer Vorlagenbibliothek, ohne sie an die Eröffnungsnachricht einer Kampagne zu binden. Dies ist der Erstellungsschritt des Lebenszyklus, dem der Rest dieser Seite folgt: hier erstellen, bearbeiten, zur Überprüfung einreichen, den Status abfragen und löschen, wenn Sie sie nicht mehr benötigen.
POST /whatsapp-templates/docs
| Feld | Erforderlich | Beschreibung |
|---|---|---|
name |
Ja | Ein Name für die Vorlage. |
language |
Ja | Sprachcode, zum Beispiel en, es, de, pt_BR, zh_CN. |
body |
Ja | Der Nachrichtentext, bis zu 1024 Zeichen. |
variables |
Nein | Geordnete Liste der im Text verwendeten Variablennamen. |
status |
Nein | draft (Standard) speichert sie ohne Einreichung; submitted stellt sie sofort für die WhatsApp-Überprüfung in die Warteschlange. |
type |
Nein | general (Standard) oder smart_followup. |
category |
Nein | marketing, utility, authentication oder authentication-international. |
campaign_id |
Nein | Verknüpft die Vorlage mit einer Ihrer Kampagnen. |
Vorlagen für die Authentifizierung (Einmalcode). WhatsApp akzeptiert keine frei formulierbaren Authentifizierungsvorlagen: Der Nachrichtentext ist von WhatsApp vorgegeben und die Vorlage muss eine „Code kopieren“-Schaltfläche enthalten. Wenn Sie eine Vorlage mit
category: "authentication"erstellen, übermitteln wir diese in dieser festen Form für Sie. Ihrbodywird als Vorschau in der App beibehalten, aber der Text, den Ihr Kontakt erhält, entspricht dem Wortlaut von WhatsApp (der Code, ein Sicherheitshinweis und ein Hinweis auf die 10-minütige Gültigkeitsdauer). Deklarieren Sie genau eine Variable, zum Beispiel["code"], und übergeben Sie den Code beim Senden (siehe das Feldvariablesunter Senden einer Vorlage an einen Kontakt). Der Code muss kürzer als 15 Zeichen sein.
Welche Erstellungsmethode sollte ich verwenden? Verwenden Sie diese, wenn Sie eine Vorlage wünschen, die Sie selbst bearbeiten und einreichen können. Verwenden Sie
POST /whatsapp-templates(oben), wenn Sie die Eröffnungsnachricht einer Kampagne festlegen möchten – diese erfordertcampaign_idund schreibt direkt in die Kampagne.
Eine als submitted erstellte Vorlage wird im Hintergrund zur WhatsApp-Überprüfung gesendet. Überprüfen Sie daher den Status-Endpunkt auf das Ergebnis, anstatt es in der Antwort zu erwarten.
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/docs?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "welcome_message",
"language": "en",
"body": "Hi {{first_name}}, thanks for reaching out!",
"variables": ["first_name"],
"status": "draft",
"category": "marketing"
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/whatsapp-templates/docs", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "welcome_message",
language: "en",
body: "Hi {{first_name}}, thanks for reaching out!",
variables: ["first_name"],
status: "draft",
category: "marketing",
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/docs",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"name": "welcome_message",
"language": "en",
"body": "Hi {{first_name}}, thanks for reaching out!",
"variables": ["first_name"],
"status": "draft",
"category": "marketing",
},
)
data = res.json()
Antwort
{
"success": true,
"template_id": "template_abc123",
"status": "draft"
}
Ein fehlendes name, language oder body, eine nicht unterstützte Sprache, ein status, der nicht draft oder submitted ist, ein unbekannter type oder category oder ein Textkörper mit mehr als 1024 Zeichen führt zu 400 mit einer erklärenden error. Eine campaign_id, die keine Ihrer Kampagnen ist, führt zu 404.
Vorlage aktualisieren
Bearbeitet eine Vorlage, die noch nicht genehmigt wurde. Nur Vorlagen mit dem Status draft oder rejected können bearbeitet werden. Geben Sie eine beliebige Kombination aus name, body, language und variables an – nur die Felder, die Sie senden, werden geändert.
PUT /whatsapp-templates/{templateId}
Das Bearbeiten reicht die Vorlage nicht erneut zur Überprüfung ein. Verwenden Sie anschließend den Submit-Endpunkt.
cURL
curl -X PUT "https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"body": "Hi {{first_name}}, here is an update for you.",
"variables": ["first_name"]
}'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123",
{
method: "PUT",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
body: "Hi {{first_name}}, here is an update for you.",
variables: ["first_name"],
}),
}
);
const data = await res.json();
Python
import requests
res = requests.put(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"body": "Hi {{first_name}}, here is an update for you.",
"variables": ["first_name"],
},
)
data = res.json()
Antwort
{
"success": true,
"template_id": "template_abc123"
}
Der Versuch, eine Vorlage zu bearbeiten, die bereits approved ist (oder anderweitig nicht bearbeitet werden kann), das Senden von leeren Feldern oder das Senden eines ungültigen Wertes führt zu 400 mit einer erklärenden error.
Vorlage zur Genehmigung einreichen
Reicht eine draft oder rejected Vorlage zur Überprüfung ein. Vorlagen für einen Kanal, der keine externe Überprüfung erfordert, werden sofort genehmigt; alle anderen werden an WhatsApp gesendet und die zurückgegebene status (normalerweise received oder pending) wird in der Vorlage gespeichert.
POST /whatsapp-templates/{templateId}/submit
Follow-up-Vorlagen müssen ihre erforderlichen Variablen deklarieren und verwenden, bevor sie eingereicht werden können: einen Platzhalter für den Vornamen sowie einen Platzhalter für den persönlichen Kontext bei intelligenten Follow-ups.
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/submit" \
-H "X-API-Key: YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/submit",
{ method: "POST", headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/submit",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"template_id": "template_abc123",
"status": "pending",
"sid": "HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Genehmigungsstatus prüfen
Ein schlanker Endpunkt zum Abrufen des aktuellen Status einer Vorlage. Der Status wird aus dem gespeicherten Datensatz gelesen, der im Hintergrund regelmäßig aktualisiert wird. Daher kann es eine kurze Zeit dauern, bis eine sehr aktuelle Genehmigung oder Ablehnung angezeigt wird.
GET /whatsapp-templates/{templateId}/status
cURL
curl "https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/status" \
-H "X-API-Key: YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/status",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/status",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"template_id": "template_abc123",
"name": "welcome_message",
"status": "approved",
"sid": "HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"rejection_reason": null,
"date_updated": "2026-06-02T08:30:00.000Z"
}
Vorlage löschen
Entfernt den Vorlagendatensatz aus Ihrem Konto.
DELETE /whatsapp-templates/{templateId}
Wichtig: Bei einer verwalteten Verbindung wird nur der gespeicherte Datensatz entfernt – Inhalte, die WhatsApp bereits genehmigt hat, können weiterhin beim Messaging-Anbieter registriert bleiben. Bei einem Konto, das über ein eigenes WhatsApp Business-Konto läuft, wird die Vorlage auch aus diesem Konto gelöscht. In jedem Fall gilt: Wenn eine Kampagne diese Vorlage noch verwendet, weisen Sie diese Kampagne vor dem Löschen einer anderen Vorlage zu, da andernfalls darauf basierende Sendungen fehlschlagen.:::
cURL
curl -X DELETE "https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123" \
-H "X-API-Key: YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123",
{ method: "DELETE", headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
Python
import requests
res = requests.delete(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"template_id": "template_abc123",
"note": "The template record was removed from your account. Content already approved by WhatsApp may remain registered with the messaging provider."
}
Senden einer Vorlage an einen Kontakt
Sendet eine genehmigte Vorlage an einen Kontakt, auch wenn kein offenes Gespräch besteht — dies öffnet die Chat-Sitzung erneut. Sie können den Kontakt über contactId oder phoneNumber adressieren und die Vorlage über whatsappTemplateId oder templateName auswählen.
POST /whatsapp-templates/send
| Feld | Erforderlich | Beschreibung |
|---|---|---|
contactId |
Eines von beiden | Die ID des Kontakts. |
phoneNumber |
Eines von beiden | Die Telefonnummer des Kontakts (mit Ländervorwahl, ohne Leerzeichen). Wird bei Bedarf nachgeschlagen oder erstellt. |
whatsappTemplateId |
Eines von beiden | Die ID der Vorlage. |
templateName |
Eines von beiden | Der Name der Vorlage, wie er in der App angezeigt wird. |
firstName |
Nein | Wird zum Ausfüllen eines neu erstellten Kontakts verwendet. |
lastName |
Nein | Wird zum Ausfüllen eines neu erstellten Kontakts verwendet. |
email |
Nein | Wird zum Ausfüllen eines neu erstellten Kontakts verwendet. |
variables |
Nein | Explizite Werte für die Variablen der Vorlage, nach Variablennamen sortiert, zum Beispiel { "code": "482913" }. Ein hier angegebener Wert hat Vorrang vor den Feldern des Kontakts für diese Variable; Variablen, die Sie weglassen, werden weiterhin wie unten beschrieben aus dem Kontakt ausgefüllt. Auf diese Weise übergeben Sie einen Einmalcode an eine Authentifizierungsvorlage. |
Der Textkörper der Vorlage unterstützt erweiterte Variablensubstitution:
- Grundlegende Variablen:
{{first_name}},{{email}},{{company}} - Standardwerte:
{{first_name|there}}zeigttherean, wenn das Feld leer ist - Transformationen:
{{company|uppercase}},{{name|lowercase}},{{name|capitalize}} - Kombiniert:
{{company|Your Company|uppercase}}
Guthaben: Das Senden einer Vorlage verbraucht Guthaben. Die genauen Kosten hängen vom Land des Empfängers und der Kategorie der Vorlage ab.
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/send?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contactId": "contact123",
"whatsappTemplateId": "template_abc123"
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/whatsapp-templates/send", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
contactId: "contact123",
whatsappTemplateId: "template_abc123",
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/send",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"contactId": "contact123",
"whatsappTemplateId": "template_abc123",
},
)
data = res.json()
Antwort
{
"success": true,
"data": "WhatsApp template message sent successfully"
}
Eine Anfrage, bei der sowohl ein Kontaktbezeichner als auch beide Vorlagenbezeichner fehlen, gibt 400 zurück. Wenn Ihrem Konto die für den Versand erforderlichen Messaging-Anmeldeinformationen fehlen, lautet die Antwort 403.
Erstellen oder Aktualisieren einer Live-Vorlage für eine Kampagne
Ein zweites Paar von Endpunkten für die Eröffnungsvorlage einer Kampagne, die eher über den Pfad als über eine campaign_id im Body definiert werden. Diese sollten für eine bereits aktive Kampagne verwendet werden: Im Gegensatz zu Vorlage erstellen oben führt eine Aktualisierung hier auch dazu, dass die Follow-up-Entwürfe der Kampagne erneut zur Überprüfung eingereicht werden, sodass die Eröffnungsvorlage und ihre Follow-ups synchron bleiben.
POST /whatsapp-templates/campaign/{campaignId} erstellt die Eröffnungsvorlage der Kampagne. PUT /whatsapp-templates/campaign/{campaignId} bearbeitet sie – die Kampagne muss bereits über eine Vorlage verfügen, andernfalls wird 400 zurückgegeben.
| Feld | Erforderlich | Beschreibung |
|---|---|---|
name |
Ja | Ein Name für die Vorlage. |
language |
Ja | Sprachcode, zum Beispiel en, es, de, pt_BR, zh_CN. |
body |
Ja | Der Nachrichtentext, bis zu 1024 Zeichen. |
variables |
Ja | Geordnete Liste der im Body verwendeten Variablennamen. Übergeben Sie ein leeres Array, wenn die Vorlage keine verwendet. |
cURL (erstellen)
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/campaign/campaign123?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "welcome_message",
"language": "en",
"body": "Hi {{first_name}}, thanks for reaching out!",
"variables": ["first_name"]
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/whatsapp-templates/campaign/campaign123", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "welcome_message",
language: "en",
body: "Hi {{first_name}}, thanks for reaching out!",
variables: ["first_name"],
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/campaign/campaign123",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"name": "welcome_message",
"language": "en",
"body": "Hi {{first_name}}, thanks for reaching out!",
"variables": ["first_name"],
},
)
data = res.json()
Antwort
{
"success": true,
"campaign_status": "pending",
"template_sid": "HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"message": "WhatsApp template created and campaign updated successfully."
}
Um zu bearbeiten, ändern Sie die Methode auf PUT und verwenden Sie dieselben Felder – dies reicht die Eröffnungsvorlage (und bei einer WhatsApp-API-Kampagne die Follow-up-Entwürfe der Kampagne) erneut zur Überprüfung ein.
Eine Kampagne, die nicht zu Ihrem Konto gehört, gibt 404 zurück; eine Kampagne, die zu einem anderen Konto gehört, für das Sie nicht autorisiert sind, gibt 403 zurück. Das Bearbeiten einer Kampagne ohne vorhandene Vorlage gibt 400 zurück.
Senden einer Vorlage an einen bestehenden Kontakt
Eine einfachere, pfadbasierte Alternative zu Vorlage an einen Kontakt senden oben: Sowohl die Vorlage als auch der Kontakt müssen bereits existieren – es wird nichts anhand des Namens gesucht oder spontan erstellt.
POST /whatsapp-templates/{templateId}/send-to-contact
| Feld | Erforderlich | Beschreibung |
|---|---|---|
contactId |
Ja | Die ID des Kontakts. Muss zu Ihrem Konto gehören. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/send-to-contact?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "contactId": "contact123" }'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/send-to-contact",
{
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ contactId: "contact123" }),
}
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/send-to-contact",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"contactId": "contact123"},
)
data = res.json()
Antwort
{
"success": true,
"data": "WhatsApp template message sent successfully"
}
Guthaben: Das Senden verbraucht Guthaben, das genauso berechnet wird wie beim Endpunkt oben. Eine
contactId, die fehlt oder nicht zu Ihrem Konto gehört, gibt403zurück; eintemplateId, der nicht existiert, gibt404zurück.
Massenversand einer Vorlage
Senden Sie eine Vorlage in einem einzigen Aufruf an viele Kontakte, mit einer Kostenvorschau, die Sie vor der Bestätigung anzeigen können.
Zuerst die Kosten schätzen
Gibt die Kosten für den Versand aufgeschlüsselt nach Zielland zurück, ohne etwas zu versenden oder Credits zu verbrauchen. Die Vorlagenpreise gelten pro Zielland, daher muss dies serverseitig anhand der tatsächlichen Kontakte berechnet werden, anstatt es clientseitig zu schätzen.
POST /whatsapp-templates/{templateId}/estimate-bulk-cost
| Feld | Erforderlich | Beschreibung |
|---|---|---|
contactIds |
Ja | Zu bepreisende Kontakte, bis zu 500 pro Aufruf. Duplikate werden nur einmal gezählt. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/estimate-bulk-cost?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "contactIds": ["contact123", "contact456"] }'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/estimate-bulk-cost",
{
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ contactIds: ["contact123", "contact456"] }),
}
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/estimate-bulk-cost",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"contactIds": ["contact123", "contact456"]},
)
data = res.json()
Antwort
{
"success": true,
"data": {
"countries": [
{
"countryCode": "1",
"name": "United States",
"iso": "US",
"flag": "🇺🇸",
"contactCount": 120,
"costPerContact": 0.5,
"subtotal": 60.0
}
],
"totalContacts": 120,
"totalTemplateCost": 60.0,
"templateCategory": "marketing",
"skippedContacts": 2
}
}
skippedContacts zählt IDs, die fehlten, nicht zu Ihrem Konto gehörten oder keine Telefonnummer enthielten — die Schätzung deckt nur den Rest ab, daher bedeutet ein Wert ungleich Null, dass der tatsächliche Versand weniger Kontakte erreicht als von Ihnen ausgewählt.
Den Batch versenden
Sendet die Vorlage an jeden Kontakt in der Liste, löst alle intelligenten Variablen pro Kontakt auf und berechnet Credits pro Versand.
POST /whatsapp-templates/{templateId}/bulk-send
| Feld | Erforderlich | Beschreibung |
|---|---|---|
contactIds |
Ja | Kontakte, an die gesendet werden soll, bis zu 5000 pro Aufruf. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/bulk-send?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "contactIds": ["contact123", "contact456"] }'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/bulk-send",
{
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ contactIds: ["contact123", "contact456"] }),
}
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/template_abc123/bulk-send",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"contactIds": ["contact123", "contact456"]},
)
data = res.json()
Antwort
{
"success": true,
"data": { "sent": 118, "failed": 2, "total": 120 }
}
Ein Kontakt, bei dem ein Fehler auftritt (nicht gefunden, nicht in Ihrem Konto oder ein Versandfehler), wird übersprungen und in failed gezählt, anstatt den Batch zu stoppen. Ein leeres contactIds, mehr als 5000 IDs bei einem Versand (500 bei einer Schätzung) oder ein fehlendes templateId führt zu 400.
Eine fehlgeschlagene Nachricht erneut senden
Zwei Endpunkte für den erneuten Versand einer fehlgeschlagenen Nachricht, ohne einen neuen Nachrichtendatensatz zu erstellen oder erneut Credits zu verbrauchen.
POST /whatsapp-templates/messages/{contactId}/{messageId}/retry-template versucht speziell den erneuten Versand einer fehlgeschlagenen Vorlagennachricht — der Vorlageninhalt wird aus der Kampagne neu aufgelöst, falls die fehlgeschlagene Nachricht diesen nicht bereits enthält. Nur Nachrichten mit dem Status failed und dem Typ template können auf diese Weise erneut gesendet werden.
POST /whatsapp-templates/messages/{contactId}/{messageId}/retry ist kanalunabhängig und funktioniert für jede fehlgeschlagene Nicht-Vorlagen-Nachricht (zum Beispiel WhatsApp Web), wobei der Versand basierend auf dem Kanal der Nachricht an den richtigen Pfad weitergeleitet wird. Es akzeptiert den Status failed, failed_connection, limit_exceeded oder queued_retry.
Keiner der Endpunkte benötigt einen Request-Body.
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/messages/contact123/msg_abc789/retry-template?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/messages/contact123/msg_abc789/retry-template",
{ method: "POST", headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/messages/contact123/msg_abc789/retry-template",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"data": "Message retry initiated successfully"
}
Für die kanalunabhängige Version ändern Sie den Pfad zu .../msg_abc789/retry. Eine Nachricht, deren Status nicht für einen erneuten Versand qualifiziert ist, oder (beim Vorlagen-Endpunkt) die keine Vorlagennachricht ist, führt zu 400. Ein fehlender Kontakt oder eine fehlende Nachricht führt zu 404.
WhatsApp Business-Profil
Verwalten Sie das WhatsApp Business-Profil (Info, Adresse, Beschreibung, E-Mail, Websites, Geschäftskategorie und Logo), das Kontakten auf WhatsApp angezeigt wird. Funktioniert sowohl mit einer verwalteten Verbindung als auch mit einem Konto, das ein eigenes WhatsApp Business-Konto betreibt.
Profil speichern
PUT /whatsapp-templates/profile
| Feld | Erforderlich | Beschreibung |
|---|---|---|
phoneNumber |
Ja | Die WhatsApp-Nummer, zu der dieses Profil gehört. Muss mit Ihrem Konto verbunden sein. |
about |
Nein | Kurzer „Info“-Text, der im Profil angezeigt wird. |
address |
Nein | Geschäftsadresse. |
description |
Nein | Längere Geschäftsbeschreibung. |
email |
Nein | Kontakt-E-Mail, die im Profil angezeigt wird. |
websites |
Nein | Array von Website-URLs. Jede muss eine gültige URL sein. |
vertical |
Nein | Geschäftskategorie, zum Beispiel Retail oder Professional Services. |
profilePictureHandle |
Nein | Das Handle, das vom unten stehenden Bild-Upload-Endpunkt zurückgegeben wird, um das Profilfoto festzulegen. |
cURL
curl -X PUT "https://api.youraiconnector.com/v1/whatsapp-templates/profile?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+31612345678",
"about": "We reply within a few hours",
"email": "support@example.com",
"websites": ["https://example.com"]
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/whatsapp-templates/profile", {
method: "PUT",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
phoneNumber: "+31612345678",
about: "We reply within a few hours",
email: "support@example.com",
websites: ["https://example.com"],
}),
});
const data = await res.json();
Python
import requests
res = requests.put(
"https://api.youraiconnector.com/v1/whatsapp-templates/profile",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"phoneNumber": "+31612345678",
"about": "We reply within a few hours",
"email": "support@example.com",
"websites": ["https://example.com"],
},
)
data = res.json()
Antwort
{
"success": true,
"data": "WhatsApp Business profile updated successfully"
}
Eine fehlende phoneNumber, eine ungültige Website-URL oder eine phoneNumber, die nicht mit Ihrem Konto verbunden ist, führt zu 400 oder 404.
Profilbild hochladen
Lädt ein Bild von einer von Ihnen bereitgestellten URL herunter und lädt es auf WhatsApp hoch, wobei ein Handle zurückgegeben wird. Übergeben Sie dieses Handle als profilePictureHandle beim oben genannten Aufruf zum Speichern des Profils, um es als Foto festzulegen – dieser Endpunkt lädt das Bild nur hoch, er legt es nicht von selbst fest.
POST /whatsapp-templates/profile/picture
| Feld | Erforderlich | Beschreibung |
|---|---|---|
phoneNumber |
Ja | Die WhatsApp-Nummer, zu der dieses Profil gehört. |
fileUrl |
Ja | Eine öffentlich erreichbare URL zu dem hochzuladenden Bild. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/whatsapp-templates/profile/picture?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+31612345678",
"fileUrl": "https://example.com/logo.png"
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/whatsapp-templates/profile/picture", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
phoneNumber: "+31612345678",
fileUrl: "https://example.com/logo.png",
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/whatsapp-templates/profile/picture",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"phoneNumber": "+31612345678",
"fileUrl": "https://example.com/logo.png",
},
)
data = res.json()
Antwort
{
"success": true,
"data": "1234567890123456"
}
data ist das Handle des hochgeladenen Bildes. Eine fehlende phoneNumber oder fileUrl oder eine phoneNumber ohne hinterlegtes WhatsApp-Zugriffstoken führt zu 400; eine nicht erreichbare oder ungültige fileUrl gibt einen Fehler zurück, der beschreibt, warum der Download fehlgeschlagen ist.
Status eines Absenders prüfen
Fragt den Live-Sendestatus einer verbundenen WhatsApp-Nummer beim Messaging-Anbieter ab (und aktualisiert ihn). Nützlich, um zu bestätigen, dass eine Nummer tatsächlich senden kann, bevor Sie sich darauf verlassen.
GET /whatsapp-templates/sender-status/{phoneNumber}
cURL
curl "https://api.youraiconnector.com/v1/whatsapp-templates/sender-status/+31612345678" \
-H "X-API-Key: YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/whatsapp-templates/sender-status/+31612345678",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/whatsapp-templates/sender-status/+31612345678",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"data": "ONLINE"
}
data ist einer der Werte ONLINE (sendet normal), PENDING (wird noch verifiziert) oder DELETED (der Anbieter erkennt diesen Absender nicht mehr – verbinden Sie die Nummer erneut). Eine phoneNumber ohne hinterlegte WhatsApp-Geschäftsinformationen führt zu 404.
Follow-up-Vorlagen mit KI generieren
Die Plattform kann die WhatsApp-Follow-up-Vorlagen für eine Kampagne für Sie schreiben – also die Erinnerungen, die gesendet werden, wenn ein Gespräch einschläft – basierend auf den Anweisungen und dem Ziel der Kampagne. Es gibt einen Job-Endpunkt, der im Hintergrund ausgeführt wird, sowie drei ältere Endpunkte, die für bestehende Integrationen beibehalten wurden. Alle verbrauchen KI-Credits.
Einen Generierungs-Job starten
POST /campaigns/{campaignId}/template-generation
| Feld | Erforderlich | Beschreibung |
|---|---|---|
type |
Nein | all (Standard) schreibt das gesamte Follow-up-Set. cold_only schreibt nur die Nachrichten für Kontakte, die nie geantwortet haben. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/campaigns/campaign_abc123/template-generation?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "type": "all" }'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/campaigns/campaign_abc123/template-generation",
{
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ type: "all" }),
}
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/campaigns/campaign_abc123/template-generation",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"type": "all"},
)
data = res.json()
Antwort (202)
{ "success": true, "campaign_id": "campaign_abc123", "type": "all" }
Der Aufruf kehrt zurück, sobald der Job in die Warteschlange eingereiht wurde. Lesen Sie die Kampagne (GET /campaigns/{campaignId}, siehe Campaigns API) und beobachten Sie deren template_generation_status-Objekt, bis der Vorgang abgeschlossen ist:
| Feld | Beschreibung |
|---|---|
status |
processing während der Job läuft, danach completed oder failed. |
progress |
0 bis 100. |
current_template, total_templates |
Wie viele Vorlagen bisher geschrieben wurden, von wie vielen der Job insgesamt schreiben wird – 11 für eine ausgehende oder kombinierte Kampagne, ansonsten 9. |
error |
Grund, warum ein failed-Job gestoppt wurde, zum Beispiel nicht genügend Credits. |
started_at, completed_at |
Wann der Job begann und endete. |
Die generierten Vorlagen landen wie jede andere auf der Kampagne, erscheinen also unter Vorlagen auflisten und durchlaufen weiterhin die WhatsApp-Genehmigung, bevor sie gesendet werden können. Ein 400 bedeutet, dass type etwas anderes als all oder cold_only war; ein 404 bedeutet, dass die Kampagne nicht existiert oder zu einem anderen Konto gehört.
Agenten haben ein Pendant zu diesem Aufruf, POST /agents/{agentId}/template-generation, das die Follow-ups für einen Agenten schreibt und im Normalfall während des Aufrufs abgeschlossen wird – siehe Follow-up-Nachrichten generieren in der AI Agents API.
Die älteren Generierungs-Endpunkte
Drei frühere Endpunkte erledigen dieselbe Arbeit und werden beibehalten, damit bestehende Integrationen weiterhin funktionieren. Neuer Code sollte den oben genannten Job-Endpunkt verwenden.
| Endpunkt | Funktion |
|---|---|
POST /whatsapp-templates/campaign/{campaignId}/generate-async |
Startet die Follow-up-Generierung für die Kampagne im Hintergrund und gibt 202 mit { "success": true, "data": { "result": "success", "message": "..." } } zurück. Credits werden im Voraus berechnet (entfällt bei einem Konto, das einen eigenen KI-Schlüssel mitbringt) und das template_generation_status der Kampagne meldet den Fortschritt genau wie oben beschrieben. |
POST /whatsapp-templates/campaign/{campaignId}/generate-followups |
Generiert alle neun Follow-up-Vorlagen während des Aufrufs – für eine Kampagne, die erstellt wurde, bevor automatische Follow-ups existierten, oder eine, bei der sie neu geschrieben werden müssen – und gibt 200 mit templatesGenerated innerhalb von data zurück. |
POST /whatsapp-templates/agent/{agentId}/generate-followups |
Die gleiche synchrone Generierung, die von Agent adressiert wird. Die Antwort fügt agent_id, campaign_id und target hinzu: "campaign", wenn die Vorlagen auf die Kampagne des Agenten geschrieben wurden, "agent" (mit campaign_id: null), wenn der Agent keine Kampagne hat und sie auf dem Agenten selbst gespeichert wurden. Ein fehlender oder fremder Agent ist ein 404. |
Alle drei erfordern automatische Follow-ups auf dem Konto und genügend Credits – ein 400 benennt, was fehlt – und das kampagnenadressierte Paar gibt 403 zurück, wenn die Kampagne zu einem anderen Konto gehört.
Fehler der Templates-API
Template-Endpunkte geben das Standard-Fehler-Envelope zurück:
{
"success": false,
"error": "Template not found"
}
Ein 404 bei diesen Endpunkten bedeutet normalerweise, dass die Ressource nicht gefunden wurde – entweder existiert sie nicht oder sie gehört zu einem anderen Konto. Einige Endpunkte (das Erstellen/Aktualisieren im Kampagnenkontext und das Senden an einen bestehenden Kontakt) geben stattdessen 403 zurück, wenn die Kampagne oder der Kontakt jemand anderem gehört, anstatt gar nicht zu existieren. Einige Endpunkte enthalten auch ein error_code-Feld, das den HTTP-Status widerspiegelt. Die gemeinsamen Codes, die jeder Endpunkt zurückgeben kann – 400, 401, 403 (Ihr Plan beinhaltet keinen API-Zugriff), 429 (Ratenbegrenzung) und 500 – sind zusammen mit Hinweisen zur Wiederholung unter Fehler & Paginierung aufgeführt.
Nächste Schritte
- Authentifizierung — die vier Möglichkeiten zur Authentifizierung einer Anfrage.
- Fehler & Ratenbegrenzungen — Statuscodes und das Limit von 300 Anfragen/Min.
- Kampagnen-API — Verwalten Sie die Kampagnen, denen Vorlagen zugeordnet sind.