Custom Domains
Serve surveys from your own domain
Custom Domains
Serve your surveys from your own domain. Instead of srvey.io/your-survey, respondents see surveys.yourcompany.com/your-survey.
Quick Start
- Add your domain - Go to Team Settings > Domains
- Configure DNS - Add TXT and CNAME records at your DNS provider
- Verify ownership - Click "Verify" once DNS propagates
- Start using - Surveys automatically work on your domain
How It Works
Custom domains use DNS verification to prove ownership, then route survey traffic through our servers with automatic SSL.
Domain Setup Flow
Add Domain → DNS Records → Verify → SSL Provisioning → Active
| Step | What Happens |
|---|---|
| Add Domain | Enter your subdomain (e.g., surveys.acme.com) |
| DNS Records | Add TXT record for verification + CNAME for routing |
| Verify | System checks DNS records match expected values |
| SSL | Certificate automatically provisioned via Cloudflare |
| Active | Surveys accessible on your domain with HTTPS |
DNS Configuration
Two DNS records are required:
Step 1: TXT Record (Verification)
Proves you own the domain.
| Field | Value |
|---|---|
| Type | TXT |
| Host | _srvey-verify.{your-domain} |
| Value | Displayed in dashboard after adding domain |
Example: For surveys.acme.com
- Host:
_srvey-verify.surveys.acme.com - Value:
srvey-verify=M6MsqnB3KIRGwGcjJ8r1MUtVGOTjElGq
Step 2: CNAME Record (Routing)
Routes traffic to our servers.
| Field | Value |
|---|---|
| Type | CNAME |
| Host | {your-domain} |
| Value | custom.srvey.io |
Example: For surveys.acme.com
- Host:
surveys.acme.com(or justsurveysdepending on DNS provider) - Value:
custom.srvey.io
DNS Provider Examples
Cloudflare:
- Go to DNS settings
- Add TXT record with host
_srvey-verify.surveysand verification value - Add CNAME record with host
surveyspointing tocustom.srvey.io
GoDaddy:
- Go to DNS Management
- Add TXT record: Host =
_srvey-verify.surveys, Value = verification token - Add CNAME record: Host =
surveys, Points to =custom.srvey.io
Route 53 (AWS):
- Go to Hosted Zone
- Create TXT record: Name =
_srvey-verify.surveys.yourdomain.com, Value = verification token - Create CNAME record: Name =
surveys.yourdomain.com, Value =custom.srvey.io
Domain Requirements
Supported Domains
| Type | Supported | Example |
|---|---|---|
| Subdomains | Yes | surveys.acme.com |
| Multi-level subdomains | Yes | research.surveys.acme.com |
| Root domains | No | acme.com |
Blocked Domains
These patterns are blocked for security:
*.srvey.io- Our main domain*.test,*.localhost,*.local- Development TLDs- Typosquatting domains (e.g.,
srvey-io.com,srveyio.net)
SSL Certificates
SSL certificates are provisioned automatically after domain verification.
| Status | Meaning |
|---|---|
| Pending | Waiting for domain verification |
| Provisioning | Certificate being issued |
| Active | HTTPS enabled and working |
| Failed | Provisioning error (check DNS) |
SSL certificates are renewed automatically before expiration.
Survey URLs
Once your domain is active, surveys are accessible at:
https://{your-domain}/{survey-slug}
Examples:
https://surveys.acme.com/customer-feedbackhttps://research.university.edu/participant-survey
Surveys remain accessible on srvey.io as well. Both URLs work simultaneously.
Real-World Examples
Example: SaaS Company
Scenario: Product team wants surveys to match their app domain.
Domain: feedback.productapp.com
Use case: In-app feedback surveys
Setup:
1. Add feedback.productapp.com to Srvey
2. Add DNS records at DNS provider
3. Verify domain
4. Share surveys as feedback.productapp.com/nps
Example: Research Institution
Scenario: University needs surveys from their domain for credibility.
Domain: surveys.research.edu
Use case: Academic research studies
Setup:
1. Work with IT to add DNS records
2. Verify domain
3. Participants see university domain
4. Increases response rates and trust
Example: Agency with Multiple Clients
Scenario: Research agency serves multiple clients.
Option A: Use single agency domain
- surveys.researchagency.com
Option B: Set up per-client (Enterprise)
- surveys.client-a.com
- surveys.client-b.com
- Each client sees their own branding
Managing Domains
View Domain Status
Go to Team Settings > Domains to see:
- All configured domains
- Verification status
- SSL status
- Primary domain indicator
Remove a Domain
- Click "Remove" next to the domain
- Confirm removal
- Domain immediately stops working
- Surveys revert to
srvey.ioURLs
Troubleshooting Verification
If verification fails:
- Check DNS propagation - Use whatsmydns.net to verify records
- Verify TXT record value - Must match exactly (case-sensitive)
- Check TXT record host - Must include
_srvey-verify.prefix - Wait for propagation - DNS changes can take up to 48 hours
Verification Commands
Check your DNS records from terminal:
# Check TXT record
dig TXT _srvey-verify.surveys.example.com +short
# Check CNAME record
dig CNAME surveys.example.com +short
Expected output:
# TXT should show:
"srvey-verify=your-verification-token"
# CNAME should show:
custom.srvey.io.
Plan Availability
| Feature | Free | Pro | Business | Enterprise |
|---|---|---|---|---|
| Custom domains | - | - | - | Yes |
| Domains per team | - | - | - | Unlimited |
| SSL certificates | - | - | - | Automatic |
| DNS verification | - | - | - | Yes |
Custom domains require the custom_domains feature, available on Enterprise plans.
Troubleshooting
Issue: Domain not verifying
Symptoms: "Verification failed" message after clicking Verify.
Solutions:
- Confirm TXT record exists at
_srvey-verify.{domain} - Check TXT value matches exactly (copy/paste from dashboard)
- Wait for DNS propagation (up to 48 hours)
- Use
dig TXT _srvey-verify.{domain}to verify - Check for typos in the record host name
Issue: SSL not provisioning
Symptoms: Domain shows "Verified" but SSL is "Failed" or stuck on "Provisioning".
Solutions:
- Verify CNAME record points to
custom.srvey.io - Ensure CNAME is not proxied through another service
- Wait up to 24 hours for SSL provisioning
- Contact support if issue persists
Issue: Surveys not loading on custom domain
Symptoms: 404 error or timeout when accessing survey on custom domain.
Solutions:
- Verify domain status is "Active" in dashboard
- Check SSL status is "Active"
- Confirm CNAME record is correct
- Clear browser cache
- Try incognito/private browsing mode
Issue: Maximum verification attempts exceeded
Symptoms: "Maximum verification attempts exceeded" error after 10 failed verification attempts.
Solutions:
- Click Reset & Retry to clear the counter and try again
- Before retrying, verify DNS records are correctly configured
- Use
dig TXT _srvey-verify.{domain}to confirm TXT record exists - Ensure no conflicting DNS records exist
Security
Domain Ownership Verification
We verify domain ownership to prevent:
- Unauthorized domain claims
- Phishing attempts
- Subdomain takeovers
Authorization
Domain management requires the team.billing permission:
- Team owners can manage domains
- Users with billing permission can manage domains
- Regular team members can view domains but not modify
SSRF Protection
File-based verification (alternative method) includes:
- IP validation to prevent internal network access
- Timeout limits on HTTP requests
- Rejection of private/reserved IP ranges
Best Practices
- Use subdomains -
surveys.example.comrather than root domain - Be patient with DNS - Changes can take time to propagate
- Test before sharing - Verify SSL is active before distributing survey links
- Keep DNS records - Removing records will break your custom domain
- Plan for the future - Choose a subdomain that scales with your needs