Architektur

Datenschicht & Warehouse

Das Schema, das den dataflows-Kontext trägt.

Das Data-Warehouse

Anders als andere Workflow-Engines, die rein ephemer sind, baut dataflows einen persistenten „Kontext“ aus deinen Unternehmensdaten auf. Das ermöglicht historische Auswertungen, Time-Travel-Debugging und echten Kontext für KI.

Core-Schema

Das Core-Schema ist flexibel gedacht, aber strikt da, wo es zählt.

Service-Clients (service_clients)

Verwaltet die Identität externer Systeme.

  • Auth-Typen: OAuth2, API Key, Basic Auth.
  • Security-Schema: Mappt auf OpenAPI-Security-Definitionen.
  • Scopes: Definiert, welche Berechtigungen der Client hat.

Connections (connections)

Speichert die tatsächlichen Credentials (Tokens), die einen User oder Account mit einem Service-Client verbinden.

  • Token-Management: Verwaltet Access- und Refresh-Tokens automatisch.
  • User-Info: Cached Profildaten vom Provider.
  • Verschlüsselung: Alle sensiblen Tokens sind at rest verschlüsselt.

Executions (executions)

Das Audit-Log von allem, was im System passiert.

  • Payload: Die kompletten Event-Daten, die den Workflow ausgelöst haben.
  • Result: Der finale Output des Workflows.
  • Status: Running, Success, Error.
  • Timing: Präzise Start- und Completion-Timestamps.

Daten-Synchronisation

dataflows ist darauf ausgelegt, Daten aus externen Systemen in die eigenen Warehouse-Tabellen zu synchronisieren.

// Beispiel: ClickUp-Tasks ins lokale Warehouse synchronisieren
export const syncClickUpTask = defineWorkflow({
  id: 'sync-clickup-task',
  trigger: clickup.onTaskUpdated(),

  async run({ event, step }) {
    const task = event.payload

    // Jedes Upsert ist ein durabler Schritt – bei Fehler wiederholt,
    // beim Replay übersprungen, falls bereits erfolgreich.
    const project = await step.run('upsert-project', () =>
      db.projects.upsert({
        clickup_id: task.project.id,
        name: task.project.name
      })
    )

    await step.run('upsert-task', () =>
      db.tasks.upsert({
        clickup_id: task.id,
        project_id: project.id,
        name: task.name,
        status: task.status
      })
    )
  }
})

So kannst du deine Daten mit Standard-SQL abfragen – auch wenn die Quell-API gerade langsam oder down ist.

Analytics & BI-Readiness

Die eigentliche Stärke des dataflows-Warehouses: Es verwandelt rohe API-Daten in handlungsleitende Business-Intelligence.

Reporting-Views

Wir kippen nicht nur JSON in die Datenbank. Wir erstellen strukturierte SQL-Views, die Daten über verschiedene Services hinweg verknüpfen.

  • Unified Customer View: Stripe-Zahlungen mit HubSpot-Kontakten verknüpft.
  • Projekt-Profitabilität: ClickUp-Zeiteinträge mit Xero-Rechnungen verknüpft.

Visualisierung

Weil die Daten in Standard-PostgreSQL liegen, kannst du jedes Visualisierungs-Tool anbinden:

  • Interne Dashboards: Custom-Nuxt-UI-Dashboards direkt in der dataflows-App bauen.
  • BI-Tools: PowerBI, Tableau oder Metabase direkt mit dem Warehouse verbinden.
  • KI-Kontext: Diese strukturierten Daten dienen als „Long-Term-Memory“ für deine KI-Agenten und ermöglichen Antworten wie „Welche Projekte waren letzten Monat über Budget?“

Lass uns über deinen Prozess sprechen

Erzähl uns, wo es aktuell klemmt. Wir sagen dir offen, ob und wie dataflows hilft – ohne Pitch, einfach ehrlich.