Smart, Instant Customer Support

This AI chatbot is powered by a fine-tuned GPT model trained on real Squabble FAQs. It instantly answers your questions and can hand off to a live agent via Slack when needed.

Click the đź’¬ below to chat.
🔎 Crawls Your Website

Automatically scan your help site or FAQ pages to extract the most useful answers, so your chatbot always responds with real, accurate information based on your content.

🤝 Human Handoff

Type something like "talk to a human"
or "live agent" to request personal help.

If an agent is available,
you'll be transferred right away.

If not, you’ll be prompted to leave your name, email, and message—our team will follow up promptly.

⚡ Always Available

Available 24/7 to provide immediate help, reduce support tickets, and boost satisfaction.

Embed the Chatbot on Your Site

Drop this snippet before your closing </body> tag to enable Squabble’s AI support widget.

<script src="https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/7.0.5/signalr.min.js"></script>
<script>
  (function () {
    const baseUrl = 'https://chat.squabbleapp.com';

    // Create chat container
    const chatContainer = document.createElement('div');
    chatContainer.id = 'my-chat-widget';
    document.body.appendChild(chatContainer);

    // Load CSS
    const link = document.createElement('link');
    link.rel = 'stylesheet';
    link.href = `${baseUrl}/chat/chat-widget.css`;
    document.head.appendChild(link);

    // Load JS
    const script = document.createElement('script');
    script.src = `${baseUrl}/chat/chat-widget.js`;
    script.async = true;
    script.onload = () => {
      if (window.MyChatWidget) {
        window.MyChatWidget.init({
          containerId: 'my-chat-widget',
          apiEndpoint: `${baseUrl}/api/Chatbot/Chat`,
          userId: null,
          theme: 'light',
          welcomeMessage: 'Hey there! How can I help you today?'
        });
      }
    };
    document.head.appendChild(script);
  })();
</script>

Teach Your AI How to Respond

Want your AI to sound more like your team and less like a robot? With Direct Preference Optimization (DPO), you can train your chatbot using real examples from your support history.

Simply show the model different responses to the same question—then rank which ones are helpful, which are okay, and which should be avoided. This helps your AI learn what “good” looks like based on your standards, not just generic internet data.

The result? A highly customized support assistant that answers just like a trained team member—on-brand, 24/7, and powered by OpenAI.

1. Format Your Training Data

Each entry in your training file should be a single line of JSON with a list of ranked responses:

{
  "input": "What is Squabble?",
  "preferred": "Squabble is a support chatbot that connects to Slack.",
  "alternative": "Squabble is something you argue with.",
  "non_preferred_output": "I don't know what Squabble is."
}

âś… Use "preferred" and "non_preferred_output" to show the model what to reward or avoid.

2. Start a Fine-Tune
  1. Go to OpenAI Fine-Tuning Dashboard.
  2. Create a Project
    Use a name like SquabbleDPO-v1.
  3. Upload Your .jsonl File
    You can upload directly via UI.
  4. Start a Fine-Tune
    Choose a base model like gpt-4 and enable DPO mode.
  5. Copy the Fine-Tuned Model Name
    It will look like ft:gpt-4.0:your-org::abc123
You'll Need
  • OpenAI API Key
    Get yours at platform.openai.com/api-keys
    sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • Fine-Tuned Model ID
    Copy this after the fine-tune completes.
    Example:
    ft:gpt-4.0:your-org::abc123

Add these credentials to your Squabble dashboard to start using your custom-trained model in real-time chat.

Connect Squabble to Slack

Enable live support handoff by linking your Slack workspace to Squabble. This integration allows your team to step in when needed— responding to customers directly through Slack.

💬 Here’s how it works: When a customer types something like "talk to a human" or "live agent", Squabble immediately checks if someone on your team is available in Slack.

If an agent is online, the message is sent straight to your designated Slack channel where your team can reply in real time— just like responding to a direct message.

If no one is available, Squabble politely collects the user’s name, email, and message so your team can follow up later.

This seamless handoff gives your users instant help when it's available—and a personal touch when it’s not. All through the tools your team already uses.

  1. Create a Slack App
    Visit api.slack.com/apps and click Create New App.
  2. Enable Bot Token Scopes
    Under OAuth & Permissions, add the following required scopes:
    • app_mentions:read — Read messages where the bot is mentioned
    • channels:history — Read public channel messages
    • groups:history — Read private channel messages
    • im:history — Read direct messages sent to the bot
    • mpim:history — Read multi-person DMs
    • chat:write — Send messages to channels and users
    • users:read — Fetch user display names and profiles
  3. Enable Socket Mode (App Token Required)
    Under Socket Mode, enable the setting and generate an App-Level Token.
    The token will look like:
    xapp-1-***
    It must include these scopes:
    • connections:write
    • app_configurations:write
    • authorizations:read
  4. Subscribe to Events
    Under Event Subscriptions, enable events and subscribe to:
    • app_mention
    • message.channels
    • message.groups
    • message.im
    Use this as your Request URL:
    https://yourdomain.com/api/slack/events
  5. Install the App to Your Workspace
    This will generate your OAuth Bot Token starting with xoxb-.
  6. Create or Choose a Slack Channel
    We recommend something like #support-bot
    Then invite your app:
    /invite @YourAppName
    Also invite your live human agents!
  7. Get the Channel ID
    Right-click the channel name → Copy Link.
    The last part of the URL is your Channel ID.
You'll Need
  • Slack OAuth Bot Token
    xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxx
  • Slack Channel ID
    C1234567890

Add these credentials to your Squabble dashboard to complete Slack integration and allow real-time support handoff.