Use cases — forms lungi sau complexe
Pentru formulare cu >15 câmpuri sau intake medical/legal care cer documente uploaded (CV, certificate, ID scans), save-and-resume e diferența între 30% și 70% completion rate. Respondentul începe pe mobile în pauza de prânz, salvează, continuă seara pe laptop cu documentele scanate. Fără save-resume, abandonează la primul obstacol. Cu, completion rate stabilește.
3 mecanisme paralele de persistence
(1) **localStorage backup** — automat, fără action de la respondent. La fiecare schimbare în câmpuri, draft se salvează în localStorage browser-ului. La reload same URL same device → restore. (2) **Server draft** — sincronizat din localStorage cu debounce 2s. Util când localStorage e clear-uit (private mode, browser cleanup). Trebuie session_id în cookie. (3) **Magic link cross-device** — respondentul cere explicit «send me a link to continue later», introduce email, primește instant magic link valid 7 zile. Click → restore pe ORICE device.
Magic link tehnologie
Magic link = JWT signed cu workspace secret, payload `{ submission_id, scope: 'resume', exp: now + 7d }`. URL format: `https://forms.megapromoting.com/q/{form-slug}?resume={token}`. La click, server validează token, populează state cu draft din DB, încarcă pasul ultim accesat. După submit final, token-ul se invalidează automat (one-use post-submit). Pre-submit reusable nelimitat în 7 zile.
// Server-side generate resume link
import jwt from 'jsonwebtoken';
const resumeToken = jwt.sign({
submission_id: draftId,
scope: 'resume',
iat: Math.floor(Date.now()/1000)
}, workspace.resumeSecret, {
expiresIn: '7d',
algorithm: 'HS256'
});
const resumeUrl = `${SITE_URL}/q/${formSlug}?resume=${resumeToken}`;
await sendEmail(userEmail, 'Continuă formularul', resumeUrl);Email template + branding
Magic link email customizable per workspace: subject, sender name, body Mustache template, CTA button color. Pentru white-label agencies, magic link email se trimite de la `noreply@forms.client-domain.ro` (cere SPF/DKIM setup, ghidat în dashboard).
Offline mode (roadmap Q3 2026)
Service worker pentru offline editing — respondentul completează formularul offline (subway, avion), la revenirea online se sync automat. Currently localStorage acoperă cazul «închizi tab-ul» dar nu «completezi offline». Q3 2026 release va adăuga full offline-first cu IndexedDB + background sync.