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
- Go to OpenAI Fine-Tuning Dashboard.
- Create a Project
Use a name likeSquabbleDPO-v1. - Upload Your .jsonl File
You can upload directly via UI. - Start a Fine-Tune
Choose a base model likegpt-4and enable DPO mode. - Copy the Fine-Tuned Model Name
It will look likeft: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.
-
Create a Slack App
Visit api.slack.com/apps and click Create New App. -
Enable Bot Token Scopes
Under OAuth & Permissions, add the following required scopes:app_mentions:read— Read messages where the bot is mentionedchannels:history— Read public channel messagesgroups:history— Read private channel messagesim:history— Read direct messages sent to the botmpim:history— Read multi-person DMschat:write— Send messages to channels and usersusers:read— Fetch user display names and profiles
-
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:writeapp_configurations:writeauthorizations:read
-
Subscribe to Events
Under Event Subscriptions, enable events and subscribe to:app_mentionmessage.channelsmessage.groupsmessage.im
https://yourdomain.com/api/slack/events -
Install the App to Your Workspace
This will generate your OAuth Bot Token starting withxoxb-. -
Create or Choose a Slack Channel
We recommend something like#support-bot
Then invite your app:
/invite @YourAppName
Also invite your live human agents! -
Get the Channel ID
Right-click the channel name → Copy Link.
The last part of the URL is yourChannel 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.