Survey lets you create public forms under a short survey code:
https://ylnk.cc/s/abcd
A survey can include branding, SEO preview data, identity collection, typed questions, multi-step flow, password protection, expiration, response limits, analytics, respondent profiles, and exports.
Surveys can also be assigned to an active custom domain:
https://forms.yourbrand.com/s/abcd
When a survey is assigned to an active custom domain, it becomes exclusive to that domain. The same /s/{code} path on the primary yLnk host returns not found while the active domain assignment exists.
- Teams collecting feedback, leads, applications, or event responses.
- Marketers who need branded survey links and social preview metadata.
- Support and product teams that need response analytics by browser, device, app, and geography.
- Organizations that need exports for respondents, responses, or analytics.
Survey admin endpoints require authentication. In organization mode, creating, editing, publishing, and domain assignment require editor-level access in the active organization context.
The current plan must include Surveys. Creating a survey checks the survey quota and consumes the CREATE_SURVEY quota action.
Survey custom domains require the surveysCustomDomain plan capability. Without it, assigning a custom domain returns a payment-required response.
Each survey has a public code used in /s/{code}.
- If no code is provided, yLnk generates a unique 4-character code.
- A custom code can be 1 to 24 characters.
- Allowed characters are letters, numbers, underscores, and hyphens.
- Codes are globally unique.
A survey must be published before public users can view or submit it. Unpublished surveys return not found publicly.
To assign a survey to a custom domain:
- The domain must be registered in yLnk.
- The domain must be
ACTIVE. - The domain must belong to the same user or organization context.
- The plan must allow survey custom domains.
🧭 1. Navigate: App > Surveys.
2. Click Create Survey.
3. Enter a title and optional description.
4. Choose a custom code or let yLnk generate one.
5. Save the survey.
The initial survey version is created with an empty question list. You can create it unpublished or publish it immediately.
- Open the survey editor.
- Update title, description, branding, identity rules, expiration, response limit, or password settings.
- Save the survey.
Title is limited to 160 characters. Description is limited to 300 characters.
Supported question types:
RADIOCHECKBOXRANGETEXTNUMBERSELECTTEXTAREARATING_STARSRATING_NUMBERS
Question rules:
- Maximum 50 questions.
- Question ids must be unique.
- Question names are required.
- Radio, checkbox, and select questions need at least 2 options.
- Option values are required.
- Range questions need a range where max is greater than min.
- Rating max must be between 3 and 10.
Use flow settings to control how questions are presented.
The public renderer supports:
- Single-page mode
- One-by-one mode
- Start page
- End page
- Step definitions
- Transition effects
- Privacy policy URL
If no valid flow exists and questions are present, yLnk creates a default step containing all questions.
Branding controls the public survey appearance. The model supports:
- Logo and header image
- Accent color
- Background color, gradient, or image
- Card or flat layout
- Card fill, corner, shadow, and color settings
- Button style, radius, shadow, fill, color, and text color
- Progress bar
- Sectioned layout
- Label placement
- Sticky submit
- Font settings
- Title and description colors and sizes
Use these settings to make the public survey match the page or campaign where it is shared.
Identity collection can ask for:
- Name
- Phone
- Website
- Address
⚠️ When identity collection is enabled, email is always required. The backend enforces email as the primary key for respondent profiles.
Respondent profiles are stored per survey owner and can be reused for prefill by profile id or a generated 4-character public pid.
- Enable password protection.
- Send the client-side SHA-256 password hash.
- Save the survey.
The backend validates that the client hash is a 64-character lowercase SHA-256 hex string and stores a BCrypt hash of that token.
To remove password protection, disable password protection and save.
Optional limits:
expiresAt: public access returns not found after this time.maxResponses: submissions are rejected after the submitted response count reaches the cap.
Expiration is checked for public view, event, prefill, and submit operations.
- Open the SEO section.
- Set SEO title, SEO description, and SEO image.
- Save.
Limits:
- SEO title: 60 characters.
- SEO description: 160 characters.
The SEO image supports the same storage behavior as short-link SEO images: upload a base64 image, keep existing with no_change, remove with null/empty behavior, or set a URL/object key.
- Register and verify the domain in
App > Domains. - Confirm the domain is
ACTIVE. - Open the survey editor.
- Select the custom domain.
- Save the domain setting.
- Test the survey on the custom domain.
Example:
https://forms.yourbrand.com/s/abcd
Domain scoping rules:
- On a custom-domain request, the survey must be assigned to that exact active domain.
- On the primary yLnk host, a survey assigned to an active custom domain is hidden.
- The resolver accepts exact host matches and
www/non-wwwvariants for the assigned active domain.
- Click
Publish. - Open the public survey URL.
- Submit a test response.
- Check analytics and responses.
Verification checklist:
https://ylnk.cc/s/<code>for primary-domain surveys.https://forms.yourbrand.com/s/<code>for custom-domain surveys.- Password prompt if protection is enabled.
- Required identity fields.
- Required question answers.
- Response limit behavior.
The survey may be unpublished, expired, assigned to a different active custom domain, or using the wrong host.
If a survey has an active custom-domain assignment, use the custom-domain URL.
Survey codes are globally unique. Choose another code or leave the field blank so yLnk generates one.
Use only letters, numbers, underscores, and hyphens. Keep the code at 24 characters or fewer.
Confirm the plan allows survey custom domains, the domain is ACTIVE, and the domain belongs to the current account or organization.
The public submit API expects the client-side SHA-256 hash, not the raw password. The token must be 64 lowercase hex characters.
If identity collection is enabled, email is always required even if the UI only marks other fields.
Check the question type rules. Option-based questions need at least two options, range questions need valid min/max values, and ratings must use a max between 3 and 10.
After submissions exist, changing questions or flow creates a new survey version. Existing submissions remain tied to the version they were submitted against.
Yes. The initial version can be empty. Add questions before sharing the survey publicly if you expect meaningful submissions.
A survey can be unpublished, password-protected, expired, or capped by response limit. Unpublished and expired surveys return not found publicly.
Yes, if your plan allows survey custom domains and the domain is active. The public path remains /s/{code} on that host.
Not when the survey is assigned to an active custom domain. The active domain assignment is exclusive, so the primary-domain route returns not found.
Survey analytics count views, starts, submissions, completion rate, response rate, geo breakdowns, browser, operating system, device type, app detection, mobile state, bot state, and in-app browser state.
Yes. Admin exports are available for respondents, responses, and analytics.
🔒 Public survey resolution hides unpublished, expired, and incorrectly scoped surveys by returning not found.
Password protection stores a BCrypt hash of the client SHA-256 token. Raw passwords are not expected by the backend.
Domain scoping prevents a survey assigned to one active custom domain from being served from another custom domain or from the primary yLnk host.
Public survey events support three activity types:
VIEWSTARTSUBMIT
View and start events are anonymous. Submissions store answers, optional identity, duration, IP hash, user agent, device details, app/browser parsing, referrer, and geo fields.
Analytics are available from:
App > Surveys > Analytics
Survey creation requires a plan with survey quota. Custom-domain assignment requires the survey custom-domain feature.
Implementation limits:
- Maximum 50 questions.
- Maximum 50 options per option-based question.
- Maximum 30 flow steps.
- Custom code length: 1 to 24 characters.
- SEO title: 60 characters.
- SEO description: 160 characters.
Admin endpoints:
Public endpoints:
Minimal create request:
{
"title": "Customer Feedback",
"description": "Tell us how the launch went.",
"isPublished": false
}
Minimal domain assignment:
{
"domainId": "active-domain-id"
}