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

  1. Add your domain - Go to Team Settings > Domains
  2. Configure DNS - Add TXT and CNAME records at your DNS provider
  3. Verify ownership - Click "Verify" once DNS propagates
  4. 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 just surveys depending on DNS provider)
  • Value: custom.srvey.io

DNS Provider Examples

Cloudflare:

  1. Go to DNS settings
  2. Add TXT record with host _srvey-verify.surveys and verification value
  3. Add CNAME record with host surveys pointing to custom.srvey.io

GoDaddy:

  1. Go to DNS Management
  2. Add TXT record: Host = _srvey-verify.surveys, Value = verification token
  3. Add CNAME record: Host = surveys, Points to = custom.srvey.io

Route 53 (AWS):

  1. Go to Hosted Zone
  2. Create TXT record: Name = _srvey-verify.surveys.yourdomain.com, Value = verification token
  3. 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-feedback
  • https://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

  1. Click "Remove" next to the domain
  2. Confirm removal
  3. Domain immediately stops working
  4. Surveys revert to srvey.io URLs

Troubleshooting Verification

If verification fails:

  1. Check DNS propagation - Use whatsmydns.net to verify records
  2. Verify TXT record value - Must match exactly (case-sensitive)
  3. Check TXT record host - Must include _srvey-verify. prefix
  4. 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.com rather 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