Forms

5. Forms

Forms tager imod input fra besøgende. Kontaktformularer, tilmeldinger, kursus-bestillinger, henvendelser. Hver indsendelse gemmes som en FormSubmission-record + sendes som notifikations-email til en modtager du angiver.

Opret en formular — step-by-step

  1. Klik Forms på dashboardet
  2. Klik + Ny form
  3. Udfyld:
    • Slug — bruges til at embed'e formularen i en FormBlock (eks: kontakt, tilmelding-kursus-2026)
    • Titel — vises som overskrift over formularen (kan overskrives pr. FormBlock)
    • Intro-tekst — markdown-tekst over formularens felter
    • Modtager-email(s) — én eller flere kommaseparerede emails der får notifikation når formularen indsendes
    • Email-template — vælg hvilken MJML-template der bruges
  4. Tilføj felter via felt-editoren — se næste afsnit
  5. Klik Opret

Felt-typer

I felt-editoren kan du tilføje følgende felter:

Standard input

  • Tekst — single-line input (navn, emne osv.)
  • Email — single-line med email-format-validering
  • Telefon — single-line med telefon-format-validering (DK-format primært)
  • Tekstområde — multi-line input (besked, beskrivelse)
  • Tal — numerisk input med min/max
  • Dato — date-picker

Choice

  • Checkbox — single boolean ("Jeg accepterer betingelserne")
  • Radio — vælg én af flere muligheder
  • Dropdown — samme som radio, men som select

Avancerede

  • Filupload — accept-pattern bestemmer tilladte typer
  • Honeypot — usynligt felt der fanger bots

Pr. felt konfigurerer du

  • Label — det brugeren ser
  • Placeholder — graylet tekst i input-feltet
  • Required — påkrævet?
  • Max-length — for tekst-felter
  • Help-text — vises under feltet
  • Default-value — pre-udfyldt værdi

Honeypot — spam-beskyttelse

Bots udfylder enhver formular de finder. Honeypot er et felt der er usynligt for mennesker men automatisk udfyldt af bots.

Sådan tilføjer du

  1. Tilføj et Tekst-felt med navn _hp (eller andet umarkant navn)
  2. Sæt CSS-klassen til at skjule det (display:none)
  3. Når formularen indsendes, tjekker backend om feltet er tomt:
    • Tomt → menneske, fortsæt
    • Udfyldt → bot, smid submissionen væk

Dette er ikke 100% effektivt mod sofistikerede bots, men fanger 95% af spam-trafik uden friktion for almindelige brugere.

ReCAPTCHA er ikke implementeret som default i v1, men kan tilføjes hvis spam bliver et problem.

Embed via FormBlock

Når formularen er klar, embed'er du den på en side:

  1. Åbn rediger-siden for den side du vil have formularen på (typisk kontakt)
  2. Tilføj en FormBlock
  3. Konfigurér:
    • formSlug — paste din formular-slug
    • Heading — valgfri overskrift over formularen
    • Intro — valgfri tekst over formularen
  4. Gem siden

Formularen renderes nu på siden med alle felter, validering og submit-knap.

Se og håndtér submissions

  1. Klik Forms → vælg formularen → Submissions-fanen
  2. Du ser en liste med alle indsendelser:
    • — sekventielt ID (handy til at referere til en specifik submission)
    • Dato — hvornår indsendt
    • Statusnew / read / archived (kan ændres)
    • Preview — første tekstfelt i submissionen
  3. Klik en submission for at se alle felter

Status-flow

  • new — endnu ikke set af nogen. Vises med blå badge
  • read — set, men ikke håndteret
  • archived — håndteret, ikke længere relevant

Status opdateres manuelt via dropdown'en på detalje-siden.

Email-notifikation

Når en submission kommer ind, sendes en email:

  1. Backend tager submissionens data
  2. Vælger den email-template der er knyttet til formularen (default: contact__admin-notification)
  3. Rendrer MJML-templaten med dataet
  4. Sender via Azure Communication Services (ACS) til modtager-email(s)

Mail-flowet er fire-and-forget — hvis ACS er nede, gemmes submissionen alligevel (du mister kun notifikationen). Næste gang nogen kigger i admin, ser de submissionen.

Mail-templates

Du kan oprette nye email-templates under Mail-modulet. En template er MJML (Mailchimp's email-markup) med template-variabler {{field}}. TesseraCMS substituerer variablerne med submissionens data ved send.

Default-templaten contact__admin-notification viser alle form-felter generisk, så den fungerer for de fleste formularer uden customization.

Sender-acknowledgement

Valgfrit: du kan også sende en bekræftelse til indsenderen. Slå dette til pr. formular via senderAckTemplate-feltet.

Praktiske tips

  • Test din formular på det offentlige site før go-live — submit en test-indsendelse til dig selv og bekræft at email-notifikationen kommer
  • Brug separat email-template for hver formular hvis indholdet skal være forskelligt
  • Skift modtager-email senere — du kan ændre recipientEmails-feltet uden at miste eksisterende submissions
  • Honeypot er nok for små sites — fuldt anti-spam-stack (rate limit, IP-block, reCAPTCHA) kan tilføjes hvis I rammer en spam-storm