Custom domain setup guide
Open your forms at an address on your own domain, such as forms.example.com/f/customer-survey. Setup is one hostname entered in Formaya and two DNS records at your domain provider. The certificate is issued and renewed for you.
How it works
A custom domain is available on the Business plan and is managed by a workspace owner or admin under Settings → Workspace → Custom domain. You choose a subdomain you control (forms.example.com, survey.example.org). Root domains such as example.com cannot be used: they would need A records, and a root domain usually carries your website.
Visitors who open https://forms.example.com/f/<form> get the same form as on formaya.app. Only the published forms of your workspace are served there: any other address on the hostname answers “not found”, and signing in to Formaya itself always happens on formaya.app. If your workspace public page is switched on, it is shown at https://forms.example.com/.
Setup steps
- In Formaya, open Settings → Workspace → Custom domain, enter the hostname and choose Connect domain.
- Formaya shows two DNS records. Create both at your domain provider (the company where you manage DNS for the domain).
- Wait. The page shows the setup as four steps: your DNS records (with a “found” or “not seen yet” line under each record), Validating hostname, Issuing certificate, and Live. The last three happen on their own, and the page re-checks every 45 seconds while it is open. Records are read from your domain’s own nameservers, so a change shows up as soon as your provider has saved it, usually within a minute.
- Share your forms with the new address. The form builder’s Copy link, QR code and embed snippets switch to it automatically.
The DNS records
| Type | Name (host) | Value (target / content) | Purpose |
|---|---|---|---|
CNAME | forms (your subdomain) | custom.formaya.app | Routes visitors of the hostname to Formaya. |
TXT | _formaya.forms | formaya-domain=… (the value shown on the page) | Ties the hostname to your workspace. Without it the hostname is never switched on, and if it disappears later the hostname is switched off again. |
Most providers ask for the name relative to your domain: for forms.example.com enter forms, and for the TXT record _formaya.forms. A few want the full name, forms.example.com; the page shows that form and either works. Leave the TTL at its default. Both records must stay in place for as long as you use the domain.
No proxy, redirect or “URL forwarding” option should be enabled on the CNAME. If your provider offers its own proxy on the record (an orange cloud at Cloudflare, for example), switch it off for this record: the certificate is validated through the CNAME, and a proxy in front of it prevents that.
Provider notes
Cloudflare (your domain is on Cloudflare)
DNS → Records → Add record. Create the CNAME with Proxy status set to DNS only (grey cloud). Add the TXT record as shown. Nothing else is needed.
GoDaddy
My Products → DNS → Add New Record. For the CNAME, Name is the subdomain (forms) and Value is custom.formaya.app. For the TXT record, Name is _formaya.forms.
Namecheap
Domain List → Manage → Advanced DNS → Add New Record. Host is the subdomain (forms or _formaya.forms); Value as shown on the page.
Google Domains / Squarespace Domains, IONOS, OVH, Hetzner, and others
The screens differ, the records are the same: one CNAME for the subdomain pointing at custom.formaya.app, one TXT record named _formaya. plus the subdomain, holding the formaya-domain=… value.
After it is live
- Forms keep working at their formaya.app address too. The copy on your domain is the one search engines are pointed at.
- Embeds created from the builder use your domain for the form; the small embed script itself still loads from formaya.app.
- Respondent sign-in (Google, Microsoft) opens its window on formaya.app and returns to your domain.
- Removing the domain in Settings takes effect immediately; links to it then fail until you connect it again.
Troubleshooting
A record stays on “not seen yet”
Check it with a public lookup tool (for example dig forms.example.com CNAME and dig _formaya.forms.example.com TXT). If the CNAME shows an IP address instead of custom.formaya.app, a proxy or forwarding option on the record is in the way. If the TXT record is missing, confirm its name: providers that want the relative name reject the full one, and the other way round. If the TXT record exists but holds a different value, you removed and re-added the domain: each connection gets its own value, so update the record to the one shown now.
“Issuing certificate” takes long
Cloudflare issues the certificate after it has validated the hostname over the CNAME. This is normally a few minutes; it can take up to an hour when the provider’s DNS is slow to update. Nothing on your side speeds it up, and there is nothing to redo.
“Needs attention”
Cloudflare reported a problem with the records; the message is shown on the page. The usual causes are a CNAME that points somewhere else, an existing record with the same name (CNAME records cannot share a name with other records), or a hostname that is already in use by another service.
The browser shows a certificate error
The certificate is issued only after the CNAME is seen, and the hostname is served only once the page says Live. Until then the browser cannot connect; wait for the certificate step and try again.
The domain went back to “not seen yet” after it was live
One of the two records was removed or changed. Both must stay in place; the hostname switches itself off while either is missing and back on once it is restored.
A form answers “not found” on the custom domain
The form belongs to another workspace, is unpublished, or the domain was removed. Forms of other workspaces are never served on your domain.
Questions: contact us.