Custom Domains
Custom domains let you use your own branded subdomain for attendee-facing WebinarStack links.
Instead of sending attendees to a WebinarStack-hosted app URL, you can connect a domain such as webinar.example.com and use that domain for registration pages, watch links, replay links, unsubscribe links, and other attendee-facing webinar URLs that WebinarStack generates for your workspace.
Custom domains are most useful when you want webinar links to feel like part of your own brand, improve trust in emails and SMS messages, or keep the attendee journey aligned with the rest of your website.
The Short Version
Section titled “The Short Version”| Area | What It Means |
|---|---|
| Where to manage it | Open Settings and select the Domains tab. |
| Supported domain type | Subdomains, such as webinar.example.com or events.example.com. |
| Unsupported domain type | Apex/root domains, such as example.com, are not currently supported. |
| Main DNS record | A CNAME record pointing your chosen subdomain to the target shown in WebinarStack. |
| Verification record | A TXT record may be shown when domain ownership verification is required. |
| SSL | WebinarStack provisions SSL through its hosting provider after DNS is correct. |
| Active URL behavior | Once live, WebinarStack prefers the custom domain for attendee-facing generated links. |
| Dashboard behavior | Dashboard, login, signup, and account settings stay on the primary WebinarStack app domain. |
| Plan requirement | Custom domains require a plan with the custom domains capability. |
| Limit | One active custom domain per workspace/account. |
What A Custom Domain Does
Section titled “What A Custom Domain Does”A custom domain changes the public base URL WebinarStack uses for attendee-facing webinar experiences.
When the domain is live, WebinarStack can use it for:
- Webinar registration URLs shown in the webinar editor.
- Attendee watch links generated after registration.
- Email automation tokens such as
{{watch_link}},{{replay_link}}, and{{unsubscribe_link}}. - SMS automation tokens that include attendee URLs.
- API responses that return attendee
accessUrlvalues. - Embed and attendee event traffic that belongs to the public webinar experience.
For example, without a live custom domain, an attendee link might look like:
https://app.webinarstack.co/watch/abc123With a live custom domain, that same kind of attendee link can look like:
https://webinar.example.com/watch/abc123The custom domain does not turn WebinarStack into a general website builder for the root of your domain. Visiting https://webinar.example.com/ directly shows a WebinarStack page explaining that the domain serves webinar pages only. The dashboard, login, billing, API integration setup, and account settings still belong on the main WebinarStack app domain.
Choosing A Domain
Section titled “Choosing A Domain”Choose a dedicated subdomain for your webinar traffic.
Good choices:
| Example | Why It Works |
|---|---|
webinar.example.com |
Clear, predictable, and easy to recognize in email. |
events.example.com |
Good if webinars are part of a broader event program. |
live.example.com |
Short and memorable for watch links. |
training.example.com |
Good for education, onboarding, or course-style webinars. |
Avoid:
| Domain | Why To Avoid It |
|---|---|
example.com |
Apex/root domains are not currently supported. |
www.example.com |
Usually already serves your main website. |
app.example.com |
Often already used for a SaaS app or customer portal. |
| A subdomain with existing records | Existing CNAME, A, AAAA, or proxy records may conflict with WebinarStack routing. |
Use a subdomain that you can safely dedicate to WebinarStack.
Before You Start
Section titled “Before You Start”Make sure you have:
- Access to WebinarStack settings for the correct workspace.
- Permission to manage DNS records for your domain.
- A subdomain chosen, such as
webinar.example.com. - No conflicting DNS records already using that exact subdomain.
- A plan that includes custom domains.
If your DNS is managed by an agency, IT team, or another admin, you can still start the connection in WebinarStack and then send them the DNS records shown on the domain card.
Where To Find Custom Domains
Section titled “Where To Find Custom Domains”Open Settings and select the Domains tab.
The Domains tab shows one of two states:
| State | What You See |
|---|---|
| No connected domain | A setup form with a Hostname field and Connect Domain button. |
| Connected domain | A domain card with status badges, DNS records, recheck controls, preview URL, and disconnect controls. |
The Hostname field is where you enter the exact subdomain you want to connect.
Use lowercase letters, numbers, hyphens, and dots. WebinarStack normalizes the host internally, so Webinar.Example.com is treated as webinar.example.com.
Connect A Domain
Section titled “Connect A Domain”- Open Settings.
- Select Domains.
- Enter your subdomain in Hostname.
- Click Connect Domain.
- Review the confirmation dialog.
- Click Connect.
After you connect, WebinarStack creates the domain record and shows the DNS records you need to add at your DNS provider.
If you enter an apex domain such as example.com, WebinarStack rejects it and asks you to use a subdomain like webinar.example.com.
If the domain is already connected to another WebinarStack account, you will need to use a different subdomain or contact support.
The Connect Confirmation
Section titled “The Connect Confirmation”The confirmation dialog exists because connecting a domain starts an external hosting and DNS verification process.
It confirms:
- The exact hostname you are connecting.
- That attendee links will route through that domain after DNS propagates.
- That you can cancel and keep editing if the hostname is wrong.
Review the hostname carefully before clicking Connect. DNS mistakes are usually easy to fix, but they can cost time while records propagate.
DNS Records
Section titled “DNS Records”After connecting the domain, WebinarStack shows a DNS instructions section titled Add these DNS records.
The DNS records table has three important fields:
| Field | Meaning |
|---|---|
| Type | The DNS record type, usually CNAME and sometimes TXT. |
| Name | The hostname or verification hostname where the record must be created. |
| Value | The destination or verification token the record must point to. |
Use the copy buttons in WebinarStack whenever possible. DNS verification is exact: extra spaces, missing labels, or an old record pointing somewhere else can prevent the domain from going live.
CNAME Record
Section titled “CNAME Record”The CNAME record routes your chosen subdomain to WebinarStack’s hosting layer.
It usually looks like this:
| Field | Example |
|---|---|
| Type | CNAME |
| Name | webinar.example.com |
| Value | The target shown in WebinarStack, such as cname.vercel-dns.com or another recommended target. |
Some DNS providers ask for the full hostname, such as webinar.example.com. Others ask only for the subdomain label, such as webinar, because they automatically append example.com.
The final DNS result must resolve the full subdomain shown in WebinarStack.
TXT Record
Section titled “TXT Record”WebinarStack may also show a TXT record for domain ownership verification.
It usually looks like this:
| Field | Example |
|---|---|
| Type | TXT |
| Name | _vercel.webinar.example.com |
| Value | A verification token shown in WebinarStack. |
Add the TXT record exactly as shown. If your DNS provider automatically appends your root domain, make sure the final record name still becomes _vercel.webinar.example.com.
TTL controls how long DNS resolvers cache a record.
For setup, the default TTL from your DNS provider is usually fine. If you can choose a value, a shorter TTL such as 5 minutes is helpful during setup, but it is not required.
Existing Records
Section titled “Existing Records”A hostname cannot have both a CNAME and most other address records at the same name.
If webinar.example.com already has an A record, AAAA record, another CNAME, or a provider-specific proxy record, remove or replace the conflicting record before expecting WebinarStack verification to pass.
Provider Notes
Section titled “Provider Notes”The DNS instructions include a provider selector with guidance for common DNS providers.
| Provider | Notes |
|---|---|
| Cloudflare | Add records under DNS -> Records. Set Proxy status to DNS only. Orange-cloud proxying can prevent SSL issuance. |
| GoDaddy | Go to My Products -> your domain -> DNS -> Add Record. Default TTL is fine. |
| Namecheap | Go to Domain List -> Manage -> Advanced DNS -> Add New Record. Use CNAME for routing and TXT for verification. |
| Route 53 | Go to Hosted zones -> your domain -> Create record. Use simple routing and keep alias disabled for the CNAME. |
| Other registrar | Add the records exactly as shown in WebinarStack. Disable custom proxies or CDN features until verification is complete. |
If your provider’s UI looks different from the wording above, focus on the final DNS result: the full hostname must have the CNAME target shown by WebinarStack, and the verification TXT record must exist when shown.
Cloudflare Proxying
Section titled “Cloudflare Proxying”Cloudflare deserves special attention because its proxy mode can hide the real CNAME target from WebinarStack’s hosting provider.
When using Cloudflare:
- Create the CNAME record.
- Set Proxy status to DNS only.
- Confirm the cloud icon is gray, not orange.
- Save the record.
- Return to WebinarStack and click Recheck if needed.
After the domain is live, keep it DNS-only unless support tells you otherwise.
CAA Records
Section titled “CAA Records”CAA records tell certificate authorities which companies are allowed to issue SSL certificates for your domain.
WebinarStack checks CAA records before adding the domain to the hosting provider. This prevents a confusing setup state where DNS looks correct but SSL can never be issued.
If a CAA record blocks SSL, WebinarStack shows an error with the blocking record and a fix.
In most cases, the fix is to allow Let’s Encrypt to issue certificates for the domain by adding a CAA record like:
example.com. CAA 0 issue "letsencrypt.org"Do not delete your existing CAA records unless you understand why they were added. Add the allowed issuer alongside the existing records so your current certificate policy remains intact.
If your organization has strict certificate rules, send the WebinarStack error text to the person who manages your DNS or security policy.
Verification And SSL
Section titled “Verification And SSL”Custom domain setup has two separate parts:
| Part | What Happens |
|---|---|
| DNS verification | WebinarStack’s hosting provider confirms that your records point to the correct target and that ownership verification is satisfied. |
| SSL provisioning | An HTTPS certificate is issued so attendees can safely visit the domain. |
DNS can be correct before SSL is finished. That is why the domain card can show DNS Verified while SSL is still pending.
Most domains finish quickly after DNS is correct, but DNS propagation can take longer depending on your provider, TTL, and previous records.
Automatic Checks
Section titled “Automatic Checks”After you connect a domain, WebinarStack starts background checks.
The system checks shortly after connection and continues over a 15-minute setup window. The Domains tab also refreshes pending domain state automatically while you are viewing it.
If the domain has not gone live after the setup checks, WebinarStack marks it as DNS failed or shows a specific error. You can fix the DNS records and click Retry or Recheck.
Live domains are also checked periodically. If a previously live domain becomes misconfigured later, WebinarStack can mark it as an error and fall back to the primary app URL for generated attendee links.
Statuses
Section titled “Statuses”The domain card uses status badges to show what is happening.
| Status | What It Means | What To Do |
|---|---|---|
| DNS Pending | WebinarStack is waiting for DNS records to be detected. | Add the shown CNAME and TXT records, then wait or click Recheck. |
| DNS Failed | DNS was not detected within the setup window or records do not match. | Compare records carefully, fix mistakes, and click Retry. |
| DNS Verified | DNS verification passed, but SSL is not finished yet. | Wait for SSL provisioning. This usually completes without more action. |
| SSL Pending | The certificate is being issued or final hosting configuration is still settling. | Wait a few minutes and use Recheck if needed. |
| Live | The domain is ready for attendee traffic. | Copy, test, and start using the branded attendee URLs. |
| Error | WebinarStack found a provider, CAA, or verification issue. | Read the error card, apply the suggested fix, then click Retry. |
| Disconnected | The domain has been removed from active use. | Generated links fall back to the primary app URL. You can remove DNS records after disconnect completes. |
Last Checked
Section titled “Last Checked”The domain card includes a last-checked timestamp.
Use it to tell whether WebinarStack has checked the latest version of your DNS records. If you just changed DNS and the card still shows an older check time, click Recheck.
If the timestamp updates but the status does not change, the current DNS result still does not satisfy the setup requirements.
Manual Recheck And Retry
Section titled “Manual Recheck And Retry”Use Recheck when:
- You just added the DNS records.
- You changed a CNAME or TXT value.
- Your DNS provider shows the records are saved.
- The domain has been pending longer than expected.
Use Retry when:
- The domain is in an error state.
- You fixed a CAA record.
- You corrected a missing or mismatched record.
- A provider error looked temporary.
Do not click repeatedly every second. Rechecks are rate-limited, and DNS providers still need time to publish changes.
Attendee URL Preview
Section titled “Attendee URL Preview”When the domain is live, the domain card shows an attendee URL preview.
The preview uses the account’s active base URL and tries to build a real watch link using the newest registration token in the workspace.
There are two possible preview states:
| Preview State | Meaning |
|---|---|
| Real attendee URL | WebinarStack found a registration token and can show a real https://yourdomain/watch/... link. |
| Placeholder URL | There is no registration token yet, so WebinarStack shows https://yourdomain/watch/<token>. |
If you see a placeholder, register a test attendee for one of your webinars. Then return to Settings -> Domains and use the preview again.
The Test attendee URL button opens the preview URL. If the domain is not live yet, the test button is disabled because the route may not work until DNS and SSL are complete.
How Custom Domains Affect Webinar Links
Section titled “How Custom Domains Affect Webinar Links”WebinarStack resolves a workspace’s active base URL before generating attendee links.
The order is:
- Use the live custom domain if the workspace has one.
- Otherwise, use the primary WebinarStack app URL.
This affects several places in the product.
Registration URLs
Section titled “Registration URLs”In the webinar editor, the Registration tab shows a public URL for the webinar.
When a custom domain is live, the registration URL uses that domain:
https://webinar.example.com/webinar/my-webinarIf no custom domain is live, the registration URL uses the primary app URL.
Watch And Replay Links
Section titled “Watch And Replay Links”Watch and replay links use the attendee’s registration token:
https://webinar.example.com/watch/attendee-tokenThe same token route is used for live sessions and replay access.
Email Automation Tokens
Section titled “Email Automation Tokens”Email automations resolve tokens using the active base URL.
Common URL tokens include:
| Token | Result |
|---|---|
{{watch_link}} |
The attendee’s watch link on the live custom domain when available. |
{{replay_link}} |
The attendee’s replay/watch route on the live custom domain when available. |
{{unsubscribe_link}} |
The attendee unsubscribe route on the live custom domain when available. |
If you connect a custom domain after creating automations, you do not need to rewrite the token names. The token is resolved when the automation sends.
SMS Automation Tokens
Section titled “SMS Automation Tokens”SMS automations also use the active base URL for URL tokens.
Because SMS messages have tight length limits, a branded but longer custom domain can affect message segment count. Check SMS preview and segment warnings after connecting a custom domain, especially if your domain is long.
API Registration Responses
Section titled “API Registration Responses”When creating or reading registrations through the API, WebinarStack returns attendee access URLs in the response.
Treat the returned accessUrl as the source of truth instead of constructing attendee links manually. Depending on the API route context, the returned URL may use the primary WebinarStack app URL or a custom-domain-aware base URL. The important contract is that the URL returned by WebinarStack is the URL your integration should store or send to the attendee.
Embed Widgets
Section titled “Embed Widgets”The public registration experience can run on the custom domain, but the embed script source intentionally uses the primary WebinarStack app URL to avoid cross-origin loading issues.
That means an embed snippet can still contain a script URL from the primary WebinarStack app even when your attendee registration and watch URLs use your custom domain. This is expected.
What Custom Domains Do Not Change
Section titled “What Custom Domains Do Not Change”Custom domains do not change:
- The WebinarStack dashboard URL.
- Login, signup, billing, or account settings URLs.
- Internal admin or background job URLs.
- Third-party integration OAuth URLs.
- Your main website.
- Existing DNS records for unrelated subdomains.
If someone tries to visit dashboard paths on your custom domain, WebinarStack redirects them to the primary app host. This protects account administration from being mixed into attendee-facing domains.
Disconnect A Domain
Section titled “Disconnect A Domain”Use disconnect when you no longer want WebinarStack to serve attendee links from the custom domain.
- Open Settings.
- Select Domains.
- Open the connected domain card.
- Click Disconnect.
- Review the confirmation dialog.
- Click Disconnect again.
After disconnect succeeds:
- WebinarStack removes the domain from its hosting configuration.
- The domain record is marked disconnected.
- Generated attendee links fall back to the primary WebinarStack app URL.
- You can remove the CNAME and TXT records from your DNS provider.
Disconnect is restricted because it affects public attendee access. If you cannot disconnect a domain, ask the workspace owner to perform the action.
Plan Changes
Section titled “Plan Changes”Custom domains require a plan that includes the custom domains capability.
If a workspace is downgraded to a plan that does not include custom domains, the domain record can remain in the workspace, but attendee traffic on the custom domain is blocked until the plan supports custom domains again.
This avoids requiring you to recreate DNS records if the workspace later returns to a supported plan.
Troubleshooting
Section titled “Troubleshooting”| Problem | Likely Cause | What To Do |
|---|---|---|
| Apex domain rejected | You entered example.com instead of a subdomain. |
Use a subdomain like webinar.example.com. |
| Domain already connected | The same hostname is active in your workspace or another account. | Use a different subdomain or contact support. |
| DNS pending for a long time | DNS records are missing, not propagated, proxied, or entered at the wrong name. | Compare the Type, Name, and Value fields in WebinarStack with your DNS provider. |
| TXT record not found | The verification TXT record is missing or was added at the wrong name. | Add _vercel.your-subdomain with the exact token value shown. |
| CNAME record not found | The custom subdomain does not have a CNAME record. | Add the CNAME record shown in WebinarStack. |
| CNAME points to the wrong target | The hostname has an old CNAME or points to another service. | Update it to the target shown in WebinarStack. |
| SSL does not issue | DNS is proxied, CAA blocks SSL, or DNS has not propagated. | Set Cloudflare to DNS-only, fix CAA records, and retry. |
| CAA record blocks SSL | Your DNS policy does not allow the certificate authority used by WebinarStack. | Add the CAA record suggested in the error card, or ask your DNS/security admin. |
| Root domain shows “Webinar pages only” | You visited the custom domain root path. | Open a webinar registration or watch link instead. |
| Dashboard redirects away from custom domain | Dashboard pages are primary-app-only. | Use the main WebinarStack app URL for dashboard work. |
Preview shows <token> |
No registration token exists for the workspace. | Register a test attendee, then return to the domain preview. |
| SMS messages got longer | The custom domain is longer than the default URL. | Review SMS body length and shorten message copy if needed. |
Best Practices
Section titled “Best Practices”- Pick a short, clear subdomain before launching traffic.
- Set up the custom domain before publishing registration links.
- Keep the domain dedicated to WebinarStack.
- Use DNS-only mode in Cloudflare.
- Avoid changing DNS records during a live webinar.
- Register a test attendee and verify the registration URL, watch link, replay link, email tokens, SMS tokens, and unsubscribe link before launch.
- Tell your team that dashboard access still uses the main WebinarStack app URL.
- Keep the DNS records in place as long as the domain remains connected.
What To Send To A DNS Admin
Section titled “What To Send To A DNS Admin”If another person manages DNS, send them:
Please add the following DNS records for our WebinarStack custom domain.
Subdomain: webinar.example.com
Record 1:Type: CNAMEName: webinar.example.comValue: [copy the value shown in WebinarStack]
Record 2, if shown:Type: TXTName: _vercel.webinar.example.comValue: [copy the token shown in WebinarStack]
Important:- Do not proxy this record through Cloudflare or another CDN.- The final hostname must resolve exactly as shown.- Keep existing CAA records, but allow Let's Encrypt if WebinarStack reports a CAA issue.Replace the examples with the exact values shown in Settings -> Domains.
Launch Checklist
Section titled “Launch Checklist”Before you share webinar links broadly:
- The domain status is Live.
- The registration URL in the webinar editor uses the expected domain.
- A test attendee can register successfully.
- The attendee watch link opens over HTTPS.
- Email tokens resolve to the custom domain.
- SMS tokens fit within your intended message length.
- The unsubscribe link opens correctly.
- Your team knows not to use the custom domain for dashboard login.
Once those checks pass, the domain is ready for attendee traffic.