window.aeoSettings configures the current external https://app.answer.cloud/embed.js bundle. Set it before loading the script. Hosted and companion pages receive generated settings; use the platform's supported configuration instead of installing another copy there.
<script>
window.aeoSettings = {
organization_id: 123,
site_id: 456,
chat: { enabled: true, button_text: "Ask a question" },
analytics: { enabled: true }
};
</script>
<script src="https://app.answer.cloud/embed.js" defer></script>
Replace example IDs with the actual intended organization/site. These are public routing identifiers, not secrets. The API name remains aeoSettings despite the Answer Cloud product name. The obsolete embed/loader.mjs path is not the current installation.
Top-level options#
| Option | Type | Default / purpose |
|---|---|---|
organization_id |
Integer | Required organization routing value. |
site_id |
Integer | Explicit site target when supplied by the integration. |
base_url |
String | Backend override; normally resolved from the embed script origin, currently app.answer.cloud. |
css_path |
Absolute public URL string | Optional stylesheet loaded into the host document and chat iframe. Use HTTPS. |
css_crossorigin |
String | Platform-generated theme loading hint where applicable; preserve generated settings. |
organization_sub |
String | Companion subdomain information used by relevant UI links. |
organization_domain |
String | Companion domain information used by relevant UI links. |
Keep base_url on the normal application service unless a supported test integration explicitly uses another backend. The public marketing www hostname is not the normal embed API host.
Chat object#
| Option | Type | Default / behavior |
|---|---|---|
chat.enabled |
Boolean | Chat starts only when explicitly true. |
chat.button_text |
String | Optional launcher label. |
chat.intro_text |
String | Optional introductory copy. |
chat.button_text_color |
Hex color string | Current bundle fallback is #6f7071. |
Labels belong inside chat, not at the top level. button_color is not a supported color control in this bundle. Use a scoped theme for other appearance changes and retain the attribution link. The hosted configure_widget tool additionally validates its supported copy lengths and color syntax; see configuration tools.
Analytics object#
| Option | Type | Default / behavior |
|---|---|---|
analytics.enabled |
Boolean | Events enabled unless explicitly false. |
analytics.tracking |
Boolean | Tracking-state initialization allowed unless explicitly false. |
analytics.track_forms |
Boolean | Generic form tracking allowed unless explicitly false. |
analytics: {
enabled: false,
tracking: false,
track_forms: false
}
Disabling event collection alone does not prevent initialization of session/first-touch state. Apply the appropriate flags before the bundle starts and test actual browser behavior with your consent flow. form_tracking is not the supported option name. These flags do not delete stored data, stop separate edge logging, or disable server-side capture of an accepted managed form.
Page buttons#
button.enabled must be true. button.button_selector defaults to .ai-btns, and button.subdomain defaults to ai. The bundle injects a ChatGPT link into matching containers. Its current legacy destination builder constructs .txt URLs on the chosen subdomain, using /home.txt for the root and appending .txt to other paths.
Verify those actual text destinations before enabling the feature. It does not automatically discover each generated Markdown mirror or create a companion domain. If the derived URL does not exist, leave the feature disabled and use supported canonical/text links instead.
Site search#
site_search.enabled must be true and the site needs the appropriate entitlement. form_selector, input_selector, and results_selector select existing elements. limit defaults to 10 results; button_text supplies supported UI copy. Enabling the flag alone does not create the intended page markup or grant Pro access.
Verify a real query, result links, keyboard use, narrow-screen layout, and empty/error states. Generated hosted settings and the broader external embed object have different control surfaces; do not assume every external option can be saved through configure_widget.
See installation, site search, and collection/consent behavior.