Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
FallFlow는 자동으로 누락된 정보를 수집하고, 서류를 요청하며, 에너지 컨설턴트를 위한 신규 고객 사례를 준비합니다
FallFlow sammelt automatisch die fehlenden Informationen, fordert Dokumente an und bereitet neue Kundenfälle für Energieberater vor.
비즈니스TypeScript · PLpgSQLGitHub @ozdenselimcan-prog온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
AI Intake & Operations für Energieberater. Von der ersten Kundenanfrage zum vollständig vorbereiteten Beratungsfall – automatisch. FallFlow ist kein CRM und kein allgemeiner Chatbot. Es übernimmt genau den Teil zwischen Anfrage und Beratung: Kundenanfrage → KI erkennt Angaben → fragt nur Fehlendes → sammelt Dokumente → prüft Vollständigkeit → fasst nach → legt die Fallakte an → Berater übernimmt. Next.js 16 (App Router, proxy.ts), React 19, TypeScript strict, Tailwind CSS 4, Supabase (Auth + Postgres + RLS + Storage), Zod. KI über eine OpenAI-kompatible API, ausschließlich serverseitig.README 전문 보기 ↗
AI Intake & Operations für Energieberater. Von der ersten Kundenanfrage zum vollständig vorbereiteten Beratungsfall – automatisch.
FallFlow ist kein CRM und kein allgemeiner Chatbot. Es übernimmt genau den Teil zwischen Anfrage und Beratung:
Kundenanfrage → KI erkennt Angaben → fragt nur Fehlendes → sammelt Dokumente → prüft Vollständigkeit → fasst nach → legt die Fallakte an → Berater übernimmt.
Next.js 16 (App Router, proxy.ts), React 19, TypeScript strict, Tailwind CSS 4, Supabase (Auth + Postgres + RLS + Storage), Zod. KI über eine OpenAI-kompatible API, ausschließlich serverseitig.
npm install
npm run dev # http://localhost:3000
Ohne Supabase-Variablen läuft die App im Demo-Modus (Daten im Arbeitsspeicher, Seed „BA Engineering & Consulting“ mit 7 Fällen). Ohne AI_API_KEY extrahiert ein regelbasierter Mock Angaben aus Freitext. Nützliche URLs: /demo (komplette Demo, läuft im Browser), /dashboard, /dashboard/intake, /dashboard/inbox, /widget/demo (echter Website-Chat gegen die API), /upload/demo-upload-weber (Kunden-Upload).
| Konzept | Umsetzung |
|---|---|
| Intake-Status | NEW → QUALIFYING → WAITING_FOR_CUSTOMER → COMPLETE → READY_FOR_REVIEW → CONVERTED (types.ts, Logik in checklist.ts) |
| Completeness Score | Anteil erfüllter Pflichtpunkte in % = Pflichtangaben (Fragen-Builder) + Pflichtdokumente. Dynamisch aus den Falldaten berechnet, nie manuell gesetzt. |
| Dokumentenbedarf | Grundriss immer; Energieausweis bei Beratungsleistungen (nicht beim Energieausweis selbst); Fotos optional (documentRequirements). |
| Lead-Readiness | Reiner Prozessstatus: Unvollständig / Fast vollständig (≤ 2 fehlen) / Vollständig (100 %) / Bereit zur Bearbeitung. Keine Kaufwahrscheinlichkeit. |
| Statusregeln | COMPLETE = alle Pflichtangaben da, Pflichtdokumente fehlen noch oder wurden erst angefordert. READY_FOR_REVIEW = Angaben da und alle Pflichtdokumente tatsächlich hochgeladen. Ein laufendes Gespräch ohne Aktivität > 30 Min. wird als WAITING_FOR_CUSTOMER angezeigt (abgeleitet, nicht gespeichert). |
| Dynamischer Frage-Flow | conversation.ts: jede Nachricht wird ausgewertet (KI oder Regeln), bekannte Angaben übernommen, nur relevante fehlende erfragt (isRelevant). Keine Beratung, nichts erfunden. |
| Automatik | case-ops.ts refreshCase: Score, Status, Zusammenfassung, automatische Dokumentenanforderung, Follow-up-Planung nach jeder Änderung. |
Siehe .env.example.
| Variable | Zweck |
|---|---|
NEXT_PUBLIC_APP_URL | Öffentliche URL (Upload-Links, OAuth-Redirects, Widget-Snippet) – in Produktion nicht localhost |
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase; wenn gesetzt → Produktivmodus |
SUPABASE_SERVICE_ROLE_KEY | Nur serverseitig: Widget, Kunden-Upload, Datei-Speicher, Cron |
AI_API_KEY, AI_MODEL, AI_BASE_URL | OpenAI-kompatibles Modell (optional; Extraktion und Zusammenfassung) |
CRON_SECRET | Schützt /api/cron/follow-ups (Vercel-Cron, siehe vercel.json) |
GOOGLE_*, MICROSOFT_* | E-Mail-OAuth (vorbereitet) |
STRIPE_* | Abrechnung (vorbereitet) |
case_documents, follow_ups, Kanal-Metadaten, privater Bucket case-documents, neue Standardfragen; migriert bestehende Daten).NEXT_PUBLIC_APP_URL, Redirect URL …/auth/callback.Sicherheit: RLS auf allen Tabellen (is_member/has_role). Kundendateien liegen in einem privaten Bucket ohne Policies für anon/authenticated – Zugriff nur per Service Role: Upload über /api/upload/[token], Download nur angemeldet über /api/documents/[id] (Company-gefiltert, Content-Disposition: attachment, nosniff).
src/lib/data/ – Store-Interface mit memory.ts (Demo) und supabase.ts (RLS).src/lib/intake/ – checklist.ts (rein, auch im Browser), engine.ts (Kundennachricht → Fall), case-ops.ts (Refresh, Dokumentenanforderung, Follow-ups), router.ts + identity.ts (eingehende Nachrichten Kunde/Fall zuordnen), follow-ups.ts, notes.ts, attention.ts, messages.ts.src/lib/ai/ – Gesprächslogik, Zod-validierte Extraktion und Zusammenfassung mit regelbasiertem Fallback.src/lib/integrations/ – E-Mail-Adapter; outbound.ts liefert nur delivered: true, wenn wirklich versendet wurde.src/lib/documents/storage.ts – Upload-Validierung (Magic Bytes, 10 MB, PDF/JPG/PNG/WebP) und Speicher.npm run lint
npm run typecheck
npm run build && npm start