# Skjulte felt

Send usynlige data inn i skjemaer via URL-parametere.

## Skjulte felt

Legg ved usynlige metadata på hvert svar — trafikkilder, CRM-IDer, referansekoder eller annen kontekst du allerede vet om respondenten. Skjulte felt henter data via URL-parametere uten å vise noe i selve skjemaet.

<h2 id="why">Hvorfor bruke skjulte felt?</h2>

<p>
  Skjemaer trenger ofte kontekst som respondenten ikke kan (eller bør) oppgi selv. Skjulte felt løser dette ved å la deg legge ved metadata
  på hvert svar via URL-en. Dette er nyttig når du allerede vet noe om respondenten før de åpner skjemaet — hvor de kom fra, hvem som
  henviste dem, eller hvilken post de tilhører i systemet ditt.
</p>

<ul>
  <li>
    <strong>Spor trafikkilder</strong> — se om et svar kom fra en e-postkampanje, et innlegg i sosiale medier eller nettsiden din
  </li>
  <li>
    <strong>Koble til CRM-et ditt</strong> — send en kontakt-ID, avtale-ID eller konto-ID slik at svaret knyttes til riktig post
  </li>
  <li>
    <strong>Personaliser oppfølging</strong> — hent et navn eller en e-postadresse du allerede har, og bruk det i betinget logikk eller
    e-postvarsler
  </li>
  <li>
    <strong>Arbeidsflyt med flere skjemaer</strong> — send data fra ett skjema til det neste slik at respondentene ikke trenger å gjenta seg
  </li>
  <li>
    <strong>A/B-testing</strong> — merk hvert svar med varianten eller eksperimentet respondenten så
  </li>
</ul>

<h2 id="adding">Legge til et skjult felt</h2>

<p>
  Skriv <code>/</code> på en tom linje og velg <strong>Skjult felt</strong> fra Oppsett-kategorien. Det virker bare på skjemaets øverste
  nivå — ikke inni en kolonne eller en gjentakende gruppe. Hvert skjult felt har to innstillinger:
</p>

<ul>
  <li>
    <strong>Felttype</strong> — lagre en <strong>tallverdi</strong> eller <strong>tekstverdi</strong> (tekst som standard)
  </li>
  <li>
    <strong>Parameternavn</strong> — URL-parameteren som fyller dette feltet (f.eks. <code>utm_source</code>, <code>contact_id</code>). Det
    er også dette feltets nøkkel, altså det en avsender sender, og det svaret kommer tilbake under. Se{' '}
    <a href="/no/requests/field-keys">Feltnøkler</a>
  </li>
</ul>

<h2 id="url-parameters">Forhåndsutfylling via URL-parametere</h2>

<p>
  Et parameternavn må være URL-sikkert som skrevet: bokstaver, sifre og <code>- _ . ~ ! * ' ( )</code> er trygge. Skriv mellomrom og andre
  spesialtegn prosentkodet, for eksempel <code>recipient%20name</code>. Et tomt, ugyldig eller duplisert parameternavn er en
  publiseringsfeil — problemindikatoren i verktøylinjen flagger den, og publisering stanser til du retter den.
</p>

<p>
  Når en respondent åpner skjemaet ditt med en tilsvarende parameter i URL-en, henter det skjulte feltet verdien automatisk. Hvis
  parameternavnet på det skjulte feltet er <strong>utm_source</strong>, setter URL-en nedenfor feltet til <strong>newsletter</strong>.
</p>

```
https://form.formstep.io/abc123?utm_source=newsletter
```

<p>Du kan sende flere skjulte felt på én gang:</p>

```
https://form.formstep.io/abc123?utm_source=newsletter&utm_medium=email&contact_id=12345
```

<ul>
  <li>Verdier leses én gang, når skjemaet åpnes.</li>
  <li>
    En tom parameter (<code>?utm_source=</code>) lar feltet stå tomt.
  </li>
  <li>
    Et tallbasert skjult felt ignorerer verdier som ikke er tall, så <code>?score=abc</code> lar det stå tomt.
  </li>
  <li>
    <a href="/no/requests/overview">Forespørsel</a>-lenker ignorerer URL-parametere. Skjulte felt der henter verdiene sine fra
    forespørselens <a href="/no/requests/creating-requests#context">context</a> i stedet.
  </li>
</ul>

<p>
  På en delingslenke, for å vise en URL-verdi i et synlig felt som respondenten kan redigere — for eksempel for å forhåndsutfylle navnet
  deres — gjør du det skjulte feltet til feltets standardverdi ved å skrive <kbd>@</kbd>. Se{' '}
  <a href="/no/building-forms/field-configuration#default-values">Standardverdier fra andre felt</a>.
</p>

<h2 id="requests-prefill-directly">Forespørsler trenger ikke et skjult felt for å forhåndsutfylle</h2>

<p>
  Teknikken med skjult felt pluss <kbd>@</kbd> over finnes fordi en delingslenke bare har én vei inn: URL-en. Hvem som helst kan redigere en
  URL, så en delingslenke kan bare bære en verdi gjennom en parameter, og det er det skjulte feltet som mottar den.
</p>

<p>
  En <a href="/no/requests/overview">forespørsel</a> har en annen, privat vei inn. Kalleren setter svarene når forespørselen opprettes, på
  serversiden, så en forespørsel kan forhåndsutfylle et <strong>synlig spørsmål direkte</strong> — uten skjult felt og uten <kbd>@</kbd>
  -standardverdi involvert. Mottakeren åpner skjemaet med svaret allerede fylt ut i feltet.
</p>

<ul>
  <li>
    <strong>
      <code>prefill</code>
    </strong>{' '}
    — startsvar for <strong>synlige spørsmål</strong>, adressert med feltnøkkel. Mottakeren ser dem og kan endre dem.
  </li>
  <li>
    <strong>
      <code>readonly</code>
    </strong>{' '}
    — delmengden av de forhåndsutfylte nøklene mottakeren kan lese, men ikke redigere.
  </li>
  <li>
    <strong>
      <code>context</code>
    </strong>{' '}
    — verdier for <strong>skjulte felt</strong>, som mottakeren aldri ser.
  </li>
</ul>

<p>
  Skillet håndheves. Å sende nøkkelen til et synlig spørsmål i <code>context</code> avvises, med en melding om å sende det i{' '}
  <code>prefill</code> i stedet, og det motsatte avvises også. Så legg til et skjult felt når du vil{' '}
  <strong>bære data du ikke vil vise</strong>, ikke bare for å forhåndsutfylle noe.
</p>

> ⚠️ **En forespørselslenke ignorerer URL-parametere fullstendig**
> <p>
>     På en forespørsel leses ikke <code>?param=</code>-verdier i det hele tatt — de fyller ikke et skjult felt, og de overstyrer ikke noe
>     kalleren har satt. Dette er bevisst: mottakeren har lenken, så å ta hensyn til URL-parametere ville latt dem overskrive kallerens egen
>     context. Forespørselens context vinner alltid, fordi det på en forespørsel er den eneste kilden.
>   </p>

<h2 id="common-setups">Vanlige oppsett</h2>

<ul>
  <li>
    <strong>UTM-sporing</strong> — opprett skjulte felt med navnene <strong>utm_source</strong>, <strong>utm_medium</strong> og{' '}
    <strong>utm_campaign</strong>. Skjemaet fanger dem fra URL-en automatisk, og hver verdi lagres som en svarkolonne. Analyse-fanens
    Trafikkkilder-diagram leser utm_source og utm_medium fra URL-en på egen hånd, med eller uten skjulte felt. Angi standardverdier per
    lenke i <a href="/no/sharing-publishing/sharing-embedding#query-parameters">Del-dialogen</a>.
  </li>
  <li>
    <strong>CRM-integrasjon</strong> — send en kontakt- eller avtale-ID fra verktøy som HubSpot, ActiveCampaign eller Mailchimp. Når svarene
    lander i integrasjonene dine, knytter IDen alt sammen.
  </li>
  <li>
    <strong>Referanseattribusjon</strong> — hver partner får en unik lenke med sin kode i URL-en. Du ser nøyaktig hvem som drev hvert svar.
  </li>
  <li>
    <strong>Forhåndsutfylt kontekst</strong> — send et kundenavn eller abonnementsnivå inn i et supportskjema. Bruk det i betinget logikk
    for å vise forskjellige spørsmål, eller pipe det inn på takkesiden.
  </li>
  <li>
    <strong>Forhåndsutfylte svar</strong> — send <code>?email=jane@example.com</code> fra e-postverktøyet ditt, og gjør det skjulte feltet
    til standardverdien for skjemaets Email-spørsmål. Respondenten ser adressen sin allerede fylt inn, og retter den bare hvis den er feil.
  </li>
</ul>

> 💡 **Fungerer med alle lenkeverktøy**
> <p>
>     E-postplattformer (Mailchimp, ActiveCampaign, HubSpot), annonseplattformer (Google Ads, Meta) og lenkeforkortere lar deg legge til
>     URL-parametere. Skjulte felt fanger dem uten noe ekstra oppsett på skjemasiden.
>   </p>

<h2 id="viewing-data">Se data fra skjulte felt</h2>

<p>
  I svar-tabellen vises skjulte felt som egne kolonner — Formstep merker dem med et øye-med-strek-ikon så du kan skille dem fra synlige
  spørsmål. De vises også i eksporter, integrasjoner (Google Sheets, webhooks osv.) og i detaljpanelet for hvert svar.
</p>

> ℹ️ **UTM i analyse vs. svar**
> <p>
>     Formstep registrerer utm_source, utm_medium og utm_campaign sammen med analysen for hvert besøk, og Trafikkkilder-diagrammet grupperer
>     svar etter kilde og medium, men lagrer dem ikke på hvert svar. For å se en parameters verdi per svar, legg til et skjult felt med det
>     navnet (for eksempel utm_source). Det vises da i både svarstabellen og analysen.
>   </p>

<h2 id="with-logic">Bruke skjulte felt med logikk</h2>

<p>
  Skjulte felt fungerer som <strong>betingelseskilder</strong> i <a href="/no/building-forms/conditional-logic">betinget logikk</a>. En
  logikkregel kan lese verdien i et skjult felt og forgrene seg — vise forskjellige spørsmål, hoppe til en side eller oppdatere et{' '}
  <a href="/no/building-forms/calculated-fields">beregnet felt</a>.
</p>

<p>
  For eksempel: send <code>?plan=enterprise</code> via URL-en. En logikkregel sjekker om det skjulte "plan"-feltet er lik "enterprise" og
  hopper til en dedikert side med enterprise-spesifikke spørsmål.
</p>

<h2 id="next-steps">Neste steg</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Beregnede felt](/no/building-forms/calculated-fields) — Beregn poengsum, totaler og dynamisk tekst fra svar
  - [Svar-piping](/no/building-forms/answer-piping) — Henvis til et svar andre steder i skjemaet med @-omtaler
  - [Tilpasset takkeside](/no/building-forms/custom-thank-you) — Vis beregnede verdier og personalisert innhold etter innsending
  - [Innboks for innsendinger](/no/submissions-analytics/submission-inbox) — Se verdier fra skjulte felt ved siden av vanlige svar
</div>
