Zum Inhalt springen

Bubble.io

So schützt du den Zugang zu deiner Bubble-App, indem du sie mit Easytools verbindest.

Zuletzt aktualisiert
1. August 2025

Bubble mit Easytools verbinden - Schritt für Schritt

Sieh dir das Tutorial von Chris Rapacz an, dem Gründer von Sendby.io. Darin zeigt er, wie er seine Bubble-App mit Easytools verbunden hat, um Zahlungen einzuziehen und Abos sowie Nutzerzugänge sauber zu verwalten.

Hier findest du außerdem eine Mitschrift mit allen Links und Details aus dem Video.

1. Bubble-Datenbank vorbereiten

In deinem Datentyp User brauchst du ein paar eigene Felder, um Abos zu verfolgen:

  • easytools_customer_id - wird nach einer erfolgreichen Transaktion gesetzt
  • renewal_date
  • subscribed - entscheidend, steuert den Zugang
  • subscription_date
  • subscription_one_time
  • subscription_type - zum Beispiel “monthly”, “lifetime”
  • trial_ends_at

Hinweis: Das wichtigste Feld ist subscribed. Steht es auf yes, darf der Nutzer Inhalte erzeugen. Steht es auf no, leitest du ihn zu Easytools weiter, um ein Abo abzuschließen.

2. Easytools-Webhooks verstehen

Easytools kennt verschiedene Webhook-Typen, unter anderem:

  • subscription_created oder single_product_bought
  • product_assigned

Jeder Webhook hat eine eigene JSON-Struktur. Alle Events gehen an dieselbe URL, du musst das Routing also in deinem Bubble-Backend-Workflow selbst übernehmen.

Die vollständige Liste der Easytools-Webhook-Events findest du hier.

3. Webhook-URL einrichten

Gehe in Easytools zu API & Webhook settings und konfiguriere deine Webhook-URL:

**https://your-app.bubbleapps.io/version-test/api/1.1/wf/easy\_payments?api\_token=YOUR\_API\_KEY **

  • easy_payments → Name deines Backend-Workflows in Bubble
  • api_token → in Bubble unter Settings > API > Generate private key erzeugt

Achte auf die richtige Version in der URL:

  • Entwicklung: enthält version-test
  • Live: enthält version-test nicht

4. Webhook-Prüfung ergänzen (optional, aber sehr empfehlenswert)

So sicherst du deinen Webhook ab:

  1. Erzeuge in Easytools einen Webhook Signing Key.
  2. Nutze in Bubble das Toolbox-Plugin.
  3. Ergänze in deinem Backend-Workflow (easy_payments) einen Server-Script-Schritt.
  4. Füge deinen Signing Key ein und vergleiche den berechneten Hash mit x-webhook-signature von Easytools.

Stimmen beide überein, läuft der Workflow weiter. Wenn nicht, brich ihn sofort ab.

Hinweis: Den Signing Key kannst du nach dem Erzeugen nicht mehr einsehen - bewahre ihn also sicher auf.

5. Webhook-Events an Sub-Workflows verteilen

Nutze deinen Haupt-Webhook (easy_payments) als Verteiler. Je nach Event-Typ leitest du an einen bestimmten Backend-Workflow weiter:

Beispiele:

  • process_product_assigned
  • process_subscription_expired

Nur der Haupt-Webhook sollte öffentlich sein. Diese Sub-Workflows bleiben privat.

6. Sub-Workflows einrichten

Für process_product_assigned:

  • Aktiviere “Ignore privacy rules”
  • Lege die Parameter, die aus dem Webhook kommen, manuell fest:
    • subscription_type
    • subscription_one_time
    • is_subscription
    • price
    • custom_id
    • und so weiter

Schritte:

  1. (Optional) Schick dir zum Testen selbst eine E-Mail.
  2. Ändere den passenden Nutzer in deiner Datenbank:
    • Setze subscribed = yes, wenn ein gültiges Abo aktiv ist.
    • Aktualisiere weitere Felder wie subscription_type, renewal_date, trial_ends_at und so weiter.
  3. Nutze bedingte Logik:
    • Wenn subscription_one_time = yessubscribed = yes
    • Wenn subscription_one_time und is_subscription beide no sind → subscribed = no

Für process_subscription_expired:

  • Ändere den Nutzer:
    • Setze subscribed = no
    • Setze access_expired = yes
  • Schick dir optional eine Benachrichtigungs-E-Mail

7. Mehrere JSON-Formate handhaben

Bubble erwartet eine einheitliche JSON-Struktur, Easytools schickt je nach Event aber unterschiedliche.

So löst du das:

  1. Kopiere alle JSON-Beispiele aus der Easytools-Dokumentation.
  2. Führe sie zu einem einzigen JSON zusammen.
  3. Gehe in Bubble zu deinem Workflow easy_payments und klicke auf “Detect data”.
  4. Schicke dein zusammengeführtes JSON per Postman:
    • Methode: POST
    • Webhook-URL einfügen
    • Body: raw JSON
  5. Bubble erkennt die Struktur. Prüfe jeden Feldtyp noch einmal (zum Beispiel number, text, date).

Fertige zusammengeführte JSON-Datei

Chris hat ein kombiniertes JSON-Schema erzeugt, das alle relevanten Schlüssel aus sämtlichen Easytools-Webhook-Events enthält. Damit initialisierst du den Webhook-Endpunkt in Bubble korrekt.

Lade die kombinierte JSON-Datei hier herunter.

Nutze diese Datei, wenn du im Schritt “Detect data” die Testanfrage per Postman an Bubble schickst. So erfasst Bubble jedes Feld, das in den verschiedenen Easytools-Webhook-Events vorkommt.

So nutzt du die Datei:

  1. Öffne die Datei easytools_merged_webhook.json.
  2. Kopiere ihren Inhalt in den Raw-Body deiner Anfrage in Postman.
  3. Schicke die POST-Anfrage an deine Webhook-Erkennungs-URL in Bubble.

Nach dem Senden:

  • Bubble zeigt dir alle erkannten Felder.
  • Prüfe jedes einzelne und bestätige die richtigen Datentypen:
    • Datumsangaben als date.
    • Zahlen als number.
    • Textfelder als text.

Wenn alles passt, klicke in Bubble auf Save, um die Einrichtung abzuschließen.

8. Nutzer per E-Mail zuordnen

Damit der Webhook beim richtigen Nutzer landet:

  • Lass deine Nutzer zuerst ein Konto in deiner App anlegen.
  • Fülle das Easytools-Checkout-Formular mit der E-Mail des aktuellen Nutzers vor.
  • Suche den Nutzer in deinem Webhook-Workflow so:

**Search for Users where email = request.body.customer_email **

Stimmt die E-Mail nicht überein, kann Bubble den Kauf keinem Nutzer zuordnen. Sorge also von Anfang an für einheitliche E-Mail-Adressen.

9. Den kompletten Ablauf testen

  1. Setze das Feld subscribed eines Testnutzers in der Bubble-Datenbank auf no.
  2. Versuche, eine geschützte Funktion aufzurufen → der Nutzer wird zum Easytools-Checkout geleitet.
  3. Führe eine Testzahlung durch.
  4. Zurück in Bubble:
    • Der Webhook kommt an und wird geprüft
    • Das Feld subscribed des Nutzers wird aktualisiert
    • Die App erkennt das und gibt den Zugang frei

Hinweis: Die Verarbeitung des Webhooks dauert meist 8 bis 10 Sekunden.

Du kannst entweder:

  • eine Verzögerung von 20 Sekunden in der Weiterleitung von Easytools einbauen
  • oder einen “Wird verarbeitet”-Bildschirm zeigen und dabei auf subscribed = yes prüfen

Zum Schluss

  • Backend-Workflows in Bubble gibt es nur in den kostenpflichtigen Tarifen.
  • Teste immer sowohl Einmalkäufe als auch wiederkehrende Abos.
  • Achte besonders bei Zahlungen darauf, dass deine Webhook-Logik sicher ist.
Nicht gefunden, wonach du gesucht hast? Kontaktiere uns