Response templates
One URL per recipient, baked with metadata, redeemable exactly once.
Dataopi does not have an "anonymous public form". Every response is
captured through a ResponseTemplate — a single-use token that you mint
ahead of time for a specific recipient.
This unlocks two things at once:
- Metadata travels with each response (recipient ID, store, channel, …) without ever being shown to the respondent.
- One link per recipient lets you measure response rates per recipient and prevents bots from flooding shared URLs.
Lifecycle
Creating a template
You can create a template either from the admin UI (per recipient) or programmatically with a project API key:
curl -X POST https://your-host/api/surveys/$SURVEY_ID/templates \
-H "Authorization: Bearer $PROJECT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"metadata": {
"email": "ada@example.com",
"store": "MAD-01",
"purchaseId": "p_24891"
}
}'The response looks like:
{
"token": "0c63a3f5-...",
"url": "/r/0c63a3f5-..."
}For bulk sends, use the templates/batch endpoint with up to 10 000 templates
per call.
Metadata schema (optional)
A survey may declare a metadataSchema that lists which keys are allowed and
which are required. When set, the API rejects template creation if metadata is
missing or has the wrong type. Allowed value types are string, number and
boolean.
{
"email": { "type": "string", "required": true },
"store": { "type": "string" },
"isVip": { "type": "boolean" }
}Editing a response
A respondent can re-open /r/{token} after submitting and edit their answers
while the survey remains PUBLISHED. Only the latest version is stored.
What you cannot do (by design)
- You cannot share a single URL across many respondents — there is no public "open" form. Generate one template per recipient.
- You cannot reuse a token across surveys — each template binds to exactly one survey.