← Alle Artikel

SMS-Benachrichtigungen für Shopify ohne App: Shopify Flow oder Make mit der TopSMS-API

7 Min. LesezeitEnglish

Eine TopSMS-App für Shopify gibt es nicht. So kommen Sie trotzdem zu SMS-Bestellbenachrichtigungen: Shopify Flow oder Make mit der TopSMS-API, mit Beispielen.

Beginnen wir mit dem, was es nicht gibt: Im Shopify App Store gibt es keine TopSMS-App, und wir tun auch nicht so. Was es gibt, ist eine REST-API, die mit einer einzigen HTTP-Anfrage eine SMS sendet, und zwei Werkzeuge, die diese Anfrage stellen können, sobald in Ihrem Shop etwas passiert: Shopifys eigenes Automatisierungswerkzeug Flow und die Integrationsplattform Make, für die TopSMS eine offizielle App anbietet. Dieser Ratgeber zeigt beide Wege mit Beispielen, erklärt, welcher zu welchem Shop passt, und nennt die Details, die entscheiden, ob Benachrichtigungen einmal, pünktlich und in einem Segment ankommen.

Welcher Weg zu Ihrem Shop passt

Shopify Flow → TopSMS-APIMake → TopSMS-App
Shopify-TarifDie Aktion „Send HTTP request“ ist nur in den Tarifen Plus, Advanced und Grow verfügbarFunktioniert mit jedem Tarif, der das Verbinden von Apps erlaubt
ZusatzkostenKeine außer den SMSEin Make-Abo, abhängig von der Zahl der Operationen
EinrichtungJSON und etwas LiquidPer Klick, ohne Code
ZustellberichteIm TopSMS-Dashboard sichtbar oder per Webhook an Ihren eigenen ServerDie TopSMS-App hat einen Trigger für Zustellberichte, ein Szenario kann also auf fehlgeschlagene Nachrichten reagieren
Geeignet fürShops im passenden Tarif, die alles in Shopify behalten wollenKleinere Tarife oder Shops, die schon anderes mit Make automatisieren

Vorab: Telefonnummern und API-Schlüssel

  • Telefonnummer erfassen. In den Checkout-Einstellungen legen Sie fest, ob die Telefonnummer ausgeblendet, optional oder Pflicht ist. Für Versandhinweise ist die Telefonnummer der Lieferadresse das zuverlässigste Feld, weil auch Paketdienste danach fragen.
  • Internationales Format. Die TopSMS-API erwartet Nummern im internationalen Format wie +4915112345678. Sie akzeptiert auch 0049…, aber eine deutsche Nummer ohne Ländervorwahl lässt sich keinem Land sicher zuordnen. Shopify speichert Nummern in der Regel international; prüfen Sie ein paar echte Bestellungen.
  • API-Schlüssel. Erstellen Sie im TopSMS-Dashboard unter API-Zugang einen Schlüssel (Client-ID und Secret). Beginnen Sie mit einem Testschlüssel: Er liefert dieselben Antworten samt Preis, simuliert Zustellberichte und sendet nichts.
  • Absendername. Bis zu 11 Buchstaben und Ziffern, für Ihr Konto freigegeben; deutsche und österreichische Netze stellen ihn ohne Registrierung zu.

Weg 1: Shopify Flow mit „Send HTTP request“

Ein Flow-Workflow besteht aus einem Trigger, optionalen Bedingungen und Aktionen. Für Bestellbenachrichtigungen sind die Trigger Order paid (Bestätigung), Fulfillment created (Versandhinweis mit Sendungsnummer) und Order canceled sinnvoll. Fügen Sie dann die Aktion Send HTTP request hinzu:

  1. HTTP-Methode POST, URL https://www.topsms.cz/api/sms/send.
  2. Speichern Sie den API-Schlüssel als Secret unter Flow → Einstellungen (zum Beispiel mit dem Handle topsms_key und dem Wert CLIENT_ID:SECRET). Flow zeigt Secret-Werte nie in der Oberfläche an und schwärzt sie in den Ausführungsprotokollen.
  3. Header und Body wie unten. Fügen Sie Variablen über die Variablenauswahl von Flow ein; die Pfade im Beispiel dienen der Veranschaulichung, die Auswahl zeigt die für Ihren Trigger verfügbaren.
Authorization: Bearer {{secrets.topsms_key}}
Content-Type: application/json
Idempotency-Key: order-paid-{{order.id}}
{
  "to": "{{order.phone}}",
  "text": "MeinShop: Danke {{order.customer.firstName}}, Ihre Bestellung {{order.name}} ist bestätigt. Wir melden uns, sobald sie versandt ist.",
  "from": "MeinShop"
}

Ein erfolgreicher Aufruf liefert HTTP 200 mit der Zahl der berechneten Segmente und dem Preis (in CZK, der Währung des Guthabens):

{
  "ok": true,
  "id": "cmp7a1b2c3...",
  "to": "+4915112345678",
  "from": "MyShop",
  "smsCount": 1,
  "price": 2.04,
  "status": "sent"
}

Warum der Idempotency-Key hier wichtig ist

Flow lässt sich so einstellen, dass eine Anfrage bei einer 4xx- oder 5xx-Antwort bis zu 24 Stunden lang wiederholt wird, und wiederholt sie auch, wenn der Server nicht innerhalb von 30 Sekunden antwortet. Ohne Schutz würde ein Timeout nach einem erfolgreichen Versand eine zweite SMS auslösen. Mit einem Header Idempotency-Key, der pro Bestellung und Ereignis eindeutig ist, liefert die wiederholte Anfrage die ursprüngliche Antwort mit Idempotent-Replayed: true, und nichts wird doppelt gesendet. Der Schlüssel gilt 24 Stunden, passend zum Wiederholungsfenster von Flow.

Legen Sie die Fehlerbehandlung bewusst fest. Eine 400-Antwort (etwa eine ungültige Nummer oder eine Nummer auf der Blacklist) behebt sich nicht von selbst, für Client-Fehler ist also „Ignore“ oder „Fail“ richtig; „Retry“ ist für 5xx und 429 sinnvoll. Eine 402 bedeutet, dass Ihr Guthaben aufgebraucht ist: Laden Sie auf und behalten Sie den Stand mit GET /api/credit im Blick.

Der Versandhinweis

Für die Versand-SMS nutzen Sie den Trigger Fulfillment created und übernehmen die Sendungsnummer aus den Tracking-Informationen des Fulfillments. Verwenden Sie einen anderen Idempotency-Key, zum Beispiel fulfillment-{{fulfillment.id}}, damit Teillieferungen jeweils eine eigene Nachricht bekommen. Halten Sie den Text kurz: Eine Sendungsnummer hat oft 20 Zeichen, eine vollständige Tracking-URL des Paketdienstes kann 80 haben.

Weg 2: Make mit der offiziellen TopSMS-App

Wenn Ihr Tarif die HTTP-Aktion in Flow nicht enthält oder Sie kein JSON schreiben möchten, nehmen Sie Make. Die offizielle TopSMS-App für Make hat Module für Versand, Massenversand, Nachrichtenstatus und Guthaben sowie einen Trigger für Zustellberichte.

  1. Legen Sie ein Szenario mit der Shopify-App als Trigger an, zum Beispiel einem Modul, das neue Bestellungen beobachtet, oder einem Webhook, den Shopify beim gewünschten Ereignis aufruft.
  2. Fügen Sie bei Bedarf einen Filter hinzu, etwa „nur wenn eine Telefonnummer vorhanden ist“ und „nur Lieferungen nach Deutschland oder Österreich“.
  3. Fügen Sie das TopSMS-Modul Send an SMS hinzu, verbinden Sie es mit Ihrem API-Schlüssel, ordnen Sie die Telefonnummer zu und setzen Sie den Text aus den Bestellfeldern zusammen.
  4. Führen Sie das Szenario einmal mit Testschlüssel und Testbestellung aus und wechseln Sie dann zum Produktivschlüssel.

Make übernimmt die JSON-Kodierung, Namen mit Anführungszeichen oder Zeilenumbrüchen können die Anfrage also nicht zerstören. Mit dem Trigger für Zustellberichte kann ein zweites Szenario zum Beispiel eine Bestellung markieren oder Ihr Team benachrichtigen, wenn eine Nachricht den Status failed hat.

Viele Nachrichten auf einmal

Wenn Sie Versandhinweise sammeln und gebündelt senden, etwa nach der täglichen Abholung durch den Paketdienst, verwenden Sie den Endpunkt für den Massenversand. Er nimmt bis zu 500 Empfänger pro Anfrage, jeden mit eigenem Text:

POST https://www.topsms.cz/api/sms/send-bulk
{
  "messages": [
    { "to": "+4915112345678", "text": "MeinShop: Bestellung #1024 ist unterwegs. Sendung: 00340434161094042557" },
    { "to": "+436641234567", "text": "MeinShop: Bestellung #1025 ist unterwegs. Sendung: 00340434161094042558" }
  ],
  "from": "MeinShop"
}

Jeder Empfänger bekommt in der Antwort ein eigenes Ergebnis. Ab 50 Empfängern wird die Anfrage asynchron verarbeitet und liefert eine jobId, deren Fortschritt Sie abfragen können.

Vorlagen und Kosten

Halten Sie jeden Text unter 160 Zeichen des GSM-7-Alphabets, einschließlich der eingesetzten Werte. Deutsche Umlaute und ß sind unproblematisch; Emojis, typografische Anführungszeichen und Gedankenstriche schalten die Nachricht auf Unicode mit 70 Zeichen pro Segment um. Einige bewährte Texte:

  • MeinShop: Danke Anna, Ihre Bestellung #1024 ist bestätigt. Wir melden uns, sobald sie versandt ist.
  • MeinShop: Bestellung #1024 ist unterwegs. Sendungsnummer: 00340434161094042557
  • MeinShop: Bestellung #1024 wurde storniert. Fragen? hilfe@meinshop.de

Eine SMS an deutsche und österreichische Nummern kostet bei TopSMS 0,084 € pro Segment, ohne Grundgebühr und ohne Kosten für die API. Abgelehnte Nachrichten werden nicht berechnet. Bestellhinweise sind Transaktionsnachrichten und brauchen keine Werbeeinwilligung, dürfen aber keine Werbung enthalten; Einzelheiten stehen in unserem Artikel zu SMS und DSGVO.

Keine App, keine Grundgebühr: Legen Sie ein kostenloses Konto an, erstellen Sie einen Testschlüssel und verbinden Sie Shopify Flow oder Make an einem Nachmittag. Die API-Dokumentation beschreibt /api/sms/send, den Massenversand, den Idempotency-Key und Webhooks; die Integrationsseite listet die Make-App und alle Plugins.