# Tough Tongue AI > AI-powered conversational training platform for high-stakes scenarios like job interviews, sales calls, and leadership coaching. Built for professionals who want to practice and improve their communication skills. ## Platform Overview Tough Tongue AI is your 24/7 training partner for high-stakes conversations. Whether preparing for job interviews, sales calls, salary negotiations, or leadership scenarios, the platform provides three core training approaches: **Three ways to train:** - **Scenario**: One-off role-plays that target a single conversation. Perfect for tomorrow's interview, next week's negotiation, or a call with a difficult customer in an hour. - **Coach**: A topic-focused AI coach that remembers every session, adapts to your style, and handles the menial coaching work—accountability, reflection, progress tracking. - **Course**: A structured learning experience that weaves AI role-plays with expert-led sessions to give you 1:1 attention. **What sets Tough Tongue AI apart:** - **Rich interactive tools**: Our agent uses a powerful reasoning model that can write code, sketch on a whiteboard, create visual cards, and drop in diagrams—making complex ideas easy to understand and enabling hyper-realistic AI roleplays - **Unique end-to-end workflow**: We've built a complete system that helps you prepare with smart agenda creation, guides you through the conversation, and wraps up with detailed debriefs that give you actionable insights - **Truly multimodal understanding**: Beyond creating visual artifacts, our AI reads your facial expressions, tone of voice, and body language—giving you feedback on not just what you say, but how you say it **How it works:** - **Voice AI Coaching Agent**: A low-latency front model holds the mic while a heavyweight reasoning model works in the background, powering those rich interactive experiences - **Creator Studio**: Create custom practice scenarios, coaches, or courses tailored to your specific needs with our simple UI - **Professional Library**: Access an extensive collection of professionally-designed scenarios, coaches, and courses by domain experts --- ## Core Use Cases ### Sales and Negotiation Practice sales pitches, vendor negotiations, and client conversations. Our multimodal agent creates visual cards and diagrams to explain complex strategies in real-time. ### Leadership Coaching Build management skills through realistic scenarios—giving feedback, handling difficult conversations, and leading meetings. The agent remembers your progress across sessions for personalized coaching. ### Job Interview Preparation Excel in high-value interviews with specialized coaching: - **Coding**: Agent accesses code editor, publishes questions, and provides real-time feedback - **System Design**: Interactive whiteboard for architectural diagrams - **MBA & PM**: Tailored scenarios with visual aids for case studies and product questions ### Professional Coaching Our library includes scenarios designed for professional coaching: - Salary Negotiation - Performance Review - Giving and Receiving Feedback - Selling your ideas - Handling conflict at work --- ## API Integration Guide Our API offers a complete lifecycle for building conversational experiences. You start by creating **scenarios** that define the conversation structure and AI behavior. Your end users can then interact with these scenarios, which creates a **session** — a running instance of a scenario. Each user interaction is recorded in the session, and you can retrieve transcripts and detailed results using the **Get Session Details** endpoint. ### API Experience Overview The API workflow involves 4 key parts: 1. Creating API token 2. Using API to create scenario 3. Embedding scenario in your application 4. Managing scenarios and sessions You can use our APIs to build rich, interactive conversational features that enhance your application. The platform provides three types of iframe experiences (full, basic, minimal) and comprehensive session management capabilities. ### API Authentication All API requests require Bearer token authentication: ``` Authorization: Bearer YOUR_API_TOKEN ``` API tokens can be created and managed from the Developer Tools page at `/developer`. ### Base URL All API endpoints use the base URL: `https://app.toughtongueai.com/api/public` ### Developer Tools The platform provides comprehensive developer tools accessible at `/developer`: #### API Key Management - Create and manage API keys with customizable permissions - Token-based authentication for secure API access - Multiple API keys per account for different applications #### API Playground - Interactive testing environment for all API endpoints - Built-in curl command generator with automatic API key insertion - Real-time API response preview - Organized by endpoint categories: Scenarios, Sessions, Featured, Purchases & Subscriptions --- ## API Endpoints ### 1. Scenario Management #### Create/Update Scenarios **Endpoint**: `POST /api/public/scenarios` **Description**: Unified endpoint that handles both creating new scenarios and updating existing ones. **Create New Scenario** (omit `id` field): ```bash curl -X POST https://app.toughtongueai.com/api/public/scenarios \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d '{ "name": "Customer Support Training", "description": "Practice handling difficult customer inquiries and complaints", "user_friendly_description": "Improve your customer service skills through realistic scenarios", "ai_instructions": "You are a frustrated customer with a billing issue. Be demanding but realistic, and escalate your concerns if not addressed properly.", "is_public": true, "is_recording": true }' ``` **Update Existing Scenario** (include `id` field): ```bash curl -X POST https://app.toughtongueai.com/api/public/scenarios \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d '{ "id": "SCENARIO_ID_TO_UPDATE", "name": "Advanced Customer Support Training", "description": "Enhanced customer service training with role-play scenarios", "restrict_analysis": false }' ``` **Response**: ```json { "id": "67bf57553f44cdf6055a8167", "name": "Customer Support Training", "description": "Practice handling difficult customer inquiries and complaints", "user_friendly_description": "Improve your customer service skills through realistic scenarios", "rubrik": null, "is_public": true, "passcode": null, "is_recording": true, "restrict_analysis": false } ``` #### List All Scenarios **Endpoint**: `GET /api/public/scenarios` ```bash curl -X GET https://app.toughtongueai.com/api/public/scenarios \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` **Response**: ```json { "scenarios": [ { "id": "67bf56c23f44cdf6055a8165", "name": "Customer Support Training", "description": "Internal description for your team", "user_friendly_description": null, "ai_instructions": "You are a frustrated customer with a billing issue...", "pdf_context": "", "rubrik": "", "is_public": true, "passcode": null, "is_recording": null, "restrict_analysis": null } ] } ``` #### Get Specific Scenario **Endpoint**: `GET /api/public/scenarios/{id}` ```bash curl -X GET https://app.toughtongueai.com/api/public/scenarios/SCENARIO_ID \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` **Response**: ```json { "id": "689e283d8ff2b6aca6239d8b", "name": "Customer Support Training", "description": "Practice handling difficult customer inquiries and complaints", "user_friendly_description": "Improve your customer service skills through realistic scenarios", "ai_instructions": "You are a frustrated customer with a billing issue...", "pdf_context": null, "rubrik": "Rate based on empathy, problem-solving, and communication clarity", "is_public": true, "passcode": null, "is_recording": true, "restrict_analysis": false, "appearance": { "avatar_url": "https://example.com/avatar.png", "background_color": "#1a1a2e" }, "memory": { "is_memory": true, "memory_type": "conversation_history" }, "session_analysis": { "auto_analysis": true, "analysis_prompt": "Analyze communication effectiveness" }, "ai_model_config": { "provider": "openai", "model": "gpt-4" }, "pricing": { "enabled": false, "stripe_product_id": null, "configs": [] }, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T14:20:00Z" } ``` #### List Featured Scenarios **Endpoint**: `GET /api/public/featured-scenarios` ```bash curl -X GET https://app.toughtongueai.com/api/public/featured-scenarios \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` --- ### 2. Session Management #### List Sessions **Endpoint**: `GET /api/public/sessions?scenario_id=SCENARIO_ID&user_email=optional@email.com` **Parameters**: - `scenario_id` (required): Filter sessions by scenario ID - `user_email` (optional): Filter sessions by user email (supports comma-separated multiple emails) - `from_date` (optional): Sessions created on or after this date (YYYY-MM-DD) - `to_date` (optional): Sessions created on or before this date (YYYY-MM-DD) ```bash curl -X GET 'https://app.toughtongueai.com/api/public/sessions?scenario_id=SCENARIO_ID&user_email=john@example.com' \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` **Response**: ```json { "sessions": [ { "id": "67bf57183f44cdf6055a8166", "scenario_id": "67bf56c23f44cdf6055a8165", "scenario_name": "Customer Support Training", "created_at": "2025-02-26T18:02:00.945000", "completed_at": "2025-02-26T18:02:08.301000", "status": "completed", "user_name": "John Doe", "user_email": "john.doe@example.com" } ] } ``` #### List Sessions with Enriched Data (V2) **Endpoint**: `GET /api/public/v2/sessions` Provides enriched data including evaluation scores, report cards, and analytics URLs. ```bash curl -X GET "https://app.toughtongueai.com/api/public/v2/sessions?scenario_id=SCENARIO_ID&from_date=2024-01-01&to_date=2024-12-31&is_org=false" \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` **Response**: ```json { "sessions": [ { "id": "67bf57183f44cdf6055a8166", "scenario_id": "67bf56c23f44cdf6055a8165", "scenario_name": "Customer Support Training", "created_at": "2025-02-26T18:02:00.945000", "completed_at": "2025-02-26T18:02:08.301000", "status": "completed", "user_name": "John Doe", "user_email": "john.doe@example.com", "duration": 450.5, "duration_minutes": 7.51, "evaluation_score": 8.5, "evaluation_note": "Great performance overall", "report_card": [ {"topic": "Communication Skills", "score": 9.0, "note": "Clear and professional"}, {"topic": "Problem Resolution", "score": 8.0, "note": "Effective solutions provided"} ], "report_card_topics": "Communication Skills;Problem Resolution", "analytics_url": "https://app.toughtongue.ai/analysis/67bf57183f44cdf6055a8166" } ], "page_meta": {"page": 1, "limit": 50, "total": 1} } ``` #### Get Session Details **Endpoint**: `GET /api/public/sessions/{session_id}` ```bash curl -X GET https://app.toughtongueai.com/api/public/sessions/SESSION_ID \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` **Response**: ```json { "id": "67c551e8aa4a6a7575d33955", "scenario_id": "679c838ec41cfcb298fd9ace", "scenario_name": "Customer Support Training", "created_at": "2025-03-03T06:53:28.035000", "completed_at": "2025-03-03T06:54:14.346000", "status": "completed", "transcript_url": "https://scenario-pdf-bucket.s3.amazonaws.com/sessions/transcript.txt", "evaluation_results": { "overall_score": "8/10", "strengths": "Excellent active listening skills and empathetic responses", "weaknesses": "Could improve on solution presentation and follow-up questions", "detailed_feedback": "The participant demonstrated strong communication skills...", "report_card": [ {"topic": "Communication Skills", "score": 7.5, "score_str": "7.5/10", "note": "Demonstrated clear articulation...", "weight": 30} ], "final_score": 7.4 }, "improvement_results": { "improvement_areas": "Solution presentation, follow-up confirmation", "action_items": "1. Present solutions in a clear, step-by-step manner...", "resources": "- **Customer Support Training Guide**: [Link to resource]..." }, "user_name": "John Doe", "user_email": "john.doe@example.com" } ``` #### Analyze Session Data **Endpoint**: `POST /api/public/sessions/analyze` ```bash curl -X POST https://app.toughtongueai.com/api/public/sessions/analyze \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d '{"session_id": "SESSION_ID"}' ``` **Response**: ```json { "evaluation": { "overall_score": "8/10", "strengths": "Excellent active listening skills and empathetic responses", "weaknesses": "Could improve on solution presentation", "detailed_feedback": "The participant demonstrated strong communication skills...", "report_card": [...], "final_score": 7.4 }, "improvement": { "improvement_areas": "Solution presentation, follow-up confirmation", "action_items": "1. Present solutions in a clear, step-by-step manner...", "resources": "- **Customer Support Training Guide**: [Link to resource]..." } } ``` --- ### 3. Access Token Management #### Create Scenario Access Token **Endpoint**: `POST /api/public/scenario-access-token` **Description**: Generate short-lived access tokens (valid for 1 hour) for private scenario embedding. ```bash curl -X POST https://app.toughtongueai.com/api/public/scenario-access-token \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d '{"scenario_id": "SCENARIO_ID"}' ``` **Response**: ```json { "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_at": "2025-02-26T19:02:00.000Z" } ``` --- ### 4. Unified Analytics API **Endpoint**: `GET /api/public/v2/analytics` Get comprehensive analytics data in a single API call. ```bash curl -X GET "https://app.toughtongueai.com/api/public/v2/analytics?is_org=false&start_date=2024-01-01&end_date=2024-12-31" \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` **Response**: ```json { "scenarios": [ { "id": "67bf56c23f44cdf6055a8165", "name": "Customer Support Training", "created_at": "2025-02-26T18:01:38.734000", "is_public": true, "session_count": 15, "total_duration_seconds": 6750.5 } ], "org_dashboard": { "summary": {"total_sessions": 25, "completed_sessions": 23, "total_minutes": 125.5, "wallet_balance": 874.5}, "usage_by_member": [{"user_id": "user_123", "total_minutes": 45.2, "session_count": 8}], "time_series": [{"date": "2024-01-15", "session_count": 5, "total_minutes": 42.3}] }, "member_usage": { "members": [{"user_id": "user_123", "name": "John Doe", "email": "john@example.com", "session_count": 8, "total_minutes": 45.2}] } } ``` --- ### 5. Purchase Management #### List Purchases (One-Time) **Endpoint**: `GET /api/public/purchases` ```bash curl -X GET https://app.toughtongueai.com/api/public/purchases \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" # Filter by user email curl -X GET "https://app.toughtongueai.com/api/public/purchases?user_email=john@example.com" \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` **Response**: ```json { "purchases": [ { "id": "67bf57183f44cdf6055a8166", "user_id": "67bf56c23f44cdf6055a8165", "product_id": "67bf56c23f44cdf6055a8165", "product_type": "scenario", "product_name": "Advanced Customer Support Training", "amount": 29.99, "currency": "USD", "status": "completed", "purchase_date": "2025-02-26T18:02:00.945000", "user_name": "John Doe", "user_email": "john.doe@example.com" } ] } ``` #### List Subscriptions (Recurring) **Endpoint**: `GET /api/public/subscriptions` ```bash curl -X GET https://app.toughtongueai.com/api/public/subscriptions \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` **Response**: ```json { "subscriptions": [ { "id": "67bf57183f44cdf6055a8167", "product_type": "scenario", "product_name": "Advanced Customer Support Training", "amount": 19.99, "currency": "USD", "status": "active", "current_period_start": "2025-02-26T18:02:00.000000", "current_period_end": "2025-03-26T18:02:00.000000", "cancel_at_period_end": false, "canceled_at": null, "user_name": "Jane Smith", "user_email": "jane.smith@example.com" } ] } ``` --- ### 6. Meeting Bot Management #### Schedule Meeting Bots **Endpoint**: `POST /api/public/v2/meeting-bots` Schedule AI meeting bots to join and record online meetings. ```bash curl -X POST https://app.toughtongueai.com/api/public/v2/meeting-bots \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d '{ "scenario_id": "SCENARIO_ID", "meeting_url": "https://meet.google.com/abc-defg-hij", "meeting_provider": "google-meet", "scheduled_ts": "2025-01-15T10:30:00Z", "bot_name": "AI Assistant" }' ``` **Response**: ```json { "success": true, "bots": [ {"bot_id": "67bf57183f44cdf6055a8166", "session_id": "67bf57183f44cdf6055a8167"} ] } ``` **Features**: - **Multi-URL Support**: Schedule multiple bots by separating URLs with newlines - **Meeting Providers**: Supports `google-meet`, `zoom`, `teams` - **Flexible Scheduling**: Set `scheduled_ts` to `null` for immediate scheduling #### List Meeting Bots **Endpoint**: `GET /api/public/v2/meeting-bots` ```bash curl -X GET "https://app.toughtongueai.com/api/public/v2/meeting-bots?status=call_ended&from_date=2024-01-01" \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` #### Delete Meeting Bot **Endpoint**: `DELETE /api/public/v2/meeting-bots/{bot_id}` Only bots with status `pending` or `scheduled` can be deleted. --- ### 7. Phone Call Management (SIP) #### Initiate Phone Call **Endpoint**: `POST /api/public/v2/sip/call` ```bash curl -X POST https://app.toughtongueai.com/api/public/v2/sip/call \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d '{ "scenario_id": "SCENARIO_ID", "phone_number": "+14155551234", "user_name": "John Doe", "scheduled_ts": "2025-01-15T10:30:00Z" }' ``` **Response**: ```json { "success": true, "call_id": "67bf57183f44cdf6055a8166", "session_id": null, "message": "Call scheduled for 2025-01-15T10:30:00Z" } ``` **Features**: - Phone numbers must be in E.164 format (e.g., `+14155551234`) - Omit `scheduled_ts` to call immediately #### Create Phone Call Batch **Endpoint**: `POST /api/public/v2/sip/batch` ```bash curl -X POST https://app.toughtongueai.com/api/public/v2/sip/batch \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -d '{ "scenario_id": "SCENARIO_ID", "entries": [ {"phone_number": "+14155551234", "user_name": "John Doe"}, {"phone_number": "+14155555678", "user_name": "Jane Smith"} ] }' ``` #### List Phone Calls **Endpoint**: `GET /api/public/v2/sip/calls` #### Delete Phone Call **Endpoint**: `DELETE /api/public/v2/sip/calls/{call_id}` --- ### 8. Wallet Balance #### Get Wallet Balance **Endpoint**: `GET /api/public/balance` ```bash curl -X GET https://app.toughtongueai.com/api/public/balance \ -H "accept: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" ``` **Response**: ```json { "available_minutes": 4109.7, "last_updated": "2025-10-08T13:45:39.454000" } ``` --- ## Scenario Field Specifications ### Required Fields - `name`: The name of your scenario - `description`: Internal description for your reference - `ai_instructions`: Instructions for the AI on how to behave in this scenario ### Optional Fields - `id`: Scenario ID for updates (omit for new scenarios) - `user_friendly_description`: Description shown to users - `pdf_context`: Additional context in PDF format (base64 encoded) - `rubrik`: Evaluation criteria - `is_public`: Whether the scenario is publicly accessible (default: true) - `passcode`: Optional passcode protection - `is_recording`: Whether to record conversations - `restrict_analysis`: Whether to restrict analysis features ### Session Analysis Configuration - `session_analysis.admin_email`: Email address to send analysis reports to - `session_analysis.is_auto_analysis`: Whether to automatically trigger analysis when session ends - `session_analysis.is_auto_submit`: Whether to automatically submit session data without user interaction ### Advanced Features #### Monetization - `pricing.enabled`: Whether scenario requires payment (default: false) - `pricing.configs`: Array of price configurations - `amount`: Price amount (e.g., 9.99) - `currency`: Currency code (e.g., "USD", "EUR") - `billing_interval`: null for one-time, or "month", "6_months", "year" for subscriptions - `is_default`: Whether this is the default price shown to users #### Memory & AI Customization - `memory.is_memory`: Enable AI memory to remember conversations - `ai_model_config.provider`: AI provider ("Ocean", "Galaxy", or "LiveKit") - `ai_model_config.model`: Model tier ("medium", "medium-stable", "medium-nc", "medium-stable-nc") #### Appearance Customization - `appearance.voice`: AI voice (Aoede, Charon, Fenrir, Kore, Puck) - `appearance.avatar_url`: Custom avatar image URL - `appearance.language_code`: Speech language (default: "en-US") #### Tools Configuration - `tools_config.tools`: Object containing tool configurations - Available tools: timer, whiteboard, card, mcq, mermaid, pdf_upload, memory_search, knowledge_base_search, end_session, google_slides, image_generation, notepad --- ## Embedding Scenarios ### Three Types of Iframe Experiences #### Basic Embed (Standard size) ```html ``` #### Full Embed (Complete experience) ```html ``` #### Minimal Embed (Compact version) ```html ``` ### Embedding Private Scenarios For private scenarios, generate an access token and use it in the iframe URL: ```html ``` ### Pre-populating User Information ```html ``` **Available User Parameters:** - `userName`: The user's full name - `userEmail`: The user's email address ### Customization Options Add these query parameters to customize your embed: - `name`: Custom conversation name (e.g., `?name=Support%20Training`) - `color`: Accent color (e.g., `?color=violet-500`) - `showPulse`: Toggle pulse animation (e.g., `?showPulse=false`) - `background`: Background color (e.g., `?background=black`) - `hidePoweredBy`: Hide branding (e.g., `?hidePoweredBy=true`) - `maxDuration`: Auto-terminate after specified seconds (e.g., `?maxDuration=600`) - `voice`: Override AI voice (e.g., `?voice=Aoede`) - `avatarUrl`: Custom avatar image URL - `avatarId`: Select from numbered default avatars - `restoreSession`: Resume a previous session (e.g., `?restoreSession=SESSION_ID`) ### Dynamic Variables For scenarios using dynamic variables in their AI instructions, pass variables with `t_` prefix: ```html ``` --- ## Iframe Event Handling Embedded scenarios emit events via `window.postMessage` API. ### Available Events - **onStart**: Emitted when a session begins (agent is connected) - **onStop**: Emitted when a session ends (agent is disconnected) - **onSubmit**: Emitted when post-session data submission is completed ### Event Payload Structure ```javascript { event: 'onStart' | 'onStop' | 'onTerminated' | 'onSubmit', sessionId: string, timestamp: number // Unix timestamp in milliseconds } ``` ### Event Listener Implementation ```javascript window.addEventListener('message', (event) => { const data = event.data; if (data && data.event) { switch (data.event) { case 'onStart': console.log('Session started:', data); break; case 'onStop': console.log('Session stopped:', data); break; case 'onSubmit': console.log('Submission completed:', data); break; } } }); ``` ### Sending Data to Iframe (Session Notes) ```javascript const iframe = document.querySelector('iframe#archie-embed'); iframe.contentWindow.postMessage( { type: 'session_notes', notes: [ { text: 'Evaluator: Strong opening, clear articulation', timestamp: Date.now(), source: 'evaluator' } ] }, '*' ); ``` --- ## Google Meet Agent Tough Tongue AI agents can join Google Meet calls automatically. Perfect for teams that are understaffed, need help with screening calls, want to collect customer data, or conduct training sessions. ### Getting Started 1. **Create Your Scenario**: Navigate to your scenario library and create a new scenario 2. **Access the Meeting Bot**: Go to Library → Scenario → Meeting Bot 3. **Choose Your Mode**: Select between Custom Meeting Mode or Calendar Integration Mode ### Two Modes Available #### Custom Meeting Mode - Provide the meeting URL or Google Meet link - Specify when you want the bot to join - Perfect for one-off meetings or ad-hoc meetings #### Calendar Integration Mode - Grant access to your calendar - Optionally specify a keyword filter (e.g., "interview 101") so the bot only joins specific meetings - Prevents the agent from joining meetings where you don't want it present ### Features - Bot automatically generates transcripts and analysis - Works best in quiet environments with one speaker at a time - Currently supports Google Meet (Zoom and Microsoft Teams coming soon) ### Pricing - **Through August 2025**: Free for all users - **After August 2025**: Available on Premium ($20+) plans and Business plans ($99+) ### Limitations 1. **Background noise sensitivity**: Works best in quiet environments 2. **Multiple speakers**: Performs best when one person speaks at a time 3. **Platform support**: Currently limited to Google Meet --- ## Phone Integration Connect your phone numbers to Tough Tongue AI so your voice agents can make and receive real phone calls. ### What You Can Do - AI agents place outbound calls to any phone number - Make batch calls - upload a CSV and call multiple numbers at once - AI agents answer calls on your phone numbers (coming soon) ### What You'll Need - A phone number from a telephony provider (Twilio, Plivo, Exotel, Telnyx, Vonage, etc.) - Access to your provider's dashboard - 10-15 minutes to complete the setup ### Setup Process #### Step 1: Create a SIP Trunk Go to your telephony provider's dashboard and create a new SIP trunk. #### Step 2: Set Up Termination (For Outbound Calls) - Create credentials (SIP Username and Password) - Save your Termination URI #### Step 3: Assign Your Phone Number Link your phone number(s) to the SIP trunk. #### Step 4: Connect in Tough Tongue AI 1. Go to **Scenario Details** → **Phone Call** → **SIP Configuration** 2. Fill in: Phone Number (E.164 format), Termination URI, SIP Username, SIP Password 3. Click **Save** ### Making Calls #### Single Call From your scenario's Phone Call page, enter the phone number and click to place the call. #### Batch Calls Upload a CSV file with columns: `phone_number`, `user_name` (optional) --- ## Leadership Development with AI Transform leadership skills through practice with AI-powered realistic simulations. ### Scenario Library - **Essential Workplace Conversations**: Performance reviews, conflict resolution - **AI Career Counseling**: A structured 5-session program - **Dealing with Stress at Work**: Managing workplace stress - **Manager's Guide: Performance Review Simulations**: Practice challenging performance conversations - **Negotiations**: Salary discussions, project agreements, high-stakes deals - **Idea Pitches**: Effectively present and sell your ideas ### Custom Collections Create custom scenarios that address your specific leadership challenges. Work alongside expert coaches to design practice modules. ### Key Benefits - **Practice Anytime**: Available 24/7 before important meetings - **Realistic Simulations**: Video input enables feedback on verbal and nonverbal cues - **Cost-Effective and Flexible**: Avoid high coaching fees and scheduling conflicts - **Tailored Development**: Use pre-made scenarios or create custom collections --- ## Sales Coaching with AI Tough Tongue AI helps sales teams practice and improve through AI-powered roleplay and coaching. ### For GTM Enablement Teams Get high-quality, consistent coaching across every rep without adding headcount. Create scenarios once and deploy to hundreds of reps instantly. ### For Leadership Track who's practicing, what they're working on, and how they're improving. See usage metrics across the org. ### For Sales Reps Build confidence and muscle memory before high-stakes calls. Practice objection handling until responses become natural. ### Pre-Built Agents - **Technical Cold Call Simulation**: High-pressure cold calls with skeptical prospects - **B2C Financial Objection Handling**: Interactive drill for handling customer objections - **Retail Sales Floor Training**: AI-generated images showing customer scenarios - **Wealth Management Product Training**: Comprehensive training with embedded Google Slides ### Features - **Multimodal Artifacts**: Generate images, navigate Google Slides, use notepad, draw diagrams - **Memory**: AI remembers past sessions for coaching continuity - **Agentic Feedback**: Analysis of voice tone, pacing, confidence, and presence --- ## Create Your Coaching Course Turn your expertise into an engaging AI-enhanced coaching experience. ### Step-by-Step Guide #### 1. Set Up Your Collection - Sign in and navigate to **Library** - Click **Create Collection** and provide name, description, visibility settings #### 2. Add Your Course Content **AI Scenarios**: Interactive sessions where AI agent engages learners **Website or Video Links**: URLs from Loom, YouTube, or other platforms #### 3. Organize Your Content - Arrange content in the order learners should experience it - Start with introductory video, follow with AI scenarios - Save the order to lock in your sequence #### 4. Enhance Learning with Interactive Scenarios - Use "Create Custom" option for tailored scenarios - Attach PDFs, blog links, or Google Docs for additional context #### 5. Publish and Share Your Course - Double-check all content and order - Share collection link with students - Use "Play All" feature for seamless experience --- ## Conversation Strategies ### Talkative Mode AI agent leads the conversation and will continue with its agenda even if the human participant remains silent. Ideal for interview practice. ### Quiz Mode After completing the session, immediately jumps to analysis. No avatar display for simple AI-conducted quizzing experience. ### Conductor Mode Instruct the AI to perform specific actions at precise moments during the conversation. Set timed messages including ending the call at a predetermined time. --- ## API Best Practices ### Sample Repositories - **Simple Course**: Uses iframe, lifecycle events, and analysis: [repo](https://github.com/tough-tongue/ttai-simple-course/tree/main) - **AI Course Creation**: Uses OpenAI to create scenarios: [repo](https://github.com/ajitesh123/tough-tongue-starter) ### 1. Picking the Right Type of Iframe **Full Iframe**: Complete experience with recording and detailed analysis **Basic Iframe**: Interactive experience with avatar (recommended for most cases) **Minimal Iframe**: Best for glimpses or previews on landing pages By default, basic and minimal iframes don't transcribe sessions. Enable transcription option if evaluation is needed. ### 2. Customizing Your Scenario Use the Advanced Scenario Creator UI for: - **Avatar Look & Voice**: Pick from different avatars and voices - **Conversation Strategy**: Talkative Mode, Quiz Mode, or Conductor Strategy ### 3. Delivering an End-to-End Experience 1. **Create a Scenario**: Design in Scenario Editor, embed via iframe 2. **Fetch Session Details**: Get session ID from iframe lifecycle events 3. **Post Session Analysis**: Use "scenario analyze" API for complete analysis ### 4. User Management Map sessions to users by passing name and email as query parameters. Display user experiences and transcripts in your own UI. ### 5. Purchase and Monetization Attach dollar values to scenarios. Use LIST purchase API to track revenue. --- ## Session Management ### Session Duration & Limits - **Guaranteed Time**: 12 minutes of uninterrupted session time - **Token Limits**: High token consumption scenarios may reach limits sooner - **Automatic Retries**: Connection issues trigger automatic retries with backup models - **Smart Recovery**: Agent acknowledges interruptions and continues seamlessly ### Session Restoration - Restore disconnected sessions from session analysis page - Continue sessions that exceeded the token limit - Resume sessions disconnected due to internet issues - Use `?restoreSession=SESSION_ID` in iframe embeds ### Data Management - Delete session data permanently using delete button on session analysis page - All session data (recordings, metadata, analysis) can be permanently removed --- ## Language Support ### User Language Settings 1. Enable "AI language assistance" in settings 2. Select preferred language 3. AI responds in chosen language across all conversations ### For Scenario Creators 1. **Voice Accent**: Set language code (e.g., "fr-FR") in Appearance section 2. **Response Language**: Include explicit language instructions in prompt --- ## Creating Effective Scenarios ### Good Prompt Writing Tips - Name scenarios as [Coach Name]:[Situation] (e.g., "PM Interviewer: Analytics Question") - Use "You are [Role]" to set the AI agent role with tone specifications - Provide clear agenda with list of questions and follow-up instructions - Include context through PDF documents, blog post links, or YouTube video links - For interviews, provide specific scoring criteria ### Time Management - AI naturally disconnects when agenda items are covered - Use `?maxDuration=600` for fixed time limits (in seconds) - Use Conductor Mode for precise timing control --- ## Troubleshooting ### Audio Issues - **Chrome**: Click lock/camera icon in address bar or use chrome://settings/content/microphone - **Safari**: Safari menu → Preferences → Websites → Microphone → Allow - **Firefox**: Click permissions icon in address bar → Allow microphone ### Session Issues - Sessions can be restored from the session analysis page - Delete session data permanently using delete button - Chrome recommended for best experience (Safari has recording issues) --- ## Business Integration ### Subscription Reimbursement Available for Google employees as part of job-related learning benefits. Download official reimbursement letter from Resources page. ### Transfer Minutes - Bulk Purchase & Team Distribution - Buy minutes in bulk (e.g., 2000 minutes) - Transfer specific amounts to team members via email - Team members sign in and start practicing without payment setup - Currently invite-only - email help@getarchieai.com for access ### Organizations - Create organizations with custom branding and subdomain URLs - Team member management with role-based permissions - Granular access control (View only, View all sessions, Edit) - Centralized billing and creator analytics - Developer integration with API keys --- ## Secure Single-Use Links For scenarios requiring controlled, secure access (interviews, research studies): ### How it works 1. Navigate to scenario's detail page 2. Click "Share" → "Generate Single-Use Link" 3. Configure options: Enable Artifact Panel, Prompt for User Info 4. Copy and share the generated link ### Security features - **Single-use protection**: Each link can only be used once - **Time-limited access**: Private scenarios include 24-hour access tokens - **Session tracking**: All sessions tracked in your dashboard --- ## Release Notes & Latest Features (2025) ### December 2025 - **Session Restore for Iframe Embeds**: Resume interrupted sessions with `?restoreSession=SESSION_ID` - **Generate Share Links**: Create single-use or general reusable links with security controls - **Hybrid Avatars**: Upload custom thinking and speaking video states ### November 2025 - **Phone Call Integration**: AI agents on real phone lines via SIP - **Live Avatar with Lip-Sync**: Realistic avatars with synchronized lip movements - **Organizations**: Manage teams with granular access control and centralized billing - **Secure Single-Use Links**: One-time links for interviews and research ### October 2025 - **Composite Scenarios**: Multi-stage learning workflows - **Immersive Avatar Mode**: Full-screen avatar experience - **Realistic Cold Call Experience**: Ring tones and instant hang-ups ### September 2025 - **Nano Banana Model**: AI image editing and faster generation - **Google Meet Agent**: AI joins your meetings autonomously - **AI Image Generation**: Visualize practice scenarios - **Edit with AI**: Accelerated scenario creation - **Knowledge Base**: Upload documents for AI to reference ### August 2025 - **Playback Speed Control**: 0.5x to 2x speech speed - **Tracks & Labels**: Career-focused learning paths - **Daily Streaks**: Track practice consistency ### July 2025 - **Google Slides Integration**: AI navigates slides during conversations - **Standard Plan & Annual Subscriptions**: More accessible pricing - **Refer & Earn Program**: Get 25 free minutes - **Courses Page**: Structured learning experiences ### Earlier in 2025 - **Dynamic Variables**: Personalize scenarios with {{variables}} - **Memory Management**: Control what AI remembers - **Tool Configuration**: Enable/disable specific tools per scenario - **Multi-Language Coding**: Python, Java, C++ support - **Email Analysis Reports**: Automated analysis delivery --- ## Limitations - **Conversation Duration**: Limited to 10-12 minutes per session - **Browser Compatibility**: Chrome recommended (Safari has recording issues) - **Google Meet Agent**: Background noise sensitivity, works best with one speaker - **Platform Support**: Currently Google Meet only for meeting bots (more coming) --- ## Support & Resources ### Contact Information - **Technical Support**: help@getarchieai.com - **Demos and Consultations**: https://cal.com/ajitesh/30min - **Coach Community**: https://discord.gg/NfTPT3HsSj ### Sample Repositories - **Simple Course**: [repo](https://github.com/tough-tongue/ttai-simple-course/tree/main), [deployment](https://tough-tongue-starter-course-yn2p.vercel.app/) - **AI Course Creation**: [repo](https://github.com/ajitesh123/tough-tongue-starter), [deployment](https://tough-tongue-starter.vercel.app/) ### Additional Resources - **API Documentation Video**: [Loom walkthrough](https://www.loom.com/share/d9ae326da7b54f2f8d84120bd3399d0d) - **Coaching Platform Demo**: [Loom demo](https://www.loom.com/share/04a13f04a22b4547bf0dd9bd99a9db62) - **15-minute Consultation**: [Book here](https://cal.com/ajitesh/15min) --- This comprehensive documentation covers all aspects of the Tough Tongue AI platform, from basic usage to advanced API integration and technical implementation details.