Pe scurt
n8n se instalează pe serverul tău (Docker în 5 minute) și procesează datele formularelor fără să iasă din infrastructura proprie. Conectezi Megaforms prin nodul webhook, apoi adaugi nodurile pentru destinațiile finale (PostgreSQL, MySQL, SMTP propriu, sisteme interne). Plătești numai pentru server (~$5/lună VPS), nu per execuție. Pentru organizațiile cu reguli stricte de date (medical, juridic, sector public) e singura opțiune conformă unde datele formularelor nu părăsesc niciodată jurisdicția proprie.
Caz de utilizare tipic
Cabinete medicale, firme juridice, instituții publice și fintech care au politică de date strictă „nimic în cloud terț”. n8n self-hosted permite procesarea în VPC propriu, cu logging local și retenție controlată. Combo natural: Megaforms self-hosted + n8n self-hosted = stack 100% UE jurisdicție.
Pași de implementare (pe baza setup-ului n8n)
Scenariul refolosește configurarea de bază a integrării n8n, cu ajustări specifice descrise mai jos. Dacă nu ai configurat încă integrarea, parcurge întâi pașii standard:
- 1Instalează n8n self-hosted
Pe un VPS Ubuntu/Debian: `docker run -it --rm -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n`. Pentru producție, folosește docker-compose cu Postgres ca DB persistentă. Setează HTTPS prin reverse proxy (Caddy/Nginx + Let's Encrypt).
- 2Creează workflow nou
În n8n UI → Workflows → New → Add first node → Webhook. Setează HTTP Method POST și Path arbitrar (ex. `/megaforms`). Activează „Listen for test event” și copiază URL-ul.
- 3Conectează Megaforms
În Megaforms → formular → Integrări → Webhook generic. Lipește URL-ul n8n. Setează signing secret (Megaforms generează HMAC-SHA256 pentru validare).
- 4Adaugă validare semnătură (recomandat)
În n8n, după nodul Webhook adaugă un nod Code (JavaScript) care validează header-ul `x-megaforms-signature` cu secretul comun. Dacă invalid → respinge cu 401.
- 5Construiește workflow-ul de procesare
Adaugă noduri pentru destinațiile finale (Postgres INSERT, SMTP send, Slack post etc.). Conectează-le. Activează workflow-ul (toggle ON). Webhook-ul devine permanent disponibil.
Exemplu cod / payload
// Workflow n8n exemplu
1. Webhook Megaforms (POST /webhook/forms)
2. Set node — validate signature HMAC-SHA256
3. PostgreSQL — INSERT INTO submissions
4. IF node — if anomaly_score > 0.7
→ Telegram alert intern
5. SMTP — auto-reply confirm respondent (template HTML local)
6. Respond to Webhook — 200 OKVariabilele între acolade duble (ex. `{{submission.email}}`) sunt înlocuite automat de Megaforms la fiecare submisie. Lista completă a variabilelor în Setări → Integrări → Documentație variabile.
Erori frecvente și depanare
- ⚠401 Unauthorized — credențialele sunt invalide sau au fost revocate. Regenerează în panoul n8n și re-introdu în Megaforms.
- ⚠404 Not Found — endpoint-ul țintă (chat_id, database_id, webhook URL) nu există sau nu e accesibil. Verifică în panoul n8n că destinația e validă.
- ⚠422 Unprocessable Entity — payload-ul nu respectă schema așteptată (ex. valoare Multiple Select care nu există ca opțiune predefinită). Verifică maparea câmpurilor.
- ⚠429 Too Many Requests — rate limit atins. Megaforms reîncearcă automat cu backoff. Pentru volume mari, considerează rutarea prin webhook generic + n8n self-hosted.
- ⚠500/502/503 — eroare temporară pe serverul n8n. Megaforms reîncearcă automat. Verifică status page-ul n8n dacă persistă.
Conformitate și securitate
- ✓Apelurile către n8n sunt jurnalizate cu timestamp, status code și error message — fără date personale ale respondenților.
- ✓Credențialele sunt criptate AES-256 la rest. Nu apar în log-uri sau exporturi.
- ✓Apelurile către n8n ies de pe servere Megaforms situate în UE (OVH Franța). Destinația finală depinde de provider — vezi pagina de bază a integrării pentru detalii.
- ✓Retry automat 3 încercări (2s, 8s, 30s). Dead-letter queue cu retry manual din panoul de control.
Următorii pași
După ce ai configurat scenariul, recomandăm să monitorizezi primele 50-100 apeluri în Setări → Integrări → Istoric apeluri pentru a confirma că rata de succes e peste 99% și că payload-ul ajunge formatat corect la destinație. Pentru ajustări fine (filtre adiționale, mapare câmpuri, șabloane custom), editarea se face direct în conectorul integrării fără a re-configura tot scenariul.
Pentru scenarii compuse (ex. același formular trimite la Slack + Notion + Mailchimp în paralel), poți activa mai multe integrări per formular și folosi logica condițională pentru a alege care se declanșează la fiecare submisie. Vezi documentația despre rutare condițională în articolele de ajutor.