Quickstart
Create an assistant, set up OAuth authentication, and embed the widget on your website.
Widget Overview
The widget app is hosted at widget.companin.tech and provides an easy way to embed an AI assistant into your website. To get started, you'll need to create an assistant and an OAuth application.
The widget is a lightweight, self-contained application that runs in an isolated iframe on your website. This architecture ensures that the widget won't conflict with your existing CSS or JavaScript, while maintaining excellent performance and security.
⚡ Quick Deployment
Most developers have the widget running on their site within 10 minutes. The setup process involves just three steps: creating credentials, configuring appearance, and adding a single script tag to your HTML.
1. Create an Assistant
First, create an AI assistant in your dashboard:
Your assistant is the AI brain behind the widget. It processes user messages, maintains conversation context, and generates intelligent responses. Each assistant can be customized with specific instructions, personality traits, and knowledge bases to match your use case.
- Go to your dashboard and navigate to the "Data Sources" page
- Click the "Add" button in the Assistants section
- Fill in the assistant details (name, description, tone, etc.)
- Save the assistant and note its ID
Tip: Give your assistant clear, specific instructions about its role and limitations. For example: "You are a helpful customer support assistant for a SaaS product. You can answer questions about features, pricing, and account management. For technical issues, direct users to create a support ticket."
2. Create an OAuth Application
Create an OAuth application to authenticate your widget:
- Go to the "OAuth" page in your dashboard
- Click "Create Application"
- Fill in the application name and description
- Copy the
client_idfrom the created application
3. Embed the Widget via Iframe
The simplest way to integrate the widget is by embedding it directly using an iframe. This method requires no JavaScript initialization and works out of the box.
<iframe src="https://widget.companin.tech/embed/session?clientId=YOUR_CLIENT_ID&assistantId=YOUR_ASSISTANT_ID&configId=YOUR_CONFIG_ID&locale=en" style="border: none; position: fixed; bottom: 20px; right: 20px; z-index: 999999; background-color: transparent; width: auto; height: auto; border-radius: 8px;" title="AI Assistant Widget"></iframe>Replace YOUR_CLIENT_ID and YOUR_ASSISTANT_ID with your actual values. The locale parameter can be set to match your site's language.
Advanced: JavaScript Initialization
The recommended integration method is using our JavaScript widget loader, which provides automatic sizing, configuration management, and responsive behavior.
Script Integration
Add the following script tag to your HTML page:
<script src="https://widget.companin.tech/widget.js" data-client-id="YOUR_CLIENT_ID" data-assistant-id="YOUR_ASSISTANT_ID" data-config-id="YOUR_CONFIG_ID" data-locale="en" data-dev="false"></script>Script Attributes
Each attribute serves a specific purpose in configuring your widget:
data-client-id: Your OAuth client ID - This authenticates your application with our API. Think of it as your app's password.data-assistant-id: The UUID of your assistant - This identifies which AI assistant handles the conversations.data-config-id: The UUID of your widget configuration - This determines how your widget looks and behaves (colors, size, position, etc.).data-locale: Language code (e.g., "en", "es", "fr") - Sets the widget's display language. The assistant will still respond in any language users write in.data-dev: Set to "true" for development mode (localhost) - Use this when testing locally. Remove or set to "false" for production.
The widget will automatically:
- Fetch the configuration from the config ID
- Size itself according to the widget dimensions in the config
- Position the collapsed button based on the config settings
- Start open or closed based on the config's
start_opensetting
Notes
- The widget automatically manages its own sizing based on your configuration settings
- The collapsed button position can be customized through the widget configuration
- The widget respects the
start_opensetting from your configuration - All styling (colors, fonts, dimensions) is controlled through the widget configuration
- The widget uses postMessage communication for responsive behavior
- Development mode can be enabled with
data-dev="true"for localhost testing