Mit einem Template versenden
Der gespeicherte Body liefert die Nachricht; der Request liefert den Umschlag und die Werte.
Führt den echten Aufruf gegen Ihren Workspace aus, mit Ihrem eigenen Schlüssel.
POST /templates/{id}/send
Der gespeicherte Body liefert die Nachricht; der Request liefert den Umschlag und die Werte.
Beispiel
Benötigt templates:write UND emails:send. Beachtet Idempotency-Key genau so wie POST /emails.
curl -X POST "$OE/templates/order-shipped/send" -H "$AUTH" \ -H "Content-Type: application/json" -H "Idempotency-Key: order:AC-4192:shipped" \ -d '{ "from": "Acme Dispatch <[email protected]>", "to": ["[email protected]"], "version": 5, "props": { "orderId": "AC-4192", "customer": "Ada" } }'{ "object": "email", "id": "msg_c5f21cc6…", "status": "queued", "from": "[email protected]", "subject": "Order AC-4192 is on its way", "template": { "id": "order-shipped", "version": 5 }}Beide Scopes, und keiner ist überflüssig: templates:write, weil der Aufrufer auf einen gespeicherten Body zugreift, emails:send, weil Post den Workspace verlässt. Ein Schlüssel, der eigene Bodys versenden darf, darf deshalb noch lange nicht das Template eines anderen versenden.
Schreiben Sie version in allem Automatisierten fest. Weggelassen, lösen Sie auf, was in diesem Moment veröffentlicht ist; das ist es, was Sie wollen, wenn jemand anderes den Text verantwortet, und nicht das, was Sie wollen an dem Morgen, an dem er ihn umschreibt.
subject überschreibt den des Templates nur für diese Nachricht, und cancellableForSeconds, tracking und tags verhalten sich genau wie bei einem einfachen Versand.
POST /emails akzeptiert ein Feld template, das dasselbe tut, für einen Aufrufer, der Nachrichten ohnehin dort baut. Dieser Endpunkt existiert, damit der Zugriff auf einen gespeicherten Body nicht verlangt, die Form einer Nachricht zu liefern, die Sie gar nicht verfassen.
Wenn ein Versand abgelehnt wird
Props sind ein Vertrag und kein Vorschlag, und jeder der folgenden Fehler passiert, bevor irgendetwas abgeschickt wird. Die Alternative, eine Nachricht, die mit einer Lücke dort hinausgeht, wo die Bestellnummer stand, wird von nichts gemeldet und lässt sich nicht zurückholen.
| Code | Status | Was passiert ist |
|---|---|---|
| `resource_not_found` | 404 | Kein Template auf dieser Connection mit dieser id oder diesem Slug. |
| `template_not_published` | 422 | Es existiert und wurde nie veröffentlicht, oder die von Ihnen genannte Version ist noch ein Entwurf. |
| `template_version_not_found` | 422 | Sie haben eine version festgeschrieben, die dieses Template nie hatte. |
| `missing_template_prop` | 422 | Eine als required deklarierte Prop fehlte, war null oder leer. |
| `unknown_template_prop` | 422 | Sie haben einen Schlüssel übergeben, den die Version nicht deklariert. Die Meldung nennt die, die sie deklariert. |
| `unknown_template_slot` | 422 | Dasselbe, für einen Slot. |
| `invalid_template_prop` | 422 | Ein Wert, der weder string noch number noch boolean ist. Ein object oder ein array lässt sich nicht in HTML einsetzen. |
param lautet bei diesen template.props.<key>, ein Client kann also auf das falsch gesetzte Feld zeigen, ohne die Meldung zu parsen.