Skip to content
← DevForm

Docs

How a form is built, shared and read.

Questions and answer types

Add short or long text, email, number, date, single-choice, multiple-choice, rating, and yes-or-no questions. Required questions block the next step; optional ones can be skipped. File upload stays unavailable until there is a real upload path.

Conditional logic

A question can appear when an earlier answer is equal to, not equal to, one of several values, answered, or unanswered. A condition that points forward, points to itself, or names a deleted question fails open and shows the question to everyone.

Stable export keys

Every question has a key used as its CSV column name. Rewording the visible question does not change that key, so an import, spreadsheet, or analysis built against the export keeps working.

Drafts, publishing, and links

A draft cannot accept responses. Publish it when the questions are ready, then share the one hosted link. You can unpublish without deleting the form or its responses, and preview it before making it live.

Embedding

Paid plans provide an embed snippet for placing the same hosted form on your own site. The form, validation, logic, and response storage remain in DevForm; the surrounding page remains yours.

Webhooks

Add an https endpoint in the form's builder and every completed response is POSTed to it as JSON: the form, its fields, the answers and any hidden fields. Each request carries x-devform-signature: t=<unix time>,v1=<hex HMAC-SHA256 of "<t>.<body>" keyed by your signing secret> — reject a signature that does not match, or a timestamp more than five minutes old. x-devform-delivery is stable across retries, so use it to drop duplicates. A non-2xx answer is retried seven times over about a day. Available on every plan; managed by owners and admins.

Hidden fields, piping and redirects

List URL parameters such as ref or utm_source as hidden fields, then share devform.osokoro.com/f/your-form?ref=newsletter: the value is stored with the response, shown in the inbox and exported as a hidden.ref column. Parameters you did not declare are ignored. Write {{key}} in a question, help text or ending to show an earlier answer or hidden field. A redirect URL sends people on to your own https page after the thank-you screen.

Responses, partials, and quotas

Responses appear as they are entered, including unfinished ones, so you can see which question people stop on. Unfinished responses are retained for up to 30 days. Complete submissions count against the plan's monthly response allowance.

Closing a form

A form stops accepting responses when you unpublish it, when its close date passes, or when it reaches its response cap. Respondents see the same neutral message in every case. The monthly allowance counts completed responses across all your forms, and the forms dashboard shows how much of it is used.