Airtable Webhook-Integration mit Zoho CRM und Deluge für automatisiertes Mahnwesen Tutorial

  • Beitrags-Autor:

Airtable trifft auf Zoho: Wie Du Dein Mahnwesen mit Webhooks und Zoho CRM automatisierst

In vielen Unternehmen sind spezialisierte Tools wie Airtable, monday.com oder Smartsheet das Herzstück der operativen Prozesse. Sie sind flexibel, kollaborativ und schnell anpassbar. Doch wenn es um die automatisierte, professionelle Kundenkommunikation geht – insbesondere bei kritischen Prozessen wie dem Mahnwesen – stoßen diese Plattformen oft an ihre Grenzen. Der Versand von ansprechend formatierten HTML-Mails, die sich nahtlos in einen mehrstufigen Prozess einfügen, ist häufig nicht oder nur umständlich möglich. Genau hier entfaltet das Zoho-Ökosystem seine Stärken. In diesem Artikel zeigen wir Dir, wie Du ein externes System wie Airtable über Webhooks mit Zoho CRM verbindest, um einen robusten und vollautomatischen Mahnprozess aufzubauen.

Praxisbeispiel: Das isolierte Mahnwesen und der Ruf nach Automatisierung

Stell Dir ein wachsendes E-Commerce- oder Dienstleistungsunternehmen vor. Die Auftragsabwicklung, von der Bestellung bis zur Rechnungsstellung, wird komplett in einer Airtable-Base verwaltet. Das funktioniert reibungslos, bis eine Rechnung nicht bezahlt wird. Der Prozess sieht dann oft so aus: Ein Mitarbeiter muss manuell eine Liste überfälliger Rechnungen durchgehen, die passenden Kundendaten heraussuchen, eine E-Mail in seinem Mail-Client formulieren und den Versand manuell dokumentieren. Dieser Vorgang ist nicht nur fehleranfällig und zeitaufwendig, sondern auch inkonsistent. Mal wird eine Mahnung vergessen, mal ist der Tonfall unpassend, und eine professionelle, gebrandete HTML-Vorlage ist kaum umsetzbar. Ziel ist es, diesen Prozess zu 100 % zu automatisieren: Sobald ein bestimmter Status in Airtable gesetzt wird, soll automatisch eine vordefinierte, professionelle Mahn-E-Mail versendet und der Vorgang nachvollziehbar protokolliert werden.

Systemarchitektur: Zentral vs. Dezentral – Eine wichtige Vorentscheidung

Bevor wir in die technische Umsetzung eintauchen, müssen wir eine grundlegende architektonische Entscheidung treffen. Es gibt zwei gängige Ansätze:

  • Der zentrale Ansatz: Das externe System (Airtable) bleibt das führende System. Es enthält die gesamte Logik und alle Textvorlagen. Bei Bedarf sendet es einen Befehl an Zoho, der etwa lautet: „Sende diesen konkreten Text an diese E-Mail-Adresse.“ Zoho agiert hier nur als ausführendes Organ, eine reine „Mail-Schnittstelle“.
  • Der dezentrale Ansatz (The Zoho Way): Das externe System sendet nur die Rohdaten (z.B. den gesamten Auftragsdatensatz) an Zoho, sobald sich etwas ändert. Die gesamte Logik – wann eine Mahnung versendet wird, welche Vorlage verwendet wird und was danach passiert – wird vollständig in Zoho abgebildet.

Auch wenn der zentrale Ansatz auf den ersten Blick einfacher wirkt, birgt er Nachteile. Er macht Zoho zu einem „dummen“ Werkzeug und beraubt Dich seiner eigentlichen Stärken im Bereich Workflow-Automatisierung. Wir konzentrieren uns daher auf den dezentralen Ansatz. Er ist skalierbarer, robuster und ermöglicht es Dir, die volle Kraft von Zoho zu nutzen, indem Du eine verlässliche Datenbasis direkt im System schaffst.

Schritt-für-Schritt: Von der Airtable-Base zum automatisierten Mailing in Zoho

Folgen wir dem dezentralen Ansatz und bauen die Lösung Schritt für Schritt auf. Unser Ziel: Eine Statusänderung in einer Airtable-Tabelle („Order Confirmation“) synchronisiert den gesamten Datensatz mit einem benutzerdefinierten Modul in Zoho CRM und löst von dort den Mahnversand aus.

Schritt 1: Das passende Modul in Zoho CRM erstellen

Zuerst benötigen wir in Zoho CRM einen Ort, an dem wir die Auftragsdaten aus Airtable speichern können. Dafür eignet sich ein benutzerdefiniertes Modul am besten.

  1. Gehe in Zoho CRM zu Einstellungen > Anpassung > Module und Felder.
  2. Erstelle ein neues Modul und nenne es zum Beispiel „Auftragsabwicklung“.
  3. Lege nun die Felder an, die Du aus Deiner Airtable-Tabelle synchronisieren möchtest. Wichtig sind hierbei:
    • Auftrags-ID (Airtable): Ein Textfeld, das als eindeutiger Schlüssel dient, um Duplikate zu vermeiden. Markiere es als „Eindeutiges Feld“.
    • Kundenname: Ein Textfeld oder eine Verknüpfung zum Kontaktemodul.
    • Kunden-E-Mail: Ein E-Mail-Feld.
    • Rechnungsbetrag: Ein Währungsfeld.
    • Fälligkeitsdatum: Ein Datumsfeld.
    • Mahnstatus: Eine Auswahlliste (z.B. „Offen“, „1. Mahnung“, „2. Mahnung“, „Bezahlt“).

Schritt 2: Einen Webhook-Endpunkt in Zoho via Deluge Function erstellen

Damit Airtable Daten an Zoho senden kann, brauchen wir eine „Adresse“ – einen Webhook-Endpunkt. Diesen erstellen wir mit einer einfachen Custom Function, geschrieben in der Zoho-eigenen Skriptsprache Deluge.

  1. Gehe in Zoho CRM zu Einstellungen > Entwicklerbereich > Funktionen > Neue Funktion erstellen.
  2. Gib der Funktion einen Namen (z.B. `airtableOrderSync`) und wähle „Eigenständige Funktion“.
  3. Füge den folgenden Deluge-Code ein. Dieser Code empfängt die Daten, sucht nach einem bestehenden Auftrag anhand der Airtable-ID und legt ihn entweder neu an oder aktualisiert ihn (Upsert-Logik).

// Funktion: airtableOrderSync
// Argument: 'request' (String) - Enthält den JSON-Payload von Airtable

void airtableOrderSync(string request)
{
    // Den JSON-String von Airtable in eine Deluge Map umwandeln
    payload = request.toJSON();
    info "Webhook Payload empfangen: " + payload;

    // Die eindeutige ID aus dem Payload extrahieren
    airtableRecordId = payload.get("airtable_record_id");

    if(airtableRecordId != null)
    {
        // Prüfen, ob bereits ein Datensatz mit dieser Airtable ID existiert
        existingRecord = zoho.crm.searchRecords("Auftragsabwicklung", "(Airtable_Record_ID:equals:" + airtableRecordId + ")");

        // Vorbereitungen für den Datensatz in Zoho CRM
        recordMap = Map();
        recordMap.put("Name", payload.get("order_name")); // Der Name des Datensatzes in Zoho
        recordMap.put("Airtable_Record_ID", airtableRecordId);
        recordMap.put("Kunden_E_Mail", payload.get("customer_email"));
        recordMap.put("Rechnungsbetrag", payload.get("invoice_amount").toDecimal());
        recordMap.put("Mahnstatus", payload.get("dunning_status"));

        if(existingRecord.size() > 0)
        {
            // Datensatz existiert -> Aktualisieren
            recordId = existingRecord.get(0).get("id");
            updateResponse = zoho.crm.updateRecord("Auftragsabwicklung", recordId, recordMap);
            info "Datensatz aktualisiert: " + updateResponse;
        }
        else
        {
            // Datensatz existiert nicht -> Neu anlegen
            createResponse = zoho.crm.createRecord("Auftragsabwicklung", recordMap);
            info "Datensatz erstellt: " + createResponse;
        }
    }
}
  1. Speichere die Funktion. Klicke dann auf die drei Punkte neben dem Funktionsnamen und wähle „REST API“.
  2. Aktiviere den Schalter, um einen API-Schlüssel zu generieren. Du erhältst nun eine eindeutige URL. Das ist Dein Webhook-Endpunkt! Kopiere ihn.

Alternative: Falls Du nicht mit Code arbeiten möchtest, kannst Du einen ähnlichen Workflow auch mit Zoho Flow aufbauen. Dort erstellst Du einen neuen Flow mit einem „Webhook“-Trigger und nutzt die CRM-Aktionen „Fetch Record“ und „Create/Update Record“.

Schritt 3: Die Automation in Airtable einrichten

Jetzt bringen wir Airtable bei, die Daten an unseren Zoho-Webhook zu senden, sobald sich ein relevanter Datensatz ändert.

  1. Gehe in Deine Airtable Base und öffne den Bereich „Automations“.
  2. Erstelle eine neue Automation. Wähle als Trigger „When a record is updated“.
  3. Konfiguriere den Trigger so, dass er nur bei Änderungen im Feld „Mahnstatus“ (oder einem ähnlichen Feld) ausgelöst wird.
  4. Füge als Aktion „Run a script“ hinzu. Mit einem kleinen JavaScript kannst Du die Daten sauber formatieren und an den Webhook senden.

// Airtable Automation Script

// Die Daten des getriggerten Datensatzes abrufen
let inputConfig = input.config();
let record = inputConfig.record;

// Den Payload für Zoho zusammenstellen (Feldnamen anpassen!)
const payload = {
    "airtable_record_id": record.id,
    "order_name": record.fields["Order Name"],
    "customer_email": record.fields["Customer Email"],
    "invoice_amount": record.fields["Invoice Amount"],
    "dunning_status": record.fields["Dunning Status"].name // Bei Single-Select Feldern
};

// Den Webhook-Aufruf an Zoho senden
await fetch('DEINE_ZOHO_WEBHOOK_URL', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(payload)
});

console.log('Daten an Zoho gesendet.');
  1. Füge das Skript ein und ersetze DEINE_ZOHO_WEBHOOK_URL durch die URL aus Schritt 2. Passe die Feldnamen (z.B. "Order Name") exakt an die Namen in Deiner Airtable Base an.
  2. Füge eine Input-Variable namens record hinzu und konfiguriere sie so, dass sie die Record-ID und alle relevanten Felder aus dem Trigger-Schritt enthält.
  3. Aktiviere die Automation.

Schritt 4: Die Mahn-Logik in Zoho CRM implementieren

Die Daten fließen nun von Airtable nach Zoho. Der letzte Schritt ist, den E-Mail-Versand in Zoho CRM zu automatisieren.

  1. Gehe in Zoho CRM zu Einstellungen > Automatisierung > Workflow-Regeln > Regel erstellen.
  2. Wähle das Modul „Auftragsabwicklung“.
  3. Konfiguriere den Trigger: „Bei einer Datensatzaktion“ -> „Bearbeiten“. Wähle die Option „Wiederholen des Workflows bei jeder Bearbeitung eines Datensatzes“.
  4. Setze die Bedingung: „Mahnstatus“ -> „wurde geändert zu“ -> „1. Mahnung“.
  5. Wähle unter „Sofortige Aktionen“ die Aktion „E-Mail-Benachrichtigung senden“.
  6. Erstelle eine neue E-Mail-Vorlage. Hier kannst Du nun eine professionelle HTML-E-Mail gestalten und Platzhalter (Merge-Fields) aus Deinem „Auftragsabwicklung“-Modul verwenden, z.B. ${Auftragsabwicklung.Kundenname}.
  7. Speichere die Workflow-Regel.

Du kannst diesen Prozess nun beliebig erweitern, indem Du weitere Bedingungen für „2. Mahnung“ oder andere Status hinzufügst.

Tipps und Best Practices

  • Datenintegrität ist alles: Die Verwendung einer eindeutigen ID aus dem Quellsystem (hier die Airtable Record ID) ist entscheidend, um Duplikate zu vermeiden und eine saubere Upsert-Logik zu gewährleisten.
  • Fehlerbehandlung: Was passiert, wenn der Webhook fehlschlägt? Integriere in Deine Deluge-Funktion eine Benachrichtigung, z.B. per E-Mail oder eine Nachricht an einen Zoho Cliq Kanal, um über fehlgeschlagene Synchronisationen informiert zu werden.
  • Skalierung im Auge behalten: Dieser Prozess ist ein exzellenter Startpunkt. Langfristig solltest Du überlegen, ob Finanzdaten nicht besser direkt in Zoho Books oder Zoho Invoice verwaltet werden. Die hier gezeigte Integrationslogik lässt sich aber auf fast jedes Szenario übertragen.
  • Transaktions-Mails nutzen: Für geschäftskritische E-Mails wie Mahnungen empfiehlt sich der Versand über einen spezialisierten Dienst wie Zoho ZeptoMail, um eine maximale Zustellbarkeit sicherzustellen. Dies lässt sich ebenfalls per API aus der Deluge-Funktion ansteuern.

Zusätzliche Hinweise: Das Ökosystem weiter nutzen

Sobald die Daten in Zoho sind, stehen Dir alle Türen offen. Verbinde Dein neues Modul mit Zoho Analytics, um Dashboards zu erstellen, die Dir zeigen, wie viele Rechnungen in welcher Mahnstufe sind oder wie hoch die Erfolgsquote nach der ersten Mahnung ist. Erstelle Aufgaben in Zoho Projects für das Finanzteam, wenn eine Rechnung die letzte Mahnstufe erreicht hat. Die Möglichkeiten sind praktisch unbegrenzt.

Fazit

Du hast gesehen, wie Du durch eine clevere Kombination aus Webhooks, Deluge-Skripting und der nativen Automatisierung von Zoho CRM eine Brücke zwischen einem spezialisierten externen Tool und dem leistungsstarken Zoho-Ökosystem bauen kannst. Anstatt Zoho nur als simplen E-Mail-Versender zu degradieren, haben wir die Daten synchronisiert und die Intelligenz des Prozesses dorthin verlagert, wo sie hingehört: in ein System, das für komplexe Workflows gebaut wurde. Dieser dezentrale Ansatz macht Deine Prozesse nicht nur robuster und skalierbarer, sondern eröffnet Dir auch die Möglichkeit, viele weitere Zoho-Apps nahtlos zu integrieren und so den Wert Deiner Daten zu maximieren.

Verwendete Zoho Apps:

Potenziell nützliche Erweiterungen mit: