Overview
Sable Agent is an AI-powered browser automation tool built specifically for GoHighLevel (GHL) CRM. It uses a real browser controlled by AI to perform tasks inside your GHL account — navigating pages, clicking buttons, filling forms, and completing multi-step workflows on your behalf.
Think of it as a virtual assistant that can see and interact with your GHL account exactly like you would, but driven by natural language instructions.
What Can Sable Do?
- Single Tasks — Tell it what to do in plain English: "Create a new contact named John Smith with email john@example.com"
- Chain Workflows — Run multi-step automations: onboarding sequences, compliance setups, marketing campaign builds
- Multi-Client Management — Store client profiles and switch between GHL sub-accounts instantly
- Knowledge-Aware — Learns from documentation, videos, and past tasks to improve over time
- Embeddable Widgets — Deploy client-facing chat widgets that can handle support requests
Logging In
When you first visit the app, you'll see a login screen with a single password field.
- Enter your password and click Sign In (or press Enter).
- Upon successful login, a session token is stored in your browser. You'll stay logged in until you clear your browser data or the token is rotated.
- If your token expires or becomes invalid, you'll be automatically redirected back to the login screen.
Interface Tour
The interface has three main areas:
Sidebar (Left)
The left sidebar contains two sections:
- Menu — Navigation buttons for all major views: Chat, Client Profiles, Templates, Widgets, Knowledge Base, History, and Settings.
- Profiles — A scrollable list of your client profile chips. You can drag and drop any profile chip onto the chat input to attach that client's context to your next task.
Main Area (Center)
The central area displays whichever view you've selected from the sidebar menu. The default view is Chat.
Live View Panel (Right)
When a task is running, a collapsible panel appears on the right showing real-time browser screenshots. Toggle it with the eye icon button next to the input bar.
Header Bar
The top bar shows the app title and a connection status indicator:
- Connected — WebSocket is active, ready for tasks
- Disconnected — Connection lost. The app will attempt to reconnect automatically.
Chat & Running Tasks
The Chat view is the primary interface for interacting with Sable. You type instructions in natural language and the agent carries them out in the browser.
Sending a Task
- Type your task in the input bar at the bottom. Be specific: "Go to Contacts and create a new contact with name Jane Doe, email jane@test.com, phone 555-1234"
- Optionally attach a client profile by dragging a profile chip from the sidebar onto the input area, or by clicking the profile badge.
- Optionally attach a file or video by clicking the paperclip icon.
- Click Send or press Enter.
During Execution
Once a task is submitted, you'll see:
- Task Execution Header — A collapsible bar showing "Working on task" with an animated spinner. Click it to expand and see individual step details.
- Step Updates — Each action the agent takes (navigating, clicking, typing) appears as a step in the expandable list.
- Live View — The right panel shows real-time screenshots of what the browser is doing. A green dot indicates an active task.
Stopping a Task
While a task is running, the Send button changes to a Stop button. Click it to cancel the current task. The agent will halt and report what it accomplished so far.
Task Completion
When the agent finishes, you'll see:
- A completion message with the result text
- An evaluation score (0-100) showing how well the task was completed
- Feedback buttons (thumbs up / thumbs down) for you to rate the result
Writing Good Task Instructions
- Be specific — "Create a contact named John Smith" is better than "add a contact"
- Include all data — provide names, emails, phone numbers, etc. in the task description
- Mention the GHL section — "Go to Contacts", "Navigate to Marketing > Email Templates"
- One task at a time for single tasks. Use Chains for multi-step workflows.
Chat Management
You can manage multiple conversations:
- New Chat — Click the + button in the chat sidebar tab to start a fresh conversation.
- Switch Chats — Click any previous chat in the sidebar to load its message history.
- Delete Chat — Hover over a chat in the sidebar and click the trash icon.
Chats are automatically titled based on your first message. The app supports up to 50 concurrent chats.
Live View
The Live View panel gives you a real-time window into what the browser agent is doing.
- Toggle — Click the eye icon () next to the input bar to show/hide the panel.
- Auto-open — The panel automatically opens when a task starts.
- Screenshots — Each step update includes a screenshot of the current browser state. Click any screenshot to view it full-size.
- Working Overlay — When the agent is processing (between screenshots), a spinner overlay shows the current action being performed.
- Step Counter — The header shows which step is currently executing.
The panel automatically closes when the task completes.
Task Evaluation
After every browser task, Sable automatically evaluates the result using AI. The evaluation scores the task on five dimensions:
| Dimension | Weight | What It Measures |
|---|---|---|
| Navigation | 20% | Did the agent go to the correct pages? |
| Completion | 35% | Was the requested action fully completed? |
| Data Accuracy | 25% | If data was entered, was it correct? |
| Efficiency | 10% | Were unnecessary steps avoided? |
| Final State | 10% | Does the end state match what was requested? |
A weighted average produces the overall score (0-100). A score of 90 or above is considered a pass.
Feedback & Learning
Your feedback directly improves the agent's performance over time.
Giving Feedback
After each task completes, you'll see thumbs up/down buttons:
- Thumbs Up — The task was done correctly. The agent saves this approach for future reference.
- Thumbs Down — Something went wrong. You can optionally add a note explaining what was incorrect.
How Learning Works
When you give a thumbs up (or a task scores 90+), the agent saves the successful approach to its learned tasks database. The next time a similar task comes up, the agent will reference these past successes to guide its actions — like building muscle memory.
Negative feedback helps too: the agent records what went wrong so it can avoid repeating the same mistakes.
Viewing Feedback History
Go to History > Feedback to see all feedback you've given. You can filter by positive or negative, and export the data as JSON for training purposes using the Export Training Data button.
Client Profiles
Client Profiles let you store information about your clients so the agent can use it as context when performing tasks.
Creating a Profile
- Navigate to Client Profiles from the sidebar.
- Click the + button in the top-right corner.
- Fill in the profile form. Only Business / Client Name is required — everything else is optional but helps the agent perform better.
- Click Save.
Profile Fields
| Section | Fields |
|---|---|
| Contact Info | Business Name, Email, Phone, Address, Website, Business Type, EIN, GHL Location ID, Time in Business |
| Business Profile | Description, Offers & Services, Target Audience |
| Brand | Voice & Tone, Brand Colors, Brand Guidelines |
| Notes | Free-form text for any additional context |
app.gohighlevel.com/v2/location/THIS_PART/dashboard. Setting this enables automatic location switching (see below).
Using Profiles in Chat
There are two ways to attach a client profile to a task:
- Drag & Drop — Drag a profile chip from the sidebar directly onto the chat input area. You'll see an "Active Client" badge appear.
- Click to Attach — Click a profile chip to select it, then type your task.
When a profile is attached, the agent receives the client's information as context — names, business details, brand guidelines, etc. — so it can personalize its actions.
Editing & Deleting Profiles
On each profile card, you'll find Edit and Delete buttons. Editing opens the same form used for creation, pre-filled with the current data.
Location Switching
If your client profiles have a GHL Location ID set, Sable can automatically switch to that client's GHL sub-account before running a task.
How It Works
- Attach a client profile that has a GHL Location ID set.
- Send a task. Before executing, the agent will navigate to the sub-account switcher in GHL and select the correct location.
- A "Location Switched" status message confirms the switch with a screenshot.
- The task then executes in the context of that sub-account.
Chain Workflows
Chains are multi-step automated workflows — a sequence of tasks executed one after another. They're ideal for processes like client onboarding, compliance setup, or campaign building.
Running a Chain
- Go to Templates > Chain Templates.
- Browse or search for a chain. Use the category filters to narrow down: Compliance, Scheduling, Marketing, Sales, Automation, Communication, or Setup.
- Click a chain template to open its detail view. Review the steps and required inputs.
- Click Use in Chat. A form will appear with the chain's required inputs.
- Fill in the inputs. If you've attached a client profile, many fields will be auto-filled from the profile data.
- Click Start Chain. The agent begins executing steps sequentially.
Chain Progress
During chain execution, you'll see:
- A progress bar showing the current step (e.g., "Step 2 of 5")
- Step status updates as each step starts, runs, and completes
- The Live View panel showing browser activity for each step
When a Step Fails
If a step doesn't pass evaluation (scores below 70), the chain pauses and presents three options:
- Retry — Re-run the failed step from scratch
- Skip — Move on to the next step (useful if the step isn't critical)
- Abort — Stop the entire chain
Creating Custom Chains
- In Templates > Chain Templates, click New Template.
- Enter a name and description for your chain.
- Add steps — each step needs a name and a prompt (the task instruction for that step).
- Click Save.
{variable_name} placeholders. For example, if Step 1 outputs a contact_id, Step 2's prompt can include {contact_id} to use it.
Templates
Templates are reusable task and workflow definitions that help you standardize common operations.
Task Templates
Task templates store single-task instructions with metadata:
- Category — Compliance, Scheduling, Marketing, Sales, Automation, Communication, Setup
- Difficulty — Easy, Medium, Hard
- Steps — Estimated number of steps
- Navigation Path — Where in GHL the task takes place
- Keywords — For search and matching
Using a Template
- Go to Templates and switch to the Task Templates tab.
- Browse, filter by category/difficulty, or search by keyword.
- Click a template card to preview its details.
- Click Use in Chat to insert the template into the chat as a task.
Chain Templates
Chain templates define multi-step workflows. See the Chain Workflows section above for details on using and creating them.
AI Template Generator
Don't want to write templates manually? The AI generator creates them for you.
- In Templates > Task Templates, click AI Generate.
- Fill in the form: task name, what it does, which GHL section it's in, step-by-step description, required inputs, common mistakes to avoid, and difficulty level.
- Click Generate. AI will create a full template with structured steps and metadata.
- Review the preview. If it looks good, click Save Template to add it to your template library.
Knowledge Base
The Knowledge Base stores documentation that the agent references when performing tasks. The more relevant knowledge it has, the better it performs — especially for GHL-specific workflows.
Adding YouTube Videos
- Go to Knowledge Base from the sidebar.
- In the YouTube URL tab, paste a YouTube video URL.
- Click Add. The system fetches the video's transcript and embeds it into the knowledge base.
Adding Other Videos
Switch to the Video URL tab to add videos from:
- Loom
- Vimeo
- Google Drive
- Direct video URLs
Manual Transcript Paste
If automatic transcript fetching doesn't work (e.g., the video has no captions), switch to the Manual Paste tab:
- Enter the Video ID and Title.
- Paste the full transcript text.
- Click Embed Transcript.
Scanning Articles
Click Scan Articles to automatically find YouTube videos embedded in your knowledge base articles and add their transcripts.
How Knowledge Is Used
When you send a task, the agent automatically searches the knowledge base for relevant documentation. It uses a multi-query retrieval approach:
- Your task is broken into multiple search queries
- Each query searches the knowledge base independently
- Results are deduplicated and ranked by relevance
- The top results are included as context for the agent
Video & File Uploads
You can upload files directly into the chat to provide visual instructions to the agent.
Supported File Types
| Type | Formats | What Happens |
|---|---|---|
| Video | MP4, MOV, WEBM | Frames extracted, audio transcribed, transcript used as task context |
| Documents | PDF, DOCX, TXT | Text content extracted and included as context |
| Images | PNG, JPG | Included as visual reference for the agent |
Uploading a File
- Click the paperclip icon next to the input bar.
- Select a file from your computer.
- Wait for processing (videos take a moment to extract frames and transcribe audio).
- A preview badge appears above the input bar showing the filename and status.
- Type your task instruction and click Send. The file's content is automatically included as context.
Embeddable Widgets
Widgets let you deploy a client-facing chat interface on external websites. Visitors can interact with the agent through the widget to get support or perform actions.
Creating a Widget
- Go to Widgets from the sidebar.
- Click New Widget.
- Fill in the Account ID and Account Name (identifies which GHL account this widget serves).
- Configure the appearance: colors, font, border radius, width, position.
- Set messages: greeting text, input placeholder, teaser text (shown when minimized).
- Configure behavior: auto-open on page load, show rating buttons, powered-by text, avatar URL.
- Set rate limits: maximum requests per time window to prevent abuse.
- Click Save.
Embedding on a Website
After creating a widget, you'll see an embed code — a JavaScript snippet you can copy and paste into any website's HTML. The widget will appear as a floating chat button in the corner of the page.
Live Preview
The widget editor includes a live preview on the right side. As you change settings, the preview updates in real-time so you can see exactly how the widget will look.
Request Classification
Widget requests are automatically classified:
- Allowed — Simple, safe requests that the agent can handle
- Blocked — Requests that fall outside the allowed scope
- Escalated — Complex requests that are converted into support tickets for human review
Security
Each widget has its own authentication token. You can regenerate this token at any time if you suspect it's been compromised. The old token immediately stops working.
Support Tickets
When widget users submit requests that need human attention, they are automatically escalated into support tickets.
- View tickets in the Widgets section under the tickets list.
- Filter by status: Open, In Progress, Resolved, Closed.
- Click a ticket to view full details and update its status, priority, or resolution.
Task History
The History view gives you full visibility into everything the agent has done.
Task History Tab
Shows all executed tasks with:
- Stats bar — Total tasks, passed count, failed count, and average score
- Task table — ID, task description, status (completed/partial/failed), evaluation score, and date
- Color-coded score badges: green (70+), amber (40-69), red (<40)
Feedback Tab
Shows all user feedback with stats (total, positive, negative). Use the filter to view only positive or negative feedback. The Export Training Data button downloads all feedback as JSON.
Chain Runs Tab
Shows execution history for chain workflows: chain name, status, step counts, and timestamps.
Audit Log
The Audit Log records all significant events across the system.
Categories
| Category | Events Tracked |
|---|---|
| Task | Task started, completed, failed, stopped |
| Chain | Chain started, paused, resumed, completed |
| Browser | Navigation, clicks, form fills, screenshots |
| Auth | Login attempts, token usage |
| Widget | Widget requests, escalations, rate limits |
Live Stream
Click the Live Stream button to open a real-time WebSocket connection that shows audit events as they happen. This is useful for monitoring the agent during active sessions.
Filtering
Use the category dropdown to filter events. You can view all events or narrow down to a specific category.
Settings
The Settings view lets you manage API keys, authentication, and security.
API Keys
Configure the external services Sable connects to:
| Key | Purpose |
|---|---|
| Anthropic API Key | Powers the AI agent (required) |
| GHL API Key | GoHighLevel API access for direct API calls |
| GHL Location ID | Default GHL sub-account location |
| Google Email / Password | Used for YouTube transcript fetching via authenticated browser session |
API keys are masked in the display for security — only the first and last 4 characters are shown.
Testing Connections
Each API key has a Test button that verifies the key is valid and the service is reachable.
Changing Password
In the Danger Zone section:
- Enter your current password.
- Enter your new password.
- Click Change Password.
You'll be logged out and need to sign in with the new password.
Webhooks
Sable provides a webhook endpoint for external systems to create client profiles automatically.
Client Profile Webhook
The webhook URL is displayed in the Client Profiles view. External systems (like GHL workflows, Zapier, or Make) can POST client data to this URL to automatically create profiles.
Authentication Methods
The webhook supports three authentication methods:
- HMAC-SHA256 — Sign the request body with a shared secret (most secure)
- Bearer Token — Include the auth token in the
Authorizationheader - Query Parameter — Append
?secret=YOUR_SECRETto the URL (simplest for no-code tools)
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Enter | Send message / Submit form |
| Shift + Enter | New line in message input |
| Escape | Close modal / Cancel action |
Troubleshooting
Connection Issues
"Disconnected" status in header
- The app auto-reconnects with exponential backoff. Wait a few seconds.
- If it persists, check your internet connection and try refreshing the page.
WebSocket connection fails immediately
- Make sure you're accessing the app through the correct port.
- Check that the backend service is running.
Task Execution Issues
Agent reports "not logged in"
- The browser session with GHL has expired. You may need to re-authenticate GHL in the browser.
- Check Settings to verify your Google authentication credentials are configured.
Agent seems stuck (repeating the same action)
- The agent has built-in stuck detection. After repeating the same action multiple times, it will automatically pause and ask for help.
- You can click Stop at any time to halt the task.
- Try rephrasing your task with more specific instructions.
Low evaluation scores
- Provide more specific task instructions.
- Include exact data (names, emails, phone numbers) in your message.
- Specify which GHL page to navigate to.
- Check that the agent is logged in and on the correct sub-account.
Knowledge Base Issues
YouTube video fails to add
- Some videos don't have captions available. Use the Manual Paste tab to add the transcript directly.
- Ensure Google authentication is configured in Settings.
Chain Execution Issues
Chain pauses unexpectedly
- A step scored below the pass threshold (70). Review the evaluation summary to understand what went wrong.
- You can Retry the step, Skip it, or Abort the chain.
Chain form fields are empty despite having a profile attached
- Auto-fill only works for fields that have a mapping to profile data. Not all chain inputs map to profile fields.
- Make sure the profile has the relevant data filled in (e.g., business name, email, phone).
Frequently Asked Questions
How many tasks can I run at once?
One browser task at a time (the browser is a shared resource). If you send a task while another is running, it will queue. There's also a rate limit of 10 tasks per 60 seconds.
Does the agent remember what it did before?
Yes. Successful tasks are saved to the learned tasks database. When a similar task comes up, the agent references past approaches. Each chat conversation also maintains its own message history.
Can I use this with multiple GHL accounts?
Yes. Create a Client Profile for each account with the corresponding GHL Location ID. When you attach a profile to a task, the agent automatically switches to that sub-account.
Is my data secure?
All data is stored locally on your server. API keys are masked in the UI. Webhook endpoints support HMAC-SHA256 signing for secure integrations. Widget tokens can be regenerated at any time.
What happens if the agent makes a mistake?
Give it a thumbs down with a note explaining what went wrong. The agent learns from this feedback. For critical operations, it's good practice to use the Live View to monitor what the agent is doing in real-time.
How do I add GHL-specific knowledge?
Go to the Knowledge Base and add YouTube tutorial videos, training recordings, or paste documentation manually. The agent automatically retrieves relevant knowledge when performing tasks.
Can clients interact with the agent directly?
Yes, through Widgets. Create a widget, customize its appearance, and embed it on a client-facing website. Requests are classified and either handled automatically or escalated to support tickets.
What's the difference between a Task and a Chain?
A Task is a single action (e.g., "Create a contact"). A Chain is a sequence of tasks executed in order (e.g., "Set up full client onboarding: create contact, configure pipeline, build landing page"). Chains can pass data between steps.