Developer documentation
Developer guide
Install the visitor language switcher on a published page, protect approved copy, and keep DNS, certificates, and publication as separate checks.
Get started with the pages you already run.
Capability matrix
| Capability | Status | Evidence |
|---|---|---|
Visitor widget cdn.funnellingo.com/widget/v1.js | Available | Live CDN script. Requires a project public key from Publish. |
| Signed translation workspace | Available | Installed businesses review and publish copy in the dashboard. |
| Locked human-approved translations | Available | Automation cannot silently replace approved wording. |
| TapTapDNS domain connection | Included | DNS verification is not certificate or application readiness. |
| Language pages on a connected hostname | Available | Multilingual SEO is included. Publish approved language pages after the connected address and certificate are ready. Search indexing is currently disabled; activation follows project verification and approval. Rankings are never guaranteed. |
Authenticated /agent/v1 | Available | Inspect, plan, review, and publish with the same ownership rules as the dashboard. Unauthenticated calls return 401. |
Install the switcher
This is the implemented visitor integration. Replace PROJECT_PUBLIC_KEY with the public key shown in Publish. The runtime looks for a non-script element with data-funnellingo-project; the script tag alone does not start the switcher. Do not put API secrets, account tokens, or visitor form values in the snippet.
<div
data-funnellingo-switcher
data-funnellingo-project="PROJECT_PUBLIC_KEY"></div>
<script
src="https://cdn.funnellingo.com/widget/v1.js"
defer></script>Visit each selected published page once after you save the switcher. Eligible authored words appear for review. Visitor-typed values stay out.
Approval is required
A complete example is inspect → draft → review → publish → verify. The current product interface pauses for human approval before the first publish. Machine refreshes cannot silently replace locked translations. Source or context changes reopen the decision.
DNS versus certificates
If a project uses a dedicated language hostname, treat these as independent:
- DNS — whether the required records are present at authoritative nameservers.
- Hostname — whether the language address is provisioned.
- Certificate — whether HTTPS for that hostname is ready.
- Translated content — whether an approved language bundle is published.
Do not ask someone to edit a correct DNS plan because a certificate is pending. Domain setup uses TapTapDNS inside the existing workflow; it does not require another marketplace installation.
Workspace API
Installed workspaces can call https://api.funnellingo.com/agent/v1 with the same review, lock, and publish rules as the dashboard. Discovery without a token returns 401. There is no unauthenticated public MCP or CLI.
Limits and data handling
- FunnelLingo translates authored page copy, not visitor entries or contact records.
- If the switcher cannot load, the original language remains available.
- Search indexing and rankings are not guaranteed.
- Questions: [email protected].