Leaders of AI · Ops

Engagement-Cron: weniger Last, gleiche Mails

Vorschlag: Kandidatenliste im Parent per SQL filtern — Subflows und Versand unverändert.

Phase 1 Staffelung (live) Phase 2 SQL-first (zur Abstimmung)

Kontext

Vier Mails, ein Parent

Phase 1: Trigger gestaffelt (07:00 / 08:30 / 10:00 / 17:00) — Überlappung runter.

Problem

Filter kommt zu spät

Wir laden viele Members und fragen erst im Subflow: „Brauchst du die Mail?“

Warum so gebaut?

Zwei Systeme, zwei Fragen

SchrittSystemFrage
EnrollmentsAirtableWer ist eingeschrieben?
StatusSupabaseActive?
Streak / ReturnSupabase EventsMail heute?

Die dritte Frage entscheidet — lag bisher am Ende.

Alt vs. neu

Bisher

Airtable ×4 → alle Members → Status-Loop → Switch → Subflow fragt SQL → meist: nichts senden

Vorschlag

SQL: nur wer die Mail braucht → Loop → Subflow (unverändert) → Event + Lea + SendGrid

Lösung

SQL-first Parent

Schedule (gestaffelt) → SQL „wer braucht Event X?“ → Filter memberId → Loop → Call Subflow X × 4 Bahnen (Expiring / Lost / Nudge / Urgency) Kein gemeinsames Airtable-Input, kein Switch über alle.

Scope-Zaun

Was wir nicht anfassen

Nur die Kandidatenliste im Parent.

Offene Frage

Enrollment „ohne Zertifikat“?

Alt: Airtable filterte Enrollments ohne Zertifikat-Link.

Neu: Active in lms.users + Event-SQL.

Reicht das für Engagement — oder muss „ohne Zertifikat“ hart bleiben?

Sicherheit

Cutover ohne Drama

Subflows prüfen weiter „heute schon?“ — doppelte Safety.

Besprechung

Leitfaden

Abschluss

Kleine Änderung, großer Hebel

Weniger sinnlose Subflow-Calls — gleiche Mails, gleiche Texte, gleiche Regeln.

Repo notes/n8n/parent-sql-first-all-four.json Detail briefing-sql-first-engagement.md

← → oder Leertaste · Esc = erste Folie