Frequently Asked Questions
Get instant answers to the most common questions about BubblaV. From setup and technical issues to billing and advanced features - everything you need to know.
Quick Answers
How long does crawling take?
2-15 minutes depending on site size. Small sites (under 50 pages) take 2-5 minutes, medium sites take 5-15 minutes.
Can I customize the chatbot colors?
Yes! You can customize title_color, chatbox_bg_color, bot_message_bg_color, user_message_bg_color, and more via the widget_configurations table.
What happens if my site isn't accessible?
The validateUrl() function checks if your site returns HTTP 200. If not accessible, crawling will fail with status "failed".
Where are my website limits defined?
Website limits are stored in user_profiles.website_limit and checked when adding new sites via POST /api/websites.
Can I hide the "Powered by" text?
Free plans must show powered_by_visible=true (enforced in API). Paid plans can set it to false.
How does the widget get updated?
Widget configs are cached and invalidated via /api/revalidate/widget-config/[id] when changes are saved.
Technical Questions
What technology stack does BubblaV use?
Frontend: Next.js 15+ with TypeScript, Tailwind CSS, Radix UI
Backend: Supabase (PostgreSQL + Auth + pgvector)
AI: Fireworks.ai (nomic-embed-text-v1.5 embeddings + Llama-3-8B chat)
Crawler: Python FastAPI with Playwright on Railway.com
Widget: React IIFE bundle with Shadow DOM
How does the crawler work technically?
Service: smart-crawler-production.up.railway.app
Authentication: SERVICE_AUTH_TOKEN Bearer token
Process: website_content and pending_chunks cleared, Playwright extracts content, embedding-worker processes chunks
Monitoring: Janitor service cleans stalled jobs every hour
What database tables are used?
Core: websites, website_content (with pgvector), user_profiles
Processing: pending_chunks, crawl_logs
Chat: messages, live_supports, live_support_messages
Config: widget_configurations, integrations, subscriptions
Billing & Account
Plan Limitations
- • Website limits stored in user_profiles.website_limit
- • Free plans: powered_by_visible forced to true
- • Subscription data in subscriptions table with plan_type
- • Stripe integration for payment processing
Data Management
- • Account data downloadable via dashboard
- • Account deletion removes all associated data
- • RLS policies ensure data isolation between users
- • OAuth providers supported (Google, GitHub)
Integration Questions
How do I embed the widget?
Add this script before your closing </body> tag:
<script src="https://www.bubblav.com/widget.js" data-site-id="your-site-id"></script>
How does Zendesk integration work?
Live chat escalates to Zendesk tickets via webhook. Agent messages sync back through EventSource real-time updates from live_support_messages table.
Common Issues & Solutions
Crawling Status: Failed
Check if your website returns HTTP 200, is publicly accessible, and isn't blocking the crawler. Use the Reprocess button to retry.
Widget Not Showing
Verify the script tag has correct data-site-id, check console for errors, and ensure the widget.js file is loading properly.
Live Chat Not Working
Check if visitor_id is properly set, EventSource connection is active, and live_support session exists in database.
Still Need Help?
If you can't find the answer you're looking for, explore our detailed guides or get in touch with support.