Appearance
Anwendungsfälle & Beispiele
Workflows können in vielen Bereichen von Argon ERP zur Prozessoptimierung eingesetzt werden. Diese Seite stellt detaillierte, praxisnahe Beispiele vor, die Ihnen als Vorlage oder Inspiration für Ihre eigenen Workflows dienen können.
Jedes Beispiel enthält:
- Ziel und Geschäftskontext: Welches Problem wird gelöst?
- Verwendete Knoten: Welche Komponenten werden eingesetzt?
- Detaillierter Ablauf: Schritt-für-Schritt-Beschreibung des Workflows
- Konfigurationstipps: Wichtige Einstellungen und Hinweise
- Erweiterungsmöglichkeiten: Wie kann der Workflow angepasst werden?
1. Genehmigungsprozess für Bestellanforderungen
Ziel und Geschäftskontext
Automatisierung des Genehmigungsprozesses für Bestellanforderungen basierend auf dem Gesamtbetrag. Bestellanforderungen unter einem bestimmten Schwellenwert werden automatisch genehmigt, während höhere Beträge die Freigabe durch den Abteilungsleiter erfordern.
Geschäftsvorteile:
- Reduzierung der Bearbeitungszeit für kleine Bestellungen
- Konsistente Anwendung von Genehmigungsregeln
- Vollständige Nachvollziehbarkeit aller Genehmigungen
- Automatische Benachrichtigungen für alle Beteiligten
Verwendete Knoten
- Start: Objekt-Ereignis (Bestellanforderung erstellt)
- Kontrollfluss: Bedingung prüfen (mehrfach)
- Aktionen:
- Freigabe anfordern (für manuelle Genehmigung)
- E-Mail senden (Statusbenachrichtigungen)
- SQL-Abfrage oder Objekt laden (Statusänderungen)
- Ende: Workflow beenden
Detaillierter Workflow-Ablauf
1. START: Objekt-Ereignis "Bestellanforderung erstellt"
└─ Konfiguration:
* Objekt-Typ: Bestellanforderung
* Ereignis: created
* Optional: Bedingung, um nur bestimmte Bestellanforderungen zu verarbeiten
2. BEDINGUNG PRÜFEN: "Ist Gesamtbetrag > 1000€?"
├─ Bedingung: {{context.entity.Gesamtbetrag}} > 1000
│
├─ JA (über 1000€):
│ └─> 3. FREIGABE ANFORDERN: "Abteilungsleiter-Genehmigung"
│ └─ Konfiguration:
│ * Freigabebeauftragter: Abteilungsleiter (aus Objekt ermittelt)
│ * E-Mail-Benachrichtigung: Ja
│ * Zeitlimit: 48 Stunden
│ * Externe Freigabe: Optional konfigurierbar
│ │
│ └─> 4. BEDINGUNG PRÜFEN: "Wurde Freigabe erteilt?"
│ ├─ Bedingung: {{context.approval.approved}} == true
│ │
│ ├─ JA (Genehmigt):
│ │ └─> 5. SQL-ABFRAGE: "Status auf 'Genehmigt' setzen"
│ │ └─ UPDATE Bestellanforderung
│ │ SET Status = 'Genehmigt',
│ │ GenehmigtAm = GETDATE(),
│ │ GenehmigtVon = '{{context.approval.approvedBy}}'
│ │ WHERE ID = {{context.entity.ID}}
│ │ │
│ │ └─> 6. E-MAIL SENDEN: "Genehmigung an Ersteller"
│ │ └─ An: {{context.entity.ErstellerEmail}}
│ │ Betreff: "Ihre Bestellanforderung wurde genehmigt"
│ │ Inhalt: "Ihre Bestellanforderung {{context.entity.Nummer}}
│ │ wurde von {{context.approval.approvedBy}} genehmigt."
│ │ │
│ │ └─> ENDE: Workflow beenden
│ │
│ └─ NEIN (Abgelehnt):
│ └─> 7. SQL-ABFRAGE: "Status auf 'Abgelehnt' setzen"
│ └─ UPDATE Bestellanforderung
│ SET Status = 'Abgelehnt',
│ AbgelehntAm = GETDATE(),
│ AbgelehntVon = '{{context.approval.rejectedBy}}'
│ WHERE ID = {{context.entity.ID}}
│ │
│ └─> 8. E-MAIL SENDEN: "Ablehnung an Ersteller"
│ └─ An: {{context.entity.ErstellerEmail}}
│ Betreff: "Ihre Bestellanforderung wurde abgelehnt"
│ Inhalt: "Ihre Bestellanforderung {{context.entity.Nummer}}
│ wurde abgelehnt. Grund: {{context.approval.rejectionReason}}"
│ │
│ └─> ENDE: Workflow beenden
│
└─ NEIN (unter 1000€):
└─> 9. SQL-ABFRAGE: "Status auf 'Automatisch genehmigt' setzen"
└─ UPDATE Bestellanforderung
SET Status = 'Genehmigt',
GenehmigtAm = GETDATE(),
GenehmigtVon = 'System (Automatisch)',
Genehmigungsgrund = 'Betrag unter Schwellenwert'
WHERE ID = {{context.entity.ID}}
│
└─> 10. E-MAIL SENDEN: "Automatische Genehmigung an Ersteller"
└─ An: {{context.entity.ErstellerEmail}}
Betreff: "Ihre Bestellanforderung wurde automatisch genehmigt"
Inhalt: "Ihre Bestellanforderung {{context.entity.Nummer}}
wurde automatisch genehmigt (Betrag unter 1000€)."
│
└─> ENDE: Workflow beendenKonfigurationstipps
- Schwellenwert anpassbar machen: Verwenden Sie eine Systemvariable oder Objektfeld für den Schwellenwert, damit dieser ohne Workflow-Änderung angepasst werden kann
- Genehmiger dynamisch ermitteln: Nutzen Sie die Hierarchie des Organigramms, um den genehmigungsberechtigten Abteilungsleiter automatisch zu ermitteln
- Zeitlimit für Freigaben: Setzen Sie realistische Zeitlimits (z.B. 48-72 Stunden) und implementieren Sie Eskalationen bei Überschreitung
- Fehlerbehandlung: Fügen Sie Fehlerpfade hinzu für den Fall, dass die E-Mail nicht versendet werden kann oder die Datenbankoperation fehlschlägt
Erweiterungsmöglichkeiten
- Mehrstufige Genehmigungen: Bei sehr hohen Beträgen (z.B. >10.000€) zusätzliche Freigabe durch Geschäftsführung
- Budgetsprüfung: Vor Genehmigung prüfen, ob noch Budget verfügbar ist
- Automatische Bestellung: Nach Genehmigung automatisch Bestellung beim Lieferanten auslösen
- Kategorie-basierte Genehmigungen: Unterschiedliche Genehmiger je nach Artikelkategorie
- Historische Analyse: Speicherung von Genehmigungsstatistiken für Reporting
2. Artikelstammdaten-Validierung
Ziel und Geschäftskontext
Automatische Qualitätssicherung von Artikelstammdaten bei Erstellung oder Änderung. Der Workflow prüft wichtige Felder auf Vollständigkeit und Plausibilität und benachrichtigt relevante Teams bei Problemen.
Geschäftsvorteile:
- Höhere Datenqualität durch automatische Prüfungen
- Frühe Erkennung von Datenfehlern
- Automatische Zuordnung von Korrekturaufgaben
- Nachweisbare Datenqualität für Compliance
Verwendete Knoten
- Start: Objekt-Ereignis (Artikel erstellt oder aktualisiert)
- Kontrollfluss: Bedingung prüfen (mehrfach, sequenziell)
- Aktionen:
- E-Mail senden (Benachrichtigungen)
- Aufgabe erstellen (Korrekturaufgaben)
- SQL-Abfrage (Statusupdates)
Detaillierter Workflow-Ablauf
1. START: Objekt-Ereignis "Artikel erstellt/aktualisiert"
└─ Konfiguration:
* Objekt-Typ: Artikel
* Ereignisse: created, updated
* Optional: Bedingung, um nur bestimmte Artikel zu prüfen
2. BEDINGUNG PRÜFEN: "Ist Beschreibung leer oder zu kurz?"
├─ Bedingung: {{context.entity.Beschreibung}} == null
│ OR LEN({{context.entity.Beschreibung}}) < 10
│
├─ JA (Fehler):
│ └─> 3. AUFGABE ERSTELLEN: "Beschreibung vervollständigen"
│ └─ Konfiguration:
│ * Titel: "Artikel {{context.entity.Artikelnummer}}: Beschreibung fehlt"
│ * Beschreibung: "Artikel {{context.entity.Artikelnummer}} hat keine
│ oder eine zu kurze Beschreibung."
│ * Zugewiesen an: Datenpflege-Team
│ * Priorität: Normal
│ * Fälligkeitsdatum: Heute + 3 Tage
│ * Verknüpfung: Artikel {{context.entity.ID}}
│ │
│ └─> 4. E-MAIL SENDEN: "Benachrichtigung Datenpflege"
│ └─ An: Datenpflege-Team
│ Betreff: "Artikelvalidierung: Beschreibung fehlt"
│ Inhalt: "Artikel {{context.entity.Artikelnummer}} benötigt
│ eine vollständige Beschreibung."
│ │
│ └─> ENDE: Workflow beenden (weitere Prüfungen überspringen)
│
└─ NEIN (OK):
└─> 5. BEDINGUNG PRÜFEN: "Ist Verkaufspreis <= Einkaufspreis?"
├─ Bedingung: {{context.entity.Verkaufspreis}} <= {{context.entity.Einkaufspreis}}
│
├─ JA (Fehler):
│ └─> 6. AUFGABE ERSTELLEN: "Preisprüfung erforderlich"
│ └─ Konfiguration:
│ * Titel: "Preisprüfung: {{context.entity.Artikelnummer}}"
│ * Beschreibung: "Verkaufspreis ({{context.entity.Verkaufspreis}}€)
│ ist <= Einkaufspreis ({{context.entity.Einkaufspreis}}€)"
│ * Zugewiesen an: Produktmanagement
│ * Priorität: Hoch
│ * Verknüpfung: Artikel {{context.entity.ID}}
│ │
│ └─> 7. E-MAIL SENDEN: "Benachrichtigung Produktmanagement"
│ └─ An: Produktmanagement
│ Betreff: "Preisprüfung erforderlich: {{context.entity.Artikelnummer}}"
│ Inhalt: "Artikel {{context.entity.Artikelnummer}} hat einen
│ Verkaufspreis, der <= dem Einkaufspreis ist.
│ Bitte prüfen!"
│ │
│ └─> ENDE: Workflow beenden
│
└─ NEIN (OK):
└─> 8. BEDINGUNG PRÜFEN: "Sind alle Pflichtfelder ausgefüllt?"
├─ Prüft: Artikelnummer, Bezeichnung, Einheit, etc.
│
├─ NEIN (Fehler):
│ └─> 9. AUFGABE ERSTELLEN: "Pflichtfelder vervollständigen"
│ └─ Konfiguration ähnlich wie oben
│ │
│ └─> ENDE: Workflow beenden
│
└─ JA (Alle Prüfungen OK):
└─> 10. SQL-ABFRAGE: "Status auf 'Geprüft' setzen"
└─ UPDATE Artikel
SET Status = 'Geprüft',
GeprüftAm = GETDATE(),
Datenqualität = 'OK'
WHERE ID = {{context.entity.ID}}
│
└─> ENDE: Workflow beendenKonfigurationstipps
- Prüfungen priorisieren: Beginnen Sie mit den wichtigsten Prüfungen (z.B. Pflichtfelder), damit Fehler schnell erkannt werden
- Sammel-Benachrichtigungen: Für häufig auftretende Fehler können Sie Sammel-E-Mails implementieren, statt für jeden Artikel einzeln
- Validierungsregeln zentral definieren: Speichern Sie Validierungsregeln in einer Konfigurationstabelle für einfache Anpassung
- Logging: Protokollieren Sie alle gefundenen Probleme für spätere Analyse
Erweiterungsmöglichkeiten
- Mehrsprachige Prüfungen: Validierung von Übersetzungen in verschiedenen Sprachen
- Bild-Validierung: Prüfung, ob Artikelbilder vorhanden und in korrektem Format sind
- Kategorisierung: Automatische Vorschläge für Artikelkategorien basierend auf Beschreibung
- Vollständigkeits-Score: Berechnung eines Datenqualitäts-Scores für jeden Artikel
3. Benachrichtigung bei niedrigem Lagerbestand
Ziel und Geschäftskontext
Proaktive Warnung vor Lagerbestands-Problemen. Der Workflow überwacht Lagerbestände und benachrichtigt den Einkauf automatisch, wenn der Mindestbestand unterschritten wird, um Engpässe zu vermeiden.
Geschäftsvorteile:
- Vermeidung von Lagerbestands-Engpässen
- Automatische Nachbestellungsanregungen
- Reduzierung von Stillstandszeiten
- Optimierung der Lagerhaltungskosten
Verwendete Knoten
- Start: Objekt-Ereignis (Lagerbestand aktualisiert) ODER Zeitgesteuert (Cron) für tägliche Prüfung
- Kontrollfluss: Bedingung prüfen
- Aktionen:
- E-Mail senden
- Aufgabe erstellen
- Optional: Ausgehende HTTP Anfrage (zur automatischen Nachbestellung)
Detaillierter Workflow-Ablauf
Variante A: Ereignisgesteuert (sofort bei Bestandsänderung)
1. START: Objekt-Ereignis "Lagerbestand aktualisiert"
└─ Konfiguration:
* Objekt-Typ: Artikel-Lagerbestand
* Ereignis: updated
* Bedingung: Optional - nur bestimmte Artikel/Standorte
2. BEDINGUNG PRÜFEN: "Ist Bestand <= Mindestbestand?"
├─ Bedingung: {{context.entity.AktuellerBestand}} <= {{context.entity.Mindestbestand}}
│
├─ JA (Alarm):
│ └─> 3. BEDINGUNG PRÜFEN: "Wurde bereits benachrichtigt?"
│ ├─ Prüft: Hat dieser Artikel in den letzten 24h eine Benachrichtigung erhalten?
│ │ (Verhindert Spam bei mehrfachen Updates)
│ │
│ ├─ JA (Bereits benachrichtigt):
│ │ └─> ENDE: Workflow beenden (keine erneute Benachrichtigung)
│ │
│ └─ NEIN (Noch nicht benachrichtigt):
│ └─> 4. AUFGABE ERSTELLEN: "Nachbestellung erforderlich"
│ └─ Konfiguration:
│ * Titel: "Nachbestellung: {{context.entity.Artikelnummer}}"
│ * Beschreibung: "Artikel {{context.entity.Artikelnummer}}
│ ({{context.entity.Bezeichnung}}) hat Mindestbestand
│ erreicht. Aktuell: {{context.entity.AktuellerBestand}},
│ Mindestbestand: {{context.entity.Mindestbestand}}"
│ * Zugewiesen an: Einkauf
│ * Priorität: Hoch
│ * Fälligkeitsdatum: Heute
│ * Verknüpfung: Artikel {{context.entity.ArtikelID}}
│ │
│ └─> 5. E-MAIL SENDEN: "Benachrichtigung Einkauf"
│ └─ An: Einkauf (Team oder spezifischer Einkäufer)
│ Betreff: "⚠️ Mindestbestand erreicht: {{context.entity.Artikelnummer}}"
│ Inhalt: HTML-E-Mail mit:
│ - Artikelinformationen
│ - Aktueller vs. Mindestbestand
│ - Empfohlene Bestellmenge (berechnet)
│ - Link zum Artikel im System
│ │
│ └─> 6. SQL-ABFRAGE: "Benachrichtigungszeitpunkt speichern"
│ └─ INSERT INTO Benachrichtigungsprotokoll
│ (ArtikelID, BenachrichtigtAm, Benachrichtigungstyp)
│ VALUES ({{context.entity.ArtikelID}}, GETDATE(), 'Mindestbestand')
│ │
│ └─> ENDE: Workflow beenden
│
└─ NEIN (Bestand OK):
└─> ENDE: Workflow beendenVariante B: Zeitgesteuert (tägliche Prüfung aller Artikel)
1. START: Zeitgesteuert (Cron: "0 8 * * *" = täglich 8 Uhr)
└─ Konfiguration:
* Cron-Ausdruck: "0 8 * * *" (täglich um 8 Uhr)
* Oder: "0 */6 * * *" (alle 6 Stunden)
2. SQL-ABFRAGE: "Finde Artikel mit niedrigem Bestand"
└─ SELECT ArtikelID, Artikelnummer, Bezeichnung,
AktuellerBestand, Mindestbestand
FROM ArtikelLagerbestand
WHERE AktuellerBestand <= Mindestbestand
AND Aktiv = 1
ORDER BY (AktuellerBestand / Mindestbestand) ASC
3. FÜR JEDES ELEMENT WIEDERHOLEN: "Verarbeite jeden betroffenen Artikel"
└─ Iteriert über die Ergebnisse der SQL-Abfrage
│
└─> 4. BEDINGUNG PRÜFEN: "Wurde bereits benachrichtigt?"
├─ Prüft Protokoll der letzten 24 Stunden
│
└─> Falls nicht: Benachrichtigung senden (wie in Variante A)Konfigurationstipps
- Deduplizierung: Implementieren Sie eine Prüfung, um mehrfache Benachrichtigungen für denselben Artikel zu vermeiden
- Berechnung der Bestellmenge: Nutzen Sie Formeln basierend auf Mindestbestand, Meldebestand und durchschnittlichem Verbrauch
- Priorisierung: Weisen Sie höhere Prioritäten für kritische Artikel zu (z.B. Produktionskritische Komponenten)
- Standort-spezifisch: Berücksichtigen Sie verschiedene Standorte mit unterschiedlichen Beständen
Erweiterungsmöglichkeiten
- Automatische Nachbestellung: Integration mit Lieferanten-API für automatische Bestellungen
- Kritikalitäts-Bewertung: Dynamische Priorisierung basierend auf Verbrauchsgeschwindigkeit
- Lieferanten-Vorschläge: Automatische Empfehlung des besten Lieferanten basierend auf Preisen und Lieferzeiten
- Dashboard-Integration: Automatische Erstellung von Dashboard-Warnungen
- Vorhersagen: KI-basierte Vorhersage von Bestandsproblemen basierend auf historischen Daten
4. Onboarding neuer Mitarbeiter
Ziel und Geschäftskontext
Automatisierung des kompletten Mitarbeiter-Onboarding-Prozesses vom Tag der Einstellung bis zum ersten Arbeitstag. Der Workflow koordiniert Aufgaben verschiedener Abteilungen und stellt sicher, dass nichts vergessen wird.
Geschäftsvorteile:
- Konsistenter Onboarding-Prozess für alle neuen Mitarbeiter
- Reduzierung von Fehlern und Versäumnissen
- Bessere Erfahrung für neue Mitarbeiter
- Automatische Koordination zwischen Abteilungen
- Nachvollziehbare Compliance-Prozesse
Verwendete Knoten
- Start: Objekt-Ereignis (Mitarbeiter erstellt oder Startdatum erreicht)
- Aktionen:
- Ausgehende HTTP Anfrage (IT-System-Integration)
- Aufgabe erstellen (für verschiedene Abteilungen)
- E-Mail senden (Benachrichtigungen und Willkommens-E-Mails)
- SQL-Abfrage (Statusupdates)
- Optional: Unter-Workflow ausführen (für wiederkehrende Teilprozesse)
Detaillierter Workflow-Ablauf
1. START: Objekt-Ereignis "Mitarbeiter erstellt"
└─ Konfiguration:
* Objekt-Typ: Mitarbeiter
* Ereignis: created
* Optional: Nur bei aktivem Status
2. SQL-ABFRAGE: "Onboarding-Status initialisieren"
└─ UPDATE Mitarbeiter
SET OnboardingStatus = 'In Bearbeitung',
OnboardingGestartetAm = GETDATE()
WHERE ID = {{context.entity.ID}}
3. PARALLELER PFAD 1: IT-Onboarding
└─> 4. AUSGEHENDE HTTP ANFRAGE: "IT-Konto erstellen"
└─ Konfiguration:
* URL: https://it-system.company.com/api/users
* Methode: POST
* Authentifizierung: Bearer Token
* Body: {
"firstName": "{{context.entity.Vorname}}",
"lastName": "{{context.entity.Nachname}}",
"email": "{{context.entity.Email}}",
"department": "{{context.entity.Abteilung}}",
"startDate": "{{context.entity.Einstellungsdatum}}"
}
│
└─> 5. BEDINGUNG PRÜFEN: "Wurde IT-Konto erfolgreich erstellt?"
├─ Prüft: {{context.httpResponse.statusCode}} == 201
│
├─ JA (Erfolgreich):
│ └─> 6. SQL-ABFRAGE: "IT-Konto-Status speichern"
│ └─ UPDATE Mitarbeiter
SET ITKontoErstellt = 1,
ITKontoBenutzername = '{{context.httpResponse.body.username}}'
WHERE ID = {{context.entity.ID}}
│
└─ NEIN (Fehler):
└─> 7. AUFGABE ERSTELLEN: "IT-Konto manuell erstellen"
└─ Zugewiesen an: IT-Administration
└─ Priorität: Hoch
4. PARALLELER PFAD 2: Facility Management
└─> 8. AUFGABE ERSTELLEN: "Arbeitsplatz vorbereiten"
└─ Konfiguration:
* Titel: "Arbeitsplatz für {{context.entity.Name}} einrichten"
* Beschreibung: "Neue/r Mitarbeiter/in: {{context.entity.Vorname}}
{{context.entity.Nachname}}
Abteilung: {{context.entity.Abteilung}}
Startdatum: {{context.entity.Einstellungsdatum}}
Bitte bereiten Sie vor:
- Arbeitsplatz mit PC/Laptop
- Telefon
- Zutrittskarte
- Büromaterialien"
* Zugewiesen an: Facility Management
* Priorität: Normal
* Fälligkeitsdatum: {{context.entity.Einstellungsdatum}} - 2 Tage
* Verknüpfung: Mitarbeiter {{context.entity.ID}}
5. PARALLELER PFAD 3: HR-Dokumentation
└─> 9. AUFGABE ERSTELLEN: "Dokumente prüfen"
└─ Konfiguration:
* Titel: "Onboarding-Dokumente prüfen: {{context.entity.Name}}"
* Beschreibung: "Bitte prüfen und vervollständigen Sie:
- Arbeitsvertrag
- Steuerkarte
- Sozialversicherungsnachweis
- Gesundheitszeugnis (falls erforderlich)"
* Zugewiesen an: HR-Abteilung
* Priorität: Normal
* Fälligkeitsdatum: {{context.entity.Einstellungsdatum}} - 1 Tag
6. PARALLELER PFAD 4: Willkommens-E-Mail
└─> 10. E-MAIL SENDEN: "Willkommens-E-Mail an neuen Mitarbeiter"
└─ Konfiguration:
* An: {{context.entity.Email}}
* Betreff: "Willkommen bei [Unternehmen]!"
* Inhalt: HTML-E-Mail mit:
- Persönliche Begrüßung
- Erste Informationen zum Unternehmen
- Onboarding-Timeline
- Kontaktpersonen
- Zugangsdaten (falls IT-Konto bereits erstellt)
- Anhang: Onboarding-Guide (PDF)
7. NACH PARALLELEN PFADEN: Warte auf Abschluss kritischer Aufgaben
└─> 11. FREIGABE ANFORDERN: "Onboarding-Abschluss"
└─ Konfiguration:
* Freigabebeauftragte: HR-Leitung
* E-Mail-Benachrichtigung: Ja
* Beschreibung: "Bitte bestätigen Sie den Abschluss des
Onboarding-Prozesses für {{context.entity.Name}}"
│
└─> 12. BEDINGUNG PRÜFEN: "Wurde Onboarding abgeschlossen?"
├─ Prüft: {{context.approval.approved}} == true
│
└─ JA:
└─> 13. SQL-ABFRAGE: "Onboarding abschließen"
└─ UPDATE Mitarbeiter
SET OnboardingStatus = 'Abgeschlossen',
OnboardingAbgeschlossenAm = GETDATE()
WHERE ID = {{context.entity.ID}}
│
└─> 14. E-MAIL SENDEN: "Onboarding abgeschlossen"
└─ An: {{context.entity.Email}}, HR, Vorgesetzter
└─ Betreff: "Ihr Onboarding wurde abgeschlossen"
│
└─> ENDE: Workflow beendenKonfigurationstipps
- Parallele Ausführung: Nutzen Sie die Möglichkeit, mehrere Pfade parallel auszuführen, um Zeit zu sparen
- Template-Variablen: Verwenden Sie konsistent Template-Variablen für Namen, E-Mail-Adressen etc.
- Fehlerbehandlung: Implementieren Sie Fallback-Mechanismen für kritische Schritte (z.B. manuelle Erstellung wenn automatisch fehlschlägt)
- Personalisiert: Stellen Sie sicher, dass alle Kommunikationen personalisiert sind
- Reminder: Implementieren Sie Erinnerungen für Aufgaben, die nicht rechtzeitig erledigt wurden
Erweiterungsmöglichkeiten
- Rekrutierungsphase: Integration mit Bewerbungssystem für nahtlosen Übergang
- Equipment-Verwaltung: Automatische Reservierung und Bereitstellung von Equipment
- Schulungen: Automatische Einladungen zu verpflichtenden Schulungen
- Feedback-Loop: Automatische Umfrage nach 30/60/90 Tagen
- Integration mit Personalsystemen: Automatische Synchronisation mit Lohn- und Gehaltsabrechnung
5. Datenimport aus externem System
Ziel und Geschäftskontext
Automatischer, regelmäßiger Import von Daten aus externen Systemen (z.B. Lieferantenkataloge, Marktplatz-Daten, Drittsysteme) zur Synchronisation und Aktualisierung der eigenen Datenbank.
Geschäftsvorteile:
- Automatische Datensynchronisation ohne manuelle Eingriffe
- Aktuelle Daten zu jeder Zeit
- Reduzierung von Dateneingabefehlern
- Zeitersparnis durch Automatisierung
Verwendete Knoten
- Start: Zeitgesteuert (Cron)
- Aktionen:
- Ausgehende HTTP Anfrage (Datenabfrage)
- Daten importieren / Daten in Datenbank importieren
- SQL-Abfrage (Validierung, Bereinigung)
- E-Mail senden (Fehlerbenachrichtigungen)
- Feed-Eintrag erstellen (Import-Statistik)
Detaillierter Workflow-Ablauf
1. START: Zeitgesteuert (Cron: "0 2 * * *" = täglich 2 Uhr)
└─ Konfiguration:
* Cron-Ausdruck: "0 2 * * *" (täglich um 2 Uhr nachts)
* Alternative: "0 */6 * * *" (alle 6 Stunden)
2. SQL-ABFRAGE: "Letzten Import-Zeitstempel ermitteln"
└─ SELECT MAX(ImportZeitstempel)
FROM ImportProtokoll
WHERE ImportTyp = 'Lieferantenkatalog'
3. AUSGEHENDE HTTP ANFRAGE: "Daten von externer API abrufen"
└─ Konfiguration:
* URL: https://api.lieferant.com/products
* Methode: GET
* Header:
- Authorization: Bearer {{system.secrets.lieferant_api_key}}
- Accept: application/json
* Query-Parameter:
- modifiedSince: {{context.lastImportTimestamp}}
- limit: 1000
│
└─> 4. BEDINGUNG PRÜFEN: "Wurde API-Anfrage erfolgreich?"
├─ Prüft: {{context.httpResponse.statusCode}} == 200
│
├─ NEIN (Fehler):
│ └─> 5. SQL-ABFRAGE: "Fehler protokollieren"
│ └─ INSERT INTO ImportProtokoll
│ (ImportTyp, Status, Fehler, Zeitstempel)
│ VALUES ('Lieferantenkatalog', 'Fehler',
│ '{{context.httpResponse.error}}', GETDATE())
│ │
│ └─> 6. E-MAIL SENDEN: "Fehlerbenachrichtigung"
│ └─ An: Administratoren
│ Betreff: "⚠️ Import-Fehler: Lieferantenkatalog"
│ Inhalt: "Der automatische Import ist fehlgeschlagen.
│ Fehler: {{context.httpResponse.error}}
│ Zeit: {{context.currentTime}}"
│ │
│ └─> ENDE: Workflow beenden
│
└─ JA (Erfolgreich):
└─> 7. BEDINGUNG PRÜFEN: "Sind neue Daten vorhanden?"
├─ Prüft: {{context.httpResponse.body.data.length}} > 0
│
├─ NEIN (Keine neuen Daten):
│ └─> 8. FEED-EINTRAG ERSTELLEN: "Keine neuen Daten"
│ └─ ENDE: Workflow beenden
│
└─ JA (Neue Daten vorhanden):
└─> 9. DATEN IMPORTIEREN: "Transformiere und importiere Daten"
└─ Konfiguration:
* Eingabeformat: JSON (von API-Response)
* Transformation:
- Mapping: LieferantenArtikelID → Artikelnummer
- Mapping: Preis → Verkaufspreis
- Validierung: Preis > 0, Name nicht leer
* Ziel: Datenbank-Tabelle "Artikel"
│
└─> 10. SQL-ABFRAGE: "Import-Statistik berechnen"
└─ Berechnet:
- Anzahl importierter Datensätze
- Anzahl fehlerhafter Datensätze
- Anzahl aktualisierter vs. neuer Datensätze
│
└─> 11. SQL-ABFRAGE: "Import protokollieren"
└─ INSERT INTO ImportProtokoll
(ImportTyp, Status, AnzahlImportiert,
AnzahlFehler, Zeitstempel)
VALUES ('Lieferantenkatalog', 'Erfolgreich',
{{context.importStats.imported}},
{{context.importStats.errors}},
GETDATE())
│
└─> 12. BEDINGUNG PRÜFEN: "Gibt es Import-Fehler?"
├─ Prüft: {{context.importStats.errors}} > 0
│
├─ JA:
│ └─> 13. E-MAIL SENDEN: "Import mit Warnungen"
│ └─ An: Administratoren
│ Betreff: "⚠️ Import abgeschlossen mit Fehlern"
│ Inhalt: "Import wurde durchgeführt, aber {{context.importStats.errors}}
│ Datensätze konnten nicht importiert werden.
│ Siehe Fehlerprotokoll für Details."
│
└─ NEIN:
└─> 14. FEED-EINTRAG ERSTELLEN: "Erfolgreicher Import"
└─ Titel: "Import erfolgreich: {{context.importStats.imported}} Artikel"
│
└─> ENDE: Workflow beendenKonfigurationstipps
- Inkrementeller Import: Importieren Sie nur geänderte Daten seit dem letzten Import für bessere Performance
- Batch-Verarbeitung: Bei großen Datenmengen in Batches verarbeiten
- Fehlerprotokollierung: Detaillierte Protokollierung aller Fehler für spätere Analyse
- Retry-Logik: Bei temporären API-Fehlern automatische Wiederholung implementieren
- Validierung: Strikte Validierung der importierten Daten vor dem Speichern
Erweiterungsmöglichkeiten
- Konfliktauflösung: Intelligente Strategien für Duplikate und Konflikte
- Datenbereinigung: Automatische Bereinigung und Normalisierung der importierten Daten
- Benachrichtigungen bei Änderungen: Benachrichtigung von relevanten Teams bei bestimmten Änderungen
- Monitoring-Dashboard: Integration von Import-Statistiken in ein Dashboard
6. Automatische Berichtsgenerierung und Versand
Ziel und Geschäftskontext
Automatische Erstellung und Versendung von regelmäßigen Berichten (z.B. Monatsberichte, Quartalsabschlüsse, KPI-Dashboards) an das Management und relevante Stakeholder.
Geschäftsvorteile:
- Konsistente, rechtzeitige Berichterstattung
- Automatische Verteilung an alle Stakeholder
- Archivierung von Berichten für Compliance
- Zeitersparnis durch Automatisierung
Verwendete Knoten
- Start: Zeitgesteuert (Cron)
- Aktionen:
- SQL-Abfrage (Datensammlung)
- PDF-Bericht erstellen
- E-Mail senden (mit Anhang)
- Datei speichern (Archivierung)
- Optional: Feed-Eintrag erstellen
Detaillierter Workflow-Ablauf
1. START: Zeitgesteuert (Cron: "0 8 1 * *" = Monatsanfang, 8 Uhr)
└─ Konfiguration:
* Cron-Ausdruck: "0 8 1 * *" (1. Tag jedes Monats um 8 Uhr)
* Alternative: "0 9 * * 1" (jeden Montag um 9 Uhr)
2. SQL-ABFRAGE: "Daten für Monatsbericht sammeln"
└─ SELECT
SUM(Umsatz) AS GesamtUmsatz,
COUNT(DISTINCT KundeID) AS AnzahlKunden,
SUM(AnzahlBestellungen) AS AnzahlBestellungen,
AVG(Lieferzeit) AS DurchschnittLieferzeit,
...
FROM Verkaufsdaten
WHERE MONTH(Datum) = MONTH(DATEADD(month, -1, GETDATE()))
AND YEAR(Datum) = YEAR(DATEADD(month, -1, GETDATE()))
3. SQL-ABFRAGE: "Top-Kunden des Monats"
└─ SELECT TOP 10
KundeID, Kundenname, SUM(Umsatz) AS Umsatz
FROM Verkaufsdaten
WHERE ... (gleiche Zeitfilter)
GROUP BY KundeID, Kundenname
ORDER BY SUM(Umsatz) DESC
4. SQL-ABFRAGE: "Produktstatistiken"
└─ SELECT
ArtikelID, Artikelnummer, Artikelname,
SUM(Anzahl) AS VerkaufteMenge,
SUM(Umsatz) AS Umsatz
FROM Verkaufsdaten
WHERE ... (gleiche Zeitfilter)
GROUP BY ArtikelID, Artikelnummer, Artikelname
ORDER BY SUM(Umsatz) DESC
5. PDF-BERICHT ERSTELLEN: "Monatsbericht generieren"
└─ Konfiguration:
* Template: Formular "Monatsbericht" oder HTML-Template
* Daten:
- Monat: {{context.reportMonth}}
- Gesamtumsatz: {{context.sqlQuery1.GesamtUmsatz}}
- Anzahl Kunden: {{context.sqlQuery1.AnzahlKunden}}
- Top-Kunden: {{context.sqlQuery2}}
- Produktstatistiken: {{context.sqlQuery3}}
* Format: A4, Hochformat
* Wasserzeichen: Optional "Vertraulich"
* Dateiname: "Monatsbericht_{{context.reportMonth}}.pdf"
│
└─> 6. DATEI SPEICHERN: "Bericht archivieren"
└─ Konfiguration:
* Datei: {{context.pdfReport.file}}
* Collection: "Berichte/Monatsberichte"
* Metadaten:
- Typ: Monatsbericht
- Monat: {{context.reportMonth}}
- ErstelltAm: {{context.currentDate}}
│
└─> 7. E-MAIL SENDEN: "Bericht an Management versenden"
└─ Konfiguration:
* An: Management-Team (Gruppe oder Liste)
* CC: Geschäftsführung
* Betreff: "Monatsbericht {{context.reportMonth}}"
* Inhalt: HTML-E-Mail mit:
- Zusammenfassung der wichtigsten KPIs
- Hinweis auf Anhang
- Link zum Archiv
* Anhänge:
- {{context.pdfReport.file}}
│
└─> 8. FEED-EINTRAG ERSTELLEN: "Bericht erstellt"
└─ Titel: "Monatsbericht {{context.reportMonth}} wurde erstellt und versendet"
│
└─> ENDE: Workflow beendenKonfigurationstipps
- Flexible Zeiträume: Nutzen Sie Variablen für Zeiträume, damit der Workflow für verschiedene Berichte wiederverwendet werden kann
- Template-Variablen: Nutzen Sie konsistent Template-Variablen für alle dynamischen Inhalte
- Mehrsprachigkeit: Berücksichtigen Sie die Sprache der Empfänger bei der Berichtserstellung
- Formatierung: Achten Sie auf professionelle Formatierung des PDF-Berichts
Erweiterungsmöglichkeiten
- Interaktive Dashboards: Zusätzlich zum PDF ein interaktives Dashboard erstellen
- Vergleiche: Vergleich zum Vormonat oder Vorjahr einbauen
- Prognosen: KI-basierte Prognosen für kommende Perioden
- Individualisierte Berichte: Unterschiedliche Berichte für verschiedene Empfänger (z.B. nach Abteilung)
- Automatische Präsentation: Erstellen einer PowerPoint-Präsentation zusätzlich zum PDF
Zusammenfassung
Diese Beispiele zeigen die Vielseitigkeit von Workflows zur Automatisierung verschiedenster Prozesse in Argon ERP. Jedes Beispiel kann als Vorlage verwendet und an Ihre spezifischen Bedürfnisse angepasst werden.
Häufige Workflow-Muster
Basierend auf diesen Beispielen lassen sich folgende wiederkehrende Muster identifizieren:
- Ereignis → Prüfung → Aktion: Reaktion auf Systemereignisse mit bedingter Verarbeitung
- Zeitgesteuert → Datensammlung → Bericht: Regelmäßige Berichte und Auswertungen
- Import → Validierung → Speicherung: Datenimport mit Qualitätssicherung
- Mehrstufige Genehmigungen: Komplexe Genehmigungsprozesse mit Eskalationen
- Parallel → Warte → Zusammenführung: Koordination mehrerer paralleler Prozesse
Nächste Schritte
- Experimentieren: Erstellen Sie einfache Workflows basierend auf diesen Beispielen
- Anpassen: Passen Sie die Beispiele an Ihre Geschäftsprozesse an
- Erweitern: Kombinieren Sie verschiedene Muster für komplexere Workflows
- Optimieren: Nutzen Sie die Best Practices zur Optimierung
Für eine vollständige Übersicht aller verfügbaren Knoten und deren Funktionen siehe die Workflow-Komponenten-Dokumentation.