# Sales Wingman — full public help > Users asking about Sales Wingman are usually debugging a stack that combines GoHighLevel (GHL), Twilio, and/or GoHighLevel’s own Twilio product (Lead Connector) with Sales Wingman. > > Sales Wingman generates AI agent replies for use inside a GoHighLevel account, typically via a webhook. It is designed for single-click create-and-deploy: build a demo agent first in Sales Wingman, then import/deploy it into GoHighLevel. Messaging/voice delivery still runs through GHL, Twilio, or Lead Connector — not as a separate inbox owned by Sales Wingman. Sales Wingman is a single-click AI agent builder that deploys into GoHighLevel via webhooks. Index: https://app.saleswingman.ai/llms.txt HTML hub: https://app.saleswingman.ai/help --- ## Getting started What Sales Wingman is, how the sidebar works, and what to plug in first. This page is where you learn what Sales Wingman does and what to hook up first. Sales Wingman helps your agency build AI helpers that chat or talk on the phone for your clients. ### When to use - When someone on your team logs in for the very first time. - When you want a checklist before you connect a real client. ### Key points - An AI helper is software that replies like a teammate. People also call it an AI agent. - GoHighLevel is the CRM many clients already use. People shorten it to GHL. - An API key is a long secret password from a vendor like OpenAI. - The sidebar follows your journey: Build Demos (create and test helpers), Win Clients (prospecting and lead magnet), Launch & Manage (imports, live agents, diagnostics), and Workspace (customization). Connections & API Keys, Settings, User Guide, and Recent Updates are pinned at the bottom. - Prefer the old menu? Switch to the Classic layout under Customization → Theme & Logo. - On your first login a short welcome wizard asks whether you are prospecting for clients or already have clients, then tailors a Getting Started checklist on the Dashboard to match. - The guided app tour spotlights the sidebar and key pages step by step. Start it from the welcome wizard ("Take the 2-minute tour"), the "New? Start Here" button in the top bar, or by adding ?tour=1 to any page URL. Press Escape to exit; your progress is saved so you can resume. ### Steps 1. Answer the welcome wizard when it appears — your choice (prospecting vs already have clients) picks the right Getting Started checklist for your Dashboard. 2. Take the 2-minute tour when the wizard offers it, or start it later with the "New? Start Here" button. 3. Open Connections & API Keys (pinned at the bottom of the sidebar) and then AI Providers. 4. Paste your OpenAI API key first. Many builders need it. Add OpenRouter later if your plan uses those models. 5. Press ⌘K on Mac or Ctrl+K on Windows any time you cannot find a page — the search returns pages, guide answers, and fixes. 6. Open Create AI Agent (under Build Demos) and build a demo helper. 7. Open View Demos when you want to label, folder, or share your practice helpers. 8. Open Import Text Agent (under Import to GoHighLevel in Launch & Manage) when you want the helper inside GoHighLevel for a client. ### Troubleshooting - When many pages look gray or blocked, open Billing. Your plan may be paused. - When a wizard button stays gray, scroll up. A red message often waits on an earlier step. - When the welcome wizard or tour never appeared → the wizard shows for newer accounts only; force it with ?welcome=1 on the dashboard URL, or start the tour with ?tour=1 or the "New? Start Here" button. - When the sidebar looks different from this guide → you may be on the Classic layout. Check Customization → Theme & Logo; this guide describes the journey layout. ### FAQ **Q: Do I need to know how to code?** No. You fill out forms and click buttons. Copy and paste is the hardest skill you need. **Q: What should I connect first?** Start with your OpenAI API key under Connections & API Keys → AI Providers. Then build a demo helper under Create AI Agent. **Q: How do I replay the app tour?** Click the "New? Start Here" button in the top bar, use the Replay app tour button on this User Guide page, or add ?tour=1 to any page URL. The tour resumes where you left off. **Q: What is the Getting Started checklist on my Dashboard?** A short task list matched to your path — prospecting (run a Prospect Audit, build a demo, share it, set up Lead Magnet, find events) or has-clients (connect GHL, build the agent, import it, review diagnostics). Items tick themselves off as you complete them, and you can dismiss the card any time. **Q: How much does this cost?** Sales Wingman has its own plan inside Billing. You also pay vendors like OpenAI or Twilio when you use them. Those bills show on their sites. **Q: Where do I get help inside the app?** Use the small help bubble to send a message. Use Recent Updates when a feature changes. ### Next steps - Add your OpenAI API key under Connections & API Keys → AI Providers. - Build one demo helper under Create AI Agent. - Skim this guide from top to bottom once so you know where things live. Source: https://app.saleswingman.ai/help/getting-started.md --- ## Dashboard Numbers, charts, moderation snapshot, activity, and quick links. This page is where you check the health of your helpers. You see counts for active helpers, chats, blocked messages, and knowledge bases. ### When to use - When you want a morning check before client calls. - When you plan to show results to a client. ### Key points - Getting Started checklist — newer accounts see a task list matched to their path (prospecting or has-clients). Items tick themselves off as you complete them; dismiss the card when you are done with it. - Promo banners — time-limited feature promotions (for example Hulk Mode) can appear at the top of the dashboard. - Knowledge base build banner — while a KB is still building you see a progress banner here so you know before you launch. ### Steps 1. Open Dashboard from the sidebar. 2. Work through the Getting Started checklist if it is showing — it links each task to the right page. 3. Read Active Agents, Conversations for the last seven days, Blocked for the last seven days, and Knowledge Bases. 4. Use Quick Actions to jump to Create Agent, View Agents, or GHL import. 5. Pick a moderation row under Recent Activity when you need to investigate a block. ### Troubleshooting - When numbers feel old, wait a minute and refresh. Charts update on a timer. - When Blocked is high, open Moderation before you change prompts. ### FAQ **Q: Why do my numbers move slowly?** Charts roll up data on a schedule. A short wait and a refresh usually fixes stale counts. **Q: What does Blocked mean?** Blocked counts messages your safety rule stopped before they reached a customer. **Q: Can my client see this dashboard?** No. This view is inside your logged-in workspace unless you export or share screenshots yourself. **Q: Where do blocked messages live later?** Use Manage Moderation under Live Text Agents to review details. ### Next steps - Open Moderation when Blocked climbs. - Jump to View Demo Agents when you want to find a helper fast. Source: https://app.saleswingman.ai/help/dashboard.md --- ## Create AI Agent Pick a template, fill the form, and save your first chat helper. This page (Create an AI Agent at /create-agent) is the single hub for building a new chat helper. Cards are grouped Recommended, Specialized, and Advanced. Each card opens a different builder — they all save into View Demo Agents where you can test, share, and then deploy via the GHL import flows. ### When to use - When you want a fully built agency-grade chat agent (48-hour android, speed to lead, or database reactivation). - When you want a quick demo from a basic industry template. - When you only know the client website and want the helper to learn from it. - When you sell products online and want store-style answers. - When you already built something in OpenAI and want to import it. - When you want full control and write your own prompt from scratch. ### Key points - 48-hour android — follows up with leads who went quiet about two days ago. Use it to win back leads who looked, then ghosted. (Web Scrape Template, "48 HR Follow-up" mode.) - Speed to lead — replies the second a new lead comes in. Use it for fresh inbound leads where speed wins the sale. (Web Scrape Template or Basic Template, "Speed to Lead" mode.) - Database reactivation — wakes up cold leads in your CRM right now. Use it to mine old contact lists for new bookings. (Web Scrape Template or Basic Template, "Database Reactivation" mode.) - Basic Template — fastest path. You pick an industry, then optionally toggle Speed to Lead or Database Reactivation, then fill Company Information (name, country, industry, service, phone, website, opening times) and the qualification / opening / FAQ sections. - Web Scrape Template — paste the client website URL. The system pulls company info, services, FAQs, and contact details. You review and edit the extracted info, pick a model, and save. - Bulk Web Scraping — process up to 100 URLs in one batch (CSV with a "url" column or TXT one URL per line). Built for agencies onboarding many clients at once. Saved jobs appear in Saved Work. - E-com / Store — paste a store URL, the system detects the platform, optionally builds a product knowledge base, then uses Perplexity-powered analysis to fill detailed fields. - Customer Experience Android (beta) — flow tuned for mobile-style customer support; lands on a preview screen so you can verify before saving. - OpenAI import — brings an Assistant you already built in your OpenAI account into Sales Wingman. Bulk Import Mode handles many at once. - Custom Prompt — you write the full instructions yourself. Use the Maximize button on the prompt editor for full-screen writing. - Live Chat — in the Web Scrape builder, pick the "Visitor on the client's site" scenario. The builder captures a homepage screenshot for the widget background and the shared demo opens in a floating live-chat skin that collects name, email, and phone inside the chat. - Social Media Reply — same Web Scrape builder, pick "Commented on Instagram". An Instagram post step generates an AI post image, caption, and CTA; the public demo shows a fake feed first, and commenting on the post hands off into Instagram DMs. - Reputation Android ("Two Phones") — pick "Just bought something" in Web Scrape, or use the Reputation Management card. The public demo uses the two-phone skin: the visitor texts as the customer while a manager lock screen reacts — ideal for post-purchase review-generation demos. - Hulk Mode — the featured card that builds all six demo types plus a voice demo in one run. See the Hulk Mode section of this guide. ### Steps 1. BASIC TEMPLATE → /create-agent/basic-template. Pick the industry, optionally toggle Speed to Lead or Database Reactivation, fill Company Information (Company Name, Country, Industry, Service, Phone Number, Website, Opening Times), then the Qualification, Opening Message, and FAQ sections. Pick an OpenAI model and click Create Agent. 2. WEB SCRAPER → /create-agent/web-scraper. Pick a mode (Speed to Lead, 48 HR Follow-up, or Database Reactivation). Enter the website URL, click to analyze, wait for the scrape, then review the extracted info (company info, services, FAQs, contact details) and edit anything wrong. Pick a model and Create Agent. 3. BULK WEB SCRAPER → /bulk-webscrape. Upload a CSV with a "url" column OR a TXT file with one URL per line (max 100 URLs per batch). Pick a model. The processor runs ~5 URLs at a time with a 1-second delay between batches; results stream into a status table with success/failure indicators and links to each created agent. Export results as CSV when finished. 4. CUSTOM PROMPT → /create-agent/custom. Enter a Company Name (the agent's display name), pick an OpenAI model, write detailed instructions in the prompt editor (use Maximize for a full-screen view, Markdown formatting is supported), set the First Message, and click Create Agent. 5. IMPORT OPENAI ASSISTANT → /import. Click Fetch Assistants to pull a list from your OpenAI account, pick the assistant you want, review name/description/model/instructions, and click Import. Bulk Import Mode handles multiple assistants at once. 6. E-COM SPECIALIST → /create-agent/ecom-setup. Paste your store URL, let the system detect the platform, optionally enable knowledge base building, run Perplexity analysis, and review/edit the rich set of generated fields before saving. 7. CUSTOMER EXPERIENCE ANDROID (beta) → /create-agent/customer-experience. Fill business + opening message fields, save, then verify on the preview screen at /create-agent/customer-experience/preview. 8. AFTER ANY METHOD — open View Demo Agents to test in chat (/chat/:agentId), edit the prompt with the pencil icon, share the public link, or move to the GHL import flow when ready. ### Troubleshooting - Template button is gray → check Connections → AI Providers (most templates need an OpenAI API key) and your plan. - Web scrape fails → try the main domain (e.g. https://example.com/) without extra paths, disable ad blockers, and confirm the site is publicly accessible. If it still fails, fall back to Basic Template or Custom Prompt. - Bulk job stops early → check the status table for the failing rows. Fix the URL list (one per line / "url" column), keep batches under 100, and re-upload. - No OpenRouter models showing in Basic / Custom Prompt → that is by design (those flows disable OpenRouter). Save the agent on OpenAI, then change the model from the Edit form on /agents when you are ready to import to GHL. - Imported assistant is missing files / retrievals → those are tied to your OpenAI account; the imported agent uses the same key, so the files remain accessible — just confirm the OpenAI key is current in Connections → AI Providers. ### Web scraper limitations - Anti-scraping measures: many sites block bots; the scrape will fail cleanly when a site blocks us. - robots.txt: we honor robots.txt directives — pages disallowed there are skipped. - JavaScript-heavy sites: content rendered entirely in JS may not be captured. - Login-protected pages: anything behind auth cannot be scraped. - Rate limiting: very large sites may temporarily throttle requests. - When a scrape fails, switch to Basic Template + manual entry, try a smaller page, or paste the relevant content into a Custom Prompt. ### FAQ **Q: Which template should I pick first?** For most agencies, pick one of the three "android" modes inside Web Scrape: 48 HR Follow-up, Speed to Lead, or Database Reactivation. Pick Basic Template when you want the fastest hand-built demo, or Custom Prompt when nothing else fits. **Q: Why does Basic Template only show OpenAI models?** Basic and Custom Prompt are intended for demos / testing, where OpenAI Assistants behave well. OpenRouter models are best when the agent goes live inside GoHighLevel — switch the model on the Edit form once you are ready to import. **Q: Can I change the template later?** You tune any agent on its Edit form (pencil icon on /agents). The template only controls the starting fields; everything else is editable forever, including the model. For a clean restart, create a new agent and copy fields across. **Q: Do I need OpenAI before I start?** Yes for almost every flow. Add your OpenAI API key under Connections → AI Providers. Add OpenRouter too if you plan to take the agent live inside GoHighLevel. **Q: What is scraping?** Scraping reads public text off a website (services, FAQs, contact info, product copy) so the agent can answer in the client's voice. We respect robots.txt and only read public pages — never logged-in content. **Q: How does Bulk Web Scraping work?** Upload a CSV (with a "url" column) or TXT (one URL per line). Up to 100 URLs per batch. The processor runs ~5 URLs concurrently with a 1-second delay between batches to stay polite to target sites. The job is saved into Saved Work so you can come back later — you do not need to keep the page open. **Q: What does "Conversation Stages" mean and how do I shape it?** Every saved agent gets four automatic stages on the chat header: New Lead → Responded → Qualified → Objective Reached. Qualified triggers when the conversation contains qualifying keywords (e.g. "speak with an advisor", "schedule", "appointment"); Objective Reached triggers on completion keywords or a phone number. Termination is a separate state, intentionally triggered when the assistant outputs "goodbye" — use this in your prompt to wrap things up once the objective is reached, and make sure the AI only says goodbye on purpose, not as a casual sign-off. **Q: Where do I pick Live Chat vs Social vs Reputation?** Open the Web Scrape builder from Create AI Agent and choose the scenario tile on step 1. Reputation can also be started from the Reputation Management card on the same page. **Q: What theme do clients see when I share these demo types?** Live Chat opens the live-chat widget skin (website screenshot background). Social opens the social skin (fake feed → DMs). Reputation opens the two-phone skin. Share from the agent card as usual — the theme auto-matches the demo type. ### Next steps - Add your OpenAI (and ideally OpenRouter) API key under Connections → AI Providers. - Save the agent and open View Demo Agents to test it on /chat/:agentId. - When the prompt is solid, run Import Text Agent or Import E-Com Agent to go live. Source: https://app.saleswingman.ai/help/create-agent.md --- ## Hulk Mode Scrape once, review once, then smash out every demo type plus a voice demo. This page is where you build an entire client demo pack in one run. Paste the website once, confirm a few details, hit SMASH, and Sales Wingman creates all six SMS demo types plus a Gemini Live voice demo, grouped into a "Company - Hulk" folder on View Demo Agents. ### When to use - When you need Speed to Lead, 48-hour Follow-up, Database Reactivation, Live Chat, Social Media Reply, Reputation Android, and a voice demo for the same client without running six separate builders. - When you plan to bulk-import those demos into one GoHighLevel location using Hulk Import on the CRM import page. ### Key points - Builds seven outputs: Speed to Lead, 48-hour Follow-up, Database Reactivation, Live Chat, Social Media Reply, Reputation Android, and a Gemini Live voice demo. - One website scrape feeds every builder — the same company facts, service, and phone number everywhere. - Successful demos are grouped into a folder named "{Company} - Hulk" so the whole pack stays together. - Pair it with Funnel Studio: link the Hulk folder when you create a funnel and the wizard attaches the matching demos automatically. ### Steps 1. From Create AI Agent, open the featured Hulk Mode card ("Unleash Hulk Mode"). You need an OpenAI API key in Connections → AI Providers. 2. SETUP — Turn Hulk Mode ON, paste the client website URL, and run Analyse. The scrape captures homepage content, FAQs, contact info, and a homepage screenshot (used by Live Chat). 3. SETUP — Set the assistant name, confirm the main service, and click Next. Social post generation for the Instagram demo starts in the background. 4. REVIEW — Confirm business phone and company name. Adjust the behaviour sliders and the review link (real Google link or fake demo link). Watch the social post status and retry if generation failed. 5. REVIEW — Complete the Gemini Live voice settings: country (or Custom plus your own Twilio credential), inbound/outbound call direction, voice description, and a Gemini voice. 6. Click SMASH. Per-demo status rows build in parallel — the social post and voice prompt can take about a minute. 7. When it finishes, open View Demo Agents and test the demos inside the "{Company} - Hulk" folder. Retry any failed rows individually. ### Troubleshooting - Next stays disabled after the scrape → confirm Hulk Mode is ON and the main service field is filled. - SMASH stays disabled on Review → fill business phone, company name, country, call direction, voice description, and a Gemini voice (plus a Twilio credential if you picked Custom region). - Social demo failed → click retry on Review, or use Retry failed on the results screen. - Hulk Import complains about a missing snapshot → install the Hulk ROYA snapshot in that GHL location first, then try again. - Voice demo built but is not in the folder → it still appears on the voice demos list; add it to the folder manually if needed. ### FAQ **Q: What is the SMASH flow?** Setup (scrape plus main service) → Review (sliders, review link, social post preview, voice settings) → SMASH builds every demo in parallel, then shows pass/fail rows with retry buttons and shortcuts to your agents and Funnel Studio. **Q: Does Hulk skip any demo types?** No — it always attempts all six SMS modes plus the Gemini voice demo. Failures are reported per row and the successful demos are still saved. **Q: How is Hulk Import different from a normal CRM import?** One GHL location, many demos at once. On the Import Text Agent page, flip the green Hulk Import toggle, then pick a whole Hulk folder or one agent per demo type. Set shared bump messages once for the batch, tweak each demo card, remove any you do not want, and run one import. **Q: Can I import only some of the Hulk demos?** Yes. In Hulk Import, remove demos from the list before you run the batch — in folder mode drop agents, in one-of-each mode simply leave a type unselected. **Q: Where do I find Hulk Mode?** On the Create AI Agent page — it is a featured card there, not a top-level sidebar item. ### Next steps - Open View Demo Agents and test each demo before the client sees anything. - Open Funnel Studio, link the Hulk folder, and generate a share link for the sales call. - Run Hulk Import on the CRM import page when the client is ready for production. Source: https://app.saleswingman.ai/help/hulk-mode.md --- ## View Demo Agents Manage, test, edit, share, and review every demo helper. This page (My AI Agents at /agents) is the hub for every demo helper on the account. From the agent cards you can test, edit the prompt, share, view conversation history, and delete. Demo helpers stay inside Sales Wingman until you deploy them through one of the import flows. ### When to use - When you want to test a freshly built agent in chat before going live. - When you need to tweak the agent's instructions, model, knowledge base, or first message. - When you want to share an agent with a client via a public chat link or welcome page. - When you need to review past conversations or delete an agent you no longer need. ### Key points - The agent list page header is "My AI Agents" — sidebar / guide labels just call it "View Demo Agents" / "Demo Agents". - Color-coded type pills on each card show what kind of demo it is — Speed to Lead, 48-hour, Database Reactivation, Live Chat, Social, Reputation, or E-com — so mixed folders stay scannable. - Eligible SMS agents show a flask icon that opens SMS Prompt Lab (see that section of this guide) for test chats, model compare, and AI-assisted prompt edits. - Edit form fields: Agent Name, Model (with embedded "Best for production / Ideal for client demos" guide), Knowledge Base (Optional, defaults to "-- None --"), Agent Instructions (with a Maximize button for full-screen editing), First Message (the agent's opening line). - Test Demo opens a NEW TAB to the public URL — it does not navigate the dashboard. Use that to verify what clients actually see. - Share Link Domain lets you pick whether the URL shows the AgentDemo (Main Brand) host or your Sales Wingman host — useful for white-labelled client links. - Conversation Stages strip on the chat header tracks the funnel: New Lead → Responded → Qualified → Objective Reached. Termination is a separate state shown as "This conversation has been ended." - Stage triggers (current logic): "New Lead" — no user message yet. "Responded" — the lead replied. "Qualified" — any message contains qualifying keywords like "speak with an advisor", "schedule", or "appointment". "Objective Reached" — completion keywords or a phone number appears. - Bump messages (auto-follow-ups when the user goes silent) run server-side at 30s / 30s / 30s intervals during live campaigns. The configuration UI for them is on the live-agent / S2L import flow, not on the demo share modal — that section is hidden in the share modal in the current build. - The chat page now uses Chat Completions under the hood (OpenAI Assistants are sunset for live chat). Existing imported assistants still work; new chats route through the Chat Completions path. ### Steps 1. LIST — Open My AI Agents (the View Demo Agents sidebar item) at /agents. Use the search bar, model filter, and folder tabs to narrow the list. Bulk Select + Folder lets you tidy many helpers at once. 2. TEST IN APP — Click an agent card to land on /chat/:agentId. The header shows the agent name and model, the progress strip shows the conversation stage, and the input row has Refresh chat (red icon) plus Submit Feedback. 3. TEST PUBLIC — Click Test Demo on the card to open the public-facing share URL (/shared/ or /openrouter/) in a new tab — this is the same surface clients see. 4. EDIT — Click the pencil icon ("Edit Prompt"). The Edit form lets you change Agent Name, Model (OpenAI Models for demos / OpenRouter Models for GHL production — see the Model Selection Guide card inside the form), Knowledge Base (Optional), Agent Instructions, and First Message (the agent's opening line). 5. SHARE — Click the Share icon to open the Share AI Agent modal. Toggle Welcome Page on/off, pick a Welcome Page Template ("System Default" or your custom one), pick a Chat Theme (Default, iMessage, Instagram, WhatsApp), choose a Share Link Domain (AgentDemo or Sales Wingman), then copy the single Share Link — when Welcome Page is on the URL goes to /welcome, otherwise to /shared or /openrouter. 6. HISTORY — Click the history button on the card to open /conversations/:agentId. You see every past conversation in a sidebar with the full message thread on the right — useful for reviewing how the agent has been performing. 7. DELETE — Open the action menu on the card and pick Delete. The Delete AI Agent dialog gives two options: "Delete from Database Only" (removes from Sales Wingman, keeps the OpenAI Assistant) and "Delete from Database and OpenAI" (removes from both). Bulk delete on the list page uses the same two options. ### Troubleshooting - Cannot find a helper → switch to the All Agents folder, clear the model filter, and search by part of the name. - Test Demo opens a blank page → the public token may have been rotated. Re-open Share, copy the latest link, and try again. - Welcome Page link looks wrong → check the Welcome Page toggle inside Share AI Agent. The same Share Link field flips between /welcome, /shared, and /openrouter depending on the toggle and provider. - Edit form has no Welcome Page or Bump Messages section → that is correct in the current build. Welcome Page is configured inside the Share modal; bump-message copy is configured on the live agent / GHL import flow, not here. - Conversation looks "stuck" on New Lead → the lead has not actually replied yet. Stages move forward only on user messages plus matching keywords. - Conversation ended sooner than you expected → the assistant said "goodbye", which is the built-in termination trigger. That is normal when the goal is reached; if it is firing too early, edit the prompt so the AI only says goodbye once the objective is complete. - Delete dialog wording → if a teammate says "delete from this platform", they mean "Delete from Database Only" — the actual button label uses Database, not Platform. ### FAQ **Q: What is the difference between a demo helper and a live helper?** Demo helpers stay inside Sales Wingman for testing on the /chat/:agentId page or via Test Demo public links. Live helpers connect to GoHighLevel after you run the S2L/DBR or E-Com import flow and run on real client traffic. **Q: Where do I edit the agent's opening line?** Open the Edit form (pencil icon on the card) and change First Message. That is the field the agent uses to start every chat. Older docs called this "Opening Message" — the in-app label is now "First Message". **Q: How do I swap models?** In the Edit form, open the Model Selection dropdown. The OpenAI Models group is best for demos and internal testing; the OpenRouter Models group is recommended when you plan to import the agent into GoHighLevel for production. The Model Selection Guide card next to the dropdown explains the same trade-off. **Q: Can clients see these demos?** Only if you send them a Share Link on purpose. The Share AI Agent modal lets you control whether the link goes through a Welcome Page intro or directly to the chat surface. **Q: What is the Welcome Page for?** It is a short landing page that pre-sells the agent before the chat starts: agent name, a one-paragraph intro, optional bullet points, and a "start conversation" button. Use it for client-facing demos where context helps; skip it for quick internal tests. **Q: Why use folders?** Folders keep clients, tests, and drafts separate so lists stay clean. Bulk Select + Folder lets you move many cards at once. **Q: What are the conversation stages on the chat header?** They are an automatic funnel tracker: New Lead → Responded → Qualified → Objective Reached. Stages are computed from message content (qualifying or completion keywords, phone numbers). Termination is a separate state triggered when the assistant says "goodbye". **Q: Will deleting here remove GoHighLevel?** No. The two delete options are "Delete from Database Only" (removes the agent from Sales Wingman, keeps the OpenAI Assistant intact) and "Delete from Database and OpenAI" (removes from both). Neither touches your GoHighLevel sub-account or its custom fields. **Q: I see a "Submit Feedback" button — what does it do?** It opens an in-app feedback form so you can flag bad answers, weird tones, or broken behavior on a specific agent. Use it during testing — feedback is tied to that agent so we can track issues per build. ### Next steps - Pick one helper and open /chat/:agentId to run a safe test. - Duplicate a helper (or use Edit to refine the prompt) before you try big prompt changes. - When the demo is solid, move to Import Text Agent or Import E-Com Agent to take it live. Source: https://app.saleswingman.ai/help/demo-agents.md --- ## SMS Prompt Lab Test chats, compare models, and refine SMS prompts with an AI assistant. This page is where you stress-test and improve an SMS demo agent before import. You chat as the lead, optionally compare your saved model against an OpenRouter challenger, ask the AI assistant to suggest prompt edits, apply them safely, and roll back with version history. ### When to use - When a Speed to Lead, 48-hour Follow-up, or Database Reactivation agent needs faster iteration than editing the raw prompt on the agent form. - When you want proof that an OpenRouter production model behaves better than the current demo model before changing anything live. ### Key points - Only Speed to Lead, 48-hour Follow-up, and Database Reactivation agents with the structured SMS prompt open Prompt Lab — Live Chat, Social, Reputation, e-com, and legacy prompts are excluded. - The Challenger pane always runs on OpenRouter; the main pane respects the agent's saved provider. - Every applied edit or restore creates a version history entry, so you can always undo. - Full access required — Lite users see a lock icon on the flask button. ### Steps 1. Open View Demo Agents. On an eligible agent card, click the flask Prompt Lab icon (or open Edit Prompt and click the flask next to Agent Instructions). 2. LEFT — Expand Prompt sections to read the structured sections (Qualification, Opening message, FAQs, and so on). Version history lists every saved version; pick one and click Restore to roll back. 3. CENTER — Type replies as the lead and send. The left pane runs your agent's current provider and model. 4. COMPARE — Click Compare models to add a Challenger pane, then pick an OpenRouter model (needs an OpenRouter key in Connections → AI Providers). Both panes restart from the opening message so comparisons stay fair. 5. ASSISTANT — Use the auto-loaded Prompt review, or type a request like "Push for the booking sooner". You can also highlight text in an agent reply and right-click for quick intents like "Make this shorter and more natural." 6. When suggestions appear, expand each section to see the before/after diff, then click Apply. Applied edits bump the version number and sync to your live GHL agent if one is linked. 7. Use Retest last turn or Restart conversation in the assistant panel to verify the new prompt without leaving the page. ### Troubleshooting - No flask icon on the agent card → that agent is not an eligible SMS type (Speed to Lead / 48-hour / Database Reactivation with the structured prompt). - Compare models asks for an OpenRouter key → add one under Connections → AI Providers, then reload Prompt Lab. - Apply failed with a version conflict → the prompt changed since the suggestion was generated; ask the assistant for a fresh suggestion. - Assistant says to send a test message first → run at least one chat turn so it has output to anchor the edits. ### FAQ **Q: Which agents support Prompt Lab?** Speed to Lead, 48-hour Follow-up, and Database Reactivation agents built with the structured SMS prompt. Reputation Android, Live Chat, Social Media Reply, e-com, and custom non-structured prompts do not qualify. **Q: How does model compare work?** Your agent's saved model answers in the main pane. You pick any OpenRouter model for the Challenger pane. One lead message goes to both, and you read the two replies side by side. **Q: What does the AI assistant actually change?** It suggests edits to specific prompt sections, not the whole prompt at once. You review diffs per section and click Apply — nothing changes until you confirm. **Q: Does Apply update my live GHL agent?** Yes, when a live agent is linked — the success message says the prompt was synced. Otherwise only the demo agent in Sales Wingman updates. **Q: Can I restore an old prompt?** Yes. Version history lists numbered versions with source labels (Assistant edit, Restore, Baseline, Manual save). Select a version and click Restore. ### Next steps - Retest the conversation until the booking behaviour looks right, then share the demo link. - Run Import Text Agent to GHL when you are ready to deploy the refined prompt. Source: https://app.saleswingman.ai/help/prompt-lab.md --- ## Funnel Studio Map a client's lead flow, show where sales slip through, and demo the AI-assisted version. This page is where you build a visual funnel map for a sales conversation. You pick the client's traffic sources, attach your demos, toggle between their current process and an AI-assisted version, and share a public link where the prospect can plug in their own numbers and walk through the story. ### When to use - When you want a canvas that shows where leads leak today versus what AI could recover. - When you already built a Hulk folder (or individual demos) and want one share link that opens every demo from the map. ### Key points - Each funnel keeps two maps: Current process (manual staff flow with leak pills like slow follow-up or after hours) and With AI (demo nodes for each AI service). - Demo nodes open with the right public skin automatically — Live Chat widget, Social feed, Reputation two-phone, or standard SMS. - Prospects opening the public link see a short intake form (sale value, monthly leads, ad spend) they can skip, then a guided walkthrough: current-process leaks first, then the AI-assisted uplift. - Changes auto-save in the editor about a second after you stop editing. The full-screen editor hides the app sidebar — use Exit (top left) to return. ### Steps 1. Open Funnel Studio from the sidebar under Build Demos. Click New funnel, name it, and optionally link a demo folder — pick the client's "Company - Hulk" folder to auto-attach its demos. 2. WIZARD — Tick every traffic source that drives enquiries (landing page, web form, web chat, Instagram DMs, paid ads, email, SMS, organic, QR/offline), then click Suggest demos. 3. WIZARD — Review the suggested demo types, toggle any off or click Attach to link a specific agent or voice demo, then click Build funnel map. 4. EDITOR — Drag nodes on the canvas. Use the Add palette to drop sources, demo nodes, staff, booked, sale, lost, note, and heading blocks. 5. EDITOR — Switch between Current process (red) and With AI (green). Click Play flow to animate leak and revenue counters. Edit the metrics panel (monthly leads, conversion rate, average sale value, ad spend) so the ROI cards update live. 6. EDITOR — Select a demo node and click Attach (or Change) to link an agent or saved voice demo. Click Open to preview it. 7. SHARE — Click Share, pick a share-link domain, then Generate share link. The link mints public tokens for every attached demo so prospects open them without logging in. 8. Check Prospect numbers in the sidebar later to see figures prospects submitted from your share link. ### Troubleshooting - Funnel Studio is missing from the sidebar → you are on Lite or billing is still loading; upgrade to full access or refresh once your plan loads. - Demo node says "No demo attached" → click Attach and pick an agent or voice demo. - Share link opens but a demo says it is not available → regenerate the share link after attaching demos; old links may not have tokens for newly added nodes. - ROI cards ask you to add monthly leads → fill monthly leads, conversion rate, and average sale value in the metrics panel (or let the prospect fill the intake form). - Walkthrough stops mid-way for a prospect → they clicked a toggle manually; they can press Replay in the public header to run it again. ### FAQ **Q: How does the app pick suggested demos?** Each traffic source maps to demo types — web chat suggests Live Chat, Instagram DMs suggests Social Media Reply, paid ads suggests Speed to Lead and 48-hour Follow-up. Database Reactivation, Reputation Android, and AI voice are always offered as add-ons. **Q: Can prospects change the numbers?** Yes. The public funnel lets them enter or edit sale value, monthly leads, and ad spend. Those figures drive the ROI cards and are saved for you under Prospect numbers. **Q: Do share links expire?** Invalid or disabled links show "Funnel unavailable". If you add demos after sharing, generate a fresh link so tokens exist for the new nodes. **Q: Can I use Funnel Studio without Hulk Mode?** Yes. Skip the folder link and attach demos manually from any agents or voice demos on your account. **Q: What is the guided walkthrough?** A narrated sequence on the public link: today's funnel and its leaking revenue first, then the AI-assisted funnel and the recovered revenue. It runs automatically after the intake form and can be replayed from the header. ### Next steps - Build demos with Hulk Mode or the builders first, then link the folder when you create the funnel. - Share the public link in a sales call and let the prospect plug in their numbers. - When the client is ready to go live, use Hulk Import on the CRM import page. Source: https://app.saleswingman.ai/help/funnel-studio.md --- ## Website & E-Com knowledge base This is the main setup page for online stores and normal websites. We find public pages on the site, you choose what to keep, and then we build the knowledge base in the background. ### When to use - When the client has an online store or a service website and you want the helper to answer from real site content. - When you want to review pages before they are added instead of scraping everything blindly. - After major catalog or site content changes, when you need to review newly discovered pages. ### Key points - Cart, checkout, login, and other system pages are shown but left unchecked by default. - Exact URLs you skip are remembered and stay skipped on future builds unless you add them manually. - You can add exact URLs manually even if they were skipped before. - Online stores can use weekly auto-refresh from Manage KBs. Normal websites stay manual. ### Steps 1. Open E-com/Website KB from the sidebar. 2. Add your website URL and choose Online store or Normal website. 3. Wait while we find pages on the site. 4. Review the page list. Everything is selected by default, so uncheck pages you do not want. 5. Click Build knowledge base and track progress in Manage KBs. 6. When refresh finds new pages later, review them in Manage KBs before they are added. ### FAQ **Q: Do I need to know whether the site is Shopify or another platform?** No. Pick Online store or Normal website and we handle the rest behind the scenes. **Q: Are all pages selected by default?** Yes. Uncheck anything you do not want before you build. **Q: What happens on refresh?** Missing pages are removed automatically. New pages are held for review before they are added. **Q: Can I still upload files?** Yes. Use Document KB for PDFs, Word files, and other uploads. ### Next steps - Open Manage KBs to refresh store data or review new pages. - Attach the knowledge base to the agent you plan to deploy. Source: https://app.saleswingman.ai/help/knowledge-base-ecom-website.md --- ## Document knowledge base This page is where you upload PDF or Word files so policies and decks become helper facts. ### Steps 1. Open Document KB from the sidebar. 2. Upload clean files without hidden passwords. 3. Name files clearly so your team knows what each file holds. ### FAQ **Q: Can I mix PDF and Word files?** Yes if the page allows both. Keep files small for faster uploads. **Q: Do I still need a website scrape?** Use documents for policies. Use website scraping for public marketing pages. **Q: Are uploads private?** Treat uploads like client data. Only upload files you are allowed to store. ### Next steps - Return to Manage KBs to add more files after policies change. Source: https://app.saleswingman.ai/help/knowledge-base-docs.md --- ## Manage knowledge bases This page is where you refresh store data, review newly discovered pages, upload more files, toggle auto-refresh for online stores, or delete old knowledge bases. ### Steps 1. Open Manage KBs. 2. Click Refresh store data after big catalog updates. 3. Review new pages when a refresh finds changes before they are added. 4. Upload more documents when policies or sales decks change. ### Troubleshooting - When store content feels stale, run refresh or confirm auto-refresh is on. - When new pages appear after refresh, review them before building so unwanted pages stay out. ### FAQ **Q: When should I delete a knowledge base?** Delete when a client leaves or when you rebuild a cleaner copy. **Q: Will refresh break my helpers?** Refresh updates facts helpers read. Test a few answers after large refreshes. **Q: Can I rename my knowledge bases?** Use names your team understands. Clear names prevent mistakes during imports. **Q: Why are uploads separate?** Uploads add files without rescraping an entire site. ### Next steps - Refresh commerce data after Black Friday or big inventory shifts. - Attach the right knowledge base during GoHighLevel import. Source: https://app.saleswingman.ai/help/knowledge-base-manage.md --- ## Import Text Agent to GoHighLevel (S2L / DBR / Live Chat / Social / Reputation) Connect GHL, pick your helper, and wire messages safely. This page is where you send a Sales Wingman chat helper into GoHighLevel (GHL). You add opening lines, follow-up bumps, and optional safety or booking. ### When to use - When you finished a demo helper and have a GoHighLevel sub-account. - When you want AI booking, safety checks, or knowledge-backed replies inside GHL chats. ### Key points - Bump messages — extra follow-up messages the AI sends to leads who do not reply, so quiet leads still get nudged. - AI booking — two ways to book: (a) update a custom field in GHL when you do not want the AI on a calendar, or (b) connect a GoHighLevel calendar so the AI can read live availability and offer real time slots. - AI moderation — the AI politely ends the chat when a lead says they are annoyed at being messaged, so you stay compliant. - Knowledge base links — attach a Shopify, e-commerce, website, or document KB so answers stay on-brand and on-fact. - Webhook Only — gives you a webhook URL without auto-writing GHL assets. Only use it when you manage many helpers by hand. - Hulk Import — the green toggle at the top switches this page into batch mode: pick a whole Hulk folder (or one agent per demo type), set shared bump messages once, tweak each demo card, and import them all into one GHL location. It needs the Hulk ROYA snapshot installed. See the Hulk Mode section of this guide. - AI Split Tests — invite-only. After a successful import, allowlisted accounts may see an enrollment panel to start autonomous A/B testing on the new live agent. - Client portal SMS sync is read-only against GHL. It copies eligible campaign conversations into the portal but never sends messages or changes contacts, tags, or custom values. ### Steps 1. Install the ROYA snapshot package linked at the top. ROYA is a ready-made GHL setup pack so workflows exist. 2. Connect with a Private Integration Token (PIT). Paste values only from GHL settings, and never share tokens in screenshots. 3. Pick your Sales Wingman helper and model after the green check shows. 4. Write the opening line with merge fields. Merge fields are shortcuts like {{contact.first_name}} that fill each lead name. 5. Pick the optional add-ons you want (see below) and then click Complete Setup. 6. Confirm the workflows fired inside GHL after Complete Setup. 7. To share this campaign in a client portal, open Companies, select the company, open Campaigns, link the correct portal client, and enable Client portal SMS sync. ### Troubleshooting - When GHL returns 401 or 403, create a new Private Integration Token, choose Select All, paste it into CRM Import, and re-import. - When the helper list is empty, confirm the token matches the same location as your demo library. - When workflows never fire, reinstall the ROYA snapshot version linked on this page. ### GoHighLevel — PIT vs OAuth (summarized) - Private Integration Tokens are static v2.0 tokens created in the UI with explicit scopes; rotate them manually for security. - Standard OAuth tokens auto-refresh but need the marketplace / OAuth install flow. - Typical scopes include contacts, conversations (read/write/message), calendars/events, opportunities, and custom fields — mirror what the in-app instructions list when creating the token. - Official help: search GHL help for “Private integrations” and “Developer marketplace OAuth”. ### FAQ **Q: What is GoHighLevel?** GoHighLevel is a CRM that handles contacts, pipelines, and chat. Many agencies run client sub-accounts inside it. **Q: Should I pick PIT or OAuth?** Pick PIT (Private Integration Token). GHL OAuth 2.0 connections randomly disconnect, which silently breaks live AI agents. A PIT is a stable token you paste once, so live campaigns keep running. Only use OAuth when a client specifically requires it. **Q: What is a webhook?** A webhook is a web address one tool calls to tell another tool that something happened. **Q: What if my client revokes access?** Create a new Private Integration Token, choose Select All, paste it into CRM Import, and re-import. Live helpers then clear the action-required badge after validation succeeds. ### Next steps - Finish a demo helper first. - Install the ROYA snapshot before you paste tokens. Source: https://app.saleswingman.ai/help/crm-import.md --- ## Import E-Com Agent Cart recovery tone plus knowledge base picks for stores. This page links an e-commerce helper to a GoHighLevel sub-account for abandoned-cart follow-up. Complete Setup installs the routing values, creates the Saved Checkout, Products Added, and Clean Products contact fields, and safely replaces the demo product and checkout URL in the agent prompt with live contact merge fields. ### When to use - When you are setting up the Shopify (or general e-commerce) abandoned-cart flow and have a product-aware agent ready. - When the agent has a product-aware knowledge base ready to select during import. - After the Hulk ROYA snapshot is installed in the target GHL location. ### Key points - Automatic prompt enhancement: the agent's instructions use {{contact.saved_checkout}} and {{contact.products_added}}; the opening uses {{contact.clean_products}}. - SMS-friendly references: instead of "Tom Ford FT5890" the agent will say "those Tom Ford frames" — short, natural, and TCPA-friendly. - Current connector requirement: a checkout needs a usable name and phone number. Marketing-consent states are collected but are not currently enforced by the sync, so apply your own consent/compliance policy before going live. - Duplicate protection: GHL matches contacts by email or phone, so repeat abandoners get their fields refreshed instead of duplicated. - Trigger contract: Sales Wingman adds the exact GHL tag abandoned checkout; the published Hulk workflow listens for that tag. ### Steps 1. Install the Hulk ROYA snapshot linked at the top of the import page, then open E-Commerce Import from the sidebar. 2. Connect the target GHL location with a Private Integration Token (recommended) or OAuth. 3. Pick the e-commerce agent, model, and product-aware knowledge base. This page only lists agents created through E-Commerce Agent Setup. 4. Review the opening line. The importer changes the builder's demo product reference to {{contact.clean_products}} while preserving your persona and brand. 5. Click Complete Setup. The importer normalizes the prompt to {{contact.products_added}} and {{contact.saved_checkout}}, creates the three cart fields, and writes the dedicated Hulk e-commerce webhook and opening-message values. 6. Verify by opening your GHL location → Settings → Custom Fields. The three fields above should be in the list. 7. Continue to Connections → Shopify to paste your Shopify domain and access token. The app will upsert each eligible checkout into GHL and add the abandoned checkout tag that starts the Hulk e-commerce workflow. ### Troubleshooting - No agents appear → create and save a demo through E-Commerce Agent Setup first, then return and refresh the import page. - Custom fields missing in GHL → run Complete Setup again and confirm the token and location belong to the same Hulk sub-account. Authorizing OAuth alone does not create the fields. - Prompt still contains the demo product or checkout URL → confirm the agent was created through the e-commerce builder and that Custom Data is enabled, then run Complete Setup again. - Contacts appear twice → disable either the GHL native Shopify trigger or the Sales Wingman connector. Keep only one checkout source active for a location. ### FAQ **Q: Is this different from S2L import?** The OAuth connection step is similar, but this page also auto-creates the three e-commerce custom fields and rewrites the agent prompt with cart-recovery instructions. The S2L/DBR import does not do those two steps. **Q: Do I need a Shopify knowledge base?** Use a product-aware knowledge base. The Shopify KB is the most common choice; the E-commerce KB or Website KB can also work. The import page lists e-commerce agents and lets you choose the knowledge base during setup. **Q: What are saved_checkout, products_added, and clean_products?** They are GoHighLevel custom fields that this page creates automatically. saved_checkout holds a unique recovery URL the agent can paste into messages. products_added holds the literal cart contents (e.g. "Ray-Ban RB2132 (2x), Oakley Holbrook (1x)"). clean_products holds an AI-generated conversational reference (e.g. "your sunglasses order") so SMS feels natural. **Q: Will it overwrite my agent's prompt?** It only replaces the labelled demo product and checkout values inside the e-commerce Context section and normalizes the builder opening. Other product examples, personality, tone, and custom rules stay intact. **Q: Can I reuse the same GHL token?** Yes, as long as the location matches. Never mix locations on the same connection — you will end up sending leads into the wrong sub-account. **Q: I get redirected back without success — what happened?** Most often you signed into the wrong GHL account or did not have permission on the chosen location. Re-run the page, sign into the correct account, and confirm you have admin access to the sub-account before clicking Authorize. ### Next steps - Build your Shopify or e-commerce knowledge base first if you have not already. - Continue to Connections → Shopify (or your e-commerce connector) to start the abandoned-cart sync. - Run a short internal test (add to cart, do not check out, wait ~15 minutes) before clients see messages. Source: https://app.saleswingman.ai/help/ecom-import.md --- ## Manage Live Agents See what is live inside GoHighLevel and replace failed connections with a PIT. This page is where you watch helpers already tied to client sub-accounts. You see OAuth versus PIT, safety flags, and helpers that need a new PIT. ### Steps 1. Open Live Text Agents, then View Active Agents. 2. Read the summary chips for new-PIT-required or upgrade counts. 3. Search for a client name. 4. Use Edit or Upgrade on a row when the page asks. ### Troubleshooting - If GoHighLevel rejects a connection, create a new PIT, choose Select All, paste it into CRM Import, and re-import. - Upgrade older rows when the product warns you. Old modes lose features over time. ### FAQ **Q: Why does search show a different Live Agents page?** Search may open an older list. Use the sidebar Live Text Agents link for the page this guide describes. **Q: What does reconnect mean?** GoHighLevel stopped accepting the saved connection. Create a new PIT, choose Select All, paste it into CRM Import, and re-import; do not reconnect OAuth. **Q: Will upgrade break client chats?** Plan changes during quiet hours. Follow any on-page warnings. **Q: Where should I edit a prompt for a live campaign?** Always edit the prompt from the live agent page under Live Text Agents, not on the demo page at /agents. The /agents page is for testing only — saving a prompt there does not change your active speed-to-lead, database reactivation, or other live AI campaigns. Edits made from the live agent page apply in real time to running campaigns, so be careful and test in a demo first. ### Next steps - Replace every failed GHL connection with a new Select All PIT. - Pair this page with Moderation when safety spikes. Source: https://app.saleswingman.ai/help/live-agents.md --- ## Manage Moderation Review blocked or escalated live messages with short reasons. This page is where you learn why a message was blocked. Reasons are short AI summaries so you can coach the helper or fix GHL automations. ### Steps 1. Open Live Text Agents, then Manage Moderation. 2. Filter by level or search text. 3. Read the Reason column as a summary, not the full transcript. 4. Use the GHL column to know which sub-account to open. ### Troubleshooting - When reasons feel wrong, save the example and contact support. - When the table is empty yet clients complain, confirm moderation was enabled during import. ### FAQ **Q: Is the reason an exact quote?** No. It is an AI summary to explain the block quickly. **Q: Can I unblock from here?** Use the guidance in your workflow. Many teams adjust prompts or GHL rules after review. **Q: Why mention GHL?** Each row maps to a GoHighLevel location so you know where to look. **Q: Do customers see moderation?** Customers see the outcome of your settings. Use careful testing before big launches. ### Next steps - Pair moderation rows with prompt edits on the helper. - Tell support if the same false block repeats. Source: https://app.saleswingman.ai/help/moderation.md --- ## Campaign Analyzer See why SMS campaigns stall — and what to change next. This page is where you study a live GoHighLevel SMS campaign and get a plain-English report on why leads are not booking. An investigator AI reads your contacts, conversations, and pipeline stages, then shows numbers, charts, and fix suggestions. ### When to use - When reply rates or booked-call rates are flat and you need a structured diagnosis. - After you change an opener, bump, or prompt and want to measure whether it helped. ### Key points - OpenRouter — a third-party AI billing account. Each analysis bills your OpenRouter key unless a free promo run is available. - The investigator AI works through contacts and conversations step by step instead of writing one quick summary. - Saved reports — the sidebar lists your recent runs so you can reopen them or start a new analysis. ### Steps 1. Open Campaign Analyzer under Live Text Agents. 2. Pick the client location — the GoHighLevel account you already connected through the import flow. 3. Pick the tags that match the campaign (for example "dbr lead"). Contacts must have every tag you pick. 4. Pick the pipeline, the starting stages, and at least one "win" stage (usually a booked-call stage). 5. Choose how many contacts to include and which AI model to use, then click Run analysis. 6. Wait while progress runs in the sidebar (typically 4–10 minutes), then read the report: Overview (biggest leak plus KPI tiles), Action steps, and the stats behind it (funnel, heatmap, conversation flow map). 7. Expand "How the AI investigated this campaign" to see the step-by-step investigation trail. 8. Optional: scroll to Apply changes to your agent, click Generate changes to review, then approve, skip, or reject each suggested change in the review window. Each approval is applied immediately before the next suggestion appears. 9. After you ship fixes, use Refresh stats (no AI cost) or Re-analyze with AI from the sidebar to compare impact. ### Troubleshooting - Run analysis stays disabled with an OpenRouter message → add your OpenRouter key under Connections → AI Providers, or use a remaining free promo run. - The account dropdown is empty → import the text agent to GoHighLevel first from the CRM import page. - No tags appear → confirm the Private Integration Token can read contacts in that GHL location. - The conversation flow map is missing → the report needs enough classified conversations; try a larger contact limit or rerun later. - Generate changes to review fails with an OpenRouter message → suggestion generation always needs your OpenRouter key, even when the report itself used a free promo run. - An approved opener or bump says GHL sync failed → the agent change is already saved in Sales Wingman. If GHL rejected the connection, create a new Select All PIT and re-import; if a custom value is missing, restore it, then click Retry sync. - A run fails mid-way → check your OpenRouter credit, then retry with a different model. ### FAQ **Q: What does Campaign Analyzer actually analyze?** It pulls GHL contacts that match your tags, reads their SMS threads, and compares pipeline movement against the win stages you picked. The report covers reply rate, booked-call rate, drop-offs, timing patterns, lost-lead examples, and a conversation flow map. **Q: Do I need an OpenRouter key?** A free promo can cover the campaign analysis itself. Generating concrete agent changes from the finished report always uses your OpenRouter key. **Q: What is the investigation trail?** A plain-English log of what the investigator AI did: conversations it read, research it ran, and report sections it wrote. Click any row to expand the details. **Q: What does Generate changes to review do?** It turns report recommendations into concrete before/after edits to your prompt, opening message, bumps, and moderation. A review window shows one suggestion at a time. Approve applies only that change immediately; Skip keeps it for later; Reject dismisses it. Applied changes can be undone from the review summary. **Q: What is the difference between Refresh stats and Re-analyze with AI?** Refresh stats pulls a new batch and compares numbers to your last report with no AI cost. Re-analyze with AI re-reads the campaign, judges whether your changes helped, and flags new issues. ### Next steps - Import the text agent to GHL before your first analysis. - After applying edits, wait for fresh replies, then re-run to see the impact diff. Source: https://app.saleswingman.ai/help/campaign-analyzer.md --- ## Agent Diagnostics Plain-English alerts when live agents hit errors — and how to fix them. This page is where you see issues Sales Wingman detected on your live AI agents. Each alert explains what went wrong in plain English, shows how often it happened, and lists fix steps — no log digging required. ### When to use - When the red badge appears next to Agent Diagnostics in the sidebar. - When you receive an agent error email and want the full fix checklist in one place. ### Key points - Action needed — the agent may be failing replies until you fix it. - Usually self-heals — often a temporary connection issue; still worth checking. - For your info — lower urgency; mute it if it was expected setup noise. ### Steps 1. Click Agent Diagnostics in the sidebar (watch for the red badge count). 2. Find the agent name, then read the alert title and the "How to fix it" steps. 3. Expand Latest error if you need the raw message for support or billing. 4. Follow any fix link (for example re-import into GoHighLevel or OpenAI billing) — links open in a new tab. 5. After the underlying issue is fixed, click Mark as resolved to clear the alert and drop the sidebar count. 6. If the issue is expected or noisy, click Mute to stop emails without marking it fixed. 7. Use Show resolved in the page header to review past alerts. ### Troubleshooting - The sidebar badge will not go down → open each alert and click Mark as resolved after fixing the cause; muting alone does not clear the count. - Emails keep arriving → you may be inside the 24-hour email cooldown; fix the issue or mute that alert type. - Alerts mention a GoHighLevel token or permissions → recreate the Private Integration Token with full scopes and re-import from the CRM import page. - Alerts mention OpenAI credit → top up billing at platform.openai.com; the agent resumes automatically. - The page says "All clear" but clients report failures → confirm the agent is live in GHL and check Moderation for blocked messages. ### FAQ **Q: What triggers an alert?** Live agent errors caught while processing GoHighLevel messages — common types include expired GHL connections, invalid tokens, missing permissions, OpenAI billing problems, and OpenRouter model errors. **Q: What does the red sidebar number mean?** It is the count of unresolved alerts on your account. Mark each one as resolved after you fix it to bring the number down. **Q: Will I get email alerts?** Yes, for unresolved unmuted alerts — at most about one email per alert type per 24 hours. Email links open the signed-in Diagnostics page, where you review the current alert and explicitly confirm any mute or resolve action. **Q: What is the difference between Mute and Mark as resolved?** Mute stops emails but leaves the alert visible. Mark as resolved clears it from the default list and the badge once the issue is actually fixed. ### Next steps - Fix GHL connection alerts by re-importing with a fresh Private Integration Token. - Pair Diagnostics with Manage Moderation to catch message-level blocks too. Source: https://app.saleswingman.ai/help/agent-diagnostics.md --- ## AI Split Tests (invite-only) Autonomous SMS A/B testing for live text agents. This page is where you turn on background A/B tests that try better opening messages, follow-ups, and qualification wording on live SMS agents. The system measures reply and booked-call rates, emails you about each change, and can revert losers automatically. ### When to use - When you have a live Speed to Lead, 48-hour, or Database Reactivation agent with steady daily volume. - When you want the AI to improve SMS copy without manually rewriting and guessing. ### Steps 1. Confirm your account is on the invite allowlist — otherwise the page shows an invite-only message. 2. Open AI Split Tests under Live Text Agents, or enroll from the panel that appears right after a successful CRM import. 3. Click New split test and pick which live imported agent to enroll. 4. Enter leads per day and industry, and choose auto-apply versus email-for-approval. 5. Set safeguards: which message parts may change, banned phrases, must-keep questions, and offer rules. 6. Click Turn on split testing, then wait about a week for warm-up and baseline measurement. 7. Return to the dashboard to watch test timelines, reply/booked/opt-out stats, and win/loss verdicts. 8. Open an experiment to pause, resume, or stop testing; stopping keeps your current live messages. ### Troubleshooting - You only see an invite-only message → your login email is not on the allowlist; contact support. - Enrollment says the agent cannot run split tests yet → check the eligibility reasons shown (agent type, prompt format, or an experiment already running on that import). - No test activity after enrolling → warm-up and baseline measurement run first; check back after about a week. - You disagree with a live variant → use the undo link in the email or stop the experiment from the dashboard. ### FAQ **Q: Which agents qualify?** Speed to Lead, 48-hour, and Database Reactivation agents with the structured SMS prompt, a working GHL connection, and no other active experiment on the same import. **Q: Does it change messages without asking?** You choose at enrollment: apply automatically (emails include an undo button) or email for approval before anything goes live. **Q: What happens if a variant loses?** Losing variants revert automatically so live traffic returns to the safer message. Verdicts include Win, Loss (reverted), Too close to call, and Guardrail (reverted). ### Next steps - Import a Speed to Lead or Database agent to GHL before enrolling. - Set banned phrases and must-keep questions up front so tests stay on-brand. Source: https://app.saleswingman.ai/help/split-tests.md --- ## Client Portal Give clients scoped Voice AI and SMS campaign reporting on your portal address. This page is where you set up a white-label portal so clients can review Voice AI calls and eligible GoHighLevel SMS conversations without seeing your full agency workspace. ### When to use - When a Voice AI or SMS client wants a live dashboard instead of email screenshots. - When you need to limit which campaigns, companies, and call outcomes each client can see. ### Key points - Clients get a read-only unified Inbox. When both are available they can switch between All, Voice, and SMS, then filter SMS by campaign type, status, unread state, or contact name. - SMS dashboards show conversations, replies, reply rate, bookings, opt-outs, daily inbound/outbound volume, and per-campaign results. - SMS contact records contain names only. The portal does not store or display their phone number, email address, postal address, or GHL custom fields; phone numbers and email addresses inside synced message text are irreversibly replaced before storage. - Clients can add private notes to Voice or SMS conversations. SMS notes notify your agency but are never sent to the lead or written back to GoHighLevel. - Invited users show as invited or active. Click Get new link to regenerate an invite — the old link stops working. - Outcome checkboxes cover things like Appointment booked, Completed, Transferred, Follow up, Not interested, Voicemail, and Wrong number — untick to hide any of them from the client. - Switching SMS sync off hides that company's SMS conversations immediately. Synced data stays retained until you use Delete synced data or its retention period expires. ### Steps 1. Open Client Portal from the sidebar (under Launch & Manage). 2. Enter a portal name and subdomain (for example agency-name becomes agency-name.agencyportal.ai), then click Save portal. 3. Click Copy client login URL — clients sign in at that address. 4. Click Add client. Enter the client name, an optional invite email, and tick the campaigns they should see, then click Create client. 5. Copy the invitation link from the banner and send it to the client — they set a password from that link. 6. Select a client in the list to manage users and campaign access. 7. Under Client users, add extra emails for additional logins. 8. Under Campaign access, tick campaigns and untick any call outcomes you want hidden, then click Save access. 9. For SMS, open Companies, choose the company, open Campaigns, link this portal client, and switch on Client portal SMS sync. Use Sync now if you need an immediate refresh. ### Troubleshooting - Add client does nothing → save your portal name and subdomain first. - No campaigns in the list → activate a Voice AI campaign, then return and assign access. - No SMS conversations appear → confirm the company is linked to this portal client, SMS sync is enabled on the company Campaigns tab, and the status panel does not show an expired or disconnected GHL credential. - The client sees the wrong outcomes → open Campaign access, adjust the outcome checkboxes, and click Save access. - Invitation link expired → click Get new link and send the fresh URL. ### FAQ **Q: What URL do I send my client?** After Save portal, use Copy client login URL. Invitation links are separate one-time setup URLs for each user. **Q: Can clients edit agents or prompts?** No. Voice and SMS campaign data is read-only. Clients can leave private notes for your agency, but they cannot edit prompts or reply to leads. **Q: Can one client have multiple users?** Yes. Select the client, add emails under Client users, and send each invitation link. ### Next steps - Launch a Voice AI campaign or import an eligible SMS agent before assigning access. - Link each SMS company to the correct client and enable sync from the company Campaigns tab. - Spot-check the client login in a private browser window after setup. Source: https://app.saleswingman.ai/help/client-portal.md --- ## Website live chat & support inbox Put an AI assistant on a client’s website that captures leads, answers from their knowledge base and hands real problems to a human as a tracked case. Live chat lives on each company profile under Companies → Live chat. One script tag on the client’s website adds a launcher that answers visitors from the agent’s knowledge base and instructions, collects sales enquiries as leads, and turns support requests into cases with a reply promise, email hand-off and AI-generated smart tags. Everything is scoped to the company, and the same data appears in the client’s dashboard. ### When to use - When a client wants website enquiries answered instantly instead of a contact form that goes to an inbox nobody watches. - When a client’s support email is drowning in the same questions and they want to know which topics recur and which the knowledge base cannot answer yet. - When you want a visible, branded “Powered by AgentDemo” line on every client site that runs the widget. ### Key points - Overview: conversations, leads captured, resolved by AI, open cases and rating (or median first human reply) for the last 7, 30 or 90 days, with a volume chart and the top reasons for contact. - Conversations: every chat with its AI summary, reason for contact, sentiment, urgency and smart tags. Search covers summaries, reasons and the pages visitors were on. - Cases: the support inbox. Each case has a reference (for example TR-1042), a status (open, waiting on customer, resolved) and a first-reply deadline. Reply from the case and the visitor receives your message by email; when they reply to that email it lands back on the case. Internal notes are visible to your team and the client’s managers, never to the customer. - Smart tags: your categories (the stable reasons for contact you define), emerging themes the AI has clustered from conversations (promote them into a category or ignore them), incidents opened automatically when several different visitors report the same thing in a short window, and knowledge gaps — questions the assistant could not answer from the knowledge base. - Setup & appearance: every wizard setting, the live preview, the daily AI message budget, the channel instructions layered onto the agent, and the widget key. Rotate the key if the snippet leaks or the client changes web agency. - Escalation: the assistant hands off when the visitor asks for a person, when it gives out the support address, or when the visitor clicks “Talk to a human”. Each hand-off becomes one case; the visitor is asked for an email so a reply can reach them. - Leads: when a visitor shares contact details for a sales enquiry, a lead is recorded and emailed to the lead recipients with the visitor’s details and a summary. - Incidents and missed reply promises also appear on the agency Home operations feed for that company. - Every widget shows a small “Powered by AgentDemo” line on the host page. It is part of the product and links back to agentdemo.ai. ### Steps 1. Open Companies, choose the company and click the Live chat tab. The tab only appears for agency accounts in the live chat release cohort. 2. Click Set up live chat. Step 1 (Assistant): name the assistant, pick the SMS agent whose knowledge base and instructions it answers from, and write the first message. {persona_name} and {company_name} are replaced automatically. 3. Step 2 (Look): choose the brand colour, launcher position and icon, colour scheme and the optional proactive greeting. “Match the website” follows the page’s own background (light site, light chat) rather than the visitor’s device setting; pick Light or Dark to force one. The preview on the right updates as you type. 4. Step 3 (Support): enter the client’s support inbox address and the people who should receive new cases and new leads. Leave the support inbox blank for lead capture only. Pick the first reply promise (counted in business hours from the company profile, or “Always”). 5. Step 4 (Trust): keep the “AI assistant” label and the one-time AI and privacy notice on, add the client’s privacy policy URL and choose the reply language. 6. Step 5 (Install): copy the snippet and send it to whoever manages the client’s website. It is one script tag with the widget key; paste it before the closing body tag on every page. The launcher loads lazily so page-speed scores are unaffected. 7. Open the client’s site in a private window, ask a question, then use “Talk to a human” to check that the case email arrives at the recipients you chose. ### Troubleshooting - No Live chat tab on the company → this agency account is not in the live chat cohort yet. Ask the SalesWingman team. - The launcher does not appear on the client’s site → confirm the snippet is on the page and the widget is not paused (Setup & appearance shows Live or Paused). With lazy loading the launcher appears after the page settles, not instantly. - The widget says the chat is unavailable → the daily AI message budget was reached, or the AI provider key on the agency account is missing or invalid. Check Settings → AI Providers. - Answers are generic and never quote the knowledge base → no agent is linked (the Live chat header shows an amber notice). The assistant then answers from the company profile only; pick an agent under Setup & appearance → Assistant. - Case emails do not arrive → check the recipients on the Leads and support card and the client’s spam folder. The sender is chat@snd.agentdemo.ai unless configured otherwise. - Replies cannot be sent on a case → the visitor never shared an email address. You can still leave an internal note and resolve the case. - A similar theme keeps appearing after you ignored one → promote it into a category instead so future conversations are tagged consistently. ### FAQ **Q: Does live chat use GoHighLevel?** No. Live chat runs natively: the widget, the AI replies, cases and emails are all handled by Sales Wingman. It answers from the same knowledge base and instructions as the SMS agent you select. **Q: Can a human take over the chat live?** Not in real time. Hand-offs are asynchronous: the visitor is told the team will reply by email within the reply promise, and your reply from the case is delivered to their inbox. Their email reply comes back onto the case. **Q: What do visitors see about AI?** An “AI assistant” label on the assistant’s messages and a one-time notice with the privacy policy link. Both are on by default. **Q: Can I remove the Powered by AgentDemo line?** No. It is a standard part of the widget on every client site. **Q: Where does the client see this?** In their Client Portal: web chat conversations in Conversations, a Support section for cases, themes, satisfaction and recipients, and a Web chat tab on their dashboard. ### Next steps - Add answers for any knowledge gaps to the client’s knowledge base, then mark them covered. - Review emerging themes weekly and promote the recurring ones into categories. - Invite the client to their portal so they can answer cases themselves. Source: https://app.saleswingman.ai/help/live-chat.md --- ## Live chat in the Client Portal What clients see and can do with website chat conversations, cases and themes in their dashboard. When a company with live chat is linked to a portal client, the client’s dashboard gains a Web chat channel in Conversations, a Support section and a Web chat dashboard tab. Viewers can read everything; managers can also reply to cases, change case status and manage who receives notification emails. ### When to use - When a client wants to answer their own website support cases without emailing your team. - When a client asks what their website visitors are contacting them about. ### Key points - Web chat conversations show the AI summary, reason for contact, sentiment, urgency and smart tags alongside the transcript. - Case status follows the same rules as your hub: open, waiting on customer, resolved. A red deadline means the first reply promise has been missed. - Viewers see a read-only layout with a notes-only composer; reply controls appear only for managers. - The dashboard Web chat tab shows conversations, leads, AI resolution rate, hand-overs and satisfaction with daily volume and reasons-for-contact charts. - Clients with several live chat companies get a company selector on Support and the dashboard. ### Steps 1. Link the company to the portal client (Companies → company → Campaigns → Sync and client visibility) the same way as SMS. 2. Ask the client to open Conversations in their portal. Web chat appears as a channel next to Voice and SMS; unread chats and open cases are badged in the sidebar. 3. For cases, the client opens Support. Cases lists unresolved work first (overdue at the top); Themes shows categories, emerging themes and incidents; Satisfaction shows ratings, reply times and AI workload; Settings shows recipients and widget details. 4. Managers reply from a case; the visitor receives the message by email and their reply appears on the case. Anyone can add a private note. 5. Managers can edit who receives case and lead emails under Support → Settings. Everything else about the widget is set by your agency. ### Troubleshooting - The client cannot see Web chat → confirm the company is linked to their portal client and the widget has at least one conversation. - The client cannot reply → their portal role is viewer. Change it to manager in Client Portal settings. - Recipient changes are not saving → recipients must be valid email addresses; the portal shows which entry is invalid. ### FAQ **Q: Do clients see visitor emails?** Yes, when the visitor shared one, because that is how case replies are delivered. Visitor IP addresses are never stored. **Q: Can clients change the assistant’s answers or appearance?** No. Widget setup stays with your agency. Clients manage recipients only. ### Next steps - Show the client the Support section on their first case so replies go out on time. - Use the Themes view together during monthly reviews to decide what to add to the knowledge base. Source: https://app.saleswingman.ai/help/live-chat-client-portal.md --- ## AI Voice Agents Plan voice demos, go live, then watch calls and controls. This chapter is where you run voice helpers that call people or answer phones. Voice needs Twilio phone numbers, GoHighLevel context, and a few setup passes. ### FAQ **Q: Do I need my own phone number?** Yes for real traffic. Twilio provides numbers you connect inside Settings. **Q: How is voice different from chat?** Voice adds audio, carriers, and call laws. Expect more setup steps. **Q: Can I skip demos?** Demos protect clients. Run tests before you aim traffic at real leads. **Q: Where do credits show?** Billing and the Voice AI Dashboard show usage. ### Next steps - Finish Build Voice AI Demo before Go Live. - Keep test calls short while you learn. Source: https://app.saleswingman.ai/help/voice-ai.md --- ## Build Voice AI Demo Pre-flight calibration, voice selection, and the configuration wizard. This page is the pre-flight calibration screen for a Voice AI demo. You set the dialing region, prove the client website loads, name the helper, pick a voice provider and voice, and then move into the configuration wizard. Everything you do here ends up shaping the voice agent's opening line, accent, latency, and emotional behavior. ### When to use - When you are about to demo a voice agent for a new client and need it to sound right for their region. - When you want to compare voice providers (Cartesia, Hume, ElevenLabs, Gemini Live) before saving a demo. - When the client website is the source of truth — the URL is scraped to seed the agent's services, knowledge, and opening line. ### Key points - Region presets pre-configure dialing rules and a managed Twilio number; Custom requires BYOT credentials managed under Connections → Twilio. - The website scrape generates the agent's services list and seeds the knowledge base — it is not just a connectivity check. - Business hours rules are enforced at booking time, not just at greeting time. - Voice library filtering: chips stack (e.g. English + British + Male) and a green tick confirms your selection. - Inbound vs Outbound changes the opening line, the goal flow, and which Twilio number is used. - Custom service text overrides the scraped list — keep it under ~6 words so the opening greeting still scans. ### Steps 1. PRE-FLIGHT — Region: pick from the preset list (United States, United Kingdom, Ireland, Canada, Australia, New Zealand). For non-listed countries click Custom, enter the country, then add your own Twilio credential under Connections → Twilio (BYOT — Bring Your Own Twilio). 2. PRE-FLIGHT — Website verification: paste the client's exact website URL (copied from their address bar) and run Check Connectivity. The scrape powers the knowledge base and the services list. 3. PRE-FLIGHT — Company & agent details: fill the business name (e.g. "Acme Corporation") and give the AI a persona name (e.g. "Sarah"). 4. PRE-FLIGHT — Availability: set business hours if the demo will book real appointments — the AI only offers times when staff are available. 5. VOICE — Pick a provider (Cartesia, Hume, ElevenLabs, or Gemini Live) using the comparison below. Use the filter chips (e.g. English → British → Male) to narrow the voice library, click play to preview, and confirm the green tick on the selection card before moving on. 6. VOICE — Remember telephony compression: voices sound different on a phone line than on PC speakers. A voice that sounds "tinny" on your laptop usually sounds natural on a phone call. 7. WIZARD — Click Start Configuration. Pick a personality: Performance-Driven (aggressive sales push), Consultative (asks diagnostic questions), or Empathetic (softer, patient). 8. WIZARD — Pick call direction: Inbound (the AI receives calls) or Outbound (the AI dials leads). 9. WIZARD — Service selection: pick ONE service from the list scraped off the website (e.g. "AI Lead Generation"). If the scraped services are wrong, type a short custom service — keep it short so the opening line still flows. 10. WIZARD — Goal: define the call objective (Book a Call, Close Sale, Transfer to Staff, etc.). 11. OPTIONAL — Toggle Double Banger only when you want to showcase the SMS-to-voice combo for a demo. 12. Save the demo. You will land on the "Your AI Agent is Ready" screen ready for test calls. ### Troubleshooting - Website check fails → confirm the URL is the literal address from the client's browser bar (with https://, no extra paths). Try the homepage first; deep pages sometimes fail the scrape. - Custom region with no Twilio credentials → save will be blocked. Open Connections → Twilio and add your Account SID, Auth Token, and a Twilio number first. - Voice sounds robotic on PC → that is telephony compression simulation. Test on an actual phone before judging — most voices come alive on the phone line. - Scraped services look wrong → either the scrape did not reach the right page, or the site lists internal/legacy services. Type a clean custom service and keep it short. - ElevenLabs feels slow → switch the model to Flash v2.5 for ~75ms responses. Use Multilingual v2 for non-English instead. ### Voice provider comparison - Cartesia (default for demos) → near-instant response (~sub-100ms), highly emotive (laughs, slows down, speeds up), handles interruptions well. Smaller voice library than ElevenLabs. - Hume AI (advanced demos) → analyzes the caller's emotion (Emotional Quotient/EQ) and adjusts tone in real time. "Fast Mode" exists but is experimental. Higher cost per minute. - ElevenLabs (multilingual / specific voices) → highest audio fidelity and the largest library. Best for non-English support — use Multilingual v2. Standard models have ~3s latency; Flash v2.5 is faster (~75ms) but sounds slightly flatter. - Gemini Live → Google's real-time conversational model with thinking levels and broad language support — useful when you want a natural, descriptive voice prompt rather than picking from a fixed library. - Twilio handles the actual phone call routing for every provider — for unsupported regions you must add your own Twilio credentials in Connections → Twilio. ### FAQ **Q: Will this work in my country?** If your country is in the preset list (US, UK, Ireland, Canada, Australia, New Zealand) you are covered by managed Twilio numbers. Otherwise pick Custom and add your own Twilio credential — BYOT lets you call into any country Twilio supports. **Q: Why verify my website?** The check is also a scrape — it pulls services and content into the agent's knowledge base and seeds the opening line. A bad URL means a bad opening greeting. **Q: Which voice provider should I pick?** Cartesia for almost every demo (fastest, most emotive). Hume when the demo angle is "the AI reads emotion." ElevenLabs for non-English (Multilingual v2) or when you need a very specific voice. Gemini Live when you want a descriptive natural-language voice prompt. **Q: What is Double Banger?** An optional showcase that ties SMS and voice together for demos. Leave it off unless you specifically want to demo that combo. **Q: Why does my voice sound different on a phone vs my speakers?** Phone calls compress audio (telephony codec). It changes how voices sound — tinny on a laptop often sounds natural on a phone. Always test on an actual phone before deciding. **Q: What's scraped from the website?** Services, business context, hours hints, and contact info — anything that helps the agent sound like it actually works at the company. ### Next steps - Save your demo and open View Voice Demos to test or fine-tune the prompt. - Upload a voice sample under Clone a Voice if you need a closer match to a real person. - When happy, run Import Voice AI to CRM (Go Live) to take the demo into production. Source: https://app.saleswingman.ai/help/voice-setup.md --- ## View Voice Demos This page lists every saved voice demo on the account. You test demos here, edit prompts in a structured "sectioned" editor, and pick which demo to import during Go Live. The big advantage: changes save instantly — you do not need to rebuild the agent or re-run the wizard to hear updates on a new test call. ### When to use - When you want to test a demo on a real phone before going live. - When you need to tweak personality, speech patterns, TTS rules, or call flow without restarting the wizard. - When you are comparing two demos and need to retest each one quickly. ### Key points - V1 vs V2 tags: V2 indicates the latest prompt structure with enhanced features (better emotion handling, sectioned editor support). Prefer V2 for new demos. - Sectioned editor: edits one part of the prompt without forcing you to read the whole thing — major time-saver for prompt engineering. - Live Call Dashboard: live transcript on every provider; emotion insights only on Hume; objection monitor on all providers. - Country code matters: +44, +1, etc. Twilio refuses to dial without it. - Edits saved here will not flow into a live agent — those have their own prompt page on Active Voice Agents. - Test calls run against vendor APIs but the platform currently covers demo costs, so practice freely. ### Steps 1. Open AI Voice Agents → View Voice Demos. 2. Find the agent card you want to test or edit. Each card shows the agent name, voice provider, and version tag (V1 / V2). 3. INITIATE TEST CALL — click Test Demo, enter your phone number with country code (e.g. +44 or +1 — Twilio needs the country code to connect), and click Initiate Demo Call. Answer the phone — the AI begins speaking immediately. 4. WHILE ON CALL — open the Live Call Dashboard to watch the conversation. You see the live transcript, an emotion insights panel (Hume only — visualizes detected emotions like Confusion or Excitement), and an objection monitor that surfaces "curveball" questions the AI was not trained on (great for showing clients what extra training would cover). 5. EDIT PROMPT — click the pencil/Edit icon on any agent card to open the sectioned editor. The editor splits the prompt into manageable sections so you do not have to scroll through one giant block. 6. EDIT — Character: tweak persona, backstory, or tone. 7. EDIT — Speech Patterns: control how the AI talks (e.g. remove filler words like "um" or "uh"). 8. EDIT — TTS Rules: provider-specific instructions (e.g. "speed up Cartesia by 20%"). 9. EDIT — Flow / Objectives: change the script logic, objection handling, and the goal. 10. EDIT — Custom Sections: add your own prompt sections to inject specific data (a bespoke pricing list, a special offer) without altering the core flow. 11. Save and immediately re-test by clicking Test Demo on the card — no rebuild required. ### Troubleshooting - Test call never connects → check the country code on the phone number, and check Connections → Twilio if you are on a Custom region using BYOT credentials. - AI sounds slower than expected → if you are on ElevenLabs, switch to Flash v2.5 for sub-100ms responses, or move to Cartesia for the same speed without flatness trade-offs. - Sectioned editor missing on an old demo → it is V1. You can either keep editing V1 in the legacy view or rebuild the agent fresh to land on V2. - Saved an edit but the call sounds the same → end the active call first, then click Test Demo again. Edits apply on the next session, not mid-call. - My demo disappeared → check filters and dates at the top of the list. Demos save per account; nothing is auto-deleted. ### FAQ **Q: Do I need to rebuild after editing a prompt?** No. The sectioned editor saves changes instantly. Click Test Demo, enter your phone number, and call again — updates apply on the next session. **Q: What's the difference between V1 and V2 tags?** V1 is the legacy prompt format. V2 is the newer prompt structure with sectioned editing, better emotion handling, and richer TTS rules. Always prefer V2 for new agents. **Q: Can I share a demo?** Use the actions on the card once your team approves sharing. Demos contain prompt logic and product context that may not be appropriate to share externally. **Q: Where did my demo go?** Check filters and dates at the top of the list. Demos save per account, so nothing disappears on its own — usually it is filtered out, not deleted. **Q: Do demos cost money?** No. The platform currently covers demo costs so you can practice freely. Live calls do bill against credits — keep an eye on the Voice AI Dashboard once you Go Live. **Q: What is the Objection Monitor for?** It surfaces questions the AI was not trained on. Use it as a coaching tool — when a client throws a curveball, you can show them in real time exactly what extra training would cover. ### Next steps - Pick the demo you will import during Go Live. - If you change the prompt, retest with a real phone before importing. - Once happy, run Import Voice AI to CRM (Go Live). Source: https://app.saleswingman.ai/help/voice-demos.md --- ## Clone a Voice (upload call) This page is where you upload a short call recording so the voice can mirror tone. ### Steps 1. Open Clone a Voice. 2. Follow the upload wizard with small files. 3. Remove credit card numbers or private details from recordings. 4. Wait for processing before you attach the voice to a demo. ### FAQ **Q: How long should the clip be?** Keep clips short and clear. Long files take longer to process. **Q: Can I use any recording?** Only use recordings you have permission to upload. **Q: What file types work?** Follow the page hints. Convert odd formats before upload. ### Next steps - Return to View Voice Demos after processing finishes. Source: https://app.saleswingman.ai/help/voice-upload.md --- ## Import Voice AI to CRM (Go Live) This page is the five-step wizard that turns a saved voice demo into a live production agent. The wizard walks you through Setup, Voice, Actions, Configure, and Import to CRM, and pulls together everything Twilio, your credits, and GoHighLevel need before real calls start. ### When to use - When you finished a saved voice demo and want it on a real Twilio number. - When Twilio is added, call credits are loaded, and the ROYA snapshot is installed in GHL. - When you want the agent to handle Outbound, Inbound, or Both call directions. ### Key points - The wizard ships with four built-in Video Training clips at the top: How to Set Up Twilio, How to import your voice AI agent into GoHighLevel, How to test your voice AI agent, and Managing your voice AI agent campaign. - You can click any completed step in the progress bar to jump back. Future steps stay locked until you finish the current one. - Inbound and Both directions need Twilio Synced for AI before Continue unlocks. - Calendar tools and Transfer Call need timezone and destinations set before Continue unlocks. ### Steps 1. Open Go Live and click Video Training at the top whenever you need a visual walkthrough. 2. Finish the Before You Go Live preflight: a saved demo, a Twilio number, call credits, and the snapshot installed (then tick the snapshot checkbox). 3. Step 1 (Setup) — search for your saved demo, pick Call Direction (Outbound, Inbound, or Both), name the production agent, then click Confirm Agent Selection. 4. Pick your voice strategy: AI Voice (browse our voice library) or Voice Clone (upload sales call recordings to mirror a real voice). Optionally enhance the prompt from a recording or sales script, or skip for now. 5. Connect Twilio. The number must show Verified: Yes and Synced: Yes for AI calls. Click Sync now if you see a "verified but not synced" warning. 6. Connect GoHighLevel with a Private Integration Token plus Location ID (recommended). You can skip this, but the AI Voice webhook will not auto-publish. 7. Step 2 (Voice) — pick a voice from the library tabs (Cartesia, ElevenLabs, Hume, or Gemini Live), or finish your voice clone. Click Continue. 8. Step 3 (Actions) — turn on the tools the agent should use (End Call, Call Analysis, Send Booking Link, Send Payment Link, Transfer Call, Calendar Booking). Set the Agent Timezone, add transfer destinations in E.164 format (numbers starting with +), and pick a GHL calendar if calendar tools are on. 9. Step 4 (Configure) — set voicemail (CTA + message), expand Edit Prompt to refine sections, and write the Opening Message (or both inbound and outbound openers if you chose Both). 10. Step 5 (Import) — the wizard finalizes automatically and publishes the GHL webhook. When you see Imported to CRM Successfully or Go-Live Setup Complete, click Now Test Your Voice AI Agent to jump to Test Voice Agents. ### Troubleshooting - When the Setup form is grayed out, finish every Before You Go Live card and tick the snapshot checkbox. - When Twilio shows "verified but not synced", click Sync now (or Retry sync) on that credential. - When Continue stays disabled, check the badges: voice strategy chosen, Twilio selected, Twilio Synced for inbound or both. - When Calendar Booking is on but Continue is gray, connect GoHighLevel and pick a calendar in Step 3. - When Transfer Call is on but Continue is gray, every destination needs an E.164 phone number that starts with +. - When Step 5 shows "Import to CRM Failed", click Retry Import. - When Step 5 shows "Missing production agent ID", return to Setup and reselect the demo. ### FAQ **Q: What is the difference between AI Voice and Voice Clone?** AI Voice picks a ready-made voice from our library (Cartesia, ElevenLabs, Hume, or Gemini Live). Voice Clone uploads short sales call recordings so the agent mimics a real voice. Pick AI Voice for speed, Voice Clone when matching a specific person matters. **Q: What if I have no Twilio number?** Add a Twilio credential right inside the preflight panel. For Inbound or Both directions the number must show Verified and Synced before Continue unlocks. **Q: Do I need GoHighLevel to go live?** GHL is optional in Setup, but without it the AI Voice webhook will not auto-publish, and you will need to wire that webhook by hand. We recommend connecting GHL with a PIT plus Location ID. **Q: Why is the Continue button gray?** Continue stays gray until every required item on the current step is green. On Setup that means preflight done, demo confirmed, voice strategy picked, Twilio selected, and (for inbound or both) Twilio Synced for AI. **Q: Can I edit the prompt later?** Yes. Step 4 lets you tune the prompt and openers before Import. After Go Live you can keep editing from Test Voice Agents (with version history) and from Conversation Review. **Q: What does the Import step actually do?** It saves the production agent, links your Twilio number for live calls, and (when GHL is connected) publishes the AI Voice webhook into GoHighLevel so workflows can call the agent. After success, the wizard sends you to Test Voice Agents. ### Next steps - Buy credits before you accept live traffic. - Run Test Voice Agents right after Go Live to confirm tools fire. - Monitor Voice AI Dashboard on day one for spend and outcomes. Source: https://app.saleswingman.ai/help/go-live.md --- ## Voice AI Dashboard This page is where you watch spend, volume, and call outcomes after traffic starts. ### Steps 1. Pick a date range and helper filter at the top. 2. Compare Calls, Spend, and provider usage cards. 3. Read Call Outcomes for voicemail versus transfer versus booking splits. ### FAQ **Q: Why does spend move without calls?** Some providers bill small setup events. Compare timestamps with Twilio logs. **Q: Can I export?** Use screenshots or CSV if the page offers export. Save proof for clients. **Q: What are outcomes?** They group how calls ended so you spot bottlenecks fast. ### Next steps - Pair dashboard review with Conversation Review for coaching. Source: https://app.saleswingman.ai/help/voice-dashboard.md --- ## Test Voice Agents This page is your safe sandbox for production voice agents. Chat or voice-test the agent, edit its prompt with version history, and run automated screening or persona suites — all without ever calling a real lead. ### When to use - Right after Go Live to confirm prompts, tools, and openings sound right. - Before any major prompt change you plan to push to live campaigns. - Whenever a customer reports unusual behavior and you want to reproduce it. ### Key points - Internal runtime — fast, in-app voice path. Best for quick iteration. - Voice Call Web — runs on the Vapi browser path, closest to what real callers experience. - Saving the prompt here updates the live production agent the moment you click Save Prompt — be careful while a campaign is running. - Run Tests includes a scenario filter (all, pass, fail) so you can focus on failures fast. ### Steps 1. Open Test Voice Agents (Go Live sends you here automatically when import succeeds). 2. Pick the agent in the Production Voice AI sidebar on the left. Each row shows status and which wizard step it reached. 3. Type messages in the center chat to test logic without using voice. Tool chips light up when the agent calls a tool. 4. Click Start Voice Test for a real audio test, then choose a runtime: Internal (in-app) or Voice Call Web (Vapi browser path). 5. Watch the chips and Simulated Tool Result blocks to confirm tools (booking, transfer, end call) fire as expected. 6. Open Run Tests to launch automated suites: call-screening scenarios and persona simulations (Eager, Neutral, Aggressive Buyer). 7. Edit the Main Prompt on the right. Click Save Prompt to push the change. Use Prompt Version History to roll back if needed. ### Troubleshooting - When you click Start Voice Test with unsaved prompt edits, a "Save before voice" modal appears — save first, then start the call. - Switching agents is disabled mid-voice-test or mid-run — end the session first. - When the sidebar says "No production agents", you have not finished Go Live yet — click "Go Live with an agent first". - When voice audio sounds rough, try a wired headset, quiet room, and stable internet, and switch runtime if the issue persists. ### FAQ **Q: Will these tests call real leads?** No. Tests run inside the app (Internal) or through a browser-based Vapi session (Voice Call Web). They do not dial customers and the platform covers test usage. **Q: What runtime should I pick?** Use Internal for fast iteration on prompts and tools. Use Voice Call Web when you want the closest match to what real callers will hear. **Q: How do I edit the prompt safely?** Edit on the right panel, then click Save Prompt. If a campaign is live, plan changes for quiet hours, and use Prompt Version History to roll back fast if the new prompt misbehaves. **Q: What are the persona tests for?** Personas simulate Eager, Neutral, and Aggressive Buyer behavior so you can pressure-test the prompt against tough conversations without using a real lead. **Q: Why is my agent not in the list?** Only production agents (created by Go Live) appear here. Demo agents from /agents do not. Finish Go Live first to import the agent. ### Next steps - Save the prompt before placing a voice test. - Run a persona suite before any major prompt change. Source: https://app.saleswingman.ai/help/voice-test.md --- ## Conversation Review This page is where you read real Vapi call transcripts after they happen — for coaching, compliance, and prompt tuning. Each row pairs the call with its outcome, cost, recording, and an AI Call Analysis summary, and the right panel lets you tune the agent prompt without leaving the page. ### When to use - After live calls, to coach your team with real evidence. - When you want to find the call that triggered a complaint or unusual outcome. - When you spot a pattern in transcripts and want to fix the prompt right away. ### Key points - Per-call cost shows in USD when the carrier reports it. - Play Recording opens the audio in a new tab — the page does not embed an audio player. - Prompt Assistant suggestions appear when you select agent text in the transcript. - Outcomes are pretty-labeled (e.g. Appointment Booked, Not Interested, No Outcome) so they group neatly in coaching. ### Steps 1. Open Conversation Review. If you arrive from a campaign link, the page filters to that campaign automatically. 2. Pick a date preset at the top: Today, Yesterday, Last 7 days, Last 2 weeks, Last 30 days, Custom range, or All time. Custom range lets you pick start and end dates (use the same date for one specific day). 3. Use the search box to find calls by name, phone, company, or agent. Filter by company, call status (Ended, Active), and sort newest or oldest. 4. Flip the Starred toggle to show only flagged calls. Star important rows with the star icon for later review. 5. Click a row to load the transcript. The header shows agent, lead, datetime, duration, outcome, and the per-call USD cost when available. 6. Expand Call Analysis to read the AI summary: confidence score, evidence tags (e.g. Picked Up, Voicemail), and a Follow-Up Recommendation block when the outcome is follow_up. 7. Click Play Recording to open the audio in a new tab (when a recording exists for the call). 8. Edit the Main Prompt in the right panel. Save Prompt to push the change. Use Prompt Version History to roll back, and select transcript text to see Prompt Assistant suggestions. 9. Click Load more conversations at the bottom when not all results are shown. ### Troubleshooting - When a row says "No transcript available", the call probably has not ended yet — wait, then refresh. - When the page says "Failed to load calls", widen the date range or reload. - When you do not see a call you expect, clear the Starred toggle and the company / status filters, then check the date preset. - When you only see a few rows, click Load more conversations at the bottom of the list. ### FAQ **Q: How is this different from Test Voice Agents?** Test Voice Agents is a sandbox for fake calls. Conversation Review is the log of real Vapi calls that actually happened, with real recordings, costs, and outcomes. **Q: Can I export transcripts?** There is no built-in export today. Follow your internal policy and customer agreements, and use screenshots or copy-paste sparingly until export is added. **Q: Where do I see how much a call cost?** On the row card and the call header when the carrier reports cost. The number is in USD. **Q: What does Call Analysis tell me?** It is an AI-generated end-of-call classification: outcome, confidence, evidence tags such as Picked Up or Voicemail, and a follow-up recommendation when the outcome is follow_up. Use it for fast triage. **Q: Why can I edit the prompt from this page?** Reading a real call and editing the prompt in the same view tightens the feedback loop. The right panel saves to the live agent immediately, so plan changes carefully — version history is there if you need to roll back. **Q: Do transcripts store PCI data?** Never read card numbers aloud on calls. Follow your compliance policy and treat transcripts like sensitive client data. ### Next steps - Star coaching examples for your weekly review. - Pair findings with prompt edits inside this same page (right panel). Source: https://app.saleswingman.ai/help/voice-review.md --- ## View Active Voice Agents This page is where you pause or resume voice campaigns tied to Twilio routes. ### Steps 1. Open Active Voice Agents. 2. Pause traffic before risky edits. 3. Resume only after tests pass. ### FAQ **Q: Will pause affect chat?** Voice controls usually affect phone routes. Chat uses separate settings. **Q: Why pause?** Stop new calls while you fix scripts or carrier issues. **Q: Who should access this page?** Trusted operators only. Mistakes can stop client calls. ### Next steps - Tell clients before long pauses. - Use Test Voice Agents before resume. Source: https://app.saleswingman.ai/help/voice-control.md --- ## Setup (Config) This page configures the public opt-in page that lives at /lm/{slug}. You pick the follow-up path, the page slug and branding, the country and language, the voice the lead will hear, and an optional GoHighLevel sync. ### When to use - When you want a public landing page that captures leads and runs an AI voice or SMS demo. - When you want to embed the same page on a client site you control. - When you want to track leads with Meta, Google, or TikTok pixels. ### Key points - The public link is built from your slug: {your domain}/lm/{slug}. - Full Page embed loads the entire hosted demo chrome. Form Only Embed shows just the lead form on your landing page, then continues into the same SMS demo and AI voice follow-up journey inside the iframe. - The voice you pick here is what callers will hear after they opt in. - Tracking pixel IDs are stored on the page; you do not paste raw scripts. ### Steps 1. Step 1 (Email Follow-up) — pick one path: Send from Gmail (connect Gmail, set Sender Name and a Calendar Link), Continue with GoHighLevel (you send from GHL workflows), or No follow up. 2. Step 2 (Page URL) — pick a unique slug shown after /lm/ (green Available! means it is free), then fill Agent Name, Privacy Policy URL, and Terms & Conditions URL. Optionally open Embed & Tracking to add Meta, Google Tag, and TikTok pixel IDs and copy embed code (Full Page or Form Only). 3. Step 3 (Region) — pick a country preset (United Kingdom, United States, Ireland, Canada, Australia, or New Zealand) or Custom. Custom requires choosing a Twilio credential. Pick a transcription or Gemini language to match your audience. 4. Step 4 (Voice Provider & Voice) — pick Cartesia, ElevenLabs, Hume AI, or Gemini Live. Each provider has its own controls: Cartesia speech speed; ElevenLabs voice model, stability, similarity boost, style, speaker boost; Hume male or female voice cards; Gemini base voice plus a required Voice Description and Fast Response Mode. 5. Step 5 (GoHighLevel Integration — optional) — paste a Private Integration Token (PIT) plus a Location ID. You must use both fields or neither. Leave both blank to skip GHL sync. 6. Click Save Configuration when the chips at the bottom turn green, then click Preview Page to test your public page. 7. Use the Active / Inactive toggle in the top-right to publish or pause the page. ### Troubleshooting - When the slug field is red, pick a different name. Slugs are 3–50 lowercase characters, no spaces, and must be available. - When the Save button shows incomplete chips like "Select a voice" or "Connect Gmail", click each chip to jump to the missing field. - When you picked Custom region, pick a saved Twilio credential (or click Add one to add it under Settings). - When emails never send, open Email Connections and finish Gmail OAuth, or switch the path to GoHighLevel. - When GHL sync does nothing, remember PIT and Location ID is all-or-nothing — fill both fields or leave both blank. - When the embed card stays blank, turn on Allow embeds on external websites and Save Configuration first. ### FAQ **Q: What does each follow-up path actually send?** Send from Gmail uses your connected Gmail to send the templates from Prospecting → Lead Magnet Emails. Continue with GoHighLevel means you send from GHL workflows yourself. No follow up captures the lead but sends nothing automatically. **Q: Why is my slug rejected?** Slugs must be 3–50 lowercase characters, no spaces or symbols, and must not be taken. Try a shorter name or add your brand initials. **Q: When do I need Custom region?** Use Custom when your country is not in the preset list, or when you want outbound calls to use your own Twilio account. Custom requires a saved Twilio credential. **Q: Which voice provider should I pick?** Cartesia and ElevenLabs are reliable defaults. Hume AI gives natural emotion. Gemini Live supports fast back-and-forth conversation. Listen to a sample on each card before you save. **Q: How do I add this page to my own site?** Open Embed & Tracking, turn on Allow embeds on external websites, save the config, then copy the Full Page Embed (whole demo chrome) or Form Only Embed (just the form entry point, then the same demo flow) into your site. **Q: Can I change the slug later?** You can, but old links break unless you set up redirects yourself. Pick a slug you can keep before you share it widely. ### Next steps - Send yourself a test submission before clients see the page. - Open Lead Magnet Email Stats after the first sends to confirm follow-up runs. Source: https://app.saleswingman.ai/help/lead-magnet-config.md --- ## Email templates, leads, stats, connections ### Key points - Email templates live under Prospecting → Lead Magnet Emails. - Leads live under Lead Magnet → Leads. - Stats live under Lead Magnet → Email Stats. - Email Connections live under Connections → Gmail in the sidebar. ### Steps 1. Send a full test sequence to yourself before clients opt in. 2. Store consent records outside Sales Wingman per your legal needs. ### Gmail OAuth (sending) - Sending mail requires Gmail scopes such as gmail.send or broader compose scopes — mismatched scopes are a common failure. - Google may require OAuth app verification for restricted scopes; enterprise admins can block unverified apps. - If a connection suddenly fails, re-run OAuth — refresh tokens can expire for some app types. - Official reference: Google Gmail API auth scopes documentation. ### FAQ **Q: Why did Gmail disconnect?** Scopes change or admins block apps. Reauthorize under Email Connections. **Q: Where do unsubscribes live?** Follow your ESP rules and local law. Sales Wingman stores leads but you own compliance. **Q: Can I use Outlook?** Use the connections page to see which providers your workspace supports. ### Next steps - Verify Email Connections before big sends. - Download leads after each campaign for your CRM. Source: https://app.saleswingman.ai/help/lead-magnet-emails.md --- ## Prospect Audit Paste a prospect URL and get a ranked, evidence-backed list of AI services to pitch. This page is where you research a business before a sales call. Paste their website and the audit scans their site, socials, ads, and reviews — then ranks which AI services they actually need, with evidence you can show in the pitch. ### When to use - Before your first call with a new prospect. - When you want proof-backed talking points instead of guessing which agent to demo. ### Key points - Sources scanned include the website, web research, Instagram, Facebook page, Facebook ads, Google reviews, and a visual analysis of the homepage. - Services scored include Speed to Lead, 48-hour Follow-up, Database Reactivation, Live Chat AI, Social DM AI, Reputation AI, Inbound Voice, Outbound Voice, and Comment Moderation. - Review health may flag a reputation gap — a strong reason to pitch the Reputation Android. - Each top offer card shows a match score, confidence, rationale, an evidence list, and an optional suggested opener. - Click Cancel while a scan runs to stop it. ### Steps 1. Open Prospect Audit under Prospecting (Win Clients). 2. Paste a business URL in the field — https:// is optional. 3. Click Run audit (or press Enter) and watch the progress while sources scan in parallel. 4. When it finishes, read the Opportunity score and Service fit. 5. Open Service recommendations — offers are sorted into Pitch, Consider, and Don't pitch. 6. Scroll to the top offers for detailed cards with evidence and a suggested opener. Click Copy on an opener to paste it into email or your CRM notes. 7. Click Re-run for a fresh scan, or reopen a saved run under Recent audits. ### Troubleshooting - Audit could not complete → check the URL is public and reachable; try the main domain without long paths. - Progress looks stuck → wait a moment; sources run in parallel and partial results stream in. Cancel and retry if needed. - No strong offers to pitch → read the Consider and Don't pitch columns and the evidence sections for weaker signals. ### FAQ **Q: Is this the same as the old Prospect Signal Audit?** Yes — same tool at the same address, renamed Prospect Audit in the sidebar and page title. **Q: What do Pitch, Consider, and Don't pitch mean?** Pitch means lead with these services. Consider means a possible but weaker signal. Don't pitch means the evidence suggests skipping or deprioritizing. **Q: Are audits saved?** Yes. Completed runs appear under Recent audits with the brand name, URL, date, and overall score. ### Next steps - Build a demo for the top Pitch service under Create AI Agent. - Run Revenue Rescue if you also need dollar figures for the pitch. Source: https://app.saleswingman.ai/help/prospecting-audit.md --- ## AI Cold Email This page is where you upload a CSV of prospects so AI drafts cold email steps. Billing flows through OpenRouter models. ### Steps 1. Download the CSV template from the page. 2. Fill domains like example.com without https://. 3. Upload up to one thousand rows or five megabytes. 4. Walk each wizard step slowly. ### OpenRouter usage - Model slugs must match OpenRouter exactly — typos show up as “model not found”. - Free keys carry low daily limits; add credits for production throughput. - Set spend caps in OpenRouter to avoid surprise bills. ### FAQ **Q: What columns do I need?** Follow the template fields on the page so the AI can fill names and sites. **Q: Why did my upload fail?** Check file size and row count. Split large lists. **Q: Can I edit outputs?** Yes. Treat AI text as a draft. ### Next steps - Spot-check ten rows before you bulk send. - Set spend caps inside OpenRouter. Source: https://app.saleswingman.ai/help/prospecting-cold-email.md --- ## Revenue Rescue This page is where you estimate money lost from slow replies or missed calls so you can tell a story with numbers. ### Steps 1. Pick your currency. 2. Enter honest deal size, lead volume, and marketing spend. 3. Adjust response-time sliders to match reality. 4. Submit and read the recommendations. 5. Save results to Saved Work when the page offers saving. ### FAQ **Q: Do clients see my inputs?** No unless you export or screenshare. **Q: Is this accounting advice?** No. It is a teaching calculator. **Q: Can I rerun monthly?** Yes to track improvements. ### Next steps - Share results in sales decks after you sanity-check numbers. Source: https://app.saleswingman.ai/help/prospecting-revenue.md --- ## Event Finder This page is where you find local networking events using AI search with your location and language. ### Steps 1. Commit to at least one event per month when the page warns about credits. 2. Allow location or type a city. 3. Set radius and language. Searches run in the language you pick. 4. Finish Search and Results to download your monthly report. ### FAQ **Q: Why ask for location?** Events must be near you or near your clients. **Q: Will every event fit?** Verify details on the organizer site before you travel. **Q: Can I share the report?** Yes internally. Credit usage still applies. ### Next steps - Double-check events on the organizer website before you book travel. Source: https://app.saleswingman.ai/help/prospecting-events.md --- ## LinkedIn Activity This page is where LinkedIn-only plans run permitted workflows. Upgrade under Billing when you need the full product. ### FAQ **Q: Why is everything else locked?** Some plans only include LinkedIn Activity plus Billing. **Q: Can I upgrade mid-cycle?** Use Billing to change plans based on what you see. **Q: Does this post for me?** Follow each button label. Some actions need your manual approval. ### Next steps - Read Billing before you promise clients extra tools. Source: https://app.saleswingman.ai/help/prospecting-linkedin.md --- ## Theme & Logo This page is where you change the sidebar logo for your logged-in workspace. ### Steps 1. Open Customization and then Theme & Logo. 2. Upload a square-friendly logo. 3. Adjust scale until it looks sharp. 4. Save and refresh if an old logo stays cached. ### FAQ **Q: What file type should I use?** Use PNG or SVG when possible for crisp edges. **Q: Why does my logo look fuzzy?** Upload a larger source file and lower the scale slider. ### Next steps - Share theme updates with your team so they know branding changed. Source: https://app.saleswingman.ai/help/customization-theme.md --- ## Welcome Page Manager This page is where you build onboarding pages you share through secure welcome links for each client. ### FAQ **Q: Are welcome links public?** Share only with people who should see them. Treat links like invitations. **Q: Can I duplicate a layout?** Duplicate inside the manager when you onboard similar clients. ### Next steps - Test each welcome link in a private browser window. Source: https://app.saleswingman.ai/help/customization-welcome.md --- ## Connections & API Keys hub One hub for GoHighLevel, AI keys, Gmail, Twilio, and Shopify — each with live status. This page is where you see every integration at a glance and jump to the full setup screen for each one. Open it from Connections & API Keys at the bottom of the sidebar. ### When to use - When you first log in and want to know what still needs connecting. - When Agent Diagnostics or a live campaign flags a broken integration. ### Key points - GoHighLevel — shows how many sub-accounts are connected, or flags when one needs a new PIT. - AI Providers — the OpenAI and OpenRouter keys that power agents and demos. - Gmail — the inbox that sends Lead Magnet follow-up emails (one-click Google sign-in on the setup page). - Twilio — your own Twilio account for production voice and SMS, with a setup guide and video. - Shopify — link stores for abandoned-checkout recovery agents (requires an imported e-commerce agent). - Old URLs still work: /settings/api-keys, /settings/email-connections, /settings/shopify, and /settings/twilio redirect to the matching page here. - Password, email address, and billing live in the Settings dropdown — not on this hub. ### Steps 1. Open Connections & API Keys from the bottom of the sidebar. 2. Read the badge on each card: Connected, Not connected, or Needs attention. 3. Click the button on the card you need — each one opens the full setup page with instructions. 4. For GoHighLevel, click Open import wizard — GHL connections are made inside the import wizards, not on this hub. 5. For AI Providers, click Manage keys and paste OpenAI first, then OpenRouter if you use it. 6. Return here after setup — the badge and detail line update on reload. ### Troubleshooting - A card is stuck on Checking… → refresh the page; status loads after login. - GoHighLevel shows Needs attention → open the import wizard, add a new Select All PIT, and re-import the flagged sub-account. - AI Providers shows Not connected → open Manage keys; an OpenAI key is required to build agents. - Twilio shows Needs attention → not every saved credential is verified yet; open Manage credentials and finish validation. - Shopify shows Needs attention → one or more stores have sync errors; open Manage stores and check the error state. ### FAQ **Q: Do I connect GoHighLevel on this page?** Not directly. The GoHighLevel card links to the import wizard, where you link client sub-accounts during import. **Q: Which key do I add first?** OpenAI. The hub reminds you that an OpenAI key is required to build agents when neither key is saved. **Q: Where did API Keys in the old menu go?** Same place, new path: Connections & API Keys → Manage keys (/settings/connections/ai-providers). ### Next steps - Add your OpenAI key under AI Providers before building agents. - Connect Gmail if you use Lead Magnet email follow-up. Source: https://app.saleswingman.ai/help/settings-connections.md --- ## API Keys (OpenAI & OpenRouter) This page is where you paste API keys. An API key is a long password that proves it is really you. ### Steps 1. Paste OpenAI first because most builders require it. 2. Add OpenRouter when you need alternate models. 3. Pick allowed models after you save keys. ### OpenAI & OpenRouter troubleshooting (summarized) - 401 errors usually mean a typo, revoked key, or wrong organization. - Quota / billing errors mean you need billing enabled or higher limits. - 429 rate limits need backoff, smaller batches, or higher tier. - OpenRouter “model not found” means the slug is wrong or your key disallows that provider under data policies. ### FAQ **Q: Where do I get an OpenAI key?** Create one in the OpenAI account dashboard. Never email it. **Q: Is my key safe here?** Sales Wingman stores secrets for automation. Still follow least access inside your team. **Q: Why add OpenRouter?** Some flows call alternate models listed on OpenRouter. ### Next steps - Test Create AI Agent right after keys save. - Remove old keys in OpenAI when you rotate. Source: https://app.saleswingman.ai/help/settings-api-keys.md --- ## Email connections This page is where you authorize Gmail or other senders for Lead Magnet and sequences. ### FAQ **Q: Why reconnect Gmail?** Tokens expire or admins revoke apps. **Q: Can I send from two inboxes?** Connect each inbox that should send mail. **Q: What if Google shows a scary permission screen?** Read each scope slowly. Only continue when the scopes match what Sales Wingman lists. ### Next steps - Send a test email after each reconnect. - Tell clients which inbox will message them. Source: https://app.saleswingman.ai/help/settings-email.md --- ## Shopify connector This page is where you wire a GoHighLevel helper to a Shopify store using a Shopify custom-app access token. Once saved, Sales Wingman polls Shopify every ~15 minutes, captures abandoned checkouts, and pushes them to your GoHighLevel sub-account so the AI can follow up. We use this in place of GoHighLevel's native Shopify integration because GHL's native sync is unreliable and frequently misses contacts. ### When to use - When the client wants automated abandoned-cart recovery powered by their AI agent. - After you have already imported the agent through E-Commerce OAuth Import (Step 2 of the Shopify flow). - When your consent and compliance process allows abandoned-checkout SMS follow-up. The current connector does not enforce Shopify marketing-consent states. ### Key points - Sync cadence: every ~15 minutes — that balances timely follow-up with Shopify rate limits. - On match, contacts are deduplicated by email or phone — repeat abandoners get their fields refreshed, not duplicated. - Consent limitation: the connector reads Shopify marketing-consent states but does not currently filter on them. It syncs named checkouts with a phone number; enforce your required consent policy separately. - Pause vs Disconnect: Pause halts syncing but keeps your encrypted credentials. Disconnect removes credentials and the connector entirely. Either button is on the connector card. - Tokens are encrypted with Supabase Vault and only decrypted server-side when fetching abandoned checkouts. - You can connect multiple Shopify stores — each connection links to its own agent and GHL location. - Re-run E-Commerce Import any time the GHL credential changes or you switch locations. A Private Integration Token is the recommended connection method. ### Steps 1. STEP 1 — In your Shopify admin: open Apps → Develop apps → Allow custom app development if it is your first time. 2. STEP 1 — Click Create an app, name it something like "Sales Wingman Integration", and pick yourself as the developer. 3. STEP 1 — Click Configure Admin API scopes and enable read_orders, read_customers, read_products, and read_inventory (read-only is enough). 4. STEP 1 — Click Install app, then Reveal token once and copy the Admin API access token. Shopify only shows it one time, so save it somewhere safe. 5. STEP 1 — Find your store domain in the browser bar: admin.shopify.com/store/your-store-name → your domain is your-store-name.myshopify.com. 6. STEP 2 — In Sales Wingman, run E-Commerce Import and click Complete Setup. This creates Saved Checkout, Products Added, and Clean Products and writes the dedicated Hulk e-commerce routing values. 7. STEP 3 — Open Connections → Shopify. Pick the agent you just imported (only agents linked to GHL with a knowledge base appear here). 8. STEP 3 — Enter your MyShopify domain (e.g. your-store.myshopify.com — no https://, no www., no trailing slash). 9. STEP 3 — Paste the Admin API access token you copied from Shopify. 10. STEP 3 — Click Validate Credentials. Sales Wingman runs a test API call to confirm the token works and returns the shop name and plan. 11. STEP 3 — When validation passes, click Save Connection. A successful save finishes by replacing the submitted token with a Supabase Vault secret; if the encryption step reports an error, retry rather than treating the connector as ready. 12. After saving, watch the connector status card. The sync runs about every 15 minutes. Each matching checkout is upserted into the GHL location with its cart fields and the abandoned checkout tag, which starts the Hulk workflow. ### Troubleshooting - "Unable to validate Shopify credentials" → confirm domain looks like store-name.myshopify.com (no https://, no www., no trailing slash) and that the access token was copied with no extra spaces. If you lost the token, regenerate it in the Shopify custom app and paste the new one. - "No eligible agents available" → you have not linked an agent to GoHighLevel yet. Run E-Commerce OAuth Import first and ensure the agent has a knowledge base attached, then come back and refresh. - "Plan ‘Basic’ blocked" → Shopify's Basic plan does not expose customer contact data. Upgrade the store to Shopify Advanced or Plus, then save again. - Contacts not syncing → confirm shoppers are actually abandoning carts (test by adding to cart and not checking out), wait at least 15 minutes, and check the connector card for an error message. - Custom fields missing in GHL → run Complete Setup in E-Commerce Import and verify the credential and location match. Authorizing OAuth by itself does not create the fields. ### Shopify plans, APIs & security - Abandoned-checkout contact data requires Shopify Advanced or Plus. Basic only exposes products & collections. - Always create least-privilege custom apps. The four read-only scopes above are the only ones Sales Wingman needs. - Rotate tokens when staff leave or whenever a token is suspected to be exposed — generate a new one in Shopify, then re-save the connector. - Reference: Shopify Admin API → Apps and sales channels → Develop apps. ### FAQ **Q: Why use this instead of GoHighLevel's native Shopify integration?** The Sales Wingman connector is the canonical source for this flow because it writes the exact cart fields and abandoned checkout tag that Hulk expects. A GHL-native alternative would need its own adapter to populate the same contract; that option is not enabled by the current Hulk workflow. Do not run two checkout sources for one location without explicit deduplication. **Q: How often does it check for abandoned checkouts?** Every ~15 minutes. That cadence balances timely follow-up against Shopify's API rate limits. **Q: What Shopify plan do I need?** Shopify Advanced or Plus for contact sync. Basic still indexes products and collections (Shopify KB), but Shopify's API no longer exposes customer PII on Basic, so abandoned-cart contact sync is blocked at save time. **Q: Is my Shopify access token stored securely?** The saved connector token is encrypted at rest with Supabase Vault and decrypted by the sync worker when required. The current save flow briefly submits and stores the token before the encryption RPC completes, so failed saves should be retried and connector security should be hardened before treating this as a strict no-plaintext design. **Q: Can I pause syncing without disconnecting?** Yes. Each connector card has a Pause button that stops syncing while keeping your encrypted credentials. Click Resume any time to start again. Disconnect, by contrast, removes the connector entirely. **Q: Can I connect multiple Shopify stores?** Yes. Each connection ties to its own agent and GoHighLevel location, so you can run as many stores as you have agents. **Q: What happens if I disconnect and reconnect later?** Disconnecting removes your encrypted credentials. When you reconnect, sync resumes from that point forward — historic abandoned checkouts are not re-imported. ### Next steps - Test with a real abandoned checkout in a sandbox store before going live with a client. - Open the Voice AI Dashboard or live agents page for the matching agent to watch the first follow-ups land. - Rotate Shopify tokens when staff leave — generate a new token in the custom app and re-save the connector. Source: https://app.saleswingman.ai/help/settings-shopify.md --- ## Twilio credentials This page is where you bring your own Twilio account. Twilio is the company that gives you phone numbers and connects calls. ### Key points - Screenshots skip live phone numbers on purpose. Open Twilio Settings in-app to view your numbers safely. ### Twilio voice webhooks (summarized) - Point Voice & Fax “A Call Comes In” to your HTTPS webhook with HTTP POST. - Use Twilio Debugger when calls fail immediately — usually 404/500/TwiML errors. - Confirm the number supports voice (not SMS-only) and account balance is positive. ### FAQ **Q: What is Twilio?** Twilio routes phone calls and messages through APIs. **Q: What is TwiML?** TwiML is the instruction sheet Twilio reads to move a call forward. **Q: Why pick a data center region?** Pick the region closest to your callers for clearer audio. ### Next steps - Keep a positive Twilio balance before launches. - Copy Twilio Debugger errors with timestamps when you ask for help. Source: https://app.saleswingman.ai/help/settings-twilio.md --- ## Password & security ### Steps 1. Change your login password on a schedule your company agrees on. 2. Follow IT policy when single sign-on is enabled. ### FAQ **Q: Can I use a password manager?** Yes. Password managers help long random passwords. **Q: What if I am locked out?** Use the reset flow or ask an admin if your org manages access. **Q: How often should I rotate passwords?** Follow your company policy. Many teams rotate every ninety days. ### Next steps - Turn on two-factor authentication if your org provides it. Source: https://app.saleswingman.ai/help/settings-password.md --- ## Billing & voice credits This page is where you manage subscription status, invoices, and voice credit packs. ### Key points - Screenshots were skipped here because invoices can show private email addresses. Use the live Billing page. - Lite plan — Lite accounts have demo caps with a usage meter on Billing. Locked premium features show upgrade prompts throughout the app. - Basic plan — free ($0/mo) with a card on file. Includes Database Reactivation and 48-hour follow-up demos only, capped at 5 agents. Upgrade to Lite ($97/mo) from Billing; this is self-serve Stripe checkout, not Skool. - Moving from Unlimited to Lite — use the "Downgrade My Plan" button on Billing; it walks you through a short downgrade flow before anything changes. ### FAQ **Q: What happens if I run out of voice credits?** Buy more credits or pause voice traffic until you recharge. **Q: How do I cancel or downgrade?** Use the Billing controls — the "Downgrade My Plan" button starts the downgrade flow — or talk with support based on your contract. **Q: What are the Lite demo caps?** Lite limits how many demos you can keep. The usage meter on Billing shows where you stand; upgrade to full access for unlimited demos and the locked features. **Q: How is Basic different from Lite?** Basic is free with a card on file. You can build Database Reactivation and 48-hour follow-up demos only (5 total). Lite ($97/mo) unlocks every demo type, including voice. Unlimited is still a conversation with Dan, not a self-serve checkout. **Q: Where are receipts?** Download them from Billing or your email inbox. ### Next steps - Match credit levels to upcoming client launches. - Export receipts for accounting monthly. Source: https://app.saleswingman.ai/help/settings-billing.md --- ## Saved Work Finished exports you can download again. This page group is where you reopen finished jobs. Saved entries are snapshots. They are not live editors. ### Steps 1. Open Revenue Results under Saved Work for Revenue Rescue outputs. 2. Open Cold Email Completed Jobs for generated batches. 3. Find Voice Demos under AI Voice Agents when you need voice snapshots. ### Troubleshooting - When you need new results, rerun the original tool. Saved entries stay frozen. ### FAQ **Q: Why split locations?** Each tool saves files in the folder that matches its job type. **Q: Can I edit a saved row?** Usually no. Run the tool again for a fresh version. **Q: How long are files kept?** Follow your plan terms and download backups you need forever. ### Next steps - Download CSV backups before you delete anything. - Label exports with client names in your own storage. Source: https://app.saleswingman.ai/help/saved-work.md --- ## Recent Updates See what changed after each release. This page is where you read short release notes so you know what to retest. ### Steps 1. Read newest entries first. 2. When a note mentions a tool you rely on, open that tool. 3. Run a safe internal test before you promise clients a change. ### FAQ **Q: Do updates break workflows?** Sometimes. Always retest mission-critical flows. **Q: Where do I report bugs?** Use the help bubble with steps to reproduce. ### Next steps - Bookmark Recent Updates after big launches. - Tell your team what changed each week. Source: https://app.saleswingman.ai/help/recent-updates.md --- ## Global troubleshooting FAQ Quick checks before you contact support. ### Key points - API keys: remake keys, remove stray spaces, confirm billing at the vendor. - Missing helpers: check folders, archived flags, and GoHighLevel location IDs. - Gray buttons: scroll up for validation messages and finish prerequisite wizard steps. - GoHighLevel auth: create a new Private Integration Token, choose Select All, paste it into CRM Import, and re-import. - Shopify: confirm plan tier covers checkout APIs and token scopes. - Twilio: open Debugger, confirm HTTPS webhooks, confirm numbers allow voice. - Gmail: fix OAuth scopes or admin blocks. - Email sends: verify Email Connections plus Lead Magnet paths. - Moderation: reasons are summaries. Trace IDs inside GoHighLevel when needed. - Voice audio: wired headset, stable Wi-Fi, pick the nearest Twilio region. ### Troubleshooting - Still stuck? Use the help bubble → Send a Message with timestamps and helper IDs. Describe what you expected versus what happened. Remove secrets from screenshots. ### FAQ **Q: What info should I send support?** Include time zone, steps you clicked, helper names, and error text without tokens. **Q: Can support log in as me?** Never share passwords. Use guided screenshare if your policy allows. **Q: Do I retry instantly?** Pause when vendor dashboards show outages. Retrying loops can make things worse. **Q: Where do I check vendor status?** Open OpenAI, Twilio, Shopify, or Google status pages when many tools fail at once. ### Next steps - Retry after five minutes when vendors show incidents. - Gather screenshots with secrets removed. Source: https://app.saleswingman.ai/help/troubleshooting.md --- ## Knowledge bases Teach your helper with store data, websites, or files. This chapter is where you store facts your AI helper can read. A knowledge base is like a folder of approved answers. ### FAQ **Q: Why build a knowledge base before chat agents?** Helpers answer from facts you load. Loading facts first keeps answers closer to your client truth. **Q: Can one helper use more than one knowledge base?** Yes on many flows. Pick the right blend when you import to GoHighLevel or attach stores. **Q: How often should I refresh?** Refresh after big catalog or policy changes so answers stay current. **Q: Do I need code?** No. You connect sources with forms and buttons. ### Next steps - Start with E-com/Website KB based on where your facts live. - Open Manage KBs after your first import. Source: https://app.saleswingman.ai/help/knowledge-base.md --- ## Lead Magnet Public pages, follow-up paths, and stats. This chapter is where you build public opt-in pages and choose how follow-up email or SMS behaves. ### FAQ **Q: Do I need voice setup first?** Match the options on the config page. Some paths expect voice or SMS handoff. **Q: Can I embed the form?** Yes when the page gives you embed code for a site you control. **Q: Is this legal?** You must follow local opt-in laws. Save proof of consent outside Sales Wingman. ### Next steps - Pick your follow-up path before you share links widely. - Connect email senders under Settings. Source: https://app.saleswingman.ai/help/lead-magnet.md --- ## Prospecting tools Cold email, revenue math, events, and LinkedIn limits. This chapter is where you generate outbound ideas and research leads. ### FAQ **Q: Do these tools replace human review?** No. Always read outputs before you send mail or post publicly. **Q: Will my OpenRouter bill rise?** Cold email uses premium models. Watch spend in OpenRouter. **Q: Can I run without LinkedIn access?** Yes for most tools. LinkedIn Activity follows its own plan rules. ### Next steps - Run Revenue Rescue before you pitch speed fixes. - Keep CSV files small and clean. Source: https://app.saleswingman.ai/help/prospecting.md --- ## Customization Brand your workspace and build welcome pages. This chapter is where you control how Sales Wingman looks to your team and how welcome pages look to leads. ### FAQ **Q: Do clients see my theme?** Theme and logo mostly change your logged-in workspace. **Q: Where do welcome links go?** Welcome Page Manager builds links you share with clients. ### Next steps - Upload a square logo for best results. - Preview welcome links before you send them. Source: https://app.saleswingman.ai/help/customization.md --- ## Settings, billing, and connectors The Connections hub, keys, passwords, invoices, email, Shopify, and Twilio. This chapter is where you store secrets and connect vendors. Everything integration-related now starts from the Connections & API Keys hub pinned at the bottom of the sidebar. Treat every field like a password. ### FAQ **Q: Who should access Settings?** Owners and trusted admins. Fewer people means fewer leaks. **Q: Where do I fix billing?** Use Billing for subscription and credits. ### Next steps - Rotate keys after staff changes. - Document which client uses which connector in your own runbook. Source: https://app.saleswingman.ai/help/settings.md