Why Launch the FAQ Ally Widget?

The widget makes your trained FAQ Ally agent available anywhere your customers or teams need help. Because it reads the same knowledge you uploaded, every response stays aligned with the guardrails you already configured in the dashboard.

The checklist below keeps the deployment secure: you will activate the widget from the agent card, bind it to domains you control with DNS, open the right CSP directives, and paste a static HTML snippet to render the chat bubble.

Prerequisites

  • FAQ Ally tenant with at least one trained agent.
  • Dashboard access to the agent’s card so you can enable the widget.
  • Control of your public DNS (Cloudflare, Route53, etc.).
  • Ability to edit response headers (for CSP) and deploy static HTML to the target site.

Step 1 — Create the Widget from the Agent Card

  1. Go to AI Agents in the dashboard and hover over the agent you want to expose.
  2. Click the Widget icon (map-pin button) in the agent card footer. This opens the Create Widget modal.
  3. Fill out the modal fields:
    • Name: friendly label such as “AI Knowledge Widget”.
    • Description: optional internal notes about where the widget lives.
    • Allowed Domain: primary hostname (e.g., example.com) that should load this widget.
  4. Click Create Widget. The modal shows the data-faqally-widget ID—copy this for the embed in Step 4. The API key is automatically embedded in the widget JavaScript for security.

If the agent is still training or inactive, finish those steps first to keep the widget responses accurate.

Step 2 — Lock Access with DNS

After creating the widget, the bottom panel shows Domain Verification, which issues a unique TXT record you must publish before the widget can load on your domain. Domain verification is configured at the agent level, which means the same DNS authorization applies to both widgets and API keys.

For detailed instructions on setting up DNS domain verification, including step-by-step guides for different DNS providers, see our comprehensive Domain Verification guide.

  1. Confirm the Allowed Domain field matches your live host (e.g., example.com). The verification area will display the exact TXT record to add.
  2. In your DNS provider (Cloudflare, Route53, GoDaddy, etc.), create a TXT record with the Name value shown (typically _faqally) and paste the full token from the Value column.
  3. Save the record. DNS can take a few minutes to propagate—use the copy buttons in the modal to avoid typos.
  4. Back in the Manage Widget modal, click Verify Domain. The status chip changes to Verified once the TXT record is detected.

Note: The same domain verification applies to both widgets and API keys. Once a domain is verified for an agent, both access methods are secured by the same DNS authorization. If verification fails, wait a bit longer for DNS propagation or confirm that the TXT record matches the instructions exactly. For troubleshooting help, see our Domain Verification guide.

Step 3 — Update Your Content Security Policy

Content Security Policy needs to explicitly allow the widget to load scripts, styles, fonts, and network requests from FAQ Ally. Add https://cdn.faqally.com everywhere the widget pulls assets, and include https://api.faqally.com so chats can reach the API.

Example Node/Express configuration:

// Append these hosts to your existing CSP
scriptSrc:  ... "https://cdn.faqally.com"
styleSrc:   ... "'unsafe-inline'" "https://cdn.faqally.com"
connectSrc: ... "https://api.faqally.com" "https://cdn.faqally.com"
imgSrc:     ... "https://cdn.faqally.com"
          

If you created a custom subdomain in Step 2, add that host to the same directives.

Step 4 — Embed the Static HTML Snippet

Drop the snippet below onto any static HTML page—ideally just before </body>. Replace YOUR_WIDGET_ID with the widget ID you copied from the agent card. The API key is automatically embedded in the widget JavaScript for enhanced security—no need to include it in your HTML.

<!-- FAQ Ally widget container -->
<div data-faqally-widget="YOUR_WIDGET_ID"></div>

<!-- FAQ Ally widget loader -->
<script
  async
  src="https://cdn.faqally.com/widgets/FAQAlly_YOUR_WIDGET_ID.js">
</script>
          

Security Note: The API key is embedded directly in the widget JavaScript file, so you don't need to expose it in your HTML. This provides better security and simplifies setup.

Hosting a static site? Commit the snippet to your HTML template. For frameworks, inject the script in a mount hook and remove it when unmounting to avoid duplicates.

Step 5 — Validate and Monitor

  • Load check: Visit the page on your custom domain and confirm the trigger bubble renders.
  • DNS/CSP audit: Use browser dev tools to verify the script loads from your subdomain/CDN without CSP violations.
  • Functional test: Ask a few mission-critical questions; responses should match the agent’s training data.
  • Ongoing monitoring: Review FAQ Ally analytics for fallback spikes, validation warnings, or unusual traffic.

Once these checks pass, the widget is live, secure, and backed by the same accuracy safeguards as the in-dashboard experience.