Du betrachtest gerade Shopify-Produktvarianten im Zoho CRM abbilden mit Zoho Flow und Deluge

Shopify-Produktvarianten im Zoho CRM abbilden mit Zoho Flow und Deluge

  • Beitrags-Autor:

Vom E-Commerce zum CRM: Ein Praxis-Guide zur Abbildung komplexer Shopify-Produkte in Zoho

Wenn dein E-Commerce-Business wächst, stößt Du schnell an die Grenzen einfacher Integrationen. Insbesondere wenn Du Produkte mit zahlreichen Varianten über Plattformen wie Shopify verkaufst, wird die saubere Übertragung dieser Daten in dein CRM zur zentralen Herausforderung. Eine Standard-Synchronisation erfasst oft nur den Hauptartikel, nicht aber die spezifische Farbe, Größe oder Konfiguration, die der Kunde tatsächlich gekauft hat. Das macht eine 360-Grad-Sicht auf den Kunden und eine saubere Auftragsabwicklung fast unmöglich. In diesem Fachartikel zeigen wir Dir, wie Du diese Komplexität meisterst. Wir bauen eine robuste und skalierbare Lösung, die Shopify-Produktvarianten präzise im Zoho CRM abbildet und dabei das volle Potenzial von Zoho-Tools wie Zoho Flow und der Skriptsprache Deluge nutzt.

Die Herausforderung: Ein Online-Shop mit individualisierbaren Produkten

Stell Dir einen Online-Shop vor, der hochwertige, individualisierbare Ausrüstung verkauft – zum Beispiel Camping-Module, Rucksäcke oder technische Geräte. Ein einzelnes Produktmodell kann in dutzenden oder sogar hunderten von Varianten existieren: verschiedene Materialien, Farben, Größen und optionale Zusatzfunktionen. Jede dieser Varianten hat eine eigene SKU (Stock Keeping Unit), einen eigenen Preis und eventuell ein eigenes Lagerbild.

Wenn nun ein Kunde eine bestimmte Variante über den Shopify-Shop bestellt, landet diese Information im Backend von Shopify. Die Herausforderung beginnt bei der Synchronisation mit dem Zoho CRM. Eine naive Integration würde vielleicht nur einen Datensatz für den „Rucksack Modell X“ anlegen, aber die Information, dass der Kunde ihn in „Signal-Orange“, Größe „L“ und mit dem „Extra-Laptopfach“ gekauft hat, geht verloren. Für das Vertriebs- und Support-Team sind diese Daten jedoch essenziell, um Anfragen korrekt zu bearbeiten, Upselling-Potenziale zu erkennen oder zukünftige Marketingaktionen zu planen.

Das Ziel ist also klar: Wir benötigen eine 1:1-Abbildung der Produktstruktur aus Shopify im Zoho CRM, die zwischen Hauptartikeln und deren spezifischen Varianten unterscheidet.

Schritt-für-Schritt: Die Lösung mit dem Drei-Typen-Modell

Die Lösung liegt nicht darin, einfach alle Varianten als eigenständige Produkte ins CRM zu „kippen“. Das würde schnell unübersichtlich. Stattdessen implementieren wir eine logische Struktur direkt im Produktmodul von Zoho CRM. Wir nennen es das „Drei-Typen-Modell“.

1. Das Konzept: Vorbereitung im Zoho CRM

Bevor wir mit der Automatisierung beginnen, müssen wir das Produktmodul im Zoho CRM anpassen. Wir benötigen zwei zusätzliche Felder, um unsere Struktur abzubilden:

  • Ein Picklisten-Feld namens „Produkttyp“: Dieses Feld definiert, um welche Art von Produkteintrag es sich handelt. Wir legen die folgenden drei Werte an:
    • Einfacher Artikel: Ein Produkt ohne jegliche Varianten (z.B. eine Dienstleistung, Versandkosten).
    • Container-Artikel: Der Hauptartikel, der als logische Klammer für alle seine Varianten dient. Er selbst wird nicht verkauft.
    • Variante: Ein spezifisches, kaufbares Produkt, das immer einem Container-Artikel zugeordnet ist.
  • Ein Lookup-Feld namens „Übergeordneter Artikel“: Dieses Feld wird nur für Produkte vom Typ „Variante“ verwendet. Es verweist auf den zugehörigen „Container-Artikel“. Dadurch schaffen wir die entscheidende Eltern-Kind-Beziehung.

Mit diesen beiden Feldern haben wir das Fundament für eine saubere und skalierbare Produktdatenbank gelegt.

2. Die Automatisierung: Synchronisation mit Zoho Flow

Das Herzstück unserer Lösung ist ein Workflow in Zoho Flow. Zoho Flow ermöglicht es uns, Apps über APIs zu verbinden und komplexe Logiken ohne tiefgehende Programmierung zu erstellen. Der Flow wird durch einen Trigger in Shopify gestartet.

Trigger: „Product Created or Updated“ in Shopify.

Sobald Shopify meldet, dass ein Produkt neu angelegt oder aktualisiert wurde, startet unser Flow und durchläuft folgende Logik:

  1. Entscheidung: Hat das Produkt Varianten?

    Der erste Schritt im Flow ist eine Entscheidung (Decision). Wir prüfen die Daten, die von der Shopify-API kommen. Jedes Produktobjekt enthält ein Array namens variants. Wir prüfen, ob die Anzahl der Elemente in diesem Array größer als 1 ist.

  2. Pfad A: Keine Varianten (Anzahl <= 1)

    Wenn das Produkt keine oder nur eine Standard-Variante hat, ist der Fall einfach. Wir führen die Aktion „Create/Update Record“ im Zoho CRM aus:

    • Wir legen einen neuen Produkteintrag an.
    • Wir mappen die Felder: Produktname, SKU, Preis etc. direkt von Shopify nach Zoho CRM.
    • Ganz wichtig: Wir setzen unser benutzerdefiniertes Feld „Produkttyp“ auf den Wert Einfacher Artikel.
  3. Pfad B: Das Produkt hat Varianten (Anzahl > 1)

    Dies ist der komplexere, aber entscheidende Pfad. Er besteht aus mehreren Schritten:

    • Schritt 3.1: Container-Artikel erstellen. Zuerst erstellen wir den Hauptartikel im Zoho CRM. Wir verwenden den allgemeinen Produktnamen aus Shopify. Die SKU kann leer bleiben oder eine generische Haupt-SKU erhalten. Wir setzen den „Produkttyp“ auf Container-Artikel. Wir speichern die ID dieses neu erstellten CRM-Datensatzes, denn wir brauchen sie gleich wieder.
    • Schritt 3.2: Durch die Varianten iterieren. Nun nutzen wir die „For Each“-Funktion in Zoho Flow. Wir lassen den Flow durch jedes Element im variants-Array aus der Shopify-API laufen.
    • Schritt 3.3: Varianten-Artikel erstellen. Innerhalb der Schleife erstellen wir für jede einzelne Variante einen neuen Produkteintrag im Zoho CRM:
      • Produktname: Hier kombinieren wir den Haupt-Produktnamen mit den Attributen der Variante (z.B. „Rucksack Modell X – Signal-Orange / L“).
      • SKU & Preis: Wir übernehmen die spezifische SKU und den Preis der jeweiligen Variante.
      • Produkttyp: Wir setzen den Wert auf Variante.
      • Verknüpfung: Jetzt kommt der entscheidende Punkt. Wir befüllen das Lookup-Feld „Übergeordneter Artikel“ mit der ID des Container-Artikels, den wir in Schritt 3.1 erstellt haben.

Nachdem dieser Flow einmal durchgelaufen ist, hast Du eine perfekt strukturierte Produktdatenbank im CRM. Unter dem „Container-Artikel“ siehst Du in der Related List alle zugehörigen Varianten.

3. Codebeispiel: Logik als Deluge Custom Function

Für maximale Flexibilität und Fehlerbehandlung kann man diese Logik auch in eine Deluge Custom Function auslagern, die man aus Zoho Flow aufruft. Das gibt Dir mehr Kontrolle über die Datenmanipulation.


// Deluge Custom Function in Zoho Flow oder Zoho CRM
// Nimmt das JSON-Objekt eines Shopify-Produkts als Input
void processShopifyProduct(map shopifyProductData)
{
    // Hole die Liste der Varianten aus den Shopify-Daten
    variantsList = shopifyProductData.get("variants");
    
    // Prüfe, ob mehr als eine Variante existiert
    if(variantsList.size() > 1)
    {
        // --- PFAD B: PRODUKT MIT VARIANTEN ---
        
        // 1. Container-Artikel im CRM anlegen
        containerMap = Map();
        containerMap.put("Product_Name", shopifyProductData.get("title"));
        containerMap.put("Produkttyp", "Container-Artikel"); // Unser Custom-Feld
        // Weitere Felder mappen...
        
        createContainerResponse = zoho.crm.createRecord("Products", containerMap);
        
        // Prüfen, ob die Erstellung erfolgreich war und die ID holen
        if(createContainerResponse.containKey("id"))
        {
            containerId = createContainerResponse.get("id");
            
            // 2. Durch jede Variante loopen und als eigenes Produkt anlegen
            for each variant in variantsList
            {
                variantMap = Map();
                // Produktname aus Hauptname und Variantentitel zusammensetzen
                variantName = shopifyProductData.get("title") + " - " + variant.get("title");
                variantMap.put("Product_Name", variantName);
                variantMap.put("Product_Code", variant.get("sku")); // SKU ist der Produkt-Code
                variantMap.put("Unit_Price", variant.get("price"));
                variantMap.put("Produkttyp", "Variante");
                
                // 3. Variante mit dem Container verknüpfen (entscheidender Schritt)
                variantMap.put("Uebergeordneter_Artikel", containerId);
                
                // Variante im CRM anlegen
                createVariantResponse = zoho.crm.createRecord("Products", variantMap);
                info "Variante erstellt: " + createVariantResponse;
            }
        }
    }
    else
    {
        // --- PFAD A: EINFACHER ARTIKEL ---
        simpleProductMap = Map();
        simpleProductMap.put("Product_Name", shopifyProductData.get("title"));
        
        // Shopify hat auch bei einfachen Produkten ein Varianten-Array mit einem Eintrag
        if(variantsList.size() > 0)
        {
            firstVariant = variantsList.get(0);
            simpleProductMap.put("Product_Code", firstVariant.get("sku"));
            simpleProductMap.put("Unit_Price", firstVariant.get("price"));
        }
        
        simpleProductMap.put("Produkttyp", "Einfacher Artikel");
        
        // Einfaches Produkt im CRM anlegen
        createSimpleResponse = zoho.crm.createRecord("Products", simpleProductMap);
        info "Einfaches Produkt erstellt: " + createSimpleResponse;
    }
}

Exkurs: Weitere Praxis-Automatisierungen

Wenn die Grundintegration steht, zeigen sich oft weitere Optimierungspotenziale. Ein häufiges Problem ist der Umgang mit Dateianhängen aus externen Formularen, wie z.B. Typeform.

Das Problem: Ein Kunde füllt ein Reklamationsformular in Typeform aus und lädt Bilder des Schadens hoch. Im Zoho Desk Ticket, das automatisch erstellt wird, erscheinen diese Bilder nur als anklickbare URLs. Der Support-Mitarbeiter muss jeden Link manuell öffnen und die Datei herunterladen.

Die Lösung per API:
Hier kann eine kleine Deluge-Funktion, die durch einen Webhook von Typeform ausgelöst wird, Wunder wirken.

  1. Typeform sendet bei jeder neuen Antwort die Daten an einen Webhook-Endpunkt in Zoho.
  2. Die Funktion extrahiert die Ticket-ID und die Liste der Bild-URLs aus den ankommenden Daten.
  3. Per Schleife ruft die Funktion jede Bild-URL mit invokeUrl auf, um den Datei-Inhalt (nicht nur den Link) abzurufen.
  4. Mit dem Befehl zoho.desk.attachFile() wird der abgerufene Datei-Inhalt direkt als Anhang an das zugehörige Ticket in Zoho Desk hochgeladen.

So werden aus umständlichen Links echte, direkt einsehbare Ticket-Anhänge – eine enorme Zeitersparnis für dein Support-Team.

Tipps und Best Practices

  • API-Limits im Auge behalten: Jede Aktion in Zoho Flow und jeder zoho.crm.createRecord-Aufruf in Deluge verbraucht API-Credits. Bei einer großen Anzahl von Produkten und Varianten solltest Du deine Nutzung im Auge behalten. Überlege, ob Du bei der initialen Synchronisation auf Bulk-APIs zurückgreifen kannst, um Credits zu sparen.
  • SKU als heiliger Gral: Die SKU ist der eindeutige Schlüssel, der deine Welten (Shopify, CRM, später vielleicht auch Zoho Books oder Zoho Inventory) zusammenhält. Stelle sicher, dass sie in Shopify sauber gepflegt wird.
  • Saubere Fehlerbehandlung: Was passiert, wenn die Shopify-API mal nicht erreichbar ist oder ein Datensatz fehlerhaft ist? Baue in deine Deluge-Skripte try-catch-Blöcke ein und konfiguriere in Zoho Flow Benachrichtigungen (z.B. eine Nachricht in Zoho Cliq), wenn ein Flow fehlschlägt.
  • Daten für die Zukunft vorbereiten: Unser Drei-Typen-Modell ist nicht nur eine Lösung für das CRM. Es ist die perfekte Vorbereitung für den nächsten Schritt: die Anbindung an Zoho Books oder Zoho Inventory. Da jede kaufbare Variante ein eigener Datensatz mit eigener SKU ist, können Angebote und Rechnungen präzise erstellt und der Lagerbestand pro Variante verwaltet werden.

Fazit: Mehr als nur eine Verbindung

Die Integration von E-Commerce-Plattformen wie Shopify in das Zoho-Ökosystem ist weit mehr als nur das Verbinden zweier Systeme. Es geht darum, eine durchdachte Datenarchitektur zu schaffen, die mit deinem Unternehmen wachsen kann. Der hier vorgestellte Ansatz zur Abbildung von Produktvarianten zeigt, wie Du mit den Bordmitteln von Zoho – insbesondere Zoho Flow und Deluge – auch komplexe, unternehmenskritische Herausforderungen meistern kannst.

Durch die saubere Trennung in Container-Artikel und Varianten schaffst Du nicht nur Klarheit im CRM, sondern legst auch das Fundament für eine durchgängige Prozesskette von der Kundenanfrage über den Verkauf bis hin zur Buchhaltung und Lagerverwaltung. Du investierst nicht nur in eine technische Lösung, sondern in die Datenqualität und Skalierbarkeit deines gesamten Geschäftsmodells.

Verwendete Zoho-Anwendungen in diesem Lösungsansatz:

Potenziell angebundene Anwendungen: