# Questionnaires and custom forms

Source: https://help.didit.me/workflows/questionnaires
Updated: 2026-10-12

Collect answers and attestations during verification with a Simple or Branching questionnaire, where answers pick the next question. $0.10 per completed one.

In **Identity verification → Questionnaires**, press **New questionnaire** and
pick **Simple** (questions on pages) or **Branching** (answers decide the next
question), or start from a template. Publish it, then add it to a workflow.
$0.10 per completed questionnaire, paid from your plan credit or balance.

## What it's for

![The questionnaires list in the Didit console](https://help.didit.me/screenshots/questionnaires-light.webp)

*Questionnaires you have built, ready to attach to a workflow.*

A questionnaire collects the things a document can't tell you: source of funds, purpose of the account, an attestation you need on record, a supporting document that isn't an identity document. It runs as a step inside the verification flow, so the answers arrive with the rest of the session result.

## Simple

Questions on pages, one after another: add a question, set which ones are required, preview, publish. Best for most forms:

- Quick data collection
- Simple surveys and attestations

## Branching

A graph where answers decide the next question, for forms with real logic: route people to different questions based on their previous answers. Best for compliance-driven collection with different paths per answer, and anything that needs manual review at the end.

## Drafts, versions and copies

A new questionnaire starts as a **draft**, and only a published questionnaire can be added to a workflow. A published version is read-only: **Edit** opens a draft, so live sessions are never interrupted, and you publish it when it's ready. **Duplicate** in the row menu makes a separate draft copy. A workflow that uses a questionnaire you later archive keeps its last published version.

### Branching and rejoining

A common requirement is to branch on an answer and then bring everyone back to a shared set of questions afterwards. That's what the graph structure is for - connect the branch's terminal nodes back to the shared node rather than duplicating the rest of the form down each path. Duplicating is the thing that makes a questionnaire unmaintainable.

## Pre-filling answers from the document

Populating questionnaire fields automatically from the data ID verification extracted is a frequent request, and the answer depends on the current behaviour rather than something you can configure blindly. Before designing a flow that depends on it, confirm with your Didit contact what's supported today, which field names map to which extracted values, and which OCR fields can be reused.

If pre-filling isn't available for the field you need, ask the question explicitly instead - a form that silently arrives half-empty is worse than one that asks.

## A questionnaire step that appears skipped

If a session shows a questionnaire step as completed but with nothing in it, or the person appears to have passed without filling it, check in this order:

1. Is the questionnaire itself published, and the workflow published after you added it?
2. Are the fields actually marked **required**? An optional field can be left blank legitimately.
3. Did an earlier step decline and stop the flow before the questionnaire ran?
4. Is the questionnaire attached to the workflow the session actually used?

If the fields are required, the step ran, and answers are still missing, that's worth reporting with the session ID rather than working around.

## Reviewing answers

Questionnaire answers appear in the session result and in the session PDF. If an answer needs a person to look at it, route the questionnaire step to review - what that looks like is covered in [decision rules and thresholds](https://help.didit.me/workflows/decision-rules).

There's no built-in email that tells you a questionnaire needs review, so wire the notification you need off the `status.updated` webhook, which fires when the session lands In review. See [getting results with webhooks](https://help.didit.me/integration/webhooks-basics).

## Language

Both kinds of questionnaire can be translated: use **Languages** in a questionnaire's row menu, or the translations tab in the editor. Which language a person sees follows the session's language, which auto-detects from the browser unless you set it explicitly. See [setting the verification language](https://help.didit.me/workflows/verification-languages).

## What it costs

**$0.10 per completed questionnaire.** Adding a questionnaire to a KYC workflow adds $0.10 to every completed session. See [what counts as a billable check](https://help.didit.me/billing-credits/what-counts-as-billable).

## Length is a conversion cost

A questionnaire is the one step in a verification flow whose length is entirely your choice, and it's a common abandonment point. Every field you add costs completions. Ask for what your obligation actually requires, and collect the rest later in your own product where the person is already committed.
