Docs
How Sirnia decides what to ask, what it checks before accepting an answer, and what shape your data arrives in.
Build your first form
A form is an ordered list of questions. Add one, give it a question and an answer type, and it is live the moment you publish. There is no separate draft to promote.
- Open the builder and add your first question.
- Pick an answer type. This decides how the answer is stored, not just how it looks.
- Publish. You get a link straight away, and a custom domain on Team and above.
Editing a published form takes effect immediately. Responses already collected keep the questions they were actually asked, so changing a form later never rewrites your history.
Answer types
The type you choose decides what comes back in your export. A number arrives as a number, a date as a date. Nothing is stored as loose text unless you ask for text.
| Short text | One line. Good for names, references and identifiers. |
|---|---|
| Long text | Several lines. Kept as written, including line breaks. |
| Choice | One of a fixed list. Exports as the option's own text. |
| Number | Stored as a number, so you can sum and sort without cleaning it. |
| Scale | A range you set, usually 1 to 5. Exports as the number alone. |
| Date | Stored as an ISO date, whatever format the person typed. |
| File | Uploaded and linked. Size limit depends on your plan. |
Branching
Any question can depend on an answer given earlier. You write the condition once, on the question that should appear, and Sirnia works out the rest.
Which unit? shown when What are you reporting? is Equipment fault
Conditions read from the top down. A question can only depend on a question above it, which is what makes the order you see in the builder the real order.
What a skipped question means
A question that was never shown is empty in your data rather than blank-because-unanswered. Those are different things and Sirnia keeps them apart: a skipped question is recorded as not asked, so you can tell silence from absence.
Checking answers
A check runs while someone is typing, before the form can be sent. The point is that the person fixes the mistake while they are still looking at the field, rather than you repairing it a week later.
- A pattern, for references with a fixed shape.
- A range, for numbers and dates.
- Your own list, uploaded or pulled from a URL, for things like an asset register.
Which unit? must be in Asset register PMP-4471 ✓ found PMP-9900 not in register
A failing check blocks sending, so an invalid value never reaches your export.
Partial responses
If someone closes the tab halfway through, what they already answered is kept and marked partial. You see the exact question they stopped on.
This is the most useful number in the product. A question where many people stop is almost always a question that needs rewriting, not a sign that people are not interested.
Reading responses
The responses view lists what came back and lets you filter by the path people took or by whether they finished. Open any single response to see its whole journey: the questions asked, the answers given, and the questions that never appeared, each with the reason.
R-1285 What are you reporting? Equipment fault Which unit? PMP-4471 checked ✓ How severe is it? 4 of 5 Which item is low? never asked — the first answer was Equipment fault What happened? Seal failure on the inlet side
Export and webhooks
Export everything as CSV or JSON at any time. Column names match your question names, so you do not have to map anything by hand. A question that was never asked is an empty cell, not a zero and not the word null.
Sending each response onward
A webhook fires once per response, when it is sent. Partial responses fire only if you ask them to.
{
"response": "R-1285",
"form": "equipment-report",
"received": "2026-10-29T09:14:22Z",
"complete": true,
"answers": {
"what_are_you_reporting": "Equipment fault",
"which_unit": "PMP-4471",
"how_severe_is_it": 4,
"what_happened": "Seal failure on the inlet side"
},
"not_asked": ["which_item_is_low", "how_many_are_left"]
}
The not_asked list is the part worth wiring into whatever receives this. It
tells you which fields are absent by design, so your side can tell a skipped question from
a missing one without guessing.
We retry a failing endpoint six times over an hour, then stop and show the failure on the response itself.
Retention
Each workspace has a window: 30 days on Free, one year on Team, no limit on Business. A response older than the window is deleted.
Deleted means deleted. It is not hidden behind an upgrade prompt and we cannot bring it back for you afterwards. If you need a longer record than your plan keeps, turn on a scheduled export first and the copy is yours.