diff --git a/src/app/dashboard/automations/page.tsx b/src/app/dashboard/automations/page.tsx new file mode 100644 index 0000000..bbcf0d2 --- /dev/null +++ b/src/app/dashboard/automations/page.tsx @@ -0,0 +1,171 @@ +'use client'; + +import { useState } from 'react'; +import Link from 'next/link'; + +interface AutomationTemplate { + id: string; name: string; description: string; trigger: string; action: string; + category: string; icon: string; status: 'active' | 'planned'; n8nTemplate: string | null; +} + +const TEMPLATES: AutomationTemplate[] = [ + { + id: 'contact-followup', name: 'Follow-up automat contact', icon: '📞', + description: 'La 7 zile fără interacțiune cu un contact, creează task de follow-up.', + trigger: 'Inactivitate contact > 7 zile', action: 'Creează task + notificare', + category: 'CRM', status: 'planned', n8nTemplate: null, + }, + { + id: 'contract-expiry', name: 'Alertă expirare contract', icon: '📋', + description: 'Cu 30 de zile înainte de expirarea unui contract, trimite alertă și task.', + trigger: 'Contract expiră în 30 zile', action: 'Email alertă + task reînnoire', + category: 'Contracte', status: 'planned', n8nTemplate: null, + }, + { + id: 'ai-approval', name: 'Aprobare automată acțiuni AI', icon: '🤖', + description: 'Acțiunile AI cu prioritate scăzută se aprobă automat după 24h fără respingere.', + trigger: 'Acțiune AI pending > 24h', action: 'Auto-aprobare + execuție', + category: 'AI', status: 'planned', n8nTemplate: null, + }, + { + id: 'gdpr-review', name: 'Revizuire periodică consimțăminte', icon: '🛡️', + description: 'Lunar, generează raport cu consimțămintele ce trebuie reînnoite.', + trigger: 'Schedulat: prima zi a lunii', action: 'Raport GDPR + task revizuire', + category: 'Privacy', status: 'planned', n8nTemplate: null, + }, + { + id: 'goal-checkin', name: 'Check-in săptămânal obiective', icon: '🎯', + description: 'Vineri seara, trimite rezumat progres obiective și propune next steps.', + trigger: 'Schedulat: vineri 18:00', action: 'Raport obiective în notificări', + category: 'Life OS', status: 'planned', n8nTemplate: null, + }, + { + id: 'data-backup', name: 'Backup export date', icon: '💾', + description: 'Exportă săptămânal toate datele CEO OS în format JSON și salvează în Hetzner.', + trigger: 'Schedulat: duminică 02:00', action: 'Export JSON + upload Hetzner', + category: 'Date', status: 'planned', n8nTemplate: null, + }, + { + id: 'energy-reminder', name: 'Reminder jurnal energie', icon: '⚡', + description: 'La 21:00 zilnic, amintire să loghezi starea energetică.', + trigger: 'Schedulat: zilnic 21:00', action: 'Notificare push CEO OS', + category: 'Life OS', status: 'planned', n8nTemplate: null, + }, + { + id: 'document-classify', name: 'Clasificare automată documente', icon: '📄', + description: 'Documentele noi fără clasificare sunt trimise la Hermes pentru clasificare automată.', + trigger: 'Document nou fără clasificare', action: 'Hermes clasificare → actualizare doc', + category: 'Documente', status: 'planned', n8nTemplate: null, + }, +]; + +const CATEGORIES = ['all', 'CRM', 'Contracte', 'AI', 'Privacy', 'Life OS', 'Date', 'Documente']; + +export default function AutomationBuilderPage() { + const [category, setCategory] = useState('all'); + const [selected, setSelected] = useState(null); + + const filtered = TEMPLATES.filter((t) => category === 'all' || t.category === category); + const active = TEMPLATES.filter((t) => t.status === 'active').length; + + return ( +
+
+

Automation Builder

+

+ {active} automații active · {TEMPLATES.length - active} planificate · Rulează prin n8n + Hermes +

+
+ + {/* n8n CTA */} +
+
+

n8n este orchestratorul de automatizări

+

Configurează și gestionează workflow-urile avansate direct în n8n.

+
+ + Deschide n8n → + +
+ +
+ {CATEGORIES.map((c) => ( + + ))} +
+ +
+
+ {filtered.map((tmpl) => ( + + ))} +
+ +
+ {!selected ? ( +
+

+

Selectează un template.

+
+ ) : ( +
+
+ {selected.icon} +

{selected.name}

+
+

{selected.description}

+ +
+
+ Trigger: + {selected.trigger} +
+
+ Acțiune: + {selected.action} +
+
+ Categorie: + {selected.category} +
+
+ + {selected.status === 'active' ? ( + + ) : ( +
+
+ Planificat — necesită n8n workflow +
+ + Construiește în n8n → + +
+ )} +
+ )} +
+
+
+ ); +}