BubblaV LogoBubblaV

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.