Moduli
Moduli predefiniti per contatti, preventivi, prenotazioni e registrazioni. L’AI ne inserisce uno con un singolo componente — nessun handler di invio da scrivere — e ogni risposta arriva nella casella di posta delle risposte della tua app.
I moduli su Proyecta sono una funzionalità, non qualcosa che l’AI codifica a mano. Quando la tua app ha bisogno di un modo per permettere ai visitatori di contattarti — un modulo di contatto, una richiesta di preventivo, una prenotazione, un’iscrizione a un evento — Proyecta genera una definizione di modulo già pronta e la visualizza tramite un blocco del template. La validazione, lo stato di successo, il salvataggio delle risposte e la notifica al proprietario sono inclusi gratuitamente.
I preset
Sezione intitolata “I preset”Ogni modulo parte da uno dei cinque preset integrati. Descrivi il modulo che desideri e Proyecta sceglie (e adatta) quello giusto — non devi mai costruire i campi da zero.
| Preset | form api id |
A cosa serve | Si abbina con |
|---|---|---|---|
| Contact | contactForm |
“Mettiti in contatto” generico: nome, email, telefono opzionale, messaggio | Informazioni aziendali |
| Quote | quoteForm |
Richiesta di preventivo: dati di contatto + servizio desiderato + dettagli del lavoro | Servizi |
| Booking | bookingForm |
Appuntamento / prenotazione: servizio, data e ora preferite, dati di contatto | Servizi |
| Registration | registrationForm |
Iscrizione a evento o corso (RSVP): dati del partecipante + nota | Eventi |
| Order | orderForm |
Ricezione ordini: cosa desidera il cliente, dati di contatto, note | Menu, catalogo |
Puoi avere più moduli in una stessa app (ad esempio un modulo di contatto e uno di prenotazione), e l’AI può aggiungere, rinominare o modificare i campi di ciascuno.
Come l’AI lo configura
Sezione intitolata “Come l’AI lo configura”L’AI non costruisce mai un modulo né un handler di invio a mano. Inserisce il <FormBlock/> del template e lo collega a un modulo tramite id o api id:
import { FormBlock } from '@/components/blocks/FormBlock';
// In qualsiasi punto di una pagina pubblica — una sezione contatti, un pannello "richiedi un preventivo", ecc.<FormBlock form="contactForm" />;<FormBlock/> fa tutto da solo:
- Visualizza i campi in base al tipo — testo / email / telefono come input, testo lungo come textarea, scelte come menu a tendina, consensi come checkbox, date e orari come selettori nativi, e campi file come controllo “allega file”.
- Valida nel browser — i campi obbligatori vengono verificati prima di inviare qualsiasi dato.
- Valida sul server — se il server rifiuta un valore, l’errore specifico viene mostrato inline accanto al campo corrispondente (nessuna risposta persa, nessun errore silenzioso).
- Mostra uno stato di successo — all’invio, il modulo viene sostituito da una conferma amichevole (il messaggio di conferma del modulo stesso) con l’opzione di inviare un’altra risposta.
- Fallisce in modo sicuro — se il modulo non esiste o è stato disattivato, il blocco non mostra nulla, quindi non potrà mai rompere una pagina pubblica.
Poiché il blocco è di proprietà del template, il compito dell’AI è semplicemente posizionarlo e stilizzare la sezione circostante — la logica sottostante è fissa e corretta.
Allegati file
Sezione intitolata “Allegati file”I moduli possono accettare un file caricato (una ricevuta, una foto di riferimento, un brief). I campi file mostrano un pulsante “allega file”, caricano il file in storage e inseriscono il suo URL pubblico nella risposta. I limiti vengono applicati automaticamente:
- Solo immagini e PDF, fino a 5 MB (le immagini di grandi dimensioni vengono ridimensionate nel browser prima del caricamento).
- Il pulsante di invio è disabilitato mentre un file è in caricamento, così una risposta non viene mai inviata a metà.
Dove vanno le risposte
Sezione intitolata “Dove vanno le risposte”Ogni risposta viene salvata e appare nella casella di posta delle risposte della tua app — parte del pannello admin, visualizzata tramite il <SubmissionsInbox/> del template. Da lì tu (il proprietario) puoi:
- Sfogliare le risposte nelle schede New / Read / Archived, con un badge di non letto su New.
- Aprire qualsiasi risposta per vedere i valori dei campi inviati, la pagina da cui proviene e la data.
- Contrassegnare una risposta come read, riportarla a new o archiviarla con archive.
- Filtrare la casella di posta per un singolo modulo, oppure vedere le risposte di tutti i moduli in un’unica lista.
La casella di posta è riservata agli admin — il visitatore deve essere autenticato con un account admin (verifica applicata lato server).
Ricevere un’email per ogni risposta
Sezione intitolata “Ricevere un’email per ogni risposta”I moduli possono notificarti via email ogni volta che qualcuno invia una risposta — attiva le notifiche al proprietario e imposta l’indirizzo che deve riceverle. Ricevi il lead nella tua casella di posta senza dover aprire l’app. L’email stessa viene inviata tramite la funzionalità email di Proyecta, quindi funziona senza configurazioni aggiuntive.
Pattern comuni (lascia che l’AI li configuri)
Sezione intitolata “Pattern comuni (lascia che l’AI li configuri)”"Aggiungi un modulo di contatto nel footer con nome, email e messaggio, e inviami un'email a hello@mybiz.com ogni volta che qualcuno lo invia.""Inserisci un modulo 'Richiedi un preventivo' su ogni pagina del servizio che chieda quale servizio è necessario e i dettagli del lavoro.""Aggiungi un modulo di prenotazione in modo che i clienti possano richiedere un appuntamento con data e ora preferite.""Crea un modulo di registrazione all'evento per la pagina del workshop e permetti ai partecipanti di allegare un PDF.""Mostrami la casella di posta delle risposte e solo quelle che non ho ancora letto."
Correlati
Sezione intitolata “Correlati”- Gestione dei contenuti — i moduli risiedono accanto alle tue raccolte nello stesso modello di contenuti.
- Pannello Admin — dove vengono esaminate le risposte.
- Email — come vengono inviate le email di notifica al proprietario.