Chapter 13: Concierge Builder
A feature for automatically generating AI chat widgets from your website or documents and embedding them on external sites. Access by clicking “Concierge” in the sidebar.
13.1 What Is Concierge?
Concierge is an AI chatbot that learns from your documents. When visitors ask questions, it responds based on document content.
Use Cases:
- Automated responses for company help pages and FAQs
- Interactive product manual guides
- Internal knowledge base search support
- Q&A for onboarding materials
13.2 Concierge List Screen
The first screen displayed.
Display:
- “Create New” button
- Card list of created concierges
Card Information:
| Element | Description |
|---|---|
| Concierge Name | Configured name |
| Status Badge | draft / processing / ready / active |
| Source Type | URL / File |
| Created Date | Creation date and time |
| Delete Button | Trash icon |
Operations:
- Click “Create New” to start the creation wizard
- Click an existing card to enter the edit screen
- Trash icon to delete (with confirmation dialog)
13.3 Step 1: Source Selection
Specify the data source for the concierge to learn from.
Concierge Name Input
Enter a name in the text input field.
Examples: “Help Desk AI”, “Product Guide”, “Internal Knowledge”
Source Type Selection
Choose from two buttons:
“Website” Button — Collect Content from URL
- Enter a starting URL (e.g.,
https://example.com/docs/) - Set maximum page count (1-500, default 100)
- Click “Start Collection”
How Crawling Works:
- Fetches the starting URL page
- Collects URLs within the same domain/path from links on the page
- Extracts body text using Readability
- Crawls recursively until reaching the maximum page count
Crawl Results Display:
- List of collected pages (title, path, text volume)
- Remove unwanted pages with the trash icon
Notes:
- Pages blocked by
robots.txtcannot be collected - Content dynamically generated by JavaScript may not be retrievable
- Pages requiring login cannot be collected
“File” Button — File Upload
- Select files with the “Select Files” button (multiple selection supported)
- After upload, file list is displayed
Supported File Formats:
| Format | Extension | Max Size | Processing |
|---|---|---|---|
| 20MB | Text extraction (image-based PDFs not supported) | ||
| Word | .docx | 20MB | Text extraction via mammoth.js |
| Markdown | .md | 20MB | Read directly as text |
| Text | .txt | 20MB | Read directly as text |
Starting Processing
Once content collection/upload is complete, click “Start Processing.”
Duplicate Processing Prevention: If “Start Processing” is clicked for a concierge already being processed, an “Already processing” (HTTP 409) error is displayed.
13.4 Step 2: Processing
The automated pipeline runs. No user action needed; everything proceeds automatically.
Processing Steps Detail
| Step | Description | Estimated Time |
|---|---|---|
| 1. Extracting concepts | Split text into chunks and extract concept elements with AI | Depends on data volume (5-10 sec per chunk) |
| 2. Uploading data | Send extraction results to ConceptMiner engine | A few seconds |
| 3. Generating embeddings | Text vectorization (OpenAI text-embedding-3-small) | 10-30 seconds |
| 4. Dimension reduction | Compress to 6 dimensions with UMAP | 5-15 seconds |
| 5. Building model | GNG network learning | 10-30 seconds |
| 6. Clustering | Group by theme with Ward clustering | 5-10 seconds |
| 7. Saving | Persist model data | A few seconds |
Progress Display:
- Each step’s name and progress are shown
- Concept extraction step shows chunk-level progress like “X/Y chunks processed”
- Auto-polled every 3 seconds
Processing Complete:
- All steps complete, automatically advances to the next step (Customize)
Processing Failed:
- Error message is displayed
- “Retry” button returns to source selection
Credit Cost:
- Concept extraction: 2 credits per chunk
- Embedding generation: 10 credits
- Model building: 20 credits
- Total: 30 + chunk count × 2 credits
13.5 Step 3: Customization
Customize the widget’s appearance and behavior.
Greeting Message
Set the message displayed when the widget opens.
Operation: Enter message in text input field
Examples:
- “Hello! How can I help you?”
- “Ask me anything about our products.”
- “Need help? Feel free to ask!”
Theme Color
Set the widget’s accent color.
Operation: Select with color picker or enter HEX code (e.g., #2563eb)
This color is applied to the widget header, send button, links, etc.
Proactive Messages
Set messages the widget automatically displays before visitors ask questions. Useful for broadcasting news and announcements.
Operation:
- Enter message in text input field
- Click “+” to add
- Messages appear in a list
- Remove unwanted messages with trash icon
Examples:
- “We just launched our new product XYZ!”
- “March-only campaign running now.”
- “Business hours: Weekdays 9:00-18:00.”
Preview
Widget appearance preview is shown at the bottom of the screen. Configured colors, greetings, and proactive messages are reflected in real-time.
When customization is complete, click “Save and Continue to Publish Settings.”
13.6 Step 4: Publishing
Embedding Code
HTML code like the following is displayed:
<script
src="https://your-domain/api/concierge/widget.js"
data-api-key="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
data-color="#2563eb"
async
></script>
Operation: Click “Copy” to copy the code to clipboard
Installing on Your Website
- Open your website’s HTML
- Paste the copied
tag just before thetag - Save and deploy your site
- A chat widget icon appears in the bottom-right corner
For all pages: Paste into a shared footer template or layout.html to display the widget on every page.
For specific pages only: Paste only into the HTML of those pages.
API Information
- API Key: Key used for widget identification
- Status: Published / Unpublished
Toggle Published/Unpublished
- When status is "Published" (isActive = true), the widget is operational
- Setting to "Unpublished" shows the widget but displays "Currently unavailable"
13.7 Widget Behavior Specifications
Visitor Operations
- Click the chat icon in the bottom-right corner
- Chat window opens
- Greeting message is displayed
- If proactive messages exist, they appear in sequence
- Enter a question in the text input and send
- AI responds based on document content
Chat Mechanism
- Each chat message is authenticated with the concierge's API Key
- AI searches the concept structure model linked to the concierge for answers
- Responses are generated based on text within the model
- If no relevant information exists, AI states so
Credit Cost
Concierge chat costs 5 credits per message, charged to the concierge owner's (creator's) account. Visitors incur no cost.
Usage Limits
When the owner's credits are depleted, widget responses stop and "Service temporarily suspended" is displayed.
13.8 Troubleshooting
| Issue | Cause and Solution |
|---|---|
| Crawl returns 0 pages | Verify the URL is correct. Use HTTPS URLs. Pages blocked by robots.txt cannot be crawled |
| Page has little text | Content dynamically generated by JavaScript may not be retrievable. Target static HTML pages |
| Error during processing | Check credit balance. At least 30 credits are needed for concept extraction + embedding + model building |
| "Already processing" error (409) | That concierge's pipeline is already running. Wait for completion before retrying |
| Widget not displayed on external site | Check that the tag is correctly inserted. Check for errors in the browser developer tools (F12) → Console |
| Widget shows "unavailable" | Check that the concierge status is "Published" |
| Widget responses stopped | Owner's credits are depleted. Check balance on dashboard and purchase additional credits |
| File upload fails | Check that file size doesn't exceed 20MB and is a supported format (PDF/DOCX/MD/TXT) |
| PDF content not read correctly | Image-based PDFs (scanned documents) cannot have text extracted. Use OCR-processed or text-based PDFs |