Drupal Webform: form complessi

Webform module

Webform e' il modulo contrib di riferimento per form in Drupal: oltre 70 tipi di campo, logica condizionale, multi-step, integrazioni email/CRM/Mailchimp, gestione invii, esportazione CSV. E' la scelta naturale per contact form, sondaggi, candidature, ordini.

Installazione

composer require drupal/webform
drush en webform webform_ui

L'UI principale e' in /admin/structure/webform.

Creare un webform

Dalla UI si parte da template (Contact, Job application, Survey) o vuoto. Si aggiungono elementi via drag-and-drop: textfield, email, textarea, select, checkboxes, file upload, signature, rating, geolocation.

Elementi avanzati

  • Computed Twig: campo calcolato da altri (es. totale prezzo)
  • Composite: gruppi di campi riusabili (es. address con via/città'/CAP)
  • Likert: scala 1-5 per sondaggi
  • Captcha / reCAPTCHA: anti-spam
  • Layout containers: flexbox per layout responsive del form stesso

Conditional logic

Ogni elemento può avere condizioni di visibilità: "mostra campo Azienda solo se Tipo cliente = Business". UI builder con AND/OR/NOT, niente JavaScript manuale.

Multi-step (Wizard)

I form lunghi si dividono in pagine wizard con barra di progresso. Ogni pagina può avere validazione propria, e gli utenti possono salvare draft (con account loggato) e riprendere.

Email handler

Ogni webform può avere multipli handler email: uno al cliente (conferma ricezione), uno al team commerciale, uno conditional ("se importo > 10k notifica anche direzione"). Template HTML personalizzabili con token.

Storage e privacy

Gli invii sono salvati nel DB Drupal di default. Per GDPR si configurano:

  • Anonimizzazione automatica dopo N giorni
  • Consenso esplicito (checkbox required)
  • Esportazione dati su richiesta utente
  • Disable storage (solo invio email, no salvataggio DB)

Esportazione

Gli invii si esportano in CSV, JSON, Excel con scelta colonne. Utile per analisi periodiche o backup.

API REST

Webform espone endpoint REST per submission programmatic: ricevere POST da frontend headless o app mobile. Si configura il permesso "Access POST submissions via REST".

Hai bisogno di aiuto?

Se vuoi un sito Drupal performante dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?