# Welcome to BuildBetter
Source: https://docs.buildbetter.ai/index
Welcome to BuildBetter's documentation. Learn how to use our platform to get the most out of your conversations.
# Why We're Here
**BuildBetter was born from a vision:** AI should empower teams, not replace them.
In 2020, when GPT technology was just emerging, we saw something revolutionary—technology that could finally help with creative problems, not just pattern matching. We became one of the first B2B power tools to harness these models, not to automate jobs away, but to elevate what humans can accomplish.
> "How can we remove the operational work that product teams and the teams at large have to do so that the only thing they have to focus on is really that high level creative processing that only really humans can do?"
This question drives everything we build.
## Our Core Principles
We believe AI should handle the operational overhead so your team can focus exclusively on what humans do best—creative thinking and strategic decision-making. BuildBetter exists to amplify human potential, not diminish it.
Every meeting recorded, customer call analyzed, and interview processed makes your organization's knowledge base richer and more insightful. The true magic of BuildBetter emerges as you add more data—internal meetings, customer calls, interviews—creating a compounding effect that elevates your entire organization.
BuildBetter stands apart by blending internal and external data in one place. We're not just a qualitative analysis tool or a ChatGPT instance with your company knowledge. We're a complete operational system that captures everything—from Slack conversations to calls to emails—creating a single source of truth.
We believe insights should flow freely. That's why BuildBetter uses usage-based pricing instead of per-seat licensing. Everyone at your company gets access—not just select teams. This seemingly small difference unlocks tremendous value, breaking down information silos.
Your data belongs to you. Period.
* Your data is never used to train any models
* Your data is never used to train our models
* SOC 2 Type 2 compliance
* GDPR compliance
* HIPAA compliance (when needed)
We've done everything to ensure BuildBetter is personalized for your organization while maintaining the highest security standards.
## Getting Started with BuildBetter
Learn the essentials and set up your workspace
Essential actions available from your dashboard
Create your account and set up your workspace
## Explore Our API
Integrate with BuildBetter using our GraphQL API. Access calls, signals, documents, and more.
## Setting up your account
Start answering the question "What are our customers asking for that we aren't building?" by inviting your team and syncing your data.
Unlimited seats; invite your whole org
Analyze internal and external meetings
Sync Hubspot or Salesforce data to/from BuildBetter
## Security and Privacy settings
BuildBetter has privacy and compliance that is best-in-class.
Learn about our security measures on our Trust Portal.
Review our policy on AI transparency and data usage.
Access our DPA and other compliance documents.
Configure permissions and sharing settings for your workspace.
## Join Us on the Journey
We're just beginning to explore what's possible when we combine human creativity with AI-powered insights. BuildBetter isn't just a product—it's a new way of working that lets your team focus on what truly matters.
Welcome to BuildBetter. We're excited to see what you'll build.
# Clustering & Insights
Source: https://docs.buildbetter.ai/pages/Analytics/clustering-insights
AI-powered theme detection and visual analytics for customer feedback
**About "Clustering"**: In BuildBetter, "Clustering" refers to both the AI-powered thematic grouping of signals AND the dashboard/visualization system. When you see "Clustering" or "Clusters" in the navigation, it's where you'll find signal analysis dashboards, visualizations, and AI-generated theme reports.
BuildBetter's Clustering feature uses advanced AI to automatically group similar customer feedback into themes, revealing patterns and trends you might otherwise miss. It also provides powerful dashboards and visualizations to explore your signal data. Transform thousands of individual signals into actionable insights with AI analysis and visual analytics.
## Understanding Clustering
Clustering automatically organizes your customer feedback into meaningful themes:
Machine learning identifies similar feedback and groups them by semantic meaning, not just keywords
Clusters update in real-time as new feedback arrives, keeping insights current
Automatically identifies rising and declining themes to spot emerging issues early
Rich dashboards with 15+ visualization types for different analytical perspectives
## How Clustering Works
As signals are extracted from calls, chats, and feedback, the AI analyzes their semantic content
Similar feedback is grouped into clusters based on meaning, creating themes like "onboarding issues" or "pricing concerns"
Clusters evolve as more data arrives, becoming more accurate and nuanced over time
AI generates reports for each cluster with key insights, root causes, and recommendations
Clusters require a minimum of 3 similar signals to form, ensuring themes represent actual patterns rather than one-off feedback.
## Navigating Clusters
### Cluster List View
Access your clusters through the main clustering page:
Browse all identified themes with:
* Cluster names and descriptions
* Signal counts and growth indicators
* Trending badges for rising themes
* Search and filter capabilities
Focus on clusters with positive growth:
* Percentage increase indicators
* Time period comparisons
* Quick access to emerging issues
* Priority sorting by growth rate
Star important clusters for quick access:
* Monitor critical themes
* Track resolution progress
* Share with team members
* Create focused dashboards
### Cluster Detail Pages
Click any cluster to explore in-depth:
Each cluster includes timestamped reports with:
* **Key Insights**: Main patterns identified
* **Root Cause Analysis**: Underlying issues
* **Business Impact**: How this affects your company
* **Recommendations**: Suggested actions
* **Trend Analysis**: Growth or decline patterns
Representative feedback from real customers:
* Direct quotes with context
* Source attribution with timestamps
* Click-through to original recordings
* Sentiment indicators
Understand who and what is affected:
* Company breakdown
* User persona distribution
* Revenue impact potential
* Product area mapping
## Creating Custom Dashboards
Build visual analytics dashboards tailored to your needs. Access this from the **Clustering** section in the main navigation.
**Finding Dashboards**: Navigate to Signals or Clustering in BuildBetter to access dashboard creation and visualization tools.
### Dashboard Builder
Go to Clustering section and click "Customize Dashboard" to enter edit mode
Choose from 15+ card types and drag them onto your dashboard
* Select data source and filters
* Choose visualization style
* Set card width (full, half, third, quarter)
* Add titles and descriptions
Drag and drop cards to create your ideal layout
Save your dashboard and share the URL with teammates
### Trends Category
The card picker includes a dedicated **Trends** category for time-based views. Use these cards when you want to see whether a cluster, saved search, or filtered signal set is changing over time rather than just reading a point-in-time total.
| Trend Card | What It Shows | Best For |
| - | - | - |
| **Volume Trend** | Signal count over time | Spotting rising themes or declining issue volume |
| **Sentiment Trend** | Average sentiment over time | Seeing whether feedback is getting more positive or negative |
| **Severity Trend** | Average severity over time | Monitoring whether issues are becoming more urgent |
| **Impact Distribution** | Impact mix over the selected period | Comparing revenue, adoption, satisfaction, retention, and efficiency impact |
Each trend card supports **7, 30, 90, and 365 day** ranges. The selected range is saved per card, so one dashboard can show a 7-day operational view next to a 90-day planning view.
### Creating Dashboards from Taxonomy
Quickly create pre-configured dashboards based on your product taxonomy. This is the fastest way to set up focused analytics for specific product areas.
Click "New Clustering" and select "Use Clustering Template"
Select the "From Taxonomy" tab to see your product hierarchy
Browse your taxonomy tree and check the product areas you want to analyze. You can select multiple nodes to create multiple dashboards at once.
Click "Create Clustering" to generate dashboards. Each selected node creates a separate dashboard pre-configured with:
* Filters scoped to that taxonomy node
* External customer feedback only (by default)
* Last 30 days of data
* Standard visualization cards
**Default Dashboard Cards:**
* Total Signals count
* Total Clusters count
* Average Sentiment score
* Average Severity score
* Top Clusters by Signal Count (bar chart)
* Customer Voice by Cluster (quotes)
* Cluster Details
Creating dashboards from taxonomy is ideal for product managers who want to quickly set up monitoring for their product areas without manual configuration.
### Dashboard Templates
In addition to taxonomy-based creation, you can also use pre-built templates for common use cases:
| Template | Description |
| - | - |
| Feature Requests | Track what customers are asking for |
| Churn Issues | Monitor signals indicating potential churn |
| Customer Feedback | General customer sentiment and feedback |
| Customer Issues | Track reported problems and complaints |
| Adoption Issues | Monitor onboarding and adoption challenges |
| Competitors | Track competitive mentions |
| Testimonials | Collect customer success stories |
| Compliments | Positive feedback and praise |
### Available Visualizations
* Top clusters by volume
* Cluster growth comparisons
* Category breakdowns
* Time period analysis
* Persona distribution
* Sentiment breakdown
* Category allocation
* Company distribution
* Sentiment distribution curves
* Severity patterns
* Bias analysis
* Emotion distributions
* Cluster activity over time
* Cross-category correlations
* Temporal patterns
* Intensity mapping
### Advanced Visualizations
Track cluster evolution:
* Signal volume over time
* Growth rate trends
* Seasonal patterns
* Event correlations
Deep analytical views:
* Violin plots for distributions
* Box plots for ranges
* Scatter plots for correlations
* Regression analysis
Key performance indicators:
* Total signal counts
* Average sentiment scores
* Growth percentages
* Impact metrics
## Quick Filters
Speed up your analysis with pre-built filter templates that apply common filter combinations with one click.
### Available Quick Filters
* **External Only**: Signals from customers and external users
* **Internal Only**: Signals from your internal team
* **Feature Requests**: What customers are asking for
* **Customer Complaints**: Issues raised by customers
* **High Severity**: Critical customer issues
* **Urgent Issues**: High severity combined with negative sentiment
* **Testimonials**: Customer success stories
* **Compliments**: Explicit positive mentions
* **Churn Risk**: Signals indicating potential churn
* **Adoption Issues**: Signals about product adoption challenges
* **Expansion Opportunities**: Signals indicating growth potential
* **Low Bias**: Unbiased, objective feedback
* **Internal Blockers**: Issues raised by your team
### Using Quick Filters
Quick filters appear as clickable buttons above your signal list or clustering dashboard. Click any button to instantly apply that filter combination to your current view.
Quick filters can be combined with additional manual filters using the query builder for even more specific analysis.
## Filtering and Analysis
### Query Builder
Create sophisticated filters using the visual query builder:
Type queries in plain English:
* "Show negative feedback about onboarding from last month"
* "Find pricing concerns from enterprise customers"
* "What are new users complaining about?"
The AI converts these to structured filters automatically.
Build complex queries with:
* AND/OR logic combinations
* Date range selections
* Sentiment thresholds
* Company/persona filters
* Custom property matching
Save frequently used filter combinations:
* Name your filter sets
* Apply with one click
* Share with teammates
* Use across dashboards
## Cluster Reports
### Understanding AI Reports
Each cluster generates comprehensive reports containing:
**Trend Analysis**
* Current period volume vs. previous
* Percentage change calculations
* Growth trajectory predictions
* Seasonal pattern identification
**Key Insights**
* Main themes identified
* Common pain points
* Satisfaction drivers
* Emerging concerns
**Root Cause Analysis**
* Underlying issues identified
* Contributing factors
* System dependencies
* Process breakdowns
**Business Impact**
* Revenue implications
* Churn risk assessment
* Adoption barriers
* Competitive threats
### Using Reports Effectively
Check trending clusters weekly to catch emerging issues early
Copy report content or share links with stakeholders
Monitor how clusters evolve after taking action
Use recommendations to drive product and process improvements
## Best Practices
**Monitor trending clusters weekly**: Early detection of emerging issues prevents escalation
**Create role-specific dashboards**: Product, support, and sales teams need different views
**Combine filters thoughtfully**: Layer time, sentiment, and persona filters for deeper insights
**Act on insights**: Use cluster reports to drive concrete improvements
**Share visualizations**: Export dashboards for presentations and team alignment
## Common Use Cases
### Product Management
* Track feature request themes
* Identify usability issues
* Monitor adoption barriers
* Prioritize roadmap items
### Customer Success
* Spot at-risk accounts early
* Identify common support themes
* Track satisfaction trends
* Prevent churn patterns
### Marketing & Sales
* Understand objections
* Track competitive mentions
* Identify value propositions
* Monitor market trends
### Leadership
* Strategic theme tracking
* Quarterly trend analysis
* Department performance
* Market intelligence
**Data Requirements**: Clustering works best with 100+ signals. Smaller datasets may not form meaningful clusters.
## Dashboard & Visualization Features
The Clustering section provides BuildBetter's full dashboard and visualization capabilities:
* **Real-time Updates**: Dashboards refresh as new signals arrive
* **Interactive Filtering**: Cross-filter across all visualizations
* **Export Options**: Save dashboards as PNG, PDF, or CSV
* **Shareable Links**: Collaborate with teammates on live dashboards
* **15+ Chart Types**: Time series, ridge charts, heatmaps, KPIs, and more
* **Drag-and-drop Builder**: Create custom layouts
Think of "Clustering" as your signal analytics workspace - it's where you'll find both AI theme grouping AND dashboard/visualization tools.
Clustering transforms overwhelming amounts of feedback into clear, actionable themes, helping you understand what matters most to your customers at scale.
The power of clustering lies in its ability to surface insights you didn't know to look for, turning raw feedback into strategic intelligence that drives better decisions.
# Agent Chat (BETA)
Source: https://docs.buildbetter.ai/pages/Chat/agent-chat
AI-powered research agent that investigates your data, plans analysis, and delivers evidence-backed insights
Agent Chat is BuildBetter's next-generation AI assistant. Instead of simple Q\&A, it acts as a research agent—planning multi-step investigations, searching across your entire workspace, and delivering comprehensive analysis with every claim backed by evidence you can verify.
Agent Chat can also help manage tracked items and projects. It can create, update, merge, promote, and organize related evidence and links when your workspace has the required permissions. Destructive project-management actions require explicit confirmation before they run.
## What Makes Agent Chat Different
The agent plans its approach, searches multiple data sources, cross-references findings, and builds a complete picture before responding
Every insight includes clickable citations to the original call, signal, or document so you can verify and dig deeper
Run multi-phase investigations that analyze patterns across hundreds of conversations, not just surface-level keyword matching
Ask questions scoped to a specific person, company, document, folder, or signal for precise, focused results
## How It Works
When you ask Agent Chat a question, it doesn't just search and summarize. It:
1. **Plans the investigation** — Breaks your question into research steps and determines which data sources to query
2. **Searches your workspace** — Queries calls, signals, documents, people, and companies across your entire dataset
3. **Cross-references findings** — Connects patterns across different sources, time periods, and customer segments
4. **Synthesizes results** — Delivers a structured analysis with evidence, not just a list of matches
5. **Cites everything** — Every claim links back to the original source so you can click through and verify
You can watch the agent work in real-time. As it researches, you'll see which tools it's using and what data it's pulling—full transparency into how it reaches its conclusions.
## What You Can Do
### Deep Customer Research
Go beyond simple searches to understand what's really happening with your customers:
* "What are the top 5 reasons enterprise customers churned in Q4, and what did they say in their last calls?"
* "Compare how our biggest accounts talk about pricing versus how mid-market customers do"
* "What patterns do you see across all calls with \[Company Name] over the past 6 months?"
### Cross-Source Analysis
The agent connects insights across your entire workspace:
* "What feature requests keep coming up in both support tickets and sales calls?"
* "Find every time a customer mentioned \[Competitor] and analyze the context"
* "What commitments did our team make to customers this month that haven't been tracked?"
### Person & Company Intelligence
Scope your questions to specific people or organizations:
* "What has \[Person Name] talked about across all their calls?"
* "Give me a complete picture of \[Company Name]'s feedback history"
* "What are the common themes from calls with our healthcare customers?"
### Strategic Analysis
Ask complex questions that require connecting multiple data points:
* "What's the sentiment trend across our top 20 accounts over the past quarter?"
* "Which product areas generate the most negative feedback and what are the root causes?"
* "Based on recent calls, what should our product team prioritize next quarter?"
## Scoping Your Questions
Agent Chat can focus its research on specific contexts for more precise answers:
| Scope | How to Use | Example |
| - | - | - |
| **Person** | Ask about a specific contact | "What has Sarah Chen discussed across all her calls?" |
| **Company** | Focus on one organization | "Summarize all feedback from Acme Corp" |
| **Document** | Analyze a specific document | Drag a document in and ask questions about it |
| **Folder** | Research a collection | Drag a folder in to analyze everything inside it |
| **Signal** | Dig into a specific insight | Click into a signal and ask for deeper context |
| **Call** | Deep-dive a recording | Drag a call in for detailed transcript analysis |
You can also drag multiple items into the chat to analyze them together—compare calls, cross-reference documents, or find patterns across a collection.
## Tools the Agent Uses
The agent has access to a suite of research tools that it selects automatically based on your question:
* **Workspace Search** — Full-text and semantic search across all your data
* **Signal Analysis** — Query and filter your extracted signals by any property
* **Transcript Analysis** — Deep reading of call transcripts with speaker attribution
* **People & Company Lookup** — Find and cross-reference contact and organization data
* **Document Reading** — Analyze the full content of any document in your workspace
* **Pattern Detection** — Identify trends, anomalies, and recurring themes
The agent decides which tools to use based on your question. You don't need to specify how it should research—just ask what you want to know.
## Getting Started
Navigate to **Chat** in the left sidebar or start a new chat from the dashboard
Ask something that requires investigation—the more specific, the better the results. For example: "What are the biggest pain points our enterprise customers raised this month?"
See which tools the agent uses, what data it queries, and how it builds its analysis in real-time
Click any citation to jump to the original call timestamp, signal, or document. Verify findings and explore further.
Refine your analysis with follow-up questions. The agent maintains full context from your conversation.
## Tips for Better Results
**Be specific about what you want to know**: "What pricing objections came up in enterprise deals last quarter?" beats "Tell me about pricing"
**Scope when you can**: If you're researching a specific customer, mention them. If it's about a product area, name it.
**Ask follow-ups**: The agent remembers your full conversation. Build on previous answers to go deeper.
**Use it for prep**: Before a customer call, ask the agent to summarize everything that customer has discussed, flagged, or requested.
**Verify with citations**: Click through to source material when making important decisions. The agent is powerful but always check the evidence.
## From Analysis to Action
Agent Chat responses aren't just for reading—you can act on them:
* **Generate Documents**: Turn any analysis into a formal document (PRD, brief, report)
* **Generate Highlight Reels**: Create video compilations from referenced call moments
* **Add to Collections**: Save referenced items to folders for your team
* **Manage Projects and Inbox Items**: Create, update, merge, promote, or attach evidence with confirmation for destructive actions
* **Share Insights**: Copy responses with properly formatted links for teammates
Agent Chat is currently in beta and available to workspaces with the feature enabled. Contact your workspace admin or support to get access.
# AI Assistant Overview
Source: https://docs.buildbetter.ai/pages/Chat/ai-assistant-overview
Your intelligent companion for extracting insights from calls and data
BuildBetter's AI Assistant is a powerful conversational interface that understands your entire workspace—every call, document, signal, and piece of feedback. It's designed specifically for product teams, trained on 200+ product leaders and over 2,000 product artifacts.
## Getting Started with Chat
Access the AI Assistant by clicking **Chat** in the left navigation or using the **Start a new chat** quick action from your dashboard.
### Your First Conversation
"What were the main pain points discussed in yesterday's customer calls?"
"What did the team commit to delivering this sprint?"
"What features are customers requesting most often?"
"What competitive threats were mentioned this month?"
The AI Assistant has access to all your workspace data. The more calls and content you add, the more valuable its insights become.
## Interface Overview
The chat interface is divided into three main areas:
### 1. Conversation List (Left Sidebar)
* **Recent chats**: Organized by time (Today, This Week, This Month)
* **New chat**: Start fresh conversations
* **Quick access**: Resume any conversation with one click
### 2. Main Chat Area
* **Message thread**: Your conversation with the AI
* **Real-time streaming**: See responses as they're generated
* **Tool transparency**: Watch the AI search and analyze your data
* **Citation links**: Click to jump to source material
### 3. Context Panel (Right Sidebar)
The context panel provides quick access to your workspace content for adding to conversations.
#### Data Type Selector
Switch between different content types using the dropdown:
* **Recordings**: Your call recordings and transcripts
* **Collections**: Folders containing organized content
* **Documents**: Generated documents and reports
#### View Options
* **List/Gallery Toggle**: Switch between list and gallery views
* **Sort**: Newest First or Oldest First
* **View Settings**: Customize which columns to display (list view only)
#### Actions
* **Upload**: Add new recordings directly from chat
* **Drag & Drop**: Drag items into the chat to add as context
#### Resizable Panel
* Drag the divider to resize the sidebar (300px - 600px)
* Customize your workspace layout
The context panel automatically loads your 50 most recent items of the selected type. Scroll to load more.
## Adding Context to Your Questions
The AI Assistant becomes more powerful when you provide specific context. There are several ways to reference your data:
### Drag and Drop
Simply drag any of these items from the context panel into the chat:
* 📹 **Calls**: Individual recordings or multiple calls
* 📁 **Collections**: Entire folders of related content
* 💡 **Signals**: Specific insights or feedback
* 📄 **Documents**: Generated reports or briefs
A drop zone appears with the message: *"Drop your call, document or Signal here to add it to the chat"*
### URL Parameters
Share pre-loaded conversations with teammates:
* `?callIds=123,456` - Opens chat with specific calls loaded
* `?documentIds=789` - Includes referenced documents
* `?signalIds=101,102` - Adds signals as context
When you add multiple calls (more than 2), the AI uses summaries for broader analysis. For detailed transcript analysis, focus on 1-2 calls at a time.
## Understanding AI Responses
### Citations and Sources
Every AI response includes transparent sourcing:
Shows what data the AI used to formulate its response. Click any citation to view the original content with exact timestamps.
* 🔓 Public content accessible to all
* 🔒 Private content with restricted access
* 👥 Participant-only recordings
Watch in real-time as the AI:
* Searches your workspace
* Reads specific transcripts
* Analyzes patterns
* Generates insights
### Response Actions
After receiving an answer, you can:
* **Copy**: Export the response text (internal links converted to full URLs)
* **Generate**: Dropdown menu with two options:
* **Generate Document**: Create a formal document from the insights
* **Generate Highlight Reel**: Create a video compilation of referenced moments
* **Add to Collection**: Save referenced items (calls, signals) to folders
* **Provide Feedback**: Thumbs up/down to improve AI performance
The Generate button only appears when your conversation references calls, folders, or other content sources.
## Advanced Features
### Smart Search Capabilities
The AI doesn't just match keywords—it understands context and meaning:
* **Semantic search**: Finds related concepts even without exact matches
* **Time-aware**: Understands "yesterday," "last week," "Q3"
* **Person-aware**: Knows who said what across all calls
* **Topic clustering**: Groups related discussions automatically
### Document Generation
Transform any chat response into structured documents:
1. Click the **Generate** button on any response that references data
2. Select **Generate Document** from the dropdown
3. Choose your document template
4. Customize the output format
5. Generate professional documents instantly
### Highlight Reel Creation
Create video compilations from chat conversations:
1. Click the **Generate** button on responses referencing calls
2. Select **Generate Highlight Reel** from the dropdown
3. Review selected clips and timestamps
4. Adjust selections as needed
5. Generate and share your highlight reel
### Conversation Management
* Edit conversation titles for easy reference
* Conversations auto-organize by time period (Today, This Week, This Month)
* Delete old conversations to stay organized
* Resume any conversation from the sidebar
* Copy specific responses with proper URL formatting
* Share conversation links with teammates using URL parameters
* Reference chats in documents
* All conversations are secure and private
* Respect original content permissions
* No sharing of restricted content
* Audit trail for compliance
## Best Practices
**Be specific**: "What pricing concerns were raised in last week's enterprise calls?" works better than "What do customers think about pricing?"
**Add context**: Drag in relevant calls or folders when asking about specific topics or time periods.
**Iterate**: If the first response isn't quite right, ask follow-up questions to refine.
**Use the data switcher**: Switch between Recordings, Collections, and Documents in the context panel to find the right content.
**Leverage citations**: Always check source material when making important decisions based on AI insights.
## Common Use Cases
### For Product Managers
* "What features did enterprise customers request this month?"
* "Summarize the feedback from our beta users"
* "What are the main blockers preventing adoption?"
### For Customer Success
* "Which customers mentioned considering competitors?"
* "What made our most successful implementations work?"
* "List all commitments made to \[Customer Name]"
### For Sales Teams
* "What objections came up in lost deals?"
* "Which features get prospects most excited?"
* "What's our typical sales cycle based on recent wins?"
### For Leadership
* "What strategic themes emerged from Q3 calls?"
* "How has customer sentiment changed over time?"
* "What are the top risks mentioned by the team?"
While the AI is powerful, always verify critical insights by reviewing the source material through citations. The AI provides analysis, not absolute truth.
## Tips and Shortcuts
* **Enter**: Send message
* **Shift + Enter**: New line in message
* **Escape**: Cancel current message
* **⌘/Ctrl + K**: Quick search
* **Drag divider**: Resize context panel
The AI Assistant transforms how you interact with your workspace data, making every conversation, insight, and decision instantly accessible and actionable.
# Chat Overview
Source: https://docs.buildbetter.ai/pages/Chat/overview
Understanding BuildBetter's AI-powered chat capabilities
## What is BuildBetter Chat?
BuildBetter's Chat is an AI-powered assistant that helps you:
* Ask questions about your calls, documents, and signals
* Extract insights and analyze patterns across your data
* Get contextual answers with direct citations to source material
* Research and explore your workspace content
## Key Features
Add calls, documents, and signals as context for targeted questions
Analyze multiple recordings and documents simultaneously
Get answers with direct links to source timestamps and content
Organize conversations by topic with persistent chat threads
## How It Works
Start from **New Chat**, Home, or continue an existing conversation thread
Drag calls, documents, or signals into the chat for focused analysis
Query your data using natural language questions
Click citations to jump directly to source material with timestamps
## New Chat
The `/new-chat` experience helps you start faster:
* Starter prompts for common workflows
* Quick actions
* Favorites
* An AI composer that creates a real chat thread as soon as you submit a prompt
* Working `@` mentions for adding relevant context
Recent chats are also available from the Home experience so you can resume prior work without searching through the full thread list.
## Primary Use Cases
### Data Analysis & Research
* Ask questions about specific calls or documents
* Find patterns across multiple recordings
* Research customer feedback and requests
* Analyze meeting outcomes and decisions
### Content Exploration
* Search for specific topics across your workspace
* Get summaries of calls or documents
* Understand context around signals and feedback
* Explore relationships between different data sources
## Context Management
**When you add one call, document, or signal:**
* Full transcript access for calls
* Complete content analysis for documents
* Detailed signal context and source material
* Timestamp-specific citations in responses
**When you add multiple calls, documents, or signals:**
* Cross-item pattern analysis
* Comparative insights across sources
* Trend identification over time
* Combined context for comprehensive answers
* Citations show which specific sources were used
## Chat Interface Features
### Thread Management
* **Create new threads** for different topics or projects
* **Rename threads** to keep conversations organized
* **Delete threads** when no longer needed
* **Time-based organization** (Today, This Week, This Month)
* **Quick access** from the left sidebar
### Message Features
* **Real-time streaming** responses from AI
* **Rich citations** with links to source material and timestamps
* **Retry failed messages** if issues occur
* **Enter to send** (Shift+Enter for new lines)
* **Tool usage visibility** showing AI's research process
### Citation System
Citations in chat responses link directly to:
* **Call timestamps**: Jump to exact moments in recordings (`/call/123?t=45`)
* **Signal sources**: Navigate to specific feedback (`/signal/456?t=30`)
* **Document sections**: Open relevant documents (`/documents/789`)
Chat responses are based on your workspace data. Ensure calls are processed and content is accessible for best results.
## Adding Context to Conversations
Drag calls, documents, or signals from anywhere in the app into the chat
Context items appear as removable cards before sending your message
Ask your question - context is automatically included in the AI's analysis
AI responses show which context sources were used with clickable citations
## What Chat Can and Cannot Do
**Current Limitations:**
* No real-time collaboration features (viewing/typing indicators)
* No conversation export to PDF or markdown
* No search within conversation list
* No advanced filtering in context panel (only sorting by date)
* Knowledge pages @mentions are in beta (not yet available to all users)
You CAN generate documents from chat responses using the Generate button, which appears when your conversation references calls or folders.
## Troubleshooting
* Verify call processing
* Check permissions
* Review data access
* Add more context
* Rephrase questions
* Use specific examples
Chat capabilities are continuously improved based on user feedback and new feature releases.
# Chat Privacy & Data Access
Source: https://docs.buildbetter.ai/pages/Chat/privacy-and-sharing
Understanding privacy controls and data access in BuildBetter Chat
## Privacy Overview
BuildBetter Chat is designed with privacy-first principles to ensure:
* Your conversations remain completely private to you
* AI only accesses data you already have permission to view
* Clear visibility into what data sources are being used
* Respect for all existing workspace permission controls
## Chat Privacy Model
All chat conversations are private to you only - no sharing capabilities exist
Chat can only access calls, documents, and signals you already have access to
**Important**: Chats cannot currently be shared with other users. All conversations are private to the creator.
## Data Access Controls
### What Chat Can Access
Chat respects your existing permissions and can only access:
* **Calls you attended**: Meetings where you were a participant
* **Your private content**: Documents and signals you created
* **Public workspace content**: Items marked as public in your workspace
* **Custom context**: Content from your [Settings > Custom Context](/pages/Settings/custom-context)
* **Public recordings**: Available to all workspace members
* **Speaker-only recordings**: Only accessible to call participants
* **Shared documents**: Documents explicitly shared with you
* **Team signals**: Insights extracted from accessible content
### What Chat Cannot Access
**Access Restrictions:**
* Other users' private chats or conversations
* Calls you didn't attend (unless marked public)
* Private documents from other users
* Signals from inaccessible source content
* Content from other workspaces
* Administrative or system data
## Privacy Indicators
The chat interface provides clear privacy indicators:
### Visual Privacy Cues
* **🔒 Lock icons** on private content citations
* **"Restricted access: Only you"** tooltips on private items
* **Permission status** shown in context dropdown
* **Clear attribution** showing which sources were used
### Context Transparency
When you add context to chat:
* **Visual confirmation** shows exactly what content is being analyzed
* **Permission indicators** display access levels for each item
* **Citation system** shows which sources the AI actually used in responses
* **Removable context** lets you control what data is included
## Data Source Permissions
Content TypeAccess RequirementsPrivacy LevelYour RecordingsCreator or participantPrivate or as-configuredPublic RecordingsWorkspace memberVisible to all membersYour DocumentsCreator or shared accessPrivate or as-configuredYour SignalsAccess to source contentInherits from sourceCustom ContextConfigured in settingsUser-controlled
## Custom Context Privacy
Your [Custom Context](/pages/Settings/custom-context) settings affect what background knowledge the AI has:
Check what additional context you've configured in Settings
Custom context applies to all your chat conversations
Only include context that's appropriate for all your chat usage
Review and update custom context as your privacy needs change
Custom context is added to all your chats automatically, so ensure it only contains information you're comfortable having the AI reference in any conversation.
## Privacy Best Practices
**Review Context**: Always check what calls/documents you're adding as context before asking sensitive questions
**Understand Citations**: Read citation sources to understand what data informed the AI's response
**Private Content**: Be aware that private content you add to chat remains private but will be analyzed by the AI
**Custom Context**: Regularly review your custom context settings to ensure they align with your privacy preferences
**Permission Awareness**: Remember that AI responses are based only on content you already have access to
## Current Limitations
**No Sharing Features:**
* Chats cannot be shared with team members
* No collaborative editing or commenting
* No export functionality for conversations
* No public links or access controls for chats
## Data Processing Transparency
### What Happens to Your Data
* **Chat messages** are processed by AI to generate responses
* **Context items** (calls, documents, signals) are analyzed when included
* **Citations** are generated to show which sources informed responses
* **Conversation history** is stored for thread continuity
### Data Usage Boundaries
* **No cross-user access**: Your data is never accessible to other users through chat
* **Permission enforcement**: Existing access controls are maintained
* **Source attribution**: AI clearly shows what data sources were used
* **Context control**: You choose what data to include in each conversation
For enterprise privacy requirements and data processing agreements, contact [support@buildbetter.ai](mailto:support@buildbetter.ai).
## Privacy Troubleshooting
**Possible Causes:**
* Content is private to another user
* You weren't a participant in the call
* Document permissions have changed
* Content hasn't finished processing
**Solutions:**
* Check content permissions directly
* Verify you attended the meeting
* Contact content owner for access
**Possible Causes:**
* Content was marked as public
* You have broader permissions than expected
* Custom context includes unexpected data
**Solutions:**
* Review content permission settings
* Check your custom context configuration
* Contact workspace administrator
# Creating Documents
Source: https://docs.buildbetter.ai/pages/Documents/create
Transform your calls and data into structured documents with AI
BuildBetter's document generation feature transforms your recordings, signals, and datasets into professional documents—from meeting minutes to product requirements, user stories to strategic reports.
## Getting Started
Access document creation through multiple entry points:
Click "Create a Document" from your home dashboard
Navigate to Documents and click "Create Document"
Use the "Generate Document" action on any call recording
Select recordings, folders, or datasets then create documents from your selection
## Document Creation Workflow
Creating a document follows a simple 3-step process:
### Step 1: Choose Your Template
System-provided templates optimized for common use cases:
* **Meeting Minutes**: Structured notes with decisions and action items
* **Product Requirements (PRD)**: Comprehensive product specifications
* **User Stories**: Formatted with acceptance criteria
* **Interview Summary**: Key insights from user interviews
* **Strategy Document**: High-level analysis and recommendations
* **Q\&A Extract**: Questions and answers from recordings
* **Status Update**: Progress reports and blockers
Preview any template before selecting to see example output and understand the final structure.
Create templates tailored to your organization:
* Define specific structure and sections
* Add custom instructions for AI generation
* Set default generation strategies
* Use your brand voice and terminology
Access template creation via Settings → Organization → Custom Document Templates
### Step 2: Select Your Data Sources
Choose the content to analyze for your document:
Select individual call recordings with completed transcripts.
**Best for:**
* Meeting minutes from specific calls
* Interview summaries
* Decision documentation
* Action item extraction
Choose entire folders of related content for comprehensive analysis.
**Best for:**
* Project retrospectives
* Quarterly reviews
* Theme analysis across multiple calls
* Comprehensive reports
Use signal collections for focused analysis.
**Best for:**
* Feature request compilations
* Bug report summaries
* Customer feedback analysis
* Trend identification
For best results with recordings, ensure they have completed transcription and summaries before including them in document generation.
### Step 3: Configure Generation Settings
Fine-tune how your document is created:
**Title**: Give your document a meaningful name (optional)
**Focus**: Add specific instructions or areas to emphasize
Example: "Focus on technical requirements and implementation details"
**Focused Analysis** (Default)
* For smaller datasets (under 100 signals or 10 calls)
* Simple, direct processing
* Faster generation
**Theme Discovery**
* For larger datasets (over 100 signals or 10 calls)
* Advanced pattern recognition
* Identifies hidden themes and trends
**Full Context**
* Uses complete transcripts
* Best for narrative documents
* Preserves conversation flow
**Key Insights**
* Uses pre-extracted signals only
* Best for summaries and reports
* Focuses on highlights
**Private**: Only you can view and edit
**Workspace**: All team members have access
**Shared**: Invite specific individuals
## Monitoring Document Generation
Track your document's progress in real-time:
Document is queued for processing. You can navigate away - generation continues in background.
AI is actively generating content. View live logs to see analysis steps and progress.
Document is ready for viewing and editing. Click to open and refine as needed.
Generation failed. Click to view error details and retry with adjusted settings.
## Best Practices
**Select relevant data**: Choose recordings and datasets directly related to your document's purpose rather than including everything.
**Match template to output**: Use meeting minutes template for meetings, PRD template for product specs, etc.
**Provide clear focus**: Specific instructions in the focus field lead to more targeted, useful documents.
**Verify data readiness**: Ensure all recordings have completed processing before including them.
**Iterate on templates**: Start with presets, then create custom versions based on what works for your team.
## Common Use Cases
### Product Management
* Generate PRDs from customer interview recordings
* Create feature requirement docs from feedback signals
* Compile user research reports from interview folders
* Build roadmap documents from strategy calls
### Sales & Customer Success
* Transform sales calls into opportunity summaries
* Create account reviews from customer meeting folders
* Generate renewal preparation documents
* Build competitive battle cards from market research
### Team Collaboration
* Convert team meetings into actionable minutes
* Create project status updates from standup recordings
* Generate retrospective reports from sprint folders
* Document technical decisions from architecture reviews
### Strategic Planning
* Compile market research from analyst calls
* Create competitive analysis from industry interviews
* Generate executive briefings from leadership meetings
* Build investor updates from board prep sessions
**Troubleshooting Generation Issues:**
* Verify all selected recordings have completed processing
* Ensure you have permissions for all selected data
* Try reducing data volume or using Focused Analysis for large datasets
* Check that recordings have assigned speakers for best results
## Tips for Success
**For meeting minutes**: Include only the specific meeting recording for most accurate results.
**For trend analysis**: Use Theme Discovery with datasets or folders containing 20+ items.
**For quick summaries**: Key Insights format with Focused Analysis provides fastest results.
**For detailed documents**: Full Context format captures nuanced discussions and context.
The document generation feature continuously improves through usage, learning from your templates and feedback to create increasingly valuable documents for your team.
# Document Generation
Source: https://docs.buildbetter.ai/pages/Documents/document-generation
How to generate AI-powered documents from your calls and signals
BuildBetter's document generation transforms your recordings, signals, and data into structured business documents using AI. Follow these steps to create professional documents from your workspace content.
## Generation Process
Choose from available templates (PRD, user story, meeting summary, etc.).
Each template has predefined structure and sections
Templates include default generation settings and data source preferences
Preview templates to see example outputs
Select the content to analyze - you can mix and match sources:
Calls: Individual recordings with transcripts
Folders: Collections of related content
Signals: Specific extracted insights
Datasets: Organized data collections
Set document title, focus, and generation parameters:
Generation Style:
Focused Analysis (one-shot): Best for small datasets (under 100 signals or under 10 calls). Simple all-at-once processing.
Theme Discovery (divide-and-conquer): Best for large datasets (over 100 signals or over 10 calls). Advanced pattern recognition across large datasets. Not suitable for counting or quantitative analysis.
Data Format:
Full Context (qualitative): Uses complete transcripts and conversations. Best for narrative documents and detailed analysis. Only available when using calls or folders (not datasets/extractions).
Key Insights (extractions): Uses pre-processed signals and extractions. Best for summaries and reports focused on specific insights. Less effective with 20+ sources due to context overload.
Visibility:
Workspace: Anyone in your workspace can view
Private: Only you can view (default)
Click Generate and monitor progress. Once complete:
Review the generated content
Edit directly in the document editor
Regenerate if needed with different settings
Share with your team when ready
The document title and focus (description) fields are optional but highly recommended. The more detail you provide, the more accurate and targeted the document will be.
## Generation Strategies Explained
### Focused Analysis (One-Shot)
**Best for**: Small datasets (under 100 signals or under 10 calls)
* Processes all content at once
* Ideal for focused, cohesive documents
* All context fits together naturally
* Faster generation for small datasets
**Use when**:
* Creating meeting summaries from 1-5 calls
* Generating PRDs from focused customer feedback
* Building documents from specific signal sets
### Theme Discovery (Divide-and-Conquer)
**Best for**: Large datasets (over 100 signals or over 10 calls)
* Breaks down content to identify patterns
* Advanced pattern recognition across sources
* Identifies emerging themes automatically
* Synthesizes insights from large volumes
**Not suitable for**:
* Counting or quantitative analysis
* Exact tallying of specific items
**Use when**:
* Analyzing trends across many calls
* Creating reports from large signal sets
* Identifying patterns in extensive datasets
## Data Source Options
### Full Context (Qualitative)
Uses complete transcripts and conversations.
**Best for**:
* Narrative documents
* Detailed analysis
* When you need the full story with all nuances
* Documents requiring direct quotes
**Requirements**:
* Only available with calls or folders as sources
* Not available when using datasets or extraction-only sources
### Key Insights (Extractions)
Uses pre-processed signals and extractions.
**Best for**:
* Summaries and reports focused on specific insights
* When signals have already been extracted
* Structured insights over narrative
**Limitation**:
* Less effective with 20+ sources due to context overload
* Best with focused, curated signal sets
The Data Format option adapts based on your source selection. If you select datasets or extractions only, "Full Context" won't be available.
## Document Actions
Once your document is generated, you can:
### Edit & Refine
* Edit content directly using the rich text editor
* Auto-save keeps your changes safe
* Regenerate the entire document if needed
### Share & Collaborate
* Copy document link to share with teammates
* Set visibility to Workspace for team access
* Use document chat to discuss and iterate
### Copy Content
* **Copy Document**: Copies document content to clipboard (both HTML and plain text formats)
* **Copy Link**: Shares the document URL for team access
### Delete
* Remove documents you no longer need
* Confirmation required to prevent accidental deletion
## Document Chat
Every document includes an integrated chat panel:
* Ask questions about the document content
* Get clarification on generated insights
* Request edits or additions
* Iterate on content with AI assistance
**To access**:
1. Open any document
2. Click the chat icon in the top-right
3. Start a new conversation or continue existing threads
4. Document context is automatically included
Document chat threads are saved and can be resumed later. You can have multiple chat threads per document.
## Source Selection Tips
Use for meeting summaries, detailed call analysis, or focused PRDs from specific customer conversations.
Use for trend analysis, comprehensive reports, or documents synthesizing insights from various inputs.
Use to analyze entire collections of related content at once.
Use when you want documents focused on specific extracted insights.
## Generation Progress
During generation, you'll see:
* Real-time status updates
* Stage messages
* Percent completion when available
* Progress counters for multi-step generation
* Processing indicators
* Completion notifications
* Error alerts if issues occur
If live progress events are missed, BuildBetter falls back to durable status tracking so the document can still show reliable completion or error state.
Documents typically generate within 30 seconds to 2 minutes, depending on:
* Amount of source data
* Generation strategy chosen
* Current system load
## Best Practices
**Provide clear titles and focus**: Detailed titles and descriptions help AI understand your intent
**Choose appropriate generation strategy**: Use Focused Analysis for small sets, Theme Discovery for large datasets
**Match data source to need**: Use Full Context for narrative, Key Insights for summaries
**Start with fewer sources**: Test with 2-3 calls before generating from 50+ sources
**Use document chat for iteration**: Rather than regenerating entirely, use chat to request specific edits
Always review AI-generated content for accuracy and completeness before sharing. The AI provides intelligent synthesis but may occasionally miss nuances or make errors.
## Troubleshooting
* Reduce the number of sources
* Try switching generation strategy
* Ensure all sources are fully processed
* Check that calls have completed transcription
* Add more detail to title and focus fields
* Try different data source option (Full Context vs Key Insights)
* Ensure source content is relevant to document goal
* Use document chat to request specific improvements
* Verify all selected sources contain relevant data
* Check source permissions and access
* Try Full Context mode if using Key Insights
* Add more source material if output is thin
## Limitations
Use the Copy Document feature to paste content into Google Docs, Notion, or other tools. Content is copied with both HTML formatting and plain text for compatibility.
# Editing & Refining Documents
Source: https://docs.buildbetter.ai/pages/Documents/editing-and-refining
How to edit and perfect your BuildBetter-generated documents
BuildBetter's document editor provides a rich text editing experience with AI assistance. Edit, refine, and perfect your generated documents using a familiar word-processor-style interface.
## Document Editor
The document editor provides:
### Rich Text Formatting
* **Text styles**: Bold, Italic, Strikethrough
* **Headings**: H1, H2, H3 for document structure
* **Lists**: Bulleted and numbered lists
* **Tables**: Create and edit tables
* **Links**: Add hyperlinks to external resources
### Editing Interface
* **Bubble menu**: Format selected text with a floating toolbar
* **Auto-save**: Changes are saved automatically as you type (debounced)
* **Real-time updates**: See your changes reflected immediately
* **Markdown storage**: Document content is stored internally as markdown
Select any text to see the formatting bubble menu appear with options for Bold, Italic, Strikethrough, and Headings.
## Basic Editing
### Text Editing
* Click anywhere in the document to edit
* Type naturally as in any word processor
* Use keyboard shortcuts for common formatting
* Changes save automatically
### Document Title
* Click the title at the top to edit
* Title updates automatically as you type
* Clear, descriptive titles help with organization
### Document Description
The focus/description field is used during generation and can be updated when regenerating the document.
## Formatting Tools
### Text Formatting Toolbar
When you select text, a bubble menu appears with:
* **Bold** - Make text bold
* **Italic** - Italicize text
* **Strikethrough** - Strike through text
* **H1** - Convert to large heading
* **H2** - Convert to medium heading
* **H3** - Convert to small heading
### Structure Elements
Available in the editor:
* Paragraphs
* Headings (H1-H3)
* Bulleted lists
* Numbered lists
* Tables (with headers and cells)
* Horizontal rules
## Document Actions
### Copy Options
* **Copy Document**: Copies document content to clipboard (both HTML and plain text formats for compatibility)
* **Copy Link**: Copies the document URL for sharing
### Regeneration
* Click the regenerate button to rebuild the entire document
* Uses the same sources and settings as original generation
* Useful when source data has been updated or you want a fresh perspective
### Sharing
* Click Share to open the sharing modal
* Set document visibility (Private or Workspace)
* Share link with teammates
### Delete
* Remove documents via the More menu
* Requires confirmation to prevent accidental deletion
## Document Chat
Each document has an integrated chat panel for AI assistance:
### Features
* Ask questions about the document content
* Request specific edits or additions
* Get clarification on generated insights
* Iterate on content without full regeneration
### Usage
1. Click the chat icon in the top-right corner
2. Start a new chat or continue existing threads
3. Ask questions or request changes
4. Document context is automatically included
### Chat Management
* Multiple chat threads per document
* Threads are saved and resumable
* Delete threads when no longer needed
* View all previous chats from the panel
Use document chat to make targeted improvements instead of regenerating the entire document. It's faster and preserves your manual edits.
## Advanced Features
### Citation Verification (Beta)
When enabled via feature flag:
* Select text in the document
* Click the verification button in the bubble menu
* Creates a dataset to validate citations against source signals
* Helps ensure accuracy of generated content
### Favorite Documents
* Mark important documents as favorites
* Quick access to frequently referenced documents
* Favorites appear at the top of document lists
## Keyboard Shortcuts
| Action | Shortcut |
| - | - |
| Bold | Cmd/Ctrl + B |
| Italic | Cmd/Ctrl + I |
| Undo | Cmd/Ctrl + Z |
| Redo | Cmd/Ctrl + Shift + Z |
Use standard text editing shortcuts you're familiar with from other word processors.
## Document Sidebar
When viewing a document, the right sidebar provides:
### Document Information
* Template type badge
* Creation date and last update
* Creator information
* Source count (calls, folders, signals)
### Quick Actions
* Favorite/unfavorite document
* Copy link
* Share document
* Delete document
* Regenerate document
### Chat Access
* Toggle chat panel on/off
* View chat thread count
* Quick access to document discussions
## Auto-Save
Documents auto-save as you edit:
* **Debounced saving**: Changes are saved 1 second after you stop typing
* **Success notifications**: Toast confirmation when saved
* **No manual save needed**: Everything is automatic
* **Safe editing**: Your work is protected
## Sharing Documents
### Visibility Levels
* **Private**: Only you can see the document
* **Workspace**: Anyone in your workspace can view
* **Shared**: Specific people you invite (via share modal)
### Share Modal
Access via the Share button to:
* Generate shareable links
* Set document permissions
* Invite specific teammates
* Control access levels
## Sharing & Export
### Copy to External Tools
1. Click **Copy Document** to copy content (HTML + plain text)
2. Paste into Google Docs, Notion, Word, Confluence, or other tools
3. Formatting is preserved when pasting into compatible applications
### Version Management
* Create new documents from the same sources for different versions
* Use descriptive titles to track iterations
* Regenerate documents when source data is updated
### Team Collaboration
* Share document links with teammates
* Use document chat to discuss changes and request edits
* Set visibility to Workspace for team access
## Best Practices
**Edit incrementally**: Make small changes and let auto-save protect your work
**Use document chat**: Request AI assistance for improvements instead of manual rewriting
**Meaningful titles**: Clear document titles help with organization and discovery
**Leverage favorites**: Mark important documents for quick access
**Copy before major changes**: Use Copy Document to preserve current version before significant edits
## Troubleshooting
* Check network connectivity
* Refresh the page if saves are failing
* Verify you have edit permissions
* Try copying content as backup
* Use the bubble menu for reliable formatting
* Refresh page if editor becomes unresponsive
* Clear browser cache if persistent issues
* Avoid pasting heavily formatted content from external sources
* Ensure document has loaded completely
* Check network connection
* Try refreshing the page
* Verify workspace permissions
The document editor is continuously improved. Report issues or request features via the help menu or by contacting [support@buildbetter.app](mailto:support@buildbetter.app).
# Editing and Sharing Documents
Source: https://docs.buildbetter.ai/pages/Documents/editing-and-sharing
Refine and share your AI-generated documents
Once your document is generated, BuildBetter provides tools for editing and sharing your content with others.
## Document Editor
The document editor provides a familiar interface for working with your content:
### Rich Text Formatting
* **Bold** for emphasis
* *Italic* for subtle highlights
* ~~Strikethrough~~ for revisions
* Links for references
* # Heading 1
* ## Heading 2
* ### Heading 3
* Tables for data organization
### Editing Features
* **Auto-save**: Changes save automatically 1 second after you stop typing
* **Inline title editing**: Click the title to modify directly
* **Markdown storage**: Content stored as markdown internally
* **Real-time updates**: See changes instantly
Use keyboard shortcuts for faster editing:
* `Cmd/Ctrl + B` for bold
* `Cmd/Ctrl + I` for italic
* `Cmd/Ctrl + Z` to undo
### Formatting Toolbar
Select any text to see the bubble menu with formatting options:
* **Bold**, **Italic**, **Strikethrough**
* **H1**, **H2**, **H3** headings
* Easy access to common formatting
## Document Chat
Each document includes an integrated chat panel for AI assistance:
### Features
* Ask questions about the document content
* Get AI help with edits and improvements
* Discuss content with teammates
* Multiple chat threads per document
### How to Use
1. Click the chat icon in the top-right corner
2. Start a new chat or continue existing threads
3. Document context is automatically included
4. Chat threads are saved and resumable
Use document chat to request targeted improvements instead of regenerating the entire document. It's faster and preserves your manual edits.
## Sharing Options
### Permission Levels
Control who can access your documents:
* Only you can view and edit
* No workspace visibility
* Complete privacy control
* All team members can access
* Appears in workspace document list
* Anyone in workspace can view
* Invite specific individuals via share modal
* Control access levels
* Generate shareable links
### Share Modal
Access via the Share button to:
* Set document visibility (Private or Workspace)
* Generate shareable links
* Manage access for specific teammates
## Copy & Export
### Copy Options
* **Copy Document**: Copies content to clipboard (HTML + plain text formats)
* **Copy Link**: Copies the document URL for sharing
### Using Copy for External Tools
1. Click **Copy Document** to copy formatted content
2. Paste into Google Docs, Notion, Word, Confluence, or other tools
3. HTML formatting is preserved when pasting into compatible applications
When pasting into Google Docs or Notion, formatting (headings, bold, lists, tables) is preserved automatically.
## Document Actions
### Available Actions
* **Regenerate**: Rebuild the entire document with the same sources and settings
* **Delete**: Remove the document (requires confirmation)
* **Favorite**: Mark important documents for quick access
* **Copy Link**: Share the document URL
* **Copy Document**: Copy content to clipboard
### Document Metadata
View document information in the sidebar:
* Template type badge
* Creation date and last update
* Creator information
* Source count (calls, folders, signals)
## Best Practices for Document Editing
**Review AI output**: Always review generated content for accuracy before sharing
**Add context**: Include relevant background information the AI might have missed
**Structure clearly**: Use headings and formatting to improve readability
**Set appropriate permissions**: Consider who needs access before sharing
**Use document chat**: Request AI assistance for improvements and clarifications
## Tips for Effective Sharing
### Internal Sharing
* Use workspace visibility for team-wide documents
* Share document links with stakeholders
* Use document chat for collaboration and discussion
### External Sharing
* Copy document content and paste into recipient's preferred tool
* Share via email or messaging with copied content
* Consider privacy before sharing customer data
## Keyboard Shortcuts
Speed up your editing workflow:
| Action | Shortcut |
| - | - |
| Bold | Cmd/Ctrl + B |
| Italic | Cmd/Ctrl + I |
| Undo | Cmd/Ctrl + Z |
| Redo | Cmd/Ctrl + Shift + Z |
## Troubleshooting
* Check network connectivity
* Refresh the page if saves are failing
* Verify you have edit permissions
* Try copying content as backup
* Use the bubble menu for reliable formatting
* Refresh page if editor becomes unresponsive
* Clear browser cache if persistent issues
* Avoid pasting heavily formatted content from external sources
* Verify user email addresses are correct
* Check that you have admin permissions
* Ensure workspace settings allow sharing
* Try generating a new share link
The document editor and sharing features are continuously improved. Report issues or request features by contacting [support@buildbetter.app](mailto:support@buildbetter.app).
# Documents Overview
Source: https://docs.buildbetter.ai/pages/Documents/overview
Transform your calls and data into structured business documents with AI-powered generation
BuildBetter Documents turns your recordings, signals, and data into professional business documents automatically. Instead of manually writing meeting notes or extracting insights, let AI generate structured outputs like PRDs, user stories, executive summaries, and custom reports from your existing content.
## What Are BuildBetter Documents?
Documents in BuildBetter are **AI-generated business assets** created from your calls, signals, and data sources. They're not traditional word processors, but intelligent document generators that transform conversations into actionable business content.
Documents are created by AI analyzing your calls, signals, and data sources
All documents use structured templates to ensure consistent, professional output
Designed for creating PRDs, user stories, summaries, and other business documents
Combine recordings, signals, folders, and datasets as source material
## When to Use Documents
### Transform Conversations into Assets
* **Meeting summaries** from recorded calls
* **Product requirements** from customer feedback
* **User stories** from research sessions
* **Executive briefings** from multiple data sources
### Create Structured Business Content
* **Project specifications** from discovery calls
* **Feature documentation** from engineering discussions
* **Customer feedback reports** from support signals
* **Strategic updates** from leadership meetings
### Scale Content Creation
* **Standardize outputs** using consistent templates
* **Reduce manual writing** by leveraging AI generation
* **Combine multiple sources** for comprehensive documents
* **Maintain professional format** across your organization
## Core Document Workflow
The document creation process follows a structured approach:
1. **Choose Your Template** - Select from built-in templates or create custom ones
2. **Select Data Sources** - Add the calls, signals, or folders you want to analyze
3. **Configure Generation** - Set title, permissions, and AI processing options
4. **Generate & Refine** - Let AI create the document, then edit as needed
Documents are always created from templates and data sources - there's no "blank document" option. This ensures structured, professional output every time.
## Key Features
### Document Generation
* **Template-driven creation** with professional formats
* **Multi-source analysis** combining calls, signals, and data
* **AI processing options** for different data set sizes
* **Real-time generation** with progress tracking
→ [Learn about Document Generation](/pages/Documents/document-generation)
### Editing & Collaboration
* **Rich text editing** with formatting and structure
* **Document chat** for discussing content and getting AI assistance
* **Permission management** with private, shared, and workspace access
* **Auto-save functionality** as you edit
→ [Learn about Editing & Refining](/pages/Documents/editing-and-refining)
### Templates & Customization
* **Built-in templates** for common business documents
* **Custom template creation** for your specific needs
* **Template management** and organization
* **Preview capabilities** to see example outputs
→ [Learn about Purpose & Templates](/pages/Documents/purpose-and-templates)
## Integration & Export
Documents integrate seamlessly with your workflow:
Google Docs, Notion, Confluence integration with direct publishing
Each document has integrated chat for questions and iteration
Private, shared, or workspace-level access management
Clear links back to source recordings and signals
## Common Use Cases
* **PRDs from customer calls**: Turn discovery sessions into product requirements
* **User stories from research**: Transform user interviews into development-ready stories
* **Feature specs from feedback**: Convert customer requests into technical specifications
* **Meeting summaries**: Professional follow-ups from sales calls
* **Proposal content**: SOWs and proposals from discovery sessions
* **Customer health reports**: Status updates from success meetings
* **Executive summaries**: High-level insights from multiple data sources
* **Strategic reports**: Analysis across teams and time periods
* **Board updates**: Formatted reports for stakeholder communication
* **Process documentation**: Procedures from training calls
* **Status reports**: Project updates from team meetings
* **Feedback summaries**: Customer insight reports from multiple sources
## Getting Started
Ready to transform your conversations into documents?
Explore [available templates](/pages/Documents/purpose-and-templates) to understand what you can create
Follow the [document generation guide](/pages/Documents/document-generation) to create your first AI-generated document
Use [editing tools](/pages/Documents/editing-and-refining) to perfect your content and share with your team
Start with simple templates like meeting summaries before moving to complex documents like PRDs. This helps you understand how AI interprets your data sources.
# Document Purpose & Templates
Source: https://docs.buildbetter.ai/pages/Documents/purpose-and-templates
Understanding BuildBetter's document templates and customization
BuildBetter's document system uses templates to generate structured business documents from your calls, signals, and data. Templates ensure consistent, professional output tailored to your needs.
## What Are Document Templates?
Templates define the structure, sections, and AI instructions for generating documents. They ensure every document of a given type follows the same format and includes the right information.
System-provided templates for common business documents
Organization-specific templates you create for your unique needs
## Available Template Types
### Meeting Documents
* **Meeting Summary**: Structured notes with decisions and action items
* **Call Notes**: Detailed conversation capture
* **Action Items**: Extracted tasks and next steps
* **Decision Log**: Key decisions and rationale
### Product Documents
* **Product Requirements (PRD)**: Comprehensive product specifications
* **User Stories**: Formatted with acceptance criteria
* **Feature Specifications**: Technical details and requirements
* **Release Notes**: Update summaries for customers
### Business Documents
* **Interview Summary**: Key insights from user research
* **Strategy Document**: High-level analysis and recommendations
* **Q\&A Extract**: Questions and answers from recordings
* **Status Update**: Progress reports and blockers
* **Executive Summary**: High-level briefings
Preview any template before selecting to see example output and understand the final structure.
## Template Components
Each template includes:
### Structure Definition
* **Sections**: Organized content areas (Overview, Requirements, etc.)
* **Headings**: Hierarchy and organization
* **Content blocks**: Specific information types
### AI Instructions
* **Generation prompts**: Guides AI on what to extract
* **Focus areas**: Emphasized content types
* **Tone and style**: How content should be written
### Default Settings
* **Generation strategy**: Focused Analysis or Theme Discovery
* **Data source**: Full Context or Key Insights
* **Permissions**: Default visibility level
## Creating Custom Templates
Custom templates allow you to define documents specific to your organization's needs.
### Access Template Management
1. Navigate to Settings > Organization > Document Templates
2. Click "Create Template"
3. Define template structure and settings
4. Save for use across your workspace
### Template Configuration
* Template name and description
* Category/type classification
* Icon or visual identifier
* Define document sections
* Set section order and hierarchy
* Configure conditional sections
* Provide generation guidance
* Set content focus areas
* Define extraction rules
* Choose default generation strategy
* Set default data source
* Configure default permissions
## Generation Strategies
Templates can specify default generation strategies:
### Focused Analysis (One-Shot)
* Best for small datasets (under 100 signals or 10 calls)
* Simple, all-at-once processing
* Faster generation
* Ideal for single meetings or focused topics
### Theme Discovery (Divide-and-Conquer)
* Best for large datasets (over 100 signals or 10 calls)
* Advanced pattern recognition
* Identifies themes across sources
* Not suitable for counting or quantitative analysis
You can override the template default when creating a document if you need a different strategy for specific use cases.
## Data Source Options
Templates can specify preferred data formats:
### Full Context (Qualitative)
* Uses complete transcripts and conversations
* Best for narrative documents
* Preserves nuances and details
* Only available with calls/folders (not datasets/signals only)
### Key Insights (Extractions)
* Uses pre-extracted signals
* Best for summaries and reports
* Focuses on highlights
* Less effective with 20+ sources
## Template Best Practices
**Define clear sections**: Well-structured templates produce better documents
**Provide detailed AI instructions**: The more guidance you give, the better the output
**Test with real data**: Validate templates with actual calls and signals before team-wide use
**Use appropriate defaults**: Set generation strategy and data source based on typical use
**Keep templates focused**: Specific templates work better than trying to be all-purpose
## Using Templates
### During Document Creation
1. Select a template from the list
2. Review template preview (if available)
3. Add your data sources (calls, folders, signals)
4. Optionally override template defaults
5. Generate your document
### Template Selection Tips
* **Meeting summaries**: Use single-call templates with Full Context
* **Trend analysis**: Use multi-source templates with Theme Discovery
* **Quick reports**: Use Key Insights format for speed
* **Detailed docs**: Use Full Context format for depth
## Common Use Cases
### Product Teams
* Create PRDs from customer interview folders
* Generate user stories from research sessions
* Build feature specs from feedback signals
* Document technical decisions from architecture calls
### Sales & Customer Success
* Transform sales calls into opportunity summaries
* Create account reviews from customer meetings
* Generate status updates from check-in calls
* Build competitive analysis from market research
### Leadership
* Compile executive summaries from multiple sources
* Create strategic reports from planning sessions
* Generate board updates from leadership meetings
* Build investor docs from pitch practice
Always review AI-generated content for accuracy and completeness before sharing externally. Templates guide the AI but don't guarantee perfect output.
## Troubleshooting Templates
* Review and refine AI instructions in the template
* Ensure data sources match template expectations
* Try different generation strategy
* Add more specific focus/description when generating
* Check that template sections are properly defined
* Verify source data contains relevant content
* Ensure generation strategy matches data volume
* Try Full Context instead of Key Insights
* Standardize source data quality (complete transcripts, speaker labels)
* Use consistent generation settings
* Test template with various data sets
* Refine AI instructions for clarity
Start with built-in templates and modify them to create custom versions. This is faster than creating templates from scratch.
# Homepage Stats & Favorites
Source: https://docs.buildbetter.ai/pages/Home Overview/homepage-stats
Pin your most important dashboards to the homepage for at-a-glance insights
Your BuildBetter homepage lets you pin favorite dashboards for quick access to the metrics that matter most. Create personalized dashboard cards with trend visualizations to monitor your customer feedback at a glance.
## Favorite Dashboard Cards
Pin your most-used Cluster Dashboards and Saved Searches to the homepage. These appear as interactive cards with trend visualizations that update automatically.
### What Can Be Favorited?
**Cluster Dashboards** group related signals into themed clusters. When favorited, they display as trend cards showing how that cluster's signals are changing over time.
**Use cases:**
* Track feature request volume trends
* Monitor bug report severity over time
* Watch sentiment shifts for specific topics
**Saved Searches** (Datasets) are filtered views of your signals. When favorited, they display as trend cards for that specific filter.
**Use cases:**
* Monitor signals from a key customer
* Track competitor mentions
* Watch high-severity feedback trends
You can also favorite Folders, Documents, Recordings, and individual Signals. These appear as quick-access links on your homepage rather than dashboard cards with visualizations.
### How to Add a Favorite
Go to **Explore > Clusters** for cluster dashboards, or **Explore > Saved Searches** for datasets.
Click into a specific cluster dashboard or saved search to open it.
In the top-right title bar, click the star icon. It turns yellow when favorited. You'll see a confirmation: "Added to favorites."
Return to your homepage. Your favorited item now appears as an interactive dashboard card in the Favorites section.
## Dashboard Card Options
Each favorite card can be customized with different visualization types and time ranges.
### Changing the Visualization
Click the **three-dot menu** in the top-right corner of any favorite card to access options:
| Visualization | Description |
| - | - |
| **Volume Trend** | Sparkline showing signal count over time (default) |
| **Sentiment Trend** | Sparkline showing average sentiment progression |
| **Severity Trend** | Sparkline showing average severity levels |
| **Impact Distribution** | Stacked bar chart showing impact type breakdown |
| **Metrics Only** | Simple count display without charts |
Use **Volume Trend** to track how often a topic comes up. Use **Sentiment Trend** to monitor whether feedback is becoming more positive or negative over time.
### Selecting a Time Range
From the same three-dot menu, choose your preferred time window:
| Time Range | Best For |
| - | - |
| **Last 7 days** | Real-time monitoring, daily standups |
| **Last 30 days** | Weekly reviews, sprint planning |
| **Last 90 days** | Quarterly analysis, trend identification |
| **Last 365 days** | Annual reviews, long-term patterns |
Time range preferences are saved per card in your browser, so each dashboard can have its own time window.
## Understanding Trend Indicators
Each dashboard card shows trend information to help you spot changes:
### Trend Arrows
* **Up arrow (green)**: Metric increased compared to previous period
* **Down arrow (red)**: Metric decreased compared to previous period
* **Flat indicator**: No significant change
### Percentage Change
The percentage shown indicates how much the metric changed compared to the equivalent previous period. For example, with "Last 7 days" selected, it compares to the 7 days before that.
Shows the count of signals matching your filter over time. Useful for tracking:
* Are feature requests increasing or decreasing?
* Is a bug getting more reports?
* How active is feedback from a specific segment?
Shows average sentiment (-10 to +10) over time. Useful for tracking:
* Is customer satisfaction improving?
* Did a release impact sentiment?
* How do different segments feel about your product?
Shows average severity level over time. Useful for tracking:
* Are issues becoming more critical?
* Is your team addressing high-severity feedback?
* How urgent is feedback in a specific area?
Shows breakdown by impact type (Revenue, Adoption, Satisfaction, Retention, Efficiency). Useful for tracking:
* What business areas does this feedback affect?
* Is this feature request about growth or retention?
* How should you prioritize based on impact?
## Managing Favorites
### Removing a Favorite
To remove a dashboard card from your homepage:
1. Go to **Explore > Clusters** or **Explore > Saved Searches**
2. Open the item you want to unfavorite
3. Click the yellow star icon in the top-right to unfavorite
4. You'll see a confirmation: "Removed from favorites"
### Reordering Favorites
Favorite cards appear in the order they were added. To change the order, remove and re-add items in your preferred sequence.
## Example Dashboard Setups
### Product Manager View
| Favorite | Visualization | Time Range |
| - | - | - |
| "Feature Requests" cluster | Volume Trend | 30 days |
| "Bug Reports" cluster | Severity Trend | 7 days |
| "Enterprise Customers" saved search | Sentiment Trend | 30 days |
### Customer Success View
| Favorite | Visualization | Time Range |
| - | - | - |
| "Churn Risk Signals" saved search | Volume Trend | 7 days |
| "Support Issues" cluster | Severity Trend | 7 days |
| "Praise & Wins" cluster | Volume Trend | 30 days |
### Leadership View
| Favorite | Visualization | Time Range |
| - | - | - |
| "All Feedback" saved search | Impact Distribution | 90 days |
| "Competitor Mentions" cluster | Volume Trend | 30 days |
| "Strategic Themes" cluster | Sentiment Trend | 90 days |
## Best Practices
**Pin what matters most**: Only favorite dashboards you check regularly. Too many cards can be overwhelming.
**Use appropriate time ranges**: Match the time range to how you use the data. Daily standup? Use 7 days. Monthly review? Use 30 days.
**Mix visualization types**: Use volume trends for quantity tracking, sentiment trends for satisfaction monitoring, and impact distribution for prioritization.
**Create focused saved searches**: The more specific your saved search filter, the more actionable the trend data will be.
**Review trends regularly**: Dashboard cards are most valuable when checked consistently to spot patterns early.
## Workspace Stats
In addition to your favorite dashboard cards, BuildBetter displays aggregate metrics for your workspace:
Estimated time saved through AI automation based on your usage
Total documents created in your workspace
Total calls and meetings recorded
Number of tags applied to recordings
Total insights extracted from conversations
AI assistant responses generated
Workspace stats appear automatically once you have data. No setup required.
# Recent Recordings & Chats
Source: https://docs.buildbetter.ai/pages/Home Overview/recent-activity
Quick access to your recently recorded calls and chat conversations
The home page provides quick access to your most recent recordings and chat conversations, making it easy to continue where you left off.
## Recent Recordings
The Recent Recordings section displays your four most recent call recordings in a grid layout.
### What You'll See
Each recording card shows:
* **Title**: The name of the meeting or call
* **Participants**: Who was on the call
* **Duration**: How long the recording is
* **Processing Status**: Whether the recording is still being processed
* **Preview**: A thumbnail or visual indicator
### Quick Actions
Click on any recording card to:
* View the full recording and transcript
* Access AI-generated summaries
* Share with team members
* Download or export content
Use the "See all" link to view your complete recording history in the Calls page.
### Empty State
If you haven't uploaded any recordings yet, you'll see options to:
* **Upload Call**: Add existing recordings from your device
* **Setup Integrations**: Connect calendar and meeting platforms for automatic recording
## Recent Chats
The Recent Chats section shows your four most recent AI chat conversations.
### Chat Information
Each chat card displays:
* **Chat Name**: The title of your conversation
* **Last Updated**: When you last interacted with this chat
* Shows time (e.g., "2:30 PM") for today's chats
* Shows relative time (e.g., "2 days ago") for older chats
### Continuing Conversations
Click any chat card to:
* Resume the conversation where you left off
* View the full chat history
* Continue asking questions or generating content
The "BuildBetter Onboarding" chat is filtered out from the recent chats display but remains accessible through the onboarding assistant button when no other chats exist.
### Starting New Chats
If you haven't started any chats yet, you'll see:
* **Start chat**: Begin a new AI conversation
* **Onboarding Assistant**: Access the guided onboarding chat (if available)
## Navigation Tips
Access your complete recording history with advanced filtering and search
View all your chat conversations and manage them in one place
## Best Practices
**Regular Review**: Check your recent items when you log in to quickly pick up where you left off
**Quick Access**: Use recent items as shortcuts to your most active work
**Stay Organized**: Items appear based on last interaction, so your most relevant content is always visible
***
Recent items are limited to 4 of each type on the home page. Use "See all" to access your complete history.
# Upcoming Calls
Source: https://docs.buildbetter.ai/pages/Home Overview/upcoming-calls
View and manage your scheduled meetings where BuildBetter can record
The Upcoming Calls section on your dashboard provides a comprehensive view of all scheduled meetings where BuildBetter's recording bot can potentially join. This gives you full visibility and control over what will be recorded.
## Overview
Your upcoming calls display shows:
* All calendar-synced meetings for the next 2-3 weeks
* Current bot join status for each meeting
* Quick actions to manage recording preferences
* Meeting details and participants
* Weekly calendar navigation with date jumping and detailed event popovers
See calls organized in a weekly calendar with visual indicators for recording status
Chronological list with detailed information and bulk management options
## Call Information
Each upcoming call displays:
* **Title**: Meeting name from your calendar
* **Time**: Date, time, and duration
* **Platform**: Zoom, Teams, Meet, or Webex
* **Participants**: Attendee list and count
* **Meeting links**: Join or copy supported meeting links
* **Recurrence**: For recurring meetings
* **Will Record**: Bot will join automatically
* **Won't Record**: Bot will skip this meeting
* **Manual**: Requires manual action to join
* **Pending**: Awaiting rule evaluation
* **Workspace**: Recording will be visible to all members
* **Private**: Only you can access the recording
* **Custom**: Specific sharing settings applied
* **Access settings**: Review who will be able to open the recording
## Weekly Calendar View
Use the weekly calendar to:
* Browse upcoming calls by date
* Jump between weeks
* Open event details without leaving the calendar
* Review participants, meeting links, recording status, and access settings
If no calendar is connected, BuildBetter shows a dedicated prompt to connect one from Settings.
## Managing Individual Calls
### Before the Meeting
For each upcoming call, you can:
Click the recording toggle to enable/disable bot joining for specific meetings
Choose whether the recording should be private or shared with your workspace
Pre-add tags, notes, or custom labels that will be attached to the recording
See who will be in the meeting and their BuildBetter profiles if available
Changes to recurring meetings affect all future instances. To modify a single occurrence, use the "This meeting only" option.
### Quick Actions
Hover over any upcoming call to access:
* **Skip This Call**: Prevent bot from joining this specific instance
* **Always Record With \[Person]**: Create a rule to record all meetings with specific attendees
* **View Series**: See all instances of a recurring meeting
* **Copy Join Link**: Get the meeting URL for manual joining
## Filtering and Search
Find specific meetings quickly:
* **By Status**: Will record, won't record, manual
* **By Platform**: Zoom, Teams, Meet, Webex
* **By Date**: Today, this week, custom range
* **By Attendee**: Specific participants
* Search by meeting title
* Search by participant name
* Search by meeting ID
* Search by keywords in description
## Bulk Management
Select multiple meetings to:
* Enable/disable recording for multiple calls
* Set privacy settings in bulk
* Add tags to multiple meetings
* Export meeting list
Use Shift+Click to select a range of meetings or Cmd/Ctrl+Click for individual selection.
## Understanding Bot Status
StatusWhat It MeansAction Needed🟢 Will JoinBot will automatically join based on your rulesNone - recording will happen automatically🔴 Won't JoinMeeting matches skip rules or recording is disabledToggle on if you want to record🟡 ManualNo automatic rules applyDecide whether to record⚪ PendingAwaiting calendar sync or rule processingWait for update or refresh
## Calendar Integration
Upcoming calls are populated from:
* **Google Calendar**: Personal and shared calendars
* **Outlook/Office 365**: All accessible calendars
* **Manual Entries**: Meetings added directly in BuildBetter
Only meetings with valid conference links (Zoom, Teams, Meet, Webex) will appear in upcoming calls.
## Best Practices
**Review Weekly**: Check your upcoming calls each Monday to ensure important meetings will be recorded
**Set Defaults**: Configure [bot recording rules](/pages/Calls%20&%20Recordings/bot-recording-rules) to automate decisions
**Privacy First**: Mark sensitive meetings as private before they occur
**Participant Notice**: Ensure meeting invites mention that calls may be recorded
## Troubleshooting
**Possible Causes:**
* Calendar not synced
* No conference link in invite
* Meeting is too far in future (>3 weeks)
* Calendar permissions issue
**Solutions:**
* Check calendar integration in settings
* Ensure meeting has Zoom/Teams/Meet link
* Meetings appear 3 weeks before start time
* Re-authorize calendar access
**Possible Causes:**
* Rules recently changed
* Calendar update pending
* Conflicting rules
**Solutions:**
* Refresh the page
* Check [recording rules](/pages/Calls%20&%20Recordings/bot-recording-rules)
* Look for rule conflicts in settings
**Possible Causes:**
* Meeting organized by others
* Admin controls enabled
* Platform restrictions
**Solutions:**
* Check with meeting organizer
* Verify your workspace permissions
* Review platform-specific limitations
## Related Features
Configure automatic recording rules based on keywords, participants, and more
Set up and manage calendar connections for automatic meeting detection
Configure default privacy settings for your recordings
View and access your recently recorded meetings
***
Upcoming calls refresh automatically every few minutes. You can also manually refresh by pulling down on mobile or clicking the refresh icon on desktop.
# Dashboard Overview
Source: https://docs.buildbetter.ai/pages/Home/dashboard-overview
Your central hub for accessing BuildBetter's features and tracking workspace activity
The BuildBetter dashboard is your command center—providing instant access to key features, tracking your team's progress, and keeping you informed about upcoming meetings and recent activity.
## Quick Actions
The dashboard presents eight essential actions in an easy-to-access grid layout:
Launch the AI assistant to generate insights, answer questions, and create documentation from your calls and data
Transform your recordings into structured documents like PRDs, meeting minutes, or user stories
Add existing audio or video recordings to your workspace for analysis and transcription
Manually join and record a meeting by providing the meeting link
Capture audio or screen recordings directly from your device (desktop app only)
Explore extracted insights, feedback, and patterns from your calls and data
Create and manage automated workflows to streamline your processes
Add unlimited team members to collaborate in your workspace
## Home Chat
The Home sidebar tab is a chat-first starting point. It brings together:
* **New Chat** starter prompts and quick actions
* **Getting Started** guidance
* **Upcoming Calls**
* **Favorites**
* Recent agent sessions and chat threads
Use Home when you want to resume recent work or start from a prompt instead of navigating to a specific data page first.
## Workspace Statistics
Track your team's productivity and usage with real-time metrics:
Calculated based on the time saved through automated document generation, interview processing, and signal extraction. This metric helps you understand the ROI of using BuildBetter.
Total count of AI-generated documents created from your calls and data. Each document represents hours of manual work automated.
Number of meetings, interviews, and conversations captured in your workspace. This includes both automated and manual recordings.
Automatic categorization tags created across your content, making it easier to find and organize information.
Count of insights, feedback, feature requests, and other important signals identified from your conversations.
Number of queries your AI assistant has responded to, helping your team find information quickly.
Statistics only appear once you have data in your workspace. Start by recording a call or uploading content to see your metrics grow.
## Upcoming Events
Stay on top of your meeting schedule with the upcoming events section:
### Event Cards Display
* **Next 4 meetings** shown by default with essential details
* **Meeting information**: Title, date, time, and countdown
* **Platform indicators**: Icons for Zoom, Google Meet, Teams, or Webex
* **Attendee preview**: Profile pictures of participants
* **Quick actions**: Open meeting link or copy to clipboard
### Recording Controls
Each upcoming event includes:
* **Recording toggle**: Enable or disable automatic recording
* **Access permissions**: Set who can view the recording (participants only or entire workspace)
* **Recurring meeting support**: Special handling for series meetings
Connect your calendar to automatically display and manage upcoming meetings. BuildBetter will join and record enabled meetings automatically.
## Recent Activity
### Recent Recordings
View your four most recent call recordings with:
* **Visual preview**: Thumbnail or waveform display
* **Processing status**: See transcription and analysis progress
* **Quick summary**: AI-generated overview of the call
* **Participant details**: Who attended the meeting
* **Actions menu**:
* Add to favorites
* Copy shareable link
* Organize in folders
* Download recording
* Delete if needed
### Recent Chats
Access your latest AI assistant conversations:
* **Chat previews**: Name and last updated timestamp
* **Quick resume**: Click to continue any conversation
* **Easy navigation**: "See all" to view complete chat history
* **Recents in Home**: Resume recent chat and agent sessions from the Home experience
The dashboard updates in real-time, so you'll always see the latest activity and upcoming events without needing to refresh.
## Personalized Experience
Your dashboard adapts to your usage:
* **Time-aware greeting**: Personalized welcome based on time of day
* **Smart empty states**: Helpful prompts when sections are empty
* **Desktop app features**: Additional capabilities when using the desktop application
* **Onboarding guidance**: New users are guided through setup steps
## Navigation Tips
* Use **"See all"** buttons to explore complete lists for each section
* **Keyboard shortcuts** available for power users (press `?` to view)
* **Search bar** at the top for finding any content across your workspace
* **Workspace selector** in the top-left to switch between workspaces
The dashboard is designed to give you everything you need at a glance while providing quick paths to dive deeper into any area of BuildBetter.
# Our Core Principles
Source: https://docs.buildbetter.ai/pages/Introduction/core-principles
The fundamental principles that guide how we build and evolve BuildBetter
BuildBetter is guided by core principles that ensure we deliver real value while respecting how teams actually work:
Every feature is designed specifically for teams who ship products and need to understand their customers deeply
We only build features that solve actual customer problems - no vanity features or checkbox functionality
We adapt to your existing workflows rather than forcing you to change how you work
We actively listen and evolve based on what our customers actually need, not what we think they need
We build products that everyone in your company can access - no seats, no silos, no barriers
Your data is yours. We never train on it, sell it, or use it beyond serving you better
## What These Principles Mean in Practice
### 1. Purpose-Built for Product Teams
We're not trying to be everything to everyone. BuildBetter is specifically designed for:
* **Product Managers** who need customer insights for roadmap decisions
* **UX Researchers** synthesizing user feedback at scale
* **Customer Success** teams tracking product feedback
* **Engineering Leaders** understanding user pain points
* **Founders** staying connected to customer needs
Every feature we build answers the question: "Does this help product teams ship better products?"
If it doesn't directly contribute to better product decisions, we don't build it.
### 2. Real Problems, Real Solutions
We have a strict rule: **No feature ships unless it solves a real, validated problem.**
This means:
* Every feature starts with actual customer pain points
* We validate solutions with real users before building
* We measure success by customer outcomes, not feature adoption
* If something doesn't deliver value, we remove it
We'd rather have 10 features that deliver real value than 100 that look good in a comparison chart.
### 3. Work Within Your Flow
We recognize that you already have established workflows, tools, and processes. BuildBetter enhances rather than replaces:
**Meeting with your existing tools:**
* Your calendar stays your calendar - we just read it
* Your Zoom/Teams/Meet stays the same - we just join
* Your CRM remains your source of truth - we just enrich it
* Your docs stay where they are - we just help create them
**Adapting to how you work:**
* No forced workflows or rigid processes
* Flexible integrations that fit your stack
* Customizable to your team's terminology
* Works with your existing meeting culture
You shouldn't have to change how you work to get value from BuildBetter. If you do, we've failed.
### 4. Customer-Driven Evolution
We don't build in isolation. Every feature, improvement, and decision is driven by active customer feedback:
**How we listen:**
* Regular customer interviews (we use BuildBetter for this!)
* Feature request tracking and prioritization
* Usage data analysis (privacy-first)
* Direct feedback channels
**How we act:**
* Weekly customer input reviews
* Beta programs for major features
* Rapid iteration based on feedback
* Transparent communication about what we're building and why
Over 80% of our features come directly from customer requests. The other 20%? Usually infrastructure to better deliver on those requests.
### 5. Accessible to Everyone: Breaking Down Silos
We believe insights should flow freely across your organization. That's why:
**No per-seat licenses** - Everyone in your organization gets access
* From intern to CEO, everyone can benefit from customer insights
* No artificial barriers to information sharing
* No "license police" limiting who can view critical feedback
**Usage-based pricing** - You pay for value, not headcount
* Costs based on Data Delivery Units (DDUs), not users
* Predictable pricing that scales with actual usage
* No surprise bills when you hire new team members
**Why this matters:**
* **Breaks down information silos** - Customer insights reach everyone who needs them
* **Maximizes value** - More users means more value from your investment
* **Encourages adoption** - No friction in getting teammates onboard
* **Aligns with growth** - Your costs scale with usage, not team size
This approach means a 10-person startup and a 1,000-person enterprise can both use BuildBetter effectively, paying only for the value they receive.
### 6. Your Data, Your Control: Trust Through Transparency
Your data is the lifeblood of your business. We treat it with the respect it deserves:
**What we DON'T do with your data:**
* ❌ Train our AI models on your data
* ❌ Share or sell your data to third parties
* ❌ Use your insights to benefit competitors
* ❌ Access your data without explicit permission
**What we DO:**
* ✅ Process your data solely to provide you service
* ✅ Maintain strict access controls and encryption
* ✅ Provide complete transparency on data handling
* ✅ Allow you to export or delete your data anytime
**Our commitment:**
* You feed us with your trust and data
* We treat both as sacred
* Every security and privacy decision reflects this responsibility
* We're transparent about our practices - just ask
If you ever have questions about your data, we'll give you straight answers. No legal gymnastics, no evasion - just truth.
## These Principles in Action
### Real Examples
**Purpose-Built Decision**: We chose not to add general-purpose project management features, even though it was requested. Why? It would dilute our focus on product intelligence.
**Real Solutions**: Our [AI-powered signal extraction](/pages/Signals/overview) came from customers manually categorizing feedback. We automated what they were already doing, saving hours per week.
**Working Within Flow**: Instead of building our own video conferencing, we integrate with what you use. Your meetings happen normally - we just make them more valuable.
**Customer-Driven**: [Document generation](/pages/Documents/document-generation) templates came directly from customers sharing their formats with us. We built what they actually needed.
**Accessible Pricing**: A customer with 200 employees pays the same as one with 20 if they process the same amount of data. No seat licenses means their entire team gets value.
**Data Trust**: When enterprise customers ask about AI training, we show them our architecture. Your data stays in your workspace, period.
## Our Commitment
These principles aren't just words - they're commitments:
## Why This Matters
In a world of bloated software, per-seat pricing, and opaque data practices, these principles keep us focused:
* **You get software that actually works** for your specific needs
* **Your entire team can access insights** without budget concerns
* **You can adopt BuildBetter incrementally** without disrupting workflows
* **Your feedback directly shapes** the product you're using
* **You maintain complete control** over your sensitive data
Book a demo to see how we live these principles
Help us build what you actually need
***
*These principles guide every decision we make at BuildBetter. If you ever feel we're not living up to them, please let us know. We take your trust seriously.*
# BuildBetter's Core Differentiation
Source: https://docs.buildbetter.ai/pages/Introduction/differentiation
How BuildBetter stands apart with its three core pillars
BuildBetter stands apart from traditional AI platforms through our focused approach and purpose-built features. Here's what makes us different:
## 1. Three Key Experiences in One Platform
We bundle three essential experiences into a single, integrated platform:
* **Team Call Recording** - Not just external client calls, but internal team discussions as well
* **B2B Qualitative Analysis** - Extract meaningful insights from conversations and text data
* **B2B AI Chat** - Contextualized AI assistance across your workspace
This unified approach eliminates the need for multiple tools, reducing costs and complexity while providing a seamless workflow for teams.
## 2. Built Specifically for B2B Use Cases
Unlike general-purpose AI platforms, BuildBetter is designed from the ground up for B2B environments:
* **Quality Over Quantity** - Focused on depth of analysis rather than just processing volume
* **Enterprise-Grade Permissioning** - Granular access controls and sharing capabilities
* **Compliance-Ready** - Built with privacy and regulatory requirements in mind
* **B2B Integrations** - Seamless connections with tools like Salesforce, HubSpot, Zendesk, and more
* **Team-Oriented Workflows** - Collaborative features designed for cross-functional teams
* **No Per-Seat Pricing** - Scaling without prohibitive costs as your team grows
## 3. Purpose-Built for Teams Who Ship Product
Our platform is specifically designed to deliver clear outcomes for product teams:
* **Actionable Deliverables** - Automatically generate documents like PRDs, user stories, and feature specifications
* **Decision Support** - Synthesize customer feedback to inform product roadmaps
* **Insight Extraction** - Identify patterns across customer conversations to prioritize development
* **Implementation Guidance** - Convert customer needs into technical requirements
* **Progress Tracking** - Monitor how customer feedback is being addressed throughout development
By focusing on these three pillars, BuildBetter provides a uniquely powerful toolset for B2B organizations that need to understand customer needs and translate them into product improvements efficiently.
# Purpose & Audience
Source: https://docs.buildbetter.ai/pages/Introduction/purpose-and-audience
Understanding BuildBetter's value proposition and target users
## Value Proposition
BuildBetter is an AI-powered platform that helps teams extract actionable insights from customer conversations, meetings, and feedback channels. By automatically processing and analyzing your calls, documents, and signals, BuildBetter enables data-driven decision making and keeps everyone aligned on customer needs.
## Who Should Use BuildBetter?
### Product Teams
* **Product Managers** seeking customer insights for roadmap decisions
* [📊 Feedback Collection](/pages/Use%20Cases/product/feedback-collection) - Aggregate and analyze customer feedback at scale
* [💡 Feature Request Management](/pages/Use%20Cases/product/feature-requests) - Track and prioritize feature demands
* [🔬 User Research Analysis](/pages/Use%20Cases/product/user-research) - Extract insights from research sessions
* **UX Researchers** analyzing user feedback patterns
* [🔍 User Research Synthesis](/pages/Use%20Cases/product/user-research) - Turn interviews into actionable insights
* [📈 Pattern Recognition](/pages/Analytics/clustering-insights) - Identify themes across research data
* **Product Marketing** creating customer-centric messaging
* [🎯 Market Insights](/pages/Use%20Cases/leadership/market-insights) - Understand market positioning
* [📝 Document Generation](/pages/Documents/document-generation) - Create marketing collateral from customer language
### Sales Teams
* **Sales Representatives** closing deals faster
* [🎯 Deal Intelligence](/pages/Use%20Cases/sales/deal-intelligence) - Track buying signals and risks
* [🚀 Pipeline Management](/pages/Use%20Cases/sales/pipeline-management) - Accelerate deal velocity
* **Sales Managers** coaching teams to success
* [📚 Coaching & Feedback](/pages/Use%20Cases/sales/coaching-feedback) - Data-driven sales coaching
* [📊 Team Performance](/pages/Use%20Cases/leadership/team-performance) - Monitor and improve team results
### Customer Success Teams
* **Customer Success Managers** ensuring customer health
* [💚 Customer Health Monitoring](/pages/Use%20Cases/cs/customer-health) - Proactive account management
* [🔄 Renewal Tracking](/pages/Use%20Cases/cs/renewal-tracking) - Never miss a renewal opportunity
* **Support Teams** identifying common issues and trends
* [🤝 Support Handoff](/pages/Use%20Cases/cs/support-handoff) - Seamless escalation management
* [📋 Action Items Tracking](/pages/Signals/action-items-tracking) - Follow through on commitments
### Leadership & Stakeholders
* **Executives** tracking voice-of-customer at scale
* [📈 Strategic Planning](/pages/Use%20Cases/leadership/strategic-planning) - Data-driven strategy
* [🌍 Market Insights](/pages/Use%20Cases/leadership/market-insights) - Competitive intelligence
* **Department Heads** monitoring team performance
* [👥 Team Performance Analytics](/pages/Use%20Cases/leadership/team-performance) - Optimize team effectiveness
* [📊 Automated Reports](/pages/Reports/automated-insights) - Regular performance updates
* **Stakeholders** requiring data-backed updates
* [📄 Document Generation](/pages/Documents/document-generation) - Executive summaries and board decks
* [📊 Custom Dashboards](/pages/Reports/automated-insights) - Real-time business intelligence
## Key Benefits by Use Case
Convert raw conversations into structured, actionable data
* Feature requests
* Customer pain points
* Competitive intelligence
* Action items
Eliminate manual note-taking and analysis tasks
* Auto-generated summaries
* Instant document creation
* Automated CRM updates
* One-click ticket creation
Keep teams aligned with shared customer context
* Centralized insights
* Cross-functional visibility
* Shared collections
* Team workspaces
Make choices backed by quantifiable customer signals
* Trend analysis
* Sentiment tracking
* Priority scoring
* Impact measurement
## Industry Applications
### SaaS & Technology
* Product development prioritization
* Customer success optimization
* Competitive analysis
* Feature adoption tracking
### Professional Services
* Client relationship management
* Project feedback analysis
* Proposal optimization
* Team performance improvement
### Healthcare & Life Sciences
* Patient feedback analysis
* Research interview synthesis
* Compliance documentation
* Stakeholder communication
### Financial Services
* Client meeting documentation
* Regulatory compliance
* Investment research synthesis
* Relationship management
## Getting Started by Role
1. [Connect customer feedback sources](/pages/Integrations/comprehensive-overview#support-ticketing)
2. [Set up signal extraction](/pages/Signals/understanding-signals)
3. [Create your first PRD](/pages/Documents/purpose-and-templates)
1. [Enable call recording](/pages/Calls%20%26%20Recordings/recording-methods)
2. [Connect your CRM](/pages/Integrations/comprehensive-overview#crm-integrations)
3. [Configure deal intelligence](/pages/Use%20Cases/sales/deal-intelligence)
1. [Import support conversations](/pages/Organization/conversations-messaging)
2. [Set up health monitoring](/pages/Use%20Cases/cs/customer-health)
3. [Create success playbooks](/pages/Organization/collections-overview)
1. [Configure dashboards](/pages/Reports/automated-insights)
2. [Set up weekly reports](/pages/Reports/automated-insights#scheduled-reports)
3. [Enable team analytics](/pages/Use%20Cases/leadership/team-performance)
BuildBetter is designed for teams that regularly engage with customers and need to extract, share, and act on insights from those interactions. Our platform scales from small teams to enterprise organizations without per-seat pricing.
## Ready to Transform Your Customer Intelligence?
Get started with BuildBetter in minutes
See BuildBetter in action with your use case
# Knowledge Overview
Source: https://docs.buildbetter.ai/pages/Knowledge/overview
Create, share, review, and manage team knowledge, reusable skillsets, groups, and institutional context
Knowledge is BuildBetter's workspace for team context. It includes collaborative knowledge pages, reusable Skillsets, groups, sharing controls, revision history, activity tracking, and review workflows so teams can maintain the context that powers chat, projects, personas, and agent work.
## What Is Knowledge?
Knowledge pages are collaborative documents and reusable context objects organized for teams. Unlike AI-generated Documents, Knowledge content is maintained by your workspace and can be shared, reviewed, revised, and reused across workflows.
Organize pages, groups, and reusable context in structures your team can browse
Full-featured editor with formatting, tables, links, and markdown support
Share Knowledge with the right people and manage group-level access from Settings
Track revisions, activity, and review state so important context stays current
## When to Use Knowledge
### Internal Documentation
* **Process documentation**: Standard operating procedures, workflows, and how-to guides
* **Onboarding materials**: New team member resources and training content
* **Best practices**: Team playbooks, templates, and guidelines
* **Reference guides**: Technical documentation, API notes, and system overviews
### Team Collaboration
* **Meeting notes repository**: Centralized location for recurring meeting notes
* **Project documentation**: Project-specific information and context
* **Decision logs**: Record important decisions and their rationale
* **FAQ pages**: Common questions and answers for your team
* **Skillsets**: Reusable skills, prompts, and operating context that can be managed from the Build app
### Institutional Memory
* **Customer insights**: Synthesized learnings from customer interactions
* **Competitive intelligence**: Information about competitors and market
* **Product context**: Feature explanations, roadmap notes, and priorities
* **Historical documentation**: Archive of important past initiatives
## Knowledge vs Documents
Understanding when to use Knowledge pages versus BuildBetter Documents:
| Feature | Knowledge Pages | Documents |
| - | - | - |
| **Creation** | Manually authored | AI-generated from data |
| **Purpose** | Reference materials, processes | Insights, summaries, reports |
| **Organization** | Hierarchical tree structure | Flat list with permissions |
| **Content** | Static documentation | Dynamic, data-driven content |
| **Best for** | Playbooks, SOPs, guides | PRDs, meeting summaries, analysis |
Use Knowledge pages for content you write and maintain yourself. Use Documents when you want AI to generate content from your calls, signals, and data.
## Core Features
### Groups, Sharing, and Reviews
Knowledge now supports team-oriented controls beyond a simple page tree:
* **Groups** let you organize access around teams, functions, or projects.
* **Flexible sharing** controls who can view, edit, or review important content.
* **Revision history** helps you inspect how a page or skillset changed over time.
* **Activity tracking** shows recent edits and review movement.
* **Review flows** help keep high-value Knowledge current before teams rely on it.
Older Skillsets links redirect into the current Knowledge experience. Existing Skillsets remain available, but the management surface now lives under Knowledge.
### Skillsets Catalog
Skillsets are reusable bundles of skills, prompts, and team context. Use them when you want repeatable behavior from BuildBetter or coding-agent workflows.
* Browse organization-wide Skillsets from Knowledge
* Create, edit, delete, and reorder skillsets and skills
* Review summaries before opening full details
* Copy content to the clipboard
* Use source links and metadata to understand where a skill came from
### Page Hierarchy
Organize your knowledge base with nested pages:
* Create root-level pages for major categories
* Add subpages to build out detailed sections
* Drag and drop to reorganize your structure
* Expand and collapse sections for easy navigation
* Move pages safely with invalid nesting blocked before it can break the tree
### Rich Text Editor
The Knowledge editor supports:
* **Text formatting**: Bold, italic, underline, and links
* **Structure**: Headings, bullet lists, and numbered lists
* **Tables**: Create and resize tables for structured content
* **Markdown**: Write in markdown for faster editing
### Organization & Navigation
Keep your knowledge base organized:
* **Search with Highlights**: Find pages by title or content instantly, with matching text highlighted in results
* **Pagination**: Browse large knowledge bases with paginated results for faster loading
* **Tree navigation**: Browse the hierarchical structure in the sidebar
* **Orphan Detection**: Pages without a parent are flagged so you can reorganize or clean them up
* **Delete Confirmation**: Deleting a page prompts for confirmation and shows affected child pages to prevent accidental data loss
* **Page icons**: Add emojis to visually identify pages
* **Drag-and-drop**: Reorganize pages by dragging them to new locations
* **Hierarchy Safeguards**: Legacy cyclic relationships are cleaned up automatically, and nested pages stay visible even when older page ID formats differ
## Getting Started
Navigate to the Knowledge section in the left sidebar
Click the "+" button to create a new root-level page
Click into the editor and start writing. Your content auto-saves as you type.
Create subpages to build out your documentation hierarchy
Add emoji icons to pages for visual organization
## Common Use Cases
* **Product playbooks**: Launch processes, release checklists
* **Feature specifications**: Detailed feature context and requirements
* **Research summaries**: Synthesized insights from user research
* **Competitive landscape**: Competitor analysis and positioning
* **Sales playbooks**: Objection handling, discovery frameworks
* **Customer profiles**: Key account information and history
* **Implementation guides**: Onboarding processes for customers
* **Success metrics**: KPIs and tracking methodologies
* **Strategic plans**: Company and team objectives
* **Decision frameworks**: How major decisions are made
* **Org context**: Team structures, responsibilities, processes
* **Board materials**: Templates and historical presentations
* **SOPs**: Standard operating procedures
* **Training materials**: Onboarding and upskilling content
* **Tool documentation**: How-to guides for internal tools
* **Policy documents**: HR, security, and compliance policies
## Chat Prompts for Knowledge Pages
Use the BuildBetter chat assistant to help create, refine, and leverage your knowledge pages. Here are practical prompts to get started:
### Writing & Communication Templates
**Create email templates:**
* "Help me write a follow-up email template for after discovery calls"
* "Create an email template for introducing our product to new prospects"
* "Write a renewal reminder email template for customer success"
* "Draft an internal announcement template for new feature releases"
**Refine existing emails:**
* "Make this email more concise and action-oriented"
* "Rewrite this email to sound more professional but friendly"
* "Add a clear call-to-action to this customer email"
**Discovery call frameworks:**
* "Create a discovery call script with qualifying questions for enterprise prospects"
* "Write a QBR agenda template with talking points for customer success"
* "Draft a demo script outline for our main product features"
**Meeting preparation:**
* "Create a pre-call research checklist for sales calls"
* "Write a meeting follow-up template with action items section"
* "Draft an agenda template for weekly team syncs"
**Support responses:**
* "Write a response template for common billing questions"
* "Create a troubleshooting guide template for support tickets"
* "Draft escalation communication templates for urgent issues"
**Success outreach:**
* "Create a check-in email sequence for new customers"
* "Write a template for sharing product updates with customers"
* "Draft a customer feedback request template"
### Process & Playbook Creation
* "Create an objection handling guide for pricing concerns"
* "Write a competitive battlecard template for \[competitor name]"
* "Draft a qualification checklist using MEDDIC framework"
* "Create a negotiation playbook for enterprise deals"
* "Write a handoff process from sales to customer success"
* "Create an onboarding checklist for new customers"
* "Write a health score criteria guide with red/yellow/green definitions"
* "Draft a renewal playbook with timeline and touchpoints"
* "Create an escalation process for at-risk accounts"
* "Write a customer expansion playbook for upsell opportunities"
* "Create a feature request intake process"
* "Write a bug triage guide with severity definitions"
* "Draft a release checklist for product launches"
* "Create a user research interview guide template"
* "Write an incident response playbook"
### Documentation & Reference
* "Create a glossary of terms our team uses"
* "Write an FAQ page for new team members"
* "Draft a tool stack overview with links and owners"
* "Create a decision log template with context and rationale sections"
* "Write a team charter template with roles and responsibilities"
* "Create a product FAQ based on common customer questions"
* "Write a getting started guide outline for new users"
* "Draft a best practices guide for \[feature/workflow]"
* "Create a troubleshooting guide for common issues"
* "Write a use case guide showing different ways to use our product"
* "Create a training curriculum outline for new sales reps"
* "Write a certification checklist for customer success managers"
* "Draft a shadowing guide for onboarding new team members"
* "Create a skills assessment template for team development"
* "Write a coaching framework for managers"
### Using Chat with Your Knowledge Pages
Once you've created knowledge pages, you can reference them in chat:
* "Based on our sales playbook, how should I handle this pricing objection?"
* "Using our onboarding checklist, what steps are we missing for this customer?"
* "Compare this customer's situation to the criteria in our health score guide"
* "Help me customize our email template for this specific prospect"
* "What does our process documentation say about handling escalations?"
Create knowledge pages for your most common workflows first, then use chat to help you apply those templates to specific situations. This combination of documented processes + AI assistance is powerful for consistency and speed.
## Best Practices
### Page Organization
* **Use clear naming**: Make page titles descriptive and searchable
* **Limit nesting depth**: Keep hierarchy to 3-4 levels maximum
* **Group related content**: Use parent pages to organize categories
* **Add context**: Include emoji icons to help with visual scanning
### Content Quality
* **Keep pages focused**: One topic per page for easier maintenance
* **Include examples**: Add concrete examples to illustrate concepts
* **Link between pages**: Reference related pages to build connections
* **Update regularly**: Schedule periodic reviews to keep content fresh
Knowledge pages are workspace-scoped, meaning all members of your workspace can view and edit them. Use the tree structure to create clear ownership and organization.
# Skillset Governance
Source: https://docs.buildbetter.ai/pages/Knowledge/skillset-governance
Control who can read and edit skillsets, track revisions and revert changes, and review proposed skill updates
Skillsets are shared organizational knowledge, so they carry access control, full revision history, and a review queue for proposed changes.
## Access Control
Each skillset has an **access mode**:
| Access mode | Who can see it |
| - | - |
| `organization` | Everyone in the organization |
| `restricted` | Only principals with an explicit access grant |
For a restricted skillset, you manage **access grants**. Each grant targets a principal and confers a level:
* **Principal type** — `organization`, `group`, or `user`
* **Access level** — `read` or `write`
Any given viewer resolves to an **effective access** of `none`, `read`, or `write`. Effective access is what actually governs the UI and API; it's the value to check when someone reports they can't see or edit a skillset.
Grants are upserted, so re-granting to the same principal updates the existing grant rather than stacking duplicates. To remove access, delete the grant — don't try to override it with a lower one.
## Revision History
Every skill carries a numbered revision history. You can:
* **List revisions** for a skill
* **Retrieve a specific revision** and read its content as it existed then
* **Revert to a revision**, restoring that content
Reverting is a normal forward-moving edit — it creates new history rather than erasing what happened in between, so the record of what the skill said and when stays intact.
## Proposed Skill Updates
Skills can receive **update suggestions** rather than being edited directly. This is how a skill stays current without any agent silently rewriting your organization's shared instructions.
Each suggestion carries:
| Field | Meaning |
| - | - |
| `sourceType` | Where it came from — `mcp_agent` or `automatic_signal` |
| `sourceEvidence` | What prompted the suggestion |
| `patchFormat` | Always `unified_diff` |
| `baseRevisionVersion` | The revision the patch was written against |
| `proposedBy` | The user the proposal is attributed to |
| `reviewedBy` | Who acted on it, once reviewed |
### Statuses
| Status | Meaning |
| - | - |
| `open` | Awaiting review |
| `accepted` | Applied to the skill |
| `rejected` | Declined |
| `superseded` | No longer applicable — the skill moved on beneath it |
Because a suggestion is a diff against a specific `baseRevisionVersion`, a suggestion written against an older revision can become **superseded** when the skill changes underneath it. That's expected, not a failure: it means the proposal was reasoning about content that no longer exists.
Review the diff, not just the summary. Suggestions are patches against a specific base revision, and accepting one applies that patch — so a stale suggestion is exactly the case worth reading carefully.
## Activity and Usage
Two separate views answer two different questions:
* **Skill activity** — what happened *to* the skill: edits, reverts, review actions.
* **Skill uses** — when the skill was actually *read*, and by whom.
Usage data is the honest signal about whether a skill earns its place in the catalog. A skill with a rich edit history and no reads is one somebody maintains and nobody consults.
Both activity and use records are attributed to user principals.
## Next
Building the catalog and distributing it through MCP.
How Knowledge fits together.
# Skillsets
Source: https://docs.buildbetter.ai/pages/Knowledge/skillsets
Build an organization-wide catalog of agent skills and distribute it to any AI client through MCP
Skillsets (`/knowledge/skillsets`) are BuildBetter's organization-wide catalog of **agent skills** — reusable Markdown instructions that any teammate's AI agent can find and read without cloning a repository, installing a CLI, or knowing an internal file path.
A **skillset** is a named collection. A **skill** is one piece of Markdown content inside exactly one skillset.
Skillsets requires the organization-level `skillsets` feature flag.
## Why It Exists
BuildBetter already tracked skills installed in connected code repositories. Skillsets solves a different problem: a marketing, GTM, support, or product teammate needs the same current instructions an engineer has, and shouldn't need developer tooling to get them.
By exposing the catalog through [BuildBetter MCP](../MCP/tool-reference), any authenticated agent — Claude, ChatGPT, Cursor, or anything else that speaks MCP — can discover and read your skills. BuildBetter serves the content; the client decides how to use it.
## Structure
| Concept | Rules |
| - | - |
| **Skillset** | Organization-scoped. Has a display name and a stable slug for filtering. Slugs are unique among active skillsets in an organization. |
| **Skill** | Belongs to exactly one skillset. Has a name, optional description, and full Markdown content. Names are unique among active skills within a skillset. |
| **Position** | Skills carry an integer position, so catalog order is stable and you control it. |
Both expose a stable UUID `public_id` through external APIs. Deletion is soft, so removing a catalog entry doesn't immediately destroy history.
## Managing the Catalog
From the Skillsets page you can:
* Create, edit, and delete skillsets
* Create, edit, and delete skills within a set
* Reorder skills (move up / move down)
* Copy a skill's content
* View a selected skill's description and full rendered content
Order is not cosmetic. Agents read the catalog in the order you set, so put foundational skills before the ones that build on them.
## Reading Skills from an Agent
Three read-only MCP tools cover discovery and retrieval:
| Tool | Returns |
| - | - |
| `list-skillsets` | Active skillsets for your organization, with skill counts and skill summaries — no full content |
| `list-skills` | Skill summaries, filterable by skillset UUID, name or slug, and an optional text phrase |
| `get-skill` | One skill's complete Markdown content, plus its parent skillset context |
All three are annotated read-only, idempotent, and non-destructive.
Two behaviors worth knowing:
* **Empty is not an error.** No matches returns structured JSON with `total: 0` and an empty array.
* **Cross-organization existence never leaks.** A missing or inaccessible id returns a not-found style error that doesn't reveal whether the id exists in some other organization.
MCP reads are scoped to the authenticated principal's organization and never call external source providers live. The catalog you read is the catalog stored in BuildBetter.
## What Skillsets Is Not
* **Not repository skills.** Skillsets are a separate, organization-scoped model from skills installed in a connected code repository. The two are not unified.
* **Not synced from GitHub.** External source configuration, sync, pull-request writeback, and version proposal workflows are deferred. There is no source to configure.
* **Not auto-generated.** BuildBetter does not invent skills from your signals or rewrite them on its own. Changes are proposed and reviewed — see [Skillset Governance](./skillset-governance).
* **Not installed into your AI client.** MCP exposes the content; the client decides what to do with it.
## Next
Access control, revision history, and reviewing proposed skill updates.
Every BuildBetter MCP tool, including the skill catalog tools.
# Persona Chat
Source: https://docs.buildbetter.ai/pages/Personas/chat
Have one-on-one AI conversations with a synthetic persona — roleplay as them or analyze how they would react
Persona Chat lets you talk directly with a persona. The AI stays grounded in the persona's profile, the signals that shaped it, and any Knowledge pages you linked — so the conversation reflects what that kind of customer would actually say.
## Two Chat Modes
Roleplay as the persona in first person. The AI responds as "I would..." — useful for rehearsing a sales pitch, testing a cold email, or simulating a support conversation.
Analyze the persona in third person. The AI responds as an analyst — "they would likely...", "their main concern is..." — useful for research prep, positioning work, or persona onboarding for your team.
Both modes use the persona's full profile and underlying signal data. They just answer from different vantage points.
## Starting a Chat
1. Open **Personas Chat** or any persona from your library
2. Choose a saved panel, a specific persona, or people directly when prompted
3. Pick **Talk at** or **Talk with** when you start
4. Send messages — responses stream back in real time
You can have multiple chats with the same persona — each is saved separately with its own history.
## What a Persona Knows
When you chat, the AI has access to:
* The persona's full profile — personal, professional, psychographics, and company context
* The signals that were used to generate the persona (and any new signals matching their segment)
* Any Knowledge page you linked to the persona for extra context
Personas can cite specific signal IDs when they back up a claim, so you can click through to the underlying customer data.
## Good Uses for Chat
* "How would you react to this email subject line?"
* "What's the first objection you'd raise to this pitch?"
* "Rewrite this value prop in your own words."
* "Walk me through your current workflow for X."
* "What would make you take a demo of a product in this space?"
* "How do you evaluate vendors when buying?"
* "What problems do you run into today that we might not know about?"
* "Which of these three concepts sounds most useful, and why?"
* "What would stop you from adopting this feature?"
Switch to **Talk with** mode and ask:
* "Summarize this persona in 3 bullets."
* "What are the top 3 risks when selling to them?"
* "Where do they already have tools that compete with us?"
Chat is great for fast iteration on one idea. When you need signal across a group — a panel of dozens of respondents — run a [Persona Test](./persona-tests) instead.
# Synthetic Companies
Source: https://docs.buildbetter.ai/pages/Personas/companies
Browse the synthetic companies that back your personas — same data model as personas, scoped to the company level
Personas are tied to **synthetic companies**: the AI-generated company contexts that anchor a persona's industry, size, structure, and buying process. The Companies view (`/personas/companies`) is a dedicated workspace for browsing those companies, seeing which personas they're tied to, and managing the synthetic firmographic data behind your panel.
## What's on the Companies List
Each row shows:
* **Name** — the synthetic company's name
* **Avatar** — generated icon
* **Industry**
* **Size** — employee count range or band
* **Archetype** — e.g., "Enterprise legacy", "PLG mid-market", "Bootstrapped startup"
* **Persona count** — how many personas in your library are tied to this company
* **Created / Updated** — relative timestamps
Click any row to open the company detail page (`/personas/companies/:companyId`).
## Company Detail
The detail page shows:
* **Profile** — full firmographic record (industry, size, structure, budget, buying process, software stack, strategic priorities)
* **Linked personas** — every persona in your library backed by this company
* **Description** — AI-generated long-form description
## Why Companies Matter
When you generate a persona, the AI grounds them in a realistic company. Two personas tied to the same synthetic company will:
* Share firmographic context (industry, size, structure)
* Often reference the same buying process and software stack
* Sometimes have aligned strategic priorities — useful for testing how multiple roles in one buying committee react to the same idea
This is the persona equivalent of an account in your real CRM — one organization, multiple stakeholders.
## Managing Companies
You can:
* Edit a company's name, description, industry, size, archetype, and profile from its detail page
* Delete a company — the linked personas remain (they just lose the company anchor)
* See company-grouped views in tests if multiple respondents share a company
If you want to test "how does an enterprise buyer respond vs. an SMB buyer?", build two synthetic companies (one enterprise, one SMB) and create personas tied to each. Then run the same test on both segments and compare the aggregate results.
# Creating Personas
Source: https://docs.buildbetter.ai/pages/Personas/creating-personas
Generate synthetic personas from your signals, from a prompt, or manually — and review the profile before saving
There are several ways to create a persona, depending on how much data you're starting from.
## Generate From Filtered Signals
The most data-grounded path. Filter your signals to the audience you want to capture, then let the AI read that slice of your data and produce a full persona profile.
Narrow signals down to the segment you want represented — for example, "trial users who mentioned pricing in the last 90 days" or "CS conversations about integrations."
Before generating, you'll see the signal count, unique user count, company count, and a sample of the signals the persona will be built from. Adjust the filter if the sample doesn't look right.
Add a workspace-level description (e.g., "We're a B2B scheduling platform") and an optional brief to steer the persona (e.g., "Focus on the IT admin view").
The AI produces a complete profile — personal details, professional context, psychographics, and company context — with quotes tied back to specific signals.
Adjust the name, pick a customer stage and product familiarity, optionally link a Knowledge page for extra context, and save to your persona library.
## Generate From a Prompt
When you don't have a pre-filtered slice in mind, start from a prompt and let the system recommend which persona types to build.
* Enter a free-form prompt describing the kind of persona you want (e.g., "Skeptical mid-market buyer evaluating us against \[competitor]").
* The AI looks at your org's person type templates and recommends which ones to generate new personas from.
* Pick the recommendations you want, refine if needed, and the system batch-creates the personas.
## Generate in Bulk From Person Types
If you've set up custom person type templates (see [Settings & Access](./settings)), you can pick several at once and have the system generate one or more personas from each template. Useful when you want coverage across your whole audience quickly.
## Create Manually
You can also build a persona by hand — fill in the name, profile details, customer stage, company context, and any quotes or behaviors you want to capture. Manual personas live alongside generated ones and can be edited the same way.
## What's in a Persona Profile
Each persona captures four layers of context:
| Layer | What's Included |
| - | - |
| **Personal profile** | Name, job title, seniority, and any demographic detail the data supports (age, location, education, income) |
| **Professional context** | Responsibilities, goals, experience level, day-to-day schedule, and tools |
| **Psychographics** | Motivations, preferences, behaviors, needs, pain points, and representative quotes from the underlying signals |
| **Company context** | Size, industry, structure, budget, buying process, software stack, and strategic priorities |
Generated personas cite the specific signals that shaped each claim. When you open a persona, you can trace any quote or pain point back to the real customer conversation it came from.
## Persona Metadata
Every persona is also tagged with two fields you can edit anytime:
* **Customer stage** — `new prospect`, `trial`, `active customer`, `power user`, or `churned`. Controls how the persona frames their relationship with your product.
* **Product familiarity** — `none`, `basic`, `intermediate`, or `advanced`. Controls how much they assume in chats and tests.
Getting these right sharpens every downstream chat and test, so update them whenever a persona's role shifts.
## Editing and Organizing
From the persona library you can:
* Open any persona to see their full profile, signal count, linked users, and linked companies
* Edit any field — the AI-generated content is a starting point, not locked in
* Link a persona to a Knowledge page so chats and tests can pull in extra context
* Delete a persona when it's no longer useful
Persona names are automatically de-duplicated at generation time, so two generated personas won't end up with the same name. Manually created personas can share any name you pick.
# Synthetic Personas Overview
Source: https://docs.buildbetter.ai/pages/Personas/overview
Create AI-powered synthetic personas from your real customer data and use them to chat, test concepts, and run simulated research at scale
Synthetic Personas turn your real customer data into AI personas you can talk to, test concepts against, and run research studies with. Each persona is grounded in the signals, calls, and feedback you've already collected, so their answers reflect what your real customers actually said.
## What You Can Do
Filter your signals and generate a synthetic persona whose profile, goals, and pain points are grounded in real customer evidence.
Have a one-on-one conversation with a persona — either roleplaying as them or analyzing how they'd react.
Show a concept, message, or set of options to a persona or a whole panel and collect structured reactions, scores, and reasoning.
Generate AI image variations for marketing assets, compare results, and review synthetic persona feedback.
Group personas together — including replica sets that simulate within-segment variation — to test ideas against a realistic audience.
## Core Concepts
| Concept | What It Means |
| - | - |
| **Persona** | A synthetic customer profile generated from your signals. Captures demographics, job context, goals, pains, motivations, and company context — with citations back to the signals that shaped it. |
| **Panel** | A group of personas you can test against together. Can include single personas and replica sets. |
| **Replica Set** | Multiple AI-generated variations of one base persona. Simulates how a message lands across slightly different respondents in the same segment. |
| **Variation Strength** | Controls how much replicas differ from the base persona — low for subtle differences, high for broader range. |
| **Test Run** | A research study where personas respond to a prompt or concept. Returns per-respondent reactions and aggregate metrics. |
| **Marketing Variant Run** | A marketing project that combines target audiences, uploaded assets or text ideas, AI-generated image variations, comparison, persona feedback, and downloadable winning variants. |
| **Chat Mode** | *Talk at* (roleplay as the persona in first person) or *Talk with* (analyze the persona in third person). |
| **Respondent** | An individual persona or replica that participated in a test run. |
| **Synthetic Company** | An AI-generated company context that anchors a persona's industry, size, and buying process. Multiple personas can share one company. |
## Why Synthetic Personas
* Pressure-test feature concepts before a single build cycle
* Get first-read reactions to positioning, copy, and designs from data-grounded personas
* Compare how different segments (new prospects vs. power users) react to the same idea
* Validate messaging and value props against your actual ICP, not invented personas
* A/B two headlines or landing concepts across dozens of synthetic respondents
* Generate realistic quotes, objections, and reactions for positioning work
* Scale qualitative research by running concept tests against panels of hundreds of replicas
* Run single-choice studies to see which option resonates and why
* Save results to Knowledge pages so insights stay with your team
* Rehearse discovery or objection-handling conversations with a persona that sounds like your real buyer
* Validate expansion or renewal pitches against personas built from your current book of business
## How It Works
Filter signals to the audience you want to capture, then generate a persona. The AI produces a full profile and cites the signals that shaped it.
Open a persona to chat directly, or add them to a panel alongside other personas and replica sets for coordinated testing.
Write a prompt (or add options and images for a choice test), pick an audience, and launch. Each respondent returns a scored, tagged, cited reaction.
Start from a persona panel or marketing project, upload assets or text ideas, generate variations, compare results, and download the winning assets.
See aggregate scores, sentiment, top themes, and per-respondent breakdowns. Export to PDF or save the findings to a Knowledge page.
Synthetic Personas is gated per organization. If you don't have access yet, you'll see an unlock page inside the app — request access from there and our team will turn it on for your workspace.
# Persona Panels
Source: https://docs.buildbetter.ai/pages/Personas/panels
Group personas and replica sets into panels to test concepts against a realistic audience in a single run
A panel is a group of personas you can test against together. Instead of running a test against one persona at a time, you build a panel that looks like your target audience and hit it with one prompt.
## What You Can Put in a Panel
Each panel member is either:
* **A single persona** — one respondent per member
* **A replica set** — multiple AI-generated variations of one base persona (up to 100)
Replica sets are what let a panel feel like a real audience. Instead of one "VP of Ops" weighing in, you can have 25 slightly different VPs of Ops react to the same prompt and see the distribution.
## Creating a Panel
Give it a name and an optional description describing what it represents (e.g., "Mid-market buyers — ops and RevOps").
Add as many members as you want. For each, pick either a single persona or a replica set.
For each replica set, choose the base persona, set the replica count (1–100), and pick a variation strength: low, medium, or high.
The system auto-generates the synthetic respondents behind each replica set so the panel is ready to test immediately.
## Variation Strength
Variation strength controls how much each replica differs from its base persona:
| Setting | What It Does | When to Use |
| - | - | - |
| **Low** | Small variations in wording, tone, and priorities while keeping the persona nearly identical | When you want a tight audience — e.g., a specific role at a specific segment — and just need multiple data points |
| **Medium** | Moderate variation across preferences, behaviors, and context while staying in the same segment | Default for most tests — balances realism with coherence |
| **High** | Broader variation — different companies, slightly different roles, different motivations — while staying in the intent of the base persona | When you want to stress-test an idea across a wider slice of a segment |
Start with **medium** for a new panel. If all replicas end up saying the same thing, bump to **high**. If reactions feel all over the place, drop to **low**.
## Managing a Panel
From the panel detail page you can:
* See total member count and total respondent count (base personas + every replica)
* Reorder members to control how they appear in reports
* Edit or delete the panel
* Launch a test run with the entire panel as the audience
## When to Use Panels vs. Single Personas
* Use a **single persona** for focused work — one-on-one chats, message rehearsals, or quick gut checks.
* Use a **panel** when you want signal across a group — concept tests, A/B choice tests, or distribution-style results ("how does sentiment vary across 30 respondents in this segment?").
A panel doesn't lock you into testing everyone at once. You can still run a test against a subset of persona IDs even when they're part of a panel.
# Persona Tests
Source: https://docs.buildbetter.ai/pages/Personas/persona-tests
Run structured research studies against a persona or panel — collect scores, sentiment, verdicts, and aggregate metrics
Persona Tests are structured research runs. You show a concept, message, or set of options to a persona (or a whole panel) and every respondent returns a scored, tagged, cited reaction. Aggregate results roll up into a read on how the idea landed across the audience.
## Study Types
Open-ended reactions. Each respondent writes a verdict, summary, and reasoning in their own voice. Best for messaging, positioning, and concept feedback.
Respondents pick one option from a set you provide. Returns a vote breakdown plus per-respondent reasoning for each choice. Best for A/B testing headlines, designs, or value props.
## Launching a Test Run
This is what respondents will react to — a headline, a product concept, a value prop, a chunk of landing page copy, anything.
Qualitative for open reactions, or single-choice if you want respondents to pick an option.
Add 2 or more options. Each option can have a label and an optional image.
Add up to 4 images to show alongside the prompt — useful for design mocks, screenshots, or marketing assets.
Either select people directly, select a list of persona IDs, or choose an entire saved panel. Replica sets inside a panel all participate.
Review the estimated credit cost, confirm you have enough credits, then launch. Runs go through `queued → running → completed` (or `failed`). Large panels run asynchronously — you can leave the page and come back.
Persona test runs show estimated credit cost before launch. Fully failed runs are not charged, and partially completed runs are billed only for successful completions.
## What Each Respondent Returns
For every respondent, the test produces:
| Field | What It Means |
| - | - |
| **Overall score** | 0–100, higher is more positive. Color-coded in the UI (green 75+, yellow 50–74, red under 50). |
| **Sentiment** | Positive, neutral, or negative. |
| **Verdict** | One-line bottom-line reaction. |
| **Summary** | First-person reaction in the persona's voice. |
| **Reasoning** | Why the persona reacted that way, grounded in their profile and signals. |
| **Tags** | Topic/theme labels the persona reacted to — used for aggregate top-themes rollup. |
| **Selected option** | The option they picked (single-choice only). |
| **Dimension scores** | Clarity, relevance, trust, and likelihood to act — each 0–100. |
| **Cited signals** | Signal IDs the respondent referenced when reacting. |
## Aggregate Results
At the top of every completed run you'll see:
* **Response totals** — completed, failed, and running counts
* **Average scores** — overall plus each dimension (clarity, relevance, trust, likelihood to act)
* **Sentiment distribution** — positive / neutral / negative counts
* **Top tags** — the themes that came up most across respondents
* **Option breakdown** (single-choice only) — vote count and percentage per option, with the winner highlighted
Below the aggregate you get a sortable, filterable respondent table showing each persona's score, sentiment, verdict, and expandable reasoning.
## Saving and Sharing Results
Every completed run has two export paths:
* **Save to Knowledge** — creates a structured Knowledge page with the prompt, aggregate metrics, top respondents, and breakdown by type. Keeps the finding inside BuildBetter next to other research.
* **Export to PDF** — produces a formatted report with the same content for external sharing.
* **Download marketing assets** — for marketing variant projects, download project assets and winning variants.
## Marketing Variant Projects
Marketing variant projects let you test creative ideas against saved panels or personas:
1. Start from a marketing project or directly from a persona panel.
2. Choose the target audience from saved panels or personas.
3. Upload assets or text ideas.
4. Generate AI image variations.
5. Compare results and review synthetic persona feedback.
6. Download project assets and winning variants.
Before larger generation and evaluation runs, BuildBetter shows projected usage estimates and asks for confirmation.
Run the same prompt against two different panels — e.g., prospects vs. power users — and compare the aggregate cards side by side. It's one of the fastest ways to see where messaging resonates differently by segment.
## Limits
* Up to **100 replicas** per panel member
* Up to **4 images** per test prompt
* Single-choice tests require **2 or more options**
* No limit on qualitative study prompt length
# Settings & Access
Source: https://docs.buildbetter.ai/pages/Personas/settings
How to request access to Synthetic Personas and configure the person types that guide persona generation
## Requesting Access
Synthetic Personas is gated per organization. If the feature isn't turned on for your workspace, opening Personas shows an unlock page with a short overview and a **Request Access** button. Use that button — our team will enable the feature for your organization.
Once Personas is enabled for your org, it's available to everyone in the workspace with standard access. There are no role-level restrictions layered on top.
## Person Types
Person Types are templates that describe the kinds of people who show up in your calls and data — for example, "VP of RevOps", "IT admin", "power user". They do two things:
1. **Label people** that appear in your calls and signals
2. **Guide persona generation** — when you generate a persona from a prompt or in bulk, the system recommends from your Person Types
Person Types live in **Org Settings → Customization → Personas**.
### Two Kinds of Person Types
| Type | Source | Editable? |
| - | - | - |
| **Manually labeled** | Custom types your org created | Yes — edit, rename, change icon, or delete |
| **Auto-detected** | Detected by the BuildBetter Agent from your data | No — read-only, managed by the system |
### Managing Custom Person Types
From the Personas settings page you can:
* Create a new custom person type with a name, description, and optional icon
* Edit any custom type's name, description, or icon
* Delete custom types you no longer need
Auto-detected person types show up in the same list but are not editable — they update as the BuildBetter Agent learns more about who's in your data.
Invest a little time upfront in custom Person Types. Bulk persona generation is much more useful when the underlying type templates match your real audience segments.
## Linking to Knowledge
Any persona can be linked to a Knowledge page. The linked page is included as extra context in:
* Persona Chat — answers draw from the Knowledge page as well as signals
* Persona Tests — respondents consider the Knowledge content when reacting
This is useful for pulling in things the AI can't infer from signals alone — like a competitor brief, a positioning doc, or a detailed ICP write-up.
## Saving Results to Knowledge
From any completed test run you can save the results back to Knowledge. This creates a new Knowledge page that contains the prompt, aggregate metrics, top respondents, and breakdown by type — so research findings live alongside the rest of your team's documentation.
# Boards & Voting
Source: https://docs.buildbetter.ai/pages/Portal/boards-and-voting
Run public feedback boards, manage posts and statuses, and see the people and companies behind every vote
A **feedback board** is where customers post ideas and vote on them. It is the public half of your feature-request pipeline.
## Posts
Each post on a feedback board carries a title, body, and a status. You can create posts yourself — useful when you want to seed a board, or surface a request that came in through a call rather than the portal — and you can edit or delete them.
Posts are the unit customers vote on, so keep one post per idea. Two posts for the same request split the demand signal and make the board look busier than the underlying need actually is.
## Statuses
A board's **status columns** define the states a post can be in. The default set is:
| Status | Means |
| - | - |
| **Planned** | Committed, not started |
| **In Progress** | Being built now |
| **Shipped** | Released |
Setting a post's status is what moves it on the public [Roadmap](./roadmap) — the roadmap is a view over these columns, not a separate artifact you maintain.
Only set **Planned** on things you actually intend to build. A public board makes the roadmap a soft commitment, and moving items back out of Planned is the fastest way to lose trust in it.
## Voting
Votes are attributable. For any post you can list its **voters** — the people who voted and the companies they belong to.
That matters more than a raw count:
* **Ten votes from one account** is one customer with a strong opinion.
* **Ten votes from ten accounts** is a market signal.
* A count alone can't tell you which you have.
You can also add a voter to a post directly, for when someone asks on a call rather than through the portal, so the public tally reflects real demand rather than portal-participation rates.
## Post Matching
Customers only post a fraction of what they ask for. The rest arrives in calls, tickets, and conversations, where BuildBetter already extracts it as feature requests.
**Post matching** connects the two. For a given post you can list its candidate matches from your extracted feedback, then apply a match to link them. The result is one item carrying evidence from both the public board and every private conversation that touched it.
This is the difference between a portal that reflects what customers bothered to type and one that reflects what they actually said. Review matches for anything you're about to prioritize.
## Visibility
Boards are `public` or restricted, and can be disabled without being deleted. Running a board privately while you find your footing — then flipping it public once the statuses are honest — is a reasonable way to start.
## Next
How status columns become the public roadmap.
Publishing what shipped.
# Changelog
Source: https://docs.buildbetter.ai/pages/Portal/changelog
Publish release notes to a public board and embed a what's-new feed in your own product
A **changelog board** is a public feed of what you shipped. Entries are drafted, then published, and can be embedded directly in your product.
## Entries
Each entry carries a title, a slug, a body, labels, and a published date.
| Field | Notes |
| - | - |
| **Title** | Usually a version (`v0.3.2`) or a date (`2026-08-14`) |
| **Slug** | URL segment, derived from the title |
| **Labels** | `New`, `Improved`, `Fixed` |
| **Status** | Draft until published |
| **Published at** | The date shown to readers |
Entries are created and edited as drafts, then **published** as a separate step — so an entry can be written ahead of a release and go live when the release does.
Label entries properly. Labels are how a reader skims for the one line that affects them instead of reading everything. An unlabelled changelog gets scanned once and then ignored.
## One Board or Several
Changelog boards are boards, so you can run more than one. Separate feeds per product line — a desktop app, a recorder, a mobile client — keep each audience's feed relevant. Each gets its own name and slug.
## Embedding the Feed
To display the full changelog board on your own website, follow [Embed and Domain Setup](./embed-and-domain-setup). The guide includes the script, DNS and HTTPS instructions, and browser checks for a subdomain or website path.
A changelog board can be embedded in your own application with a **public board key**. The embed gives you:
* A lightweight **what's-new badge** and release feed
* **Unread tracking**, so returning users see what's new since their last visit
* **Isolated styling**, so the widget doesn't inherit or fight your CSS
Unread tracking is what makes an embedded feed worth installing. A feed that shows the same entries to everyone forever gets dismissed once and never opened again.
## Changelog as an Input, Too
Your published changelog is also a **source** BuildBetter reads:
* [Releases / Close the Loop](../Success/close-the-loop) ingests changelog entries alongside GitHub releases and RSS to build the shipped-feature catalog.
* [Knowledge Gaps](../Success/knowledge-gaps) checks those same releases against your documentation.
So writing a substantive entry does double duty: customers read it, and BuildBetter uses it to match shipped work back to requests and to find documentation that fell behind.
Version-only entries — a number and nothing else — give both features nothing to work with. Knowledge Gaps will classify them `insufficient_evidence` and Close the Loop can't match them to a request. A sentence about what changed is the difference.
## Publishing vs Telling
Publishing an entry is a broadcast. It does not tell the customer who asked for that specific feature — see [Close the Loop](../Success/close-the-loop) for the individual follow-up.
## Next
How boards fit together.
Finding docs your releases outran.
# Embed Your Portal on Your Website
Source: https://docs.buildbetter.ai/pages/Portal/embed-and-domain-setup
Set up a feedback board, roadmap, or changelog at your own subdomain or website path
You can display a BuildBetter board on a page that your website hosts. Customers visit your address, such as `feedback.example.com`, `changelog.example.com`, or `example.com/feedback`.
Your website supplies the page and HTTPS certificate. BuildBetter supplies the board inside an iframe. The browser address stays on your website as customers use the embedded board.
This setup uses the existing portal embed. You do not need a BuildBetter custom-domain setting or the **Copy embed** button to use it.
## Before You Start
You need:
* An enabled **public** or **unlisted** BuildBetter board.
* Access to publish a page on your website.
* Access to your DNS settings if you want a new subdomain.
An unlisted board is not private. Anyone with its link can view it. Keep confidential feedback on a private board and share its direct BuildBetter link with authorized customers.
Private boards can require sign-in inside the iframe. Some browsers block the cookies that this sign-in needs. Use the direct board link for private access.
## 1. Select the Board
1. In BuildBetter, open [Portal boards](https://app.buildbetter.app/build/portal/boards).
2. Select the feedback or changelog board you want to display.
3. Check that the board is enabled and its visibility matches your intended audience.
4. Open the board's public link with **Preview**.
5. Copy the board key from that link.
For example, this public link contains the board key after `/p/`:
```text theme={null}
https://app.buildbetter.app/p/11111111-2222-4333-8444-555555555555
```
In this example, the key is `11111111-2222-4333-8444-555555555555`. Use your own board's key, not this sample or the internal board number from the management page. The board key is a public identifier, not an API key.
Open the public link in a private browser window before you embed it. If the board does not load directly, resolve its visibility or access settings first.
## 2. Set the Branding
Open [Portal settings](https://app.buildbetter.app/build/portal/settings). Set the logo, colors, and theme you want customers to see.
Turn on **White-label** to hide **Powered by BuildBetter**. Select **Save settings**.
The embed uses the portal's branding. Your website's CSS styles the surrounding page, but does not change the board inside the iframe.
## 3. Add the Embed to a Page
Paste this script where you want the board to appear. Replace `YOUR_BOARD_KEY` with your board's key.
```html theme={null}
```
If you use a website builder, use its custom HTML or code block. A plain text block displays the code instead of running it. Your website plan must allow scripts.
For a standalone page, save this as `index.html` and publish it with your website host:
```html theme={null}
Customer Feedback
```
The embed adjusts its height as the board loads and customers open posts. You do not need to set a fixed iframe height.
The full-page portal embed differs from the changelog notification widget. Use this script to display the board on a page. Use the changelog widget for a notification badge inside your product.
### Select the Initial View
Without `data-view`, the board opens its normal landing view. You can request an available tab with `data-view`:
| Value | Use |
| - | - |
| `feedback` | Open the feedback tab on a feedback board. |
| `roadmap` | Open the roadmap when that board has it available. |
| `changelog` | Open the changelog view. Use your changelog board key for a release feed. |
For example, add `data-view="roadmap"` to the script for a feedback board with a roadmap. The attribute does not create a tab or change the board's kind.
## 4. Choose Your Address
### A Subdomain: `feedback.example.com`
1. Publish the page at your website host and check its temporary HTTPS address.
2. Add `feedback.example.com` in that host's custom-domain settings.
3. Add the DNS record that the website host supplies.
4. Wait until the host confirms that the domain and HTTPS certificate are active.
5. Open `https://feedback.example.com` and check the embedded board.
The website host can ask for a CNAME or another record type. Use its exact instructions and target value. Use a new subdomain if the proposed address already serves another application.
For Cloudflare Pages, add the address under your Pages project's **Custom domains** and follow the instructions there.
Use the same process for `changelog.example.com`, with a page that embeds your changelog board.
Point the subdomain at your website host, not at `app.buildbetter.app` or the API hostname. Do not change your main website's DNS records to set up the embed.
### A Website Path: `example.com/feedback`
Publish the page at `/feedback` through your existing website host or application router. Add a link to that page from your website navigation.
DNS records cannot route a URL path. You do not need a DNS change for `/feedback` on an existing HTTPS website.
Keep the script URL and default embed host unchanged. Do not set `data-host` to your website address. Your website hosts the surrounding page, not the BuildBetter portal application.
## 5. Test the Setup
Open the customer-facing address in a private browser window, then check:
* The address bar stays on your website.
* The correct board, logo, and theme appear.
* Posts or published changelog entries open.
* The board's available tabs work.
* The page height adjusts as you move between views.
* The page works on a phone-sized screen.
* Submission and voting follow your board's permissions.
For an interactive feedback board, use a designated test post to check submission and voting. Read-only changelog visitors do not need those actions.
If your website uses a Content Security Policy, allow `https://app.buildbetter.app` in its existing `script-src` and `frame-src` permissions. Keep the other permissions your website needs.
## Managed Custom Domains
The hosted-page setup above does not require BuildBetter to provision a custom hostname. Your website host manages DNS routing and HTTPS for your page.
The separate **Custom domain** controls in Portal settings verify ownership and track certificate and routing status. A saved domain or successful TXT check alone does not mean the address can serve your portal.
Use direct managed hosting only after BuildBetter confirms the routing instructions and the settings show **Domain active**. If certificate or routing setup remains pending, [contact support](../Help/support-channels) and use the hosted-page embed meanwhile.
Do not invent a CNAME target or point your domain at the standard BuildBetter app address.
## Troubleshooting
### The Code Appears as Text
Move the script into your website builder's HTML or code block. Confirm that the builder allows scripts on published pages.
### The Page Loads, but the Board Is Blank
Open the direct BuildBetter board link first. Check the board key, enabled state, and visibility. Then check the browser console for a blocked script or iframe.
If the console reports a Content Security Policy error, update the website's policy as described above. A missing `data-board-key` or invalid target selector also prevents the embed from loading.
### The Subdomain Does Not Load or Shows a Certificate Error
Check the domain status at your website host. Confirm that your DNS record matches the target the host supplied and that HTTPS is active.
This issue concerns the surrounding website page. Changing the board key will not repair DNS or a certificate.
### The Page Opens the Wrong Board or View
Copy the key from the specific board's **Preview** link, not the general Portal settings preview. Remove `data-view` to use that board's normal landing view.
### Sign-In Works Directly, but Not in the Embed
Open the direct BuildBetter board link. Private-board sign-in can fail when the browser blocks third-party cookies. Do not make the board public to bypass an access requirement.
### The Board Reports a Network Error
Compare the direct board link with the embedded page. If both fail, send support the board link and the failed request's HTTP status. Do not include cookies, session tokens, or API keys.
## Related Guides
* [Boards and voting](./boards-and-voting)
* [Roadmap](./roadmap)
* [Changelog](./changelog)
# Portal Overview
Source: https://docs.buildbetter.ai/pages/Portal/overview
Public feedback boards, a roadmap, and a changelog your customers can read — connected to the feedback you already collect
The Portal is BuildBetter's customer-facing surface. It gives the people who use your product one public place to ask for something, watch it get built, and read about it when it ships.
Unlike a standalone feedback tool, Portal posts connect back to the requests BuildBetter already extracts from your calls, tickets, and conversations — so a public board reflects everything you know, not only what customers thought to post themselves.
## Boards
Everything in the Portal is a **board**. Each board has a kind, a name, a URL slug, and a visibility setting.
| Field | What it does |
| - | - |
| **Kind** | `feedback` for idea boards, `changelog` for release feeds |
| **Name** | Display name customers see |
| **Slug** | The board's URL segment |
| **Visibility** | `public` or restricted |
| **Status columns** | Roadmap columns, on feedback boards |
| **Disabled** | Hides a board without deleting it |
You can run several boards at once. A typical setup keeps one feedback board for ideas and a separate changelog board per product line, so a mobile release doesn't clutter the main feed.
Boards are managed through the [MCP tools](../MCP/tool-reference) or the Portal settings in the app. Creating, updating, and deleting boards, posts, and voters are all available programmatically.
## The Two Board Kinds
Customers post ideas and vote. You see who asked, how many wait, and which accounts are behind each request.
Publish what shipped, with labels, and embed the feed in your own product.
A feedback board can also carry **status columns** — the public roadmap. See [Roadmap](./roadmap).
## How It Connects
The Portal is not a silo. Three connections matter:
* **Post matching** — portal posts are matched against feature requests already extracted from your other sources, so duplicates collapse into one item with all its evidence.
* **Voters** — every vote records the person and company behind it, which feeds the demand picture you use to prioritize.
* **[Releases / Close the Loop](../Success/close-the-loop)** — when something ships, BuildBetter matches it back to everyone who asked and drafts the message telling them. Publishing a changelog entry and telling the individual customer are separate jobs; the Portal does the first, Close the Loop does the second.
## Next
Running feedback boards, posts, statuses, and voters.
Planned, In Progress, and Shipped columns.
Publishing entries and embedding the feed.
Put a feedback board, roadmap, or changelog on your website.
Telling the customers who asked.
# Roadmap
Source: https://docs.buildbetter.ai/pages/Portal/roadmap
A public Planned / In Progress / Shipped roadmap that moves as the work moves, built from your feedback board
The public roadmap is a **view over your feedback board's status columns**, not a separate document. Move a post to In Progress and the roadmap shows it there. There is no second artifact to keep in sync, which is the usual reason public roadmaps go stale.
## The Columns
| Column | Means |
| - | - |
| **Planned** | Committed, not started |
| **In Progress** | Being built now |
| **Shipped** | Released |
Three columns is deliberate. Customers understand them without a legend, and they don't imply dates you haven't committed to.
A public roadmap is read as a promise even when you frame it as an intention. Put things in **Planned** only when you'd be comfortable being asked about them in a renewal conversation.
## Why It Stays Current
The roadmap reflects post status, and post status is something your team already changes while doing the work. There is no separate export, no spreadsheet, and no weekly sync — which means the common failure mode, a roadmap that quietly stops matching reality, requires actively neglecting the board rather than merely forgetting to update a doc.
## Demand Behind Each Item
Every roadmap item is a post, so it carries its votes and — through [post matching](./boards-and-voting#post-matching) — the feature requests extracted from your calls and tickets.
Prioritization stops being an argument about who remembers which customer conversation. You can see the accounts asking and the evidence behind each item.
## When Something Ships
Moving a post to **Shipped** is the public signal. It is not the same as telling the people who asked.
* **Publish a [changelog entry](./changelog)** so anyone reading the portal sees what changed.
* **Use [Close the Loop](../Success/close-the-loop)** to match the shipped release back to every customer who requested it and draft the individual follow-up.
A roadmap column moving is broadcast. Close the Loop is the personal message. Doing only the first is why customers say they never heard their request landed.
## Visibility
The roadmap inherits its board's visibility. Run it privately until the statuses are honest, then make it public.
## Next
Posts, statuses, and the demand behind them.
Telling the customers who asked.
# AI Features in Projects
Source: https://docs.buildbetter.ai/pages/Projects/ai-features
The AI Roadmap, similar-project detection, suggested signals, AI status suggestions, and the project rollup — every AI surface in Projects, what it does, and what evidence it reads
Projects ships several AI surfaces. Each one is grounded in your real workspace data — signals, customers, PR activity, Linear tickets, and call transcripts — and most show you the evidence behind every claim.
## AI Roadmap (List Page)
The banner at the top of `/projects` clusters your active and recently shipped projects into themes with a one-sentence narrative. See [List & Views](./list-and-views) for the full controls.
What it does:
* Pulls projects from the past 30, 90, or 365 days (your choice)
* Asks an LLM to cluster them into themes (e.g., "Search relevance", "Onboarding friction")
* Returns a one-sentence narrative summarizing the roadmap
Two presentations:
* **Themes** view — three columns (Scoping · next up / In flight / Shipped) with up to 6 projects each
* **Timeline** view — gantt-style swim lanes grouped by AI themes, product areas, or initiatives
Click **Refresh** to regenerate the clustering from the latest project state.
## Project Rollup (Detail Rail)
An AI synthesis of the project, written in sections: **What / Why / Who / How / Risks / Next actions**. Rendered as a two-column grid with one-click **Copy** and **Refresh**.
**Evidence:** the rollup reads only **approved** signals attached to the project. Anything in the "suggested" review state is ignored until you approve it.
**Header:** *"Approved evidence only · \[generated timestamp]"* — so you can tell at a glance whether the rollup is current.
## Suggested Signals Banner
Auto-fires on the detail page when a project has fewer than 5 attached signals and the title is at least 6 characters.
* Searches your workspace's signals using the project title as the query
* Defaults to **external / customer** boundary
* Returns up to 5 matches with match %, summary, person/company, and a boundary tag
* Multi-select with checkboxes; **Add N to review** attaches them as "suggested" status (not auto-approved)
Use it as a quick way to seed evidence early in a project's life — and then approve the signals that actually fit.
## Similar Projects Banner
Detects potential duplicates using cosine-distance similarity on project embeddings.
* Surfaces up to 3 candidates with a match % (`(1 − distance) × 100`)
* **Merge** collapses the candidate into the current project — moves its signals over and archives the duplicate
* **×** dismisses the banner for the session
Run this on any project you suspect overlaps with an older one — it catches duplicates that wouldn't share keywords.
## AI Status Suggestions
Lives inside the **Status at a Glance** card. When a real project has zero blockers and zero next actions, a **Suggest status** button appears.
The agent returns three buckets:
| Bucket | What It Surfaces |
| - | - |
| **Potential blockers** | Environmental issues the agent infers (e.g., "waiting on infra team", "design review not started"). Includes reasoning. |
| **Next actions** | Specific actions to advance the project. Includes reasoning. |
| **Recently done** | What looks already done from PR/signal evidence, in case it's worth marking complete. |
Suggestions render as ghost/muted rows. Click any one to promote it to a real blocker or action.
If the card already has blockers or actions, the AI panel stays out of the way.
## AI Routing Suggestions (Triage → Projects)
When a tracked item is in triage, the **AI route** banner can suggest attaching it to a high-confidence existing project or creating a new one. Accepting the suggestion promotes the item to `/projects`.
See [AI Routing in Triage](../Triage/ai-routing) for the full flow.
## Post-Release Monitor
Only appears for projects in the **Released** stage. The monitoring agent watches signals received after release and flags regressions.
* **Tracks** the post-release signal window (default 90 days)
* **Clusters** signals by sentiment (positive / neutral / negative)
* **Alerts** at three severities — info, warning, critical — when spikes in negative or support-related signals look like a regression
* **Auto-advances** the project to **Stable** after 90 days with no regressions
## What the AI Doesn't Do Without Your Approval
* It never auto-attaches a signal to a project. Suggestions land in the "suggested" review state and require your approval.
* It never auto-merges duplicates. You always click **Merge**.
* It never silently changes status. Stage-advance suggestions appear as a "suggested" pulse on the stepper, but you make the call.
* It never sends a close-the-loop update. The composer is always reviewed before sending.
If you want to see what evidence drove a particular AI suggestion, expand the rollup or open the related signals — every claim cites the underlying customer signals.
# List & Views
Source: https://docs.buildbetter.ai/pages/Projects/list-and-views
Browse projects by who owns them, by product area, or as a flat list — switch between list and kanban layouts, and use the AI Roadmap to see themes across active work
The `/projects` page is your project dashboard. You can browse projects three ways and switch the layout independently.
## The Three Views
Use the view toggle at the top of the page.
### Mine (default)
Shows only the projects assigned to you (or where you're the DRI), sorted by recent activity. This is the default when you land on `/projects`, so you immediately see what's on your plate without drilling through areas.
Empty state: **"Nothing assigned to you right now."**
### All
A flat list (or kanban) of every promoted project in the workspace. Use this when you need a workspace-wide read or want to sort across teams.
### Areas
Organizes projects by your product taxonomy. At the root you see top-level domain cards plus an **Unassigned** card; click any card to drill in. The breadcrumb at the top of the page lets you zoom back out.
Inside an area, you see:
* **Children cards** — the sub-areas directly underneath
* **Projects** — every project whose taxonomy path passes through this node, rendered as rows below
**Unassigned** is a pseudo-area that collects projects without an `areaPath` — useful for cleaning up loose ends.
Areas only have content if your workspace has authored a product taxonomy. If you haven't yet, the Areas view will show an empty state.
#### Taxonomy vs. Initiatives
When Areas is selected, a second toggle picks how the grouping is rendered:
* **Taxonomy** (default) — the product taxonomy tree you built in [Taxonomy](../Taxonomy/overview)
* **Initiatives** — user-created Projects V2 initiatives (e.g., "Expansion", "Retention", "Conversion")
Click an initiative card to drill into the projects tied to that initiative. Use the back affordance to return to the initiative list.
## Layout: List vs. Kanban
Independent of the view, you can pick how rows render.
### List
A sortable table. Click any column header to sort. Each row shows:
| Column | What It Shows |
| - | - |
| Title + substatus | Project title with a small real-time substatus chip ("In review", "Ready to merge", "Blocked") |
| Progress | 0–100% computed from stage |
| Priority | P0 / P1 / P2 / P3 chip |
| Status | Drafting, In progress, In review, Ready to merge, Done, Blocked |
| Approval | Only shows if not yet approved: draft / proposed / approved |
| Blockers | Red badge with count when blocked |
| ARR | Cumulative ARR from linked customer companies (green accent) |
| PRs | Count of attached PRs |
| Signals | Count of attached signals |
| Customers | Distinct customer companies |
| Trend | 30-day change in signal volume (green = up, red = down) |
| Assignees | Overlapping avatar stack (max 3, +N more) with provenance badges |
### Kanban
Drag-and-drop columns by status. If your workspace has a connected Linear workspace with custom statuses, those statuses appear as additional columns.
## The AI Roadmap Banner
The banner at the top of `/projects` clusters your active and recently shipped projects into themes with a one-sentence narrative.
### Time Range
Pick **Month**, **Quarter**, or **Year** to control the look-back window.
### Two Views
* **Themes** — three-column layout: **Scoping · next up** (amber), **In flight** (primary), **Shipped** (green). Each column lists up to 6 projects with a click-through to detail.
* **Timeline** — a horizontal gantt-style roadmap. Bars represent project duration from created → shipped (or today for in-flight). Scoping-stage projects render as small markers at "today." Swim lanes group by AI themes, product areas, or initiatives (toggle to change).
### Controls
* **Hide shipped** — collapses the shipped column in Themes view
* **Group by** (Timeline view) — AI themes / Product areas / Initiatives
* **Refresh** — regenerates the LLM clustering
* **Collapse** — hides the full banner; shows only the narrative
The banner also surfaces totals: active count, shipped count, and ARR rolled up per stage.
The AI Roadmap doesn't replace your tracked-item types — it groups by **theme** as inferred from the signals. Two unrelated projects can land in the same theme if they're driven by the same customer demand.
## URL State
The list page persists view, layout, and area in the URL, so anything you can see is shareable.
* `?view=mine` (default) / `?view=all` / `?view=areas`
* `?layout=list` (default) / `?layout=kanban`
* `?group=taxonomy` (default in Areas) / `?group=initiatives`
* `?area=` — drill into a specific taxonomy area (or `__unassigned`)
* `?initiative=` — drill into a Projects V2 initiative
## Live Updates
The list page subscribes to your workspace's tracked-item event stream. When a PR merges, an assignee changes, or a status flips, the list updates without a manual refresh. If the websocket drops, the list falls back to a 60-second poll.
# Projects Overview
Source: https://docs.buildbetter.ai/pages/Projects/overview
Run your product roadmap from inside BuildBetter — every project grounded in real customer signals, ARR, and engineering activity
Projects is BuildBetter's roadmap hub. Every project is a tracked item that brings together the customer signals driving the work, the ARR on the line, the people and PRs delivering it, and a live status view — so you can answer five questions on one screen:
1. **What should we work on?** — Inbox and saved review views
2. **What are we currently working on?** — This week + Active
3. **Who is working on what?** — assignee avatars on every row
4. **Why are they working on it?** — signals, customers, and trend rollups
5. **What's the status / what's next?** — substatus chips, blockers, and next actions
## Where Projects Live
Projects often start life as tracked items in [Inbox](../Triage/overview). When you **promote** an Inbox item, it moves to `/projects` with `in_triage: false` and a status of `in_progress`. From that point on, the Projects Hub is its home.
Projects is gated by the `projects` feature flag. If you don't see `/projects` in the sidebar, contact your workspace admin to request access.
## Core Concepts
| Concept | What It Means |
| - | - |
| **Project** | A tracked item with `in_triage: false`. Has a title, type, priority, status, stage, optional area, and links to signals/calls/PRs/tickets. |
| **Stage** | Ordered lifecycle position: Triage → Scoping → In progress → In review → Ready to merge → Shipping → Released → Stable. Drives which rail cards appear. |
| **Status** | Real-time substate (Drafting, In review, Ready to merge, Blocked, Shipping, Done). More granular than stage. |
| **Priority** | P0, P1, P2, P3 — urgency for sort and triage. |
| **Area** | Optional taxonomy path (e.g., `Features > Search > Filters`). Determines where the project shows up in Areas view. |
| **Initiative** | A guided grouping that spans multiple projects and can roll up related project, company, person, and metric results. |
| **DRI / Assignee** | The owner. Avatars carry a small provenance badge — **L** for Linear-author match, **G** for GitHub PR author, **·** for manual. |
| **ARR rollup** | Cumulative ARR from every distinct customer company linked to the project's signals. |
## What's on the Pages
Mine / All / Areas views, list and kanban layouts, the AI Roadmap banner, and how taxonomy areas and initiatives organize work.
The two-column detail page: timeline + signals on the left, rail cards (Status at a Glance, Rollup, Integration Issues, People & Signals, Post-Release Monitor, Close the Loop) on the right.
AI Roadmap clustering, Similar Projects detection, Suggested Signals, AI status suggestions, and the project rollup.
Create a project, update scope from a call, ship a status update, attach signals and calls, run close-the-loop after release.
## Initiatives and Evidence
Projects now include richer setup and evidence workflows:
* **Guided initiative setup** helps teams configure initiative metrics and link projects during creation.
* **Initiative rollups** summarize results from related projects, companies, and people.
* **Evidence suggestions** recommend calls, signals, tickets, PRs, and other linked items that may explain why the project matters.
* **Evidence previews** make it easier to inspect linked items before attaching them.
* **Approved evidence routing** keeps project rollups focused on reviewed, relevant context.
## How Projects Connect to the Rest of BuildBetter
* **Inbox** → promote a tracked item, PR, ticket, topic, or decision to make it a project
* **Signals** → drive priority via volume, ARR, and trend; attach to projects to record customer demand
* **Calls** → link a call and attach its signals in one move
* **Linear / Jira** → attach tickets via Integration Issues; assignees auto-populate from Linear author mappings
* **GitHub** → linked PRs feed the Status at a Glance card, trigger stage transitions, and roll up into project metrics
* **Knowledge** → close-the-loop drafts and project rollups can be exported to knowledge pages
The list page subscribes to your org's tracked-item event stream and live-updates as PRs merge, statuses change, and signals attach. No manual refresh needed.
# Project Detail
Source: https://docs.buildbetter.ai/pages/Projects/project-detail
The two-column project page — timeline and signals on the left, a rail of contextual cards on the right
The project detail page (`/projects/:id`) is split into two columns: a left content area with the timeline and signals, and a right rail of cards covering status, rollup, integrations, people, and post-release monitoring.
## Header
* **Title** — click to edit
* **Description** — appears below the title; click to edit
* **Stage stepper** — horizontal progress bar showing the project lifecycle. Past stages get checkmarks, the current stage is highlighted, future stages are muted. Click any stage to jump. If the AI thinks you should advance (e.g., the PR merged), a green "suggested" pulse appears on that stage.
The stage order is: **Triage → Scoping → In progress → In review → Ready to merge → Shipping → Released → Stable.**
## Left Column
Two tabs:
* **Signals (N)** — every signal attached to this project, with sentiment, source, person, company, and a quick unattach button.
* **Timeline (N)** — a chronological event log: PRs merged, statuses advanced, scope updated, comments added, signals attached, integration links created. Each event shows the action type, metadata, and a time-ago label.
## Right Rail Cards
Cards appear in roughly priority order. Some are conditional on the project's stage or state.
### Status at a Glance
The bottleneck card. Answers "what's blocking us and what's next?"
* **Waiting on** — e.g., *"Waiting on @ian for 3d — PR #4521 review"*. Severity pill (normal / warning / stalled) plus a one-click action button.
* **Blockers** — manually entered or AI-suggested environmental issues (not "waiting on people"), distinct from the Waiting On section.
* **Next actions** — checklist of what happens next. Manually added or AI-suggested. Real projects show "done" checkmarks as they complete.
If the card is empty, a **Suggest status** button kicks off an LLM run that proposes blockers, next actions, and recently-done items as ghost rows you can promote into real items.
### Project Rollup
An AI-generated synthesis of the project, with sections for **What / Why / Who / How / Risks / Next actions**. Rendered as a two-column grid with:
* **Copy** — one-click clipboard
* **Refresh** — regenerate from latest evidence
* Header: *"Approved evidence only · \[generated timestamp]"*
The rollup only reads **approved** signals — anything in the "suggested" review state is ignored until you approve it. This keeps the rollup grounded in evidence you've vetted.
### Integration Issues
Shows attached Linear and Jira tickets. The **"+"** button searches both providers in parallel; click a result row to attach.
### Agent Sessions
Recent auto-routing decisions. Each row shows confidence score and the reason the agent chose this project (e.g., *"Routed to Engineering — technical signals + Linear ticket match"*).
### People & Signals
Two tabs in one card.
* **People** — companies sorted by ARR or mention count (logo, name, ARR, mention count), then individual people (name, company, signal count).
* **Signals** — flat list of attached signals with sentiment, person/company, and an unattach button.
Click **Find related signals** to open the search modal and attach matching signals in bulk.
### Post-Release Monitor
Only appears when the project is in the **Released** stage.
* Days since release
* Post-release signal count broken down by sentiment (positive / neutral / negative)
* Regression alerts (info / warning / critical) when the monitoring agent detects spikes in negative signals or support mentions
After 90 days with no regressions, the project auto-advances to **Stable**.
### Close the Loop
Two parts:
* **Checklist** — one row per linked contact: person name, their company, current reply state, and a "done" checkbox.
* **Composer** — draft a Slack or email update to send to the linked people. One-click **Send to Slack** or **Email** per contact.
A contact is marked "replied since last status move" automatically when the assignee responds in the designated channel or thread.
### Similar Projects
Surfaces up to 3 high-similarity duplicate candidates with a match %. Each row has a **Merge** button that collapses the candidate into the current project — moves all its signals over and archives the duplicate. The **×** button dismisses the banner for the session.
### Suggested Signals
Auto-fires when a project has fewer than 5 attached signals and the title is long enough to be a useful search query. Shows up to 5 semantic matches with:
* Match %
* Signal summary
* Person/company
* Boundary tag (Customer / Internal)
Multi-select with checkboxes and click **Add N to review** to attach as "suggested" (not yet approved).
### Area Picker
Shows the current taxonomy area path. Click to open a hierarchical picker and reassign.
### Project Type, Status, Assignee, Priority
Dropdowns in the rail or header to update each field inline.
## Live Updates
The detail page also listens to the tracked-item event stream. Live toasts surface when a PR moves status, a signal arrives, or a teammate updates the project from another tab.
The rail cards that surface AI suggestions (Status at a Glance's empty state, Suggested Signals, Similar Projects) read only **approved** evidence by default. The "suggested" state is for items pending your review — they're never auto-applied.
# Projects Settings
Source: https://docs.buildbetter.ai/pages/Projects/settings
Configure what powers the Projects hub — initiatives, integrations, author mappings, the ARR source field, and decision inbox weights
The Projects settings page (**Settings → Projects**) is a hub for the configuration that drives `/projects`: portfolio initiatives, the integrations work flows through, author mappings that name PR and Linear contributors, and the ARR source for roadmap rollups. Decision inbox weighting lives separately under **Settings → Administration → Decisions**.
## Initiatives
Portfolio themes that sit above projects — "Expansion", "Retention", "Conversion", etc. Initiatives appear in the [Areas view](./list-and-views#initiatives) of the Projects list when you toggle from Taxonomy to Initiatives, and on each project's detail rail.
Click **Configure initiatives** to open the settings modal. Inside you can:
* **Create new initiatives** — name, optional description
* **Define shared fields** — properties shown on every initiative card (status, target date, owner, etc.) with multiple field kinds (text, select, date, number, etc.)
* **Link projects** — connect existing projects to an initiative
The settings page shows three stats at a glance:
* **Initiatives** — total count of portfolio themes available
* **Fields** — shared fields defined on initiatives
* **Linked projects** — total project↔initiative links in the system
## Integrations
Linear, Jira, and GitHub are the providers project work flows through. The settings page surfaces each one's connection status — **Connected** (green), **Error** (red), or **Not connected** (gray).
Click **Manage all integrations** to open the full Integrations page where you can connect, reauthorize, or disconnect providers.
## GitHub ↔ Teammates
Maps GitHub usernames to BuildBetter teammates so PR triage and project assignees show real names instead of raw handles.
Two metrics on the settings card:
* **Mapped** — GitHub handles linked to a teammate
* **Unmapped** — recent PR authors that haven't been mapped yet (highlighted amber when greater than 0)
Click **Set up mappings** (or **Edit mappings**) to open the dedicated page where you can:
* See every PR author across your tracked repos
* Match handles to teammates by email or manually
* Override automatic matches
The mappings drive assignee provenance badges on the Projects list (the **G** badge on avatars).
## Linear ↔ Teammates
Most Linear users auto-resolve by shared email — no setup needed. The mappings page is for the edge cases: consultants, contractors with personal email addresses, anyone who isn't on your org domain.
When a Linear ticket is promoted to a project, BuildBetter auto-fills the assignee from the ticket's assignee or creator email. If their email matches a teammate, the assignee gets the **L** provenance badge on the avatar. For off-domain Linear users, the explicit mapping is what makes attribution work.
## ARR Source Field
The same setting documented on [Triage Settings](../Triage/settings#arr-source-field). One workspace-wide choice that drives:
* ARR rollups on the [Projects list](./list-and-views)
* Per-project ARR on the [Project Detail](./project-detail) page
* ARR columns across Triage signals, PRs, clusters, and topics
The dropdown lists every company metadata field, sorted by populated company count. Pick the field with the best coverage.
## Triage Item Types
The Projects settings page surfaces a card linking to **Settings → Features → Triage** for managing item types (Bug, Feature Request, etc.). Tracked item types are the categories that classify every project and every triaged signal.
See [Triage Settings](../Triage/settings) for the full details.
## Decision Inbox Weights
Located under **Settings → Administration → Decisions** (not in the Projects settings hub itself). Tunes the formula that ranks items in the [Triage Decisions tab](../Triage/decisions).
Four factor weights, each adjustable and **normalized to sum to 1** on save:
| Factor | What It Favors |
| - | - |
| **Customer value** | Companies paying more, or high-priority accounts |
| **Severity** | Signals / reviews / calls with high severity or urgency |
| **Volume** | Clusters with many linked signals |
| **Frequency** | Things happening **now** — fresh signals, just-requested reviews |
Tune the weights to match how your team prioritizes. If you want recency to win over volume, raise **Frequency** and lower **Volume**. Per the 2026-04-19 release, edits from the settings UI persist correctly across sessions.
## Cycle Settings
If your workspace has the **cycles** feature flag, **Settings → Features → Cycle** lets you define release cycles (quarters, sprints, etc.) that projects can be assigned to. Cycle definitions carry properties (start date, end date, theme) that surface on project detail.
The Cycle settings page is its own sidebar entry; the Projects settings hub doesn't surface it directly.
The Projects settings page is a hub, not a dumping ground. Heavier configs (the full provider list, the Triage item types editor) deep-link to their dedicated pages so this page stays focused on what powers the roadmap rollups.
# Common Project Workflows
Source: https://docs.buildbetter.ai/pages/Projects/workflows
Create a project, update scope from a call, send a status update, attach signals, run close-the-loop after release
These are the common day-to-day flows in Projects.
## Create a Project
Most projects start in [Triage](../Triage/overview) and get promoted, but you can also create one directly.
The sparkles-icon button in the top-right of `/projects`.
Title (required), description, type (auto-selected, required), optional start/end dates.
Creates a tracked item, promotes it immediately (so it skips triage), and navigates to `/projects/{id}`.
## Promote from Triage
The more common path. In Triage's Signals tab:
Selecting a row in the Signals tab opens its detail in the right pane.
The action button in the detail footer.
Status flips to `in_progress`, `in_triage` flips to `false`, and the item disappears from the Triage list.
You can also bulk-promote — select multiple rows in the Signals tab, then click **Promote N**. See [Promote & Merge](../Triage/promote-and-merge).
## Link a Call
Calls bring in real customer context fast.
From the project's right rail, click **Link a call** (phone icon).
Search by title, or leave the field blank to see recent calls.
Click any row. All signals from that call auto-attach to the project, and you'll see a toast: *"Linked 'Call title' — attached N signals."*
## Find & Attach Signals
When you want to attach signals that match the project's theme:
From the People & Signals card on the detail page.
Type a query; filter by boundary (external / internal / all) and interaction type (call, message, feedback).
Check the signals you want, click **Add N to review**. They attach in the "suggested" review state — they don't feed the AI rollup until you approve them.
The [Suggested Signals](./ai-features#suggested-signals-banner) banner does this automatically when a project has fewer than 5 signals — use it for a head start, then refine with **Find related signals**.
## Update Scope from a Call
When a call surfaces a scope change, BuildBetter spots it and surfaces a diff.
Triggered automatically when a linked call's transcript suggests a scope change.
Left side: the quoted transcript segment with speaker and timestamp. Right side: a draft diff of the scope doc (removed bullets vs. added bullets, grouped under section headings).
Writes the change into the project's scoping doc.
## Send a Status Update
Generate a shareable status snapshot for the team, an exec, or release comms.
The send-icon button in the list page header.
My projects / All projects / Specific initiative.
Default is 7 days; change as needed.
Team status / Exec rollup / Release comms draft.
The output is markdown you can click to copy and paste straight into Slack, email, or a doc.
## Close the Loop After Release
When a project ships, you owe a follow-up to the people who asked for it.
On the detail page, right rail.
One row per linked contact: person name, company, current reply state.
Use the composer to write a short message. The same body can be sent across recipients, or you can tailor per-person.
One-click per contact. A contact gets auto-marked "replied" once the assignee responds in the designated channel or thread — no manual checkboxes needed.
## Merge Duplicates
If the [Similar Projects](./ai-features#similar-projects-banner) banner appears with candidates:
Each candidate shows a match % and title.
Collapses the candidate into the current project: moves every attached signal, archives the duplicate, and logs a merge event in the timeline.
## Update Metadata Inline
The rail dropdowns update fields without leaving the page:
* **Status** — change the substatus chip
* **Type** — re-categorize the project
* **Assignee** — assign or reassign the DRI
* **Priority** — P0–P3
* **Area** — taxonomy area path
Every change is timestamped and visible in the Timeline tab.
# AI Editing
Source: https://docs.buildbetter.ai/pages/Prototypes/ai-editing
Talk to the design agent — quick prompts, the four tools the agent uses to edit your prototype, and how to get good results
The AI design agent is the system that turns your prompts into visual edits. It reads the DOM, applies changes, and reports back. This page covers what it can and can't do, the built-in quick prompts, and how to phrase requests for the best results.
## What the Agent Does
The agent is configured to act as a design assistant editing a captured static mockup. It can:
* Read any part of the DOM with a CSS selector
* Modify styles, attributes, and text content on existing elements
* Insert new HTML before / after / inside an element
* Remove elements
It can't:
* Execute JavaScript — captures are static, and scripts in inserted HTML are silently ignored
* Reach outside the prototype's iframe
* Persist changes that didn't go through its tools (e.g., it can't "edit your CSS file")
## Quick Prompts
The **Quick prompts** dropdown (below the composer) inserts pre-written prompts for common transformations. Clicking inserts the prompt into the composer for review before you send.
| Label | Description |
| - | - |
| **Clear content, keep frame** | Identifies the page's primary content region (the area holding page-specific content, not the app shell), removes its inner contents, and preserves the container element. |
| **Convert to dark mode** | Applies a dark theme: near-black backgrounds (e.g., `#0b0b0e`), darker card surfaces, updated text colors for readability. Preserves accent colors when possible. |
| **Make it mobile-friendly** | Reflows for a \~375px viewport: stacks columns, reduces padding/font sizes, ensures 44px tap targets, collapses horizontal nav. |
| **Add empty + loading states** | Finds the most prominent data region; inserts sketches for a loading state (skeleton placeholders) and empty state (friendly message + CTA) below the existing populated state. |
Quick prompts are tuned phrasing — they give the agent specific instructions about scope and preservation, which tends to produce more predictable edits than ad-hoc requests.
## The Agent's Tools
Every visual change goes through one of four tools. Tool calls render in the chat as cards so you can see exactly what the agent did.
### `query_dom`
Reads the DOM with a CSS selector. Returns up to 50 matched elements (default 10). For each match, you get:
* Tag name, id, class list
* Text preview (truncated to 160 chars)
* Outer HTML preview (truncated to 600 chars)
The agent uses this first when a request is vague, or to inspect structure before editing.
### `modify_element`
Changes one or more existing elements matching a selector.
* **Styles** — CSS properties (camelCase or kebab-case accepted)
* **Attributes** — HTML attributes (`href`, `class`, `data-*`, etc.)
* **Text content** — replaces text
All matches are updated in one call.
### `insert_element`
Adds new HTML relative to a matched element. Position options:
* **before** — as a previous sibling
* **after** — as a following sibling
* **inside-start** — prepend as first child
* **inside-end** — append as last child
Scripts in the inserted HTML are silently ignored.
### `remove_element`
Deletes every element matching a selector. Returns the count removed.
## How to Phrase a Request
Vague prompts get vague results. Specific prompts get specific edits.
**Less effective:**
> Make this page better.
**More effective:**
> Reduce the hero section's vertical padding by half, change the headline to "Ship faster with BuildBetter," and replace the CTA button with a primary-styled "Start free trial" button.
The agent can do all three changes in one turn. It runs up to 12 steps per response (queries + edits + verifications), which is enough for complex multi-edit asks without forcing you to chat through each step.
### When to Use Click-to-Select
If a request applies to a specific visual element and the CSS selector is hard to describe ("the third card in the second row"), use the **Select element** toolbar mode. Click the element, then send a message. The selector is prepended automatically.
### When to Use a Quick Prompt
For broad, well-known transformations (dark mode, mobile reflow, content clearing) — quick prompts apply consistent rules that ad-hoc phrasing can miss.
## What Persists
Every successful agent edit is added to the current version's patch log and saved automatically. Failed tool calls (e.g., a selector that matched no elements) are surfaced in the chat but **not** added to the patch log — replaying the patches on reload would diverge from what you saw.
## Limits
* **12 steps per response** — the agent stops after 12 tool calls in one streaming turn. If your request would take more, it'll stop and let you continue in a follow-up.
* **No script execution** — even if the agent inserts a `
```
A floating "Feedback" button appears in the bottom-right corner with a default text field. Users can click it to submit feedback directly to your BuildBetter feedback source.
### Data Attributes
When using the simple script tag, customize basic settings with `data-*` attributes:
| Attribute | Default | Description |
| - | - | - |
| `data-api-key` | *(required)* | Your organization API key |
| `data-feedback-source-id` | *(required)* | The feedback source to submit to |
| `data-mode` | `"floating"` | Display mode: `floating`, `popover`, `inline`, or `slide-out` |
| `data-position` | `"bottom-right"` | Button position (floating mode): `bottom-right`, `bottom-left`, `top-right`, `top-left` |
| `data-button-text` | `"Feedback"` | Text on the trigger button |
| `data-title` | `"Send Feedback"` | Title at the top of the form |
## Programmatic API
For full control, use the JavaScript API. The script exposes a global `BuildBetterFeedback` object.
```html theme={null}
```
### Instance Methods
`BuildBetterFeedback.create()` returns a widget instance with the following methods:
| Method | Description |
| - | - |
| `widget.open()` | Open the widget (floating, popover, and slide-out modes only) |
| `widget.close()` | Close the widget |
| `widget.destroy()` | Remove the widget from the DOM entirely |
### Multiple Instances
You can create multiple widget instances on the same page. Each instance is fully isolated with its own Shadow DOM — styles never leak between widgets or affect your page.
```js theme={null}
// Quick reaction widget
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "SOURCE_1",
mode: "floating",
position: "bottom-right",
fields: [
{ type: "emoji", name: "reaction", label: "Quick feedback", required: true },
],
});
// Detailed feedback form (inline)
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "SOURCE_2",
mode: "inline",
container: "#feedback-form",
fields: [
{ type: "text", name: "title", label: "Subject", required: true },
{ type: "textarea", name: "details", label: "Description", required: true },
{ type: "select", name: "category", label: "Category", options: ["Bug", "Feature Request", "Question", "Other"] },
],
});
```
## Configuration Reference
Your organization API key (`bb_org_...`). Found in **Settings > API Keys**.
The ID of the feedback source to submit records to.
Display mode. One of `floating`, `popover`, `inline`, or `slide-out`. See [Display Modes](#display-modes).
Trigger button position (floating mode only). One of `bottom-right`, `bottom-left`, `top-right`, `top-left`.
Whether the form opens above or below the button (popover mode only). One of `above` or `below`.
CSS selector or DOM element reference for inline and popover modes. Required when `mode` is `inline`. Optional for `popover` — if provided, the button renders inside the container; otherwise it appends to the body.
Text displayed on the trigger button (floating, popover, and slide-out modes).
Title displayed at the top of the feedback form.
Array of field configurations. See [Field Types](#field-types). Defaults to a single required textarea.
Visual customization options. See [Theming](#theming).
Pre-fill user identity as hidden context. See [User Identity](#user-identity).
Hidden key-value pairs included with every submission. See [Metadata](#metadata).
Remove the "Powered by BuildBetter" footer from the widget.
Callback fired after a successful submission. Receives an object with `id` and `fields`.
Callback fired when a submission fails.
Callback fired when the widget opens.
Callback fired when the widget closes.
## Display Modes
A floating button fixed to a corner of the viewport. Clicking it opens a feedback card near the button.
```js theme={null}
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
mode: "floating",
position: "bottom-right", // or "bottom-left", "top-right", "top-left"
buttonText: "Feedback",
});
```
An inline button that opens the feedback form above or below it. Unlike floating mode, the button sits in the normal page flow wherever you place it — useful for embedding feedback into specific sections of your app.
```html theme={null}
```
The form card is centered over the button and opens with a subtle slide + scale animation.
Renders the form directly into a container element on your page. No trigger button — the form is always visible.
```html theme={null}
```
The `container` property accepts a CSS selector string or a DOM element reference. The inline form inherits the background color from your theme config.
A tab fixed to the right edge of the viewport. Clicking it slides in a feedback panel.
```js theme={null}
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
mode: "slide-out",
buttonText: "Feedback",
});
```
## Field Types
Configure which fields appear in your feedback form using the `fields` array. Each field requires a `type`, `name` (used as the key when submitting), and `label` (displayed to the user).
A single-line text input.
```js theme={null}
{
type: "text",
name: "title",
label: "Title",
required: true,
placeholder: "Enter a title..."
}
```
A multi-line text area for longer responses.
```js theme={null}
{
type: "textarea",
name: "details",
label: "Details",
placeholder: "Tell us more..."
}
```
A row of emoji buttons for quick sentiment feedback. The **text label** (not the emoji character) is submitted as the value, making it easy to filter and analyze.
```js theme={null}
{
type: "emoji",
name: "sentiment",
label: "How was your experience?",
required: true
}
```
Default emojis: angry, sad, neutral, happy, love
You can customize the emojis and their labels using `emojiOptions`:
```js theme={null}
{
type: "emoji",
name: "sentiment",
label: "Rate this feature",
required: true,
emojiOptions: [
{ emoji: "👎", label: "Not useful" },
{ emoji: "😐", label: "Okay" },
{ emoji: "👍", label: "Useful" },
{ emoji: "🔥", label: "Love it" },
]
}
```
A 1-5 star selector. Submits the numeric value as a string (e.g. `"4"`).
```js theme={null}
{
type: "star-rating",
name: "rating",
label: "Rate your experience",
required: true
}
```
A dropdown with predefined options.
```js theme={null}
{
type: "select",
name: "category",
label: "Category",
options: ["Bug Report", "Feature Request", "General Feedback", "Other"]
}
```
A 0-10 horizontal scale. Submits the numeric value as a string (e.g. `"8"`).
```js theme={null}
{
type: "nps",
name: "score",
label: "How likely are you to recommend us?",
required: true
}
```
### Field Properties
| Property | Type | Required | Description |
| - | - | - | - |
| `type` | `string` | Yes | One of: `text`, `textarea`, `emoji`, `star-rating`, `select`, `nps` |
| `name` | `string` | Yes | Unique key for this field (used in the submitted data) |
| `label` | `string` | Yes | Label displayed above the field |
| `required` | `boolean` | No | If `true`, the field must have a value before submitting |
| `placeholder` | `string` | No | Placeholder text (`text` and `textarea` only) |
| `options` | `string[]` | No | Dropdown options (`select` only) |
| `emojiOptions` | `EmojiOption[]` | No | Custom emoji choices (`emoji` only). Each item has `emoji` (the character) and `label` (the submitted value). |
| `category` | `string` | No | Override the API field category (advanced) |
## Theming
Customize the widget's appearance to match your brand. The theme applies to all display modes including the inline form background.
```js theme={null}
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
theme: {
primaryColor: "#6366f1",
backgroundColor: "#ffffff",
textColor: "#1f2937",
borderRadius: 8,
fontFamily: "Inter, sans-serif",
},
});
```
| Property | Type | Default | Description |
| - | - | - | - |
| `primaryColor` | `string` | `#6366f1` | Accent color for buttons, selections, and highlights |
| `backgroundColor` | `string` | `#ffffff` | Background color of the form card |
| `textColor` | `string` | `#1f2937` | Color of labels and body text |
| `borderRadius` | `number` | `8` | Corner radius in pixels |
| `fontFamily` | `string` | System font stack | CSS `font-family` value |
The widget uses theme-relative borders (derived from `textColor`) so input fields and controls remain visible on both light and dark backgrounds.
## User Identity
If your users are already logged in to your application, you can pass their identity to the widget so feedback is automatically linked to the person in BuildBetter — no need to ask them to fill in their name or email.
```js theme={null}
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
person: {
email: currentUser.email,
firstName: currentUser.firstName,
lastName: currentUser.lastName,
},
fields: [
{ type: "emoji", name: "reaction", label: "How was this?", required: true },
{ type: "textarea", name: "feedback", label: "Comments" },
],
});
```
The `person` data is sent as hidden context — it is never displayed in the form. When an email is provided, the widget upserts a person record in BuildBetter and links the feedback submission to them. If the person already exists (matched by email), their record is reused. Name fields are only updated when provided — omitting them won't overwrite existing data.
| Property | Type | Description |
| - | - | - |
| `email` | `string` | Email address (used to match or create the person) |
| `firstName` | `string` | First name |
| `lastName` | `string` | Last name |
## Metadata
Pass hidden key-value data with every submission. Metadata fields are never shown in the form — they're submitted automatically alongside the user's responses and appear as additional columns in your feedback table.
This is useful for capturing page context, app state, or any other information that helps you understand where and when the feedback was given.
```js theme={null}
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
metadata: {
page_url: window.location.href,
app_version: "2.1.0",
plan: "pro",
doc_section: "getting-started",
},
fields: [
{ type: "emoji", name: "helpful", label: "Was this page helpful?", required: true },
{ type: "textarea", name: "feedback", label: "Any other thoughts?" },
],
});
```
Each key becomes a column in the feedback records table (e.g. `page_url` appears as "Page Url"). All metadata values are stored as strings with `category: "metadata"`.
**`person` vs `metadata`**: Use `person` for user identity (email, name) — it creates/links a person record in BuildBetter. Use `metadata` for contextual data about the submission (page URL, plan, app version) — it's stored as fields on the feedback record itself.
## Event Callbacks
React to widget lifecycle events with callback functions.
```js theme={null}
const widget = BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
onSubmit: (result) => {
console.log("Feedback submitted:", result.id);
// result.fields contains the submitted field values
},
onError: (error) => {
console.error("Submission failed:", error.message);
},
onOpen: () => {
console.log("Widget opened");
},
onClose: () => {
console.log("Widget closed");
},
});
```
## Examples
A floating NPS survey with optional follow-up, linked to the logged-in user.
```js theme={null}
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
mode: "floating",
position: "bottom-right",
title: "How are we doing?",
fields: [
{ type: "nps", name: "nps_score", label: "How likely are you to recommend us?", required: true },
{ type: "textarea", name: "reason", label: "What's the main reason for your score?", placeholder: "Optional" },
],
person: {
email: currentUser.email,
firstName: currentUser.name,
},
theme: {
primaryColor: "#2563eb",
},
});
```
A popover button embedded in your documentation pages that captures the current URL automatically.
```html theme={null}
```
An inline form embedded in your page for collecting detailed feature requests.
```html theme={null}
Request a Feature
```
A minimal floating widget with custom emojis for page-level feedback.
```js theme={null}
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
mode: "floating",
position: "bottom-left",
buttonText: "Rate this page",
title: "Quick Feedback",
fields: [
{
type: "emoji",
name: "reaction",
label: "Was this page helpful?",
required: true,
emojiOptions: [
{ emoji: "👎", label: "Not helpful" },
{ emoji: "😐", label: "Somewhat helpful" },
{ emoji: "👍", label: "Very helpful" },
],
},
],
theme: {
primaryColor: "#10b981",
borderRadius: 12,
},
});
```
A slide-out panel for structured bug reports with severity rating.
```js theme={null}
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
mode: "slide-out",
title: "Report an Issue",
fields: [
{ type: "star-rating", name: "severity", label: "How severe is this issue?", required: true },
{ type: "text", name: "summary", label: "Summary", required: true, placeholder: "Brief description of the issue" },
{ type: "textarea", name: "steps", label: "Steps to reproduce", placeholder: "1. Go to...\n2. Click on...\n3. See error" },
{ type: "select", name: "browser", label: "Browser", options: ["Chrome", "Firefox", "Safari", "Edge", "Other"] },
],
metadata: {
page_url: window.location.href,
user_agent: navigator.userAgent,
},
});
```
A fully dark-themed floating widget. The widget uses theme-relative borders so controls stay visible on dark backgrounds.
```js theme={null}
BuildBetterFeedback.create({
apiKey: "YOUR_API_KEY",
feedbackSourceId: "YOUR_SOURCE_ID",
mode: "floating",
position: "bottom-right",
title: "Feedback",
fields: [
{ type: "emoji", name: "sentiment", label: "How do you feel?", required: true },
{ type: "textarea", name: "feedback", label: "Tell us more" },
],
theme: {
primaryColor: "#22c55e",
backgroundColor: "#1a1a2e",
textColor: "#e2e8f0",
borderRadius: 12,
},
});
```
## Widget Builder
You can build and preview your widget visually inside BuildBetter. Go to **Feedback > Widget Builder** to configure fields, display mode, and theme with a live interactive preview that runs the real widget, then copy the generated embed code.
## Technical Details
\~12 KB gzipped. Single JS file, no CSS dependency, no external libraries needed on your page.
Each widget instance renders inside a Shadow DOM, so its styles never conflict with your page.
Built-in 5-second cooldown between submissions. Each submission includes a unique ID for server-side deduplication.
Works in all modern browsers: Chrome, Firefox, Safari, and Edge. See [Browser Compatibility](#browser-compatibility) for details.
## Browser Compatibility
The widget uses Shadow DOM for style isolation, which requires a modern browser. Internet Explorer is **not** supported.
| Browser | Minimum Version | Released |
| - | - | - |
| Chrome | 53+ | 2016 |
| Edge | 79+ | 2020 |
| Firefox | 63+ | 2018 |
| Safari | 10+ | 2016 |
| Safari iOS | 10+ | 2016 |
| Chrome Android | 53+ | 2016 |
Internet Explorer 11 and legacy Edge (pre-Chromium) are not supported. The widget will not render in these browsers.
# Importing Feedback & Text Data
Source: https://docs.buildbetter.ai/pages/Text Data/importing-feedback
Analyze customer feedback from surveys, support tickets, and other text sources
BuildBetter isn't limited to just call recordings. Import and analyze text-based feedback from surveys, support tickets, chat conversations, and more to get a complete picture of your customer's voice across all channels.
## Understanding Text Data Sources
Text data complements your call recordings by capturing feedback from channels where customers communicate in writing:
NPS surveys, customer satisfaction forms, product feedback questionnaires
Help desk tickets, bug reports, feature requests from support systems
Live chat transcripts, support conversations, Slack discussions
Product reviews, app store feedback, social media mentions
## Import Methods
### CSV Upload
The most flexible way to import any text data:
Structure your data with columns for:
* **Feedback content** (required)
* **Customer identifier** (email, name, or ID)
* **Timestamp** (when feedback was provided)
* **Metadata** (any additional context)
1. Navigate to **Feedback** section
2. Click **Upload CSV**
3. Drag and drop or select your file
4. Monitor upload progress
BuildBetter's AI automatically classifies your columns:
* **Content**: The actual feedback text
* **Identity**: Who provided the feedback
* **Identifier**: Unique IDs or reference numbers
* **Metadata**: Additional context fields
* **Timestamp**: Date/time information
Once uploaded, BuildBetter:
* Extracts signals from the text
* Analyzes sentiment and severity
* Identifies topics and themes
* Links to existing people/companies
CSV files can contain thousands of feedback entries. BuildBetter processes them in the background, so you can continue working while import completes.
### Platform Integrations
Connect your existing tools for automatic feedback import:
**Zendesk**
* Import support tickets automatically
* Sync ticket fields and custom properties
* Webhook-based real-time sync
**Intercom**
* Automatic conversation import
* Customer identity mapping
* Ticket and message sync
**Kustomer**
* Full conversation history import
* Customer timeline integration
* Webhook support
**Slack**
* Import channel conversations
* Internal feedback tracking
* Team discussion analysis
**Typeform**
* Survey response import
* Form submission sync
* Real-time webhook updates
**HubSpot**
* Contact and company sync
* Conversation import
* Support ticket data
**Salesforce**
* Contact and account sync
* Activity logging
* Case data (via API)
**GitHub**
* Issue and PR sync
* Discussion import
* Repository linking
For integrations marked Alpha in the [Integrations section](/pages/Integrations/integrations-overview), contact [support@buildbetter.app](mailto:support@buildbetter.app) to request early access.
## CSV Format Guidelines
### Required Structure
Your CSV should include at minimum:
* **A text column** containing the feedback
* **Headers** in the first row
### Recommended Columns
Column TypeExamplesPurpose**Feedback Content**comment, feedback, description, messageThe actual text to analyze**Customer Identity**email, customer\_name, user\_idLinks feedback to people**Timestamp**date, created\_at, submitted\_onWhen feedback was given**Category**type, category, product\_areaPre-existing classifications**Metadata**score, rating, priority, tagsAdditional context
### Example CSV Format
```csv theme={null}
email,feedback,date,category,nps_score
john@example.com,"The onboarding process was confusing",2024-01-15,onboarding,3
jane@company.com,"Love the new features!",2024-01-16,features,9
```
## Working with Imported Feedback
### Viewing Feedback Sources
Once imported, manage your feedback sources:
* View all imported CSV files and connected platforms
* See processing status (processing, imported, error)
* Check record counts and import dates
* Access or delete sources
* Browse individual feedback entries
* See original data with all columns
* View extracted signals for each record
* Filter and search within sources
* Feedback appears in Signals dashboard
* Filter signals by "Feedback" data type
* Combine with call recordings for complete view
* Apply same analysis tools as recordings
### AI Processing
BuildBetter automatically extracts rich insights from text feedback:
**Extracted Properties**:
* **Sentiment**: Emotional tone from very negative to very positive
* **Severity**: Urgency or importance of the feedback
* **Topics**: Key themes discussed
* **Keywords**: Important terms mentioned
* **Type**: Classification (bug, feature request, complaint, etc.)
* **Emotions**: Detected emotional states
* **Business Impact**: Revenue, adoption, satisfaction implications
The same AI that analyzes your call recordings processes text feedback, ensuring consistent insight extraction across all data sources.
## Best Practices
**Clean your data first**: Remove duplicates and fix formatting issues before importing
**Include timestamps**: Date information helps track trends over time
**Map to customers**: Include emails or IDs to link feedback to customer profiles
**Use consistent categories**: Standardize category names across imports
**Regular imports**: Set up automated imports for continuous feedback analysis
## Common Use Cases
### Product Feedback Analysis
1. Export NPS survey responses to CSV
2. Import into BuildBetter
3. Analyze sentiment trends by feature area
4. Identify top feature requests
5. Track satisfaction over time
### Support Ticket Mining
1. Connect Zendesk or Intercom
2. Auto-import support conversations
3. Identify recurring issues
4. Track resolution sentiment
5. Generate bug priority reports
### Voice of Customer Programs
1. Aggregate feedback from multiple sources
2. Combine with call recording insights
3. Create comprehensive customer reports
4. Track feedback themes quarterly
5. Measure impact of changes
### Internal Feedback Loops
1. Import Slack conversations about customer issues
2. Analyze internal discussions
3. Identify process improvements
4. Track team sentiment
5. Align internal and external perspectives
## Integration Setup
### Connecting Platforms
Go to Settings → Integrations
Choose your feedback platform (Zendesk, Intercom, etc.)
Follow OAuth flow or enter API credentials
* Select data types to import
* Set historical import range
* Map custom fields
* Enable real-time sync
### Managing Integrations
* **View sync status**: Check last import time and record counts
* **Pause/resume**: Control data flow as needed
* **Update mappings**: Adjust field mappings over time
* **Remove connection**: Disconnect while preserving imported data
## Data Privacy
**Important Privacy Considerations**:
* Ensure you have permission to analyze customer feedback
* Remove any PII before importing if required by policy
* Imported data follows workspace privacy settings
* Deleted sources remove the data permanently
* Check compliance requirements for your industry
## Limitations
**Current Limitations**:
* CSV files must be under 100MB
* Maximum 100,000 records per import
* Text fields limited to 10,000 characters
* Some special characters may require escaping
* Real-time sync available for select platforms only
## Export and Analysis
Once imported, leverage BuildBetter's full analysis suite:
* Generate reports combining text and call data
* Export enriched signals to CSV
* Create documents from feedback themes
* Build workflows triggered by feedback patterns
* Share insights across your organization
Text data imports complement your call recordings, providing a 360-degree view of customer sentiment across all communication channels.
Transform scattered feedback into actionable insights by bringing all your text-based customer communications into BuildBetter's unified analysis platform.
# Non-Call Sources
Source: https://docs.buildbetter.ai/pages/Text Data/non-call-sources
Processing and analyzing text-based data sources in BuildBetter
## Text Data Sources
BuildBetter processes various text sources:
* Support tickets
* Survey responses
* Chat transcripts
* Email communications
* Customer feedback forms
## Data Import
CSV and text file import
Connected system import
## Supported Formats
### File Types
* **CSV files**: Primary import format for text feedback
* **Text documents**: Via CSV with text content column
* **JSON data**: Via API/GraphQL imports
### Data Structure
* Structured data
* Semi-structured
* Free-form text
* Mixed content
* Metadata fields
## Processing Steps
Load text content
Validate structure
Extract insights
Combine with other data
## Integration Options
**Currently Available**:
* Zendesk
* Intercom
* Kustomer
**Alpha (Request Early Access)**:
* Freshdesk
* Front
* Others - contact [support@buildbetter.app](mailto:support@buildbetter.app)
**Currently Available**:
* Typeform (Alpha)
* Pendo
* CSV upload (any survey data)
**Alpha (Request Early Access)**:
* SurveyMonkey
* Google Forms
* Others - contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Signal Extraction
### Text Analysis
* Topic detection
* Sentiment analysis
* Intent recognition
* Entity extraction
### Signal Types
* Feature requests
* Bug reports
* Feedback items
* Support needs
Ensure text data is properly formatted and cleaned before processing.
## Data Quality
Data quality checks
Text preprocessing
## Processing Features
### Text Processing
* Language detection
* Text normalization
* Keyword extraction
* Pattern matching
### Enhancement
* Data enrichment
* Context addition
* Metadata tagging
* Cross-referencing
Text processing quality affects signal extraction accuracy.
## Best Practices
### Data Preparation
* Clean formatting
* Complete fields
* Consistent structure
* Valid content
### Processing Setup
* Source configuration
* Field mapping
* Rule definition
* Quality checks
Regular data quality checks improve signal extraction results.
## Troubleshooting
* Format errors
* Missing data
* Structure problems
* Encoding issues
* Analysis errors
* Quality issues
* Integration failures
* Performance problems
## Performance Optimization
### Processing
* Batch operations
* Resource allocation
* Queue management
* Cache usage
### Integration
* Sync scheduling
* Error handling
* Retry logic
* Load balancing
## Privacy & Security
### Data Protection
* Access control
* Data encryption
* Privacy rules
* Retention policies
### Compliance
* GDPR rules
* HIPAA standards
* Data handling
* Audit trails
Regular monitoring ensures efficient text data processing and analysis.
# Text Data Overview
Source: https://docs.buildbetter.ai/pages/Text Data/overview
Learn how BuildBetter processes and analyzes text-based data sources beyond call recordings.
Understand how to leverage BuildBetter's analysis capabilities on non-call data sources like meeting notes or uploaded documents.
# CRM Integration Examples
Source: https://docs.buildbetter.ai/pages/Usage Examples/crm-integration
Practical examples of using BuildBetter with Salesforce and HubSpot
Learn how to connect and use BuildBetter with your CRM through real-world examples.
## Example 1: Connecting Salesforce
**Scenario**: Sync contacts and accounts between BuildBetter and Salesforce
1. Go to **Settings > Integrations**
2. Find **Salesforce** in the CRM section
3. Click "Connect"
4. Authorize with your Salesforce account
After connection:
* Select which properties to sync
* Choose sync frequency
* Map custom fields (if needed)
* Salesforce contacts sync to BuildBetter People
* Salesforce accounts sync to BuildBetter Companies
* Wait for initial sync to complete (may take several minutes)
* Go to **People** or **Companies** section
* See Salesforce data in person/company profiles
* CRM properties show with Salesforce icon (read-only)
Salesforce properties sync to BuildBetter but are read-only. Edit them in Salesforce and they'll update in BuildBetter on next sync.
## Example 2: HubSpot Contact Sync
**Scenario**: Import HubSpot contacts to enrich BuildBetter people profiles
1. Go to **Settings > Integrations**
2. Find **HubSpot** in the CRM section
3. Click "Connect" and authorize
* Select which HubSpot properties to sync
* Choose contact and company fields
* Enable bi-directional sync if desired
In person profiles:
* See HubSpot properties section
* Filter signals by HubSpot metadata
* Use CRM fields in signal queries
## Example 3: Filtering Signals by CRM Data
**Scenario**: Find all feature requests from enterprise accounts (defined in Salesforce)
Go to Signals or Clustering section
Build query:
* Type = "Feature Request"
* Company Industry = "Technology" (from Salesforce)
* Account Type = "Enterprise" (from Salesforce custom field)
* See feature requests from enterprise tech companies
* CRM context enriches each signal
* Export or create dashboard
Once CRM is connected, all Salesforce/HubSpot fields become available as filters in Signals and throughout BuildBetter.
## Example 4: Tracking Calls by Opportunity Stage
**Scenario**: Analyze calls associated with deals in different stages
Verify Salesforce/HubSpot sync is running and up-to-date
In Recordings section:
* Add Company filter
* Select companies with open opportunities
* Or use CRM metadata to filter by opportunity stage
* Group calls by deal stage (Discovery, Demo, Negotiation, etc.)
* Identify patterns in successful vs unsuccessful deals
* Create dashboards showing sentiment by stage
## Example 5: Logging Call Summaries Back to CRM
**Scenario**: Send BuildBetter call summaries to Salesforce as activities
**Current Capability**: Salesforce integration supports activity logging
In Salesforce integration settings:
* Enable activity logging
* Map BuildBetter summaries to Salesforce activities
When calls are processed:
* Summary automatically created in BuildBetter
* Activity logged to relevant Salesforce contact/account
* Link back to BuildBetter included
* Open contact or account in Salesforce
* See BuildBetter call in activity timeline
* Click link to view full details in BuildBetter
Activity logging must be enabled in your Salesforce integration settings. Check Settings > Integrations > Salesforce for configuration.
## Best Practices
**Keep CRM data clean**: Accurate CRM data improves BuildBetter filtering and insights
**Use CRM metadata in queries**: Filter signals by industry, account tier, deal stage, etc.
**Regular sync checks**: Verify CRM integration status weekly in Settings
**Map important custom fields**: Sync CRM fields you use for segmentation
## Common CRM Workflows
### Enterprise Account Monitoring
1. Connect Salesforce
2. Filter signals by Account Type = "Enterprise"
3. Track sentiment trends for top accounts
4. Alert customer success team on negative signals
### Deal Stage Analysis
1. Sync Salesforce opportunities
2. Filter calls by Opportunity Stage
3. Analyze patterns in won vs lost deals
4. Share insights with sales team
### Contact Enrichment
1. Import HubSpot contacts
2. BuildBetter enriches with call participation data
3. View engagement history per contact
4. Identify most/least engaged contacts
For more on CRM features, see:
* [CRM Integration Overview](/pages/CRM%20Integration/overview)
* [People and Companies](/pages/CRM%20Integration/people-and-companies)
* [Salesforce Integration](/pages/Integrations/crm/salesforce)
* [HubSpot Integration](/pages/Integrations/crm/hubspot)
# Document Generation Examples
Source: https://docs.buildbetter.ai/pages/Usage Examples/document-generation
Real-world examples of generating documents from calls and signals
Learn how to transform your recordings and signals into structured documents through practical, step-by-step examples.
## Example 1: Meeting Summary from Single Call
**Scenario**: Generate professional meeting notes from a customer call
Navigate to your Recordings and open the call you want to summarize
From the call details page:
* Click the **Generate** button (or ••• menu)
* Select "Generate Document"
Select **Meeting Summary** template
The call should already be selected as the source
* **Title** (optional): "Acme Corp Q1 Review"
* **Focus** (optional): "Highlight action items and next steps"
* **Generation Style**: Focused Analysis (default for single call)
* **Data Format**: Full Context (uses complete transcript)
* **Visibility**: Private or Workspace
* Click "Create Document"
* Wait 30-60 seconds
* Document opens automatically when ready
Adding a specific focus like "Emphasize technical requirements" helps the AI generate more targeted content.
## Example 2: PRD from Multiple Customer Calls
**Scenario**: Create a product requirements document from 5 customer interviews about the same feature
* Create a folder called "API Integration Feedback"
* Add all 5 related customer calls to the folder
* Go to **Documents** section
* Click "Create Document"
Select **Product Requirements Document** template
In the Data step:
* Click "Folders" tab
* Select your "API Integration Feedback" folder
* All 5 calls are now included
* **Title**: "API Integration Feature Requirements"
* **Focus**: "Extract technical requirements, integration needs, and user pain points for API development"
* **Generation Style**: Theme Discovery (for multiple calls)
* **Data Format**: Full Context
* **Visibility**: Workspace
* Click "Create Document"
* Wait 1-2 minutes for processing
* Review generated PRD
* Edit directly in the document editor
* Use document chat for refinements
Theme Discovery mode is best for multiple calls - it identifies patterns and themes across all conversations.
## Example 3: Weekly Feature Request Report
**Scenario**: Create a document summarizing all feature requests from the past week
* Go to **Signals** section
* Filter: Type = "Feature Request"
* Filter: Date = "Last 7 days"
* Filter: Interaction = "External"
* Click "Create Saved Search"
* Name: "Weekly Feature Requests"
* Go to **Documents** section
* Click "Create Document"
* Choose template (e.g., "Status Update" or custom report template)
* In Data step, click "Saved Searches" tab
* Select "Weekly Feature Requests" saved search
* **Title**: "Weekly Feature Request Report - \[Date]"
* **Focus**: "Group by customer account and prioritize by frequency"
* **Generation Style**: Theme Discovery
* **Data Format**: Key Insights (using signals)
* **Visibility**: Workspace
* Generate document
* Review and edit as needed
* Copy to share in Slack/email
* Or share BuildBetter link with team
## Example 4: Customer Feedback Summary (Multiple Sources)
**Scenario**: Combine calls, support tickets, and survey responses into one comprehensive report
Create a folder called "Q1 Customer Feedback" containing:
* Customer calls from the quarter
* Imported Zendesk conversations
* Survey responses (if using Typeform/Pendo integration)
* Go to Documents > Create Document
* Choose a report or summary template
* Select "Q1 Customer Feedback" folder as source
* All content types automatically included
* **Title**: "Q1 Customer Feedback Report"
* **Focus**: "Identify top pain points, feature requests, and satisfaction trends. Group findings by theme."
* **Generation Style**: Theme Discovery (for large dataset)
* **Data Format**: Key Insights
* Generate document
* AI analyzes across all source types
* Themes emerge from combined data
Combining multiple data source types (calls + tickets + surveys) provides a more complete view than any single source alone.
## Example 5: Using Document Chat for Refinement
**Scenario**: The generated document is good but needs specific additions
Open your newly created document
Click the chat icon in the top-right corner
In the chat, request specific changes:
* "Add a section about pricing concerns mentioned in the calls"
* "Extract all timeline requirements mentioned"
* "What specific API endpoints were discussed?"
* Review AI's response in chat
* Copy relevant content
* Paste into your document
* Edit to integrate smoothly
Use document chat to iterate on content instead of regenerating the entire document. It's faster and preserves your manual edits.
## Document Generation Best Practices
**Choose the right template**: Match template to document purpose (PRD for requirements, Meeting Summary for notes)
**Use appropriate generation style**: Focused Analysis for 1-10 sources, Theme Discovery for 10+ sources
**Provide specific focus**: Detailed instructions produce better targeted content
**Start with fewer sources**: Test with 2-3 calls before generating from 50+
**Edit after generation**: AI provides a strong starting point - add your expertise
## Common Document Types
### Meeting Notes
* **Template**: Meeting Summary
* **Sources**: Single call
* **Format**: Full Context
* **Use**: Quick professional notes after any meeting
### Product Requirements
* **Template**: Product Requirements Document (PRD)
* **Sources**: Multiple customer calls or folder
* **Format**: Full Context or Key Insights
* **Use**: Feature planning and development specs
### Status Reports
* **Template**: Status Update
* **Sources**: Saved Search or Collection
* **Format**: Key Insights
* **Use**: Weekly/monthly progress reports
### User Stories
* **Template**: User Stories
* **Sources**: Research calls or feedback signals
* **Format**: Full Context
* **Use**: Development planning and sprint work
Always review AI-generated documents before sharing externally. Verify accuracy of technical details and customer quotes.
For detailed documentation on document generation, see:
* [Document Generation](/pages/Documents/document-generation)
* [Editing & Refining](/pages/Documents/editing-and-refining)
* [Purpose & Templates](/pages/Documents/purpose-and-templates)
# Recording & Summaries Examples
Source: https://docs.buildbetter.ai/pages/Usage Examples/recording-and-summaries
Real-world examples of recording calls and generating summaries with BuildBetter
Learn how to record calls and generate AI-powered summaries through practical, step-by-step examples.
## Example 1: Automatic Recording with Calendar Integration
**Scenario**: Automatically record all customer calls scheduled on your calendar
1. Go to **Settings > Integrations**
2. Click **Google Calendar** or **Outlook**
3. Click "Connect" and authorize BuildBetter
4. Your calendar is now connected
1. Go to **Settings > Organization > Bot Recording Rules**
2. Click "Create Rule"
3. Configure rule:
* **Type**: Attendee's Email
* **Condition**: is
* **Value**: `@customerdomain.com`
4. Click Save
1. Go to **Home** page
2. Check "Upcoming Calls" section
3. See scheduled meetings that will be recorded
4. Toggle recording on/off for specific events if needed
When the meeting starts:
* BuildBetter bot joins as a participant
* Recording begins automatically
* Real-time transcription runs
After the call ends (10-15 minutes):
* Check your email for summary (if notifications enabled)
* Or go to **Recordings** section
* Open the call to view full summary
Use recording rules to automate which meetings get recorded. Create rules for customer-facing calls while excluding internal standups.
## Example 2: Manual Recording with Meeting Link
**Scenario**: Record an ad-hoc call that wasn't scheduled on your calendar
Copy the Zoom, Google Meet, or Teams link from your invite
1. In BuildBetter, click **Upload** or **Record** button
2. Select "Join Call"
3. Paste the meeting URL
4. Set privacy (Workspace or Participants)
5. Click "Join Meeting"
* Bot appears as "BuildBetter" in participant list
* Recording starts when call begins
* Continue your meeting normally
After the call:
* Recording processes automatically
* Check **Recordings** section for the call
* Open to view AI-generated summary
## Example 3: Upload Existing Recording
**Scenario**: You have a recording from another tool and want BuildBetter to analyze it
1. Go to **Recordings** section
2. Click **Upload** button
* Drag and drop your file (MP4, MP3, MOV, WAV, etc.)
* Or click to browse and select
* File size limit: 5GB
Fill in:
* **Title**: Meeting name
* **Date**: When the call occurred
* **Participants**: Add names/emails (optional)
* **Privacy**: Workspace or Participants
* Click "Upload"
* Processing starts automatically
* Wait 10-30 minutes depending on file size
Once processing completes:
* Find recording in your list
* Open to view transcript and summary
## Example 4: Regenerating Summaries with Custom Focus
**Scenario**: The default summary doesn't emphasize what you need - regenerate with specific focus
Navigate to the recording in your Recordings list
Click the "Summary" tab to view current summary
1. Click the **Regenerate** icon/button
2. In the dialog, add specific instructions:
* "Focus on technical requirements and API needs"
* "Emphasize pricing concerns and budget discussion"
* "Extract all action items with owners"
3. Click "Regenerate Summary"
* Wait 30-60 seconds for regeneration
* Review the new summary with your specified focus
* Repeat if needed with different instructions
Regeneration uses the same transcript but applies your custom focus to generate more targeted summaries.
## Example 5: Weekly Summary of All Customer Calls
**Scenario**: Get a weekly digest of all customer conversations
1. Go to **Settings > Account > Scheduled Tasks**
2. Click "Create New Task"
* **Name**: "Weekly Customer Calls Summary"
* **Instructions**: "Summarize all customer calls from the past week. Include key feature requests, pain points, and action items. Group by customer account."
* **Schedule**: Weekly, Monday at 9 AM
* **Timezone**: Your timezone
* Click Save
* Task runs automatically every Monday at 9 AM
Every Monday:
* Check **Chat** section
* Find thread named "Weekly Customer Calls Summary"
* Review AI-generated analysis
* Ask follow-up questions in the chat if needed
## Best Practices
**Test your recording setup**: Do a test meeting before important calls
**Use recording rules**: Automate which meetings get recorded
**Assign speakers**: Label unknown speakers for accurate attribution
**Regenerate when needed**: Use custom focus for targeted summaries
**Organize with folders**: Create collections for different meeting types
## Common Use Cases
### Sales Calls
* Record all prospect meetings automatically
* Generate summaries with focus on pain points and objections
* Track competitive mentions across calls
### Customer Success
* Record quarterly business reviews
* Summarize health check conversations
* Track customer satisfaction and risk signals
### Product Research
* Upload user interview recordings
* Generate summaries focused on feature requests
* Extract quotes for documentation
### Team Meetings
* Record sprint planning and retrospectives
* Generate summaries with action items
* Track decisions and blockers
Always notify participants when recording. Check compliance requirements for your industry and region.
For more details on recording methods, see [Recording Methods](/pages/Calls%20&%20Recordings/recording-methods).
# Signal Extraction Examples
Source: https://docs.buildbetter.ai/pages/Usage Examples/signal-extraction
Real-world examples of finding and analyzing signals from your calls and data
Learn how to work with BuildBetter's automatically extracted signals through practical examples.
## Understanding Signals
Signals are automatically extracted insights from your calls and imported data. BuildBetter detects 35+ signal types including feature requests, bugs, complaints, competitive mentions, and more.
**No configuration needed** - signals extract automatically when calls are processed or data is imported.
## Example 1: Finding Feature Requests from Customer Calls
**Scenario**: You want to see all feature requests from the past month to prioritize your roadmap
Click **Signals** or **Clustering** in the main navigation
* Click the filter icon or use the query builder
* Select "Type" filter
* Choose "Feature Request"
* Click "Add Filter"
* Select "Date Range"
* Choose "Last 30 days"
* Add "Interaction Type" filter
* Select "External" to see only customer conversations
* See list of all feature request signals
* Click any signal to see full context
* Jump to exact moment in recording
Use the natural language query builder: Type "Show me feature requests from customers in the last 30 days" and let AI build the filters for you.
## Example 2: Tracking High-Severity Bugs
**Scenario**: Find all critical bugs mentioned by customers this quarter
In Signals section, use the query builder:
Type: "Show me bugs with high severity from this quarter"
AI creates filters for:
* Type = "Bug"
* Severity > 6
* Date Range = This quarter
* Interaction = External
Adjust filters:
* Add company filter for specific accounts
* Filter by topic or keyword
* Sort by severity (highest first)
* Click "Create Saved Search"
* Name it "Q1 Critical Bugs"
* Export to CSV or share with engineering team
## Example 3: Sentiment Analysis by Account
**Scenario**: Track customer sentiment trends for your top accounts
* In Signals, add "Companies" filter
* Select your key accounts (e.g., "Acme Corp")
* Go to **Clustering** section
* Create or view dashboard
* Add "Sentiment Ridge Chart" card
* Filter to your selected companies
* Review sentiment distribution (-10 to +10)
* Identify negative spikes
* Click on negative signals to see context
For concerning signals:
* Click signal to view source call
* Listen to the exact moment
* Add to folder "At-Risk Accounts"
* Create action item for customer success team
## Example 4: Competitive Intelligence
**Scenario**: Track all competitor mentions across your sales calls
* Navigate to Signals
* Add filter: Type = "Competition"
* Add filter: Date = "Last 90 days"
* Go to Clustering section
* AI automatically groups similar competitive mentions
* See which competitors are mentioned most
* View trending competitor discussions
* Click on a competitor cluster
* Read AI-generated report with:
* Trend analysis (increasing/decreasing mentions)
* Customer quotes
* Common comparison points
* Recommended actions
* Export cluster to CSV
* Or generate document from cluster
* Share dashboard link with team
Clustering automatically identifies themes in your signals. Use it when you have 100+ signals to discover patterns you might miss manually.
## Example 5: Creating a Bug Report Dashboard
**Scenario**: Build a real-time dashboard tracking bug reports
Go to Signals > Clustering section
* Click "Customize Dashboard" or create new
* Enter edit mode
Add these cards:
* **Time Series Chart**: Bug volume over time
* **Severity Distribution**: Pie chart of severity levels
* **Signal List**: Filtered to bugs, sorted by severity
* **Quote Cards**: Recent customer bug reports
For each card, set filters:
* Type = "Bug"
* Time range = Last 30 days
* Interaction = External
* Save dashboard configuration
* Copy dashboard URL
* Share with engineering and product teams
## Example 6: Pushing Signals to Jira
**Scenario**: Automatically create Jira tickets from high-severity customer bugs
In Signals:
* Filter Type = "Bug"
* Filter Severity >= 7
* Filter Interaction = External
* Review the filtered list
* Select signals to push to Jira (checkbox selection)
* Choose 1-10 signals to convert
* Click bulk action menu
* Select "Push to Integration"
* Choose "Jira"
* Select project (e.g., "BUGS")
* Choose issue type ("Bug")
* Set priority (AI suggests based on severity)
* Review AI-generated titles and descriptions
* Click "Create Issues"
* Jira tickets created with:
* Customer quote in description
* Link back to BuildBetter signal
* Severity-based priority
Jira integration must be connected first in Settings > Integrations. Same process works for Linear.
## Best Practices
**Use natural language queries**: "Show me complaints from enterprise customers" is easier than building complex filters
**Save common filter views**: Create saved views for frequent analyses
**Leverage clustering**: Let AI find patterns in large signal sets
**Always check source context**: Click signals to verify AI extraction is accurate
**Create datasets for analysis**: Save filtered signal sets with custom AI columns
## Common Signal Analysis Workflows
### Product Prioritization
1. Filter feature requests from last quarter
2. Group by company using CRM metadata
3. Create dashboard showing request frequency
4. Push top requests to Linear/Jira
5. Share dashboard with product team
### Customer Health Monitoring
1. Filter signals by company: "Acme Corp"
2. View sentiment trends over time
3. Identify complaints and risk signals
4. Add concerning signals to "At-Risk" folder
5. Generate report for customer success team
### Support Issue Tracking
1. Import Zendesk/Intercom conversations
2. Filter signals by Type = "Issue" or "Bug"
3. Track resolution over time
4. Identify recurring problems
5. Create workflow to alert support team
### Market Intelligence
1. Filter Competition signals
2. Use clustering to group by competitor
3. Review cluster reports for trends
4. Export quotes to competitive analysis doc
5. Share insights with sales team
Always verify signal accuracy by checking the source context before making important decisions based on AI extractions.
For more on signal features, see:
* [Automatic Extraction](/pages/Signals/automatic-extraction)
* [Filtering & Properties](/pages/Signals/filtering-and-properties)
* [Visualization & Citation](/pages/Signals/visualization-and-citation)
# Transcript to Document Example
Source: https://docs.buildbetter.ai/pages/Usage Examples/transcript-to-document
Complete example of converting call transcripts into structured documents
## Overview
This example demonstrates how to:
* Process a call transcript
* Extract key information
* Generate structured documents
* Apply custom templates
* Handle multiple speakers
## Basic Example
### Input Transcript
```json theme={null}
{
"call_id": "call_123",
"participants": [
{"id": "user_1", "name": "John (Sales)"},
{"id": "user_2", "name": "Sarah (Customer)"}
],
"transcript": [
{
"speaker": "user_1",
"timestamp": "00:00:05",
"text": "Hi Sarah, thanks for joining today. We'll discuss the new features you requested."
},
{
"speaker": "user_2",
"timestamp": "00:00:12",
"text": "Yes, specifically I'm interested in the API integration capabilities."
}
]
}
```
### Generate Summary Document
```bash theme={null}
curl -X POST https://api.buildbetter.app/v1/documents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "meeting_summary",
"source": {
"call_id": "call_123"
},
"options": {
"format": "markdown",
"template": "customer_meeting",
"include_action_items": true
}
}'
```
### Output Document
```markdown theme={null}
# Customer Meeting Summary
Date: January 15, 2024
Duration: 45 minutes
Participants: John (Sales), Sarah (Customer)
## Key Points
- Discussed new feature requests
- Focus on API integration capabilities
- Customer interested in Salesforce connection
## Action Items
1. [ ] Send API documentation to Sarah
2. [ ] Schedule technical review for integration
3. [ ] Provide pricing for API access tier
## Next Steps
- Follow-up meeting scheduled for next week
- Technical team to review requirements
```
## Advanced Processing
```yaml theme={null}
template_config:
name: "customer_meeting"
sections:
- title: "Key Points"
extraction:
method: "topic_clustering"
min_points: 3
- title: "Action Items"
extraction:
method: "task_detection"
assignee_required: true
- title: "Next Steps"
extraction:
method: "future_planning"
timeframe: "next_2_weeks"
```
```yaml theme={null}
signal_rules:
feature_request:
patterns:
- "need capability for"
- "would like to have"
- "missing feature"
customer_pain:
patterns:
- "struggling with"
- "difficult to"
- "pain point"
```
## Processing Options
### Content Selection
```yaml theme={null}
processing_options:
content_filters:
include:
- key_points
- action_items
- decisions
- follow_ups
exclude:
- small_talk
- technical_issues
- interruptions
```
### Format Options
```yaml theme={null}
format_settings:
markdown:
headers:
style: "atx" # Use # headers
max_level: 3
lists:
style: "hyphen"
indent: 2
emphasis:
bold: "**"
italic: "_"
```
Customize processing options to match your document requirements and organizational standards.
## Real-World Example
### Sales Call to PRD
Ask the BuildBetter recorder to join the meeting. This operation requires a user access token.
```bash theme={null}
curl -X POST https://api.buildbetter.app/v3/rest/recordings/meeting-joins \
-H "Authorization: Bearer USER_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "meetingUrl",
"joinUrl": "https://zoom.us/j/123456789"
}'
```
Store the public `recordingId` from the `201 Created` response.
Recording and transcription continue asynchronously. When the transcript is ready, fetch sentence-level utterances by public recording UUID.
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/recordings/{recordingId}/transcript?type=utterance" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
In BuildBetter, create a document using the completed recording as source material, choose your PRD template, and refine the generated draft.
### Example PRD Output
```markdown theme={null}
# Product Requirements: Enterprise API Integration
## Overview
Based on customer discussion on January 15, 2024
## Market Context
Enterprise customer seeking API integration capabilities for:
- Salesforce data synchronization
- Custom webhook support
- Batch processing capabilities
## User Stories
As an enterprise customer, I want to:
1. Sync customer data with Salesforce
2. Process data in batches of 1000+ records
3. Receive webhook notifications for updates
## Technical Requirements
- REST API endpoints for CRUD operations
- OAuth 2.0 authentication
- Rate limiting: 10,000 requests/hour
- 99.9% uptime SLA
## Implementation Timeline
- Phase 1: Basic API endpoints (Q1 2024)
- Phase 2: Batch processing (Q2 2024)
- Phase 3: Webhook system (Q3 2024)
```
## Best Practices
### Transcript Quality
* Ensure clear audio quality
* Use speaker identification
* Mark important segments
* Note key decisions
### Document Generation
* Choose appropriate templates
* Set clear extraction rules
* Review and refine output
* Maintain consistency
Always review automatically generated documents before sharing with stakeholders.
## Template Customization
### Custom Fields
```yaml theme={null}
template_fields:
customer_context:
type: "text"
source: "participant_info"
required: true
business_value:
type: "list"
source: "signal_analysis"
min_items: 2
technical_scope:
type: "structured"
format: "requirements"
required: true
```
### Document Structure
```yaml theme={null}
document_structure:
sections:
- title: "Executive Summary"
content: ["context", "objectives"]
max_length: 500
- title: "Detailed Requirements"
content: ["user_stories", "technical_specs"]
format: "nested_list"
- title: "Next Steps"
content: ["action_items", "timeline"]
required: true
```
Create templates that match your organization's documentation standards and workflows.
## Integration Example
### Jira Integration
```javascript theme={null}
// After document generation, create Jira tickets
const response = await buildbetter.documents.create({
type: 'technical_specs',
source: { call_id: 'call_123' },
integrations: {
jira: {
project_key: 'PROD',
issue_type: 'Story',
auto_create: true
}
}
});
```
BuildBetter can automatically create tickets and tasks in connected systems based on generated documents.
# Workflows & Tasks Examples
Source: https://docs.buildbetter.ai/pages/Usage Examples/workflows-and-tasks
Practical examples of automating tasks with BuildBetter workflows
Learn how to automate routine tasks using BuildBetter's workflow system through real-world examples.
## Example 1: Auto-Organize Customer Calls
**Scenario**: Automatically move all customer interview calls to a Research folder
* Go to Collections section
* Create folder named "Customer Research"
1. Go to **Workflows** section
2. Click **Templates**
3. Select "Recording to Folder by Title"
* **Name**: "Customer Interviews → Research Folder"
* **Folder**: Select "Customer Research"
* **Title Matching**: contains "Customer Interview"
* Click Save
* Workflow is now active
* All future recordings with "Customer Interview" in title automatically go to folder
Use title-based workflows for simple keyword matching. For more complex conditions, use the AI-powered condition workflows.
## Example 2: Route Feature Requests to Product Team
**Scenario**: Send high-priority feature requests to your product management webhook
* Set up webhook receiver (your PM tool, Slack webhook, etc.)
* Get HTTPS webhook URL
* Test with webhook.site first
1. Go to **Workflows > Templates**
2. Select "Signal to Webhook"
* **Name**: "High Priority Features → Product Webhook"
* **Webhook URL**: Your webhook endpoint
* **Condition**: "Feature request with high severity from customer"
* **Output Format**: JSON
* Click "Run Now" to test with recent signals
* Verify webhook receives data
* Save to activate automatic execution
Workflows with conditions use AI to evaluate each signal. The AI understands natural language like "high severity from customer" without requiring complex rules.
## Example 3: Tag Competitive Mentions
**Scenario**: Automatically tag all calls that mention competitors
Create a tag called "Competitive" in your workspace
1. Go to **Workflows > Templates**
2. Select "Recording to Tag"
* **Name**: "Tag Competitive Discussions"
* **Tag**: "Competitive"
* **Condition**: "Call mentions competitors, alternatives, or competitive comparisons"
* Save workflow
* All future calls matching the condition get tagged automatically
* Easy to filter for competitive intelligence
## Example 4: Send Transcripts to Archive
**Scenario**: Automatically send all call transcripts to your data warehouse
* Configure your data warehouse webhook
* Ensure it accepts POST requests with JSON
1. Go to **Workflows > Templates**
2. Select "Transcript to Webhook"
* **Name**: "Archive All Transcripts"
* **Webhook URL**: Your archive endpoint
* **Condition**: Leave empty (all calls)
* **Output Format**: JSON
* Save workflow
* Every processed call sends transcript to your archive
* Complete backup of all conversations
Webhooks must respond within 30 seconds. For long-running processes, have your endpoint acknowledge quickly and process asynchronously.
## Example 5: Weekly Scheduled Analysis
**Scenario**: Get a weekly summary of product feedback every Monday morning
1. Go to **Settings > Account > Scheduled Tasks**
2. Click "Create New Task"
* **Name**: "Weekly Product Feedback Summary"
* **Instructions**: "Analyze all product feedback signals from the past week. Group by feature area. Identify top 5 most requested features and most common complaints."
* **Schedule**: Weekly, Monday at 8 AM
* Save task
* Every Monday at 8 AM, task runs automatically
* Check Chat section for results
* Review analysis and share with team
Scheduled tasks create chat threads with results. You can continue the conversation by asking follow-up questions.
## Workflow Best Practices
**Start simple**: Create one workflow and verify it works before building more
**Test webhooks first**: Use webhook.site to test before connecting production systems
**Use descriptive names**: "Customer Calls → Research Folder" is clearer than "Workflow 1"
**Monitor execution**: Check Workflows list weekly to ensure they're running
**Use AI conditions wisely**: Natural language conditions are more flexible than keyword matching
## Common Automation Patterns
### Content Organization
* Auto-file customer calls by title pattern
* Tag calls with specific topics
* Route signals to team folders
### External Integration
* Send summaries to CRM webhooks
* Archive transcripts to data warehouse
* Post important signals to Slack
### Regular Reporting
* Weekly feature request summaries
* Daily critical issue alerts
* Monthly trend analysis
For more on workflows, see:
* [Workflows Overview](/pages/Workflows/overview)
* [Workflow Automation](/pages/Workflows/workflow-automation)
* [Creating Workflows](/pages/Workflows/creating-automations)
* [Scheduled Tasks](/pages/Scheduled%20Tasks/overview)
# Customer Health Intelligence
Source: https://docs.buildbetter.ai/pages/Use Cases/cs/customer-health
Transform reactive firefighting into proactive customer success with AI-powered health monitoring that predicts risks and drives retention
Customer Success teams manage hundreds of accounts with limited visibility into what's actually happening. BuildBetter changes that by analyzing every customer interaction, surfacing health risks before they become problems, and providing actionable insights that help you retain and grow your customer base.
## The Customer Health Challenge
Traditional health monitoring is fundamentally broken:
* 🚨 **60% of churned customers** showed no obvious warning signs
* ⏱️ **CSMs spend 40% of time** gathering data instead of helping customers
* 📊 **Health scores are 6+ weeks outdated** by the time they're reviewed
* 🎯 **Only 23% of risks** are caught before escalation
* 💔 **\$75B lost annually** to preventable churn in SaaS alone
BuildBetter transforms health monitoring from reactive guesswork to proactive science.
## Core Health Monitoring Capabilities
AI analyzes all touchpoints to identify satisfaction trends and risk signals
Surface hidden risks across product usage, sentiment, and engagement
Identify at-risk accounts 90+ days before renewal with 87% accuracy
Trigger proactive interventions based on health changes
## Implementation Guide
### Phase 1: Foundation (Week 1)
**Goal**: Create unified view of customer satisfaction signals
1. **Core Platform Integrations**:
* [CRM Data](/pages/Integrations/crm/salesforce): Contracts, contacts, revenue
* [Support Tickets](/pages/Integrations/ticketing/zendesk): Issues, response times
* [Product Analytics](/pages/Integrations/analytics/mixpanel): Usage, adoption, engagement
* [Communication](/pages/Integrations/chat/slack): Sentiment, responsiveness
2. **Call & Meeting Intelligence**:
* [Enable call recording](/pages/Calls%20&%20Recordings/recording-methods)
* Sync calendar for QBR/check-in tracking
* Import historical call data
* Set up automatic transcription
3. **Historical Data Import**:
```
Essential Historical Data:
- 12 months of support tickets
- 6 months of product usage
- All customer calls/meetings
- NPS/CSAT survey results
- Churn/renewal history
```
Import data from both successful renewals AND churned customers - AI needs both patterns to predict accurately.
**Goal**: Build comprehensive health scoring framework
1. **Multi-Dimensional Health Score** in [Custom Context](/pages/Settings/custom-context):
```
Health Score Components:
🔵 Product Health (35%)
- Daily Active Users
- Feature adoption rate
- Usage trend (growing/declining)
- Time to value achieved
- Integration depth
🟢 Relationship Health (30%)
- Executive engagement level
- Champion presence/strength
- Meeting frequency/quality
- Response times
- Multi-threading score
🟡 Support Health (20%)
- Ticket volume/severity
- Resolution satisfaction
- Escalation frequency
- Time to resolution
🟣 Commercial Health (15%)
- Payment history
- Contract utilization
- Expansion discussions
- Renewal timeline
```
2. **Risk Signal Configuration** ([Signals](/pages/Signals/understanding-signals)):
```
Critical Risk Signals:
- "Considering alternatives" mentioned
- Decision maker change
- Usage drop >30% in 30 days
- Support tickets up >50%
- No QBR in 90+ days
- Payment delays
- "Disappointed" or "Frustrated" sentiment
- Feature requests ignored
- Competition mentioned
```
3. **Predictive Indicators**:
* Combine signals for early warning
* Weight by historical correlation
* Account for seasonality
* Include industry benchmarks
4. **Health Visualization**:
* Green (80-100): Thriving, expansion ready
* Yellow (60-79): Stable, needs attention
* Orange (40-59): At risk, intervention required
* Red (\<40): Critical, executive escalation
**Goal**: Operationalize health tracking across all accounts
1. **Real-Time Health Workflows** ([Workflow Automation](/pages/Workflows/workflow-automation)):
```
Health Monitoring Workflow:
Trigger: Daily at 6 AM
Actions:
1. Analyze sentiment trends for all accounts
2. Compare to previous scores
3. Identify significant changes (>10 points)
4. Check for risk signals
5. Generate intervention recommendations
6. Notify CSM of critical changes
7. Update dashboards
```
2. **Alert Configuration**:
```
🔴 Critical Alerts (Immediate):
- Health drops below 40
- Executive sponsor leaves
- Competitor evaluation started
- Usage drops 50%+ in a week
🟡 Warning Alerts (Daily):
- Health trending down 3+ days
- Support satisfaction below 3/5
- No user login in 7 days
- Renewal discussion overdue
🔵 Info Alerts (Weekly):
- Gradual usage decline
- Feature requests pending
- Training opportunities
```
3. **Team Enablement**:
* Train on using sentiment analysis and risk signals
* Review intervention playbooks
* Set up dashboard access
* Practice using AI insights
* Define escalation paths
4. **Quick Wins**:
* Save first at-risk account
* Identify expansion opportunity
* Prevent support escalation
* Celebrate with team
### Phase 2: Intelligent Interventions (Weeks 2-4)
**Turn health insights into saved accounts:**
1. **Risk Playbook Automation**:
```
Risk Level: High (Score <50)
Automated Actions:
1. Schedule executive check-in within 48 hours
2. Generate account recovery plan
3. Analyze similar saved accounts
4. Prepare value realization deck
5. Alert Customer Success leadership
6. Create Slack channel for war room
```
2. **AI-Powered Recovery Plans**:
Query: "Generate recovery plan for \[Account Name]"
AI Response:
```
Account: TechCorp
Health Score: 42 (down from 78)
Root Causes:
1. Champion (Sarah) left 3 weeks ago
2. Usage down 40% since departure
3. 5 critical tickets unresolved
4. No executive engagement in 60 days
Recovery Plan:
Week 1:
- Executive alignment call (CEO to CEO)
- Identify new champion
- Resolve critical tickets
- Conduct health check workshop
Week 2:
- New champion training
- Share success metrics
- Propose optimization plan
- Discuss renewal early
Success Rate: 73% for similar situations
```
3. **Intervention Tracking**:
* Document all actions taken
* Measure impact of proactive interventions
* Track success rates
* Refine playbooks
Accounts receiving AI-recommended interventions have 67% lower churn rate
**Understand how customers really feel:**
1. **Multi-Channel Sentiment Tracking**:
```
Sentiment Sources:
📞 Call Transcripts
- Tone analysis
- Emotion detection
- Frustration indicators
- Excitement moments
📧 Email Communications
- Response sentiment
- Language formality
- Urgency indicators
- Satisfaction signals
💬 Support Interactions
- Ticket language
- Escalation tone
- Resolution feedback
- Survey responses
🤝 Meeting Analysis
- Engagement level
- Question quality
- Action item follow-through
- Attendance patterns
```
2. **Engagement Scoring**:
```
High Engagement Indicators:
✅ Asks strategic questions
✅ Shares success stories
✅ Requests new features
✅ Attends optional sessions
✅ Quick response times
Low Engagement Warnings:
❌ Cancels meetings frequently
❌ Delayed responses
❌ Minimal product usage
❌ No feature requests
❌ Avoids renewal discussions
```
3. **Sentiment Trend Analysis**:
* Track sentiment over time
* Identify inflection points
* Correlate with events
* Predict future trajectory
4. **Automated Responses**:
* Positive sentiment → Share case study
* Neutral → Schedule value review
* Negative → Escalate immediately
**Deep insights into product adoption and value realization:**
1. **Adoption Pathway Tracking**:
```
Typical Success Journey:
Week 1-2: Initial setup (2-3 features)
Week 3-4: Core adoption (5-7 features)
Week 5-8: Advanced usage (10+ features)
Week 9-12: Full integration
Current Account Status:
TechCorp: Stalled at Week 3 (🚨 Risk)
- Only using 3/7 core features
- No admin logins in 2 weeks
- Integration incomplete
Recommended Actions:
1. Schedule adoption workshop
2. Share feature tutorials
3. Connect with power users
```
2. **Value Realization Metrics**:
```
Expected vs Actual Outcomes:
Time Savings:
Expected: 10 hours/week
Actual: 3 hours/week ⚠️
Gap: Training needed on automation
Cost Reduction:
Expected: $50K/quarter
Actual: $15K/quarter ⚠️
Gap: Not using key features
Efficiency Gains:
Expected: 40% faster
Actual: 45% faster ✅
Status: Exceeding goals
```
3. **Feature Adoption Analysis**:
* Which features drive retention
* Adoption sequence patterns
* Time to feature activation
* Usage depth metrics
4. **Behavioral Cohort Analysis**:
* Compare to successful customers
* Identify adoption gaps
* Recommend next features
* Predict expansion readiness
### Phase 3: Strategic Growth (Month 2+)
**Identify and act on growth opportunities:**
1. **Expansion Scoring Model**:
```
Expansion Readiness Score:
TechCorp: 92/100 🚀
Positive Indicators:
✅ Health score >85 for 6 months
✅ 95% feature adoption
✅ Executive sponsor engaged
✅ Requesting advanced features
✅ Budget increase mentioned
Expansion Opportunities:
1. Additional seats (+$50K ARR)
2. Premium features (+$30K ARR)
3. New department rollout (+$100K ARR)
Next Steps:
1. Schedule growth planning session
2. Prepare ROI analysis
3. Involve sales team
4. Create expansion proposal
```
2. **Whitespace Analysis**:
* Unused licenses/features
* Department penetration
* Use case expansion
* Geographic opportunities
3. **Timing Intelligence**:
```
Optimal Expansion Timing:
- Post-QBR: +34% close rate
- After major win: +28% close rate
- Budget season: +41% close rate
- New champion: +22% close rate
```
4. **AI Expansion Assistant**:
Query: "What expansion opportunities exist for \[Account]?"
Provides:
* Specific product recommendations
* Pricing optimization
* Risk assessment
* Success probability
**Transform QBRs from reporting to strategic value conversations:**
1. **Automated QBR Preparation**:
```
QBR Package Generation (5 min vs 5 hours):
1. Executive Summary
- Health trend visualization
- Key achievements
- Open challenges
- Strategic recommendations
2. Value Realization Report
- ROI achieved
- Time/cost savings
- Efficiency metrics
- Success stories
3. Usage Analytics
- Adoption trends
- Power users
- Feature utilization
- Growth areas
4. Strategic Roadmap
- Next quarter goals
- Feature roadmap alignment
- Success milestones
- Resource needs
```
2. **Insight Generation**:
Query: "Generate QBR insights for \[Account]"
AI Analysis:
```
Key Talking Points:
1. 47% efficiency gain achieved
2. $127K saved this quarter
3. Expansion into Sales team ready
4. Advanced analytics underutilized
5. Training would boost ROI 30%
Risk Areas to Address:
- Support ticket increase
- New stakeholder alignment
- Competitive evaluation mentioned
Growth Opportunities:
- API integration discussion
- Enterprise features upgrade
- Multi-year commitment
```
3. **Meeting Intelligence**:
* Analyze past QBR recordings
* Extract commitments made
* Track follow-through
* Measure impact
4. **Follow-Up Automation**:
* Action items tracked
* Commitments monitored
* Progress updates sent
* Next QBR scheduled
**Ensure smooth, profitable renewals:**
1. **Renewal Prediction Model**:
```
Account: GlobalTech
Renewal Date: 90 days
Prediction: 94% likelihood
Confidence Factors:
✅ Health score stable >80
✅ High product adoption
✅ Executive champion strong
✅ Expansion discussions active
✅ No competitive threats
Recommended Strategy:
- Start discussions at 120 days
- Lead with value achieved
- Propose 15% increase
- Offer multi-year for discount
```
2. **Renewal Risk Alerts**:
```
⚠️ MegaCorp Renewal Risk
Renewal Date: 60 days
Risk Level: High
Prediction: 45% likelihood
Risk Factors:
- Usage down 50%
- Champion left company
- Budget cuts mentioned
- Competitor evaluation
Intervention Plan:
1. Executive escalation today
2. Emergency value audit
3. Flexible contract options
4. Competitive differentiation
```
3. **Negotiation Intelligence**:
* Historical renewal patterns
* Pricing sensitivity analysis
* Concession recommendations
* Win/loss factors
4. **Automated Renewal Workflows**:
* 120 days: Initial outreach
* 90 days: Value presentation
* 60 days: Proposal sent
* 30 days: Final negotiations
* 15 days: Legal review
## Health Monitoring Playbooks
### 🚨 The "Red Account Recovery" Play
**Situation**: High-value account drops to red health status
1. AI diagnosis: "What caused \[Account] health to drop?"
2. Review all [recent interactions](/pages/Calls%20&%20Recordings/call-details-view)
3. Check support tickets and sentiment
4. Identify all stakeholders and their status
1. Schedule executive-to-executive call
2. Prepare value achievement summary
3. Create recovery proposal
4. Align internal resources
1. Daily stand-ups with account team
2. Address technical issues first
3. Re-establish champion relationship
4. Demonstrate commitment with resources
1. Weekly sentiment monitoring via dashboards
2. Bi-weekly check-ins
3. Document lessons learned
4. Strengthen relationships
Red accounts recovered within 30 days have 76% renewal rate vs 23% if delayed
### 📈 The "Expansion Acceleration" Play
**Situation**: Identify and close expansion opportunity
1. AI query: "Which accounts are expansion ready?"
2. Analyze usage patterns and whitespace
3. Review stakeholder engagement
4. Check budget cycles and timing
1. Generate ROI report from current usage
2. Identify similar customer success stories
3. Build expansion business case
4. Align with customer's strategic goals
1. Schedule growth planning session
2. Involve new stakeholders
3. Demonstrate advanced capabilities
4. Co-create success plan
1. Present formal proposal
2. Address concerns proactively
3. Negotiate win-win terms
4. Plan implementation
### 🎯 The "Proactive Success" Play
**Situation**: Maintain green accounts and drive advocacy
1. Document and quantify wins
2. Create customer success story
3. Identify advocacy opportunities
4. Plan strategic initiatives
1. Map entire organization
2. Engage new departments
3. Build executive relationships
4. Create internal champions
1. Involve in product roadmap
2. Beta test new features
3. Co-innovate solutions
4. Speaking opportunities
1. Multi-year commitments
2. Reference account status
3. Case study development
4. Strategic partnership
## Measuring Health Impact
### Key Performance Metrics
### ROI Calculation
```
Annual ROI of BuildBetter Support Handoff:
- Time Savings: 44 min/handoff × 10K handoffs = $367K
- Faster Resolution: 2.9 days saved × $500/day = $14.5M
- Reduced Escalations: 42% reduction = $2.1M saved
- Improved CSAT: +0.9 points = $5.3M retention value
- Team Efficiency: 30% capacity gain = $1.8M
Total Annual Impact: $24M
BuildBetter Investment: $120K
ROI: 19,900% (200x return)
```
## Best Practices
**Automate Context Capture**: Let AI gather and summarize - humans focus on solving
**Set Clear Ownership**: Every handoff needs a named owner with accountability
**Communicate Proactively**: Update customers before they ask for status
**Learn From Every Handoff**: Build knowledge base to prevent future escalations
**Measure Everything**: Track handoff performance to continuously improve
## Common Pitfalls
**Information Overload**: Provide essential context only - too much slows resolution
**Unclear Ownership**: Ambiguous handoffs fail 73% more often
**Silent Transfers**: Customers not informed of handoffs rate experience 2.3x worse
**No Follow-Up**: 41% of handoffs fail due to lack of progress monitoring
## Quick Start Checklist
Launch intelligent support handoffs in one week:
Connect [support](/pages/Integrations/ticketing/zendesk), [CRM](/pages/Integrations/crm/salesforce), and [communication](/pages/Integrations/chat/slack) tools
Map team structure and [configure routing rules](/pages/Workflows/creating-automations)
Build [context capture signals](/pages/Signals/understanding-signals) and templates
Train teams on new handoff process and tools
Launch with pilot group and gather feedback
## Expert Tips
**The 5-Minute Rule**: If context transfer takes more than 5 minutes, your process needs automation. Let AI do the heavy lifting.
**Warm Handoffs Win**: Always introduce the new team member by name and expertise. Customers trust transitions more when they feel intentional.
**Prevention > Cure**: Track why handoffs happen. Most are preventable with better initial routing or self-service resources.
**Close the Loop**: Follow up 24 hours after resolution to ensure satisfaction. This catches issues that resurface and builds trust.
## Resources & Next Steps
Download proven context transfer templates
Design your optimal escalation paths
Set realistic handoff performance targets
Get expert review of your support workflow
***
*Based on analysis of 2M+ support handoffs across BuildBetter customers. Results vary by team size, complexity, and implementation quality.*
# Reduce Support Tickets by 20-30%
Source: https://docs.buildbetter.ai/pages/Use Cases/cs/ticket-analysis
Analyze 6 months of support tickets in 1 hour to reduce ticket volume by 20-30%
You have hundreds (or thousands) of support tickets. Customers keep asking the same questions, reporting the same bugs, hitting the same problems. But you're so busy answering tickets that you never have time to analyze WHY they're coming in.
**This guide shows you how to analyze 6 months of support history in 1 hour and create a plan to reduce ticket volume by 20-30%.**
## The Support Ticket Trap
**Your reality:**
* 🎫 500+ tickets per month (and growing)
* 🔁 Same issues over and over
* ❓ "I swear we've answered this 100 times"
* 📚 No time to create help docs
* 👥 Hiring more support agents (expensive!)
* 😰 Firefighting, never preventing
**The brutal truth**: You're treating symptoms, not root causes. Every repeated ticket is a failure of product, docs, or onboarding.
## What You'll Achieve
In 1-2 hours with BuildBetter:
* ✅ **Import 6 months of tickets** (500-5000+)
* ✅ **Find top 10 repeat issues** automatically
* ✅ **Identify root causes** (not just symptoms)
* ✅ **Create deflection strategy** (docs, product fixes, onboarding)
* ✅ **Reduce ticket volume** 20-30% in 60-90 days
* ✅ **Free up 10-15 hours/week** for proactive CS work
**ROI**: Reducing 100 tickets/month = 50+ hours saved. At $50/hr support cost, that's $2,500/month = \$30K/year saved. BuildBetter pays for itself in Week 1.
## Prerequisites
BuildBetter account ([buildbetter.ai](https://buildbetter.ai))
Support platform with ticket history (Zendesk, Intercom, Front, Help Scout, etc.)
6+ months of ticket data (the more the better)
***
## Step 1: Connect or Export Tickets (15-30 minutes)
Two options: Direct integration or CSV export.
### Option A: Direct Integration (Recommended)
If BuildBetter integrates with your tool:
1. Go to **Settings** → **Integrations**
2. Find your support platform:
* Zendesk
* Intercom
* Front
* Help Scout
* Kustomer
* Freshdesk
\[screenshot: Integrations page showing support platform options]
3. Click **Connect**
4. Authorize BuildBetter to read tickets
Choose what to import:
**Time range**: Last 6-12 months (recommended)
**Status**: Closed/Solved tickets (focus on resolution patterns)
**Tags/Categories**: All (we'll filter later)
\[screenshot: Import configuration showing date range and filters]
Click **Start Import**
BuildBetter imports and processes:
* Ticket descriptions
* Customer messages
* Agent responses
* Metadata (tags, priority, resolution time)
**Time**: 10-30 minutes depending on volume
\[screenshot: Import progress showing "Processing 2,847 tickets..."]
Go grab coffee. It continues in background.
### Option B: CSV Export (If No Integration)
**Zendesk**:
1. Reports → Export tickets
2. Select date range
3. Download CSV
**Intercom**:
1. Conversations → Export
2. Choose filters and date range
3. Download
**Other platforms**: Similar export process
\[screenshot: Zendesk export screen]
1. Click **Upload** → **Import Text Data**
2. Drag and drop CSV
3. Map columns:
* **Content** → Ticket description/conversation
* **Author** → Customer name/email
* **Date** → Created date
* **Metadata** → Tags, priority, category
\[screenshot: CSV column mapping interface]
***
## Step 2: Find Your Top Issues (20 minutes)
Now the analysis begins.
1. Go to **Signals**
2. You'll see signals from all tickets
\[screenshot: Signals page showing ticket-derived problems and questions]
BuildBetter automatically categorized:
* 🐛 **Bugs** (technical issues)
* ❓ **Questions** (how-to, confusion)
* 😤 **Complaints** (frustration)
* 💡 **Feature Requests** (from support context)
**Query**: "What are the top 10 most common support issues from my tickets? Group similar problems together and show me how many customers reported each."
\[screenshot: Chat response with top 10 support issues]
**Example output:**
```
Top 10 Support Issues (Last 6 Months):
1. Password Reset Not Working (287 tickets)
- "Can't reset password"
- "Reset email never arrives"
- "Reset link expired"
2. Export Feature Confusion (176 tickets)
- "Where is export button?"
- "Export fails"
- "Can't export to PDF"
3. Mobile App Crashes (143 tickets)
- "App crashes on iPhone"
- "Can't log in on mobile"
- "App freezes"
4. Onboarding Questions (128 tickets)
- "How do I get started?"
- "Don't understand setup"
- "Need tutorial"
5. Integration Issues (94 tickets)
- "Salesforce sync broken"
- "Slack integration not working"
- "API errors"
[... continues]
```
This is your action plan. Top 5 issues = 70-80% of all tickets.
For each top issue, drill deeper:
**Example: Password Reset (287 tickets)**
**Query**: "Why are customers having password reset problems? What are the root causes?"
\[screenshot: Chat analyzing root causes]
**AI Analysis:**
```
Password Reset Root Causes:
1. Email Delays (43% of cases)
- Reset emails taking 10-30 min to arrive
- Customers re-request, get multiple emails, confused
2. Expired Links (31% of cases)
- Links expire in 15 minutes (too short)
- Customers don't see email in time
3. Spam Folder Issues (19% of cases)
- Reset emails going to spam
- Customers don't find them
4. UI Confusion (7% of cases)
- Reset button hard to find
- Process unclear
Recommendation: Fix email delivery speed (#1) and extend link expiry to 24 hours (#2) = would eliminate 74% of these tickets.
```
Now you know what to fix, not just what people complain about.
Filter tickets by customer segment:
**New users (\< 30 days)**:
* Query: "What do new users need help with most?"
* Usually: Onboarding, getting started, basic features
**Power users**:
* Query: "What do active/power users struggle with?"
* Usually: Advanced features, integrations, limits
**Enterprise vs SMB**:
* Different needs, different solutions
\[screenshot: Signals filtered by customer tenure/segment]
Create different deflection strategies per segment.
***
## Step 3: Create Deflection Strategy (30 minutes)
Turn insights into action plan.
**Query Chat**: "Create a priority matrix for reducing support tickets. For each top issue, tell me: 1) Ticket volume, 2) Deflection potential (how many could we prevent?), 3) Effort to fix (low/medium/high), 4) Recommended approach."
\[screenshot: Chat generating deflection matrix]
**Example output:**
```
Support Deflection Priority Matrix:
🔴 HIGH IMPACT, LOW EFFORT (Do First)
1. Password Reset Issues
- Volume: 287 tickets/6mo (48/month)
- Deflection: 75% (36 tickets/month)
- Effort: Low (email config + extend expiry)
- Approach: Engineering fix (1 sprint)
- ROI: 18 hours/month saved
2. Export Feature Confusion
- Volume: 176 tickets/6mo (29/month)
- Deflection: 60% (17 tickets/month)
- Effort: Low (add help docs + tooltips)
- Approach: Docs + UI improvements
- ROI: 8.5 hours/month saved
🟡 HIGH IMPACT, MEDIUM EFFORT (Do Second)
3. Mobile App Crashes
- Volume: 143 tickets/6mo (24/month)
- Deflection: 80% (19 tickets/month)
- Effort: Medium (bug fixes)
- Approach: Engineering (2 sprints)
- ROI: 9.5 hours/month saved
🟢 HIGH IMPACT, HIGH EFFORT (Roadmap It)
4. Onboarding Questions
- Volume: 128 tickets/6mo (21/month)
- Deflection: 50% (10 tickets/month)
- Effort: High (rebuild onboarding)
- Approach: Product redesign (quarter project)
- ROI: 5 hours/month saved + better activation
```
For issues that need docs:
**Query**: "For the top issues that could be solved with better documentation, generate outlines for help articles."
\[screenshot: Chat generating help article outlines]
**Example:**
```
Help Article: "How to Export Your Data"
Why this article:
- 176 tickets asking about export
- 60% could be prevented with clear docs
Article outline:
1. Where to find export button (with screenshot)
2. Export formats available (CSV, PDF, Excel)
3. How to customize export fields
4. Troubleshooting export failures
5. Export limits and workarounds
Customer quotes to address:
- "Can't find export button"
- "Export fails without error message"
- "Need to export to Excel, only see CSV"
```
Use this to create targeted help docs that prevent tickets.
Identify issues that need product fixes:
1. Filter **Signals** by Type: "Bug"
2. Export most-mentioned bugs
3. Ask Chat: "Generate bug reports for the top 5 technical issues"
\[screenshot: Generated bug report with customer impact]
Share with product/engineering with data:
* Bug frequency
* Customer impact
* Support burden
* Customer quotes
**Example:**
```
Bug Report: Mobile App Crashes on Login
Impact:
- 143 support tickets (6 months)
- Affects 12% of mobile users
- Causes 24 tickets/month
- Support time: 12 hours/month
Customer frustration level: High (-7.3 sentiment)
Common scenarios:
- iOS 16+ (87% of cases)
- Happens after password update
- Clears after reinstall (but users don't know)
Fix impact: Would prevent 19 tickets/month
```
Engineering priorities are resource-constrained. Show them the ROI.
Create plan for reducing common questions:
**Tier 1: In-App Guidance** (highest deflection)
* Tooltips for confusing features
* Contextual help links
* Onboarding tours
**Tier 2: Help Center** (good deflection)
* FAQ articles for top 10 issues
* Video tutorials for complex workflows
* Troubleshooting guides
**Tier 3: Community** (medium deflection)
* User forums for peer help
* Template library
* Common solutions database
\[screenshot: Multi-tier deflection strategy]
***
## Step 4: Track & Measure Impact (Ongoing)
Implement your deflection strategy and measure results.
Before making changes, document:
* Current tickets/month per category
* Average resolution time
* Support team hours/month
* Customer satisfaction score
\[screenshot: Baseline metrics dashboard]
**Week 1-2**: Quick wins
* Fix password reset email issues
* Add help docs for top 3 issues
* Add tooltips to confusing UI
**Week 3-6**: Medium effort
* Fix mobile app bugs
* Create video tutorials
* Improve onboarding
**Month 2-3**: Track impact
* Import new tickets monthly
* Ask Chat: "Are password reset tickets decreasing?"
* Measure deflection rate
\[screenshot: Trend chart showing ticket volume declining]
Make this a monthly habit:
**First Monday of each month** (30 mins):
1. Import last month's tickets
2. Ask Chat: "What are this month's top issues? How does it compare to last month?"
3. Check if fixes are working
4. Identify new emerging issues
\[screenshot: Monthly comparison showing ticket trends]
**Look for**:
* ↘️ Decreasing ticket volume (your fixes worked!)
* 🆕 New spike in issues (new bug or feature confusion)
* 📊 Category shifts (what's becoming more/less common)
***
## Real Example: Marcus's Support Transformation
**Background**: Marcus is Head of Support at a 50-person SaaS company. 4-person support team. 650 tickets/month and growing. Needed to hire 2 more agents (\$120K/year).
**Before BuildBetter:**
* No idea what causes most tickets
* Assumed it was "product is complicated"
* Firefighting daily
* Team morale low
**Week 1 with BuildBetter:**
**Monday**: Imported 9 months of Zendesk tickets (5,847 total)
**Tuesday**: Analysis revealed shocking truth:
* Top issue: "Can't find feature X" (892 tickets)
* Not a product problem—a UI problem
* Feature existed, just hidden in nested menu
* 15% of ALL tickets were for this one thing
**Wednesday**: Quick UI fix
* Moved feature to main navigation
* Added search to find it
* Shipped same day
**Week 2**: Created help docs for top 5 issues
**Week 3**: Fixed mobile login bug (217 tickets over 9 months)
**Week 4**: Launched in-app tooltips for confusing features
**Results after 60 days:**
* Tickets: 650/month → 480/month (-26%)
* Support hours: 160/month → 115/month
* Customer satisfaction: 4.1 → 4.7
* Didn't need to hire 2 agents (saved \$120K/year)
* Marcus's team shifted from reactive to proactive CS
**Top deflected issues:**
1. "Can't find feature" tickets: 892 → 47 (-95%) ✅
2. Mobile login: 217 → 23 (-89%) ✅
3. Export confusion: 176 → 68 (-61%) ✅
4. Password reset: 287 → 112 (-61%) ✅
**Marcus's quote**: "We were drowning in tickets because we never analyzed WHY they were coming in. BuildBetter showed us that 60% of our support burden was self-inflicted and fixable. Complete game-changer."
***
## Common Questions
**CSV export works great:**
* Export tickets from your tool
* Upload to BuildBetter
* Same analysis capabilities
* Just not real-time (monthly imports instead)
Still way better than manually reading tickets.
**Resolved/Closed only** for root cause analysis.
Why: Open tickets may not be fully understood yet. Resolved tickets show the complete problem and solution.
Exception: If analyzing response time, import all.
**Still valuable, but different approach:**
* Import 6-12 months to get meaningful sample size
* Focus on preventing the top 3-5 issues (not top 10)
* May not see dramatic deflection (hard to reduce 20 tickets to 0)
* But: Preventing even 5-10 tickets/month = 2.5-5 hours saved
Low ticket volume = you're doing something right already!
**BuildBetter auto-translates:**
* Detects language per ticket
* Translates for analysis
* Groups same issues across languages
* Generates insights in English (or your language)
Just import. It works across languages automatically.
**No problem:**
* BuildBetter focuses on customer messages (the problem)
* Agent responses provide context
* Both are analyzed for root causes
* Long responses don't slow processing
Upload everything. The AI sorts it out.
***
## Your Deflection Transformation Checklist
### Hour 1: Import & Analysis
Connect support platform OR export CSVImport 6+ months of ticketsReview auto-extracted signalsAsk Chat for top 10 issuesIdentify root causes (not just symptoms)
### Hour 2: Strategy & Planning
Create deflection priority matrixPlan help documentationFlag product bugs for engineeringBuild multi-tier deflection plan
### Week 1-2: Quick Wins
Ship top 3 easy fixesCreate help docs for top issuesAdd in-app guidance/tooltips
### Week 3-4: Measure
Import new ticketsTrack deflection rateAdjust strategy based on results
***
## What's Next?
### After Your First Analysis
Combine ticket analysis with customer health tracking
Predict customer issues before they open tickets
Auto-generate help articles from ticket patterns
Send ticket insights to product team systematically
### Make It a Habit
**Monthly** (30 mins):
* Import last month's tickets
* Compare to previous month
* Check if deflection strategies working
* Identify new emerging issues
**Quarterly** (2 hours):
* Deep analysis of 3-month trends
* Report to leadership on deflection impact
* Update help documentation
* Celebrate wins with support team
Great support teams don't just solve tickets faster—they prevent tickets from happening. That's the difference between scaling support costs linearly vs keeping them flat as you grow.
***
## Resources
Connect Zendesk, Intercom, and more
Format and import ticket exports
Watch this workflow (6 min)
Get help with ticket deflection strategy (free)
***
**Every repeated support ticket is an opportunity to improve your product, docs, or onboarding. Now you know exactly where those opportunities are.**
The best CS teams measure success by tickets prevented, not tickets closed. Now you can prove your preventive impact with data.
Based on analysis of 500+ support teams using BuildBetter. Average deflection rate: 20-30% in first 90 days. Top performers: 40-50% deflection on most common issues.
# Keep Documentation Current with Product Changes
Source: https://docs.buildbetter.ai/pages/Use Cases/cs/updating-documentation
Identify outdated docs and update them based on new customer questions and product changes
You shipped a new feature. You updated the UI. You changed how something works. But did you update the docs?
**Your help center is now lying to customers.** They follow the steps, it doesn't work, they open a ticket frustrated.
**This guide shows you how to identify which docs are outdated and update them systematically.**
## The Outdated Docs Problem
**What happens after product changes:**
* 🚢 Team ships feature updates
* 📚 Docs team (if you have one) doesn't know
* ❓ Customers follow old docs, get confused
* 😤 Support tickets: "This doesn't work!" (it does, docs are wrong)
* 🔥 More tickets from outdated docs than from no docs
**The truth**: Outdated documentation is worse than no documentation. It wastes customer time AND support time.
## What You'll Achieve
With BuildBetter:
* ✅ **Identify outdated docs** from customer questions
* ✅ **Prioritize updates** by customer impact
* ✅ **Find UI changes** customers are confused by
* ✅ **Keep docs in sync** with product changes
* ✅ **Prevent documentation debt**
**Time investment**: 30 mins/week to review + 1-2 hours/month for updates. **Impact**: Prevent 10-20 "docs are wrong" tickets/month.
## Prerequisites
BuildBetter account with support tickets or customer calls
Existing help documentation
Product change log or release notes
***
## Step 1: Find Documentation Gaps
\[screenshot: Support tickets mentioning "doesn't work" or "can't find"]
Focus on tickets AFTER your last product release:
1. Import last 30 days of tickets
2. Filter for common phrases:
* "Doesn't work"
* "Can't find"
* "Instructions wrong"
* "Not where it says"
\[screenshot: Filtered signals showing documentation complaints]
**Query**: "Which help articles or documentation are customers saying is incorrect or outdated? What are they confused about?"
\[screenshot: Chat identifying outdated doc patterns]
**Example output**:
```
Outdated Documentation Identified (Last 30 Days):
1. "How to Export Data" Article (14 tickets)
Customer complaints:
- "Export button not in top right anymore"
- "Don't see CSV option mentioned in article"
- "Steps don't match what I see"
Root cause: UI changed in v2.3, docs not updated
2. "Adding Team Members" Article (9 tickets)
Customer complaints:
- "Settings menu looks different"
- "Can't find 'Invite' button where article says"
Root cause: Settings redesigned last month
3. "API Authentication" Article (7 tickets)
Customer complaints:
- "API key generation different now"
- "Screenshot shows old UI"
Root cause: API dashboard updated
```
***
## Step 2: Cross-Reference Product Changes
\[screenshot: Product changelog with dates]
Check your changelog/release notes:
* Which features changed?
* What UI updates shipped?
* Which workflows are different?
**Map to help docs**:
* Feature changed → Which articles mention it?
* UI updated → Which screenshots are outdated?
* Workflow different → Which step-by-step guides need updates?
**Query**: "Based on customer tickets, which product changes are causing the most confusion? Prioritize by ticket volume."
Focus on updating docs for changes that:
* Generated most tickets
* Affect most common workflows
* Impact new users (onboarding docs)
***
## Step 3: Update Documentation Systematically
\[screenshot: Side-by-side comparison - old doc vs updated doc]
**Query**: "Generate a prioritized list of documentation updates needed, with: article name, what changed, urgency (high/medium/low), and estimated effort."
**Example output**:
```
Documentation Update Queue:
🔴 HIGH PRIORITY
1. "How to Export Data"
- What changed: Button moved from top right to Reports menu
- Urgency: HIGH (14 tickets in 30 days)
- Effort: Low (update 2 screenshots, change 1 sentence)
- Impact: Prevents ~5 tickets/week
2. "Adding Team Members"
- What changed: Settings menu redesigned
- Urgency: HIGH (9 tickets)
- Effort: Medium (update 3 screenshots, rewrite steps)
- Impact: Prevents ~3 tickets/week
🟡 MEDIUM PRIORITY
3. "API Authentication"
- What changed: New API dashboard
- Urgency: MEDIUM (7 tickets, but power users)
- Effort: High (complete rewrite needed)
- Impact: Prevents ~2 tickets/week
```
For each article:
**Before you start**:
1. Open the app/feature yourself
2. Go through the current steps
3. Take new screenshots
4. Note what's different
**Update process**:
1. Update screenshots (highlight new UI elements)
2. Revise step-by-step instructions
3. Test: Can someone follow these new steps?
4. Add "Last updated: \[Date]" to article
5. Publish
**Pro tip**: Use Chat to help rewrite
* **Query**: "Rewrite this help article based on the new UI. Old steps: \[paste old]. New UI: \[describe changes]."
In help center:
* Tag recently updated articles: "✅ Updated for v2.3"
* Show last updated date prominently
* Add changelog at bottom: "What changed in this article"
\[screenshot: Help article with "Updated Mar 2024" badge]
Helps customers know docs are current.
***
## Step 4: Prevent Future Documentation Debt
\[screenshot: Documentation workflow integrated into release process]
**Before each release**:
1. Product team shares changelog
2. Review which help docs are affected
3. Update docs BEFORE feature ships
4. Mark as "Updated for vX.X"
**After each release**:
1. Week 1: Monitor support tickets for confusion
2. Week 2: Update docs based on real customer questions
3. Week 4: Ask Chat: "Any new documentation gaps this month?"
**First Monday of each month** (30 mins):
**Query Chat**:
* "Which help articles got the most 'this didn't work' tickets last month?"
* "Are there new customer questions we don't have docs for?"
* "Which articles might be outdated based on product changes?"
\[screenshot: Monthly documentation health report]
Update 2-3 articles per month minimum.
**Metrics to monitor**:
* Tickets mentioning "docs wrong" or "doesn't match"
* Help article deflection rate (views vs tickets)
* "Not helpful" feedback on articles
* Articles with >6 months since update
\[screenshot: Documentation health dashboard]
**Good signal**: Deflection rate stable or improving
**Bad signal**: Deflection rate declining (docs getting outdated)
***
## Real Example: Jamie's Documentation Maintenance
**Background**: Jamie is Head of Support. Good help docs. But product ships weekly. Docs always outdated.
**The Problem**:
* Product team ships, doesn't tell support
* Support finds out when customers complain
* Docs perpetually 2-3 weeks behind
* "Docs are wrong" became most common ticket
**The Solution (with BuildBetter)**:
**Week 1**: Set up monitoring
* Import all support tickets
* Filter for documentation complaints
* Found 23 tickets in last month about wrong docs
**Week 2**: Audit existing docs
* Cross-referenced with recent product changes
* Found 8 articles outdated
* Prioritized by ticket volume
* Updated top 5 (3 hours total)
**Week 3**: Created weekly workflow
* **Monday**: Product team shares changelog
* **Tuesday**: Jamie reviews which docs affected
* **Wednesday**: Updates docs before feature ships
* **Friday**: Check for any surprise confusion
**Month 1**: Automated monitoring
* Monthly Chat query: "Documentation gaps?"
* Review outdated article list
* Update 2-3 per month
**Results after 90 days**:
* "Docs are wrong" tickets: 23/month → 4/month (-83%)
* Documentation deflection rate: 45% → 68%
* Customer satisfaction with docs: 3.2/5 → 4.4/5
* Time spent updating: 1 hour/week (sustainable)
**Jamie's quote**: "We went from reactive (fix docs after customers complain) to proactive (update docs before feature ships). BuildBetter tells us which docs need attention before they become a support burden."
***
## Best Practices
**Update BEFORE shipping**: Include doc updates in your definition of "done" for features
**Date your articles**: Show "Last updated: March 2024" so customers know freshness
**Small updates weekly > Big updates quarterly**: Easier to maintain currency
**Screenshot liberally**: Outdated screenshots = most common complaint
**Test your own docs**: Follow the steps yourself before publishing updates
**Archive old versions**: Don't delete, mark as archived for older product versions
***
## Common Questions
**Prioritize by**:
1. Customer complaints (ticket volume)
2. Common workflows (affects most users)
3. New user docs (onboarding critical)
4. Recent product changes (most likely outdated)
Use BuildBetter to surface #1 automatically.
**Depends on impact**:
✅ Update if:
* Buttons moved or renamed
* Steps don't work anymore
* Screenshots clearly wrong
* Causing tickets
⏸️ Don't update if:
* Minor color/style changes
* Functionally identical
* Not causing confusion
Let customer tickets guide you.
**Triage approach**:
* **Breaking changes**: Update docs same day
* **New features**: Update within 3 days
* **Minor tweaks**: Batch update weekly
* **Bug fixes**: Usually don't need doc updates
Monitor tickets to see if something needs immediate attention.
**Build it into process**:
1. Add "Documentation updated?" to PR checklist
2. Automatic Slack post: "Feature X shipped. Docs need review?"
3. Use BuildBetter as safety net (finds gaps from tickets)
**Or**: Weekly sync with product team on upcoming changes
***
## Documentation Maintenance Checklist
### Weekly (30 mins)
Review product changelog for doc-affecting changesUpdate docs for shipped features (before release if possible)Check for "docs wrong" tickets this week
### Monthly (1-2 hours)
Ask Chat: "Documentation gaps from last month?"Update 2-3 most outdated articlesReview help article metrics (views, deflection)Update screenshots for UI changes
### Quarterly (Half day)
Full documentation auditArchive docs for sunset featuresReorganize/restructure if neededReview documentation health metrics
***
## Next Steps
Create help docs from customer questions
Full ticket deflection strategy
Auto-generate docs from patterns
Organize all your documentation
***
**Good documentation isn't written once—it's maintained continuously.**
The best support teams treat documentation like code: version it, review it, update it with every release. Outdated docs create more problems than they solve.
Based on analysis of 200+ support teams. Teams that update docs within 1 week of product changes see 40% fewer "docs are wrong" tickets than teams that batch update monthly.
# Write Help Docs from Customer Questions
Source: https://docs.buildbetter.ai/pages/Use Cases/cs/writing-documentation
Turn common customer questions and support tickets into helpful documentation
You're answering the same questions over and over. "How do I export data?" "Where's the setting for X?" "Why isn't Y working?" Every answer is buried in a support ticket, never to be found again.
**This guide shows you how to turn your most common customer questions into help documentation that deflects future tickets.**
## The Documentation Problem
**Your reality:**
* 📧 Same questions every week
* 🔁 Writing same answers repeatedly
* 📚 No time to create help docs
* ❓ Customers can't find answers (if docs exist)
* 😰 Ticket volume growing
**The insight**: Your support tickets already contain the perfect help articles. You just need to extract them.
## What You'll Achieve
With BuildBetter:
* ✅ **Identify most common questions** from support history
* ✅ **Find best answers** you've already written
* ✅ **Generate help article drafts** automatically
* ✅ **Prioritize documentation** by ticket volume
* ✅ **Reduce ticket volume** 15-25% with targeted docs
**Time investment**: 2-3 hours to create your first 5 help articles. **Impact**: Each article prevents 5-20 tickets/month.
## Prerequisites
BuildBetter account
Support ticket history or call recordings with customer questions
Place to publish docs (help center, Notion, Confluence, etc.)
***
## Step 1: Find Your Most Asked Questions
\[screenshot: Signals filtered for questions]
If you haven't already:
* Connect your support platform (Zendesk, Intercom, etc.)
* OR upload support tickets as CSV
* See [Reduce Support Tickets guide](/pages/Use%20Cases/cs/ticket-analysis) for details
1. Go to **Signals**
2. Filter by **Type**: Question
3. Sort by frequency or count
\[screenshot: Questions sorted by how many times asked]
**You'll see**:
* "How do I export to Excel?" (47 tickets)
* "Where is the API key?" (32 tickets)
* "Can I change my email address?" (28 tickets)
**Query**: "What are the top 10 most frequently asked customer questions? Group similar questions together."
\[screenshot: Chat showing top questions with counts]
**Example output**:
```
Top 10 Customer Questions (Last 6 Months):
1. Export Functionality (67 tickets)
- "How do I export to Excel?"
- "Can I export to CSV?"
- "Where is the export button?"
2. Account Settings (52 tickets)
- "How do I change my email?"
- "Can I update my password?"
- "Where are account settings?"
3. API Access (41 tickets)
- "Where is my API key?"
- "How do I generate an API token?"
- "API documentation link?"
[... continues]
```
***
## Step 2: Extract Your Best Answers
\[screenshot: Support ticket with good answer highlighted as signal]
For each common question:
1. Click on the question signal
2. View all instances across tickets
3. Look for answers that:
* Resolved the issue quickly
* Customer said "thank you" or "that worked"
* Are clear and complete
\[screenshot: Ticket thread showing question and successful answer]
**Query Chat**: "Create a help article for \[question topic]. Include: the question, step-by-step answer, screenshots needed, and common variations of this question."
\[screenshot: Chat generating help article]
**Example output**:
```
Help Article: How to Export Your Data
Common Questions (67 tickets):
- "How do I export to Excel?"
- "Can I export to CSV?"
- "Where is the export button?"
Answer:
You can export your data in multiple formats:
Step 1: Navigate to Reports
- Click "Reports" in the left sidebar
- [Screenshot needed: Reports page]
Step 2: Select Export Format
- Click the "Export" button (top right)
- Choose format: CSV, Excel, or PDF
- [Screenshot needed: Export dropdown]
Step 3: Customize Export (Optional)
- Select date range
- Choose columns to include
- Click "Download"
Troubleshooting:
- Export button grayed out? You need View permissions
- Export taking long? Files over 10,000 rows take 2-5 mins
- Missing data? Check your date range filter
Related Articles:
- How to schedule automatic exports
- Export file size limits
```
For each "screenshot needed":
* Take actual screenshot from your app
* Highlight the button/area with arrows
* Add to your help center
***
## Step 3: Prioritize Your Documentation
\[screenshot: Documentation priority matrix]
**Query**: "For each common question, tell me: ticket volume, deflection potential (% of tickets we could prevent), and effort to document (low/medium/high)."
**Example output**:
```
Documentation Priority Matrix:
🔴 HIGH PRIORITY (Do First)
1. Export Functionality
- Volume: 67 tickets/6mo (11/month)
- Deflection: 70% (8 tickets/month prevented)
- Effort: Low (clear answer exists)
- ROI: 4 hours/month saved
2. Account Settings
- Volume: 52 tickets/6mo (9/month)
- Deflection: 80% (7 tickets/month prevented)
- Effort: Low
- ROI: 3.5 hours/month saved
🟡 MEDIUM PRIORITY
3. API Access
- Volume: 41 tickets/6mo (7/month)
- Deflection: 60% (4 tickets/month)
- Effort: Medium (needs dev input)
- ROI: 2 hours/month saved
```
Focus on:
* High volume questions
* Questions with clear, existing answers
* Low effort to document
These give you biggest impact fastest.
***
## Step 4: Publish & Measure
\[screenshot: Help center with new articles published]
1. Copy article content to your help center
2. Add screenshots
3. Tag with keywords for search
4. Link from related articles
Even better: Link to docs from your app
* Add tooltip near export button → "How to export"
* Show help article in error messages
* Contextual help where confusion happens
After 30 days:
**Query**: "Are we getting fewer tickets about export functionality since we published the help article?"
\[screenshot: Ticket trend showing decline after doc published]
**Measure**:
* Ticket volume for that topic (should decrease)
* Help article views (should increase)
* Customer self-service rate
***
## Real Example: Taylor's Documentation Win
**Background**: Taylor is solo support at 40-person startup. 300 tickets/month. No help docs.
**Week 1**: Import 6 months of tickets to BuildBetter
**Analysis**:
* Top question: "How do I add team members?" (38 tickets)
* Second: "How to integrate with Slack?" (29 tickets)
* Third: "Export doesn't work" (24 tickets)
**Week 2**: Created 3 help articles
* Used Chat to generate drafts
* Added screenshots
* Published to Notion (their help center)
* Added links in app UI
**Week 3**: Added 2 more articles
* "How to change plan/billing"
* "Reset password troubleshooting"
**Results after 60 days**:
* Tickets: 300/month → 235/month (-22%)
* Top 3 questions: 91 tickets → 21 tickets (-77% on those topics)
* Time saved: \~15 hours/month
* Customer satisfaction: Up (faster self-service)
**Most impactful**: "Add team members" article
* Was 38 tickets in 6 months
* Now: 2-3 tickets/month (95% deflection)
* Article views: 450/month (helping customers proactively)
**Taylor's quote**: "I was writing the same answers over and over. BuildBetter showed me which questions to document first. 5 articles eliminated 70% of my repetitive tickets."
***
## Best Practices
**Start with top 5**: Don't try to document everything. Focus on highest volume questions.
**Use actual customer language**: Title articles how customers ask, not how you'd describe it.
**Include variations**: "How do I...?" + "Can I...?" + "Where is...?" all in same article for SEO
**Add screenshots**: Visual guides work 3x better than text-only
**Link from app**: Contextual help beats searchable help docs
**Update regularly**: When you fix a bug or change UI, update docs immediately
***
## Common Questions
Common reasons:
* **Can't find docs**: Improve SEO, add in-app links
* **Docs unclear**: Rewrite with more screenshots/steps
* **Don't want to read**: Add video walkthrough
* **Problem is different**: Update article with edge cases
Track which articles have low deflection and improve them.
**Start with common** (80% of tickets).
Add edge cases later if:
* Still getting tickets about it
* High-value customers affected
* Easy to document
Don't document every possible scenario upfront.
**When product changes**:
1. Update docs BEFORE releasing feature
2. Review related support tickets after release
3. Update docs based on new questions
**Quarterly**: Review top articles for accuracy
**Flag it for product/engineering**:
* "Export fails" → Not a docs problem, it's a bug
* "Can't find export button" → Docs can help
BuildBetter helps you identify which is which. Product issues = engineering. Confusion = docs.
***
## Next Steps
Full support ticket deflection strategy
Keep documentation current as product evolves
Proactive customer success workflows
Auto-generate docs from patterns
***
**Stop answering the same questions. Write it once, help hundreds.**
Every repeated support question is an opportunity to create a help article. Document your top 10 questions and watch ticket volume drop 20-30%.
Based on analysis of 300+ support teams. Average deflection rate per well-written help article: 60-80% for that specific question type.
# Build Company-Wide Intelligence System
Source: https://docs.buildbetter.ai/pages/Use Cases/founder/company-intelligence
Build a central nervous system for your company—aggregate insights from every conversation and make them accessible to everyone
**Coming Soon**: This comprehensive guide will cover how to build a company-wide intelligence system using BuildBetter as your team scales from 10 to 100+ people.
## What This Will Cover
* **Centralized Knowledge**: All customer and internal conversations in one searchable place
* **Cross-Functional Insights**: Product, sales, CS, and support all seeing the same customer data
* **Real-Time Intelligence**: Dashboards that update as conversations happen
* **Knowledge Distribution**: Getting insights to the right people automatically
* **Scaling Intelligence**: Maintaining insight quality as you 10x headcount
## Preview Topics
### For Growing Teams (10-50 people)
* Setting up collections by department
* Cross-functional signal sharing
* Weekly insight distribution
* Department-specific dashboards
### For Scaling Teams (50-200 people)
* Role-based access and privacy
* Automated insight routing
* Executive intelligence summaries
* Knowledge base automation
### For Enterprise (200+ people)
* Multi-workspace organization
* Compliance and data governance
* Integration ecosystem
* Custom intelligence workflows
***
**Status**: Planned for development
**Related Guides**:
* [Founder: First 100 Conversations](/pages/Use%20Cases/quick-start/founder-first-conversations) - Start here
* [Founder: Quarterly Planning](/pages/Use%20Cases/founder/quarterly-planning) - Next step
* [Leadership: Strategic Planning](/pages/Use%20Cases/leadership/strategic-planning) - Advanced planning
# Create Data-Backed Investor Updates
Source: https://docs.buildbetter.ai/pages/Use Cases/founder/investor-updates
Generate compelling investor updates backed by real customer conversations and quantified insights
**Coming Soon**: This guide will show you how to use BuildBetter to create investor updates that go beyond vanity metrics with real customer validation and market insights.
## What This Will Cover
* **Quantified Customer Insights**: "23 out of 50 customers mentioned X problem" vs vague claims
* **PMF Evidence**: Track and prove product-market fit with conversation data
* **Market Intelligence**: Share what you're hearing from prospects and customers
* **Traction Metrics**: Show adoption through customer quotes and usage patterns
* **Risk Identification**: Proactively share what's not working (builds trust)
## Preview Topics
### Monthly Investor Updates
* Customer conversation highlights
* Top problems being solved
* Feature validation evidence
* Competitive intelligence
* Team learnings
### Quarterly Board Decks
* Strategic theme analysis
* Customer segmentation insights
* Churn/retention drivers
* Expansion opportunities
* Roadmap justification
### Fundraising Materials
* Customer quote library
* PMF evidence documentation
* Market size validation
* Competitive positioning
* Customer success metrics
***
**Status**: Planned for development
**Related Guides**:
* [Founder: First 100 Conversations](/pages/Use%20Cases/quick-start/founder-first-conversations) - Foundation
* [Founder: Quarterly Planning](/pages/Use%20Cases/founder/quarterly-planning) - Planning framework
* [Marketing: Customer Stories](/pages/Use%20Cases/marketing/customer-stories) - Extract quotes
# Plan Quarterly OKRs with Customer Data
Source: https://docs.buildbetter.ai/pages/Use Cases/founder/quarterly-planning
Turn customer and team insights into OKRs and roadmap priorities
End of quarter. Time to plan Q2. You have data scattered everywhere—customer calls, team meetings, support tickets, sales pipeline. How do you turn all that into clear OKRs and priorities?
**This guide shows you how to use BuildBetter to aggregate insights and plan your quarter based on data, not opinions.**
## The Planning Problem
**Traditional planning:**
* 📊 Spreadsheets of metrics (lagging indicators)
* 🗣️ Team opinions (loudest voice wins)
* 📝 Gut feel about priorities
* 🎲 Hoping you're building the right things
**The gap**: You have conversations with customers every week. Those contain leading indicators. But they're never part of planning.
## What You'll Achieve
Using BuildBetter for quarterly planning:
* ✅ **Aggregate all insights** (customer + internal + support)
* ✅ **Find strategic themes** across all data
* ✅ **Prioritize OKRs** based on actual customer needs
* ✅ **Align team** with data everyone can see
* ✅ **Track progress** quarter-over-quarter
**Time saved**: Planning used to take 1-2 weeks of meetings. With BuildBetter: 1 day of analysis + 1 planning session.
***
## Step 1: Aggregate Your Data
\[screenshot: Collections showing Q1 data organized]
Gather all Q1 conversations:
* All customer calls
* Internal team meetings
* All-hands recordings
* Strategy sessions
* Support ticket data
**Query Chat**:
* "What are the top customer problems from Q1?"
* "What did we commit to but didn't ship?"
* "What internal blockers came up repeatedly?"
* "What market opportunities did customers mention?"
***
## Step 2: Find Strategic Themes
\[screenshot: Chat identifying strategic themes from Q1]
**Query**: "Based on all Q1 data, what are the top 3-5 strategic themes that should guide Q2?"
**Example output:**
```
Q2 Strategic Themes from Q1 Data:
1. Enterprise Readiness (78 mentions)
- SSO/SAML requests
- Compliance requirements
- Advanced permissions
2. Mobile Experience (54 mentions)
- App crashes
- Missing mobile features
- On-the-go access needs
3. Integration Ecosystem (47 mentions)
- Salesforce requests
- API limitations
- Zapier needs
```
**Query**: "Based on these themes, suggest OKRs for Q2 with measurable key results."
Creates data-backed OKRs instead of guesses.
***
## Step 3: Build Q2 Roadmap
\[screenshot: Generated Q2 planning document]
**Query**: "For each potential roadmap item, tell me: customer mentions, revenue impact, and urgency."
Creates prioritization matrix based on real data.
Click **Generate** → **Generate Document** → "Quarterly Planning"
Creates formatted doc with:
* Q1 retrospective
* Customer insights
* Strategic themes
* Proposed OKRs
* Roadmap recommendations
***
## Step 4: Team Alignment
Share planning doc with team. Everyone sees the same customer data. Less debate, faster alignment.
\[screenshot: Team planning meeting with BuildBetter dashboard]
***
## Next Steps
Build ongoing intelligence system (stub)
Advanced strategic planning for leadership
***
**To be expanded**: Full content coming soon with detailed quarterly planning frameworks, OKR templates, and team alignment workflows.
# Market Intelligence Command Center
Source: https://docs.buildbetter.ai/pages/Use Cases/leadership/market-insights
Transform every customer interaction into strategic market intelligence with AI that detects trends, predicts shifts, and delivers insights that put you 6 months ahead of competition
Leadership teams are flying blind, making billion-dollar decisions based on quarterly surveys and analyst reports that are outdated before they're published. Meanwhile, your sales and customer success teams hear market-shifting intelligence every day—but 94% of these insights never reach decision-makers. BuildBetter transforms your customer-facing teams into a real-time market intelligence network, surfacing strategic insights that help you see around corners and move first.
## The Market Intelligence Challenge
Traditional market research is too slow for modern business:
* 📊 **87% of market insights** come from customer conversations but go uncaptured
* ⏰ **6-9 month lag** between market shifts and executive awareness
* 💸 **\$4.7M average cost** of being late to market trends
* 🎯 **Only 23% of strategies** are based on real customer intelligence
* 🔮 **91% of disruptions** were visible in customer feedback first
BuildBetter creates an always-on market intelligence system powered by your customer interactions.
## Core Market Intelligence Capabilities
AI identifies emerging trends from thousands of conversations
Real-time tracking of competitor mentions and positioning
Surface unmet needs and white space opportunities
Anticipate market shifts 3-6 months before they happen
## Implementation Guide
### Phase 1: Foundation (Week 1)
**Goal**: Create comprehensive system for capturing market signals
1. **Connect Intelligence Sources**:
* [Sales Calls](/pages/Calls%20&%20Recordings/recording-methods): Prospect conversations
* [Customer Success](/pages/Integrations/crm/salesforce): Renewal discussions
* [Support Interactions](/pages/Integrations/ticketing/zendesk): Product feedback
* [Win/Loss Interviews](/pages/Text%20Data/importing-feedback): Decision factors
2. **Historical Intelligence Mining**:
```
Priority Data Sources:
- 12 months of sales calls
- 6 months of loss analysis
- All competitive mentions
- Feature request patterns
- Pricing discussions
- Market pain points
```
3. **Market Taxonomy Setup**:
```
Intelligence Categories:
🎯 Market Trends
- Technology shifts
- Business model changes
- Regulatory impacts
- Economic indicators
⚔️ Competitive Dynamics
- Direct competitors
- Alternative solutions
- New entrants
- Partnership ecosystems
💡 Customer Evolution
- Changing needs
- New use cases
- Budget shifts
- Decision criteria
🚀 Innovation Signals
- Emerging technologies
- Process innovations
- Integration needs
- Future requirements
```
Start with your most strategic accounts—they often signal market changes first.
**Goal**: Build AI system that surfaces strategic insights automatically
1. **Signal Detection Framework** in [Custom Context](/pages/Settings/custom-context):
```
Market Intelligence Signals:
Trend Indicators:
- "Everyone is asking about..."
- "Industry is moving to..."
- "Regulations requiring..."
- "Budgets shifting to..."
- "New priority this year..."
Competitive Intelligence:
- "[Competitor] just launched..."
- "Switching from [competitor]..."
- "Evaluating alternatives..."
- "RFP includes..."
- "Pricing pressure from..."
Opportunity Markers:
- "No one solves..."
- "Wish we could..."
- "Would pay for..."
- "Building internally..."
- "Desperate for solution..."
Risk Indicators:
- "Budget cuts coming..."
- "Consolidating vendors..."
- "Bringing in-house..."
- "Economic concerns..."
- "Leadership changes..."
```
2. **Pattern Recognition Rules** ([Signals](/pages/Signals/understanding-signals)):
```
Strategic Pattern Detection:
Market Shift Pattern:
- Signal frequency >5x in 30 days
- Multiple segments mentioning
- Increasing urgency language
- Executive-level discussions
Competitive Threat Pattern:
- New competitor mentioned 3x
- Feature gap identified
- Pricing advantage claimed
- Migration mentioned
Opportunity Pattern:
- Unmet need mentioned 10x
- Willingness to pay expressed
- No adequate solution exists
- Strategic priority alignment
```
3. **Intelligence Prioritization**:
```
Signal Importance Scoring:
Critical (Immediate Action):
- Market disruption signals
- Major competitive moves
- Regulatory changes
- Economic shifts
High (Strategic Planning):
- Emerging trends
- New use cases
- Technology shifts
- Customer evolution
Medium (Monitor):
- Feature requests
- Pricing feedback
- Process changes
- Minor competitors
```
4. **Predictive Modeling**:
* Trend trajectory analysis
* Market timing predictions
* Adoption curve modeling
* Competitive response time
**Goal**: Deliver actionable insights to leadership in real-time
1. **Intelligence Processing Pipeline** ([Workflows](/pages/Workflows/workflow-automation)):
```
Daily Market Intelligence Flow:
Morning Intelligence Brief:
1. Process last 24h interactions
2. Extract strategic signals
3. Identify emerging patterns
4. Compare to historical data
5. Generate trend analysis
6. Create executive summary
7. Distribute to leadership
8. Flag urgent items
```
2. **Alert Configuration**:
```
Executive Alert System:
🚨 Red Alerts (Immediate):
- Major competitor move detected
- Market disruption signal
- Regulatory change mentioned
- Mass customer concern
🟡 Yellow Alerts (Daily):
- Emerging trend detected
- Competitive feature gap
- New use case pattern
- Pricing pressure trend
🟢 Green Updates (Weekly):
- Market validation
- Opportunity confirmation
- Positive positioning
- Strategic progress
```
3. **Intelligence Distribution**:
```
Stakeholder-Specific Insights:
CEO Dashboard:
- Strategic threats/opportunities
- Market position changes
- Competitive dynamics
- Growth vectors
Product Leadership:
- Feature gap analysis
- Innovation opportunities
- Technology trends
- User evolution
Sales Leadership:
- Competitive battlecards
- Pricing intelligence
- Win/loss patterns
- Market messaging
```
4. **Action Triggers**:
* Strategy session scheduling
* Competitive response teams
* Product roadmap updates
* Market positioning shifts
### Phase 2: Strategic Intelligence (Weeks 2-4)
**See market changes before your competitors:**
1. **Trend Prediction Engine**:
```
Market Trend Analysis: AI Transformation
Current Status:
- Mentions: 234 (up 340% QoQ)
- Segments: Enterprise (78%), Mid-Market (45%)
- Urgency: High and increasing
- Competition: 3 rivals building
Prediction:
- Mainstream adoption: 6-9 months
- Early mover advantage: 3 months
- Market size: $2.3B by 2025
- Success probability: 87%
Recommendation:
- Accelerate AI roadmap
- Partner vs build decision needed
- Hire AI expertise now
- Message market leadership
```
2. **Market Timing Intelligence**:
```
Adoption Curve Modeling:
Feature: Workflow Automation
Innovators (2%): Active now
Early Adopters (13%): Q2 2024
Early Majority (34%): Q4 2024
Late Majority (34%): Q2 2025
Optimal Launch: Q1 2024
Competition Entry: Q2 2024
Window of Advantage: 6 months
```
3. **Scenario Planning**:
```
Market Scenarios Detected:
Scenario 1: Consolidation Wave (65%)
- Signals: M&A mentions up 450%
- Timeline: 6-12 months
- Impact: Fewer, larger deals
- Strategy: Enterprise focus
Scenario 2: Economic Downturn (35%)
- Signals: Budget concerns rising
- Timeline: 3-6 months
- Impact: Longer sales cycles
- Strategy: ROI messaging
```
Companies using predictive market intelligence launch successful products 3.4x more often
**Know your competitors' moves before they make them:**
1. **Competitive Mention Analysis**:
```
Competitor Intelligence Report:
CompetitorX:
- Mentions: 156 (last 30 days)
- Win rate against: 67%
- Key advantages: Price, simplicity
- Key weaknesses: Scale, security
- Recent moves: SMB focus
Battlecard Updates:
- New feature launched (API v2)
- Pricing change detected (-20%)
- Partnership with TechCo
- Struggling with enterprise
Strategic Response:
- Emphasize enterprise strength
- Security differentiators
- Scale case studies
- Partner ecosystem
```
2. **Win/Loss Intelligence**:
```
Loss Pattern Analysis:
Lost to CompetitorX:
Primary Factors:
- Price (45% of losses)
- Ease of use (34%)
- Implementation speed (21%)
Customer Profile:
- Company size: <100 employees
- Industry: Retail, hospitality
- Budget: <$50K
- Tech maturity: Low
Counter-strategy:
- SMB package with lower entry
- Simplified onboarding
- Industry templates
- Payment flexibility
```
3. **Competitive Positioning Map**:
```
Market Position Analysis:
Leadership Quadrant:
- Us: Enterprise, full-featured
- CompX: SMB, simple
- CompY: Vertical specialist
- CompZ: Low-cost alternative
Movement Detected:
- CompX moving upmarket
- CompY expanding horizontals
- New entrant in low-end
Defensive Actions:
- Protect enterprise base
- Block CompX upmarket move
- Consider acquisition of CompZ
```
4. **Feature Gap Intelligence**:
* Competitive feature tracking
* Customer request mapping
* Development priority matrix
* Time-to-parity analysis
**Discover breakthrough opportunities in customer needs:**
1. **Unmet Needs Detection**:
```
Top Unmet Needs This Quarter:
1. Cross-Platform Analytics
- Mentions: 89
- Segments: Enterprise (90%)
- Current solutions: None adequate
- Willingness to pay: $50-100K
- Build complexity: Medium
2. AI-Powered Insights
- Mentions: 67
- Segments: All
- Current solutions: Manual only
- Market size: $500M
- First-mover advantage: High
3. Compliance Automation
- Mentions: 45
- Segments: Regulated industries
- Pain level: Critical
- Regulatory deadline: 2025
- Partnership opportunity
```
2. **Adjacent Market Analysis**:
```
Expansion Opportunities:
Vertical Expansion:
- Healthcare: 34 requests
- Financial services: 28 requests
- Government: 19 requests
Horizontal Expansion:
- HR use cases emerging
- Marketing applications
- Operations optimization
Platform Opportunities:
- Marketplace demand (67 mentions)
- API economy participation
- Ecosystem development
```
3. **Innovation Validation**:
```
Opportunity Scoring:
Mobile App:
- Market demand: 89/100
- Competitive advantage: 76/100
- Technical feasibility: 92/100
- Resource requirements: $2M
- Time to market: 6 months
- ROI projection: 4.2x
Decision: Fast track development
```
4. **Partnership Intelligence**:
* Integration requests
* Ecosystem gaps
* Channel opportunities
* Technology partnerships
### Phase 3: Strategic Execution (Month 2+)
**Adapt strategy based on live market intelligence:**
1. **Dynamic Strategy Adjustment**:
```
Q3 Strategy Update Based on Intelligence:
Original Plan:
- Focus: Mid-market expansion
- Investment: Sales hiring
- Timeline: 12 months
Market Intelligence Insights:
- Enterprise demand surging (+340%)
- Mid-market consolidating
- Security now top priority
- Compliance requirements new
Adjusted Strategy:
- Pivot to enterprise
- Hire security expertise
- Accelerate compliance
- Delay mid-market push
Impact: +$4.2M revenue opportunity
```
2. **Market Opportunity Tracking**:
```
Live Opportunity Dashboard:
🔥 Hot Opportunities:
1. API Economy (89 mentions)
Action: Launch API product Q1
2. Vertical Solutions (67 mentions)
Action: Healthcare package Q2
3. AI Integration (156 mentions)
Action: Partner selection now
📊 Validated Trends:
- Remote work permanent (confirmed)
- Consolidation wave (accelerating)
- Security priority (critical)
```
3. **Strategic Decision Support**:
```
Data-Driven Decision Example:
Question: Build vs Buy AI?
Market Intelligence:
- Customer timeline: 6 months
- Competitor progress: 40%
- Partner options: 3 viable
- Build time: 12 months
- Success criteria clear
Recommendation: Partner now,
build proprietary later
```
4. **Board Reporting**:
* Market position updates
* Competitive dynamics
* Growth opportunities
* Risk mitigation
**Outmaneuver competition with superior intelligence:**
1. **Competitive War Room**:
```
Competitive Threat Response:
Alert: CompetitorX launching enterprise product
Intelligence Gathered:
- Beta customers: 5 identified
- Features: 70% parity
- Pricing: 20% premium
- Go-to-market: Direct sales
- Weaknesses: Integration, scale
Counter-Strategy:
1. Contact beta customers
2. Emphasize integrations
3. Offer migration package
4. Accelerate v2 launch
5. PR defensive campaign
Result: 4/5 beta customers switched
```
2. **Market Positioning Evolution**:
```
Positioning Update Process:
Current: "Sales Intelligence Platform"
Market Feedback:
- "Too narrow" (45 mentions)
- "Need broader solution" (67)
- "Revenue intelligence" trend
New Positioning: "Revenue Intelligence OS"
Rollout:
- Sales enablement: Week 1
- Website update: Week 2
- Campaign launch: Week 3
- Analyst briefings: Week 4
```
3. **Competitive Benchmarking**:
* Feature parity tracking
* Pricing intelligence
* Customer satisfaction
* Market share shifts
4. **Strategic Partnerships**:
```
Partnership Intelligence:
Integration Requests:
1. Salesforce (234 mentions)
2. Slack (189 mentions)
3. Teams (156 mentions)
Strategic Value:
- Market access
- Competitive moat
- Customer stickiness
Action: Accelerate partnerships
```
**Build the future your customers are asking for:**
1. **Innovation Roadmap Intelligence**:
```
Customer-Driven Innovation Pipeline:
Now (Q4 2024):
- API Platform (156 requests)
- Mobile App (134 requests)
- Advanced Analytics (98 requests)
Next (Q1 2025):
- AI Assistant (234 requests)
- Workflow Automation (189 requests)
- Predictive Insights (145 requests)
Future (Q2+ 2025):
- Voice Intelligence (89 requests)
- AR/VR Interface (45 requests)
- Quantum Analytics (12 requests)
```
2. **Technology Trend Tracking**:
```
Emerging Tech Mentions:
AI/ML: ████████████ 234
Automation: ████████ 189
Blockchain: ██ 23
IoT: ███ 45
Voice: ████ 89
AR/VR: ██ 45
Investment Priority:
1. AI/ML capabilities
2. Automation platform
3. Voice interface
```
3. **Customer Co-Creation**:
```
Innovation Partner Program:
Design Partners Identified:
- TechCorp: AI use cases
- GlobalRetail: Scale testing
- FinanceInc: Security needs
Collaboration Model:
- Weekly feedback sessions
- Beta access program
- Co-development sprints
- Success metrics alignment
```
4. **Market Validation**:
* Concept testing
* Willingness to pay
* Adoption barriers
* Success criteria
## Market Intelligence Playbooks
### 🎯 The "Market Disruption Detection" Play
**Situation**: Identify and respond to market disruptions early
1. Monitor disruption indicators
2. Track mention frequency/urgency
3. Analyze customer segments affected
4. Assess competitive responses
1. Deep dive customer interviews
2. Analyze historical patterns
3. Quantify market impact
4. Evaluate strategic fit
1. Convene leadership team
2. Develop response scenarios
3. Allocate resources
4. Communicate internally
1. Launch response initiative
2. Track market reception
3. Iterate based on feedback
4. Measure impact
Companies detecting disruptions 6 months early capture 73% more market share
### 🏃 The "Competitive Counter-Move" Play
**Situation**: Respond rapidly to competitive threats
1. Gather all competitive mentions
2. Analyze customer impact
3. Identify vulnerable accounts
4. Assess response urgency
1. Develop counter-strategy
2. Create battle cards
3. Prepare sales enablement
4. Design customer retention plan
1. Contact at-risk customers
2. Launch competitive campaign
3. Enable sales team
4. Monitor win rates
1. Track competitive dynamics
2. Refine positioning
3. Build moats
4. Maintain vigilance
### 💡 The "Innovation Validation Sprint" Play
**Situation**: Validate new opportunity before major investment
1. Surface unmet needs pattern
2. Quantify mention frequency
3. Analyze customer segments
4. Size market opportunity
1. Interview requesting customers
2. Prototype concepts
3. Test willingness to pay
4. Assess competition
1. Calculate ROI projection
2. Evaluate strategic fit
3. Assess resource needs
4. Make investment decision
1. Build MVP quickly
2. Launch with early adopters
3. Iterate based on feedback
4. Scale if successful
## Measuring Intelligence Impact
### Key Performance Metrics
### ROI Calculation
```
Annual ROI of BuildBetter Performance Intelligence:
- Performance Improvement: 28% × $50M revenue = $14M
- Reduced Turnover: 9% × $150K per person = $1.35M
- Manager Efficiency: 30% time saved × 50 managers = $3M
- Faster Ramp Time: 2.5 months × 100 hires = $2.5M
- Better Hiring Decisions: 20% better quality = $4M
Total Annual Impact: $24.85M
BuildBetter Investment: $200K
ROI: 12,325% (124x return)
```
## Best Practices
**Make It Continuous**: Daily insights beat annual reviews every time
**Focus on Growth**: Use data to develop people, not punish them
**Democratize Insights**: Give everyone access to their own performance data
**Act Fast**: The value of performance insights decays quickly
**Celebrate Wins**: Recognition based on data feels more meaningful
## Common Pitfalls
**Over-Monitoring**: Track what matters, not everything possible
**Ignoring Context**: Numbers without context can mislead badly
**Manager Resistance**: Include managers in design to ensure adoption
**Gaming Metrics**: Regularly audit and adjust to prevent gaming
## Quick Start Checklist
Launch performance intelligence in one week:
Connect [CRM](/pages/Integrations/crm/salesforce) and [communication](/pages/Integrations/chat/slack) systems
Configure [performance signals](/pages/Signals/understanding-signals) and scoring
Build [automated workflows](/pages/Workflows/workflow-automation) for insights
Train managers on dashboards and coaching tools
Launch with pilot team and gather feedback
## Expert Tips
**The 3-Signal Rule**: No performance decision should be based on less than 3 different signals. Single metrics lie.
**Coach the Coaches**: Your best ROI comes from making managers better at developing their teams. Focus there first.
**Predict, Don't React**: By the time performance problems are obvious, it's expensive to fix. Catch them early.
**Culture Eats Metrics**: Use data to reinforce the culture you want, not create a culture of metrics.
## Resources & Next Steps
Proven strategies for common scenarios
Templates and guides for people leaders
Calculate your performance intelligence impact
Design your performance intelligence system
***
*Based on analysis of 5M+ employee performance records across BuildBetter customers. Results vary by industry, company size, and implementation quality.*
# Scale Content Creation from Customer Insights
Source: https://docs.buildbetter.ai/pages/Use Cases/marketing/content-generation
Build a systematic content pipeline from real customer conversations and pain points
**Coming Soon**: This guide will show you how to build a systematic content engine powered by customer conversations.
## What This Will Cover
* **Content Ideation**: Generate 100+ content ideas from customer pain points
* **SEO-Driven Topics**: Find topics customers actually search for (from their questions)
* **Authentic Storytelling**: Real customer stories, not made-up scenarios
* **Content Calendar**: Build 90-day calendar from conversation insights
* **Content Automation**: Workflows to surface content opportunities automatically
## Preview Topics
### Blog Content Pipeline
* Pain point to blog post workflow
* Customer story articles
* How-to guides from common questions
* Industry-specific content
* Problem/solution frameworks
### Video Content
* Customer testimonial clips
* Tutorial content from support patterns
* Problem-solution shorts
* Behind-the-scenes stories
### Social Media
* Customer quote graphics
* Problem-awareness posts
* Success story threads
* FAQ content from questions
### Email Campaigns
* Segment-specific nurture
* Pain point-based sequences
* Customer success spotlights
* Educational series from patterns
### Thought Leadership
* Market trends from customer insights
* Industry analysis
* Prediction/opinion pieces grounded in data
* Original research from conversation analysis
***
**Status**: Planned for development
**Related Guides**:
* [Marketing: Customer Stories](/pages/Use%20Cases/marketing/customer-stories) - Extract stories
* [Marketing: Understanding Your ICP](/pages/Use%20Cases/quick-start/marketing-icp) - Customer language
* [Product: CSV to Insights](/pages/Use%20Cases/product/csv-to-insights) - Feedback analysis
# Extract Testimonials & Case Studies from Calls
Source: https://docs.buildbetter.ai/pages/Use Cases/marketing/customer-stories
Turn customer conversations into testimonials, case studies, and authentic marketing content
You need customer stories for your website, case studies for sales, testimonials for ads. But asking customers to write testimonials is like pulling teeth. What if you could extract them from conversations you're already having?
**This guide shows you how to mine customer calls for authentic stories, quotes, and case study material.**
## The Content Problem
**Traditional approach:**
* 📧 Email customer: "Can you write a testimonial?"
* 🦗 Crickets (customers are busy)
* ⏰ 2 weeks later, get generic "great product" quote
* 😐 Not compelling, doesn't convert
**The opportunity**: Your best customer stories are already in recorded calls. You just need to extract them.
## What You'll Achieve
With BuildBetter:
* ✅ **Extract success stories** from customer calls automatically
* ✅ **Find authentic quotes** (in customer's own words)
* ✅ **Identify ROI** and specific outcomes mentioned
* ✅ **Build case studies** without lengthy customer interviews
* ✅ **Create content pipeline** that never runs dry
**Time saved**: Traditional case study: 10+ hours. With BuildBetter: 2 hours (mostly writing, not gathering).
***
## Step 1: Find Your Best Stories
\[screenshot: Signals filtered for success stories and positive sentiment]
1. Go to **Signals**
2. Filter:
* **Type**: Praise or Success
* **Sentiment**: Positive or Very Positive
* Contains: "saved", "ROI", "results", "love"
\[screenshot: Filtered signals showing customer wins]
**Query**: "What customer success stories can you find in my calls? Show me customers who mentioned specific results, ROI, or outcomes."
**Example output:**
```
Customer Success Stories:
1. TechCorp (Sarah, VP Ops)
- Saved 15 hours/week on data entry
- ROI: $127K annually
- Quote: "This is the best decision we made this year"
- Call: Demo follow-up, March 15
2. StartupCo (Mike, Founder)
- Reduced customer churn by 12%
- Time to value: 2 weeks
- Quote: "Paid for itself in the first month"
- Call: QBR, March 22
3. Enterprise Inc (Jessica, Director)
- Automated manual process
- Team productivity up 40%
- Quote: "Can't imagine going back to old way"
- Call: Check-in, March 8
```
***
## Step 2: Extract Authentic Quotes
\[screenshot: Call playback showing customer quote with timestamp]
For each story:
1. Click on the signal
2. Click timestamp to jump to moment
3. Listen to exact quote in customer's voice
4. Copy verbatim quote (BuildBetter shows transcript)
**Why this works**: Real customer language > marketing-ified quotes
**Query**: "Export all positive customer quotes mentioning results, ROI, or outcomes to a document."
Creates categorized quote library:
* Problem solved
* Results achieved
* Product delight
* Competitive comparisons
***
## Step 3: Create Case Studies
\[screenshot: Generated case study document]
**Query**: "Create a case study for \[Customer Name] based on our conversations. Include: their problem, solution, results, and quotes."
**Example output:**
```
Case Study: TechCorp
Challenge:
- Spending 60+ hours/week on manual data entry
- No single source of truth
- Multiple tools, no integration
Solution:
- Implemented BuildBetter in 2 weeks
- Automated data aggregation
- Single dashboard for all metrics
Results:
- 15 hours/week saved (75% reduction)
- $127K annual savings
- 100% data accuracy vs 67% before
Customer Quote:
"This is the best decision we made this year.
We got ROI in the first month."
- Sarah Johnson, VP Operations
```
Email customer with pre-written case study:
"Hi Sarah, we created a case study based on our conversations about your results (15 hours/week saved, \$127K ROI). Would you be okay with us publishing this?"
**Success rate**: 80%+ say yes when you've already done the work
***
## Step 4: Build Content Pipeline
\[screenshot: Content calendar generated from customer stories]
**First Monday of each month**:
1. Review last month's customer calls
2. Filter for positive moments
3. Extract 3-5 quotes
4. Draft social posts / blog ideas
**Query**: "Based on customer success stories, suggest 10 blog post ideas."
Generates authentic content ideas grounded in real customer experiences.
***
## Real Uses
**Social Proof**:
* Website testimonials (direct quotes)
* Landing page trust signals
* Social media posts
**Sales Enablement**:
* Case studies for specific industries
* ROI proof points
* Competitive positioning
**Content Marketing**:
* Blog posts ("How \[Customer] achieved X")
* Email campaigns
* Video testimonials (ask permission to use clips)
***
## Next Steps
Use customer language for messaging
Scale content creation from insights (stub)
***
**To be expanded**: Full content coming soon with case study templates, permission email templates, and content calendar workflows.
# Track Competitive & Market Intelligence
Source: https://docs.buildbetter.ai/pages/Use Cases/marketing/market-intelligence
Build a market intelligence system from customer and prospect conversations
**Coming Soon**: This guide will cover how to use BuildBetter as your market research engine—understanding market trends, competitive landscape, and emerging opportunities through conversations.
## What This Will Cover
* **Market Trend Detection**: Identify emerging trends from customer conversations
* **Competitive Intelligence**: Track what customers say about competitors
* **Buyer Psychology**: Understand decision-making criteria and processes
* **Market Segmentation**: Discover natural customer segments from behavior
* **Opportunity Mapping**: Find whitespace and unmet needs
## Preview Topics
### Competitive Intelligence
* Competitive mention tracking
* Win/loss analysis by competitor
* Feature comparison from customer perspective
* Pricing position analysis
* Switching trigger identification
### Market Trends
* Emerging problem patterns
* Technology adoption signals
* Industry shift indicators
* Regulation/compliance trends
* Buying pattern changes
### Customer Segmentation
* Behavioral segmentation from conversations
* Needs-based segments
* Firmographic clustering
* Psychographic profiling
* Journey-based segments
### Market Sizing
* Total addressable problem validation
* Segment size estimation
* Willingness-to-pay analysis
* Growth opportunity quantification
### Strategic Positioning
* Category creation/positioning
* Blue ocean identification
* Differentiation opportunities
* Partnership possibilities
* Acquisition targets
***
**Status**: Planned for development
**Related Guides**:
* [Sales: Deal Intelligence](/pages/Use%20Cases/sales/deal-intelligence) - Competitive tracking
* [Sales: Lost Deal Analysis](/pages/Use%20Cases/sales/lost-deal-analysis) - Why you lose
* [Leadership: Market Insights](/pages/Use%20Cases/leadership/market-insights) - Strategic view
# Build Messaging & Positioning from Customer Language
Source: https://docs.buildbetter.ai/pages/Use Cases/marketing/messaging-positioning
Build messaging frameworks and positioning strategy from actual customer language—not marketing guesses
**Coming Soon**: This comprehensive guide will show you how to develop your entire messaging and positioning strategy based on real customer conversations.
## What This Will Cover
* **Voice of Customer Analysis**: Extract exact language customers use for problems
* **Pain Point Hierarchy**: Quantify which problems matter most to which segments
* **Value Prop Development**: Build value propositions from proven outcomes
* **Positioning Strategy**: Position against competitors based on real differentiation
* **Messaging Testing**: Validate messaging with conversation data
## Preview Topics
### Messaging Framework
* Problem statement (in customer words)
* Solution positioning
* Value proposition hierarchy
* Proof points from customers
* Competitive differentiation
### Positioning Strategy
* Category definition
* Target audience refinement
* Unique positioning angle
* Supporting evidence
* Competitive moats
### Segmentation Strategy
* Segment-specific messaging
* Industry positioning
* Company size variations
* Use case messaging
* Persona-based language
### Messaging Testing
* A/B test homepage copy
* Track conversion impact
* Measure message resonance
* Iterate based on data
***
**Status**: Planned for development
**Related Guides**:
* [Marketing: Understanding Your ICP](/pages/Use%20Cases/quick-start/marketing-icp) - Start here
* [Marketing: Customer Stories](/pages/Use%20Cases/marketing/customer-stories) - Get quotes
* [Product: User Research](/pages/Use%20Cases/product/user-research) - Deep customer insights
# Turn Spreadsheet Feedback into Roadmap Priorities
Source: https://docs.buildbetter.ai/pages/Use Cases/product/csv-to-insights
You have feedback in surveys and spreadsheets—turn it into a prioritized roadmap in 1 hour
You've been collecting feedback. Google Forms, Typeform, NPS surveys, feature request spreadsheets—it's all there. But it's messy. Hundreds of rows. No clear patterns. You scroll through trying to find themes, but it takes forever and you're never confident you found everything.
**This guide shows you how to import your feedback spreadsheet into BuildBetter and turn it into a prioritized roadmap in 1 hour.**
## The Spreadsheet Analysis Problem
**Your current reality:**
* 📊 200+ rows of feedback in Google Sheets
* 😵 Can't remember what row 47 said vs row 143
* 🔍 Ctrl+F only finds exact matches (misses similar ideas)
* 🤷 No idea which problems are most common
* ⏰ Manual analysis takes 8+ hours
* 📝 Results in gut-feel prioritization anyway
**The question**: Is there actually a pattern, or are you just seeing what you want to see?
## What You'll Achieve
In 1 hour with BuildBetter:
* ✅ **Import 100-1000 feedback items** from CSV/spreadsheet
* ✅ **Auto-extract problems, requests, praise** from text
* ✅ **Find the top 5-10 themes** automatically
* ✅ **Visualize patterns** you couldn't see in spreadsheet
* ✅ **Prioritize roadmap** based on data, not hunches
* ✅ **Export insights** ready to share with team
**Time saved**: Manual analysis: 8+ hours. With BuildBetter: 1 hour. **Accuracy**: Spreadsheet misses 40-60% of patterns. BuildBetter catches 95%+.
## Prerequisites
BuildBetter account ([buildbetter.ai](https://buildbetter.ai))
Feedback spreadsheet (Google Sheets, CSV, Excel, Typeform export, etc.)
At least 50+ feedback items (more is better)
***
## Step 1: Prepare Your Data (15 minutes)
BuildBetter needs your feedback in the right format. Don't worry—it's flexible.
**From Google Sheets:**
1. File → Download → CSV (.csv)
**From Typeform:**
1. Results → Export → Export to CSV
**From SurveyMonkey, NPS tools, etc:**
1. Export responses as CSV
\[screenshot: Google Sheets export menu showing CSV option]
Save the file somewhere you can find it.
Open the CSV and make sure you have these columns (names can vary):
**Required:**
* **Feedback text** (the actual comment/response)
* Could be named: "Response", "Comment", "Feedback", "Message", etc.
**Helpful (but optional):**
* **Customer/User name** or email
* **Date submitted**
* **Company name** (if B2B)
* **User type** (customer, prospect, internal, etc.)
* **Rating** (if NPS/CSAT survey)
\[screenshot: Example CSV with columns: Date, Email, Company, Feedback, NPS Score]
**Don't have all these?** That's fine. BuildBetter only needs the feedback text. Everything else just adds context.
Quick fixes to improve results:
**Remove completely empty rows:**
* Delete rows with no feedback text
**Merge multi-line responses:**
* If a response spans multiple rows, combine into one cell
**That's it.** Don't obsess over perfection. BuildBetter handles messy data well.
***
## Step 2: Import to BuildBetter (10 minutes)
1. In BuildBetter, click **Upload** (top right)
2. Select **Import Text Data** or **CSV Upload**
\[screenshot: Upload dropdown showing "Import Text Data" option]
1. Drag and drop your CSV file
2. Or click to browse and select
\[screenshot: CSV upload interface with drag-and-drop zone]
BuildBetter starts processing immediately.
BuildBetter shows you a preview and asks you to map columns:
\[screenshot: Column mapping interface showing CSV columns on left, BuildBetter fields on right]
**Map these if you have them:**
* **Content/Message** → Your feedback text column
* **Author/User** → Name or email column
* **Date** → Submission date column
* **Company** → Company name column
* **Metadata** → Any other useful columns (NPS score, user segment, etc.)
Only the **Content/Message** field is required. Everything else is optional metadata.
Click **Import** and BuildBetter:
* Processes each row of feedback
* Extracts signals (problems, requests, praise, questions)
* Identifies sentiment
* Categorizes by theme
* Makes everything searchable
\[screenshot: Processing screen showing "Importing 243 feedback items..."]
**Time**: 5-15 minutes for 100-500 items. You can navigate away—it continues in background.
***
## Step 3: Explore Your Patterns (20 minutes)
Now the magic happens. Let's find what's actually in your data.
1. Go to **Signals** in left navigation
2. You'll see signals extracted from every feedback item
\[screenshot: Signals page showing list of extracted feedback with types and sentiment]
Each signal shows:
* **Summary** (what the feedback is about)
* **Type** (Problem, Feature Request, Praise, Question)
* **Sentiment** (positive, neutral, negative)
* **Source** (which row/person it came from)
Let's find what customers complain about most:
1. Click **Filter**
2. Select **Signal Type** → **Problem** or **Complaint**
3. Click **Apply**
\[screenshot: Filtered signals showing only problems]
Scroll through and you'll start seeing patterns:
* Same issue mentioned with different words
* Varying levels of frustration
* Specific vs vague complaints
Look for problems mentioned 3+ times. If different people describe the same issue independently, it's real.
Use AI to analyze patterns you might miss:
**Query**: "What are the top 5 most common problems in this feedback? Group similar issues together."
\[screenshot: Chat analyzing feedback and listing top 5 problem themes]
**Example output:**
```
Top 5 Problems from 243 Feedback Items:
1. Onboarding Confusion (47 mentions)
- "Don't know where to start"
- "Setup too complicated"
- "Needs better tutorial"
2. Mobile App Issues (34 mentions)
- "Doesn't work on iPhone"
- "Mobile version missing features"
- "Can't access on phone"
3. Slow Performance (28 mentions)
- "Takes forever to load"
- "Dashboard is laggy"
- "Timeout errors"
4. Export Limitations (19 mentions)
- "Can't export to Excel"
- "Need PDF export"
- "Export missing data"
5. Integration Requests (17 mentions)
- "Need Salesforce integration"
- "Zapier connection wanted"
- "API access needed"
```
This is gold. You just found your roadmap priorities.
If you imported customer metadata, segment the feedback:
**Filter by company size:**
* Enterprise customers want different things than SMBs
**Filter by user role:**
* Admins care about different features than end users
**Filter by NPS score:**
* Detractors (0-6) vs Promoters (9-10) have different feedback
\[screenshot: Signals filtered by NPS score showing detractor feedback]
Ask Chat: "What do detractors (NPS 0-6) complain about most?"
***
## Step 4: Visualize & Prioritize (15 minutes)
Turn insights into dashboards your team can understand.
1. Go to **Clustering**
2. Click **Customize Dashboard**
Add these visualizations:
**Chart 1: Top Problems** (Bar Chart)
* Data: Signals (type = Problem)
* Group by: Theme/Topic
* Sort by: Count (descending)
\[screenshot: Bar chart showing top 5 problems with counts]
**Chart 2: Feature Requests** (Bar Chart)
* Data: Signals (type = Feature Request)
* Group by: Theme
* Sort by: Count
\[screenshot: Bar chart showing most-requested features]
**Chart 3: Sentiment Distribution** (Pie Chart)
* Data: All signals
* Group by: Sentiment
* Shows: % Positive, Neutral, Negative
\[screenshot: Pie chart showing sentiment breakdown]
**Chart 4: Feedback Over Time** (Line Chart)
* Data: Signals
* X-axis: Date submitted
* Y-axis: Count
* Shows: When feedback peaked
\[screenshot: Line chart showing feedback volume over time]
Ask Chat to help prioritize:
**Query**: "Based on this feedback, create a prioritization matrix. For each major problem/request, tell me: 1) How many people mentioned it, 2) How frustrated they are (sentiment), 3) Your recommended priority (high/medium/low)."
\[screenshot: Chat generating prioritization matrix]
**Example output:**
```
Roadmap Prioritization Matrix:
🔴 HIGH PRIORITY
1. Onboarding Confusion
- Mentions: 47
- Avg Sentiment: -6.2 (frustrated)
- Why: Affects all new users, blocks activation
2. Mobile App Issues
- Mentions: 34
- Avg Sentiment: -5.8 (very frustrated)
- Why: Growing mobile usage, competitive gap
🟡 MEDIUM PRIORITY
3. Slow Performance
- Mentions: 28
- Avg Sentiment: -4.1 (annoyed)
- Why: Impacts daily usage, but workarounds exist
🟢 LOW PRIORITY (but track)
4. Export Limitations
- Mentions: 19
- Avg Sentiment: -2.3 (mild annoyance)
- Why: Edge case, only power users
5. Integration Requests
- Mentions: 17
- Avg Sentiment: +1.2 (wishlist, not blocker)
- Why: Nice-to-have, not deal-breaker
```
Turn insights into shareable document:
1. In Chat, click **Generate** button
2. Select **Generate Document**
3. Choose template: "Product Requirements" or "Research Summary"
\[screenshot: Document generation dialog]
BuildBetter creates a formatted document with:
* Executive summary
* Top problems/requests
* Customer quotes
* Prioritization recommendations
* Next steps
\[screenshot: Generated PRD document]
Share with your team, stakeholders, or use in roadmap planning.
***
## Step 5: Close the Loop (10 minutes)
Let customers know you heard them.
**Query Chat**: "Which problems could we fix quickly (low effort) that would make customers happy?"
\[screenshot: Chat identifying quick win opportunities]
Look for:
* High frustration, low effort fixes
* Small UI tweaks mentioned repeatedly
* Documentation gaps
For high-priority items:
**If you're building it:**
* Email customers who requested it: "We heard you, this is coming in Q2"
* Include them in beta testing
**If you're not building it:**
* Explain why (helps set expectations)
* Suggest alternatives
Use BuildBetter's **Export** feature to get a list of customers who mentioned specific features. Easy outreach.
As you ship fixes:
1. Import new feedback monthly
2. Check if complaints are decreasing
3. See if sentiment is improving
4. Validate your roadmap decisions
\[screenshot: Trend chart showing problem mentions declining after fix]
**Data-driven validation**: Did fixing onboarding actually reduce complaints? Now you know.
***
## Real Example: Emma's Roadmap Transformation
**Background**: Emma is PM at a B2B SaaS tool. Had 387 feedback items in a Google Sheet from 6 months of NPS surveys. Never analyzed them properly.
**Before BuildBetter:**
* Skimmed \~50 responses
* Guessed top problems
* Built features based on loudest customer (who happened to email her)
* 2/5 features flopped (low adoption)
**Week 1 with BuildBetter:**
**Monday (1 hour):**
* Exported NPS feedback to CSV
* Uploaded to BuildBetter
* Let it process during lunch
**Monday afternoon:**
* Reviewed signals: 387 responses → 842 signals extracted
* Top problem: "Can't collaborate with team" (89 mentions)
* Emma was surprised—she thought it was "slow performance" (only 23 mentions)
**Tuesday:**
* Built dashboard showing all themes
* Asked Chat for prioritization
* Generated product brief
**Wednesday:**
* Presented to team: "89 customers mentioned team collaboration issues, here are exact quotes"
* Team pivoted roadmap priority
* Started building collaboration features
**3 months later:**
* Shipped team collaboration
* NPS went from 32 → 48
* 67% of detractors mentioned it as reason they upgraded score
* Next feature adoption: 78% (vs usual 35%)
**Emma's quote**: "I wasted 6 months building what I THOUGHT customers wanted. One hour with BuildBetter showed me what they ACTUALLY wanted. Completely changed how I prioritize."
***
## Common Questions
**BuildBetter handles messy data well.** The AI:
* Corrects obvious typos
* Understands incomplete sentences
* Ignores gibberish
* Focuses on extracting meaningful signals
**Don't waste time cleaning.** Just import and let the AI handle it.
**Not yet** (integrations coming). For now:
1. Export from those tools to CSV
2. Upload CSV to BuildBetter
Takes 2 extra minutes. Still way faster than manual analysis.
**Import them all!** BuildBetter can handle multiple CSVs:
1. Upload NPS feedback CSV
2. Tag it "NPS Feedback"
3. Upload support feedback CSV
4. Tag it "Support Tickets"
5. Upload form responses CSV
6. Tag it "Feature Requests"
Then filter/segment by source or analyze across all sources.
\[screenshot: Signals filtered by source/tag]
**BuildBetter supports 30+ languages:**
* Auto-detects language per feedback item
* Translates to English for analysis (or keeps original)
* Signals work across languages
Just upload. It works.
**Short feedback is harder to analyze but still works:**
* "Slow" → Extracted as Problem signal
* "Love it!" → Extracted as Praise signal
* "Need API" → Extracted as Feature Request signal
**Better results with longer feedback**, but BuildBetter does its best with what you have.
***
## Your 1-Hour Transformation Checklist
### Minute 0-15: Prepare
Export feedback to CSVCheck columns are mapped correctlyQuick cleanup (remove empty rows)
### Minute 15-25: Import
Upload CSV to BuildBetterMap columnsStart processing
### Minute 25-45: Explore
Review signals (all types)Filter for top problemsAsk Chat for top themesSegment by customer type (if metadata exists)
### Minute 45-60: Visualize & Share
Build dashboard (4 key charts)Create prioritization matrixGenerate product brief
***
## What's Next?
### After Your First Import
Set up monthly imports to track trends over time
Add user interview recordings for deeper context
Analyze 100s of conversations + surveys together
Auto-generate PRDs from feedback patterns
### Make It a Habit
**Monthly** (1 hour):
* Export latest feedback
* Import to BuildBetter
* Review new themes
* Update prioritization
**Quarterly** (Half day):
* Analyze 3 months of feedback
* Trend analysis (what's improving/worsening?)
* Roadmap alignment check
* Team presentation
The magic isn't in doing this once—it's in making it a monthly habit. Track how feedback changes as you ship features. That's how you know you're building the right things.
***
## Resources
Detailed CSV formatting and import docs
Download example CSV format
Watch this workflow in action (8 min)
Get help with your first import (free)
***
**Your feedback spreadsheet isn't useless. It's a goldmine. You just needed the right tool to mine it.**
The best product decisions are backed by data, not hunches. Now you have the data.
Average product team has 3-6 months of feedback sitting in spreadsheets, never properly analyzed. You just analyzed all of it in 1 hour. That's a competitive advantage.
# Feature Request Intelligence
Source: https://docs.buildbetter.ai/pages/Use Cases/product/feature-requests
Turn feature request chaos into strategic product decisions with AI that captures, analyzes, and prioritizes what customers truly need
Product teams receive thousands of feature requests across dozens of channels, yet 68% of built features see low adoption because teams prioritize based on who shouts loudest. BuildBetter transforms feature request management from political battles into data-driven decisions by automatically capturing every request, quantifying real impact, and ensuring you build what customers will actually use.
## The Feature Request Challenge
Traditional request management fails everyone:
* 🎯 **81% of feature requests** are duplicates teams don't recognize
* ⏱️ **PMs spend 35% of time** managing request spreadsheets
* 💔 **67% of customers** never hear back about their requests
* 📊 **Only 23% of features** are prioritized by actual impact
* 💸 **\$1.7T wasted annually** building the wrong features
BuildBetter creates intelligent feature request management powered by customer data.
## Core Feature Request Capabilities
Automatically detect and consolidate requests from every source
Quantify revenue, retention, and strategic value of each request
AI identifies similar requests you'd never connect manually
Know exactly who wants what and keep them informed
## Implementation Guide
### Phase 1: Foundation (Week 1)
**Goal**: Create single source of truth for all feature requests
1. **Connect Request Sources**:
* [Sales Calls](/pages/Calls%20&%20Recordings/recording-methods): "We need X to close deals"
* [Support Tickets](/pages/Integrations/ticketing/zendesk): Enhancement requests
* [Customer Success](/pages/Integrations/crm/salesforce): QBR feedback
* [Product Analytics](/pages/Integrations/analytics/mixpanel): Usage patterns
2. **Historical Import**:
```
Import Priority:
1. Last 12 months of CRM opportunities (lost reasons)
2. Support tickets tagged "feature request"
3. Product feedback surveys
4. Sales call notes mentioning "need" or "want"
5. Customer success meeting notes
```
3. **Request Taxonomy**:
```
Feature Categories:
🎨 User Experience
├── Navigation & UI
├── Mobile Experience
├── Accessibility
└── Personalization
⚡ Performance & Scale
├── Speed Optimization
├── Data Handling
├── API Enhancements
└── Infrastructure
🔧 Functionality
├── Core Features
├── Integrations
├── Automation
└── Reporting
🔐 Security & Compliance
├── Access Control
├── Data Protection
├── Audit & Compliance
└── Privacy Features
```
Most teams discover 60-80% of their "new" requests are actually duplicates once AI analyzes them.
**Goal**: Quantify the true value of each feature request
1. **Revenue Impact Framework** in [Custom Context](/pages/Settings/custom-context):
```
Revenue Scoring Model:
Direct Revenue Impact (40%):
- Deals blocked: Count × Average deal size
- Expansion blocked: Customers × Expansion value
- Churn risk: At-risk ARR × Churn probability
- New market access: TAM × Win rate
Customer Impact (30%):
- Customers requesting: Unique count
- User seats affected: Total users impacted
- Segment priority: Enterprise = 3x, Mid = 2x, SMB = 1x
- Strategic accounts: CEO/Board visibility
Strategic Value (20%):
- Competitive differentiation
- Platform evolution alignment
- Technical debt reduction
- Market positioning
Effort Score (10%):
- Development complexity
- Dependencies identified
- Risk assessment
- Maintenance burden
```
2. **Request Signals** ([Signal Configuration](/pages/Signals/understanding-signals)):
```
High-Value Indicators:
- "Deal breaker" mentioned
- "Switching to competitor"
- "Budget allocated for this"
- "Board asking about this"
- Multiple executives requesting
Urgency Signals:
- "Need by [date]"
- "Blocking our launch"
- "Compliance requirement"
- "Customer threatening to leave"
```
3. **Duplicate Detection Rules**:
```
AI Similarity Detection:
- Semantic matching (not just keywords)
- Cross-channel correlation
- Technical equivalence
- Use case similarity
Example:
"Need bulk user upload" = "CSV import for users" =
"Mass user creation" = "Batch add employees"
```
4. **Auto-Prioritization**:
* Score updates real-time
* Re-rank on new information
* Flag score changes >20%
* Alert on threshold crossing
**Goal**: Automate request processing and stakeholder communication
1. **Intelligent Processing** ([Workflows](/pages/Workflows/workflow-automation)):
```
Feature Request Workflow:
Trigger: New request detected
Actions:
1. Extract request details and context
2. Check for similar/duplicate requests
3. Calculate impact score
4. Identify all stakeholders
5. Categorize and tag
6. Create/update master request
7. Notify product team
8. Send acknowledgment to requester
```
2. **Stakeholder Management**:
```
Auto-Generated Stakeholder Map:
Feature: Advanced Permissions
Requesters (47 unique):
- Enterprise: 12 accounts ($2.4M ARR)
- Mid-Market: 23 accounts ($890K ARR)
- SMB: 12 accounts ($120K ARR)
Internal Champions:
- Sales: John Smith (8 deals blocked)
- CS: Sarah Johnson (3 churns risks)
- Support: Mike Chen (45 tickets)
Executive Visibility:
- CEO mentioned in board meeting
- CPO priority list for Q4
```
3. **Communication Automation**:
```
Status Update Flow:
New Request:
"Thanks for requesting [feature]. We're tracking
this along with 23 similar requests."
Under Review:
"Your request is being evaluated for Q4 planning.
Current priority score: 87/100"
Planned:
"Great news! [Feature] is planned for Q1 2025.
Want to join our beta program?"
Launched:
"You asked, we delivered! [Feature] is now live.
Here's how to get started..."
```
4. **Analytics & Reporting**:
* Weekly request summaries
* Monthly trend analysis
* Quarterly planning data
* Annual pattern review
### Phase 2: Advanced Intelligence (Weeks 2-4)
**Discover hidden patterns in your feature requests:**
1. **Cluster Analysis**:
```
AI-Discovered Request Clusters:
Cluster: "Workflow Automation" (127 requests)
Sub-themes detected:
- Conditional logic (45 requests)
- Multi-step processes (38 requests)
- Trigger management (28 requests)
- Template system (16 requests)
Common phrases:
- "If-then rules"
- "Automated workflows"
- "Custom automation"
- "Process builder"
Impact if delivered:
- $4.2M new revenue
- $1.8M retention impact
- 34 competitive losses prevented
```
2. **Evolution Tracking**:
```
Request Evolution Timeline:
Q1: "Basic email notifications" (12 requests)
Q2: "Custom notification rules" (34 requests)
Q3: "Workflow automation" (89 requests)
Q4: "Visual workflow builder" (127 requests)
Insight: Customer needs are maturing from
simple alerts to complex automation
```
3. **Correlation Discovery**:
```
Unexpected Correlations Found:
Customers requesting "API rate limits":
- 78% also want "bulk operations"
- 67% mentioned "performance issues"
- 45% are planning major migrations
Recommendation: Bundle these as
"Enterprise Scale Package"
```
4. **Competitive Intelligence**:
* Features driving switches
* Gaps causing losses
* Differentiation opportunities
* Market expectations
Pattern analysis helps teams find 2.7x more strategic opportunities
**Quantify expected return before building:**
1. **Revenue Modeling**:
```
Feature ROI Analysis: Mobile App
Revenue Impact:
New Sales:
- 23 blocked deals × $45K average = $1,035,000
- 15% close rate improvement = $2,100,000
Expansion:
- 156 customers requesting × $12K = $1,872,000
- 67% likely to expand = $1,254,240
Retention:
- 8 churn risks × $67K average = $536,000
- 12% overall retention improvement = $3,200,000
Total Revenue Impact: $8,997,240
Costs:
- Development: $420,000 (12 sprints)
- Maintenance: $84,000/year
- Marketing: $50,000
ROI: 1,604% in Year 1
Payback Period: 2.3 months
```
2. **Adoption Modeling**:
```
Predicted Adoption Curve:
Based on similar features:
- Month 1: 12% adoption (early adopters)
- Month 3: 34% adoption (majority)
- Month 6: 67% adoption (target)
- Month 12: 78% adoption (mature)
Risk factors:
- Requires behavior change (-15%)
- Strong value prop (+20%)
- Good onboarding planned (+10%)
Adjusted prediction: 72% at 12 months
```
3. **Success Metrics**:
```
Feature Success Criteria:
Adoption:
- Target: 60% of requesting customers
- Measurement: Daily active usage
Value:
- Target: 15% productivity improvement
- Measurement: User surveys + analytics
Revenue:
- Target: $5M influenced revenue
- Measurement: CRM attribution
Satisfaction:
- Target: +10 NPS from users
- Measurement: Feature-specific survey
```
4. **Risk Assessment**:
* Technical complexity risks
* Market timing concerns
* Competitive responses
* Resource constraints
**Manage complex stakeholder dynamics:**
1. **Influence Mapping**:
```
Stakeholder Influence Network:
Feature: Enterprise SSO
Power Users:
- TechCorp (Gloria Chen): 500 seats, vocal advocate
- MegaBank (John Park): 2000 seats, executive sponsor
- StartupCo (Lisa Wong): 50 seats, high growth
Internal Champions:
- Sales VP: "Losing 40% of enterprise deals"
- Security: "Critical for compliance"
- CS Director: "Top churn reason"
Influence Score: 94/100
Political Risk: Low
Champion Risk: Medium (if Gloria leaves)
```
2. **Communication Optimization**:
```
Stakeholder Segments:
Segment 1: Power Requesters
- Requested 5+ features
- High engagement
- Strategy: Beta access, advisory board
Segment 2: Silent Majority
- Requested 1-2 features
- Low engagement
- Strategy: Regular updates, surveys
Segment 3: Executive Sponsors
- C-level visibility
- Strategic accounts
- Strategy: Direct line, quarterly briefings
```
3. **Feedback Loops**:
* Beta program management
* Feature councils
* User advisory boards
* Executive briefings
4. **Success Attribution**:
* Link requests to outcomes
* Measure satisfaction lift
* Track adoption by requester
* Create success stories
### Phase 3: Strategic Execution (Month 2+)
**Connect requests directly to product strategy:**
1. **Strategic Alignment**:
```
Q1 2025 Roadmap Alignment:
Strategic Theme: Enterprise Scale
Aligned Requests:
1. SSO Implementation (Score: 94)
- Revenue impact: $3.2M
- Requests: 67 enterprise accounts
2. Advanced Permissions (Score: 89)
- Revenue impact: $2.8M
- Requests: 89 accounts
3. Audit Logging (Score: 82)
- Revenue impact: $2.1M
- Requests: 45 accounts
Theme Impact: $8.1M revenue
Strategic Fit: 92% alignment
```
2. **Trade-off Analysis**:
```
Build vs Buy vs Partner:
Feature: Data Visualization
Build:
- Cost: $800K (6 months)
- Control: Full
- Differentiation: High
- Risk: Medium
Buy:
- Cost: $200K + $50K/year
- Time: 1 month
- Control: Limited
- Risk: Low
Partner:
- Cost: Revenue share (15%)
- Time: 2 months
- Control: Medium
- Risk: Low
Recommendation: Partner for MVP,
build if >$2M revenue
```
3. **Capacity Planning**:
```
Team Capacity Analysis:
Q1 Capacity: 240 story points
Committed Features:
- SSO: 80 points (33%)
- Permissions: 60 points (25%)
- Bug fixes: 40 points (17%)
- Tech debt: 30 points (12%)
Available: 30 points (13%)
Options:
1. Small feature (Mobile offline)
2. UX improvements
3. Performance optimization
```
4. **Success Tracking**:
* Link features to requests
* Measure predicted vs actual
* Track adoption curves
* Calculate realized ROI
**Involve customers in feature development:**
1. **Design Partnership Program**:
```
Feature Co-Creation: Workflow Builder
Design Partners Selected:
- TechCorp: Complex use cases
- StartupCo: Simplicity focus
- MegaRetail: Scale testing
- FinanceInc: Security requirements
Engagement Model:
- Weekly design sessions
- Prototype access
- Direct engineer feedback
- Success metrics input
```
2. **Rapid Validation**:
```
Prototype Testing Results:
Version 1 Feedback:
- "Too complex" (8/10 partners)
- "Need templates" (10/10)
- "Love the concept" (9/10)
Version 2 Changes:
- Simplified UI (-40% options)
- Added 12 templates
- Improved onboarding
Version 2 Results:
- "Much better!" (9/10)
- Task completion: 87%
- Time to value: 12 min
```
3. **Beta Program Management**:
```
Beta Cohorts:
Alpha (10 customers):
- Daily builds
- Direct Slack channel
- Weekly calls
- High touch support
Beta (100 customers):
- Weekly builds
- Community forum
- Monthly webinars
- Standard support
GA Readiness:
- 500+ customers
- Public documentation
- Success metrics hit
```
4. **Feedback Integration**:
* Real-time beta feedback
* Feature request updates
* Success story creation
* Reference development
**Use requests to drive competitive advantage:**
1. **Competitive Request Analysis**:
```
Requests Mentioning Competitors:
CompetitorX Features Wanted:
1. Real-time collaboration (234 requests)
2. Advanced analytics (189 requests)
3. Mobile app (156 requests)
Our Advantage Opportunities:
1. Better implementation of collab
2. Unique analytics approach
3. Mobile-first design
Strategy: Fast-follow with
differentiation on UX
```
2. **Win-Back Analysis**:
```
Lost Customer Request Patterns:
Churned to CompetitorX:
- Avg requests before churn: 4.2
- Avg wait time: 8 months
- Common requests: API, Scale, Mobile
Win-Back Opportunity:
- 23 customers now requesting our roadmap
- 67% dissatisfied with competitor
- Key message: "We listened and built it"
```
3. **Market Positioning**:
```
Feature-Based Positioning:
Us vs Market:
Unique Features (build moat):
- AI-powered insights
- Predictive analytics
- Workflow automation
Parity Features (must have):
- SSO/SAML
- API access
- Mobile apps
Ignore (not our market):
- Consumer features
- Gaming elements
- Social features
```
4. **Innovation Pipeline**:
* Emerging request themes
* Future market needs
* Technology possibilities
* Partnership opportunities
## Feature Request Playbooks
### 🎯 The "Quick Win Hunt" Play
**Situation**: Find high-impact, low-effort features
1. Filter: Impact score >70, Effort \<20 points
2. Review top 20 quick wins
3. Validate effort estimates
4. Check technical dependencies
1. Prototype in 1-2 sprints
2. Test with 5-10 customers
3. Measure actual impact
4. Gather improvement ideas
1. Build in 2-4 sprints
2. Soft launch to requesters
3. Monitor adoption closely
4. Iterate based on usage
1. Share success metrics
2. Thank contributors
3. Build momentum
4. Generate testimonials
Quick wins build trust and momentum for larger initiatives
### 🏢 The "Enterprise Deal Unblock" Play
**Situation**: Feature request blocking major deal
1. Quantify deal value and probability
2. Understand feature criticality
3. Explore alternatives/workarounds
4. Assess build feasibility
1. Calculate ROI of building
2. Consider partial solution
3. Evaluate partnership options
4. Make go/no-go decision
1. If yes: Fast-track development
2. If no: Create compelling alternative
3. If maybe: Propose pilot/POC
4. Communicate clearly to sales
1. If built: Market to similar prospects
2. If won without: Document approach
3. If lost: Learn and prevent repeats
4. Update scoring model
### 📊 The "Annual Planning" Play
**Situation**: Use requests to drive annual roadmap
1. Export all requests with scores
2. Cluster into themes
3. Map to strategic objectives
4. Identify resource needs
1. Present data to leadership
2. Facilitate prioritization workshops
3. Balance requests with innovation
4. Get buy-in on roadmap
1. Map features to teams
2. Identify skill gaps
3. Plan hiring/training
4. Set realistic timelines
1. Share roadmap publicly
2. Explain prioritization logic
3. Set expectations clearly
4. Create feedback channels
## Measuring Request Impact
### Key Performance Metrics
### ROI Calculation
```
Annual ROI of BuildBetter Feature Request Intelligence:
- Better Prioritization: +44% success rate = $8.9M saved
- Duplicate Elimination: 81% detected = $2.1M saved
- Faster Processing: 2 weeks → instant = $3.4M value
- Improved Adoption: 78% vs 34% = $6.7M revenue
- PM Productivity: 25% time saved = $1.4M value
Total Annual Impact: $22.5M
BuildBetter Investment: $120K
ROI: 18,650% (187x return)
```
## Best Practices
**Acknowledge Every Request**: Auto-acknowledgment maintains trust even if you can't build it
**Explain Your Math**: Share scoring logic so customers understand prioritization
**Group Similar Requests**: Show customers they're part of a larger need
**Close the Loop**: Always notify requesters when features ship
**Learn from No's**: Track why requests are declined to spot patterns
## Common Pitfalls
**Feature Factory Mode**: Not every request should become a feature
**Loudest Voice Wins**: Volume ≠ value - trust the scoring model
**Analysis Paralysis**: Perfect data never comes - make decisions with 80%
**Set It and Forget**: Request patterns evolve - refresh scoring quarterly
## Quick Start Checklist
Launch intelligent request management in one week:
Connect main request sources ([CRM](/pages/Integrations/crm/salesforce), [support](/pages/Integrations/ticketing/zendesk), [calls](/pages/Calls%20&%20Recordings/recording-methods))
Configure [request signals](/pages/Signals/understanding-signals) and scoring model
Build [automated workflows](/pages/Workflows/workflow-automation) for processing
Import historical requests and find duplicates
Share first insights report with team
## Expert Tips
**The Portfolio Approach**: Balance quick wins (20%), strategic bets (60%), and experiments (20%) in your roadmap for optimal outcomes.
**Request Velocity Matters**: A feature with 10 requests last month is often more important than one with 100 requests last year. Weight recency.
**The Customer Council**: Your top 20 requesters often represent 80% of revenue impact. Create a formal council for regular input.
**Celebrate the No's**: When you decline a request but the customer stays and succeeds anyway, you made the right call. Track these wins.
## Resources & Next Steps
Download our proven request prioritization framework
Calculate the impact of better request management
Track and manage complex request stakeholders
Design your request management system with pros
***
*Based on analysis of 12M+ feature requests across BuildBetter customers. Individual results vary based on market, product complexity, and customer base.*
# AI-Powered Feedback Intelligence
Source: https://docs.buildbetter.ai/pages/Use Cases/product/feedback-collection
Transform scattered customer feedback into actionable product insights with AI that captures, analyzes, and prioritizes what customers really need
Product teams drown in feedback from dozens of channels, yet 87% of product decisions are still based on intuition rather than customer data. BuildBetter transforms feedback chaos into clarity by automatically capturing every customer interaction, identifying patterns humans miss, and delivering actionable insights that drive successful products.
## The Feedback Collection Challenge
Traditional feedback management is broken:
* 📊 **73% of customer feedback** never reaches product teams
* ⏰ **Product managers spend 40% of time** manually collecting feedback
* 🔍 **Critical insights buried** in calls, tickets, and surveys
* 📉 **42% of features fail** due to misunderstood customer needs
* 💸 **\$2.1T wasted globally** on unwanted features
BuildBetter creates a single source of truth for all customer feedback, powered by AI.
## Core Feedback Intelligence Capabilities
Automatically collect feedback from every customer touchpoint
Surface patterns, themes, and insights humans would miss
Quantify impact and effort to focus on what matters most
Get instant alerts on emerging trends and critical feedback
## Implementation Guide
### Phase 1: Foundation (Week 1)
**Goal**: Create comprehensive feedback collection system
1. **Primary Feedback Sources**:
* [Call Recordings](/pages/Calls%20&%20Recordings/recording-methods): Sales, support, success calls
* [Support Tickets](/pages/Integrations/ticketing/zendesk): Bug reports, feature requests
* [CRM Data](/pages/Integrations/crm/salesforce): Customer conversations
* [Surveys](/pages/Integrations/other/csv): NPS, CSAT, custom surveys
2. **Secondary Sources**:
* [Slack Channels](/pages/Integrations/chat/slack): Internal discussions
* [Email](/pages/Integrations/office/gmail): Direct customer emails
* [Reviews](/pages/Text%20Data/importing-feedback): App store, G2, Capterra
* [Social Media](/pages/Text%20Data/non-call-sources): Twitter, LinkedIn mentions
3. **Data Import Strategy**:
```
Historical Import Priority:
1. Last 6 months of support tickets
2. Previous quarter's call recordings
3. All survey responses
4. High-value customer emails
5. Product reviews and ratings
```
Start with your highest-volume feedback channel first. Most teams see 80% of insights from their top 2-3 sources.
**Goal**: Build AI model that understands your product and customers
1. **Product Hierarchy** in [Custom Context](/pages/Settings/custom-context):
```
Product Structure:
Core Platform
├── Authentication & Access
│ ├── Login/Logout
│ ├── SSO Integration
│ └── Permission Management
├── Dashboard & Analytics
│ ├── Reporting
│ ├── Visualizations
│ └── Data Export
├── Workflow Automation
│ ├── Rule Builder
│ ├── Integrations
│ └── Notifications
└── Admin Controls
├── User Management
├── Settings
└── Billing
```
2. **Feedback Categories** ([Signals](/pages/Signals/understanding-signals)):
```
Feedback Types:
🐛 Bug Reports
- Broken functionality
- Performance issues
- Data inconsistencies
- Integration failures
✨ Feature Requests
- New capabilities
- Enhancement ideas
- Workflow improvements
- Integration wishes
😤 Pain Points
- Usability issues
- Missing functionality
- Confusing workflows
- Performance complaints
💚 Positive Feedback
- Feature appreciation
- Success stories
- Value realization
- Competitive advantages
```
3. **Impact Scoring Model**:
```
Feedback Impact Score:
Customer Factors (40%):
- Account revenue size
- User count affected
- Strategic importance
- Churn risk level
Frequency (30%):
- Number of mentions
- Unique customers affected
- Trend acceleration
- Cross-segment presence
Business Impact (30%):
- Revenue at risk
- Competitive disadvantage
- Market opportunity
- Strategic alignment
```
4. **Sentiment Analysis**:
* Frustration level (1-5)
* Urgency indicators
* Emotional intensity
* Satisfaction impact
**Goal**: Transform raw feedback into actionable insights automatically
1. **Feedback Processing Pipeline** ([Workflows](/pages/Workflows/workflow-automation)):
```
Daily Feedback Workflow:
Trigger: New feedback detected
Actions:
1. Capture and transcribe content
2. Extract key themes and requests
3. Categorize by product area
4. Calculate impact score
5. Identify similar feedback
6. Update trend analysis
7. Notify relevant PM
8. Create tracking item
```
2. **Intelligent Alerts**:
```
Real-time Notifications:
🚨 Critical (Immediate):
- Enterprise customer blocker
- Security/privacy concern
- Major bug affecting >10 users
- Competitive threat mentioned
⚠️ Important (Daily):
- Trending feature request (5+ in 24h)
- New pain point emerging
- Negative sentiment spike
- High-value customer feedback
ℹ️ Informational (Weekly):
- Feature adoption feedback
- Positive testimonials
- Minor enhancement ideas
- General suggestions
```
3. **Automated Synthesis**:
* Weekly theme summaries
* Monthly trend reports
* Quarterly insight decks
* Annual pattern analysis
4. **Stakeholder Distribution**:
* PM: Feature requests, bugs
* Engineering: Technical issues
* Design: UX feedback
* Leadership: Strategic insights
* Marketing: Testimonials
### Phase 2: Advanced Analysis (Weeks 2-4)
**Let AI find patterns you didn't know existed:**
1. **Automatic Theme Detection**:
```
AI-Discovered Themes This Week:
📊 "Dashboard Performance" (47 mentions)
Common phrases:
- "Takes forever to load"
- "Times out with large datasets"
- "Can't export when slow"
Related feedback:
- 31 support tickets
- 12 customer calls
- 4 churned accounts mentioned
Root cause hypothesis:
Database query optimization needed
for customers with >1M records
```
2. **Cross-Channel Correlation**:
```
Pattern Detection:
Sales Calls: "Need better reporting"
Support Tickets: "Can't customize dashboard"
Surveys: Low scores on "analytics"
Reviews: "Limited visualization options"
Insight: Same underlying need expressed
differently across channels
```
3. **Trend Analysis**:
```
Emerging Trends:
📈 Rising (Last 30 days):
- API rate limits (+340%)
- Mobile app requests (+180%)
- Real-time collaboration (+156%)
📉 Declining:
- Login issues (-67%)
- Data export problems (-45%)
- Performance complaints (-31%)
```
4. **Segment Patterns**:
* Enterprise vs SMB needs
* Industry-specific requests
* User role differences
* Geographic variations
Teams using AI theme discovery find 3.2x more actionable insights
**Turn qualitative feedback into quantitative decisions:**
1. **Revenue Impact Analysis**:
```
Feature Request: Advanced Permissions
Financial Impact:
- 12 Enterprise accounts requesting
- $2.4M ARR at risk without it
- 8 prospects mentioned in sales calls
- $1.8M potential new revenue
- 3 competitors already have it
Total Revenue Impact: $4.2M
Estimated Dev Effort: 3 sprints
ROI: 14:1 in Year 1
```
2. **Customer Health Correlation**:
```
Feedback Impact on Retention:
Customers mentioning "slow dashboards":
- Churn rate: 34% (vs 12% average)
- NPS: 23 (vs 47 average)
- Support tickets: 8.2/month (vs 2.1)
- Health score: 42 (vs 78)
Fixing this would prevent $3.1M churn
```
3. **Adoption Barriers**:
```
Feature Underutilization Analysis:
Workflow Automation (23% adoption):
Barriers from feedback:
1. "Too complex to set up" (67%)
2. "Don't understand benefits" (45%)
3. "No templates to start" (41%)
4. "Can't test safely" (38%)
Solutions prioritized by impact:
1. Add setup wizard (+31% adoption)
2. Create templates (+24% adoption)
3. Add sandbox mode (+19% adoption)
```
4. **Competitive Intelligence**:
* Feature gap analysis
* Switching trigger identification
* Win/loss correlations
* Market positioning insights
**Share insights effectively across the organization:**
1. **Executive Dashboards**:
```
C-Level Feedback Summary:
Customer Satisfaction Trend: ↑ 12%
Feature Request Backlog: $8.2M value
Critical Bugs Impact: $1.1M ARR
Competitive Mentions: ↑ 34%
Top 3 Strategic Priorities:
1. Mobile App (42% customers)
2. API Expansion (31% Enterprise)
3. Analytics Upgrade (67% power users)
```
2. **Engineering Prioritization**:
```
Technical Debt from Feedback:
Performance Issues:
- Dashboard queries: 2,341 mentions
- API timeouts: 1,892 mentions
- Search slowness: 1,234 mentions
Recommended Sprint Focus:
1. Optimize dashboard (3 story points)
2. Implement caching (5 points)
3. Upgrade search index (8 points)
```
3. **Design Team Insights**:
```
UX Feedback Patterns:
Navigation Confusion:
- "Can't find settings" (234 users)
- "Too many clicks" (189 users)
- "Lost in the app" (156 users)
Proposed Solutions:
- Simplified navigation (mockup attached)
- Contextual help system
- Onboarding improvements
```
4. **Customer Communication**:
* Feature status updates
* Feedback acknowledgment
* Roadmap influence proof
* Beta testing invitations
### Phase 3: Strategic Implementation (Month 2+)
**Connect feedback directly to product planning:**
1. **Data-Driven Prioritization**:
```
Q4 Roadmap Prioritization:
Feature: Real-time Collaboration
- Customer requests: 342
- Revenue impact: $5.2M
- Competitive necessity: High
- Dev effort: 6 weeks
- Score: 94/100
Feature: Advanced Analytics
- Customer requests: 234
- Revenue impact: $3.8M
- Competitive necessity: Medium
- Dev effort: 4 weeks
- Score: 87/100
```
2. **Feedback-Feature Mapping**:
```
Feature Development Tracking:
Mobile App (In Development):
- Original requests: 523
- Customers impacted: 234
- Expected satisfaction lift: +22 NPS
- Beta testers identified: 45
- Success metrics defined
```
3. **ROI Validation**:
```
Post-Launch Analysis:
API Rate Limit Increase:
- Requests addressed: 189
- Actual usage increase: 340%
- Customer satisfaction: +31 NPS
- Support tickets: -67%
- Revenue impact: +$2.3M expansion
ROI: 287% in 6 months
```
4. **Continuous Alignment**:
* Weekly feedback reviews
* Monthly roadmap updates
* Quarterly strategy alignment
* Annual vision validation
**Close the feedback loop systematically:**
1. **Automated Acknowledgment**:
```
Feedback Response Flow:
Immediate (< 1 hour):
"Thanks for your feedback about [feature].
We've logged this for our product team."
Weekly Update:
"Your request is being reviewed along with
47 similar requests from other customers."
Milestone Update:
"Great news! [Feature] is now in development.
Expected release: Q4 2024."
Launch Notification:
"[Feature] is now live! You asked, we delivered.
Here's how to get started..."
```
2. **Beta Program Management**:
```
Beta Tester Selection:
Criteria:
- Requested the feature
- High engagement score
- Willing to provide feedback
- Represents target segment
Current Beta: Mobile App
- 127 testers selected
- 89% activation rate
- 4.7/5 satisfaction
- 234 improvement suggestions
```
3. **Success Story Creation**:
```
Customer Quote Mining:
"The new dashboard is exactly what we
needed - loads 10x faster!" - TechCorp
"Finally, permissions that make sense
for our team structure" - GlobalRetail
"This feature alone justifies the
investment" - StartupInc
```
4. **Feedback Attribution**:
* Feature changelog credits
* Customer advisory boards
* Case study development
* Reference programs
**Extract strategic insights from feedback:**
1. **Competitor Mention Analysis**:
```
Competitive Feedback Insights:
CompetitorX mentioned 234 times:
- Better pricing model (45%)
- Specific feature we lack (34%)
- Easier onboarding (21%)
Win/Loss Correlation:
- Lost deals mentioning: 67%
- Saved deals mentioning: 81%
- Key differentiator: API flexibility
```
2. **Feature Gap Identification**:
```
Competitive Feature Analysis:
Must-Have Gaps (blocking deals):
1. Real-time collaboration
2. Advanced role permissions
3. White-label options
Nice-to-Have Gaps:
1. AI-powered insights
2. Mobile offline mode
3. Custom workflows
```
3. **Market Positioning**:
```
Positioning Insights from Feedback:
We win when customers value:
- Ease of use (mentioned 89%)
- Customer support (mentioned 76%)
- Reliability (mentioned 71%)
We lose when they prioritize:
- Advanced features (mentioned 64%)
- Price (mentioned 58%)
- Integrations (mentioned 43%)
```
4. **Strategic Recommendations**:
* Differentiation opportunities
* Partnership possibilities
* Acquisition targets
* Market expansion ideas
## Feedback Collection Playbooks
### 🎯 The "Feature Launch Validation" Play
**Situation**: Validate demand before building
1. Query: "How many customers requested \[feature concept]?"
2. Analyze similar feature requests
3. Identify customer segments interested
4. Quantify revenue impact
1. Create mockups or prototype
2. Share with requesting customers
3. Collect structured feedback
4. Iterate based on input
1. Select diverse tester group
2. Launch limited beta
3. Track usage and feedback
4. Refine before GA
1. Compare to initial requests
2. Measure adoption rates
3. Track satisfaction impact
4. Document lessons learned
Features validated through feedback have 73% higher adoption rates
### 🔥 The "Fire Drill Response" Play
**Situation**: Major issue surfaces through feedback
1. AI aggregates all related feedback
2. Quantify customers impacted
3. Calculate revenue at risk
4. Identify root cause patterns
1. Auto-create Slack channel
2. Pull in engineering, PM, support
3. Share feedback synthesis
4. Assign clear ownership
1. Acknowledge to affected users
2. Provide realistic timeline
3. Offer workarounds if possible
4. Send regular updates
1. Fix and validate solution
2. Notify all affected customers
3. Document for knowledge base
4. Prevent future occurrences
### 📊 The "Quarterly Planning" Play
**Situation**: Use feedback to drive quarterly roadmap
1. Generate quarterly feedback report
2. Identify top themes and trends
3. Quantify impact and effort
4. Map to strategic goals
1. Present data to leadership
2. Facilitate prioritization workshop
3. Balance feedback with strategy
4. Commit to roadmap items
1. Share what made the roadmap
2. Explain prioritization rationale
3. Set delivery expectations
4. Invite beta participation
1. Link features to feedback
2. Track delivery progress
3. Measure impact post-launch
4. Report back to customers
## Measuring Feedback Impact
### Key Performance Metrics
MetricBefore BuildBetterWith BuildBetterImprovementFeedback Captured\~500/month12,000/month+2,300%Time to Insight2-3 weeksReal-time-95%Feature Success Rate58%87%+50%Customer Satisfaction6.2/108.7/10+40%PM Time on Feedback40%10%-75%
### ROI Calculation
```
Annual ROI of BuildBetter Feedback Intelligence:
- Feature Success Rate: +29% = $12.3M saved on failed features
- PM Productivity: 30% time saved = $1.8M value
- Faster Time to Market: 45 days average = $4.2M revenue
- Reduced Churn: Better features = $3.7M retention
- Competitive Wins: Right features = $5.1M new revenue
Total Annual Impact: $27.1M
BuildBetter Investment: $120K
ROI: 22,483% (225x return)
```
## Best Practices
**Cast a Wide Net**: More feedback sources = more complete picture
**Trust the Patterns**: AI finds signals in noise humans miss
**Close the Loop**: Always inform customers of actions taken
**Quantify Everything**: Turn opinions into data-driven decisions
**Act Fast**: Quick response to feedback builds trust and loyalty
## Common Pitfalls
**Analysis Paralysis**: Don't wait for perfect data - act on clear signals
**Loudest Voice Wins**: Weight feedback by impact, not volume
**Feature Factory**: Not all feedback should become features
**Set and Forget**: Feedback systems need continuous refinement
## Quick Start Checklist
Launch comprehensive feedback intelligence in one week:
Connect top 3 feedback channels ([calls](/pages/Calls%20&%20Recordings/recording-methods), [tickets](/pages/Integrations/ticketing/zendesk), [CRM](/pages/Integrations/crm/salesforce))
Configure [feedback signals](/pages/Signals/understanding-signals) and categorization
Build [automated workflows](/pages/Workflows/workflow-automation) for processing
Create dashboards and train team on insights
Process first week of feedback and share findings
## Expert Tips
**The 48-Hour Rule**: Acknowledge all feedback within 48 hours, even if just to say "we're reviewing." Speed of response matters more than having answers.
**Segment Everything**: Enterprise feedback differs vastly from SMB. Always analyze by segment to avoid building for the wrong audience.
**Follow the Money**: Weight feedback by customer revenue, but don't ignore volume. Sometimes many small voices predict future enterprise needs.
**Celebrate Failures**: When features fail, the feedback telling you why is gold. Failed features teach more than successful ones.
## Resources & Next Steps
Download our proven categorization framework
Quantify the impact of better feedback systems
Connect all your feedback channels step-by-step
Get expert help designing your feedback system
***
*Based on analysis of 50M+ pieces of product feedback processed through BuildBetter. Individual results vary based on feedback volume and product complexity.*
# User Research Intelligence
Source: https://docs.buildbetter.ai/pages/Use Cases/product/user-research
Transform manual research into scalable insights with AI that processes 100x more data, finds hidden patterns, and delivers actionable findings in minutes
Product teams conduct hundreds of user interviews but struggle to extract insights at scale. 89% of research data goes unanalyzed, critical patterns remain hidden, and valuable insights die in recordings no one has time to review. BuildBetter transforms user research from a bottleneck into a superpower by automatically analyzing every conversation, surfacing non-obvious patterns, and ensuring insights drive real product decisions.
## The User Research Challenge
Traditional research methods can't keep pace with modern product development:
* 🎯 **Only 12% of user interviews** are thoroughly analyzed
* ⏰ **Researchers spend 75% of time** on transcription and tagging
* 📊 **67% of insights** are lost in unreviewed recordings
* 🔍 **Critical patterns missed** due to manual analysis limits
* 💸 **\$4.2M average cost** of building the wrong features
BuildBetter creates a research intelligence system that scales with your ambition.
## Core Research Intelligence Capabilities
Process hundreds of interviews automatically with perfect recall
AI finds connections and themes humans would never spot
Searchable knowledge base of all research findings
From scheduling to synthesis in one automated flow
## Implementation Guide
### Phase 1: Foundation (Week 1)
**Goal**: Create scalable system for capturing and analyzing research
1. **Connect Research Channels**:
* [User Interviews](/pages/Calls%20&%20Recordings/recording-methods): Auto-record all sessions
* [Usability Tests](/pages/Integrations/other/csv): Import test recordings
* [Survey Platforms](/pages/Text%20Data/importing-feedback): Integrate responses
* [Support Data](/pages/Integrations/ticketing/zendesk): Mine for insights
2. **Import Historical Research**:
```
Research Data Priority:
1. Last 6 months of user interviews
2. Recent usability test recordings
3. Survey responses (NPS, CSAT, custom)
4. Support conversations with insights
5. Previous research reports
```
3. **Configure Research Templates**:
```
Standard Research Protocols:
🎤 Discovery Interviews
- Jobs-to-be-done framework
- Pain point exploration
- Workflow mapping
- Solution validation
🧪 Usability Testing
- Task completion
- Think-aloud protocol
- Error identification
- Satisfaction metrics
📊 Concept Testing
- Feature validation
- Pricing research
- Positioning tests
- Competitive analysis
```
Start with your most recent research to see immediate value, then work backwards through historical data.
**Goal**: Build intelligent system that understands your product and users
1. **Research Taxonomy** in [Custom Context](/pages/Settings/custom-context):
```
User Segments:
👔 Enterprise Buyers
- Decision criteria
- Budget processes
- Success metrics
- Risk factors
💻 Power Users
- Advanced workflows
- Feature requests
- Productivity needs
- Integration requirements
🌱 New Users
- Onboarding friction
- Learning curve
- Initial value
- Activation barriers
🏢 Administrators
- Management needs
- Security concerns
- Compliance requirements
- Scaling challenges
```
2. **Insight Categorization** ([Signals](/pages/Signals/understanding-signals)):
```
Research Signal Types:
💡 Feature Discovery
- Unmet needs
- Workflow gaps
- Feature requests
- Competitive mentions
🚧 Friction Points
- Usability issues
- Confusion areas
- Error patterns
- Abandonment triggers
😊 Delight Moments
- Aha experiences
- Value realization
- Favorite features
- Advocacy triggers
💭 Mental Models
- How users think
- Terminology used
- Conceptual frameworks
- Expectation mismatches
```
3. **Pattern Detection Rules**:
```
High-Value Patterns:
- Repeated pain points (3+ mentions)
- Workflow commonalities
- Emotional responses
- Competitive comparisons
- Feature correlations
- Segment differences
```
4. **Insight Prioritization**:
* Frequency of mention
* Severity of impact
* Business value
* Implementation effort
* Strategic alignment
**Goal**: Scale research without scaling headcount
1. **Research Automation Pipeline** ([Workflows](/pages/Workflows/workflow-automation)):
```
End-to-End Research Workflow:
Pre-Interview:
1. Auto-schedule from Calendly
2. Send prep questions
3. Create interview guide
4. Set up recording
During Interview:
1. Auto-record session
2. Real-time transcription
3. Highlight key moments
4. Capture screenshots
Post-Interview:
1. Generate transcript
2. Extract key insights
3. Tag themes/patterns
4. Create summary
5. Update repository
6. Notify stakeholders
```
2. **Insight Processing**:
```
Automated Analysis:
Level 1: Raw Data
- Full transcript
- Video recording
- Screen captures
- Notes/artifacts
Level 2: Initial Analysis
- Key quotes extracted
- Themes identified
- Sentiment tagged
- Pain points listed
Level 3: Synthesis
- Pattern matching
- Cross-interview themes
- Segment insights
- Opportunity sizing
```
3. **Research Distribution**:
* Stakeholder summaries
* Insight feeds
* Weekly digests
* Quarterly reports
* Executive briefings
4. **Knowledge Management**:
* Searchable repository
* Tagged insights
* Cross-referenced findings
* Historical tracking
### Phase 2: Advanced Intelligence (Weeks 2-4)
**Find insights that only emerge across multiple research studies:**
1. **Meta-Analysis Engine**:
```
Cross-Study Pattern Detection:
Theme: "Dashboard Confusion"
Sources:
- 23 user interviews (Q3)
- 8 usability tests
- 156 support tickets
- 4 churned customer calls
Key Pattern:
Users expect dashboard to be customizable
but can't find customization options
Root Cause:
Settings buried in submenu instead of
directly on dashboard
Impact:
- 34% lower activation
- 2.3x more support tickets
- 12% impact on retention
```
2. **Longitudinal Insights**:
```
Trend Analysis Over Time:
Q1: "Need better reporting"
Q2: "Want custom dashboards"
Q3: "Frustrated with rigid layouts"
Q4: "Considering alternatives"
Insight: Feature request evolved into
churn risk due to inaction
```
3. **Segment Comparison**:
```
Enterprise vs SMB Patterns:
Enterprise Users:
- Focus on permissions (89%)
- Need audit trails (76%)
- Want SSO/SAML (92%)
SMB Users:
- Focus on ease (94%)
- Need templates (81%)
- Want quick setup (88%)
Implication: Need different
onboarding paths by segment
```
4. **Hidden Correlations**:
* Feature usage combinations
* Workflow sequences
* Problem cascades
* Success patterns
Cross-research analysis finds 4.3x more actionable insights than single-study analysis
**Anticipate user needs before they articulate them:**
1. **Behavioral Prediction**:
```
User Journey Prediction:
New User Profile: Marketing Manager
Predicted Path:
Day 1-3: Explore dashboards (87%)
Day 4-7: Try to create report (92%)
Day 8-14: Look for integrations (78%)
Day 15-30: Evaluate automation (65%)
Predicted Friction Points:
- Report builder complexity (Day 5)
- Integration limitations (Day 12)
- Permission confusion (Day 20)
Intervention Opportunities:
- Proactive report templates
- Integration wizard popup
- Permission guide email
```
2. **Need Anticipation**:
```
Feature Request Prediction:
Based on usage patterns, user likely
to request in next 30 days:
1. API access (82% probability)
- Heavy data exports
- Multiple integrations
- Power user behaviors
2. Team collaboration (74%)
- Multiple user invites
- Sharing attempts
- Permission questions
3. Advanced analytics (68%)
- Complex filtering
- Custom calculations
- Export frequency
```
3. **Churn Risk Indicators**:
* Research sentiment trends
* Feature request patterns
* Workaround behaviors
* Alternative evaluations
4. **Success Predictors**:
* Early value indicators
* Expansion signals
* Advocacy markers
* Retention factors
**Quantify the impact of research on product success:**
1. **Feature Success Tracking**:
```
Research-Driven Feature Performance:
Feature: Customizable Dashboards
Research Investment:
- 47 user interviews
- 12 usability tests
- 3 design sprints
Outcome Metrics:
- Adoption: 78% in 60 days
- Satisfaction: +34 NPS
- Retention impact: +12%
- Revenue impact: $2.3M
ROI: 2,847% return on research
```
2. **Decision Impact Analysis**:
```
Research vs Intuition Outcomes:
Research-Based Decisions:
- Success rate: 76%
- Adoption rate: 67%
- User satisfaction: 8.4/10
Intuition-Based Decisions:
- Success rate: 31%
- Adoption rate: 28%
- User satisfaction: 5.2/10
Difference: 2.4x better outcomes
```
3. **Speed to Insight**:
* Manual analysis: 2-3 weeks
* AI-powered: 2-3 hours
* Insight velocity: 56x faster
* Coverage: 100% vs 12%
4. **Research Efficiency**:
* Cost per insight: -89%
* Insights per study: +340%
* Time to decision: -67%
* Confidence level: +45%
### Phase 3: Strategic Research Operations (Month 2+)
**Build always-on research intelligence:**
1. **Automated Research Streams**:
```
Weekly Research Intelligence:
🎯 User Interview Pipeline
- 10-15 interviews auto-scheduled
- Segment rotation ensured
- Questions dynamically updated
- Insights continuously flowing
📊 Passive Research Collection
- Support call mining
- Feature usage analysis
- Search query patterns
- Error log insights
🔄 Feedback Loop Integration
- Product analytics correlation
- A/B test result integration
- NPS driver analysis
- Churn interview automation
```
2. **Dynamic Research Prioritization**:
```
AI Research Recommendations:
This Week's Priority Research:
1. New User Onboarding (Critical)
- 34% drop-off detected
- 5 interviews scheduled
- Focus: Day 1 experience
2. Power User Workflows (High)
- Feature request spike
- 8 interviews needed
- Focus: Advanced needs
3. Churned User Analysis (Medium)
- Pattern emerging
- 3 interviews scheduled
- Focus: Breaking point
```
3. **Insight Freshness**:
* Real-time insight updates
* Confidence decay tracking
* Re-validation triggers
* Trend monitoring
4. **Research Democratization**:
* Self-serve insight portal
* Natural language queries
* Automated report generation
* Stakeholder subscriptions
**Transform tactical insights into strategic intelligence:**
1. **Opportunity Mapping**:
```
Strategic Opportunity Analysis:
Opportunity: Workflow Automation
Research Evidence:
- 234 mentions across studies
- 78% of enterprise requests
- $4.2M revenue opportunity
- 3 competitors have it
User Jobs to be Done:
1. Eliminate repetitive tasks
2. Scale without hiring
3. Reduce human error
4. Increase velocity
Success Criteria from Users:
- Visual workflow builder
- Pre-built templates
- Error handling
- Audit trail
Strategic Recommendation:
Priority 1 for next quarter
```
2. **Persona Evolution**:
```
Dynamic Persona Updates:
Power User Persona Changes:
Q1 Profile:
- Technical background
- API-first approach
- Build custom solutions
Q4 Profile:
- Business background
- No-code preference
- Buy vs build mentality
Implication:
Simplify advanced features
Invest in visual builders
Create marketplace
```
3. **Market Intelligence**:
* Competitive mention tracking
* Alternative solution mapping
* Switching trigger analysis
* Differentiation opportunities
4. **Innovation Pipeline**:
* Future need prediction
* Technology possibility matching
* User readiness assessment
* Launch timing optimization
**10x your research capacity with AI:**
1. **Research Velocity Metrics**:
```
Research Capacity Scaling:
Before BuildBetter:
- 5 interviews/week
- 2 researchers needed
- 3 week analysis time
- 20% coverage
With BuildBetter:
- 50 interviews/week
- 1 researcher needed
- Same-day insights
- 95% coverage
Efficiency Gain: 30x
```
2. **Quality Amplification**:
```
Insight Quality Improvement:
Manual Analysis Limits:
- Surface-level themes
- Obvious patterns only
- Single-study view
- Researcher bias
AI-Enhanced Analysis:
- Deep pattern recognition
- Non-obvious connections
- Cross-study synthesis
- Bias reduction
Quality Score: +73%
```
3. **Stakeholder Reach**:
* Auto-generated summaries
* Role-specific insights
* Interactive dashboards
* Mobile access
4. **Global Research Ops**:
* Multi-language support
* Cultural pattern detection
* Time zone automation
* Regional insight clustering
## Research Intelligence Playbooks
### 🎯 The "Feature Validation Sprint" Play
**Situation**: Validate feature concept with users in 5 days
1. AI identifies ideal participants from database
2. Auto-schedule 15-20 interviews
3. Generate discussion guide
4. Prepare prototype/mockups
1. Run 7-10 interviews per day
2. AI processes in real-time
3. Surface emerging themes
4. Adjust questions dynamically
1. AI generates comprehensive analysis
2. Identify go/no-go signals
3. Surface key improvements
4. Size the opportunity
1. Present findings to stakeholders
2. Make feature decision
3. Share learnings broadly
4. Plan next steps
AI-powered validation sprints are 5x faster with 2x higher confidence in decisions
### 🔍 The "Hidden Pattern Hunt" Play
**Situation**: Find non-obvious insights across all research data
1. Set time range (e.g., last 6 months)
2. Select data sources to include
3. Define success metrics
4. Choose analysis depth
1. Process all research data
2. Identify recurring patterns
3. Find unexpected correlations
4. Surface outlier insights
1. Review top 10 patterns
2. Check against behavior data
3. Validate with stakeholders
4. Size impact potential
1. Prioritize opportunities
2. Create research roadmap
3. Design experiments
4. Assign owners
### 📊 The "Quarterly Insight Review" Play
**Situation**: Synthesize quarter's research for strategic planning
1. Compile all studies from quarter
2. Include passive research data
3. Add behavior analytics
4. Pull in support insights
1. Identify macro themes
2. Track sentiment changes
3. Map opportunity sizes
4. Assess readiness levels
1. Match insights to roadmap
2. Identify gaps/misalignments
3. Propose adjustments
4. Set success metrics
1. Create insight repository
2. Host learning sessions
3. Update personas
4. Plan next research
## Measuring Research Impact
### Key Performance Metrics
MetricBefore BuildBetterWith BuildBetterImprovementInterviews Analyzed/Month20200++900%Time to Insights2-3 weeks2-3 hours-98%Research Coverage12%95%+692%Feature Success Rate38%76%+100%Cost per Insight$2,400$120-95%
### ROI Calculation
```
Annual ROI of BuildBetter Research Intelligence:
- Failed Feature Prevention: 6 features × $500K = $3M saved
- Faster Time to Market: 45 days saved × $50K/day = $2.25M
- Research Efficiency: 80% time saved = $480K (2 FTEs)
- Better Feature Adoption: +38% success = $4.2M revenue
- Reduced Research Costs: Tool consolidation = $120K
Total Annual Impact: $9.97M
BuildBetter Investment: $120K
ROI: 8,208% (83x return)
```
## Best Practices
**Record Everything**: You never know which interview will contain the golden insight
**Mix Methods**: Combine interviews, tests, surveys, and behavioral data for complete picture
**Democratize Insights**: Make research searchable by everyone, not just researchers
**Close Loops**: Always follow up with participants about what you built from their input
**Measure Impact**: Track feature success back to research insights that drove decisions
## Common Pitfalls
**Analysis Paralysis**: More data ≠ better decisions. Set insight thresholds and move forward
**Confirmation Bias**: Let AI surface contradicting insights you might naturally ignore
**Research Theater**: Don't research things you've already decided. Be honest about openness
**Insight Hoarding**: Research that isn't shared is research wasted. Automate distribution
## Quick Start Checklist
Launch AI-powered research intelligence in one week:
Set up [interview recording](/pages/Calls%20&%20Recordings/recording-methods) and import historical data
Configure [research signals](/pages/Signals/understanding-signals) and analysis rules
Build [automated workflows](/pages/Workflows/workflow-automation) for processing
Create research templates and train team
Run first AI-analyzed study and share insights
## Expert Tips
**The 48-Hour Rule**: Analyze research within 48 hours while context is fresh. AI makes this possible at scale for the first time.
**Cross-Pollinate**: Your best insights come from unexpected connections. Let AI analyze support calls during feature research.
**Research Your Research**: Track which methods yield highest-impact insights and double down on what works.
**Small Bets, Fast**: Use rapid research sprints to validate many small bets rather than big bang studies.
## Resources & Next Steps
Download proven interview guides and protocols
Best practices for different research types
Calculate the impact of better research
Get expert review of your research ops
***
*Based on analysis of 1M+ user research sessions across BuildBetter customers. Results vary based on research volume and maturity.*
# ✨ Start Here: Track Customer Health & Prevent Churn
Source: https://docs.buildbetter.ai/pages/Use Cases/quick-start/cs-health-tracking
Go from reactive firefighting to proactive success—prevent your first churn in 1 week
You're the first CS hire. You have 10-30 customers. You respond to emails, fix issues, and hope everyone renews. You have no idea which customers are happy, which are at risk, or what's causing problems until someone threatens to churn.
**This guide shows you how to go from reactive to proactive in 1 week—and prevent your first churn.**
## The CS Reality
**Your current state**:
* 📧 Reactive: Waiting for customers to email with problems
* 🤷 Blindness: No idea who's happy vs at-risk
* 🔥 Firefighting: Every issue is a surprise
* 📊 No data: Can't prove your impact
* 😰 Renewal anxiety: Will they renew? Who knows!
**The problem**: By the time a customer complains, they've been unhappy for weeks. You're always playing catch-up.
## What You'll Achieve
In your first week:
* ✅ **Visibility**: Know which customers are happy vs at-risk
* ✅ **Early warning**: Spot problems weeks before customers complain
* ✅ **Proactive outreach**: Reach out before they have to email you
* ✅ **Data-driven**: Track sentiment, not guesses
* ✅ **Churn prevention**: Save your first at-risk customer
**Time investment**: 1 hour setup + 5 mins per customer call. **ROI**: Prevent 1-2 churns (potentially $50K-$500K saved).
## Prerequisites
BuildBetter account ([buildbetter.ai](https://buildbetter.ai))
Customer calls happening (onboarding, check-ins, support)
Email access to past support conversations (optional)
***
## Day 1: Capture Customer Conversations (30 minutes)
Start recording every customer interaction.
1. Go to **Settings** → **Integrations**
2. Connect Google Calendar or Outlook
3. Authorize BuildBetter
\[screenshot: Calendar integration settings]
Auto-record all external customer conversations:
1. **Settings** → **Organization** → **Bot Recording Rules**
2. Create rules:
**Rule 1: Onboarding Calls**
* Event title contains "onboarding" OR "kickoff"
**Rule 2: Check-ins**
* Event title contains "check-in" OR "QBR" OR "review"
**Rule 3: Support Calls**
* Event title contains "support" OR "help" OR "issue"
**Rule 4: All Customer Calls** (catch-all)
* Has external attendees + excludes sales/recruiting keywords
\[screenshot: Recording rules configured for customer success calls]
Set your bot name to something friendly like "Sarah's Notetaker" instead of "BuildBetter Bot" for better customer perception.
Have old recordings? Upload them now:
1. Click **Upload** (top right)
2. Drag and drop customer call recordings
3. Tag each with customer name
\[screenshot: Bulk upload interface with customer tags]
Even 3-5 past calls give you baseline data.
***
## Day 2: Import Support Data (20 minutes)
Get all customer communications in one place.
If using Zendesk, Intercom, or similar:
1. **Settings** → **Integrations**
2. Connect your support platform
3. Import last 3 months of tickets
\[screenshot: Zendesk integration settings]
BuildBetter extracts signals from ticket text automatically.
No support platform? Export emails:
1. Export customer emails to CSV (Date, Customer, Subject, Body)
2. **Upload** → **Import Text Data** → Choose CSV
3. Map columns (Customer Name, Content, Date)
\[screenshot: CSV upload mapping interface]
You don't need perfect data. Even partial history helps establish baselines.
Organize everything by customer:
1. Go to **Collections**
2. Create folder for each of your top 10 customers
3. Name format: "\[Company Name] - Account"
\[screenshot: Collections page with customer folders]
Later you'll automatically route calls to these folders.
***
## Day 3: First Health Check (30 minutes)
After you have 3-5 customer calls or support tickets processed, do your first health analysis.
1. Go to **Signals** in left navigation
2. You'll see insights from all customer interactions
\[screenshot: Signals page showing mix of problems, questions, praise from customers]
Signals automatically categorized:
* 😤 **Complaint**: Negative feedback
* 🐛 **Bug**: Issues reported
* ❓ **Question**: Areas of confusion
* 🎉 **Praise**: Positive feedback
* 💡 **Feature Request**: What they want
Find warning signs:
1. Click **Filter** in Signals
2. Select:
* **Sentiment**: Negative or Very Negative
* **Signal Type**: Complaint or Bug
* **Severity**: Critical or Urgent
\[screenshot: Filtered signals showing high-severity negative feedback]
**Red flags to watch for**:
* Multiple complaints from same customer
* Mentions of "considering alternatives"
* "Frustrated" or "disappointed" emotion tags
* Critical bugs unresolved
For each of your top customers:
1. Click **Filter** → **Company**: \[Customer Name]
2. Review all their signals
3. Note overall sentiment trend
\[screenshot: Signals filtered by specific customer showing sentiment distribution]
**Quick assessment**:
* Mostly 😊 positive = Healthy
* Mix of 😊 😐 = Monitor
* Mostly 😣 negative = At-Risk
Use **Chat** for instant analysis:
**Ask**: "Which customers seem at-risk based on recent interactions? Show me the warning signals."
\[screenshot: Chat response identifying 2-3 at-risk customers with specific signals]
The AI will:
* Analyze sentiment across customers
* Identify negative patterns
* Show exact concerning quotes
* Prioritize by severity
***
## Day 4: Proactive Outreach (1 hour)
Now you know who's at risk. Reach out before they churn.
For each at-risk customer, use BuildBetter to prepare:
1. Go to their customer folder (or filter by company)
2. Ask **Chat**: "Summarize all issues \[Customer Name] has raised. What are their main frustrations?"
\[screenshot: Chat providing summary of customer issues]
3. Review specific signals/complaints
4. Check what promises were made (action items from past calls)
Reach out with specific context:
**Email template**:
```
Hi [Name],
I was reviewing our recent conversations and noticed [specific issue they mentioned]. I wanted to schedule a quick call to make sure we're addressing this properly and see how things are going overall.
Does [time] work for a 30-minute check-in?
```
Mentioning the specific issue shows you're paying attention. Customers appreciate proactive outreach.
BuildBetter records automatically. Use your prep:
1. Acknowledge specific issues they raised
2. Show you've been listening (reference past conversations)
3. Ask: "What else should I know about?"
4. Create action plan
5. Set next check-in date
\[screenshot: Live call being recorded with real-time transcript]
BuildBetter processes automatically:
* Creates transcript
* Extracts action items
* Updates sentiment
* Identifies new concerns
Review the **Signals** tab on the call to see what was extracted.
\[screenshot: Call detail page with signals extracted]
**Real impact**: One of our CS managers saved a \$120K account this way. The customer said "No one from \[other vendors] has ever been this proactive."
***
## Day 5: Create Health Dashboard (30 minutes)
Visualize customer health so you can track it over time.
1. Go to **Clustering** in left navigation
2. Click **Customize Dashboard**
\[screenshot: Dashboard edit mode]
Create these visualizations:
**Card 1: Sentiment Over Time** (Line Chart)
* Shows if customers are getting happier or unhappier
* **Data**: Signals, grouped by week
* **Metric**: Average sentiment
\[screenshot: Line chart showing sentiment trend over 4 weeks]
**Card 2: Top Customer Issues** (Bar Chart)
* Most common problems across all customers
* **Data**: Signals, type = "Problem" or "Complaint"
* **Group by**: Topic/Theme
\[screenshot: Bar chart of top 5 customer issues]
**Card 3: At-Risk Customers** (Table)
* List of customers with negative sentiment
* **Data**: Signals with negative sentiment
* **Group by**: Company
* **Sort by**: Severity
\[screenshot: Table showing at-risk customer list]
**Card 4: Support Issue Trends** (Line Chart)
* Are issues increasing or decreasing?
* **Data**: Bug/Issue signals
* **Group by**: Week
\[screenshot: Support issue trend chart]
1. Click **Save Dashboard**
2. Name it "Customer Health Monitor"
3. Bookmark the URL
4. Check it every Monday morning
This dashboard updates in real-time as new calls and support tickets come in. No manual data entry.
***
## Day 6-7: Establish Baseline & Routine (Ongoing)
Build habits that keep you proactive.
### Your Weekly CS Routine
**Monday Morning** (10 mins):
Review:
* Sentiment trend (↗️ good, ↘️ bad)
* New at-risk customers
* Spike in support issues?
\[screenshot: Monday dashboard review showing weekly changes]
**Query**: "What are the top 3 customer issues from last week? Any customers showing concerning patterns?"
\[screenshot: Chat providing weekly summary]
Takes 2 minutes. Better than reading 50 support tickets.
Based on insights:
* At-risk customers: Schedule calls this week
* Recurring issues: Escalate to product team
* Happy customers: Ask for testimonial or referral
**After Every Customer Call** (5 mins):
1. Check signals extracted from call
2. Review action items
3. Mark any red flags
\[screenshot: Post-call signal review]
Tag the call with health indicator:
* 🟢 Healthy
* 🟡 Monitor
* 🔴 At-Risk
\[screenshot: Tagging interface with health status tags]
**Friday Afternoon** (15 mins):
Ask Chat:
**"Generate a summary of this week's customer interactions. What went well? What needs attention?"**
\[screenshot: End-of-week summary]
Click **Generate** → **Generate Document** → "Weekly CS Report"
\[screenshot: Weekly CS report document]
Share with:
* Product team (for feature requests/bugs)
* Leadership (for account health updates)
* Sales (for expansion opportunities)
***
## Set Up Automation (Bonus: 15 minutes)
Let BuildBetter do the monitoring for you.
Create workflow to notify you of concerning signals:
1. **Workflows** → **Templates**
2. Select "Signal to Webhook" or "Signal to Slack"
3. Configure:
* **Trigger**: New signal created
* **Condition**: "Customer signal with negative sentiment or critical severity"
* **Action**: Send to Slack channel #customer-health
\[screenshot: Workflow configuration for negative sentiment alerts]
You'll get notified within minutes when a customer expresses frustration, instead of finding out days later.
Route calls to customer folders automatically:
1. **Workflows** → **Templates** → "Recording to Folder"
2. Create workflow for each top customer:
* **Condition**: Call includes "\[Customer Name] attendee email"
* **Action**: Add to "\[Customer Name] - Account" folder
\[screenshot: Workflow for auto-filing customer calls]
Get automatic weekly reports:
1. **Settings** → **Scheduled Tasks**
2. **Create Task**:
* **Name**: Weekly CS Summary
* **Schedule**: Every Friday at 4 PM
* **Instructions**: "Analyze this week's customer calls and support interactions. Identify: 1) At-risk accounts, 2) Top issues, 3) Positive wins, 4) Action items for next week."
\[screenshot: Scheduled task configuration]
Every Friday, Chat will have a fresh summary waiting for you.
***
## Real Example: Maya's First Churn Save
**Background**: Maya joined as first CS hire. 15 customers. No system. Just email and hope.
**Day 1**: Set up BuildBetter, connected calendar, uploaded 6 old call recordings
**Day 2**: Imported 3 months of support emails (CSV)
**Day 3**: Reviewed signals. BuildBetter flagged "TechCorp" with 8 negative signals in 2 weeks:
* "Export feature broken" (mentioned 3 times)
* "No response from support" (2 times)
* "Disappointed" sentiment
* "Looking at alternatives" (🚨)
Maya checked—TechCorp hadn't renewed their support contract yet. Renewal in 45 days.
**Day 4**: Maya immediately reached out:
"Hi Jessica, I was reviewing our recent conversations and noticed you've been having issues with the export feature. I also see we haven't been responding fast enough. I want to schedule a call to fix this and make sure we're meeting your needs."
**The call**:
* Jessica was surprised: "No vendor has ever done this proactively"
* Maya acknowledged every issue specifically (BuildBetter had the quotes ready)
* Fixed export bug in 3 days
* Set up weekly check-ins
* Assigned dedicated support contact
**Day 7**: Maya's dashboard showed TechCorp sentiment: -6 → +3
**45 days later**: TechCorp renewed, expanded by 50%, became reference customer
**Maya's quote**: "BuildBetter helped me save an account I didn't even know was at risk. That one save paid for the tool for 10 years."
***
## Common CS Questions
**Be transparent**:
"I use a note-taking assistant so I can focus on our conversation instead of typing. It creates a transcript and action items for us. Is that okay?"
**Most say yes.** If not: Take notes manually, upload text to BuildBetter after.
**Segment by health tier**:
* **Tier 1**: Top 10 revenue customers (manual review weekly)
* **Tier 2**: Medium customers (dashboard monitoring)
* **Tier 3**: Small customers (automated alerts only)
BuildBetter scales with you. Dashboard shows all, you dive deep where it matters.
**85-90% accurate** in our testing.
**Pro tip**: Always verify critical signals by reading the quote or listening to the clip. Don't auto-respond to sentiment alone.
\[screenshot: Signal with quote verification]
**Yes, but carefully**:
❌ "Our AI detected you're unhappy"
✅ "I noticed you mentioned \[specific issue] last week. Want to talk about it?"
Frame it as attentive listening, not surveillance.
**Manual export works fine**:
1. Export support tickets to CSV monthly
2. Upload to BuildBetter
3. AI extracts signals from ticket text
Not real-time, but better than nothing.
***
## Your 7-Day CS Transformation Checklist
### Day 1: Setup
Connect calendarCreate recording rules for customer callsUpload past customer call recordings
### Day 2: Data Import
Connect support platform OR upload support emails (CSV)Create collections for top 10 customers
### Day 3: First Analysis
Review auto-extracted signalsFilter for at-risk signals (negative sentiment, high severity)Use Chat to identify at-risk customersCreate at-risk customer list
### Day 4: Proactive Outreach
Prepare for at-risk customer calls using Chat summariesSchedule and conduct check-in callsDocument action items from calls
### Day 5: Dashboard
Build customer health dashboard (4 key charts)Bookmark dashboard for weekly review
### Day 6-7: Establish Routine
Do Monday morning dashboard reviewSet up Friday weekly summaryCreate automation workflows (alerts, routing, summaries)
***
## What's Next?
### After Your First Week
Build advanced multi-dimensional health scores (for 30+ customers)
Generate executive business reviews automatically
Predict renewal outcomes 90 days in advance
Analyze patterns across hundreds of support tickets
### Make It a Habit
**Daily** (5 mins):
* Quick glance at Signals
* Star anything concerning
**Weekly** (20 mins):
* Monday: Dashboard review
* Friday: Generate weekly summary
* Proactive outreach to 2-3 customers
**Monthly** (1 hour):
* Deep dive on health trends
* Update at-risk strategies
* Celebrate saves and wins
Great CS isn't about fixing problems faster—it's about knowing about them sooner. BuildBetter gives you weeks of head start.
***
## Resources
See this workflow in action (6 min)
Proven customer check-in frameworks
Get personalized CS setup help (free)
Join CS leaders using BuildBetter
***
**Turn customer success from reactive firefighting into proactive relationship building.**
The best CS teams don't wait for customers to complain. They spot patterns, reach out early, and prevent issues before they become churn. Now you can too.
Based on data from 1,000+ CS teams using BuildBetter. Teams using proactive health monitoring have 12-15% higher retention than reactive teams.
# ✨ Start Here: Find PMF in Your First 100 Conversations
Source: https://docs.buildbetter.ai/pages/Use Cases/quick-start/founder-first-conversations
Find product-market fit faster by turning every customer conversation into searchable, shareable intelligence
You're a founder in the trenches: talking to customers, pitching investors, fixing bugs, and making sales calls. Every conversation has valuable insights, but they're lost the moment you hang up. Notes scattered across Notion, memory fading, patterns invisible.
**This guide shows you how to capture every conversation and find product-market fit signals in your first 100 conversations—without hiring a research team.**
## The Founder's Dilemma
You're wearing every hat:
* 🎤 **Customer Discovery**: "What problem are we solving?"
* 💰 **Sales Calls**: "Will anyone pay for this?"
* 🐛 **Support**: "Why isn't this working?"
* 💡 **Investor Pitches**: "What traction do we have?"
Each conversation contains gold, but you can't remember what Customer #12 said vs Customer #47. You're drowning in conversations, starving for insights.
## What You'll Achieve
By following this guide through your first 100 conversations:
* ✅ **Every conversation captured** and searchable forever
* ✅ **Product-market fit signals** identified objectively
* ✅ **Top 3 problems** quantified (not guessed)
* ✅ **Pivot or persevere decisions** backed by data
* ✅ **Investor updates** with real customer quotes
* ✅ **Team alignment** on what actually matters
**Time investment**: 1 hour setup, then 0 extra time per conversation. Analysis that took 10+ hours now takes 15 minutes.
## Prerequisites
BuildBetter account (free for early-stage teams at [buildbetter.ai](https://buildbetter.ai))
Talking to customers (or about to start)
Using Zoom, Google Meet, Teams, or phone calls you can record
***
## Step 1: Capture EVERYTHING (30 minutes setup)
The biggest mistake founders make: being selective about what to record. Record ALL customer-facing conversations. You never know which call will have the insight that changes everything.
### Set Up Auto-Recording
\[screenshot: Calendar integration settings page]
1. Go to **Settings** → **Integrations**
2. Connect Google Calendar or Outlook
3. Authorize BuildBetter
\[screenshot: Calendar successfully connected confirmation]
Create separate rules for different conversation types:
**Rule 1: Customer Conversations**
* Go to **Settings** → **Organization** → **Bot Recording Rules**
* Create rule: Event title contains "customer" OR "user" OR "interview"
\[screenshot: Bot recording rule for customer calls]
**Rule 2: Sales Calls**
* Create rule: Event title contains "demo" OR "call" AND attendee is external
**Rule 3: Everything External** (recommended)
* Create rule: Has external attendees (anyone outside your domain)
* Exclude internal meetings automatically
\[screenshot: Multiple recording rules configured]
Record everything external, skip everything internal. You can always delete a recording, but you can't recreate a lost conversation.
Have recordings from previous calls? Upload them now:
1. Click **Upload** in top navigation
2. Drag and drop audio/video files
3. Tag each upload:
* "Customer Discovery"
* "Sales Call"
* "Support Call"
* "Investor Call"
\[screenshot: Bulk upload interface with files tagged by type]
Start your first 100 counter from today. Past calls are bonus context.
### Manual Recording for Ad-Hoc Calls
For calls not on your calendar:
1. Get the meeting link
2. Click **Upload** → **Join Call** in BuildBetter
3. Paste link and click **Join Meeting**
\[screenshot: Join call dialog]
Bot joins as a participant. Takes 10 seconds.
For phone conversations:
* Use phone's voice recorder
* Upload audio file afterward
* Or use BuildBetter desktop app to record computer audio
\[screenshot: Upload audio file interface]
***
## Step 2: Tag & Organize by Type (10 minutes)
Not all conversations are equal. Organize them so you can analyze by type.
\[screenshot: Calls list with tags applied - "Customer Discovery", "Sales", "Support", "Investor"]
1. Go to **Collections** (in left navigation)
2. Create folders:
* 📊 "Customer Discovery"
* 💰 "Sales Calls"
* 🐛 "Support & Bugs"
* 💼 "Investor Conversations"
* 🤝 "Partner Discussions"
\[screenshot: Collections page with folders created]
Automatically sort calls into folders:
1. Go to **Workflows** → **Templates**
2. Select "Recording to Folder by Title"
3. Create workflows:
* Title contains "customer" → Customer Discovery folder
* Title contains "demo" → Sales Calls folder
* Title contains "support" → Support folder
\[screenshot: Workflow template for auto-filing calls]
New calls auto-organize. Old calls require manual drag-and-drop into folders.
For calls already recorded:
1. Go to **Calls & Recordings**
2. Select multiple calls (checkbox)
3. Click **Add to Collection**
4. Choose folder
\[screenshot: Bulk select calls interface]
***
## Step 3: The First 10 Conversations (Your PMF Baseline)
After your first 10 customer discovery calls, do your first analysis.
1. Go to **Signals** in left navigation
2. Filter by:
* **Signal Type**: Problem
* **Collection**: Customer Discovery folder
* **Date**: Last 2 weeks
\[screenshot: Signals filtered to show problems from customer discovery calls]
**Look for**:
* Same problem mentioned by 3+ people (using different words)
* Problems people brought up WITHOUT you asking
* Emotional reactions (😣 negative sentiment)
Open **Chat** and ask:
**"Based on my customer discovery calls, what is the single biggest problem customers are facing? Show me quotes from multiple customers."**
\[screenshot: Chat response showing the top problem with customer quotes and citations]
The AI will:
* Analyze all your calls
* Find the most-mentioned problem
* Show you exact customer quotes
* Count how many customers mentioned it
**PMF Signal**: If 7+ out of 10 customers mention the SAME core problem unprompted, you're onto something.
Make a simple dashboard to track signal strength:
1. Go to **Clustering**
2. Click **Customize Dashboard**
3. Add cards:
* **Metric Card**: Count of "Problem" signals
* **Bar Chart**: Top 5 problems by mention count
* **Sentiment Ridge Chart**: How customers feel about these problems
\[screenshot: PMF tracker dashboard showing problem frequency and sentiment]
Bookmark this dashboard. Check it every 10 calls.
***
## Step 4: Conversations 11-50 (Validate & Iterate)
You have a hypothesis. Now validate it.
As you start pitching your solution, track:
**Filter Signals for**:
* Type: "Interest" (buying signals)
* Type: "Objection" (concerns)
* Type: "Question" (confusion)
\[screenshot: Signals view filtered to show Interest, Objection, and Question types]
Every Friday, ask Chat:
**"What did I learn this week from customer conversations? What patterns emerged?"**
\[screenshot: Chat providing weekly summary with key themes]
Then ask follow-ups:
* "Are customers excited about our solution?"
* "What objections came up most?"
* "Did anyone mention competitors?"
As you talk to different customer segments, track which resonate:
1. In **Calls & Recordings**, add tags:
* Enterprise
* SMB
* Individual
* Early Adopter
* Mainstream
\[screenshot: Call detail with customer segment tags]
2. Filter signals by segment to see different pain points
**Example discovery**: "Enterprise customers care about security. SMBs care about price. Different products."
Track every objection:
1. Filter Signals: Type = "Objection"
2. Group by theme
3. Use Chat: **"Generate a document summarizing all objections and suggested responses"**
\[screenshot: Generated document showing objection library]
Share with your team. Everyone uses same responses.
***
## Step 5: Conversations 51-100 (Scale Insights)
You're talking to customers every week. Now make insights automatic.
Never manually analyze again:
1. Go to **Settings** → **Scheduled Tasks**
2. Click **Create Task**
3. Configure:
* **Name**: "Weekly Customer Insights"
* **Schedule**: Every Friday at 5 PM
* **Instructions**: "Analyze all customer discovery calls from this week. What are the top 3 insights? What changed from last week? Generate a summary."
\[screenshot: Scheduled task configuration]
Every Friday at 5 PM, you'll get a fresh analysis in Chat.
\[screenshot: Automated weekly summary in Chat]
Add time-series charts to your dashboard:
* **Line Chart**: Customer sentiment over time
* **Bar Chart**: Problem mentions by week
* **Metric**: Percentage mentioning your core problem
\[screenshot: Dashboard with time-series showing sentiment trending up]
**Watch for**:
* ↗️ Sentiment going up (you're solving real problems)
* ↘️ Objections going down (you're addressing concerns)
* ↗️ Interest signals increasing (stronger PMF)
Generate investor-ready insights:
Ask Chat:
**"Create an investor update based on my last 50 customer conversations. Include: top problems, validation signals, common objections, and customer quotes."**
\[screenshot: Generated investor update document with customer data]
Click **Generate** → **Generate Document** → Choose "Investor Update" template
**Include**:
* "23 out of 50 customers mentioned X problem unprompted"
* Customer quotes (with permission)
* Objection trends
* Willingness-to-pay signals
***
## Pivot or Persevere? (The 50-Call Checkpoint)
After 50 conversations, make data-driven decisions.
### Signs You've Found PMF
**70%+ of customers** mention the same core problem unprompted
**Sentiment trends positive** over time (customers getting more excited)
**Objections declining** or you have good answers for all of them
**Customers ask "when can I buy?"** without you pitching
**Word-of-mouth starting**: Customers refer other customers
\[screenshot: PMF dashboard showing all green metrics]
### Signs You Need to Pivot
**Less than 30% of customers** mention your core problem
**Sentiment trending down** or staying flat over time
**New objections emerging** faster than you can address them
**Price objections dominant**: "Too expensive" more common than "when can I start?"
**Inconsistent feedback**: Every customer wants something different
\[screenshot: Dashboard showing red flags - declining sentiment, scattered problems]
### The Pivot Analysis
Ask Chat:
**"Based on all my customer conversations, should we pivot? What alternative problems or solutions were mentioned?"**
\[screenshot: Chat analysis suggesting pivot based on patterns in data]
The AI will find:
* Alternative problems customers mentioned
* Segments showing stronger interest
* Adjacent use cases with better signals
* Competitor mentions (what ARE they using?)
***
## Real Example: Alex's Journey to PMF
**Weeks 1-4** (First 20 conversations):
* Hypothesis: Small teams need better project management
* Reality: 3 different problems mentioned, no clear pattern
* Dashboard: 😐 Sentiment neutral, scattered feedback
**Week 5** (Conversation #23):
BuildBetter flagged a pattern: 7/23 customers mentioned "async communication" as a pain point when Alex asked about "team collaboration." Alex hadn't even noticed.
**Weeks 5-8** (Conversations 24-45):
* Pivoted questions to focus on async communication
* 18/22 new customers validated it as major problem
* Dashboard: 😊 Sentiment turning positive
* Objections consistent and addressable
**Weeks 9-12** (Conversations 46-75):
* Started pitching solution, not just asking questions
* 12 customers said "when can I buy?"
* Closed first 3 paying customers
* Investor update: "75 customer conversations, 68% mentioned async as top problem, 16% already paying"
**Result**: Pre-seed round closed. PMF found at conversation #67, not #200.
**Alex's quote**: "BuildBetter cut my time-to-PMF in half. I would have spent 6 more months building the wrong thing."
***
## Common Founder Questions
**Yes**, but mark them "Private" in settings. Useful for tracking:
* Which pitch resonated
* Common investor objections
* Questions you couldn't answer
Don't share investor call content without permission.
Quality > quantity. 25 high-quality conversations beat 100 casual chats.
Look for:
* People with the problem right now
* Paying for a solution (even if it's bad)
* Willing to give honest feedback
Even 15-20 conversations can reveal PMF signals if they're the right people.
BuildBetter tracks "bias" in signals. Look for:
* ⚠️ High bias warnings on signals
* Leading questions you asked
* Customers telling you what you want to hear
Filter signals: **Bias: Low** to see unbiased feedback.
\[screenshot: Signals filtered by low bias]
**Build when**:
* 60%+ of customers describe the SAME problem in their own words
* You can articulate the problem better than they can
* Customers are already trying to solve it (even with bad solutions)
* You have a differentiated insight about the solution
Keep doing discovery calls WHILE building (10/week minimum).
Yes! Create a separate collection for "Internal" and "External."
**Record**:
* Sprint planning (track decisions)
* Retros (find recurring issues)
* All-hands (commitments made)
**Don't record**:
* 1:1s with employees
* Confidential HR discussions
* Sensitive strategy talks
Always get team consent for internal recording.
***
## Your First 100 Conversations Checklist
### Conversations 1-10
Set up auto-recordingUpload any past call recordingsCreate collections for each conversation typeReview first signals manuallyCreate initial PMF tracker dashboard
### Conversations 11-30
Ask Chat: "What's the top problem?"Create objection libraryTag calls by customer segmentWeekly review every Friday
### Conversations 31-50
Set up automated weekly reportsAdd sentiment trend charts to dashboardDo first pivot/persevere checkpointGenerate investor update document
### Conversations 51-75
Segment analysis (which customers resonate most?)Refine your pitch based on dataTrack willingness-to-pay signalsShare insights with co-founder/team
### Conversations 76-100
Comprehensive PMF analysisGenerate customer quote library for websiteCreate sales playbook from successful callsBuild roadmap based on top feature requests
***
## What's Next?
### After Your First 100 Conversations
As your team grows, make insights accessible to everyone
Connect support tickets, NPS surveys, and feedback forms
Turn successful sales calls into repeatable playbooks
Use customer intelligence for quarterly planning and roadmapping
### Make It a Habit
**Daily** (5 mins):
* Glance at Signals from today's calls
* Star anything surprising
**Weekly** (15 mins):
* Review automated summary
* Update PMF tracker
* Share 1 key insight with team
**Monthly** (30 mins):
* Generate monthly report
* Pivot/persevere checkpoint
* Update investor deck
The best founders never stop talking to customers. BuildBetter makes it sustainable by removing the analysis burden. Talk more, analyze less, learn faster.
***
## Resources
5-min video walkthrough (worth watching)
Proven customer discovery question framework
Get personalized help (free for early-stage)
Join 500+ founders using BuildBetter
***
**The path to PMF is paved with customer conversations. Make every conversation count.**
Your first 100 conversations will teach you more than 1000 hours of market research. Capture them, analyze them, and let the data guide your decisions.
This guide is based on analyzing 10,000+ founder journeys. The patterns are real. Trust the data, not your gut.
# ✨ Start Here: Understand Your ICP & Customer Language
Source: https://docs.buildbetter.ai/pages/Use Cases/quick-start/marketing-icp
Stop guessing at messaging—learn how customers actually talk about their problems in 1 week
You're marketing a product, but you're not sure if your messaging resonates. Your homepage uses words like "innovative" and "streamlined." Your target customers use words like "this is broken" and "I'm drowning in spreadsheets."
**The disconnect**: Marketing speaks marketing. Customers speak human. Your job is to translate.
**This guide shows you how to listen to 10-20 customer conversations and rewrite your messaging using their actual language—in 1 week.**
## The Marketing Problem
**You're writing in a vacuum**:
* 🎭 Guessing at pain points (not hearing them)
* 📝 Using industry jargon (customers don't understand)
* 🎯 Targeting "everyone" (because you're not sure who cares most)
* 💬 Value props that sound good in meetings (but don't convert)
* 🤷 No idea which features to highlight (or in what order)
**The reality**: Your sales team talks to customers every day. They know what works. Marketing never hears those conversations.
## What You'll Achieve
In your first week with BuildBetter:
* ✅ **Hear 10-20 real customer conversations** (not surveys)
* ✅ **Extract actual customer language** for pain points
* ✅ **Identify who your ICP actually is** (based on data, not guesses)
* ✅ **Rewrite homepage copy** using customer words
* ✅ **Create content pipeline** from customer stories
* ✅ **Align with sales** on messaging that converts
**Time investment**: 3 hours Week 1 for setup and analysis. Then 30 mins/week ongoing. **Result**: 20-40% improvement in conversion rates.
## Prerequisites
BuildBetter account ([buildbetter.ai](https://buildbetter.ai))
Access to sales or customer success team (to get recordings)
Willingness to kill your darlings (some marketing copy won't survive contact with customers)
***
## Day 1: Get Access to Customer Conversations (30 minutes)
Marketing's biggest mistake: Creating content without listening to customers. Fix that today.
**What to ask**:
"Hey \[Sales Leader], I'm trying to improve our messaging by understanding how customers actually talk about their problems. Could I get access to some recent sales calls?"
**What you need**:
* 10-15 discovery calls or demos
* Mix of won and lost deals (if possible)
* Variety of customer types/segments
**Pitch to sales**: "This will help me create content that makes YOUR job easier. Better leads, more qualified, already speaking our language."
Sales will say yes when they see the benefit.
**Option A: Sales uses BuildBetter already**
* Get added to their workspace
* Get access to "Sales Calls" collection
* Start listening immediately
**Option B: Sales has recordings elsewhere** (Gong, Chorus, etc.)
* Export 10-15 call recordings
* Upload to your BuildBetter workspace
* BuildBetter will process them
**Option C: Sales doesn't record**
* Set up BuildBetter for sales team (see [Sales Recording Guide](/pages/Use%20Cases/quick-start/sales-record-learn))
* OR: Sit in on next 5-10 calls as silent observer
* OR: Interview the sales team about common pain points (not ideal, but better than nothing)
\[screenshot: Upload interface for importing sales call recordings]
1. Click **Upload** in BuildBetter
2. Drag and drop call recordings
3. Tag each upload:
* "Sales - Won Deal"
* "Sales - Lost Deal"
* "Sales - In Progress"
* "Discovery Call"
* "Demo Call"
\[screenshot: Bulk upload with tags applied]
Processing takes 10-30 minutes per hour-long recording. Start the upload and come back later.
***
## Day 2: Listen to Your Customers (2 hours)
Time to hear what they ACTUALLY say.
Start with successful calls (won deals or happy customers):
1. Go to **Calls & Recordings**
2. Filter by tag: "Sales - Won Deal"
3. Pick 3 calls from different customer types/sizes
\[screenshot: Calls list filtered to won deals]
As you listen, note:
**Pain Point Language**:
* What words do THEY use to describe their problem?
* What emotion comes through? (frustration, desperation, hope)
* What's the trigger that made them look for a solution?
**Value Perception**:
* Which features made them excited?
* What outcome do they want? (not features, outcomes)
* What alternatives did they consider?
* Why did they choose you?
**Their World**:
* What's their role/title?
* What's their day-to-day like?
* Who else is involved in the decision?
* What does "success" look like to them?
\[screenshot: Call playback with transcript showing customer language]
**Don't take notes manually.** BuildBetter's signals already extracted the key points. Just listen for tone, emotion, and exact phrasing.
After listening, check what BuildBetter found:
1. Open each call
2. Scroll to **Signals** section
3. Filter for:
* Type: "Problem" (their pain points)
* Type: "Need" (what they're trying to accomplish)
* Type: "Praise" (what they loved)
* Type: "Objection" (concerns they had)
\[screenshot: Call signals showing problems and needs extracted]
BuildBetter already pulled out the key quotes. You're looking for patterns.
***
## Day 3: Extract Customer Language (1 hour)
Turn listening into actionable insights.
1. Go to **Signals**
2. Filter: Signal Type = "Problem"
3. Read through them all
\[screenshot: All problem signals from customer calls]
**Look for**:
* Same problem mentioned by 3+ customers (using different words)
* Emotional intensity (😣 = strong pain)
* Urgency markers ("we need this now", "killing us")
**Create document**: Open notepad and copy the TOP 3 most-mentioned problems with exact customer quotes.
Use AI to find patterns you might miss:
**Query**: "Based on all these sales calls, how do customers describe their pain points? Give me their exact language, not summarized."
\[screenshot: Chat response with customer pain point language]
The AI will show:
* Common phrases customers use
* Emotional language
* Specific words that appear repeatedly
* How THEY describe the problem (not how you describe it)
**Example output**:
```
Top 3 Pain Point Descriptions (Customer Language):
1. "Drowning in spreadsheets" (5 mentions)
- "Everything is in a million spreadsheets"
- "I spend 10 hours a week copying data between sheets"
- "Spreadsheets are killing our team"
2. "No single source of truth" (4 mentions)
- "Everyone has their own version"
- "We can't trust the data"
- "Don't know what's real anymore"
3. "Manual work that shouldn't exist" (3 mentions)
- "This should be automated"
- "Why are we doing this by hand in 2024?"
- "Wasting time on mindless tasks"
```
**Query**: "Who are our most successful customers based on these calls? What do they have in common?"
\[screenshot: Chat analyzing customer commonalities]
Look for patterns in:
* **Company size**: "5-50 employees" (not 1-1000)
* **Industry**: "B2B SaaS" (not "all companies")
* **Role**: "Operations Manager" (not "anyone")
* **Tech stack**: "Uses Salesforce, no data warehouse" (specific)
* **Trigger event**: "Just raised funding and scaling" (timing)
**ICP Signal**: If 70%+ of your best customers share 3+ characteristics, that's your ICP. Not the broad persona you made up.
1. Go to **Signals**
2. Filter: Signal Type = "Praise" AND Sentiment = Positive
3. Click **Export** → **CSV**
\[screenshot: Export signals to CSV]
You now have a library of customer quotes for:
* Testimonials
* Case studies
* Website copy
* Sales decks
* Social proof
All from real customers, real language.
***
## Day 4: Rewrite Your Messaging (2 hours)
Use customer language to rewrite marketing copy.
**❌ Before** (Marketing speak):
```
"Streamline your workflow with our innovative platform"
```
Why this fails: Vague, jargon, everyone says this.
**✅ After** (Customer language):
```
"Stop drowning in spreadsheets. One place for all your data."
```
Why this works: Used their exact words. Specific pain point. Clear outcome.
\[screenshot: Homepage hero comparison showing before/after]
**How to rewrite**:
1. Pull up top pain points from Day 3
2. Use their words for the problem
3. Use their words for the outcome they want
4. Drop the jargon
**❌ Before**:
```
✓ Real-time synchronization
✓ Advanced analytics
✓ Enterprise-grade security
```
Why this fails: Features, not outcomes. Tech specs don't sell.
**✅ After** (From customer conversations):
```
✓ "One source of truth your whole team can trust"
✓ "Stop wasting 10 hours/week copying data"
✓ "Know your data is safe when you scale"
```
Why this works: Outcomes they mentioned. Their timeframes. Their fears.
**How to extract**:
* **Query Chat**: "What outcomes did customers want from our product?"
* Use their language
* Include specifics (timeframes, numbers)
**❌ Before**:
```
"Automated data pipelines"
```
**✅ After**:
```
"Automated data pipelines
So you can stop copying data between spreadsheets and get back to real work."
```
**Pattern**: \[Feature] + "So you can \[outcome from customer conversations]"
Use your ICP findings from Day 3:
**❌ Before**:
```
"For growing companies"
```
Too vague. That's everyone.
**✅ After**:
```
"Built for Operations teams at 10-100 person B2B companies
who are scaling fast and drowning in manual data work"
```
Specific = converts better. Broad = converts worse.
***
## Day 5: Create Content Pipeline (1 hour)
Turn customer conversations into content ideas.
**Query Chat**: "Based on customer conversations, what are 10 blog topics that would resonate with our ICP?"
\[screenshot: Chat generating blog topic ideas]
**Example output**:
```
Blog Topics (from customer pain points):
1. "5 Signs You've Outgrown Spreadsheets (and what to do about it)"
- Based on: 7 customers mentioned spreadsheet chaos
2. "How [Customer Company] Saved 15 Hours/Week on Data Entry"
- Based on: Specific customer success story
3. "Why Your Team Can't Trust Your Data (And How to Fix It)"
- Based on: "No single source of truth" pain point
4. "The Hidden Cost of Manual Data Work in 2024"
- Based on: Multiple customers calculating time wasted
```
Every topic comes from REAL customer problems. No guessing.
**Filter signals**:
* Type: "Praise"
* Sentiment: Very Positive
* Contains: Specific outcomes, numbers, ROI
\[screenshot: Filtered signals showing success stories]
**Look for quotes like**:
* "This saved us 20 hours a week"
* "We went from X to Y in Z days"
* "Best decision we made this year"
* "Already paid for itself"
These are your case studies. Email these customers for permission to feature them.
Pull customer quotes and turn them into social posts:
**Example**:
```
From signals: "Why are we doing this by hand in 2024?"
- Customer quote about manual work
Social post:
---
Still copying data between spreadsheets in 2024?
You're not alone. We talked to 50+ Ops teams.
On average, they spend 12 hours/week on manual data work.
That's 624 hours per year.
Per person.
[Learn how to get those hours back] → [link]
---
```
Authentic. Data-backed. From real customers.
**Filter signals**: Type = "Objection"
\[screenshot: Common objections from sales calls]
Common objections become FAQ content:
**Objection**: "Too expensive"
**Content**: "ROI Calculator: How Much Is Manual Data Work Costing You?"
**Objection**: "We already have \[competitor]"
**Content**: "Why Teams Switch from \[Competitor] to \[You]" (use actual reasons from calls)
**Objection**: "Seems complicated"
**Content**: "5-Minute Setup: How \[Customer] Got Started in One Afternoon"
***
## Day 6-7: Align with Sales & Test (Ongoing)
Make sure your new messaging actually works.
Create summary document:
**Ask Chat**: "Generate a summary of customer pain points, outcomes, and language we should use in messaging. Format it for the sales team."
\[screenshot: Generated sales enablement document]
**Share in Slack or email**:
```
Hey Sales Team 👋
I analyzed 20 of your customer calls. Here's what I learned:
🎯 Our ICP (based on who converts best):
[Your findings]
💬 How customers describe their pain points:
[Top 3 with quotes]
✅ What outcomes they care about most:
[Top 3 outcomes]
I'm updating our website and content to match this language.
Let me know if you see better results!
```
**Homepage test**:
* Variant A: Old messaging
* Variant B: Customer language messaging
**Hypothesis**: Customer language will convert 20-40% better
Track:
* Click-through rate on CTA
* Sign-ups
* Demo requests
* Time on page
\[screenshot: A/B test setup example]
Ask sales team:
"When prospects visit our site now, do they seem more qualified? Are they using our language?"
**Good signs**:
* Prospects mention pain points you highlight
* Less time explaining what you do
* Better questions (they already get it)
* Shorter sales cycles
**Weekly routine** (30 mins):
1. Review 2-3 new sales calls
2. Check for new language/pain points
3. Update your customer quote library
4. Adjust messaging quarterly based on trends
\[screenshot: Weekly chat query for new insights]
**Ask Chat weekly**:
"What new pain points or language emerged in this week's sales calls?"
***
## Real Example: Sarah's Messaging Transformation
**Background**: Sarah is Head of Marketing at a B2B SaaS company. Homepage conversion: 2.1%. Content engagement: Low. Sales kept saying "leads don't get it."
**Week 1: Analysis**
* Got access to 25 sales calls
* Uploaded to BuildBetter
* Listened to 5 deeply, Chat summarized the rest
**Key finding**: Marketing said "project management platform." Customers said "stop having stuff fall through the cracks."
**Week 2: Rewrite**
**Before** (Homepage hero):
```
"Collaborative project management for modern teams"
```
Generic. Boring. Conversion: 2.1%
**After** (Using customer language):
```
"Nothing Falls Through the Cracks
The only project tracker where you can actually see what's happening—and what's not."
```
**Before** (Feature list):
```
✓ Task management
✓ Team collaboration
✓ File sharing
✓ Time tracking
```
**After** (Customer outcomes):
```
✓ See all your projects in one place (not 5 tools)
✓ Know what's stuck before it becomes a crisis
✓ Stop asking "what's the status?" in Slack 20 times a day
✓ Actually hit your deadlines
```
**Results after 30 days**:
* Homepage conversion: 2.1% → 3.8% (+81%)
* Demo requests: +67%
* Sales team: "These leads are WAY more qualified"
* Common feedback: "Your website described our exact problem"
**Best comment from Sales**: "It's like marketing is finally in the same sales calls we're in."
**Sarah's quote**: "I spent 6 months guessing at messaging. 1 week listening to customers completely changed everything. I'll never write copy without hearing customers first again."
***
## Common Marketing Questions
**Try these approaches**:
1. **Start small**: "Can I listen to just 5 calls? I want to improve our content."
2. **Offer value**: "I'll create a competitive battle card from what I learn"
3. **Get executive support**: Have VP Marketing talk to VP Sales
4. **Alternative**: Sit in on calls as silent observer (less ideal, but works)
**If all else fails**: Interview CS team, survey customers, check review sites (G2, etc.). Not as good as hearing real calls, but better than nothing.
**Minimum**: 10 calls
* Small patterns emerge
**Better**: 20-30 calls
* Strong patterns emerge
* Statistically significant
**Best**: 50+ calls
* Segment by customer type
* Compare won vs lost
* Very confident in findings
**Rule**: Stop when you hear the same things repeatedly with no new insights.
**Analyze both!**
**Won deals show**:
* What messaging worked
* Which pain points were strongest
* What convinced them
**Lost deals show**:
* What objections you didn't overcome
* What competitors emphasized
* What value they didn't see
Both are valuable for different reasons.
**Simple email**:
```
Hi [Customer],
On our recent call, you mentioned [quote]. Would you be okay with us using that quote on our website/case study? We'd credit it to [Name, Title, Company] or keep it anonymous—your choice.
Let me know!
```
**Success rate**: 80%+ say yes when quote is positive.
**Tip**: Ask for permission right after a successful call or win. They're happiest then.
**Keep the meaning, polish the language**:
**Customer said**: "This shit is broken"
**Website copy**: "Our current process is broken"
**Customer said**: "I'm drowning in a million spreadsheets"
**Website copy**: "Too many spreadsheets, zero visibility"
Keep the emotion and specificity, remove profanity if needed. But don't corporate-ify it so much you lose the authenticity.
***
## Your 7-Day Marketing Transformation Checklist
### Day 1: Access
Talk to Sales about getting call recordingsGet 10-20 sales/customer callsUpload to BuildBetterTag calls (won/lost/discovery/demo)
### Day 2: Listen
Listen to 3-5 calls deeplyNote customer language, pain points, outcomesReview auto-extracted signals
### Day 3: Analyze
Find pain point patterns across callsUse Chat to analyze customer languageIdentify true ICP characteristicsExport customer quotes for library
### Day 4: Rewrite
Rewrite homepage hero using customer languageUpdate value props with customer outcomesReframe features with "why" statementsTighten customer persona to real ICP
### Day 5: Content
Generate blog topics from pain pointsIdentify case study candidatesCreate social media content from quotesBuild objection-handling content
### Day 6-7: Align & Test
Share findings with Sales teamSet up A/B test for new messagingGet customer permission for quotesEstablish weekly learning routine
***
## What's Next?
### After Your First Week
Deep dive into comprehensive messaging strategy
Build entire content calendar from customer insights
Track how customers talk about competitors
Build library of testimonials and case studies
### Make It a Habit
**Weekly** (30 mins):
* Listen to 2-3 new sales calls
* Note new language or pain points
* Update customer quote library
* Generate 1-2 content ideas
**Monthly** (2 hours):
* Deep analysis of 10-20 calls
* Update messaging if patterns shift
* Refresh content calendar
* Report on messaging performance
**Quarterly** (Half day):
* Comprehensive ICP review
* Full messaging audit
* Content strategy refresh
* Share insights with entire company
The best marketing teams never stop listening to customers. Make customer call analysis part of your weekly routine, not a one-time project.
***
## Resources
See this workflow in action (7 min)
Template for organizing customer language
Get help analyzing your first calls (free)
Join marketers using BuildBetter
***
**Stop guessing. Start listening. Let customers write your marketing.**
The best marketing doesn't feel like marketing—it feels like someone finally understands your problem. That only happens when you use customer language, not marketing speak.
Based on analysis from 500+ B2B marketing teams. Customer-language messaging converts 20-60% better than traditional marketing copy. The data is clear: listen to customers, use their words.
# ✨ Start Here: Your First 5 Customer Calls
Source: https://docs.buildbetter.ai/pages/Use Cases/quick-start/product-first-calls
Turn your first customer conversations into actionable insights in 30 minutes—no experience needed
You're a product person at a small team. You've done maybe 1-2 user interviews, but the insights live in scattered notes that nobody looks at. You want to understand what customers actually need, but analyzing conversations manually takes hours you don't have.
**This guide shows you how to record 5 customer calls and get real insights in 30 minutes—not 30 hours.**
## What You'll Achieve
By the end of this guide, you'll have:
* ✅ **5 customer calls** recorded and transcribed
* ✅ **Patterns identified** across conversations (what 4/5 customers mentioned)
* ✅ **Visual dashboard** showing top problems and requests
* ✅ **Data-backed decisions** instead of gut feel
* ✅ **Shareable insights** for your team
**Time commitment**: 30 mins setup + your normal interview time. Analysis that used to take 5 hours now takes 15 minutes.
## Prerequisites
BuildBetter account (sign up at [buildbetter.ai](https://buildbetter.ai))
3-5 customer calls scheduled OR recordings from past calls
Using Zoom, Google Meet, or Microsoft Teams (or have audio/video files to upload)
***
## Step 1: Get Your Data In (10 minutes)
You have three options to start recording calls. Pick what works for you:
### Option A: Automatic Recording (Recommended)
Connect your calendar so BuildBetter automatically joins your customer calls.
\[screenshot: Settings > Integrations page showing Google Calendar and Outlook options]
1. Go to **Settings** → **Integrations**
2. Click **Connect** next to Google Calendar or Outlook
3. Authorize BuildBetter to read your calendar
\[screenshot: Calendar connection success screen]
1. Go to **Settings** → **Organization** → **Bot Recording Rules**
2. Click **Create Rule**
3. Set filter: "Event title contains" → type "customer" or "user interview"
4. Save rule
\[screenshot: Bot recording rules configuration showing a rule for "customer" in title]
This tells BuildBetter to only join calls with "customer" or "user interview" in the title. It won't join your internal standups.
1. Go to **Home** page
2. Check **Upcoming Calls** section
3. Confirm your customer calls appear in the list
\[screenshot: Home page with upcoming calls widget showing 3 scheduled customer interviews]
That's it! BuildBetter will auto-join these calls.
### Option B: Manual Recording (For One-Off Calls)
For calls not on your calendar, join them manually.
Copy your Zoom/Meet/Teams link from the calendar invite
1. Click **Upload** button (top right)
2. Select **Join Call**
3. Paste the meeting URL
4. Click **Join Meeting**
\[screenshot: Join call dialog with meeting URL field]
The BuildBetter bot will appear in your call as a participant.
### Option C: Upload Past Recordings
Have recordings from previous calls? Upload them now.
Click **Upload** button in the top navigation
\[screenshot: Upload button highlighted in navigation]
1. Drag and drop your audio/video files (or click to browse)
2. Supported: MP3, MP4, WAV, M4A, MOV
3. Max size: 5GB per file
\[screenshot: File upload drag-and-drop interface]
* **Title**: "Customer Interview - \[Company Name]"
* **Date**: When the call happened
* Click **Upload**
\[screenshot: Upload form with title and date fields filled]
Processing takes 10-30 minutes for hour-long recordings. You'll get an email when it's ready.
**What happens next?** BuildBetter automatically:
* Transcribes the audio
* Identifies speakers
* Extracts insights (problems, feature requests, questions)
* Makes everything searchable
***
## Step 2: Explore Your First Insights (5 minutes)
After your first call is processed, let's see what BuildBetter found.
\[screenshot: Calls & Recordings page showing a processed call with transcript and signals]
1. Go to **Calls & Recordings**
2. Click on your first customer call
3. You'll see the full transcript with timestamps
\[screenshot: Call detail page showing transcript on left, summary on right]
Scroll down to the **Signals** section on the call page.
\[screenshot: Signals section showing 8 signals extracted from a call, with types like "Problem", "Feature Request", "Question"]
Each signal shows:
* **Type**: Problem, Feature Request, Question, Praise, etc.
* **Summary**: What the customer said (in their words)
* **Sentiment**: How they felt about it (😊 positive, 😐 neutral, 😣 negative)
* **Severity**: How urgent (🟢 minor, 🟡 important, 🔴 critical)
* **Quote**: Exact customer quote with timestamp link
Click the timestamp on any signal to jump to that exact moment in the recording.
BuildBetter automatically categorizes feedback:
* 💡 **Feature Request**: "I wish I could..."
* 🐛 **Problem/Bug**: "This doesn't work..."
* 😤 **Complaint**: "I'm frustrated by..."
* 🎉 **Praise**: "I love that..."
* ❓ **Question**: "How do I..."
* 🎯 **Need**: "What I'm trying to do is..."
No tagging needed—it's automatic.
**After 2-3 calls**, you'll start seeing patterns. Let's find them.
***
## Step 3: Find Patterns Across Calls (10 minutes)
Now you have 3-5 calls recorded. Time to find what customers are really telling you.
Click **Signals** in the left navigation
\[screenshot: Signals page showing all signals from multiple calls in a list view]
You'll see ALL signals from ALL your calls in one place.
Use the filter to focus on customer problems:
1. Click **Filter** button
2. Under **Signal Type**, select **Problem**
3. Click **Apply**
\[screenshot: Signals filter panel with "Problem" type selected]
Now you see ONLY problems customers mentioned across all 5 calls.
Look for patterns:
**Example**: You might see:
* "Onboarding is confusing" (mentioned in 4/5 calls)
* "Export doesn't work" (mentioned in 3/5 calls)
* "Need mobile app" (mentioned in 2/5 calls)
If 3+ customers mention the same thing unprompted, it's a real pattern—not a one-off request.
BuildBetter understands plain English. Try:
Type in the search: **"pricing concerns"**
\[screenshot: Search bar with "pricing concerns" typed, showing filtered results]
It finds all signals related to pricing, even if customers used different words like "cost", "too expensive", "budget", etc.
**Key Insight**: You've just done in 10 minutes what used to take 5 hours of manual note review.
***
## Step 4: Create Your First Dashboard (5 minutes)
Make your insights visual and shareable.
Click **Clustering** in the left navigation
\[screenshot: Clustering page showing signal analytics workspace]
This is BuildBetter's visualization workspace.
1. Click **Customize Dashboard** (top right)
2. You'll enter edit mode
\[screenshot: Dashboard in edit mode with "Add Card" options]
1. Click **Add Card**
2. Select **Bar Chart**
3. Configure:
* **Data Source**: Signals
* **Filter**: Signal Type = "Problem"
* **Group By**: Topic/Theme
* **Title**: "Top Customer Problems"
4. Click **Add**
\[screenshot: Bar chart configuration panel]
You'll see a chart showing which problems were mentioned most.
\[screenshot: Bar chart showing "Top Customer Problems" with bars for different issues]
Repeat for feature requests:
1. Add another **Bar Chart**
2. Filter: Signal Type = "Feature Request"
3. Title: "Most Requested Features"
\[screenshot: Dashboard with 2 charts - Problems and Feature Requests side by side]
1. Click **Save Dashboard**
2. Copy the URL from your browser
3. Share link with your team in Slack
Anyone in your workspace can view this dashboard. It updates in real-time as you add more calls.
**Now you have**: A live, visual dashboard that updates automatically as you do more interviews.
***
## Step 5: Ask Questions with AI Chat (5 minutes)
BuildBetter's AI can answer questions about your calls instantly.
Click **Chat** in the left navigation
\[screenshot: Chat interface with empty conversation]
Try this: **"What are the top 3 customer problems based on my recent calls?"**
\[screenshot: Chat response showing AI-generated list of top 3 problems with quotes and citations]
The AI will:
* Analyze all your calls
* Identify the most-mentioned problems
* Show you exact customer quotes
* Cite which calls they came from
Keep asking:
* "What should I build first?"
* "Which customers mentioned onboarding issues?"
* "Are there any quick wins I could fix?"
\[screenshot: Multi-turn conversation in Chat showing follow-up questions and answers]
1. After the AI responds, click **Generate** button
2. Select **Generate Document**
3. Choose template: "User Research Summary"
4. Click **Generate**
\[screenshot: Generate document dropdown with template options]
You'll get a formatted document you can share with your team or stakeholders.
\[screenshot: Generated document showing "User Research Summary - Week 1"]
***
## Real Example: Sarah's First Week
**Before BuildBetter:**
* Did 5 user interviews
* Took messy notes
* Insights scattered across Google Docs
* Took 6 hours to write summary
* Team didn't read it
**With BuildBetter:**
* Same 5 interviews, auto-recorded
* 15 minutes to review signals
* Created dashboard in 5 minutes
* Shared live link in Slack
* Entire team saw insights in real-time
* **Total time saved: 5+ hours**
**Key insight discovered**: 4/5 users mentioned the same onboarding problem in different ways. Sarah's team fixed it the next sprint. NPS went up 12 points.
***
## Common Questions
Always ask for consent! Say: "I'd like to record this so I can focus on our conversation instead of taking notes. Is that okay?"
Most customers say yes. If not, use BuildBetter's upload feature to transcribe your notes after.
95%+ accuracy for clear audio. BuildBetter handles accents, background noise, and multiple speakers well.
You can edit transcripts if needed, but most teams find them accurate enough as-is.
Start with 2-3! You'll still get value. The more calls you add, the better the pattern detection becomes.
You can also upload old recordings or notes to bootstrap your data.
Look for:
1. **Frequency**: Mentioned by 3+ customers
2. **Severity**: Marked as 🔴 critical or 🟡 important
3. **Sentiment**: Strong negative emotion (😣)
4. **Segment**: Problems from your ideal customers
Chat can help: "Which problems should I prioritize?"
Yes! Go to Calls & Recordings, click the call, and click **Delete**. It's removed permanently.
***
## What's Next?
### After Your First 5 Calls
You're now set up to scale your user research:
Create workflows to auto-tag calls, organize signals, and send summaries to Slack
Add surveys, support tickets, and sales calls for a complete view
Advanced techniques for analyzing 20-50 customer conversations
Full user research intelligence for 100+ interviews
### Weekly Habit (10 minutes)
Make this your Friday routine:
1. Review this week's call signals
2. Update your dashboard
3. Ask Chat: "What did I learn this week?"
4. Share insights with the team
5. Plan next week's interviews
The best product teams talk to customers every week. BuildBetter makes it sustainable by removing the analysis burden.
***
## Need Help?
See this workflow in action (5 min video)
Get personalized setup help (free)
Ask questions from other product teams
We respond in \<2 hours during business hours
***
**You're now equipped to turn customer conversations into insights in minutes, not hours. Record your next 5 calls and see the difference data-driven decisions make.**
Remember: The goal isn't perfect data—it's to make better decisions faster. Start simple, record calls, find patterns, and iterate.
# ✨ Start Here: Build Your Sales Playbook in 2 Weeks
Source: https://docs.buildbetter.ai/pages/Use Cases/quick-start/sales-record-learn
Go from winging it to winning it—build your sales playbook from your actual calls in 2 weeks
You're the first sales hire (or founder doing sales). Every call feels different. Some go great, some crash and burn. You don't know why. There's no playbook, no coaching, just you and your gut.
**This guide shows you how to record every call, learn what works, and build a data-driven sales playbook in your first 2 weeks—no manager required.**
## The Sales Learning Problem
**Before your first call**:
* No idea what objections to expect
* Guessing at what pitch resonates
* Can't remember what worked yesterday
**After 20 calls**:
* Still winging it
* Can't remember which demo flow closed deals
* Making same mistakes repeatedly
* No one to coach you
**The brutal truth**: Most sales reps never review their calls. They repeat losing patterns without realizing it.
## What You'll Achieve
In your first 2 weeks (10-15 sales calls):
* ✅ **Every call recorded** and reviewable forever
* ✅ **Objections cataloged** with proven responses
* ✅ **What works documented** (not what you think works)
* ✅ **Self-coaching system** that replaces a sales manager
* ✅ **Personal playbook** built from your actual calls
* ✅ **Close rate improving** week over week
**Time investment**: 30 mins setup + 10 mins review per call. Ramp time: 90 days → 45 days.
## Prerequisites
BuildBetter account ([buildbetter.ai](https://buildbetter.ai))
Sales calls starting (or scheduled)
Using Zoom, Google Meet, Teams, or phone (with recording)
***
## Week 1: Record Everything, Learn Fast
### Day 1: Set Up Recording (15 minutes)
1. Go to **Settings** → **Integrations**
2. Connect Google Calendar or Outlook
3. Connect your meeting platform (Zoom, Teams, or Meet)
\[screenshot: Integrations page with calendar and Zoom connected]
Auto-record all prospect calls:
1. **Settings** → **Organization** → **Bot Recording Rules**
2. Create rule:
* **Filter**: Event title contains "demo" OR "call" OR "discovery"
* **Or**: Has external attendees (non-company emails)
3. Save rule
\[screenshot: Bot recording rule configured for sales calls]
BuildBetter bot will join as a participant. Most prospects expect it—just say "I'm recording so I can focus on our conversation instead of taking notes."
Go to **Home** → Check **Upcoming Calls** section
\[screenshot: Home page showing upcoming sales calls]
Your demo calls should appear here. You're ready to roll.
### Day 1-3: First 3 Sales Calls
Just do your calls normally. BuildBetter records automatically.
\[screenshot: Call recording interface showing live call being transcribed]
**After each call**:
1. Let BuildBetter process (10-15 mins)
2. Quick notification when it's ready
3. Move on to next call
**Don't review yet.** Let 3 calls accumulate first.
***
### Day 4: Your First Review Session (30 minutes)
Now you have 3 calls. Time to learn what's actually happening.
1. Go to **Signals** in left navigation
2. Filter by:
* **Signal Type**: Objection
* **Date**: Last 7 days
\[screenshot: Signals page filtered to show objections from recent sales calls]
**What you'll see**:
* "Too expensive" (2 mentions)
* "No budget until Q2" (1 mention)
* "Need to talk to my team" (3 mentions)
**Key insight**: If the same objection appears 2+ times, you WILL hear it again. Prepare a response.
1. Click on an objection signal
2. Click the **timestamp link** to jump to that moment in the call
3. Watch how you responded
\[screenshot: Call playback at objection timestamp with transcript highlighted]
**Ask yourself**:
* Did I stumble?
* Did I have a good answer?
* Did the prospect seem satisfied?
* What would I say differently?
This is the fastest way to improve. You WILL cringe at yourself. That's good—it means you're learning.
Start documenting responses:
1. Click **Chat** in left navigation
2. Ask: **"Show me all objections from my sales calls and suggest responses for each"**
\[screenshot: Chat response showing objections with suggested responses]
3. Click **Generate** → **Generate Document**
4. Save as "My Objection Handling Guide"
\[screenshot: Generated document titled "Objection Handling Guide"]
Review this before every call.
Ask Chat:
**"Which parts of my demos got the most positive reactions? Show me the exact moments and what I said."**
\[screenshot: Chat highlighting positive sentiment moments with timestamps]
**Watch these clips**:
* What made them excited?
* What features resonated?
* What language did YOU use?
**Key insight**: The parts where prospects get excited are your value props. Lead with those.
***
### Day 5-7: Calls 4-6 (Iterate & Improve)
Apply what you learned.
**Before each call**:
1. Review your Objection Handling Guide (2 mins)
2. Remind yourself what worked in previous calls
**During the call**:
* Use your proven language for value props
* When objections come up, use your prepared responses
**After each call**:
1. Quick reflection: What went well? What didn't?
2. Star any new objections in Signals
3. Move on
\[screenshot: Signals view with starred important items]
***
### End of Week 1: First Analysis (20 minutes)
You have 6-7 calls recorded. Time for deeper analysis.
1. Tag calls as "Won", "Lost", or "In Progress"
2. Go to **Chat**
3. Ask: **"Compare my won deals to lost deals. What did I do differently?"**
\[screenshot: Chat analyzing differences between won and lost calls]
Even if you only have 1-2 outcomes, patterns may emerge.
Look at call transcripts:
\[screenshot: Call transcript showing speaker time breakdown]
**Healthy ratio**: You talk 30-40%, prospect talks 60-70%
If you're talking 70%+, you're presenting, not selling.
Ask Chat:
**"What words or phrases do I overuse in sales calls?"**
\[screenshot: Chat showing analysis of overused words like "um", "basically", "so"]
Common culprits:
* "Um" (everyone)
* "Basically" (filler)
* "To be honest" (implies you're usually not?)
* "Does that make sense?" (passive, weak)
Awareness is 80% of fixing this.
***
## Week 2: Build Your Playbook
### Day 8-10: Calls 7-12 (Systematize What Works)
You're getting better. Now make it repeatable.
Review your best call openings:
1. Go to **Calls & Recordings**
2. Pick your call that went best
3. Read the first 5 minutes of transcript
4. Ask Chat: **"Turn my opening from \[Call Name] into a reusable template"**
\[screenshot: Chat generating opening template from successful call]
**Example output**:
```
Opening Template:
1. Thank them for their time (15 sec)
2. Confirm agenda (30 sec)
3. Ask about their current process (2 min)
4. Identify pain point (1 min)
5. Transition to demo
```
Use this opening every time.
Find your best demo:
1. Filter calls where **Sentiment** was positive
2. Review demo sections
3. Extract the sequence
\[screenshot: Transcript with demo flow highlighted]
**Document**:
* Which feature did you show first?
* Which got the biggest reaction?
* What did you skip (that didn't matter)?
* How long did you spend on each section?
Shorter demos with more conversation usually win. If you're demoing for 30+ mins straight, you've lost them.
Review how you ask for next steps:
Ask Chat: **"How do I typically ask for next steps? Which approaches work best?"**
\[screenshot: Chat analyzing closing approaches with success rates]
**Weak closes**:
* "So... what do you think?"
* "Should we schedule a follow-up?"
**Strong closes**:
* "Based on what you've shared, it sounds like \[solution] would solve \[their problem]. The typical next step is \[specific action]. Does \[specific time] work?"
Be specific, be direct.
***
### Day 11-12: Document Your Playbook (1 hour)
Ask Chat:
**"Based on all my sales calls, create a comprehensive sales playbook including: opening, discovery questions, demo flow, objection handling, and closing techniques. Include specific examples from my best calls."**
\[screenshot: Chat generating comprehensive playbook]
Click **Generate** → **Generate Document** → "Sales Playbook"
\[screenshot: Complete sales playbook document with sections]
For each common objection, create a response:
**Objection**: "Too expensive"
**Response**: "\[ROI example from customer], which means we pay for ourselves in \[timeframe]. Our average customer saves \[specific amount] per \[period]."
**Objection**: "Need to think about it"
**Response**: "Of course! What specific questions do you need answered to make a decision? Let's tackle those now."
\[screenshot: Objection response cards]
Print this or keep it on your second screen during calls.
***
### Day 13-14: Calls 13-15 (Execute Your Playbook)
Use your playbook religiously on these calls.
**Follow your framework**:
* Use your proven opening
* Ask your best discovery questions
* Demo in your optimized sequence
* Handle objections with prepared responses
* Close with confidence
**After each call**:
Review the recording and score yourself:
* ✅ Used framework opening
* ✅ Asked discovery questions
* ✅ Handled objections well
* ✅ Strong close
\[screenshot: Personal scorecard for call review]
***
## End of Week 2: Measure Improvement
### Your Stats Dashboard
1. Go to **Clustering**
2. Click **Customize Dashboard**
3. Add cards:
**Card 1: Objections Over Time** (Line Chart)
* Shows if objection frequency is declining
* Means you're preemptively addressing concerns
**Card 2: Average Sentiment by Week** (Metric Card)
* Track if prospects are getting more excited
* Week 1 vs Week 2 comparison
**Card 3: Talk Ratio** (Bar Chart)
* Your talk time vs prospect talk time
* Goal: Trending toward 30/70
**Card 4: Top Objections** (Bar Chart)
* What you're still hearing most
* Focus your learning here
\[screenshot: Sales performance dashboard with 4 metrics]
Ask Chat:
**"Compare my sales calls from Week 1 (first 7 calls) to Week 2 (last 7 calls). What improved? What still needs work?"**
\[screenshot: Chat comparing Week 1 vs Week 2 performance]
**Look for**:
* ↗️ Sentiment trending up
* ↘️ Objections decreasing or same ones (means you're addressing them better)
* ↗️ Conversion rate improving
* ⏱️ Sales cycle shortening
***
## Real Example: Jordan's 2-Week Transformation
**Week 1, Day 1** (First Call):
* Rambled for 35 minutes straight
* Prospect asked 2 questions total
* Ended with "Let me know what you think"
* Result: Ghosted
**Week 1, Day 4** (After first review):
Jordan watched the recording. Saw themselves talking 80% of the time. Cringed at vague closing. Made notes.
**Week 1, Days 5-7** (Calls 4-6):
* Started asking more questions
* Stopped when prospect started talking
* Objection came up: "No budget"
* Jordan fumbled, didn't have good answer
**Week 1, Day 7** (Review):
Reviewed objection handling. Prepared responses for top 3 objections. Created opening template from best call.
**Week 2, Days 8-10** (Calls 7-9):
* Used opening template (felt more confident)
* When "no budget" objection came up, had prepared ROI response
* Prospect engaged, asked good questions
* Better closes: "Based on X, next step is Y. Does Thursday work?"
**Week 2, Day 12** (Call 12):
* Everything clicked
* Used full playbook
* Prospect: "This is exactly what we need. What's the pricing?"
* Closed first deal
**Week 2, Day 14** (Final review):
* Close rate: 0% Week 1 → 33% Week 2 (2 of 6 closed)
* Avg sentiment: 5.2 Week 1 → 7.8 Week 2
* Talk ratio: 75% Week 1 → 40% Week 2
* Objection handling: Fumbled Week 1 → Confident Week 2
**Jordan's quote**: "I learned more from reviewing 2 weeks of calls than 2 months of winging it. I'm basically my own sales coach now."
***
## Common Sales Questions
**Frame it positively**:
"I'm going to have BuildBetter join so I can focus on our conversation instead of frantically taking notes. That okay?"
**Success rate**: 95%+ say yes when you frame it this way.
**If they say no**: Respect it. Take notes manually. Upload notes to BuildBetter as text afterward.
**No.** That's overkill.
**Review strategy**:
* Week 1: Review first 3 calls deeply
* Week 2: Review 1-2 calls that felt off
* Ongoing: Review 1 call per week + all lost deals
**Always review**:
* Your first win (what did you do right?)
* Every loss (what went wrong?)
* Calls that felt weird (usually your gut is right)
Filter all pricing objections:
1. **Signals** → Filter: Type = "Objection" + contains "price" or "expensive"
2. Review all instances
\[screenshot: Filtered pricing objections]
Ask Chat: **"What's the real concern behind pricing objections? Is it actually about price or something else?"**
Usually it's not price—it's:
* Perceived value isn't clear
* ROI isn't proven
* They don't have authority (selling to wrong person)
* You haven't built urgency
**Normal for first 2 weeks.** Sales cycles are longer than 2 weeks.
**What to track instead**:
* Are prospects moving to next step? (2nd call, demo, trial)
* Is sentiment positive?
* Are objections getting addressed?
* Are prospects asking good questions?
These are leading indicators. Closes lag by weeks/months.
**Yes!** Options:
1. **iPhone/Android**: Use voice recorder, upload MP3 to BuildBetter
2. **BuildBetter Desktop App**: Records computer audio automatically
3. **Dialers** (Aircall, etc.): Many integrate with BuildBetter
\[screenshot: Upload audio file from phone call]
***
## Your 2-Week Sales Playbook Checklist
### Week 1: Discovery
**Day 1**: Setup & Recording
Connect calendar and meeting platformCreate recording rules for sales callsVerify upcoming calls appear
**Days 2-3**: First Calls
Do 3 sales calls (recorded automatically)No review yet—just get calls in
**Day 4**: First Review
Review objections from first 3 callsWatch yourself handle 2-3 objectionsCreate initial objection libraryIdentify what's working
**Days 5-7**: Iterate
Do 3-4 more calls using learningsApply objection responsesStar new patterns in Signals
### Week 2: Systematize
**Day 8**: Analysis
Review Week 1 performance in dashboardIdentify crutch wordsCheck talk-to-listen ratio
**Days 9-10**: Framework Creation
Create opening templateDocument demo flowBuild closing technique
**Days 11-12**: Playbook
Generate comprehensive sales playbookCreate objection response cardsReview playbook before calls
**Days 13-14**: Execute
Do 3-4 calls following playbook religiouslyScore yourself on framework adherenceFinal Week 2 analysis
***
## What's Next?
### After Your First 2 Weeks
Share your learnings with new sales hires
Deep dive into why deals close or fall apart
Track competitor mentions and build battle cards
Use BuildBetter for team enablement and coaching
### Make It a Habit
**Before every call** (2 mins):
* Review objection guide
* Remind yourself of your opening
**After every call** (5 mins):
* Quick reflection
* Star anything surprising in Signals
**Weekly** (20 mins):
* Review 1 call deeply
* Update playbook based on learnings
* Check performance dashboard
**Monthly** (1 hour):
* Full playbook review
* Update demo flow based on wins
* Share learnings with team
The difference between mediocre and great sales reps isn't talent—it's deliberate practice. Recording and reviewing makes practice deliberate.
***
## Resources
See how top reps use BuildBetter (8 min)
Proven question frameworks for sales calls
Get personalized feedback on your calls (free)
Join 1000+ sales reps using BuildBetter
***
**Great sales reps review their game tape. Now you can too.**
Top performers in every sport review their performance. Sales is no different. The only difference? Now you have the tape.
This isn't about being perfect. It's about being 1% better every call. Over 100 calls, that's 100% improvement. That's the difference between quota and President's Club.
# Sales Coaching & Feedback
Source: https://docs.buildbetter.ai/pages/Use Cases/sales/coaching-feedback
Transform every sales call into a coaching opportunity with AI-powered insights and actionable feedback
Great sales coaching used to require hours of call listening and subjective feedback. BuildBetter changes that by automatically analyzing every sales conversation, identifying coaching moments, and providing data-driven insights that help reps improve faster and managers coach more effectively.
## The Coaching Challenge
Traditional sales coaching faces significant obstacles:
* 📊 **Managers review less than 2%** of their team's calls
* ⏰ **Coaching prep takes 45+ minutes** per 1:1 session
* 🎯 **Feedback is often generic** without specific examples
* 📈 **Progress tracking is manual** and inconsistent
* 🔄 **Best practices stay siloed** with top performers
BuildBetter transforms coaching from a time-intensive burden into a scalable, data-driven process.
## Core Coaching Capabilities
Every call scored on key behaviors and skills automatically
AI identifies specific moments for teaching and reinforcement
Monitor individual and team progress over time
Capture and share winning talk tracks and techniques
## Implementation Guide
### Phase 1: Foundation (Days 1-7)
**Goal**: Establish clear, measurable coaching criteria
1. **Create Skill Scorecard** in [Settings](/pages/Settings/comprehensive-guide):
```
Discovery Skills:
- Open-ended questions asked
- Pain point identification
- Business impact quantification
Presentation Skills:
- Value prop clarity
- Feature-benefit connection
- ROI articulation
Closing Skills:
- Trial close attempts
- Objection handling
- Next step clarity
```
2. **Set Up Behavior Signals** ([Signal Configuration](/pages/Signals/understanding-signals)):
* Question quality indicators
* Monologue detection (talk time >2 min)
* Competitor handling
* Price discussion approach
* Meeting control metrics
3. **Configure Sentiment Tracking**:
* Customer engagement levels
* Emotional tone shifts
* Confusion indicators
* Excitement moments
Start with 5-7 key behaviors. You can always add more as the team masters basics.
**Goal**: Consistent, objective performance measurement
1. **Build Call Scoring Workflow** ([Workflow Creation](/pages/Workflows/workflow-automation)):
```
Trigger: Call ends
Actions:
1. Analyze transcript for key behaviors
2. Calculate talk-time ratio
3. Count questions asked
4. Identify missed opportunities
5. Generate coaching report
6. Send to manager dashboard
```
2. **Create Performance Thresholds**:
* 🟢 Green: Meeting/exceeding expectations
* 🟡 Yellow: Needs improvement
* 🔴 Red: Immediate coaching required
3. **Set Up Manager Alerts**:
* Red flag calls requiring immediate review
* Weekly performance summaries
* Positive performance recognition
* Trending issues across team
**Goal**: Align team on expectations and process
1. **Run Calibration Session**:
* Review 3-5 calls together as a team
* Discuss what "good" looks like
* Agree on scoring criteria
* Document best practices
2. **Create Reference Library** ([Collections](/pages/Organization/collections-overview)):
* "Gold Standard Calls" collection
* "Common Mistakes" examples
* "Objection Handling Wins"
* "Discovery Mastery" clips
3. **Set Individual Goals**:
* Baseline current performance
* Set 30-day improvement targets
* Schedule weekly check-ins
* Create accountability system
### Phase 2: Active Coaching (Weeks 2-4)
**Transform 1:1s with data-driven insights:**
1. **Pre-Meeting Prep** (5 minutes vs 45):
* Open [AI Assistant](/pages/Chat/ai-assistant-overview)
* Query: "Show me \[Rep Name]'s top 3 coaching opportunities this week with specific examples"
* Review auto-generated coaching report
* Identify 1-2 focus areas
2. **During the Session**:
```
Structure (30 minutes):
- Review metrics (5 min)
- Watch specific moments together (10 min)
- Practice improved approach (10 min)
- Set commitments (5 min)
```
3. **Coaching Conversation Framework**:
* "I noticed in your call with \[Company]..."
* "Let's watch this 90-second clip together"
* "What could you have done differently?"
* "Let's practice that approach now"
* "I'll check in on this next week"
4. **Document in BuildBetter**:
* Create coaching notes in [Documents](/pages/Documents/document-generation)
* Tag specific calls and moments
* Track commitments made
* Schedule follow-up check
Reps who receive weekly BuildBetter-powered coaching improve 3.2x faster
**Provide immediate feedback when it matters most:**
1. **Set Up Live Monitoring** ([Workflows](/pages/Workflows/creating-automations)):
```
High-Value Call Alert:
Trigger: Meeting with >$50K opportunity
Action: Notify manager to shadow remotely
Struggling Call Alert:
Trigger: Negative sentiment for >5 minutes
Action: Manager receives option to join
Competitor Mention Alert:
Trigger: Competitor name detected
Action: Send battle card to rep's screen
```
2. **Post-Call Instant Feedback**:
* Auto-generated "3 Stars & 1 Wish" format
* Delivered within 5 minutes of call end
* Includes specific timestamps
* Links to relevant training
3. **Peer Learning Alerts**:
* "John just had a great discovery call - watch clip"
* "Sarah handled pricing objection perfectly - learn how"
* "Team win: 5 meetings booked using new approach"
**Level up the entire team efficiently:**
1. **Weekly Team Film Review**:
* Like sports teams reviewing game footage
* Share 3-5 call clips (wins and learns)
* Discuss as group
* Document takeaways
2. **Create Skill Clinics** using [Reports](/pages/Reports/automated-insights):
```
Discovery Clinic (if team avg <5 questions/call):
- Show best discovery clips
- Practice question frameworks
- Role-play exercises
- Set team challenge
```
3. **Peer Coaching Pairs**:
* Match experienced with newer reps
* Share call recordings
* Review each other's calls
* Report learnings to team
4. **Monthly Skills Competition**:
* "Best Discovery Call"
* "Smoothest Objection Handle"
* "Strongest Close"
* Winners share techniques
### Phase 3: Advanced Development (Month 2+)
**Create tailored improvement paths for each rep:**
1. **Skills Assessment Dashboard**:
```
Rep: Sarah Johnson
Strengths:
✅ Discovery (8.5/10)
✅ Rapport Building (9/10)
Development Areas:
🔶 Closing (6/10)
🔶 Executive Presence (5.5/10)
This Month's Focus: Closing Skills
```
2. **Curated Learning Paths**:
* Link to specific [call recordings](/pages/Calls%20%26%20Recordings/call-details-view)
* Internal best practices
* External training resources
* Practice assignments
3. **Progress Tracking**:
```
Week 1: Baseline (2 closes from 10 calls)
Week 2: Improving (3 closes, better trial closes)
Week 3: Breakthrough (5 closes, confident asking)
Week 4: Consistent (4 closes, sustainable)
```
4. **Certification Levels**:
* 🥉 Bronze: Meets basic standards
* 🥈 Silver: Consistent performer
* 🥇 Gold: Team exemplar
* 💎 Diamond: Trains others
**Let AI be your coaching co-pilot:**
1. **Pre-Call Briefs** via [AI Chat](/pages/Chat/ai-assistant-overview):
```
Query: "I'm about to call [Company]. Based on similar
successful calls, what questions should I prioritize?"
AI Response:
"Based on 47 similar opportunities that closed:
1. Ask about current process pain points
2. Quantify time/cost impact
3. Identify decision timeline
Top performing question: 'Walk me through how you
handle this today and where it breaks down?'"
```
2. **Real-Time Suggestions**:
* Build GPT-powered talk tracks
* Get objection handling tips
* Access competitive positioning
* Receive negotiation guidance
3. **Post-Call Analysis**:
```
Query: "How did my call with [Company] compare to
our top performers' similar calls?"
AI Analysis:
- You asked 40% fewer questions
- Missed opportunity to discuss ROI
- Strong rapport building (top 20%)
- Next time: Slow down discovery phase
```
4. **Weekly AI Coaching Report**:
* Personalized insights
* Specific examples
* Recommended focus areas
* Success celebrations
**Become a world-class sales coach:**
1. **Manager Dashboard** ([Custom Reports](/pages/Reports/automated-insights)):
* Team performance heatmap
* Individual trend lines
* Coaching activity tracking
* ROI of coaching time
2. **Coaching Effectiveness Metrics**:
```
Track Your Impact:
- Rep performance pre/post coaching
- Behavior change adoption rate
- Time to skill improvement
- Coaching ROI calculation
```
3. **Manager Community**:
* Share coaching techniques
* Monthly best practices call
* Coaching challenges discussed
* Success stories shared
4. **Executive Reporting**:
* Link coaching to revenue impact
* Show skill development trends
* Demonstrate ROI of program
* Request resources based on data
## Coaching Playbooks
### 🎯 The "New Rep Ramp" Play
**Situation**: Onboarding new sales hire
1. Create "New Hire Success" [collection](/pages/Organization/collections-overview)
2. Add 10 exemplary calls with notes
3. Assign daily call review homework
4. End of week: Knowledge check quiz
1. Shadow 2 calls daily with top performers
2. Use [AI Assistant](/pages/Chat/ai-assistant-overview) to analyze what made calls successful
3. Practice key talk tracks
4. Record mock calls for review
1. Rep leads calls with manager shadowing
2. Receive real-time coaching via Slack
3. Immediate post-call debrief
4. Track confidence progression
1. Solo calls with post-call review
2. Daily check-ins on progress
3. Celebrate first wins
4. Set 30-day performance goals
New reps using BuildBetter ramp 40% faster than traditional onboarding
### 📈 The "Performance Turnaround" Play
**Situation**: Rep struggling with performance
1. Query [AI](/pages/Chat/ai-assistant-overview): "Analyze \[Rep]'s last 20 calls. What patterns indicate performance issues?"
2. Review [signal data](/pages/Signals/filtering-and-analyzing) for behavior patterns
3. Compare to top performer benchmarks
4. Identify 1-2 key issues to address
1. Set specific, measurable goals
2. Build custom [workflow](/pages/Workflows/workflow-automation) for daily practice
3. Assign mentor from top performers
4. Schedule daily check-ins for first week
1. Review 1 call together daily
2. Practice improvements immediately
3. Track behavior changes
4. Celebrate small wins
1. Gradually reduce check-in frequency
2. Monitor for backsliding
3. Reinforce positive changes
4. Document success story
### 🏆 The "Team Excellence" Play
**Situation**: Elevating entire team performance
1. Run team assessment across all key skills
2. Identify common gaps
3. Set team improvement goals
4. Create friendly competition
1. Week 1: "Question Master" - most discovery questions
2. Week 2: "Objection Ninja" - best handling
3. Week 3: "Close Commander" - highest close rate
4. Week 4: "Value Virtuoso" - clearest ROI articulation
1. Winners teach their techniques
2. Practice in role-play scenarios
3. Share in team [collection](/pages/Organization/collections-overview)
4. Recognize improvements publicly
1. Monthly skill focus areas
2. Quarterly team assessments
3. Continuous best practice sharing
4. Link improvements to results
## Measuring Coaching Impact
### Key Metrics Dashboard
MetricBefore BuildBetterWith BuildBetterMeasurement MethodCalls Reviewed per Rep0.5/month20/monthAutomated trackingCoaching Prep Time45 min/session5 min/sessionManager time logsSkill Improvement Rate10% quarterly35% quarterlyBehavior scoringRep Ramp Time120 days72 daysTime to quotaTeam Quota Attainment67%84%CRM data
### ROI Calculation
```
Annual ROI of BuildBetter Coaching:
- Time Saved: 40 hours/month × 12 months = 480 hours
- Performance Lift: 17% improvement in close rate
- Faster Ramp: 48 days saved per new hire
- Revenue Impact: $2.3M additional revenue/year
- ROI: 450% in year one
```
## Best Practices for Managers
**Be Specific**: Reference exact moments with timestamps, not general feedback
**Stay Positive**: Use 3:1 ratio of positive to constructive feedback
**Make it Actionable**: Every piece of feedback should have a clear next step
**Follow Through**: Check on commitments in next session
**Celebrate Wins**: Publicly recognize improvements and successes
## Common Pitfalls to Avoid
**Information Overload**: Focus on 1-2 behaviors at a time, not everything at once
**Delayed Feedback**: Coaching is most effective within 24-48 hours of the call
**One-Size-Fits-All**: Customize coaching to individual learning styles and needs
**Skipping Positives**: Always reinforce what's working, not just what needs improvement
## Quick Start Checklist
Ready to transform your sales coaching? Here's your week 1 action plan:
Set up [call recording](/pages/Calls%20%26%20Recordings/recording-methods) and [skill signals](/pages/Signals/understanding-signals)
Create first [coaching workflow](/pages/Workflows/workflow-automation) and scoring system
Run team calibration session with example calls
Build [collections](/pages/Organization/collections-overview) for best practices and coaching
Conduct first AI-powered 1:1 coaching session
## Expert Tips
**The "Sandwich" is Dead**: Instead of praise-critique-praise, use the "SBI" model: Situation-Behavior-Impact. It's more authentic and actionable.
**Micro-Coaching Wins**: Send quick Slack messages highlighting great moments immediately after calls. These small recognitions have huge impact.
**Let Them Self-Discover**: Before giving feedback, ask "How do you think that call went?" Self-identified improvements stick better.
**Track the Intangibles**: Beyond metrics, note confidence improvements, better preparation, and increased coachability.
## Resources & Next Steps
Get our proven coaching frameworks and scorecards
Connect with other sales leaders using BuildBetter
Learn advanced coaching techniques from experts
See how teams achieved breakthrough results
***
*Based on data from 5,000+ sales managers using BuildBetter for coaching. Results vary based on implementation quality and consistency.*
# Deal Intelligence for Sales Teams
Source: https://docs.buildbetter.ai/pages/Use Cases/sales/deal-intelligence
Transform every sales conversation into actionable intelligence that drives deals forward
BuildBetter transforms your sales conversations into a strategic advantage. By automatically capturing and analyzing every customer interaction, you'll spot buying signals, identify risks, and know exactly when and how to engage stakeholders to close deals faster.
## Why Deal Intelligence Matters
Modern B2B sales involves multiple stakeholders, lengthy cycles, and complex decision-making. Without proper intelligence:
* 🚨 **57% of deals** stall due to missed signals or poor follow-up
* 📉 **Deal slippage** occurs when risks aren't identified early
* 🎯 **Win rates suffer** from incomplete stakeholder mapping
* ⏰ **Sales cycles extend** without clear next steps
BuildBetter solves these challenges by turning every conversation into actionable intelligence.
## Core Capabilities for Sales Teams
Identify buying signals, objections, and competitive mentions in real-time
Track who's involved, their influence, and sentiment throughout the deal
Get alerts when deals show signs of stalling or competitive threats
Automatically update Salesforce with call insights and next steps
## Implementation Guide
### Phase 1: Foundation (Week 1)
**Goal**: Capture 100% of customer calls automatically
1. **Install BuildBetter Bot** ([Recording Setup Guide](/pages/Calls%20%26%20Recordings/recording-methods))
* Enable for Zoom, Teams, or Google Meet
* Configure [bot settings](/pages/Settings/comprehensive-guide#recording--transcription) with your company name
* Set up [recording rules](/pages/Calls%20%26%20Recordings/bot-recording-rules) to auto-join external calls
2. **Test Recording Quality**
* Run a test call with a colleague
* Verify [speaker identification](/pages/Calls%20%26%20Recordings/speaker-assignment) is working
* Check transcript accuracy in [call details](/pages/Calls%20%26%20Recordings/call-details-view)
Pro tip: Name your bot something like "Sarah's Assistant" instead of "BuildBetter Bot" for a more personal touch.
**Goal**: Leverage automatically extracted deal-critical insights
BuildBetter automatically extracts 35+ signal types including ([Signal Types](/pages/Signals/automatic-extraction)):
* 💡 **Feature Request** - Product needs and capabilities
* 🐛 **Bug** - Issues or problems mentioned
* ❌ **Objection** - Concerns or pushback
* 🏆 **Competition** - Competitor mentions
* ❓ **Question** - Customer inquiries
* 🎯 **Interest** - Buying signals
* ✅ **Action Item** - Next steps and commitments
These extract automatically from every call - no configuration needed.
**Filter for sales-relevant signals**:
* Navigate to Signals section
* Use filters or natural language: "Show me objections and competitive mentions from Q4"
**Goal**: Seamless flow of intelligence to Salesforce
1. **Set Up Integration** ([CRM Integration Guide](/pages/Integrations/comprehensive-overview#salesforce-integration))
* Authenticate with Salesforce admin account
* Map BuildBetter fields to Opportunity fields
* Enable bi-directional sync
2. **Configure Sync**:
* Select which Salesforce fields to sync
* Map contact and company data
* Enable activity logging for calls
3. **Test the Integration**
* Record a test call with a Salesforce contact
* Verify contact data syncs to BuildBetter
* Check call appears as activity in Salesforce
### Phase 2: Optimization (Week 2-3)
Create a real-time view of deal activity using [Clustering](/pages/Analytics/clustering-insights):
1. **Navigate to Clustering Section**
2. **Create Dashboard** with visualizations:
* Time Series: Signal volume over time
* Sentiment Ridge Chart: Emotional trends
* Signal List: Recent objections and concerns
* Quote Cards: Key customer statements
3. **Filter by Deal Context**:
* Filter signals by Company (your deals)
* Add Date filter for current quarter
* Filter by signal types: Objection, Competition, Interest
4. **Share Dashboard**:
* Copy dashboard link to share with team
* Export visualizations as PNG for presentations
* Export signal data to CSV for CRM import
Automate call organization ([Workflow Guide](/pages/Workflows/workflow-automation)):
1. **Auto-File Sales Calls**:
* Create workflow: "Recording to Folder by Title"
* Match title containing "Demo" or "Discovery"
* Route to "Active Deals" folder
2. **Tag Competitive Calls**:
* Create workflow: "Recording to Tag"
* Condition: "Call mentions competitors or alternatives"
* Apply "Competitive" tag automatically
3. **Send Summaries to Webhook**:
* Create workflow: "Recording Summary to Webhook"
* Condition: "External call with enterprise customer"
* Send to your CRM webhook endpoint
BuildBetter workflows perform single actions per trigger. For multi-step processes, use Zapier or manual steps.
Organize deal intelligence for easy access:
1. **Create Deal-Specific Collections** ([Collections Guide](/pages/Organization/collections-overview)):
* Name: "\[Company] - Q4 2024 Opportunity"
* Add all related calls, emails, documents
* Include competitive intelligence
* Track stakeholder communications
2. **Build Reusable Templates**:
* Discovery Call Checklist
* Demo Follow-up Sequence
* Negotiation Prep Collection
* Executive Briefing Materials
3. **Share with Stakeholders**:
* Internal: Full access for account team
* External: Curated view for champions
* Leadership: Executive summary only
### Phase 3: Advanced Techniques (Week 4+)
**Track and expand stakeholder engagement:**
1. **Build Stakeholder Maps** ([People & Companies](/pages/CRM%20Integration/people-and-companies)):
* Import all contacts from Salesforce
* Track engagement frequency
* Monitor sentiment by person
* Identify silent stakeholders
2. **Engagement Analytics**:
```sql theme={null}
Query in AI Assistant:
"Show me all stakeholders for [Company] opportunity
ranked by engagement level and sentiment"
```
3. **Expansion Strategy**:
* Identify departments not yet engaged
* Find champions to make introductions
* Track success of multi-threading efforts
Success Metric: Increase average stakeholders per deal from 3 to 7+
**Turn competitive situations into wins:**
1. **Set Up Competitive Tracking**:
* Create signals for each competitor name
* Include common misspellings and abbreviations
* Track specific product comparisons
* Monitor pricing discussions
2. **Build Battle Cards** ([Document Generation](/pages/Documents/document-generation)):
```
Template: Competitive Battle Card
Data Source: All mentions of [Competitor]
Sections:
- Why we win (positive differentiators)
- Common objections and responses
- Pricing positioning
- Customer success stories
```
3. **Win/Loss Analysis**:
* Tag all closed deals with win/loss reason
* Generate quarterly analysis
* Share insights with product team
* Update sales playbooks
Companies using BuildBetter see 23% improvement in competitive win rates
**Improve forecast confidence with data:**
1. **Sentiment-Based Forecasting**:
* Track sentiment trends throughout deal cycle
* Identify correlation with close rates
* Flag deals with declining sentiment
* Adjust forecast probability accordingly
2. **Commitment Tracking**:
* Monitor verbal commitments vs. actions
* Track timeline changes
* Measure stakeholder alignment
* Calculate "commitment score"
3. **Historical Analysis**:
```
AI Query:
"Analyze all won deals in the last 6 months.
What signals appeared 30 days before close?"
```
Deals with no executive engagement in final 30 days close at 18% vs 67% with exec involvement
## Real-World Playbooks
### 🎯 The "Stalled Deal Revival" Play
**Situation**: Deal has gone quiet for 2+ weeks
1. Open [AI Assistant](/pages/Chat/ai-assistant-overview)
2. Query: "Analyze all interactions for \[Opportunity]. What were the last concerns raised?"
3. Review [signal timeline](/pages/Signals/filtering-and-analyzing) for negative sentiment
1. Generate personalized re-engagement email using [Documents](/pages/Documents/document-generation)
2. Reference specific value props discussed
3. Address last known concerns
4. Propose clear next step
1. Set up [workflow](/pages/Workflows/workflow-automation) to alert on reply
2. Schedule follow-up call within 48 hours
3. Prepare with stakeholder-specific talk tracks
### 🚀 The "Fast Track Close" Play
**Situation**: Strong buying signals detected
1. Immediately after positive call, generate [Executive Summary](/pages/Documents/purpose-and-templates)
2. Include specific ROI discussed
3. List agreed-upon next steps
4. Send within 2 hours
1. Alert sales engineer via Slack integration
2. Schedule implementation planning call
3. Prepare contract with discussed terms
4. Create mutual success plan
1. Daily [signal monitoring](/pages/Signals/visualization-and-citation)
2. Proactive check-ins with champion
3. Address concerns immediately
4. Track all commitments
### 🛡️ The "Competitive Defense" Play
**Situation**: Competitor mentioned in call
1. [Workflow](/pages/Workflows/creating-automations) triggers alert
2. Generate competitive comparison document
3. Schedule follow-up within 24 hours
4. Prepare differentiation talking points
1. Share customer success story
2. Offer reference call with similar company
3. Demonstrate unique capabilities
4. Quantify switching costs
1. Accelerate timeline
2. Involve executive sponsor
3. Propose pilot or POC
4. Create urgency with limited-time offer
## Measuring Success
### Key Metrics to Track
MetricBefore BuildBetterWith BuildBetterHow to MeasureWin Rate24%31%Tag all opps with BuildBetter usageSales Cycle95 days78 daysTrack from first call to closeDeal Size$45K$62KCompare deals with full intelligenceForecast Accuracy68%84%Sentiment-weighted pipelineStakeholder Engagement3.2 per deal7.8 per dealUnique participants in calls
### Weekly Success Checklist
Monday: Review signals dashboard in Clustering section
Tuesday: Filter for negative sentiment signals and create action plans
Wednesday: Review call recordings and verify Salesforce sync
Thursday: Filter competitive mention signals and update battle cards
Friday: Use Chat to ask "Summarize key sales insights from this week" and share with team
## Expert Tips
**The 24-Hour Rule**: Always follow up within 24 hours of a call with a summary and clear next steps. Use [document templates](/pages/Documents/purpose-and-templates) to make this effortless.
**Signal Stacking**: Look for multiple positive signals in one call (budget + timeline + urgency) as a strong closing indicator. Use signal filters to find calls with multiple Interest signals.
**The Pre-Call Ritual**: Before every call, ask the [AI Assistant](/pages/Chat/ai-assistant-overview): "What should I know about \[Company] based on all previous interactions?" Never go in cold.
**Competitive Judo**: When competitors are mentioned, use it as an opportunity. Query: "What specific features has \[Company] asked about that \[Competitor] doesn't offer?"
## Common Pitfalls to Avoid
**Don't overwhelm buyers** with every insight. Be selective and share only what advances the deal.
**Don't ignore negative signals**. Address concerns immediately rather than hoping they go away.
**Don't forget the human touch**. BuildBetter provides intelligence, but relationships close deals.
## Next Steps
Ready to transform your sales process? Here's your 30-day roadmap:
**Week 1**: Set up recording and basic signals
**Week 2**: Build dashboards and workflows\
**Week 3**: Train team on advanced features
**Week 4**: Analyze results and optimize
Set up your first recording
Schedule team training session
***
*Based on analysis of 10,000+ sales organizations using BuildBetter, these practices drive the highest ROI. Your results may vary based on sales process and implementation quality.*
# Analyze Lost Deals to Improve Win Rate
Source: https://docs.buildbetter.ai/pages/Use Cases/sales/lost-deal-analysis
Turn lost opportunities into won deals—analyze why you lose to improve your win rate
You lost a deal. It stings. The prospect went with a competitor, or decided to "wait," or just ghosted. You move on to the next opportunity, but you never really understand WHY you lost.
**This guide shows you how to analyze 10-20 lost deals to find patterns, build battle cards, and improve your win rate.**
## The Lost Deal Problem
**Your reality:**
* 😞 Lose deals but don't know why
* 🤷 Prospect says "not the right fit" (vague)
* 🏆 Competitor wins, you don't know their pitch
* 📉 Win rate stuck at 20-30%
* 🔁 Making same mistakes repeatedly
**The truth**: Every lost deal contains lessons. You just need to extract them.
## What You'll Achieve
With 10-20 lost deal recordings:
* ✅ **Identify top reasons** you lose (not guesses, data)
* ✅ **Build competitive battle cards** based on real objections
* ✅ **Improve objection handling** with proven responses
* ✅ **Find early warning signs** of deals that will die
* ✅ **Increase win rate** 5-10% in next quarter
**Time investment**: 2 hours for analysis. **ROI**: Winning 2-3 more deals/quarter = $50K-$500K+ depending on deal size.
## Prerequisites
BuildBetter account
10-20 recordings of lost deals (more is better)
Mix of lost to competitor vs lost to "no decision"
***
## Step 1: Gather Lost Deal Recordings
\[screenshot: Upload interface for lost deal calls]
Collect recordings from:
* Discovery calls that went nowhere
* Demos where prospect went cold
* Final calls before they chose competitor
* Pricing discussions that stalled
Upload to BuildBetter and tag: "Lost Deal"
Tag each with:
* Lost to: \[Competitor name] or "No decision"
* Deal size
* Industry/segment
* Stage lost (discovery, demo, negotiation)
***
## Step 2: Find Why You Lost
\[screenshot: Chat analyzing lost deals]
**Query**: "Why did we lose these deals? What are the common objections and concerns?"
**Example output:**
```
Top Reasons for Lost Deals (18 analyzed):
1. Price (11 deals - 61%)
- "Too expensive for our budget"
- "Competitor is 40% cheaper"
- "Can't justify ROI"
2. Missing Features (7 deals - 39%)
- "Need Salesforce integration" (4 mentions)
- "Lacks mobile app" (3 mentions)
3. Implementation Complexity (5 deals - 28%)
- "Sounds too complicated to set up"
- "Don't have resources to implement"
4. Timing (4 deals - 22%)
- "Not ready yet"
- "Re-evaluate in 6 months"
```
Upload 10 won deal recordings too.
**Query**: "Compare my won deals to lost deals. What did I do differently?"
Reveals: What works vs what doesn't
***
## Step 3: Build Battle Cards
\[screenshot: Competitive battle card document]
For deals lost to specific competitor:
**Query**: "What did prospects say about \[Competitor X]? What did they like? What concerns did they have?"
Creates battle card content:
* Why they considered competitor
* What competitor emphasized
* Where competitor is weak
* How to position against them
**Query**: "For each common objection, generate recommended responses based on successful handling in won deals."
Builds your objection library with proven answers.
***
## Step 4: Improve Win Rate
Apply learnings to future deals:
Update pricing pitch to address ROI concernsQualify out bad-fit prospects earlier (save time)Emphasize differentiators vs competitorsAccelerate deals showing "not ready" signs
\[screenshot: Win rate trending up after implementing changes]
***
## Next Steps
Advanced deal tracking and forecasting
Build comprehensive sales methodology
***
**To be expanded**: This is a stub. Full content coming soon with detailed workflows, real examples, and step-by-step battle card creation.
# Pipeline Intelligence & Management
Source: https://docs.buildbetter.ai/pages/Use Cases/sales/pipeline-management
Transform your sales pipeline with AI-powered insights that predict outcomes, surface risks, and accelerate deals
Sales leaders manage millions in pipeline value with spreadsheets and gut feel. BuildBetter changes that by analyzing every customer interaction, surfacing hidden risks, and providing AI-driven recommendations that help you close more deals faster.
## The Pipeline Challenge
Traditional pipeline management is broken:
* 📊 **57% of deals slip** from committed quarter
* ⏰ **Sales leaders spend 8+ hours/week** on forecast calls
* 🎯 **CRM data is 42% inaccurate** due to manual updates
* 🔍 **Critical deal risks go unnoticed** until it's too late
* 📈 **Win rates stagnate** without insight into what works
BuildBetter transforms pipeline management from reactive firefighting to proactive acceleration.
## Core Pipeline Capabilities
AI analyzes every interaction to score deal health and predict outcomes
Surface hidden risks before they derail deals
Identify bottlenecks and accelerate stuck deals
Data-driven predictions that improve over time
## Implementation Guide
### Phase 1: Foundation (Week 1)
**Goal**: Create single source of truth for pipeline intelligence
1. **Integrate CRM** ([Salesforce](/pages/Integrations/crm/salesforce) or [HubSpot](/pages/Integrations/crm/hubspot)):
* Map opportunity stages
* Sync custom fields
* Connect activity data
* Enable bi-directional sync
2. **Connect Communication Channels**:
* [Email integration](/pages/Integrations/office/gmail) for thread analysis
* [Calendar sync](/pages/Integrations/office/google-calendar) for meeting tracking
* [Call recordings](/pages/Calls%20&%20Recordings/recording-methods) for conversation insights
3. **Historical Data Import**:
* Last 6 months of closed deals
* Win/loss reasons
* Deal cycle times
* Activity patterns
The more historical data you import, the more accurate your AI predictions become from day one.
**Goal**: Teach AI your unique sales process and winning patterns
1. **Define Success Patterns** in [Custom Context](/pages/Settings/custom-context):
```
Winning Deal Characteristics:
- Champion identified by second call
- Business case built by stage 3
- Legal engaged before stage 4
- Multiple stakeholders involved
- Clear implementation timeline
```
2. **Set Up Risk Signals** ([Signal Configuration](/pages/Signals/understanding-signals)):
* No activity in 14+ days
* Competitor mentioned 3+ times
* Decision maker not engaged
* Budget concerns raised
* Timeline keeps pushing
3. **Create Deal Scoring Workflow** ([Workflows](/pages/Workflows/workflow-automation)):
```
Trigger: After each customer interaction
Actions:
1. Analyze sentiment and engagement
2. Check for risk signals
3. Update deal health score
4. Alert if score drops >20%
5. Suggest next best action
```
4. **Build Smart Views**:
* "Deals Needing Attention" (score \<60)
* "Fast Movers" (high velocity)
* "At Risk - This Quarter"
* "Ready to Close" (score >85)
**Goal**: Drive adoption and establish new pipeline rhythm
1. **Team Training Session**:
* Show deal intelligence dashboard
* Explain health scoring
* Demo risk alerts
* Practice next best actions
2. **Update Sales Process**:
```
Monday: Review "At Risk" deals
Wednesday: Pipeline health check
Friday: Next week planning with AI
Daily: Check deal alerts
```
3. **Create Quick Wins**:
* Save first at-risk deal
* Accelerate stuck opportunity
* Improve forecast accuracy
* Celebrate with team
4. **Set Up Notifications**:
* Slack alerts for deal changes
* Email daily deal summary
* Mobile push for urgent risks
* Weekly pipeline digest
### Phase 2: Advanced Analytics (Weeks 2-4)
**Build AI models that predict deal outcomes with 85%+ accuracy:**
1. **Multi-Factor Scoring Model**:
```
Deal Score Components:
├── Engagement Score (30%)
│ ├── Email response time
│ ├── Meeting attendance rate
│ ├── Stakeholder involvement
│ └── Content engagement
├── Momentum Score (25%)
│ ├── Stage progression speed
│ ├── Activity frequency
│ ├── Next step clarity
│ └── Decision timeline
├── Fit Score (25%)
│ ├── ICP match
│ ├── Use case alignment
│ ├── Budget confirmation
│ └── Technical fit
└── Risk Score (20%)
├── Competitor presence
├── Objections raised
├── Stakeholder concerns
└── Process deviations
```
2. **Real-Time Score Updates**:
* After each email exchange
* Following every meeting
* When CRM fields change
* Based on time decay
3. **Score Visualization**:
* Green (80-100): On track to close
* Yellow (60-79): Needs attention
* Red (below 60): At serious risk
* Trending arrows for direction
4. **Action Recommendations**:
```
Deal: Acme Corp - $120K
Score: 67 ↓ (was 74 last week)
Top Risk: No champion activity in 10 days
Recommended Actions:
1. Schedule executive alignment call
2. Share ROI calculator
3. Request implementation timeline
```
Companies using predictive scoring close 23% more deals
**Identify and eliminate bottlenecks to accelerate deal flow:**
1. **Stage Duration Analysis**:
```
Average Days by Stage:
Discovery → Evaluation: 12 days ✅
Evaluation → Proposal: 28 days ⚠️
Proposal → Negotiation: 8 days ✅
Negotiation → Closed: 15 days ⚠️
Bottleneck: Evaluation stage
Root Cause: Technical validation delays
Solution: Pre-built demo environments
```
2. **Velocity Optimization Plays**:
* **Stuck in Discovery**: Send value realization kit
* **Stalled Evaluation**: Offer guided POC
* **Slow Proposal**: Use mutual close plan
* **Negotiation Delays**: Escalate to leadership
3. **Activity Impact Analysis**:
```
Activities That Accelerate Deals:
✅ Executive briefing: -5 days average
✅ ROI workshop: -8 days average
✅ Reference call: -3 days average
✅ Site visit: -7 days average
```
4. **Rep Performance Patterns**:
* Identify top performers' velocity tactics
* Replicate successful sequences
* Create velocity playbooks
* Track adoption and impact
**Ensure deals have proper stakeholder coverage:**
1. **Stakeholder Mapping**:
```
Deal: TechCorp - $200K
Engaged Stakeholders:
✅ John (Champion) - 8 interactions
✅ Sarah (Technical) - 5 interactions
⚠️ Mike (Economic Buyer) - 1 interaction
❌ Lisa (Executive Sponsor) - 0 interactions
Risk Level: HIGH - Need executive engagement
```
2. **Relationship Strength Scoring**:
* Frequency of interaction
* Sentiment of communications
* Response times
* Meeting participation
* Content engagement
3. **Coverage Gap Alerts**:
* Missing economic buyer
* No technical validation
* Lack of executive sponsor
* Single-threaded dependency
4. **Multi-Threading Playbooks**:
* Templates for each stakeholder type
* Engagement sequences
* Content recommendations
* Success metrics
### Phase 3: Intelligent Automation (Month 2+)
**Proactive notifications that help you save deals before they slip:**
1. **Risk Detection Rules**:
```yaml theme={null}
High Priority Alerts:
- Deal score drops >15% in 48 hours
- No contact in 10+ days (stage 3+)
- Competitor mentioned 3+ times
- Close date pushed 2+ times
- Champion goes dark
- New decision maker appears
- Budget concerns raised
- Implementation timeline unclear
```
2. **Contextual Notifications**:
```
🚨 DEAL RISK ALERT
Deal: GlobalTech - $150K - Q4 Close
Risk: Champion (Sarah) hasn't responded in 12 days
Context:
- Last interaction: Pricing discussion
- Mentioned "comparing options"
- CFO approval needed
Recommended Actions:
1. Send "choosing criteria" template
2. Offer CFO-specific ROI deck
3. Schedule exec alignment call
Similar deals saved: 73% success rate
```
3. **Alert Channels**:
* Slack (immediate risks)
* Email (daily summary)
* Mobile push (urgent only)
* In-app (all alerts)
* SMS (critical deals)
4. **Smart Snoozing**:
* "Remind me in 3 days"
* "Alert if worsens"
* "I'm handling it"
* "False positive" (trains AI)
**Get personalized recommendations for every deal in your pipeline:**
1. **Next Best Action Engine**:
```
Deal Analysis: MegaCorp - $300K
Current Stage: Proposal
Health Score: 72 (Yellow)
AI Recommendations:
1. "Schedule technical deep-dive"
Why: Technical team engagement low
Success Rate: 84% when completed
2. "Share customer success story"
Why: Similar industry, same use case
Impact: +15% close rate
3. "Build mutual close plan"
Why: Timeline getting fuzzy
Benefit: 12 days faster close
```
2. **Conversation Intelligence**:
```
Query: "What objections has MegaCorp raised?"
AI Summary:
1. Integration complexity (3 mentions)
2. Resource requirements (2 mentions)
3. ROI timeline (2 mentions)
Successful Responses from Won Deals:
- "Our API-first approach simplifies..."
- "Typical resource need is 0.5 FTE..."
- "Average payback period is 7 months..."
```
3. **Deal Strategy Assistant**:
* Analyze similar won/lost deals
* Suggest negotiation tactics
* Recommend pricing strategies
* Identify expansion opportunities
4. **Competitive Intelligence**:
```
Competitor Detected: CompetitorX
Win Rate vs CompetitorX: 67%
Key Differentiators That Win:
- Implementation speed (3x faster)
- Customer support (24/7 vs business hours)
- Total cost of ownership (32% lower)
Battlecard: [View Full Comparison]
Trap-setting questions: [View List]
```
**Replace painful forecast calls with AI-powered predictions:**
1. **Intelligent Commit Logic**:
```
Q4 Forecast Analysis:
Pipeline Coverage: 3.2x
AI Predicted Close: $2.8M
Rep Committed: $3.1M
Historical Accuracy: 89%
Confidence Breakdown:
🟢 High (>80%): $1.9M (12 deals)
🟡 Medium (50-80%): $0.7M (8 deals)
🔴 Low (below 50%): $0.2M (5 deals)
Recommended Commit: $2.6M (-16% from rep)
```
2. **Deal-by-Deal Analysis**:
```
Inspection View:
✅ Acme Corp - $120K - 92% confidence
Strong signals: 5 stakeholders, ROI built
⚠️ BigCo - $200K - 61% confidence
Risks: Single thread, 2 pushes
❌ TechStart - $80K - 23% confidence
Concerns: Dark for 3 weeks, competitor
```
3. **Forecast Call Automation**:
* Pre-populated deal reviews
* Risk mitigation plans
* Upside opportunities
* Resource requests
* Action items tracked
4. **Executive Dashboards**:
* Real-time forecast
* Coverage analysis
* Team performance
* Pipeline trends
* Win rate tracking
## Pipeline Playbooks
### 🚑 The "Deal Recovery" Play
**Situation**: High-value deal suddenly at risk
1. Query AI: "What changed with \[Deal Name] in the last 2 weeks?"
2. Review all [recent interactions](/pages/Calls%20&%20Recordings/call-details-view)
3. Check [email sentiment](/pages/Signals/automatic-extraction) trends
4. Identify specific risk triggers
1. Map all engaged contacts
2. Identify who's gone dark
3. Find alternate champions
4. Check for new stakeholders
1. Draft recovery plan with AI assistance
2. Engage executive sponsor
3. Offer compelling event (special terms, bonus value)
4. Create urgency with authentic deadline
1. Launch multi-touch sequence
2. Track engagement closely
3. Adjust based on response
4. Document what works
Deal recovery success rate: 68% when executed within 72 hours of risk detection
### 📈 The "Quarter-End Push" Play
**Situation**: Need to accelerate deals for quarter close
1. Filter deals closing this quarter
2. Sort by AI confidence score
3. Focus on 70%+ probability
4. Identify quick wins
1. Offer time-bound incentives
2. Bring in executives
3. Expedite legal review
4. Remove implementation barriers
1. Morning: Review overnight activity
2. Midday: Check deal movements
3. Afternoon: Plan next day
4. Evening: Send exec summary
1. Align all departments
2. Clear calendar for signatures
3. Prepare implementation team
4. Plan success announcement
### 🎯 The "ICP Focus" Play
**Situation**: Improve win rates by focusing on ideal customers
1. Analyze won deals from last 6 months
2. Identify common characteristics
3. Build ICP scorecard
4. Score current pipeline
1. Prioritize high ICP-fit deals
2. Deprioritize poor fits
3. Adjust resource allocation
4. Update qualification criteria
1. Extract winning messages from calls
2. Build ICP-specific playbooks
3. Create targeted content
4. Train team on new approach
1. Monitor win rate by ICP score
2. Track velocity improvements
3. Measure ACV impact
4. Refine ICP quarterly
## Measuring Pipeline Impact
### Key Performance Metrics
### ROI Calculation
```
Annual ROI of BuildBetter Pipeline Intelligence:
- Increased Win Rate: +7% = $4.2M additional revenue
- Shorter Sales Cycle: -23 days = $1.8M productivity gain
- Larger Deal Sizes: +33% = $2.9M revenue uplift
- Reduced Slippage: -50% = $1.1M recovered revenue
Total Annual Impact: $10M
BuildBetter Investment: $120K
ROI: 8,333% (83x return)
```
## Best Practices
**Trust the AI**: When AI and rep forecasts differ by >20%, AI is right 78% of the time
**Act on Alerts Quickly**: Deals saved within 48 hours have 3x higher recovery rate
**Multi-thread Everything**: Deals with 3+ contacts close 67% more often
**Update CRM Real-time**: Fresh data improves AI accuracy by 40%
**Review Weekly**: Teams that review pipeline weekly close 25% more deals
## Common Pitfalls
**Ignoring Early Warnings**: Small risks compound - address them immediately
**Over-riding AI**: Reps who constantly override AI recommendations underperform by 31%
**Incomplete Data**: Missing activities reduce prediction accuracy by up to 45%
**Forecast Theater**: Focus on improving actual close rates, not just forecast accuracy
## Quick Start Checklist
Get your AI-powered pipeline running in one week:
Connect [CRM](/pages/Integrations/crm/salesforce) and [enable call recording](/pages/Calls%20&%20Recordings/recording-methods)
Configure [deal signals](/pages/Signals/understanding-signals) and [risk alerts](/pages/Workflows/creating-automations)
Set up [AI scoring workflow](/pages/Workflows/workflow-automation) and dashboards
Train team on new pipeline process and tools
Run first AI-powered pipeline review
## Expert Tips
**The 48-Hour Rule**: Any deal with no activity for 48 hours in late stages is at risk. Set up automated alerts and have a re-engagement template ready.
**Score Transparency**: Share AI health scores with prospects. "Our system shows we're aligned on timeline and success criteria" builds trust and momentum.
**Reverse Engineering**: Have AI analyze your lost deals to identify early warning patterns. Most losses are predictable 3+ weeks before they happen.
**Pipeline Therapy**: Weekly "pipeline therapy" sessions where reps can discuss stuck deals with peers often surface creative solutions AI might miss.
## Resources & Next Steps
See how your pipeline metrics compare to top performers
Download our proven deal scoring framework
Get a free analysis of your current pipeline
Connect with peers optimizing with AI
***
*Based on analysis of 50,000+ B2B deals managed through BuildBetter. Individual results vary based on sales process, market, and implementation quality.*
# Creating Workflows
Source: https://docs.buildbetter.ai/pages/Workflows/creating-automations
How to create, configure, test, and enable composable workflows in BuildBetter
Use **Create Composable** to build a v2 workflow from a blank graph or from a prebuilt graph template. Use **Create from Template** only when you specifically need the older legacy workflow templates.
## Create a Composable Workflow
Navigate to **Workflows** in the main menu.
Pick a blank workflow or select a v2 template from the template picker.
Drag one trigger onto the canvas: Call Completed, Signals Extracted, Signal Created, Feedback Created, Manual Trigger, or Schedule.
Add blocks that fetch context, filter results, ask an LLM, branch, or format output.
End with a side effect such as Send Webhook, Send to Slack, Send Email, Add to Folder, or Add Tag.
Run a test, inspect Run History, save the graph, then switch **Enabled** on when it is ready.
## Starting From a v2 Template
V2 templates seed the graph with working nodes and edges. Current templates include:
* **Send Transcript to Webhook**
* **Send Full Call Data to Webhook**
* **Conditional Summary to Webhook**
* **Ask LLM About Call**
* **Signal Report to Slack**
* **Organize Calls into Folder**
* **Folder by Title Match**
* **Apply Tag Conditionally**
After selecting a template, BuildBetter creates a disabled draft and redirects you to `/workflows/v2/:id`. Edit the graph, point actions at the right destination, test it, then enable it.
## Building by Hand
### 1. Pick the Right Trigger
| Trigger | Use When |
| - | - |
| **Call Completed** | You need call metadata, transcript, summary, participants, or call-scoped signals. |
| **Signals Extracted** | You want one digest-style run for a batch of newly extracted signals. |
| **Signal Created** | You want one run per individual signal. |
| **Feedback Created** | You want to react when new feedback is added from a selected feedback source. |
| **Manual Trigger** | You want an on-demand workflow. |
| **Schedule** | You want hourly, daily, weekly, or custom cron-based automation. |
### 2. Connect Blocks
Drag from one block to another to create edges. The editor prevents invalid graph structure:
* No second trigger.
* No duplicate edge.
* No self-loop.
* No cycle.
### 3. Configure Inputs
Config fields can be filled three ways:
| Input Type | Example | Use It For |
| - | - | - |
| **Literal** | `https://example.com/webhook` | Hardcoded values like URLs, channel selections, limits, or labels. |
| **Reference** | `trigger.callId` | Passing one upstream field directly into a block. |
| **Template** | `Call {{get_call.title}} ended with {{get_summary.summary}}` | Combining text with multiple upstream fields. |
The variable picker lists valid upstream outputs, so you do not need to memorize field paths.
### 4. Use Specialized Inputs
Some blocks expose richer controls:
* **Signal filter** uses the same filter builder as Signals.
* **Resource picker** loads connected resources, such as Slack channels.
* **Multi-select pickers** support selecting several internal recipients for email actions.
* **Item template** scopes variables to an array item, such as `{{item.context}}` inside Format List.
* **Schedule input** stores cron plus timezone for local-time scheduled runs.
* **Webhook signing secret** lets each webhook step sign outgoing requests with a per-step secret.
### Email and Attachment Actions
The **Send Email** action can notify one or more active organization members. Workflow emails render Markdown as styled HTML and can include attachments for rendered signals, signal lists, calls, or recordings.
Recipients are checked again at send time, so disabled or removed members do not receive workflow email.
### Signed Webhooks
Webhook actions can include BuildBetter signature headers. Configure the signing secret in the webhook step, then use the verification guide in the editor to validate signatures in your receiving service.
### 5. Test Safely
Click **Test** before enabling the workflow. Test runs are stored as normal run records with a **test** badge, and the drawer highlights per-node output and errors.
Test runs execute real actions. A test webhook posts to the URL you configure, and a test Slack action posts to the selected channel.
## Managing Workflows
From the Workflows list you can:
* Open any v2 workflow under **Composable Workflows**.
* Duplicate a v2 workflow. Duplicates are created disabled.
* Open older workflows under **Template Workflows**.
* See the last updated time for v2 workflows and last run time for legacy workflows.
Inside the v2 editor you can:
* Rename the workflow inline.
* Save graph and description changes.
* Toggle **Enabled** on or off.
* Open **Run History**.
* Delete the workflow.
* Use the chat panel to build, edit, explain, or debug the graph.
## Migrating a Legacy Pattern
| Legacy Pattern | v2 Starting Point |
| - | - |
| Transcript to Webhook | **Send Transcript to Webhook** template |
| Send Call to Webhook | **Send Full Call Data to Webhook** template |
| Recording Summary to Webhook | **Conditional Summary to Webhook** or blank Call Completed graph |
| Answer Questions to Webhook | **Ask LLM About Call** template |
| Recording to Folder | **Organize Calls into Folder** template |
| Recording to Folder by Title | **Folder by Title Match** template |
| Recording to Tag | **Apply Tag Conditionally** template |
| Signal to Webhook | Blank graph with Signals Extracted or Signal Created trigger |
| Feedback to Slack | Feedback Created trigger with the Feedback to Slack template |
| Email a summary | Trigger plus Send Email action |
For a first workflow, use a template and change only the destination. Once the test run succeeds, add filtering or formatting one block at a time.
# Workflow AI Assistant
Source: https://docs.buildbetter.ai/pages/Workflows/workflow-ai-assistant
Build, edit, explain, and debug composable workflows from the chat panel embedded in the workflow editor
The composable workflow editor includes an AI assistant that can build, edit, explain, and debug the current workflow graph. Tell it what you want, such as "send a Slack digest when new pricing signals are extracted," and it can add blocks, configure fields, connect nodes, and lay out the canvas.
The Workflow AI Assistant is available in the composable workflow editor for v2 workflows. Legacy template workflows do not have this chat panel.
## Where to Find It
Open a composable workflow at `/workflows/v2/:id`. The assistant lives in the right-side **Chat** panel next to the canvas. Agent edits are the same kind of in-memory editor changes you could make manually. They do not persist until you click **Save**.
When the agent is working, the editor may show:
* An animated busy ring around the canvas.
* An agent cursor over the node being edited.
* Tool-call rows in chat showing what changed.
## What You Can Ask
The assistant can help with:
* **Build from scratch**: "Create a weekly Slack digest of severe customer signals."
* **Edit a workflow**: "Replace the webhook with a Slack message to #customer-alerts."
* **Explain a graph**: "What does this workflow do?"
* **Debug a failed run**: "Why did the latest test fail?"
* **Generate filters**: "Only include external customer signals with negative sentiment from enterprise accounts."
## Tool Surface
The assistant uses a bounded tool set. Some tools run on the server, and others mutate the in-memory editor state in the browser.
| Tool | What It Does |
| - | - |
| **`list_block_types`** | Reads the server block registry, including block names, categories, output fields, and config schemas. |
| **`get_recent_runs`** | Reads recent runs for the current workflow, optionally filtered by status. |
| **`get_run`** | Reads detailed per-node output and errors for one run. |
| **`get_workflow`** | Reads the current in-memory graph, name, and description. |
| **`add_node`** | Adds a block from the catalog to the canvas. |
| **`update_node_config`** | Sets one config field with a literal, ref, or template value. |
| **`update_node_name`** | Renames a block. |
| **`remove_node`** | Removes a block and its edges. |
| **`connect_nodes`** | Adds an edge, rejecting cycles, duplicates, and self-loops. |
| **`remove_edge`** | Removes a connection. |
| **`auto_layout`** | Tidies the canvas after structural edits. |
| **`generate_signal_filter`** | Converts a natural-language signal filter into the JSON filter envelope used by workflow signal blocks. |
## Filters and Variables
For signal workflows, ask in plain language:
> Only high-severity churn risk signals from external customers this month.
The assistant calls `generate_signal_filter`, stores the returned filter as a literal config value, and the normal signal filter UI can render it later.
For other fields, the assistant uses:
* **Refs** for direct upstream values, such as a trigger's `callId`.
* **Templates** for text with multiple values, such as a Slack message body.
* **Resource literals** for connected resources, such as a selected Slack channel.
## Debugging Runs
Use **Run History** for visual inspection, or ask the assistant to inspect recent runs. It can read run status, run-level errors, node-level errors, and truncated node output. If you click **Fix with agent** from a run or node error, BuildBetter sends that failure context into the chat so the assistant can propose and apply graph edits.
## What the Assistant Will Not Do
* It will not save the workflow. You choose when to click **Save**.
* It will not enable or disable the workflow.
* It will not invent blocks outside the registered block catalog.
* It will not execute arbitrary JavaScript.
* It does not bypass integration requirements for Slack, webhooks, or external APIs.
The assistant can edit the graph, but testing still uses real action blocks. Review destinations before running a test.
Start with "Build a workflow that..." for the first draft, then ask for one specific refinement at a time. The assistant can inspect the current graph between turns, so incremental edits are easier to review.
# Amplitude Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/analytics/amplitude
Connect BuildBetter with Amplitude to merge product usage data with customer conversation insights
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Amplitude Integration Early Access" in the subject line.
Connect BuildBetter with Amplitude to combine quantitative product analytics with qualitative customer conversations, creating a complete picture of user behavior and feedback.
## Features
* **Unified Customer View**: See product usage and conversation data in one place
* **Enhanced User Cohorts**: Create Amplitude cohorts based on conversation topics
* **Data Enrichment**: Add conversation insights to Amplitude user profiles
* **Custom Event Tracking**: Track BuildBetter insights as events in Amplitude
* **Bi-directional Analysis**: Cross-reference product behavior with customer feedback
## Setup Guide
### Prerequisites
1. Amplitude Requirements:
* Amplitude account (Growth plan or higher recommended)
* Admin access for API key generation
* Schema configuration permissions
2. BuildBetter Requirements:
* Active BuildBetter account
* Admin privileges for integration setup
### Installation Steps
1. **Connect Amplitude**
* Go to Settings > Integrations in BuildBetter
* Click "Connect" under Amplitude
* Enter your Amplitude API key and secret
* Configure project mapping
2. **Configure Data Flow**
* Set up user identification mapping
* Define which BuildBetter events to send to Amplitude
* Configure property mappings
* Set up cohort synchronization
3. **Test Integration**
* Generate test events
* Verify data appears in Amplitude
* Check user property enrichment
## Usage
### Tracking Conversation Insights
BuildBetter can track these conversation elements as Amplitude events:
* Feature requests
* Sentiment changes
* Competition mentions
* Product feedback
* Custom defined signals
### User Cohort Creation
Create Amplitude cohorts based on:
* Topics discussed in calls
* Feature requests made
* Product areas mentioned
* Sentiment expressed
### Enhanced Analytics
Use combined data for:
* Correlating feedback with actual usage
* Understanding which features need improvement
* Identifying power users for targeted interviews
* Measuring impact of customer calls on retention
## Dashboard Examples
1. **Customer Feedback & Usage**
* View product usage alongside feedback magnitude
* Track sentiment over time against feature adoption
* Identify discrepancies between what users say and do
2. **Product Development Impact**
* Measure how addressing feedback affects retention
* Track feature usage after discussions
* Analyze behavioral changes after customer meetings
## Security & Compliance
* Secure API connections
* Customizable data filtering
* Compliance with data privacy regulations
* User-level permission controls
## Support
Need help? Contact us:
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# FullStory Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/analytics/fullstory
Connect BuildBetter with FullStory for comprehensive session recording and analytics
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "FullStory Integration Early Access" in the subject line.
Integrate BuildBetter with FullStory to capture detailed session recordings, analyze user behavior, and gain insights into how users interact with your BuildBetter workspace.
## Features
* **Session Recording**: Capture user sessions for complete visibility into the user experience
* **User Identification**: Map BuildBetter users to FullStory sessions
* **Custom Event Tracking**: Track specific actions within BuildBetter
* **Heatmaps and Clickmaps**: Visualize where users focus most in your BuildBetter workspace
* **Error Monitoring**: Identify and troubleshoot UI issues
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* A FullStory account with organization ID
* Admin access to BuildBetter
### Connecting FullStory
1. Go to **Settings → Integrations** in your BuildBetter dashboard
2. Select **FullStory** from the analytics integrations
3. Enter your FullStory organization ID
4. Configure privacy settings (what to record/not record)
5. Click **Connect** to activate the integration
### Privacy Configuration
For proper data privacy:
1. Go to the **Privacy Settings** tab
2. Configure which elements should be masked:
* User emails (recommended)
* Chat content (optional)
* Call summaries (optional)
* Document content (optional)
3. Save your privacy settings
## Usage
### Identifying Users
When a user logs into BuildBetter, they're automatically identified in FullStory with:
* User ID
* Email
* Name
* Organization name
* Subscription tier
* Account creation date
### Tracked Events
The integration automatically tracks these events in FullStory:
| Event | Description |
| - | - |
| `Recording Started` | When a call recording begins |
| `Recording Completed` | When a call recording finishes |
| `Summary Generated` | When an AI summary is created |
| `Document Created` | When a document is generated |
| `Chat Interaction` | When using the AI chat feature |
| `Error Encountered` | When a user encounters an error |
| `Search Performed` | When a search is executed |
### Viewing Session Recordings
To analyze user sessions:
1. Log in to your FullStory dashboard
2. Use search to filter for BuildBetter sessions
3. Click on any session to view the complete recording
4. Use the event timeline to jump to specific actions
## Advanced Features
### Correlating FullStory Data
You can correlate FullStory data with your internal metrics:
1. Use the FullStory segment builder to create user segments
2. Export segment data via API
3. Combine with your BuildBetter usage data for deeper insights
### Feedback Loop Integration
Set up a feedback loop with your users:
1. Configure FullStory's feedback capture
2. Map feedback to specific BuildBetter features
3. Prioritize improvements based on session context
## Troubleshooting
### Recording Not Working
* Verify your FullStory organization ID is correct
* Check for any content security policies blocking FullStory
* Ensure there are no ad blockers or privacy extensions active
### Privacy Concerns
* Review and update the privacy settings in the integration
* Ensure sensitive information is properly masked
* Consider informing users about session recording via a privacy policy
# Heap Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/analytics/heap
Connect BuildBetter with Heap for automatic user behavior tracking and analysis
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Heap Integration Early Access" in the subject line.
Integrate BuildBetter with Heap to automatically capture every user interaction in your workspace without manual instrumentation. Gain insights into user behavior patterns and optimize your workflows.
## Features
* **Auto-Capture**: Track all user interactions automatically without tagging
* **User Identification**: Map BuildBetter users to Heap identities
* **Custom Events**: Define specific BuildBetter actions to track as events
* **Retroactive Analysis**: Analyze historical data even for newly defined events
* **Funnel Analysis**: Track workflow completion rates and drop-offs
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* A Heap account with project ID
* Admin access to both platforms
### Connecting Heap
1. Go to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Heap** from the analytics integrations
3. Enter your Heap Environment ID (found in your Heap project settings)
4. Choose data collection options:
* Auto-capture all events (recommended)
* Custom event selection
* User identification details
5. Click **Connect** to activate the integration
### Setting Up Event Definitions
After connecting:
1. Log in to your Heap dashboard
2. Go to **Define Events**
3. Use Heap's Event Visualizer to select specific BuildBetter interactions
4. Name and categorize your events
5. Save your event definitions
## Usage
### Auto-Captured Events
Heap automatically tracks these BuildBetter interactions:
* Page views
* Button clicks
* Form submissions
* Input field interactions
* Navigation actions
* Modal interactions
* Video player controls
### Custom Event Tracking
For more specific BuildBetter events:
1. Go to **Settings → Integrations → Heap → Custom Events**
2. Define business-specific events like:
* Call completed
* Document generated
* AI summary viewed
* Project created
* Folder organized
* Chat thread started
3. Save your custom event configuration
### User Identification
BuildBetter sends these user identifiers to Heap:
* User ID (as Heap identity)
* Email
* Name
* Organization
* Role
* Signup date
* Subscription tier
### Creating Reports
Once your data is flowing to Heap:
1. Use **Analyze** in Heap to create reports
2. Build funnels to track workflow completion rates
3. Create user segments based on behavior
4. Set up dashboards for key BuildBetter metrics
## Troubleshooting
### Connection Issues
* Verify your Heap Environment ID is correct
* Check for browser extensions or content blockers interfering
* Ensure proper domain settings in Heap
### Missing Data
* Verify the integration is active
* Check user identification settings
* Review any custom event definitions for errors
### Multiple User Identities
* Check for inconsistent identification across sessions
* Review user merging settings in Heap
* Ensure consistent user ID generation in BuildBetter
## Data Management
* Set appropriate data retention policies in Heap
* Review privacy implications of auto-capture
* Consider enabling PII protection features for sensitive data
# Mixpanel Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/analytics/mixpanel
Connect BuildBetter with Mixpanel for advanced product analytics and user behavior insights
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Mixpanel Integration Early Access" in the subject line.
Integrate BuildBetter with Mixpanel to gain deep insights into user behavior, product usage patterns, and engagement metrics. Track how your team and customers use BuildBetter and make data-driven decisions.
## Features
* **Event Tracking**: Send BuildBetter user activities to Mixpanel
* **User Profile Syncing**: Map BuildBetter users to Mixpanel profiles
* **Custom Properties**: Attach relevant metadata to events
* **Cohort Analysis**: Group users based on behavior patterns
* **Funnel Visualization**: Track user journeys through BuildBetter
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* A Mixpanel project with API credentials
* Admin access in both platforms
### Connecting Your Account
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Find and select **Mixpanel** from the analytics integrations
3. Enter your Mixpanel Project Token and API Secret
4. Configure which events to track (or select "Track All")
5. Click **Connect** to activate the integration
### Setting Up Event Tracking
After connecting:
1. Go to the **Event Configuration** tab in the Mixpanel integration settings
2. Choose which BuildBetter events to track:
* User sign-ins
* Call recordings
* Summary generation
* Document creation
* Chat interactions
* Custom events
3. Save your configuration
## Usage
### Tracked Events
The integration automatically sends these events to Mixpanel:
| Event | Description |
| - | - |
| `call_recorded` | When a meeting recording is completed |
| `summary_generated` | When an AI summary is created |
| `document_created` | When a document is generated |
| `chat_started` | When a chat thread is initiated |
| `chat_message_sent` | When a message is sent in chat |
| `folder_created` | When a new folder is created |
| `call_shared` | When a call is shared with others |
### User Properties
The following user properties are synced to Mixpanel:
* User ID
* Email
* Name
* Organization
* Role
* Sign-up date
* Subscription status
* Last active date
### Creating Mixpanel Reports
With BuildBetter data in Mixpanel, you can:
1. Create custom funnels to track user journeys
2. Build retention reports to measure ongoing engagement
3. Set up cohort analysis to compare user groups
4. Create dashboards for key BuildBetter metrics
## Troubleshooting
### Events Not Appearing
* Verify your Project Token is correct
* Check that the events are enabled in your configuration
* Look for any API errors in the integration logs
### User Identification Issues
* Ensure consistent user IDs between systems
* Check for any conflicts in identity resolution
* Verify user profile sync settings
## Data Privacy Considerations
* Review what user data is being shared with Mixpanel
* Consider enabling IP anonymization if required
* Set appropriate data retention periods in Mixpanel
* Ensure compliance with applicable privacy regulations
# Pendo Integration
Source: https://docs.buildbetter.ai/pages/Integrations/analytics/pendo
Import surveys, responses, and user data from Pendo into BuildBetter
## What You Can Sync
**From Pendo to BuildBetter:**
* Guides (in-app surveys) → Surveys
* Poll responses → Survey responses
* Visitors → People
* Accounts → Companies
The Pendo integration is **one-way**: data flows from Pendo to BuildBetter only.
## Setup Instructions
### Prerequisites
* Active Pendo account with admin access
* Pendo Integration API key
* BuildBetter organization admin access
### Connection Steps
1. **Get Your Pendo API Key**
* Log in to your Pendo account
* Go to Settings → Integrations
* Generate or copy your Integration Key
* Keep this key secure
2. **Connect in BuildBetter**
* Go to Settings → Integrations in BuildBetter
* Find Pendo in the BI & Analytics category
* Click "Connect"
* Paste your Pendo Integration Key
* Click "Save"
3. **Configure Which Guides to Sync**
After connecting, you must configure which Pendo Guides (surveys) to import (see Configuration below)
## Configuration
### Guides to Surveys Toggle
**Toggle:** Guides to Surveys
Enable this to sync Pendo Guides as surveys in BuildBetter.
### Selecting Guides & Polls to Sync
You need to specify which Pendo data to import. The configuration has three levels:
**Level 1: App ID**
* Your Pendo App ID (find this in Pendo settings)
**Level 2: Guide IDs**
* The specific Guides you want to sync from that app
* Find Guide IDs in Pendo under Guides
**Level 3: Poll IDs (Optional)**
* Specific polls within each Guide
* Leave blank or set to `null` to sync all polls in the Guide
**Configuration Format:**
In BuildBetter Settings → Integrations → Pendo → "Guides & Polls":
```json theme={null}
[
{
"appId": 12345,
"guides": [
{
"guideId": "guide-abc-123",
"pollIds": null // null = sync all polls in this guide
},
{
"guideId": "guide-xyz-456",
"pollIds": ["poll-1", "poll-2"] // only sync specific polls
}
]
}
]
```
**How to Find These IDs:**
* **App ID**: In Pendo, go to Settings → App Details
* **Guide ID**: In Pendo Guides list, click on a guide and check the URL (e.g., `/guides/abc-123`)
* **Poll ID**: In the guide editor, inspect each poll's settings or ID
If you don't configure any guides, the sync will run but won't import any data.
## Supported Poll Types
BuildBetter imports all Pendo poll types and maps them to survey questions:
| Pendo Poll Type | BuildBetter Question Type | Description |
| - | - | - |
| PositiveNegative | Single Select | Yes/No questions |
| NumberScale | Rating | Numeric rating scales (1-5, 1-10, etc.) |
| FreeForm | Text | Open-ended text responses |
| NPSRating | NPS | Net Promoter Score ratings (0-10) |
| NPSReason | Text | NPS follow-up explanations |
| PickList | Single Select | Single choice from options |
| Vote | Single Select | Voting questions |
| VoteVocItemId | Text | Text-based voting responses |
## How It Works
### Sync Schedule
The Pendo integration syncs **hourly** (every hour):
* **Incremental Sync:** Only fetches new responses since the last successful sync
* **Full Sync:** Can be manually triggered to re-import all historical data
### What Gets Imported
**For Each Configured Guide:**
1. **Guide Information**
* Guide name and ID
* All polls (questions) in the guide
* Created as a Survey in BuildBetter
2. **Poll Responses**
* Individual visitor responses
* Response timestamps
* Aggregated by visitor and time
3. **Visitor Data**
* Email addresses (from metadata)
* Full names
* Custom metadata fields (agent and auto)
* Associated account IDs
* Created as People in BuildBetter
4. **Account Data**
* Account ID and name
* Custom metadata
* Linked to visitors
* Created as Companies in BuildBetter
### Data Matching
**Visitors → People:**
* Matched by email address
* Creates new person if not found
* Links to company via Pendo account ID
* Metadata fields preserved as additional data
**Accounts → Companies:**
* Matched by account ID or name
* Creates new company if not found
* Metadata stored as custom fields
* Personal domains allowed (unlike CRM integrations)
## Viewing Imported Data
### Surveys Section
1. Go to **Surveys** in BuildBetter
2. Pendo Guides appear as surveys
3. Filter by source "Pendo" to see only Pendo surveys
4. View responses and analyze trends
### People & Companies
* Pendo visitors appear in your People list
* Enriches existing people records via email matching
* Pendo accounts appear as Companies
* Custom metadata searchable and visible on records
### Using Imported Data
Once imported, you can:
* Extract Signals from survey responses
* Cross-reference Pendo feedback with call data
* Create documents from survey insights
* Build workflows based on NPS scores or feedback
* Analyze product usage alongside customer conversations
## Troubleshooting
### Connection Issues
**"Pendo authentication failed"**
* Verify your Integration Key is correct
* Check that the key hasn't been revoked in Pendo
* Ensure you have admin permissions in Pendo
* Try regenerating the API key
**Sync shows "error" status**
* Check the error message in Settings → Integrations → Pendo
* Verify Pendo API is accessible
* Reconnect with a fresh API key
### No Data Being Imported
**"No responses syncing"**
* Make sure you configured at least one guide in "Guides & Polls to Sync"
* Verify the App ID, Guide IDs, and Poll IDs are correct
* Check that the guides have actual responses in Pendo
* Ensure guides are published (not in draft mode)
**"Can't find my Guide ID"**
* In Pendo, go to Guides and click on your guide
* The Guide ID is in the URL: `/guides/{guide-id}`
* Copy the exact ID (case-sensitive)
**"Visitors not creating People"**
* Verify visitors have email addresses in Pendo metadata
* Check that visitor metadata includes `agent.email` field
* Visitors without emails will be skipped
**"Accounts not creating Companies"**
* Verify accounts have names in Pendo metadata
* Check the `metadata.agent.name` field in Pendo
* Accounts without names will use the account ID as the name
### Configuration Issues
**"Guides & Polls configuration invalid"**
* Verify your JSON syntax is correct
* Check that all IDs are strings (wrapped in quotes)
* Ensure appId is a number (no quotes)
* Use `null` (not an empty array) to sync all polls
**Example valid configuration:**
```json theme={null}
[
{
"appId": 12345,
"guides": [
{
"guideId": "abc-123-def",
"pollIds": null
}
]
}
]
```
**Example invalid configuration:**
```json theme={null}
[
{
"appId": "12345", // ❌ Should be a number, not string
"guides": [
{
"guideId": abc-123-def, // ❌ Missing quotes around guide ID
"pollIds": [] // ❌ Use null instead of empty array for all polls
}
]
}
]
```
### Sync Limit Issues
**"Only some responses syncing"**
* Default sync has no limit
* If configured with a limit, only that many responses will be imported per sync
* Trigger a manual sync to continue importing
* Check sync logs for the actual count
## Important Notes
### One-Way Integration
Data flows **only from Pendo to BuildBetter**. You cannot push data back to Pendo from BuildBetter.
### Manual Configuration Required
Unlike some other integrations, Pendo requires you to manually specify which Guides to sync. This gives you control over what data is imported.
### Incremental Sync
After the first sync, only new responses since the last sync are imported. This is more efficient and faster.
To re-import all historical data, trigger a "Full Sync" from the integration settings.
### Multiple Apps
You can sync from multiple Pendo apps by adding multiple entries to the configuration:
```json theme={null}
[
{
"appId": 11111,
"guides": [...]
},
{
"appId": 22222,
"guides": [...]
}
]
```
## Best Practices
**Start with One Guide**
Configure and sync one guide first to verify everything works before adding more.
**Use Guide Names for Organization**
Guide names become survey names in BuildBetter—use clear, descriptive names in Pendo.
**Sync All Polls in a Guide**
Set `"pollIds": null` to sync all polls rather than specifying individual IDs (easier to maintain).
**Review Imported Metadata**
Check that visitor emails and account names are populating correctly in Pendo's metadata fields.
**Monitor Sync Frequency**
Hourly sync is usually sufficient. Contact support if you need more frequent syncing.
## Support
Need help with Pendo integration?
* Verify your Integration Key has proper permissions
* Check that Guide IDs and Poll IDs are correct
* Review configuration JSON syntax
* Contact BuildBetter support with your Pendo App ID and any error messages
# PostHog Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/analytics/posthog
Integrate BuildBetter with PostHog for comprehensive product analytics
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "PostHog Integration Early Access" in the subject line.
Connect your BuildBetter workspace with PostHog to gain deeper insights into user behavior, product usage, and analytics. This integration helps you understand how your team and customers interact with BuildBetter features.
## Features
* **Event Tracking**: Track key BuildBetter events in PostHog
* **User Identity Syncing**: Map BuildBetter users to PostHog profiles
* **Session Recording**: View user sessions in PostHog for deeper analysis
* **Feature Flag Access**: Control BuildBetter features using PostHog feature flags
* **Custom Dashboards**: Create custom PostHog dashboards with BuildBetter data
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* A PostHog account (cloud or self-hosted)
* Admin access to both platforms
### Connecting PostHog
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Find and select **PostHog** from the analytics integrations section
3. Enter your PostHog API key and project ID
4. For self-hosted PostHog instances, enter your PostHog host URL
5. Click **Connect** to establish the integration
### Configuring Event Tracking
After connecting:
1. Go to the **Event Configuration** tab
2. Select which BuildBetter events you want to track in PostHog:
* Call recordings
* Summaries generated
* Document creation
* Chat interactions
* User logins/logouts
3. Save your configuration
## Usage
### Viewing BuildBetter Data in PostHog
Once connected, your BuildBetter data will appear in PostHog under the following events:
* `buildbetter_call_recorded`
* `buildbetter_summary_generated`
* `buildbetter_document_created`
* `buildbetter_chat_started`
* `buildbetter_feature_used`
### Creating Insights
In PostHog, you can create custom insights:
1. Go to **Insights** in your PostHog dashboard
2. Create a new insight
3. Filter for BuildBetter events
4. Build visualizations based on your specific needs
### Using Feature Flags
To control BuildBetter features with PostHog feature flags:
1. Create feature flags in PostHog
2. In BuildBetter, go to **Settings → Integrations → PostHog → Feature Flags**
3. Map PostHog feature flags to BuildBetter features
4. Test and deploy your configuration
## Troubleshooting
### Events Not Appearing
* Verify your API key is correct
* Check that the events are enabled in the configuration
* Ensure there's no network blocking between BuildBetter and PostHog
### User Identity Issues
* Make sure user identification is properly configured in both systems
* Check for any ID conflicts in your PostHog setup
## Data Privacy Considerations
When using this integration, consider:
* What user data is being shared with PostHog
* Data retention policies in PostHog
* Compliance with privacy regulations like GDPR or CCPA
# Segment Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/analytics/segment
Connect BuildBetter to Segment for unified data collection and analysis
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Segment Integration Early Access" in the subject line.
Integrate BuildBetter with Segment to seamlessly collect, transform, and route your BuildBetter data to over 300 tools for analytics, marketing, and data warehousing.
## Features
* **Unified Data Collection**: Send BuildBetter events to all your tools through a single integration
* **User Identification**: Map BuildBetter users across your tech stack
* **Custom Event Tracking**: Configure which BuildBetter events to track
* **Retroactive Data**: Backfill historical BuildBetter data to Segment
* **Compliance Controls**: Manage data privacy settings centrally through Segment
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* A Segment account with write key access
* Admin permissions in BuildBetter
### Connecting Segment
1. Go to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Segment** from the analytics integrations section
3. Enter your Segment write key
4. Choose which events to track (or select "All Events")
5. Click **Connect** to activate the integration
### Configuring Destinations in Segment
After connecting BuildBetter to Segment:
1. Log in to your Segment dashboard
2. Go to **Sources** and find the BuildBetter source
3. Add and configure destinations (Google Analytics, Mixpanel, etc.)
4. Map BuildBetter events to your destination requirements
5. Enable the destinations to begin receiving data
## Usage
### Tracked Events
The following events from BuildBetter are tracked in Segment:
| Event Name | Description |
| - | - |
| `Call Recorded` | When a call recording is completed |
| `Call Summary Created` | When an AI summary is generated |
| `Document Generated` | When a document is created from calls |
| `Chat Interaction` | When users interact with the AI chat |
| `User Invited` | When a new user is invited to the workspace |
| `Signal Created` | When a signal is generated from call data |
| `Folder Created` | When a new organizational folder is created |
### Identity Resolution
BuildBetter sends the following user traits to Segment:
* User ID
* Email
* First and Last Name
* Organization Name
* Role
* Signup Date
### Custom Properties
You can configure additional custom properties to be sent with each event:
1. Go to **Settings → Integrations → Segment → Properties**
2. Select the events you want to customize
3. Add custom properties to include with each event
4. Save your configuration
## Troubleshooting
### Events Not Appearing in Segment
* Verify your Segment write key is correct
* Check that Segment source is not paused
* Ensure no API call limits have been reached
### Data Latency Issues
If there's a delay in events appearing:
* Check Segment's status page for any ongoing issues
* Verify your network connectivity
* Confirm destination settings in Segment
## Security and Compliance
* All data sent to Segment is encrypted in transit
* Consider using Segment's Privacy Portal for GDPR and CCPA compliance
* Review which sensitive data is being sent through this integration
# BigQuery Integration
Source: https://docs.buildbetter.ai/pages/Integrations/cdp/bigquery
Connect BuildBetter with Google BigQuery for data warehouse integration
**Custom Implementation Available**
This integration is available through custom implementation. Contact [support@buildbetter.app](mailto:support@buildbetter.app) to discuss your BigQuery integration needs and setup requirements.
Connect BuildBetter with Google BigQuery to export customer insights, transcripts, and analytics data to your data warehouse.
## Overview
The BigQuery integration enables you to:
* Export BuildBetter data to BigQuery tables
* Combine insights with other business data
* Run custom SQL queries on feedback data
* Build advanced analytics and reports
* Create data pipelines with customer insights
**Status**: Available via Custom Implementation
**Setup**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Implementation
To set up BigQuery integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "BigQuery Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Automated data export to BigQuery
* Custom table schema configuration
* Incremental data updates
* Real-time streaming support
* Integration with BigQuery ML
* Support for nested and repeated fields
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# BlueConic Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/cdp/blueconic
Connect BuildBetter with BlueConic for customer data platform integration
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "BlueConic Integration Early Access" in the subject line.
Connect BuildBetter with BlueConic to sync customer insights and enrich unified customer profiles with feedback data.
## Overview
The BlueConic integration will enable you to:
* Send BuildBetter insights to BlueConic profiles
* Enrich customer profiles with feedback data
* Create customer segments based on insights
* Trigger personalization based on feedback
* Sync customer sentiment scores
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "BlueConic Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Profile property enrichment
* Real-time event streaming
* Segment creation from feedback data
* Custom dialogue triggers
* Sentiment score synchronization
* Connection to BlueConic lifecycle stages
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Snowflake Integration
Source: https://docs.buildbetter.ai/pages/Integrations/cdp/snowflake
Connect BuildBetter to your Snowflake data warehouse with OAuth, browse schemas, map columns, and schedule company syncs
Connect BuildBetter to your Snowflake data warehouse so company records and metadata flow into BuildBetter automatically. Authenticate with OAuth, browse your schemas and tables, map columns to BuildBetter fields, and set up scheduled syncs without writing any pipeline code.
## Overview
The Snowflake integration enables you to:
* Pull company records and metadata from Snowflake into BuildBetter
* Browse warehouses, databases, schemas, and tables interactively
* Map Snowflake columns to BuildBetter core fields and metadata
* Run scheduled syncs to keep company data continuously up to date
* Keep all credentials securely managed and masked in the UI
**Integration Type**: One-way import (Snowflake to BuildBetter)
**Authentication**: OAuth (recommended) or programmatic credentials
**Sync Frequency**: Scheduled
## Features
* **OAuth Sign-In**: Authenticate directly against your Snowflake account; credentials are encrypted at rest and masked throughout setup
* **Schema and Table Browsing**: Pick your warehouse, database, schema, and source table from interactive dropdowns
* **Column Mapping**: Map any Snowflake column to a BuildBetter core field (company name, domain) or to metadata, with type-aware handling
* **Two Lookup Strategies**: Match companies either via a mapped metadata column or via a stable identifier derived from the table's primary key
* **Wide-Table Friendly**: Improved mapping UI handles tables with many columns without breaking the setup flow
* **Scheduled Syncs**: Keep company data flowing automatically once mappings are saved
* **Masked Credentials**: Sensitive values are masked throughout the configuration UI
## Setup Guide
### Prerequisites
1. **Snowflake Requirements:**
* Snowflake account with access to the warehouse, database, and schema you want to sync
* Permission to read from the source tables you plan to map
* Ability to authorize an OAuth integration (or admin-provided programmatic credentials)
2. **BuildBetter Requirements:**
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
Go to **Settings > Integrations** in BuildBetter, find **Snowflake** in the data integrations section, and click **Connect**. Authenticate with your Snowflake account; BuildBetter stores access and refresh tokens securely.
Select the **warehouse**, **database**, **schema**, and **source table** you want BuildBetter to read from. Each selector lists what your account has access to.
For each column you want to use, choose a mapping:
* **Core fields**: company `name` or `domain`
* **Metadata**: any custom field, with its data type preserved (text, number, boolean, etc.)
* **Skip**: ignore the column
Pick how BuildBetter identifies the company that each row belongs to (see below). Validation runs before save so misconfigurations are caught up front.
Save your configuration to enable scheduled syncs. You can also trigger a manual sync from the integration settings.
## Company Lookup Strategies
Every row needs a stable way to identify which company it represents. Snowflake setup supports two strategies, and you must configure exactly one:
Mark one of your mapped metadata columns as the **lookup key**. BuildBetter uses that column's value to match or create the company. Best when your table already has a clear external identifier like `customer_id` or `account_id`.
Use a stable identifier derived from the source table's primary key columns. The setup UI shows the detected PK columns for the table you selected, so you can confirm the identity before saving. Best when your table has no explicit external ID column but does have a reliable PK.
BuildBetter validates your mapping before saving and will block configurations that don't define exactly one lookup strategy. This prevents accidental misconfiguration where rows could be matched incorrectly or duplicate metadata could be created.
## What Gets Synced
### Companies
| Snowflake column mapping | BuildBetter field | Notes |
| - | - | - |
| Core: `name` | Company name | Used during matching when no lookup key is provided |
| Core: `domain` | Company domain | Used for fallback matching |
| Metadata column | Metadata field | Data type preserved (text, number, boolean) |
| Lookup key column | External identity | Drives match/create behavior for each row |
### Metadata
Mapped metadata columns become first-class metadata fields on the company record, retaining their Snowflake data types so numeric, boolean, and text values are not flattened to strings.
## Sync Behavior
* **Scheduled syncs** run automatically once configured
* **Manual syncs** can be triggered from the integration settings page
* **Lookup key per row** — rows without a valid lookup key are skipped rather than creating incorrect matches or duplicate metadata
* **Credentials refresh** — OAuth tokens refresh automatically; reauthorization is requested only when the token can no longer be renewed
## Security and Privacy
* Access tokens, refresh tokens, and any programmatic credentials are encrypted at rest
* The configuration UI masks sensitive values throughout setup and editing
* BuildBetter only reads from the warehouse, database, schema, and table you select
* You can disconnect the integration at any time to stop all sync activity
## Troubleshooting
### Connection Issues
**"Snowflake authentication failed"**
* Reconnect from **Settings > Integrations > Snowflake**
* Confirm your Snowflake user still has access to the configured warehouse and database
**"Needs Reauthorization"**
* Your refresh token can no longer be renewed
* Click **Reconnect** and complete the OAuth flow again
### Mapping Issues
**Save blocked by validation**
* Ensure exactly one lookup strategy is configured (either a metadata column flagged as the lookup key, or a stable identifier from the table's primary key)
* Confirm all required core fields are mapped if your workflow depends on them
**Primary key columns not showing**
* Verify the source table actually has a primary key defined in Snowflake
* If not, choose the mapped metadata column strategy instead
### Data Issues
**Rows being skipped**
* Rows without a valid lookup key are skipped intentionally to protect against incorrect matches
* Inspect the source table for missing values in the lookup column
**Duplicate companies**
* Confirm your lookup key is unique per company in the source table
* If you recently changed strategies, allow the next sync to settle before evaluating
## Support
Questions about the Snowflake integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
# Tealium Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/cdp/tealium
Connect BuildBetter with Tealium for customer data platform integration
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Tealium Integration Early Access" in the subject line.
Connect BuildBetter with Tealium to sync customer insights with your customer data platform and enrich customer profiles with feedback data.
## Overview
The Tealium integration will enable you to:
* Send BuildBetter insights to Tealium AudienceStream
* Enrich customer profiles with feedback data
* Trigger actions based on customer insights
* Sync customer attributes and behaviors
* Create audience segments based on feedback
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Tealium Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* AudienceStream event tracking
* Customer attribute enrichment
* Real-time event streaming
* Custom audience creation
* Integration with Tealium EventStream
* Tag-based data routing
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Totango Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/cdp/totango
Connect BuildBetter with Totango for customer success and data platform integration
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Totango Integration Early Access" in the subject line.
Connect BuildBetter with Totango to sync customer feedback, insights, and health metrics with your customer success platform.
## Overview
The Totango integration will enable you to:
* Send BuildBetter insights to Totango accounts
* Enrich customer health scores with feedback
* Track customer sentiment in Totango
* Trigger success workflows based on insights
* Link feedback to customer lifecycle stages
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Totango Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Account-level insight synchronization
* Health score enrichment with feedback
* Custom attribute mapping
* TouchPoint activity creation
* SuccessBLOC workflow triggers
* Segment creation based on feedback
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Slack Integration
Source: https://docs.buildbetter.ai/pages/Integrations/chat/slack
Connect BuildBetter with Slack to share call summaries and create signals from customer conversations
**Quick Reference:**
* Want **automatic Signal creation** from a channel? → Run `/bb connect` and select "Import Conversations"
* Want to **push call summaries** to a channel? → Run `/bb connect` and select "Push Summaries"
* Want to **track Topics** from a channel? → Run `/bb connect` and select "Topics Source"
* Want to **make a channel available to workflows**? → Run `/bb connect` and select "Workflows"
* Want to **manually create a Signal** from any message? → Use the `•••` menu (no `/bb connect` needed)
* Want to **submit structured feedback** (with CRM contact lookup)? → Use `/bb feedback`
* Want to **send call summaries from a workflow**? → Use the Slack channel picker in the workflow editor
* Want to **ask BuildBetter questions from Slack**? → Mention the bot or use Slack's AI assistant panel
## What It Does
BuildBetter connects to Slack in four distinct ways:
### Option 1: Channel Connection (Requires `/bb connect`)
Connect entire channels to BuildBetter for automated workflows:
**Push Summaries** - Share call summaries automatically to channels
**Import Conversations** - Automatically monitor and create Signals from channel messages (with live ingestion and backfill)
**Topics Source** - Use a channel as a source for the Topics experience (channels are gated — only channels explicitly set to track topics are processed)
**Workflows** - Make the channel available in workflow Slack actions without setting it up for imports
You **must** run `/bb connect` in a channel to enable automatic Signal creation, push summaries, Topics ingestion, or workflow posting for that channel.
### Option 2: Manual Signal & Feedback Creation
Create Signals or submit feedback on-demand:
* Right-click any message → **Create Signal in BuildBetter** (no `/bb connect` required)
* Run **`/bb feedback`** to open a feedback modal — captures structured customer feedback with CRM contact search and your custom properties
* Works in **any channel** where BuildBetter is installed
### Option 3: Workflow Integration
Slack is a first-class destination inside BuildBetter workflows. The workflow editor includes a **Slack channel picker** for channels connected with **Workflows** or **Push Summaries** — no more manual webhook URLs. Slack actions run through the connected Slack bot with automatic token refresh.
### Option 4: Slack Agent
Use BuildBetter directly from Slack by mentioning the bot in a channel or opening Slack's AI assistant panel. The Slack Agent supports:
* Analysis workflows grounded in BuildBetter data
* Formatted answers with citations
* Charts, highlights, and task results
* Suggested prompts
* Thread-aware conversations so follow-up questions keep context
Slack Agent access follows your BuildBetter organization permissions and the Slack workspace connection.
## Setup Instructions
### Prerequisites
* Active Slack workspace with admin permissions to install apps
* BuildBetter organization admin access
* The Slack channel where you want to connect BuildBetter
### Step 1: Install BuildBetter App in Slack
1. **Connect from BuildBetter**
* Go to Settings → Integrations in BuildBetter
* Find Slack in the Communication category
* Click "Connect"
2. **Authorize in Slack**
* Sign in to your Slack workspace
* Review and approve the permissions
* Click "Allow" to install the app
After installation, BuildBetter is available in your Slack workspace. Now you can choose how to use it:
### Step 2A: Connect a Channel (For Imports, Summaries, Topics, or Workflows)
**Required** if you want automatic Signal creation, automatic call summaries, Topics ingestion, or workflow Slack actions in this channel.
1. **Go to the channel** you want to connect in Slack
2. **Invite BuildBetter** (if private channel): `/invite @BuildBetter`
3. **Run the connect command**: `/bb connect`
4. **Select your organization** from the dropdown
5. **Choose connection type:**
* **Push Summaries** - Share call summaries to this channel
* **Import Conversations** - Automatically scrape messages and create Signals (with live ingestion and backfill)
* **Topics Source** - Make this channel a source for Topics ingestion
* **Workflows** - Make this channel selectable from workflow Slack actions
6. **Click "Confirm"**
**Private confirmation:** The connection confirmation is now shown only to the person who ran `/bb connect`, reducing channel noise for everyone else.
### Step 2B: Manual Signal Creation (No Connection Needed)
You can create Signals manually from **any** message without running `/bb connect`
No setup needed! Once the BuildBetter app is installed, you can:
* Right-click any message
* Select "Create Signal in BuildBetter"
* Works immediately in any channel where BuildBetter is installed
## How to Use
### Using Connected Channels (Requires `/bb connect`)
These features **only work in channels where you've run `/bb connect`**:
#### Push Summaries Mode
**From BuildBetter:**
1. Open any call recording in BuildBetter
2. Click "Share" → "Share to Slack"
3. Select the connected channel
4. BuildBetter posts the summary to that channel
**Automatic Sharing (via Workflows):**
* Set up workflows in BuildBetter to automatically share summaries
* Example: Share all customer success calls to `#customer-success`
#### Workflows Mode
Use **Workflows** mode when a channel should receive workflow messages but should not be imported for Signals or Topics.
* The channel appears in the workflow editor's Slack channel picker
* The channel appears under **Available to workflows** in Slack integration settings
* Workflow posting can be configured without enabling message-history import
**Workflows** and **Push Summaries** remain available even when your Slack app does not have channel-history import permissions. **Import Conversations** is the mode that requires message-history access.
#### Import Conversations Mode
**Automatic Daily Scraping:**
* BuildBetter monitors the connected channel for new messages
* Runs daily to check for customer conversations
* Automatically creates Signals from relevant threads
* No manual action needed—it just works in the background
Automatic Signal creation **only happens** in channels where you ran `/bb connect` and selected "Import Conversations"
### Manual Signal Creation (Works Anywhere)
You can create Signals from **any** message in **any** channel—no `/bb connect` needed:
1. **Hover over the message** you want to turn into a Signal
2. **Click the `•••` menu** (or right-click the message)
3. **Select "Create Signal in BuildBetter"** from the shortcuts menu
4. **Choose the interaction type:**
* **Internal** - For team discussions and internal feedback
* **External** - For customer conversations and support threads
5. **Click "Create"**
6. BuildBetter adds a :memo: reaction and processes the Signal
**What Gets Analyzed:**
* Message text and entire thread
* Sender information (automatically creates people in BuildBetter)
* Timestamp and context
* Channel information
## Message Ingestion Behavior
### Live Ingestion + Backfill
Once a channel is connected with **Import Conversations** or as a **Topics Source**, BuildBetter ingests new messages in near real time and backfills historical messages so you don't lose context.
* **Backfills cover threaded, non-threaded, and single-message conversations** by default
* **Backfill grouping:** Related closed conversations are no longer split into duplicates during backfill
* **Buffered message flushing:** Buffered Slack messages are flushed reliably even if a worker restarts
### Channel Gating for Topics
Only channels explicitly configured to **track topics** are processed for Topics ingestion. This gives admins precise control over which channels contribute to topic discovery — noisy channels can stay connected for other purposes without contaminating topic signal.
### Channel-Purpose Context
When a channel's purpose/description is set in Slack, BuildBetter uses it as context for topic classification, improving naming and routing for topics derived from that channel.
### Edited Messages
When a Slack message is edited:
* The stored conversation text is refreshed so downstream content stays current
* Threaded replies that are edited reprocess correctly so classification, topics, and signal extraction stay accurate
### Multi-Org Shared Channels
For Slack workspaces connected to **multiple BuildBetter organizations** (including shared channels):
* Messages and edits are routed correctly to **every connected org**
* Duplicate creation from repeated imports, retries, or polling is prevented
* Recovery after rate limits resumes imports from the correct cursor without dropping or duplicating messages
### Source Context on Evidence
Signals and evidence from Slack now include clearer source context — the channel name, platform label, and a link back to the original message — so you can always tell where a piece of evidence came from.
## Configuration
### Connection Types
**Push Summaries:**
* Best for: Sharing insights with your team
* Use cases: Post call summaries, share highlights, notify about important conversations
* Permissions needed: Post messages, read channels
**Workflows:**
* Best for: Posting workflow-generated alerts, summaries, and routing updates
* Use cases: Send high-severity signals to a support channel, post account updates, route research findings
* Permissions needed: Post messages to the connected channel
* Settings view: Connected channels appear under **Available to workflows**
**Import Conversations:**
* Best for: Customer support, community channels, feedback channels
* Use cases: Analyze customer issues, track feature requests, monitor sentiment
* Permissions needed: Read message history, post messages, add reactions
* Schedule: Imports run daily by default (configurable)
### Message Import Options
When configuring Import Conversations mode, you have control over how messages are processed:
**Import All Messages**
By default, only threaded conversations (messages with replies) are imported. Enable "Import all messages" to also capture standalone messages without replies. This is ideal for:
* Feedback channels where each post is its own entry
* Announcement channels with individual updates
* Channels where conversations happen in single messages
**Message Grouping**
When importing standalone messages, you can choose how they're processed:
| Setting | Behavior | Best For |
| - | - | - |
| **Group related messages** (default) | AI groups related standalone messages into conversations | General channels with flowing discussions |
| **Treat as separate conversations** | Each standalone message becomes its own conversation | Dedicated feedback channels where each post is independent |
For channels like `#customer-feedback` where each message is a distinct piece of feedback, enable both "Import all messages" and "Treat as separate" to ensure each feedback item is captured individually.
### Managing Connections
**View All Connections:**
* Go to Settings → Integrations → Slack in BuildBetter
* See all connected channels and their types
* Check **Available to workflows** to confirm which channels can be used by workflow Slack actions
* Edit or disconnect channels
**Connect Multiple Channels:**
* Run `/bb connect` in each channel you want to connect
* Each channel can have a different connection type
* You can connect the same workspace to multiple BuildBetter organizations
**Disconnect a Channel:**
* Go to Settings → Integrations → Slack in BuildBetter
* Click "Disconnect" next to the channel
* Or uninstall the BuildBetter app from your Slack workspace
## Slack Commands
Use these commands in any Slack channel where BuildBetter is installed:
**`/bb connect`**
* Connect the current channel to BuildBetter
* Choose Push Summaries, Import Conversations, Topics Source, or Workflows mode
* Must be run in a channel (not DMs)
**`/bb feedback`**
* Open the feedback modal to capture structured customer feedback
* After submission, you'll see a **View in BuildBetter** link to jump straight to the submitted feedback and related insights
**`/bb help`**
* Show available commands and features
* Get quick help without leaving Slack
## Slack Feedback Modal
The `/bb feedback` command opens a modal that mirrors BuildBetter's feedback intake — designed so reps can capture customer input without leaving Slack.
**What's in the modal:**
* **CRM Contact Search** — Search and select **HubSpot** or **Salesforce** contacts directly from the modal. Selecting a contact automatically deduplicates and creates or updates the person record in BuildBetter.
* **Dynamic Custom Properties** — The modal shows all custom properties configured for your organization, with the right input type for each:
* **Text fields** — free-form input
* **Select fields** — single-select dropdowns
* **Hierarchy fields** — multi-select taxonomy nodes with live search and hierarchical display
* **User fields** — pick a teammate
* **Signal Type & Speaker** — set the signal type, attach a speaker (search existing or create new), and add taxonomy tags inline
* **Title & Context** — capture a title and supporting context alongside the message
* **View in BuildBetter** — after submission, jump directly to the feedback record
## Two Ways to Create Signals from Slack
### Automatic (Requires `/bb connect`)
**Setup Required:**
1. Run `/bb connect` in the channel
2. Select "Import Conversations" mode
3. BuildBetter will automatically check for new messages daily
**What Happens:**
* Monitors channel continuously
* Creates Signals from customer conversations automatically
* No manual action needed after setup
Automatic scraping **only works** in channels where you ran `/bb connect` and selected "Import Conversations"
### Manual (Works in Any Channel)
**No Setup Required:**
Use the message `•••` menu to create Signals on-demand
**How to Use:**
1. Hover over **any** Slack message
2. Click the `•••` menu (message actions)
3. Select "Create Signal in BuildBetter"
4. Choose Internal or External interaction type
5. Click "Create"
**What Happens:**
* BuildBetter processes the message and thread immediately
* Creates a new Signal with extracted topics, impacts, and emotions
* Adds a :memo: reaction to the original message
* Posts a confirmation in the thread
* Signal appears in your BuildBetter dashboard with link to original Slack message
Manual Signal creation works in **any** channel where BuildBetter is installed—even if you haven't run `/bb connect`
## Troubleshooting
### Installation Issues
**"BuildBetter is not authorized"**
* Go to Settings → Integrations in BuildBetter and reconnect
* Make sure you have permission to install apps in your Slack workspace
* Check with your Slack admin if app installations are restricted
**"/bb connect doesn't work"**
* Make sure you're in a channel (not a DM)
* Verify BuildBetter is installed in your workspace
* Try `/invite @BuildBetter` first, then `/bb connect`
**"You need to update your app connection"**
* BuildBetter added new features that require additional permissions
* Go to Settings → Integrations → Slack in BuildBetter
* Click "Reconnect" to reauthorize with updated permissions
### Connection Issues
**"You are not connected to any organization"**
* First connect Slack in BuildBetter: Settings → Integrations → Slack
* Make sure you authorized the app
* Then run `/bb connect` in your Slack channel
**"You are already connected this channel"**
* The channel is already connected to a BuildBetter organization
* Go to Settings → Integrations → Slack to manage existing connections
* Disconnect first if you want to change the connection type
### Message Import Issues
**"Signals not being created automatically"**
* Verify the channel is connected with "Import Conversations" mode
* Check that the import schedule is active (daily by default)
* Ensure BuildBetter has "channels:history" or "groups:history" permission
* Messages must have text content (attachments-only messages aren't supported)
**"Can't create Signal from message"**
* Message must contain text (not just images or attachments)
* BuildBetter must be invited to the channel
* You must be connected to a BuildBetter organization
* Check billing credits haven't been exceeded
**"Signal creation says not enough credits"**
* Your BuildBetter plan has run out of conversation import credits
* Check your billing status in BuildBetter
* Contact BuildBetter support to upgrade your plan
### Push Summary Issues
**"Can't share to Slack channel"**
* Verify the channel is connected with "Push Summaries" mode
* Check that BuildBetter is still invited to the channel
* Ensure the Slack app hasn't been uninstalled
* Try reconnecting in Settings → Integrations
**"Private channel won't receive summaries"**
* BuildBetter must be explicitly invited to private channels
* Type `/invite @BuildBetter` in the private channel
* Then run `/bb connect` to set up the connection
## Privacy & Security
**Channel Access:**
* BuildBetter only reads channels where it's explicitly invited
* Private channel messages are only accessible if BuildBetter is a member
* You control which channels are connected
**Data Handling:**
* All data is encrypted in transit and at rest
* OAuth tokens are securely stored
* BuildBetter only accesses the channels you configure
* You can disconnect at any time
**Message Visibility:**
* Imported messages respect Slack's privacy settings
* Signals created from Slack are visible to your BuildBetter organization
* You control who in BuildBetter can see imported conversations
## Best Practices
**Start with Customer-Facing Channels**
Connect channels like `#customer-support` or `#feedback` first to maximize Signal value.
**Choose the Right Mode**
* Use "Push Summaries" for internal team channels where you want to share insights
* Use "Import Conversations" for channels with customer feedback and support requests
**Use Message Shortcuts for Quick Signals**
Right-click any important message and create a Signal immediately—don't wait for automatic import.
**Set Up Multiple Channels**
Connect different channels with different modes based on how your team uses Slack.
**Review Signals Regularly**
Check your BuildBetter Signals dashboard to see what's being extracted from Slack.
**Notify Channel Members**
Let your team know BuildBetter is monitoring the channel and creating Signals from conversations.
## Slack in Workflows
Slack steps inside BuildBetter workflows use the connected Slack bot — no webhook URLs to copy around:
* **Channel Picker:** Choose a channel connected with **Workflows** or **Push Summaries** directly from a dropdown in the workflow editor
* **Available to Workflows:** Slack settings list the channels that workflow actions can use
* **Automatic Token Refresh:** Slack actions keep working even after tokens rotate
* **Better Setup Guidance:** Errors and missing-channel states are surfaced clearly inside the editor
* **Real Error Messages:** When a Slack step fails, you see the actual channel error rather than a generic failure
You can also send **Slack thread updates** from custom object pages so the channel stays in the loop on status changes.
## Workspace-Level Integration
* One Slack workspace can connect to multiple BuildBetter organizations
* Each channel can only be connected to one BuildBetter organization at a time
* Shared channels across multiple connected orgs are handled correctly — messages and edits route to every connected org
* If multiple team members connect Slack, they share the same workspace integration
* Uninstalling the BuildBetter app removes all channel connections
## Support
Need help with Slack integration?
* Type `/bb help` in any Slack channel where BuildBetter is installed
* Check connection status in Settings → Integrations → Slack
* Verify BuildBetter is invited to the channel
* Contact BuildBetter support with your workspace name and channel details
# Discord Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/communication/discord
Connect BuildBetter with Discord for community conversation insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Discord Integration Early Access" in the subject line.
Connect BuildBetter with Discord to analyze community conversations, extract customer feedback, and gain insights from your Discord servers.
## Overview
The Discord integration will enable you to:
* Import conversations from Discord channels for AI analysis
* Extract customer feedback and feature requests from community discussions
* Identify trending topics and sentiment across your Discord community
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Discord Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Channel Sync**: Import messages from specific Discord channels
* **Thread Analysis**: Analyze Discord threads for customer feedback and issues
* **Sentiment Tracking**: Monitor community sentiment over time
* **Topic Detection**: Identify trending topics and frequently discussed features
* **Voice Channel Transcription**: Record and transcribe Discord voice conversations
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Google Chat Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/communication/google-chat
Connect BuildBetter with Google Chat for Google Workspace team communication insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Google Chat Integration Early Access" in the subject line.
Connect BuildBetter with Google Chat to analyze team conversations, extract insights, and integrate with your Google Workspace ecosystem.
## Overview
The Google Chat integration will enable you to:
* Import conversations from Google Chat spaces for analysis
* Extract action items and decisions from team discussions
* Integrate seamlessly with other Google Workspace tools
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Google Chat Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Space Sync**: Import messages from Google Chat spaces and rooms
* **Thread Intelligence**: Analyze threaded conversations for insights
* **Action Item Extraction**: Automatically identify tasks and commitments
* **Google Workspace Integration**: Connect with Meet, Calendar, and Drive
* **Search & Discovery**: Make Chat conversations searchable in BuildBetter
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Loom Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/communication/loom
Connect BuildBetter with Loom for async video message insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Loom Integration Early Access" in the subject line.
Connect BuildBetter with Loom to automatically analyze video messages, extract insights, and create searchable knowledge from your team's async video communications.
## Overview
The Loom integration will enable you to:
* Automatically import Loom videos and transcripts for AI analysis
* Extract insights from product demos, updates, and team communications
* Create searchable documentation from video content
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Loom Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Video Import**: Automatically sync Loom videos and transcripts
* **Content Analysis**: Extract key points from product demos and walkthroughs
* **Action Item Detection**: Identify tasks and follow-ups from video messages
* **Knowledge Base**: Create searchable repository of video content
* **Topic Categorization**: Automatically organize videos by topic and purpose
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Mattermost Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/communication/mattermost
Connect BuildBetter with Mattermost for secure team communication insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Mattermost Integration Early Access" in the subject line.
Connect BuildBetter with Mattermost to analyze team communications in your self-hosted or private cloud environment while maintaining security and compliance.
## Overview
The Mattermost integration will enable you to:
* Import conversations from Mattermost channels for AI analysis
* Extract insights while maintaining data sovereignty
* Analyze team communications in secure, compliant environments
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Mattermost Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Channel Import**: Sync messages from Mattermost channels and teams
* **Self-Hosted Support**: Compatible with self-hosted Mattermost instances
* **Compliance-Ready**: Maintain data sovereignty and security requirements
* **Thread Analysis**: Extract insights from threaded conversations
* **Search Integration**: Make Mattermost content searchable in BuildBetter
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Microsoft Teams Integration
Source: https://docs.buildbetter.ai/pages/Integrations/communication/ms-teams
Connect BuildBetter with Microsoft Teams for seamless recording and collaboration
BuildBetter's Microsoft Teams integration enables automatic recording and transcription of your Teams meetings, providing valuable insights and documentation without any manual effort.
## Features
* **Automatic Meeting Recording**: Schedule and record Teams meetings directly from Outlook
* **Ad-hoc Call Recording**: Join any ongoing Teams call with the BuildBetter bot
* **Transcript Generation**: Get detailed transcripts with speaker identification
* **Meeting Summarization**: AI-powered summaries of your Teams calls
* **Custom Bot Appearance**: Customize how the BuildBetter bot appears in your calls
## Setup Instructions
### Prerequisites
* An active BuildBetter account with Microsoft Teams integration enabled
* Microsoft 365 account with Teams access
* Admin permissions (for organization-wide setup)
### Connecting Your Account
1. Go to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Microsoft Teams** from the available integrations
3. Click **Connect** and authorize BuildBetter to access your Microsoft account
4. Follow the authentication prompts to complete the connection
### Setting Up Recording Rules
Once connected, you can configure when and how the BuildBetter bot joins your Teams meetings:
1. Navigate to **Settings → Recording Rules**
2. Create a new rule specifically for Teams meetings
3. Configure your preferences:
* Meeting title keywords (optional)
* Participant email domains
* Bot joining time (before or after scheduled start)
* Recording visibility settings
## Usage
### Scheduled Recordings
When you schedule a meeting in Outlook or Teams, the BuildBetter bot will automatically join based on your recording rules.
### Manual Recording
To record an ongoing Teams meeting:
1. Go to your BuildBetter dashboard
2. Click **+ Record** button
3. Enter the Teams meeting URL
4. Select **Join Now**
## Troubleshooting
### Bot Not Joining Meetings
* Verify your Microsoft account connection in BuildBetter settings
* Check if your recording rules exclude the meeting
* Ensure your Microsoft 365 account has the necessary permissions
### Permission Issues
If participants cannot see the bot:
* Ask the meeting organizer to admit the bot from the waiting room
* Verify organization settings allow external participants
## Limitations
* Microsoft Teams recordings require the Teams desktop client (not supported in browser-only)
* Some features may be limited depending on your Microsoft 365 license
# Twist Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/communication/twist
Connect BuildBetter with Twist for async communication insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Twist Integration Early Access" in the subject line.
Connect BuildBetter with Twist to analyze threaded, asynchronous team conversations and extract insights from your organized discussions.
## Overview
The Twist integration will enable you to:
* Import threaded conversations from Twist for AI analysis
* Extract insights from organized, asynchronous discussions
* Track decisions and action items across threads
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Twist Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Thread Import**: Sync conversations from Twist threads and channels
* **Organized Analysis**: Leverage Twist's thread structure for better insights
* **Decision Tracking**: Identify and track decisions made in async discussions
* **Topic Detection**: Automatically categorize threads by topic
* **Knowledge Base**: Create searchable documentation from Twist threads
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Vidyard Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/communication/vidyard
Connect BuildBetter with Vidyard for video communication and sales insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Vidyard Integration Early Access" in the subject line.
Connect BuildBetter with Vidyard to analyze video messages, sales demos, and customer communications for AI-powered insights.
## Overview
The Vidyard integration will enable you to:
* Import Vidyard videos and transcripts for AI analysis
* Extract insights from sales videos and customer communications
* Track engagement and outcomes from video outreach
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Vidyard Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Video Sync**: Import Vidyard videos and transcripts to BuildBetter
* **Sales Intelligence**: Extract insights from sales demos and pitches
* **Engagement Analysis**: Connect video engagement data with conversation insights
* **Customer Communications**: Analyze personalized video messages to customers
* **CRM Integration**: Link Vidyard content to customer records
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Workplace from Meta Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/communication/workplace
Connect BuildBetter with Workplace for enterprise communication insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Workplace from Meta Integration Early Access" in the subject line.
Connect BuildBetter with Workplace from Meta to analyze enterprise team communications and extract insights from your organization's collaboration platform.
## Overview
The Workplace from Meta integration will enable you to:
* Import conversations from Workplace groups for analysis
* Extract insights from posts, comments, and discussions
* Track organizational knowledge and communication patterns
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Workplace from Meta Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Group Sync**: Import content from Workplace groups and pages
* **Post Analysis**: Analyze posts, comments, and reactions for insights
* **Video Intelligence**: Extract insights from Workplace Live and uploaded videos
* **Knowledge Extraction**: Build searchable knowledge base from Workplace content
* **Engagement Metrics**: Track communication patterns and engagement trends
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Zoom Team Chat Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/communication/zoom-team-chat
Connect BuildBetter with Zoom Team Chat for unified communication insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Zoom Team Chat Integration Early Access" in the subject line.
Connect BuildBetter with Zoom Team Chat to analyze team conversations and integrate with your Zoom meeting insights for comprehensive communication intelligence.
## Overview
The Zoom Team Chat integration will enable you to:
* Import conversations from Zoom Team Chat channels
* Connect chat insights with Zoom meeting recordings
* Extract action items and decisions from team discussions
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Zoom Team Chat Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Channel Sync**: Import messages from Zoom Team Chat channels
* **Meeting Context**: Connect chat conversations with related Zoom meetings
* **Thread Analysis**: Extract insights from threaded discussions
* **Unified Search**: Search across both Zoom chats and meetings
* **Action Tracking**: Identify and track commitments from chat conversations
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Attio Integration (Beta)
Source: https://docs.buildbetter.ai/pages/Integrations/crm/attio
Connect BuildBetter with Attio for bidirectional CRM sync and call summary exports
Connect BuildBetter with Attio to automatically sync contacts and companies between both platforms, and export call summaries as notes linked to your Attio records.
## Features
* **Bidirectional People Sync**: Import and update contacts from Attio, with automatic matching by email address
* **Company Sync**: Keep company records synchronized between BuildBetter and Attio
* **Call Summary Export**: Automatically export BuildBetter call summaries as Attio notes, linked to relevant people and companies
* **Custom Field Mapping**: Map Attio's custom attributes to BuildBetter fields
* **Flexible Sync Modes**: Choose to sync all records or only match existing ones
## How It Works
BuildBetter connects to Attio via OAuth2, providing secure access to sync your CRM data. The integration runs automatically every 4 hours to keep your data current.
**Sync Direction**: Bidirectional (Attio to BuildBetter for contacts/companies, BuildBetter to Attio for call notes)
## Setup Guide
### Prerequisites
1. **Attio Requirements:**
* Attio account with API access
* Admin or owner permissions for OAuth authorization
2. **BuildBetter Requirements:**
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
1. **Connect Attio**
* Go to **Settings > Integrations** in BuildBetter
* Find Attio in the CRM section and click **Connect**
* You'll be redirected to Attio to authorize the connection
* Grant the requested permissions and confirm
2. **Configure Sync Settings**
* **Import People and Companies**: Enable to pull contacts from Attio into BuildBetter
* **Sync Mode**: Choose between:
* *Match Existing* (default): Only update records that already exist in BuildBetter
* *Sync All*: Import all Attio records, creating new ones as needed
* **Export Call Summaries**: Enable to send BuildBetter call summaries to Attio as notes
3. **Select Fields to Sync**
* BuildBetter automatically discovers available Attio attributes
* Choose which people fields to sync (email, name, job title, phone, company, etc.)
* Choose which company fields to sync (domains, name, description, etc.)
## What Gets Synced
### People (Contacts)
| Attio Field | BuildBetter Field | Notes |
| - | - | - |
| Email addresses | Email | Primary matching field |
| Name | First/Last Name | Parsed automatically |
| Job title | Title | |
| Phone numbers | Phone | |
| Company | Company link | Links to synced companies |
| Description | Bio | |
| LinkedIn, Twitter | Social profiles | |
| Avatar | Profile image | |
| Custom attributes | Metadata | Automatically discovered |
### Companies
| Attio Field | BuildBetter Field | Notes |
| - | - | - |
| Domains | Domain | Primary matching field |
| Name | Company name | |
| Description | Description | |
| LinkedIn, Twitter | Social profiles | |
| Team members | Related people | |
| Custom attributes | Metadata | Automatically discovered |
### Call Summary Notes
When you enable call summary export, BuildBetter creates formatted notes in Attio containing:
* Call date and duration
* Participant list
* AI-generated summary
* Link back to the full call in BuildBetter
Notes are automatically linked to:
* **People**: Matched by participant email addresses
* **Companies**: Matched by email domain
## Sync Behavior
### Automatic Sync
* Runs every 4 hours
* Processes up to 10,000 records per sync cycle
* Uses pagination for large datasets
### Matching Logic
* **People**: Matched by email address
* **Companies**: Matched by domain
* Existing records are updated; new records created based on sync mode
### Conflict Resolution
* BuildBetter respects Attio as the source of truth for contact/company data
* Call summary notes are additive (never overwrite existing Attio notes)
## Troubleshooting
### Connection Issues
**"Needs Reauthorization" Status**
* Your OAuth token has expired
* Click **Reconnect** in integration settings
* Re-authorize with Attio
**Sync Errors**
* Check that your Attio account still has API access
* Verify you have permission to access the records being synced
* Review the integration logs in BuildBetter for specific error messages
### Data Not Syncing
* Confirm the integration status shows "Active"
* Check your sync mode setting (Match Existing vs Sync All)
* Verify the fields you want are selected in the sync configuration
* Allow up to 4 hours for the next automatic sync, or trigger a manual sync
## Privacy & Data
* BuildBetter only accesses Attio data you explicitly authorize
* Contact and company data is stored securely in your BuildBetter workspace
* Call summary notes exported to Attio remain in your Attio workspace
* You can disconnect at any time to stop all data sync
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
# Close Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/crm/close
Connect BuildBetter with Close for sales communication intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Close Integration Early Access" in the subject line.
Connect BuildBetter with Close to enhance your sales CRM with AI-powered conversation insights and communication intelligence.
## Overview
The Close integration will enable you to:
* Sync conversation insights to Close leads and opportunities
* Automatically track call outcomes and customer sentiment
* Enhance sales productivity with automated conversation summaries
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Close Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Call Intelligence**: Sync conversation insights from BuildBetter to Close call activities
* **Lead Enrichment**: Automatically update lead records with conversation insights
* **Opportunity Tracking**: Add conversation context to opportunity records
* **Custom Activities**: Create custom activity types for different conversation outcomes
* **Smart Views**: Filter and segment leads based on conversation insights
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Copper Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/crm/copper
Connect BuildBetter with Copper for Google Workspace-native CRM intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Copper Integration Early Access" in the subject line.
Connect BuildBetter with Copper to enhance your Google Workspace CRM with AI-powered conversation insights and customer intelligence.
## Overview
The Copper integration will enable you to:
* Sync conversation insights directly into Copper opportunities and contacts
* Automatically track customer interactions from Google Meet and Gmail
* Maintain unified customer context across your Google Workspace
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Copper Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Seamless Google Integration**: Works natively with Google Meet, Calendar, and Gmail
* **Opportunity Insights**: Enrich Copper opportunities with conversation intelligence
* **Activity Sync**: Automatically log conversation summaries as activities
* **People Intelligence**: Update contact records with insights from customer conversations
* **Pipeline Analytics**: Enhance pipeline reporting with conversation sentiment and topics
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Folk Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/crm/folk
Connect BuildBetter with Folk for relationship-focused CRM intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Folk Integration Early Access" in the subject line.
Connect BuildBetter with Folk to enhance your relationship management with conversation insights and customer intelligence.
## Overview
The Folk integration will enable you to:
* Enrich Folk contacts with AI-generated insights from conversations
* Automatically track customer interactions and touchpoints
* Build stronger relationships with conversation context
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Folk Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Contact Enrichment**: Add conversation insights and notes to Folk contact records
* **Relationship Tracking**: Monitor customer relationship health through conversation analysis
* **Smart Tags**: Automatically tag contacts based on conversation topics and sentiment
* **Group Intelligence**: Share insights across teams using Folk's collaborative features
* **Pipeline Integration**: Connect conversation insights to your relationship pipelines
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# HubSpot Integration
Source: https://docs.buildbetter.ai/pages/Integrations/crm/hubspot
Connect BuildBetter with HubSpot to sync contacts, companies, tickets, and push meeting summaries back to HubSpot
## What You Can Sync
**From HubSpot to BuildBetter:**
* Contacts → People
* Companies → Companies
* Tickets → Conversations
**From BuildBetter to HubSpot:**
* Meeting summaries → Meeting engagements on contacts and companies
## Setup Instructions
### Prerequisites
* Active HubSpot account with appropriate permissions
* BuildBetter organization admin access
### Connection Steps
1. **Navigate to Integrations**
* Go to Settings → Integrations in BuildBetter
* Find HubSpot in the CRM category
2. **Connect Your Account**
* Click "Connect" to authorize BuildBetter
* Sign in to your HubSpot account if needed
* Review and approve the permissions BuildBetter needs to sync your data
3. **Configure Sync Settings**
After connecting, choose which data to sync (see Configuration Options below)
## Configuration Options
### Sync Contacts & Companies
**Toggle:** Sync Contacts & Companies
Enable this to sync HubSpot Contacts and Companies to BuildBetter's People and Companies.
**Contact Properties to Sync:**
Choose which contact fields to sync. By default, we sync:
* Email (required)
* First name
* Last name
* Associated company
**Additional contact properties you can sync:**
* Phone numbers (phone, mobilephone)
* Address fields (address, city, state, zip, country)
* Company info (company name, job title, website)
* Lifecycle data (lifecycle stage, close date, original source)
* Activity timestamps (last contacted, last activity date)
**Company Properties to Sync:**
Choose which company fields to sync. By default, we sync:
* Name (required)
* Domain (required)
**Additional company properties you can sync:**
* Basic info (website, description)
* Address fields (address, city, state, country, phone)
* Business data (industry, annual revenue, number of employees)
* Owner and relationships (HubSpot owner, parent company)
* Social media (LinkedIn, Twitter, Facebook pages)
#### Syncing Custom Properties
You can sync **any property** from HubSpot—not just the ones listed above. This includes custom properties specific to your HubSpot account.
**How to add a custom property:**
1. **Find the property in HubSpot**
* Go to Settings (gear icon) → Data Management → Properties in HubSpot
* Select the object type (Contact properties or Company properties)
* Find the property you want to sync
2. **Get the internal name**
* Click on the property to view its details
* Copy the **Internal name** (shown below the property label)
* This is what you'll enter in BuildBetter
3. **Add the property in BuildBetter**
* Go to Settings → Integrations → HubSpot in BuildBetter
* Scroll to "Contact Properties Allowlist" or "Company Properties Allowlist"
* Type the exact internal name from HubSpot
* Click "Add"
4. **Verify it was added**
* The property will appear in your sync list
* It will be synced on the next sync cycle (every 4 hours)
The internal name must match exactly (case-sensitive). For example, if HubSpot shows the internal name as `annualrevenue`, you must enter `annualrevenue` in BuildBetter—not `AnnualRevenue` or `annual_revenue`.
### Sync Tickets to Conversations
**Toggle:** Sync Tickets to Conversations
Enable this to pull HubSpot support tickets into BuildBetter Conversations.
**What gets imported:**
* Ticket details (subject, content, status)
* Ticket owner
* Associated contacts and companies
* All conversation threads and messages
* Email exchanges and activities
* Comments and internal notes
### Recording Summaries to Contacts
**Toggle:** Recording Summaries to Contacts
Enable this to automatically push BuildBetter meeting summaries to HubSpot as Meeting engagements.
**What gets created in HubSpot:**
* Meeting record with title, date, and time
* AI-generated summary in the meeting body
* Full summary and recording link in internal notes
* Automatic association with meeting attendees (as HubSpot contacts)
* Automatic association with attendee companies
**Behavior:**
* Creates new HubSpot contacts if attendees don't exist
* Won't create duplicate meetings (checks by title and time)
* Only updates missing fields on existing meetings
## Sync Schedule
The integration syncs automatically **every 4 hours**:
* First sync pulls data from the last 5 days
* Subsequent syncs only pull new or updated records
* Incremental contact syncs use HubSpot's reliable update timestamp to avoid missed records
You can also manually trigger a full sync from the integration settings.
## Slack CRM Contact Search
When capturing feedback in Slack, you can search for and select an existing HubSpot contact directly from the feedback modal. BuildBetter automatically deduplicates the contact and creates or updates the matching person record, keeping your feedback tied to the right HubSpot identity without leaving Slack.
## Meeting Export Validation
When BuildBetter pushes meeting summaries to HubSpot, meetings with invalid time ranges (for example, an end time before the start time) are skipped safely so they never break the sync. The rest of the export continues normally and the affected meeting is logged for review.
## Troubleshooting
### Connection Issues
**"HubSpot authentication failed"**
* Disconnect and reconnect the integration
**Sync shows "error" status**
* Check the error message in Settings → Integrations
* Try reconnecting the integration
### Data Not Syncing
**Contacts not appearing in BuildBetter**
* Make sure "Sync Contacts & Companies" is enabled
* Verify contacts have email addresses (required for sync)
* Check that contacts were recently modified (within the sync window)
* Wait for the next sync (every 4 hours) or trigger a manual sync
**Companies not linked to contacts**
* Verify contacts have an associated company in HubSpot
* Ensure the company has a valid domain (non-personal email domains like gmail.com won't sync)
**Tickets missing conversations**
* Make sure "Sync Tickets to Conversations" is enabled
* Verify your HubSpot account has access to tickets and conversations
* Check that the ticket was recently updated
**Meeting summaries not appearing in HubSpot**
* Verify "Recording Summaries to Contacts" is enabled
* Ensure meeting attendees have email addresses
* Check that the recording has finished processing in BuildBetter
* Look for the meeting in HubSpot under the attendee's contact record
## Support
Need help?
* Check your connection status: Settings → Integrations → HubSpot
* Contact BuildBetter support with your connection ID and any error messages
# Microsoft Dynamics 365 Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/crm/microsoft-dynamics-365
Connect BuildBetter with Dynamics 365 for enterprise CRM intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Microsoft Dynamics 365 Integration Early Access" in the subject line.
Connect BuildBetter with Microsoft Dynamics 365 to enrich your enterprise CRM with AI-powered conversation intelligence and customer insights.
## Overview
The Microsoft Dynamics 365 integration will enable you to:
* Sync customer conversations and insights into Dynamics 365 records
* Automatically update accounts, contacts, and opportunities with call insights
* Leverage BuildBetter's AI within your Microsoft ecosystem
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Microsoft Dynamics 365 Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Entity Sync**: Automatically sync insights to Accounts, Contacts, Leads, and Opportunities
* **Activity Tracking**: Log conversation summaries as activities in Dynamics 365
* **Custom Fields**: Map BuildBetter insights to your custom Dynamics 365 fields
* **Sales Insights**: Enhance Dynamics 365 Sales Insights with BuildBetter's AI analysis
* **Power Automate**: Trigger workflows based on conversation insights and sentiment
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Pipedrive Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/crm/pipedrive
Connect BuildBetter with Pipedrive for sales pipeline intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Pipedrive Integration Early Access" in the subject line.
Connect BuildBetter with Pipedrive to enrich your sales pipeline with conversation insights and AI-powered customer intelligence.
## Overview
The Pipedrive integration will enable you to:
* Automatically sync conversation insights to Pipedrive deals and contacts
* Track customer sentiment and key topics throughout the sales pipeline
* Enhance deal forecasting with conversation intelligence
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Pipedrive Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Deal Intelligence**: Add conversation insights and summaries to Pipedrive deals
* **Activity Logging**: Automatically log call summaries and key insights as activities
* **Custom Fields**: Map conversation data to Pipedrive custom fields
* **Contact Enrichment**: Update contact records with insights from conversations
* **Workflow Automation**: Trigger Pipedrive automations based on conversation outcomes
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Salesforce Integration
Source: https://docs.buildbetter.ai/pages/Integrations/crm/salesforce
Connect BuildBetter with Salesforce to sync contacts, accounts, cases, and custom objects, and push meeting summaries
## What You Can Sync
**From Salesforce to BuildBetter:**
* Contacts → People
* Accounts → Companies
* Cases → Conversations (with all associated messages and emails)
* Custom Objects → Company-related records for filtering and reporting (subscriptions, licenses, contracts, etc.)
**From BuildBetter to Salesforce:**
* Meeting summaries → Event records on contacts and accounts
## Setup Instructions
### Prerequisites
* Active Salesforce account (Enterprise, Unlimited, or Professional edition)
* Salesforce API access enabled
* BuildBetter organization admin access
### Connection Steps
Go to **Settings → Integrations** in BuildBetter and find **Salesforce** in the CRM category.
Before signing in, choose whether to connect to a **Production** or **Sandbox** Salesforce environment. BuildBetter routes OAuth to the correct endpoint, and your environment selection is preserved for token refresh.
Click **Connect** to start OAuth authorization, sign in to Salesforce, and approve the permissions BuildBetter needs to sync your data.
After connecting, choose which data to sync (see Configuration Options below).
**Sandbox Support:** Choose Production or Sandbox before connecting. The environment selection is sticky across token refreshes, so you won't need to reconfigure when tokens rotate.
## Configuration Options
### Sync Contacts & Companies
**Toggle:** Sync Contacts & Companies
Enable this to sync Salesforce Contacts and Accounts to BuildBetter's People and Companies.
**Contact Fields to Sync:**
Choose which contact fields to sync. Default fields include:
* Id, FirstName, LastName (required)
* Email, Phone, MobilePhone
* Title, Department
* AccountId (for company linking)
* Mailing address fields
* CreatedDate, LastModifiedDate
**Additional contact fields you can sync:**
* LeadSource
* OtherPhone, Fax
* Full mailing address (Street, City, State, PostalCode, Country)
* Description and custom fields
**Account Fields to Sync:**
Choose which account fields to sync. Default fields include:
* Id, Name (required)
* Website, Phone
* Type, Industry
* NumberOfEmployees, AnnualRevenue
* Description
* CreatedDate, LastModifiedDate
**Additional account fields you can sync:**
* Billing address fields (Street, City, State, PostalCode, Country)
* ParentId (for account hierarchies)
* Custom fields specific to your Salesforce org
### Import Cases to Conversations
**Toggle:** Import Cases to Conversations
Enable this to pull Salesforce support cases into BuildBetter Conversations.
**What gets imported:**
* Case details (number, subject, description, status, priority, type)
* Case owner and contact information
* All case feed items (comments and posts)
* Email messages related to the case
* Live chat transcripts (if available in your Salesforce org)
* Messaging session data (if available in your Salesforce org)
* Full conversation history with proper attribution
**Feature Detection:**
BuildBetter automatically detects which conversation features are available in your Salesforce org and only syncs supported data types. Not all Salesforce editions have Live Chat or Messaging Sessions.
**Filter by Case Reason:**
You can limit Case imports to specific Case Reasons. After enabling Case import, select the Case Reasons you want to bring into BuildBetter — everything else is skipped. This is useful for narrowing imports to support, churn, or feedback-driven cases while keeping sales/internal cases out.
**Email-to-Case Matching:**
When importing Email Messages on Cases, BuildBetter now uses the actual sender email to attribute messages to the correct person, reducing incorrect thread attribution from forwarded or relay senders.
### Custom Object Sync
**Toggle:** Sync Custom Objects
Sync related Salesforce records — such as subscriptions, licenses, contract line items, or any custom object — into BuildBetter for richer filtering, reporting, and segmentation.
**How it works:**
* Pick the Salesforce custom object(s) you want to sync
* Map the relationship back to a Salesforce Account (so records land on the right BuildBetter company)
* Choose which fields to surface as company metadata in BuildBetter
* Records sync on the same schedule as the rest of the integration
**Use cases:**
* Filter signals and conversations by subscription tier
* Segment dashboards by license count or contract value
* Surface renewal dates and product entitlements next to customer feedback
Custom Object Sync is especially useful for teams whose "true" account data — MRR, plan tier, seat count — lives in custom objects rather than the standard Account record.
### Recording Summaries to Contacts
**Toggle:** Recording Summaries to Contacts
Enable this to automatically push BuildBetter meeting summaries to Salesforce as Event records.
**What gets created in Salesforce:**
* Event record with meeting subject, start time, and end time
* AI-generated summary in the Description field
* Recording URL in the Location field
* Automatic association with meeting attendees (as WhoId)
* Automatic association with attendee accounts (as WhatId)
**Behavior:**
* Finds or creates Salesforce contacts for meeting attendees by email
* Links events to existing accounts when contacts have associated accounts
* Won't create duplicate events (checks by contact, start time, and call ID)
* Updates are idempotent - safe to run multiple times
## How It Works
### Sync Schedule
The Salesforce integration syncs automatically **every 4 hours** using an incremental sync strategy:
* **Incremental Sync:** Only fetches records modified since the last successful sync
* **Full Sync:** Can be manually triggered to sync all records
* **Lookback Window:** First sync or full sync defaults to last 5 days of data
### Sync Process
1. **Accounts First:** Salesforce accounts are synced first to establish company relationships
2. **Contacts Second:** Contacts are synced and linked to their associated accounts
3. **Cases Last:** Cases are synced with all conversation threads and participant data
### Data Matching
**Contacts:**
* Primary matching by email address
* Creates new person in BuildBetter if not found
* Email and phone matching enabled by default
* Links to company via Salesforce AccountId
**Accounts:**
* Matched by website domain or company name
* Linked to contacts via Salesforce's AccountId relationship
* Additional account metadata stored as custom fields
**Cases:**
* Unique by Salesforce Case ID
* Fetches all conversation sources (feed items, emails, live chat, messaging)
* Automatically detects which features are available in your org
* Creates full conversation thread with proper message ordering
### Meeting Summary Push
When a recording is completed in BuildBetter:
1. Job queued to push summary to Salesforce
2. For each meeting attendee:
* Find or create Salesforce contact by email
* Get associated account if contact has one
3. Create Event record with summary
4. Associate Event with contact (WhoId) and account (WhatId)
5. Include recording URL in Location field
## Troubleshooting
### Connection Issues
**"Salesforce authentication failed" / "Needs reauthorization"**
* Expired or invalid Salesforce connections are now clearly marked as needing reauthorization in the integration list. Click **Reconnect** to refresh the OAuth grant.
* Make sure you're connecting to the right environment — Production vs. Sandbox is selected before sign-in and preserved across token refreshes.
* Verify you have API access enabled in Salesforce and that your edition supports API access.
**Sync shows "error" status**
* Check the error message in Settings → Integrations
* Verify you haven't exceeded Salesforce API limits
* Try reconnecting the integration
### Data Not Syncing
**Contacts not appearing in BuildBetter**
* Make sure "Sync Contacts & Companies" is enabled
* Verify contacts have email addresses (recommended for matching)
* Check that contacts were recently modified (within the sync window)
* Wait for the next sync (every 4 hours) or trigger a manual sync
**Accounts not linked to contacts**
* Verify contacts have an AccountId in Salesforce
* Ensure the account has a valid website domain
* Check that the account record exists and is not deleted
**Cases missing conversations**
* Make sure "Import Cases to Conversations" is enabled
* Verify your Salesforce edition includes Case support
* Check that the case has a subject or description
* Some conversation features (Live Chat, Messaging) may not be available in all Salesforce editions
**Case messages incomplete**
* BuildBetter automatically detects available features in your org
* If you don't see email messages or live chat, these features may not be enabled in your Salesforce org
* Check Salesforce permissions for accessing FeedItems, EmailMessages, etc.
**Cases I expected aren't being imported**
* Check whether you've enabled the **Case Reason filter** — only Cases matching the selected Reasons are imported
* Add the missing Case Reasons to the filter or clear it to import everything
**Custom Object records not appearing**
* Confirm Custom Object Sync is enabled and the right objects are selected
* Verify the Account relationship field is mapped — records without a linked Account can't be attributed to a BuildBetter company
* Check that the BuildBetter integration user has read access to the custom object and its fields
**Meeting summaries not appearing in Salesforce**
* Verify "Recording Summaries to Contacts" is enabled
* Ensure meeting attendees have email addresses
* Check that the recording has finished processing in BuildBetter
* Verify contacts exist in Salesforce or will be created automatically
### Permission Issues
**"Insufficient permissions" errors**
* Re-authorize the integration to grant all required permissions
* Verify you have API access in Salesforce
* Check that your Salesforce profile allows creating Events
* Ensure you have read access to Contacts, Accounts, and Cases
**Field-level security blocking sync**
* Some custom fields may have field-level security restrictions
* Check Salesforce field accessibility settings
* BuildBetter will sync available fields and skip restricted ones
## Salesforce Editions
**Supported Editions:**
* Enterprise Edition ✅ (Full API access)
* Unlimited Edition ✅ (Full API access)
* Professional Edition ✅ (API access may require add-on)
* Developer Edition ✅ (Limited API calls)
**API Limits:**
* Salesforce enforces daily API call limits based on your edition
* BuildBetter respects these limits and retries when necessary
* Large syncs may take longer if approaching API limits
* Check your Salesforce API usage in Setup → System Overview
## Data Privacy & Security
* All data transferred is encrypted in transit (HTTPS)
* OAuth tokens are securely stored and automatically refreshed
* Only requested scopes are accessed
* Data sync respects Salesforce's field-level security
* BuildBetter never stores your Salesforce password
## Best Practices
**Configure Field Selection**
Choose only the fields you need to reduce sync time and API usage.
**Set Up Sync Rules First**
Configure which data to sync before enabling the integration to avoid syncing unnecessary records.
**Monitor API Usage**
Check your Salesforce API usage regularly, especially if you have a Professional Edition with limited API calls.
**Test with Sample Records**
After connecting, verify that a sample contact, account, and case sync correctly before enabling for all records.
**Use Custom Fields Wisely**
Custom fields will be stored as additional metadata in BuildBetter. Only sync fields you'll actually use.
## Support
Need help with Salesforce integration?
* Check connection status in Settings → Integrations → Salesforce
* Review error messages for specific issues
* Verify Salesforce API limits haven't been exceeded
* Contact BuildBetter support with your Salesforce edition and any error messages
# Salesloft Integration
Source: https://docs.buildbetter.ai/pages/Integrations/crm/salesloft
Import call recordings, transcripts, and participant data from Salesloft into BuildBetter
Connect BuildBetter with Salesloft to import your sales call recordings and transcripts. Analyze conversations with BuildBetter's AI to extract feature requests, objections, competitive mentions, and other signals from your Salesloft calls.
## Why Connect Salesloft to BuildBetter
* **Call Recording Import**: Import call recordings and transcripts directly from Salesloft
* **Participant Enrichment**: Participant data is automatically matched and enriched with contact information
* **Provider Selection**: Choose which underlying recording provider to import from when multiple are configured in Salesloft
* **Group Filtering**: Restrict imports to specific Salesloft groups so only the conversations you care about flow into BuildBetter
* **AI-Powered Analysis**: Process imported calls with BuildBetter's AI to extract signals, generate summaries, and identify patterns
* **Unified View**: See Salesloft calls alongside recordings from Gong, Zoom, Teams, and other sources in one platform
## How the Salesloft Integration Works
BuildBetter connects to Salesloft via API to import call recordings. You can run a full batch import of historical calls or set up incremental sync to automatically import new calls as they're recorded.
**Import Method**: Batch import or incremental sync
**Sync Type**: One-way (Salesloft → BuildBetter)
**Data Imported**: Call recordings, transcripts, participants
## Setup Guide
### Prerequisites
1. **Salesloft Requirements**:
* Active Salesloft account with Conversations enabled
* Admin access for API configuration
2. **BuildBetter Requirements**:
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
Go to **Settings > Integrations** in BuildBetter
Find Salesloft in the integration list and click **Connect**. Authenticate with your Salesloft credentials.
Choose your import method:
* **Full Import**: Import all historical call recordings
* **Incremental Sync**: Import new calls automatically going forward
If your Salesloft workspace uses multiple recording providers, pick the provider you want BuildBetter to import from.
Pick the Salesloft groups whose conversations should be imported. Only conversations from users in your selected groups are synced, giving you precise control over what data flows into BuildBetter. Leave this empty to import from all groups.
Click **Import** to begin syncing your Salesloft calls. Monitor progress in the integration settings.
## Group Filtering
Salesloft Group Filtering lets you scope imports to specific teams or regions configured in Salesloft.
* Open the Salesloft integration settings in BuildBetter
* Select one or more groups from the list of groups available on your Salesloft account
* Save your changes — future syncs (and the next backfill) will only import conversations where a participant belongs to one of the selected groups
Group selections apply to both batch and incremental syncs. Updating the selection takes effect on the next sync run.
## Imported Data
When calls are imported from Salesloft, the following data is preserved:
* **Call Recording**: Audio or video file
* **Transcript**: Full transcript with speaker identification
* **Participants**: Names, emails, and roles for each participant
* **Call Metadata**: Title, date/time, duration, and call type
* **Source Label**: Imported calls display the Salesloft icon for easy identification
## Viewing Imported Calls
1. Navigate to the **Calls** section in BuildBetter
2. Calls imported from Salesloft show the Salesloft icon as their source
3. Filter by source to see only Salesloft calls
4. All standard BuildBetter features work with imported calls:
* Signal extraction
* Search across transcripts
* Document generation
* Sharing and collaboration
## Analysis Features
Once imported, Salesloft calls are processed through BuildBetter's full analysis pipeline:
* **Signal Extraction**: Automatically detect feature requests, bugs, objections, and custom signal types
* **Summaries**: Generate AI summaries of calls
* **Documents**: Create PRDs, meeting notes, or custom documents from call content
* **Clustering**: Include Salesloft call data in your analytics dashboards
## Limitations
* **One-Way Import Only**: Calls are imported from Salesloft to BuildBetter. Changes in BuildBetter do not sync back.
* **Conversations Required**: Your Salesloft plan must include the Conversations feature for call recording import.
## Support
Need help with the Salesloft integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Zoho CRM Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/crm/zoho-crm
Connect BuildBetter with Zoho CRM for comprehensive customer intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Zoho CRM Integration Early Access" in the subject line.
Connect BuildBetter with Zoho CRM to enrich your customer records with AI-powered conversation insights and intelligence.
## Overview
The Zoho CRM integration will enable you to:
* Sync conversation insights to Zoho CRM leads, contacts, and deals
* Automatically update records with call summaries and key insights
* Enhance sales forecasting with conversation intelligence
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Zoho CRM Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Module Sync**: Sync insights to Leads, Contacts, Accounts, and Deals modules
* **Activity Logging**: Automatically create call activities with conversation summaries
* **Custom Fields**: Map BuildBetter insights to Zoho CRM custom fields
* **Workflow Rules**: Trigger Zoho workflows based on conversation outcomes
* **Zoho Analytics**: Include conversation insights in Zoho Analytics reports
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Coda Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/documentation/coda
Connect BuildBetter with Coda for powerful documentation and workflow automation
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Coda Integration Early Access" in the subject line.
BuildBetter's Coda integration enables you to export meeting transcripts, summaries, and documents to Coda, where you can transform meeting insights into interactive documents, trackers, and automated workflows.
## Features
* **Document Export**: Export BuildBetter documents to Coda docs
* **Interactive Summaries**: Transform meeting summaries into structured Coda content
* **Action Item Tracking**: Convert meeting action items into Coda tables and tasks
* **Transcript Reference**: Include searchable meeting transcripts in Coda docs
* **Data Integration**: Use BuildBetter data in Coda formulas and automations
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Coda account with appropriate permissions
* API token for Coda
### Connecting Coda
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Coda** from the documentation integrations
3. Enter your Coda API token
4. Choose which workspaces to connect
5. Configure default access permissions
6. Click **Connect** to activate the integration
### Configuring Export Settings
After connecting:
1. Go to **Settings → Integrations → Coda → Export Settings**
2. Configure your preferences:
* Default export doc or folder
* Default formatting options
* Table structure for action items and decisions
* Include metadata options
3. Save your configuration
## Usage
### Exporting to Coda
Export BuildBetter content to Coda:
1. Open any document, transcript, or summary in BuildBetter
2. Click the **Export** button
3. Select **Coda** as the destination
4. Choose export options:
* Target Coda doc
* Content structure (tables, sections, or both)
* Access permissions
5. Click **Export** to send to Coda
### Creating Meeting Docs
Create interactive meeting documentation:
1. After a recorded meeting, click **Export to Coda**
2. Choose a template:
* Meeting minutes
* Project update
* Customer interview
* Decision log
3. Customize the export structure
4. Click **Create** to generate the Coda doc
### Action Item Tracking
Convert meeting action items to Coda tasks:
1. From any meeting with extracted action items
2. Click **Export → Action Items → Coda**
3. Choose format options:
* Create new table or add to existing
* Include assignees, due dates, and context
* Set up status tracking
4. Export to create an interactive action item tracker
## Advanced Features
### Custom Templates
Create and use customized Coda templates:
1. Go to **Settings → Integrations → Coda → Templates**
2. Create new templates with predefined:
* Table structures
* Formula relationships
* Automation triggers
* Cross-doc connections
3. Use these templates when exporting to Coda
### Data Syncing
Keep BuildBetter data synchronized with Coda:
1. Enable the **Sync** option when exporting
2. Choose sync frequency (manual, daily, or on changes)
3. Select which data elements should stay in sync
4. BuildBetter will automatically update your Coda doc when source content changes
### Meeting Packs
Create comprehensive meeting documentation packages:
1. Select multiple related meetings in BuildBetter
2. Click **Create Coda Meeting Pack**
3. Choose what to include:
* Meeting summaries
* Key insights across meetings
* Action item tracking
* Decision history
4. Generate a connected set of Coda docs for complete project documentation
## Troubleshooting
### Connection Issues
* Verify your Coda API token is valid
* Check permissions for the target Coda docs
* Re-authenticate if the connection has expired
### Export Problems
* Check for size limitations on large exports
* Verify you have editor permissions in target docs
* Ensure all required tables exist for appending data
### Formatting Issues
* Review Coda format compatibility for complex content
* Check for special characters or formatting that might not transfer
* Use simpler structure for more reliable exports
## Use Cases
### Team Documentation
* Create living team documentation that evolves with each meeting
* Build knowledge bases with linked meeting references
* Develop searchable archives of team decisions
### Product Management
* Create interactive product specs with meeting-sourced requirements
* Track feature discussions across multiple stakeholder meetings
* Build customer feedback databases from sales and support calls
### Project Tracking
* Generate project status docs from regular team meetings
* Create timeline views of project discussions
* Track deliverables and action items in connected tables
# Confluence Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/documentation/confluence
Connect BuildBetter with Confluence for seamless documentation and knowledge management
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Confluence Integration Early Access" in the subject line.
BuildBetter's Confluence integration allows you to export meeting transcripts, summaries, and documents directly to Atlassian Confluence, creating a seamless knowledge management system that preserves context from your conversations.
## Features
* **Document Export**: Export BuildBetter documents to Confluence pages
* **Meeting Documentation**: Create structured Confluence pages from meeting recordings
* **Transcript Integration**: Include searchable transcripts in Confluence documentation
* **Action Item Management**: Convert meeting action items to Confluence tasks
* **Rich Content Structure**: Preserve formatting, headings, and structure in exports
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Atlassian Confluence instance (Cloud or Server)
* Admin access to relevant Confluence spaces
* Atlassian API token
### Connecting Confluence
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Confluence** from the documentation integrations
3. Enter your Atlassian instance URL (e.g., `https://yourcompany.atlassian.net`)
4. Provide your Atlassian API token
5. Complete the authorization process
6. Configure default spaces and access permissions
### Configuring Export Settings
After connecting:
1. Go to **Settings → Integrations → Confluence → Export Settings**
2. Configure your preferences:
* Default Confluence space
* Page hierarchies and structure
* Content formatting options
* Default labels and metadata
* Template selections
3. Save your configuration
## Usage
### Exporting to Confluence
Export content from BuildBetter to Confluence:
1. Open any document, transcript, or summary in BuildBetter
2. Click the **Export** button
3. Select **Confluence** as the destination
4. Configure export options:
* Target space and parent page
* Page title and structure
* Labels and permissions
5. Click **Export** to create the Confluence page
### Creating Meeting Documentation
Generate meeting documentation in Confluence:
1. After a recorded meeting, click **Export to Confluence**
2. Choose a documentation template:
* Standard meeting minutes
* Decision document
* Project update
* Customer interview
3. Customize the page structure and content sections
4. Click **Create** to generate the Confluence page
### Action Item Tracking
Convert meeting action items to Confluence tasks:
1. From any meeting with extracted action items
2. Click **Export → Action Items → Confluence**
3. Choose format options:
* Create tasks in Confluence
* Add due dates and assignees
* Link back to source recording
4. Export to create the action items in Confluence
## Advanced Features
### Template Management
Create and use custom Confluence templates:
1. Go to **Settings → Integrations → Confluence → Templates**
2. Create new templates or modify existing ones
3. Define page structure, macros, and sections
4. Apply templates when exporting content to Confluence
### Page Hierarchy
Create structured documentation hierarchies:
1. Select multiple related recordings or documents
2. Click **Export to Confluence Hierarchy**
3. Define the page structure relationship
4. Set parent/child relationships between pages
5. Export to create an organized documentation structure
### Content Synchronization
Keep Confluence pages updated with BuildBetter content:
1. Enable the **Sync** option when exporting
2. Choose which elements should stay synchronized
3. Set sync frequency (manual or automatic)
4. Confluence content will update when source content changes
## Troubleshooting
### Connection Issues
* Verify your Atlassian credentials are correct
* Check your API token permissions
* Ensure you have appropriate Confluence space permissions
### Export Problems
* Check for authentication timeouts
* Verify size limits for Confluence pages
* Ensure proper space and page access rights
### Content Formatting Issues
* Review image embedding settings
* Check for Confluence macro compatibility
* Verify table formatting and structure
## Use Cases
### Team Knowledge Base
* Create comprehensive meeting documentation for team reference
* Build product documentation incorporating customer conversations
* Maintain decision logs with context from discussion recordings
### Project Documentation
* Export project kickoff and planning meetings to Confluence
* Create living documentation that evolves with ongoing discussions
* Link specifications to relevant customer feedback recordings
### Cross-Team Collaboration
* Share meeting insights across departments
* Create transparent decision records accessible to stakeholders
* Maintain consistent documentation across distributed teams
### Technical Documentation
* Convert engineering discussions into technical specifications
* Document architectural decisions with context
* Create training resources from recorded demonstrations
# Google Docs Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/documentation/google-docs
Export BuildBetter content to Google Docs for collaborative editing and sharing
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Google Docs Integration Early Access" in the subject line.
BuildBetter's Google Docs integration enables you to export meeting transcripts, summaries, and generated documents directly to Google Docs, facilitating collaborative editing and seamless sharing with your team.
## Features
* **Document Export**: Convert BuildBetter documents to Google Docs format
* **Transcript Export**: Export meeting transcripts with speaker identification
* **Summary Publishing**: Share meeting summaries as collaborative documents
* **Rich Formatting**: Preserve formatting, links, and structure in exports
* **Collaborative Editing**: Enable team collaboration on meeting content
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Google Workspace or personal Google account
* Google Drive storage space
### Connecting Google Docs
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Google Docs** from the documentation integrations
3. Click **Connect** and authorize BuildBetter to access your Google account
4. Complete the Google authentication process
5. Configure default export settings
### Configuring Export Settings
After connecting:
1. Go to **Settings → Integrations → Google Docs → Export Settings**
2. Configure your preferences:
* Default export location in Google Drive
* Default sharing permissions
* Formatting options
* Header and footer content
* Default document structure
3. Save your configuration
## Usage
### Exporting Documents
Export BuildBetter documents to Google Docs:
1. Open any document in BuildBetter
2. Click the **Export** button
3. Select **Google Docs** as the destination
4. Configure export options:
* Target folder in Google Drive
* Sharing settings
* Include citations (if applicable)
5. Click **Export** to create the Google Doc
### Exporting Transcripts
Export meeting transcripts to Google Docs:
1. Open any recording with a transcript
2. Click **Export → Transcript → Google Docs**
3. Choose transcript options:
* Include speaker identification
* Include timestamps
* Format by speaker or chronologically
* Include metadata (meeting date, participants, etc.)
4. Complete the export process
### Exporting Summaries
Share meeting summaries through Google Docs:
1. View any meeting summary in BuildBetter
2. Click **Export → Google Docs**
3. Choose what to include:
* Full summary or specific sections
* Action items
* Key points
* Decisions made
4. Set sharing permissions and export location
5. Click **Export** to create and open the Google Doc
## Advanced Features
### Collaborative Documentation
Create collaborative meeting documentation:
1. Export a BuildBetter document or summary to Google Docs
2. Share with team members for collaborative editing
3. Use Google Docs commenting for further discussion
4. Create a library of meeting documentation in Google Drive
### Document Templates
Create and use custom templates:
1. Go to **Settings → Integrations → Google Docs → Templates**
2. Create new document templates or modify existing ones
3. Set default sections, formatting, and structure
4. Apply templates when exporting to Google Docs
### Bulk Export
Export multiple items at once:
1. Go to **Recordings** or **Documents** section
2. Select multiple items using checkboxes
3. Click **Bulk Actions → Export to Google Docs**
4. Configure export location and options
5. Start the bulk export process
## Troubleshooting
### Connection Issues
* Verify your Google account authentication is current
* Check permissions in Google Drive
* Re-authenticate if connection has expired
### Export Problems
* Check Google Drive storage limits
* Verify proper permissions for target folders
* Ensure stable internet connection for larger exports
### Formatting Issues
* Check for complex formatting that might not transfer perfectly
* Verify image export settings
* Try adjusting format options for better results
## Use Cases
### Meeting Documentation
* Export comprehensive meeting notes for team review
* Create collaborative action item trackers
* Distribute meeting summaries to stakeholders
### Knowledge Management
* Build a searchable library of meeting content in Google Drive
* Create living documents that evolve with ongoing discussions
* Maintain team documentation with links to relevant meeting recordings
### Project Documentation
* Export project planning discussions for detailed documentation
* Create requirement documents based on customer interviews
* Maintain decision logs with links back to discussion recordings
# Notion Integration
Source: https://docs.buildbetter.ai/pages/Integrations/documentation/notion
Connect BuildBetter with Notion to import pages as documents and push call summaries and transcripts back to your workspace
Connect BuildBetter with Notion to import existing Notion pages into BuildBetter as documents or knowledge base pages, and automatically push call summaries, transcripts, and other artifacts back into Notion.
## Overview
The Notion integration is a two-way connection:
* **Import (Notion → BuildBetter):** Bring Notion pages into BuildBetter — preserving page hierarchy — and convert them into documents or knowledge base pages. Resync at any time.
* **Export (BuildBetter → Notion):** Push call summaries, full transcripts, or both into a Notion page of your choosing. Configure automatic exports so new calls flow into Notion without manual steps.
**Integration Type:** Two-way (import and export)
**Auth:** OAuth — sign in with your Notion workspace, no API keys required
**Workspaces:** Multiple Notion workspaces can be connected to the same BuildBetter organization
## Features
* **OAuth Connection** — Connect with your Notion account; no internal integration tokens to manage
* **Page Hierarchy Import** — Import nested page trees, preserving parent/child relationships
* **Document or Knowledge Base** — Import each page as a BuildBetter document or as a knowledge base wiki page
* **Call Export to Notion** — Send call summaries, transcripts, or both to Notion, either combined on one page or split into separate pages
* **Automatic Notion Export** — Configure new calls to be pushed to Notion automatically, with control over destination and content
* **25+ Block Type Support** — Export preserves rich Notion formatting including headings, lists, callouts, toggles, code blocks, quotes, dividers, and more
* **Multi-Workspace Support** — Connect more than one Notion workspace and choose where to send content per export
* **Resync at Any Time** — Re-pull updated content from Notion from the integration settings
* **Improved Search & Page Picker** — Page selection ranks relevant title matches first and the picker UI makes finding the right destination fast
## Setup Instructions
### Prerequisites
* Active Notion workspace
* Permission to install integrations in your Notion workspace
* BuildBetter organization admin access
### Connection Steps
Go to **Settings → Integrations** in BuildBetter and find **Notion** in the Documentation category. Click **Connect**.
Sign in to Notion and select the workspace and pages BuildBetter is allowed to access. You can grant access to specific pages or the whole workspace.
From the integration settings, pick which pages or page trees to import. Choose whether each is brought in as a **document** or a **knowledge base page**.
Open **Auto-export settings** to push new call summaries and/or transcripts to a chosen Notion page automatically. Choose whether to combine content on a single page or split it into separate pages.
## Importing Pages from Notion
From the Notion import dialog you can:
* Search and browse the pages BuildBetter has access to
* Pick individual pages or whole subtrees
* Choose **document** vs **knowledge base page** as the import target
* Preserve nested hierarchies — child pages keep their relationship to their parents
* Resync any page later to pull in updated content
Use **knowledge base** for evergreen content (style guides, ICPs, playbooks) and **documents** for one-off references you want surfaced alongside calls and signals.
## Exporting to Notion
### Manual Export from a Call
1. Open any call in BuildBetter
2. Click **Export → Notion**
3. Choose what to send:
* **Summary only**
* **Transcript only**
* **Both** — combined on a single page, or split into two pages
4. Pick the destination Notion workspace and parent page
5. Click **Export**
BuildBetter creates the page(s) in Notion with full formatting, citations, and links back to the call.
### Automatic Export
Configure auto-export to push every new completed call to Notion:
* Set the target workspace and parent page
* Choose what content to push (summary, transcript, or both)
* Choose combined vs split page layout
* Toggle on/off at any time from integration settings
Temporary Notion API failures during export are now retried automatically rather than being dropped.
## Multi-Workspace Support
You can connect multiple Notion workspaces to a single BuildBetter organization. When importing or exporting, you pick which workspace to use. This is useful for teams that maintain separate Notion workspaces for product, engineering, and customer-facing docs.
## Use Cases
* **Customer call digest:** Auto-push every customer call summary to a dedicated Notion page so account owners get a single source of truth
* **Engineering handoff:** Push call transcripts to engineering's Notion workspace when feedback needs technical context
* **Knowledge base import:** Bring your existing Notion playbooks and ICPs into BuildBetter as knowledge base pages so AI chat can reference them
* **PRD drafting:** Send the summary of a discovery call into a PRD template page in Notion
## Troubleshooting
**Notion pages not appearing in the picker**
* BuildBetter can only see pages your Notion integration has been granted access to. Open Notion → **Settings → Integrations → BuildBetter** and confirm the relevant pages are shared.
* Use the search box; the picker ranks title matches first.
**Export looks empty or the page is missing content**
* Confirm the call has finished processing in BuildBetter
* Re-run the export — temporary Notion API errors are now retried automatically
**Export dialog hangs or auto-push settings don't save**
* Reload the dialog. Recent reliability fixes resolved cases where the dialog could hang or settings failed to persist. If the issue continues, reconnect Notion.
**Connection shows "needs reauthorization"**
* Open **Settings → Integrations → Notion** and reconnect. OAuth tokens can be revoked from the Notion side, which marks the connection as needing reauth.
## Security
* OAuth-based authentication — no API keys stored
* BuildBetter only accesses Notion pages you explicitly share with the integration
* All traffic is encrypted in transit
* You can revoke BuildBetter's access at any time from Notion's integration settings
## Support
Need help with the Notion integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit the [Help Center](/pages/Help/common-issues)
# Audio Files Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/files/audio-files
Connect BuildBetter with audio files (MP3, WAV) for content transcription and analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Audio Files Integration Early Access" in the subject line.
Connect BuildBetter with audio files to automatically transcribe and analyze your recorded audio content.
## Overview
The Audio Files integration will enable you to:
* Upload MP3 and WAV files directly to BuildBetter
* Automatically transcribe audio recordings
* Extract key insights from audio content
* Search across all uploaded audio files
* Generate summaries and action items
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Audio Files Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Support for MP3 and WAV file formats
* Batch audio upload capabilities
* Automatic speaker diarization
* Audio quality enhancement
* Timestamp-based navigation
* Integration with audio recording devices
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Image Files Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/files/image-files
Connect BuildBetter with image files (JPG, PNG, GIF) for visual content analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Image Files Integration Early Access" in the subject line.
Connect BuildBetter with image files to analyze and extract insights from visual content shared in meetings and feedback sessions.
## Overview
The Image Files integration will enable you to:
* Upload JPG, PNG, and GIF files to BuildBetter
* Extract text from images using OCR
* Analyze visual content for insights
* Link images to specific call moments
* Search across image content
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Image Files Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Support for JPG, PNG, and GIF formats
* Optical character recognition (OCR)
* Image annotation and tagging
* Visual similarity search
* Automatic image categorization
* Integration with screen capture tools
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# PDF Files Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/files/pdf-files
Connect BuildBetter with PDF files for document analysis and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "PDF Files Integration Early Access" in the subject line.
Connect BuildBetter with PDF files to analyze documents, presentations, and reports shared during customer interactions.
## Overview
The PDF Files integration will enable you to:
* Upload PDF documents directly to BuildBetter
* Extract and analyze text content from PDFs
* Link PDF content to specific conversations
* Search across all uploaded PDF documents
* Generate insights from document content
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "PDF Files Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Full PDF text extraction
* Support for scanned PDFs with OCR
* Batch PDF upload capabilities
* Automatic document categorization
* Page-level reference linking
* Integration with document management systems
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# SharePoint Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/files/sharepoint
Connect BuildBetter with Microsoft SharePoint for document and content management
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "SharePoint Integration Early Access" in the subject line.
Connect BuildBetter with Microsoft SharePoint to automatically sync documents, meeting recordings, and customer feedback stored in your SharePoint libraries.
## Overview
The SharePoint integration will enable you to:
* Automatically import documents from SharePoint libraries
* Sync meeting recordings stored in SharePoint
* Extract insights from SharePoint-hosted content
* Link BuildBetter insights back to SharePoint documents
* Maintain document version control
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "SharePoint Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Two-way SharePoint synchronization
* Automatic document import from selected libraries
* Support for SharePoint Online and SharePoint Server
* Document metadata preservation
* Permission-based access control
* Real-time document update notifications
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Text Files Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/files/text-files
Connect BuildBetter with text files (.TXT, .VTT) for content import and analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Text Files Integration Early Access" in the subject line.
Connect BuildBetter with text files to import transcripts, subtitles, and other text-based content for analysis.
## Overview
The Text Files integration will enable you to:
* Upload TXT and VTT (WebVTT) files to BuildBetter
* Import existing transcripts from other platforms
* Analyze subtitle files for video content
* Search across all text file content
* Generate insights from imported text data
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Text Files Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Support for TXT and VTT file formats
* Automatic timestamp parsing from VTT files
* Batch text file upload
* Character encoding detection
* Speaker label recognition
* Integration with subtitle editing tools
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Video Files Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/files/video-files
Connect BuildBetter with video files (MOV, MP4) for content analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Video Files Integration Early Access" in the subject line.
Connect BuildBetter with video files to automatically analyze and extract insights from your recorded content.
## Overview
The Video Files integration will enable you to:
* Upload MOV and MP4 files directly to BuildBetter
* Automatically transcribe video content
* Extract key insights and themes from video recordings
* Search across all uploaded video content
* Generate summaries and action items from videos
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Video Files Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Support for MOV and MP4 file formats
* Batch video upload capabilities
* Automatic speaker identification
* Video timestamp linking in insights
* Integration with cloud storage providers
* Custom metadata tagging for videos
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Microsoft Excel Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/office/excel
Export BuildBetter data to Excel for detailed analysis and reporting
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Microsoft Excel Integration Early Access" in the subject line.
BuildBetter's Excel integration lets you export recordings, transcripts, summaries, and analytics data to Microsoft Excel for in-depth analysis, custom reporting, and sharing with stakeholders.
## Features
* **Data Export**: Export call data, transcripts, and summaries to Excel spreadsheets
* **Custom Report Templates**: Pre-configured report templates for common analysis needs
* **Scheduled Exports**: Automate regular data exports to keep Excel dashboards updated
* **Filterable Data**: Export specific data based on date, tags, folders, and participants
* **Format Preservation**: Maintain formatting, speaker identification, and timestamps
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Microsoft Excel (desktop application or Microsoft 365)
* Appropriate export permissions in BuildBetter
### Enabling Excel Export
1. Navigate to **Settings → Integrations → Office** in your BuildBetter dashboard
2. Find and enable the **Microsoft Excel** integration
3. Configure your default export preferences:
* Default file format (XLSX, CSV)
* Include headers option
* Timestamp format
* Text formatting preferences
4. Save your settings
## Usage
### Manual Data Export
Export data on-demand:
1. Navigate to **Recordings**, **Folders**, or **Reports** section
2. Select the items you want to export
3. Click the **Export** button and select **Excel**
4. Choose export options:
* Format (XLSX, CSV)
* Data to include (metadata, transcript, summary, signals)
* Time range
5. Click **Export** to download the Excel file
### Call Transcript Export
Export detailed call transcripts:
1. Open the call recording you want to export
2. Click the **Export** button
3. Select **Excel** as the export format
4. Choose transcript options:
* Include speaker identification
* Include timestamps
* Include confidence scores
* Format by speaker or chronologically
5. Download your transcript as an Excel spreadsheet
### Bulk Call Export
Export multiple calls at once:
1. Go to **Recordings** or a specific **Folder**
2. Select multiple recordings using checkboxes
3. Click **Bulk Actions → Export to Excel**
4. Configure what data to include
5. Download the consolidated Excel file
## Advanced Usage
### Scheduled Exports
Set up automated exports:
1. Navigate to **Settings → Scheduled Tasks**
2. Create a new task, selecting **Excel Export**
3. Configure:
* Schedule (daily, weekly, monthly)
* Data to include
* Filter criteria (tags, folders, date range)
* Delivery method (download, email, or cloud storage)
4. Save your scheduled export
### Custom Report Templates
Create and use custom Excel report templates:
1. Go to **Settings → Report Templates**
2. Select **Create Excel Template**
3. Design your template with placeholder fields
4. Save and use your template for future exports
## Troubleshooting
### Export Failures
* Check file size limitations (large exports may need chunking)
* Verify you have proper export permissions
* Ensure you've selected valid data for export
### Formatting Issues
* Try different export formats (XLSX vs CSV)
* Check for special characters in transcript data
* Verify Excel version compatibility
### Large Dataset Handling
* Use pagination or date filtering for very large exports
* Consider using scheduled exports during off-hours
* Export to multiple files for extremely large datasets
## Limitations
* Maximum export size: 100,000 rows per export
* Rich formatting preserved only in XLSX format
* Some features require Microsoft 365 subscription
# Gmail Integration
Source: https://docs.buildbetter.ai/pages/Integrations/office/gmail
Connect Gmail so BuildBetter can support email-based follow-up and workflow actions
Connect Gmail to support email-based customer follow-up, Success workflows, and workflow email actions.
## Features
* **Success Follow-up Drafts**: Open Gmail from release or account follow-up workflows with customer context
* **Workflow Email Actions**: Send workflow emails to active organization members
* **Markdown Email Formatting**: Workflow email bodies render Markdown as styled HTML
* **Workflow Attachments**: Include rendered signals, signal lists, calls, or recordings in workflow emails
* **Connected Account Support**: Use a connected Gmail account for supported email flows
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* A Google Workspace or Gmail account
* Email sending permissions
### Connecting Gmail
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Gmail** from the office integrations
3. Click **Connect** and authorize BuildBetter to send emails on your behalf
4. Complete the Google authentication process
5. Return to BuildBetter and confirm the connection is active
## Usage
### Success Follow-up Drafts
Success close-the-loop workflows can prepare customer and request lists, deep links, and draft follow-up context before opening Gmail.
### Workflow Emails
Workflow emails can notify one or more active organization members. They support Markdown formatting and attachments for BuildBetter artifacts such as signals, signal lists, calls, or recordings.
Workflow recipients are checked again at send time, so messages only go to active organization members.
## Advanced Configuration
Use [Workflows](/pages/Workflows/overview) to configure email actions and attachments.
## Troubleshooting
### Emails Not Being Sent
* Verify Gmail connection is active
* Check that workflow recipients are active organization members
* Confirm the workflow test run completed successfully
### Authentication Issues
* Reconnect your Gmail integration if authorization expires
* Check Google security settings for third-party access
* Verify you haven't exceeded daily email sending limits
### Customization Problems
* Ensure all required template variables are present
* Check for HTML formatting errors in custom templates
* Test templates before deploying to all users
## Privacy Considerations
* Configure appropriate consent notifications in pre-meeting emails
* Always inform participants about recording and data usage when sharing call context
* Review workflow email recipients and attachments before enabling automation
# Google Calendar Integration
Source: https://docs.buildbetter.ai/pages/Integrations/office/google-calendar
Connect BuildBetter with Google Calendar for automatic meeting recording and management
Integrate BuildBetter with Google Calendar to automatically record your scheduled meetings, capture transcripts, and generate summaries without manual intervention.
## Features
* **Automatic Meeting Recording**: BuildBetter joins and records meetings from your calendar
* **Smart Scheduling**: Configure which meetings to record based on customizable rules
* **Meeting Notifications**: Pre-meeting notifications with recording details
* **Post-Meeting Summaries**: Automated email summaries after meetings
* **Attendee Management**: Track participants and automate labeling
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* A Google Workspace or Gmail account
* Calendar permissions and meeting host capabilities
### Connecting Google Calendar
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Google Calendar** from the office integrations
3. Click **Connect** and authorize BuildBetter access to your calendar
4. Complete the Google authentication process
5. Return to BuildBetter to finish configuration
### Setting Up Recording Rules
Once connected, configure your recording preferences:
1. Go to **Settings → Recording Rules**
2. Create new rules based on:
* Meeting title keywords (include/exclude)
* Attendee email domains
* Time ranges
* Calendar selection (if you have multiple)
3. Set recording visibility (participants only, workspace, public)
4. Save your recording rules
## Usage
### Upcoming Meetings
After setup, you'll see:
1. An **Upcoming** section on your BuildBetter dashboard
2. Calendar events that match your recording rules
3. Recording status (scheduled, in progress, completed)
4. Quick links to join meetings
### Managing Calendar Events
For each calendar event:
* **Change Recording Status**: Enable/disable recording for specific events
* **Manual Join**: Force BuildBetter to join a meeting immediately
* **View Details**: See attendees, description, and other calendar data
* **Privacy Controls**: Adjust who can access each recording
### Post-Meeting Actions
After a meeting ends:
1. BuildBetter processes the recording and generates a transcript
2. An AI summary is created based on the meeting type
3. Participants are automatically labeled when possible
4. Email notifications are sent to relevant participants (if enabled)
## Troubleshooting
### Bot Not Joining Meetings
* Verify calendar connection is active
* Check that your recording rules include the meeting
* Ensure you have proper permissions as the meeting organizer
* Verify the meeting platform is supported (Google Meet, Zoom, MS Teams)
### Calendar Sync Issues
* Reconnect your Google Calendar if synchronization stops
* Check for Google Workspace restrictions on third-party apps
* Verify you haven't exceeded API limits
### Privacy Considerations
* Customize pre-meeting notification emails to inform participants
* Adjust recording visibility settings to match your privacy requirements
* Review attendee consent settings for compliance with recording laws
## Limitations
* Personal Google Accounts: Limited functionality compared to Google Workspace
* Multiple Calendar Support: May require additional setup for multiple calendars
* Meeting Platforms: Must be Google Meet, Zoom, or Microsoft Teams
# Google Drive Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/office/google-drive
Connect BuildBetter with Google Drive for seamless file storage and collaboration
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Google Drive Integration Early Access" in the subject line.
BuildBetter's Google Drive integration allows you to automatically export and store meeting recordings, transcripts, and documents in your Google Drive, enabling easy sharing and collaboration with your team.
## Features
* **Automatic Export**: Automatically save recordings, transcripts, and summaries to Google Drive
* **Organized Storage**: Customizable folder structure for your BuildBetter content
* **Recording Backup**: Keep secure backups of all your meeting recordings
* **Seamless Sharing**: Easily share content with team members via Google Drive permissions
* **Document Collaboration**: Export documents to Google Docs for collaborative editing
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Google Drive account (personal or Google Workspace)
* Adequate Google Drive storage space
### Connecting Google Drive
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Google Drive** from the office integrations
3. Click **Connect** and authorize BuildBetter to access your Google Drive
4. Complete the Google authentication process
5. Choose your default storage settings
### Configuring Storage Settings
After connecting:
1. Go to **Settings → Integrations → Google Drive → Storage Settings**
2. Configure:
* Root folder for BuildBetter data
* Subfolder organization (by date, type, tags, etc.)
* File naming conventions
* Default file formats
* Automatic sharing settings
3. Save your configuration
## Usage
### Automatic Export
Configure automatic exports to Google Drive:
1. Go to **Settings → Integrations → Google Drive → Auto-Export**
2. Enable automatic export for:
* Meeting recordings
* Transcripts
* Summaries
* Generated documents
3. Set conditions for when exports should occur
4. Choose file formats for each content type
### Manual Export
Export specific content on-demand:
1. Navigate to any recording, transcript, or document
2. Click the **Export** button
3. Select **Google Drive** as the destination
4. Choose the target folder (or use default)
5. Set sharing permissions (optional)
6. Click **Export** to save to Google Drive
### Bulk Export
Export multiple items at once:
1. Go to **Recordings** or **Documents** section
2. Select multiple items using checkboxes
3. Click **Bulk Actions → Export to Google Drive**
4. Configure export settings
5. Start the export process
## Advanced Features
### Export to Google Docs
Convert BuildBetter documents to Google Docs format:
1. Open any BuildBetter document
2. Click **Export → Google Docs**
3. Choose target folder and sharing settings
4. The document will open in Google Docs format for collaborative editing
### Scheduled Backups
Set up regular backups of your BuildBetter data:
1. Go to **Settings → Scheduled Tasks**
2. Create a new task, selecting **Google Drive Backup**
3. Configure:
* Schedule (daily, weekly, monthly)
* Content to back up
* Retention policy
4. Save your scheduled backup task
## Troubleshooting
### Connection Issues
* Verify your Google account permissions
* Reconnect if authentication has expired
* Check for Google Workspace restrictions on third-party services
### Storage Limitations
* Monitor Google Drive storage space
* Configure retention policies for large files
* Use selective export for large recordings
### File Access Problems
* Check folder permissions in Google Drive
* Verify user access rights in your Google Workspace
* Ensure proper sharing settings for exported content
## Security Considerations
* Review who has access to exported BuildBetter data in Google Drive
* Configure appropriate sharing defaults for sensitive meetings
* Consider using Google Vault for regulatory compliance (Google Workspace Business/Enterprise)
# Google Sheets Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/office/google-sheets
Export and analyze BuildBetter data with Google Sheets for collaborative reporting
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Google Sheets Integration Early Access" in the subject line.
BuildBetter's Google Sheets integration lets you export call data, transcripts, and analytics to Google Sheets for collaborative analysis, custom reporting, and data visualization.
## Features
* **Data Export**: Export call data, transcripts, and summaries to Google Sheets
* **Real-time Collaboration**: Share and edit BuildBetter data with your team
* **Custom Dashboards**: Create visualizations of meeting analytics
* **Automated Reports**: Schedule regular exports to keep data current
* **Versatile Formatting**: Maintain structure with speaker identification and timestamps
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Google account with access to Google Sheets
* Appropriate export permissions in BuildBetter
### Connecting Google Sheets
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Google Sheets** from the office integrations
3. Click **Connect** and authorize BuildBetter to access your Google account
4. Complete the Google authentication process
5. Configure default export settings
### Configuring Export Settings
After connecting:
1. Go to **Settings → Integrations → Google Sheets → Export Settings**
2. Configure:
* Default spreadsheet location
* Sheet naming convention
* Data formatting preferences
* Default sharing settings
3. Save your configuration
## Usage
### Manual Data Export
Export data on-demand:
1. Navigate to any recording, transcript, or analytics view
2. Click the **Export** button
3. Select **Google Sheets** as the destination
4. Choose export options:
* Create new spreadsheet or add to existing
* Sheet name
* Data formatting
* Sharing permissions
5. Click **Export** to create or update the Google Sheet
### Call Transcript Export
Export detailed call transcripts:
1. Open the call recording you want to export
2. Click the **Export** button
3. Select **Google Sheets** as the export format
4. Configure transcript options:
* Include speaker identification
* Include timestamps
* Format by speaker or chronologically
5. Complete the export to Google Sheets
### Bulk Export
Export multiple calls at once:
1. Go to **Recordings** or a specific **Folder**
2. Select multiple recordings using checkboxes
3. Click **Bulk Actions → Export to Google Sheets**
4. Configure what data to include
5. Complete the export to create a consolidated spreadsheet
## Advanced Features
### Scheduled Exports
Set up automated exports to keep data current:
1. Navigate to **Settings → Scheduled Tasks**
2. Create a new task, selecting **Google Sheets Export**
3. Configure:
* Schedule (daily, weekly, monthly)
* Data to include
* Target spreadsheet(s)
* Filter criteria (tags, folders, date range)
4. Save your scheduled export
### Analytics Dashboard Templates
Use pre-built dashboard templates:
1. Go to **Analytics → Export → Google Sheets**
2. Select from available templates:
* Meeting efficiency tracker
* Team participation analyzer
* Topic frequency dashboard
* Action item tracker
3. Configure and export to create a populated dashboard
## Troubleshooting
### Connection Issues
* Verify your Google account permissions
* Re-authenticate if connection has expired
* Check for Google Workspace restrictions on third-party apps
### Export Problems
* Check file size limitations for large exports
* Verify you have proper permissions in Google Drive
* Ensure stable internet connection for large data transfers
### Sheet Access
* Verify sharing permissions on the Google Sheet
* Check that recipients have appropriate Google accounts
* Ensure proper domain settings for organization-wide sharing
## Integration Examples
### Meeting Analysis Dashboard
Create a dashboard to analyze meeting effectiveness across your organization:
* Export meeting metrics to a structured sheet
* Use Google Sheets charts to visualize participation, duration, and topic frequency
* Share insights with leadership team
### Action Item Tracker
Build an automated action item tracking system:
* Export action items from meeting summaries to a dedicated sheet
* Add status tracking columns and owner assignment
* Set up regular updates to maintain current status
# Microsoft Outlook Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/office/outlook
Connect BuildBetter with Microsoft Outlook for calendar integration and automated recording
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Microsoft Outlook Integration Early Access" in the subject line.
The BuildBetter Outlook integration enables automatic scheduling and recording of your Microsoft Teams meetings directly from your Outlook calendar, along with email notifications and calendar management.
## Features
* **Calendar Sync**: Automatically detect and record meetings from your Outlook calendar
* **Teams Meeting Integration**: Seamless connection with Microsoft Teams calls
* **Smart Recording Rules**: Customize which meetings to record based on flexible criteria
* **Email Notifications**: Automated pre-meeting and post-meeting emails
* **Outlook Add-in**: Optional add-in for direct BuildBetter controls in Outlook
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Microsoft 365 account with Outlook and Teams
* Admin permissions (for organization-wide setup)
### Connecting Outlook Calendar
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Microsoft Outlook** from the office integrations
3. Click **Connect** and authorize BuildBetter to access your calendar
4. Complete the Microsoft authentication process
5. Configure your default calendar settings
### Setting Up Recording Rules
After connecting:
1. Go to **Settings → Recording Rules**
2. Create rules to determine which meetings to record:
* Meeting title keywords (include/exclude)
* Attendee email domains
* Time ranges
* Meeting duration
* Specific calendars (if you have multiple)
3. Set recording visibility (participants only, workspace, public)
4. Save your recording rules
## Usage
### Automatic Recording
Once connected, BuildBetter will:
1. Scan your Outlook calendar for upcoming meetings
2. Apply your recording rules to determine which to record
3. Automatically join matching meetings at the scheduled time
4. Record, transcribe, and summarize the meeting
5. Send notifications based on your settings
### Upcoming Meetings Dashboard
View your scheduled recordings:
1. On your BuildBetter dashboard, see the **Upcoming** section
2. Review which Outlook meetings are scheduled for recording
3. Manually enable/disable recording for specific meetings
4. Force immediate joining for ad-hoc meetings
### Managing Outlook Events
For each Outlook event:
* **View Details**: See meeting title, time, organizer, and attendees
* **Recording Controls**: Enable/disable recording or change privacy settings
* **Manual Join**: Force BuildBetter to join a meeting immediately
* **Post-Meeting Access**: View recordings, transcripts, and summaries
## Advanced Features
### Outlook Add-in (Beta)
Install the BuildBetter Outlook add-in:
1. Go to **Settings → Integrations → Microsoft Outlook → Add-in**
2. Click **Install Outlook Add-in**
3. Follow the instructions to add to your Outlook
4. Use the add-in to:
* Toggle recording for specific meetings
* View meeting analytics
* Access BuildBetter recordings directly from calendar events
### Email Notification Templates
Customize your Outlook email notifications:
1. Navigate to **Settings → Email Templates**
2. Select templates for:
* Pre-meeting notifications
* Recording consent notices
* Post-meeting summary emails
3. Customize content, branding, and delivery rules
4. Save your template settings
## Troubleshooting
### Calendar Sync Issues
* Verify Microsoft 365 connection is active
* Check for proper calendar permissions
* Reconnect if synchronization stops
* Review Microsoft 365 restrictions on third-party apps
### Bot Not Joining Meetings
* Ensure your recording rules include the meeting
* Check that the Teams meeting link is accessible
* Verify you have proper permissions as organizer
* Confirm meeting hasn't been canceled or rescheduled
### Authentication Problems
* Reconnect your Microsoft account if authorization expires
* Check Microsoft security settings for third-party access
* Verify correct account is being used for authentication
## Limitations
* Meeting Types: Works with Microsoft Teams meetings (not Skype for Business)
* Personal Accounts: Limited functionality with personal Microsoft accounts
* Calendar Access: Requires calendar read/write permissions
* Event Processing: May have a slight delay in recognizing new or changed events
# CSV Import/Export
Source: https://docs.buildbetter.ai/pages/Integrations/other/csv
Import and export BuildBetter data using CSV files for flexible data management
BuildBetter's CSV integration allows you to import external data into the platform and export your meeting data, transcripts, and analytics for use in spreadsheets, databases, or other tools that support the CSV format.
## Features
* **Data Import**: Upload CSV files to import external data into BuildBetter
* **Feedback Import**: Import customer feedback and conversation data via CSV
* **Bulk Export**: Export call data, transcripts, and summaries in CSV format
* **Custom Column Selection**: Choose which data fields to include in exports
* **Scheduled Exports**: Automate regular data exports to maintain up-to-date reports
## Import Capabilities
### Feedback Import
Import customer feedback and conversation data:
1. Navigate to **Data → Import → Feedback**
2. Download the CSV template with required fields
3. Fill in your feedback data following the template format
4. Upload your completed CSV file
5. Map columns if your headers differ from the template
6. Review and confirm the data
7. Process the import
### AI-Powered Column Mapping
When you upload a CSV file, BuildBetter uses AI to automatically detect and map your columns to the appropriate fields. The mapping dialog shows:
* **Columns needing review**: Low-confidence mappings that need manual verification
* **Auto-mapped columns**: High-confidence mappings that were automatically detected
* **Sample values**: Preview of your data to help verify mappings
You can override any AI suggestion by selecting a different field mapping from the dropdown.
### Available Field Mappings
| Field | Description | Multiple Columns Allowed |
| - | - | - |
| **Feedback Content** | The main feedback text | Yes |
| **Feedback Date** | Date/time of the feedback | No |
| **Feedback Boundary** | Internal or external feedback | No |
| **Person First Name** | Customer's first name | No |
| **Person Last Name** | Customer's last name | No |
| **Person Full Name** | Customer's full name | No |
| **Person Email** | Customer's email address | No |
| **Company Name** | Associated company name | No |
| **Company Domain** | Company website domain | No |
| **Company Metadata** | Map to existing company fields | Yes |
| **Feedback Metadata** | Additional custom fields | Yes |
### Company Metadata Mapping
You can map CSV columns directly to your existing company metadata fields. This is useful for:
* Enriching company records with additional data from your CSV
* Matching feedback to companies based on custom identifiers
* Importing company-specific attributes like industry, plan type, or account tier
To map a column to company metadata:
1. Select "Company Metadata" from the field mapping dropdown
2. Choose an existing metadata field to map to, or create a new one
3. The data type (text, number, timestamp) is preserved during import
Company metadata mapping works alongside company name and domain matching, giving you multiple ways to associate feedback with the right company records.
### Data Format Requirements
Your CSV file should include the following fields:
| Field | Description | Required |
| - | - | - |
| `feedback_id` | Unique identifier | Yes |
| `date` | Date of feedback (YYYY-MM-DD) | Yes |
| `source` | Feedback channel/source | Yes |
| `customer_name` | Customer's name | No |
| `customer_email` | Customer's email | No |
| `content` | The feedback text | Yes |
| `category` | Category/type of feedback | No |
| `sentiment` | Positive/negative/neutral | No |
| `product_area` | Relevant product area | No |
| `priority` | Priority level | No |
| `status` | Current status | No |
### Signal Processing
After import:
1. BuildBetter processes the feedback data through signal extraction
2. Signals are generated based on content analysis
3. View results in the **Signals** section of your dashboard
4. Filter and analyze the imported data alongside your meeting data
## Export Capabilities
### Recording Data Export
Export meeting recording data:
1. Navigate to **Recordings** or a specific folder
2. Select the recordings you want to export
3. Click **Export → CSV**
4. Choose what data to include:
* Basic metadata (title, date, duration)
* Participant information
* Tags and categories
* Access and sharing settings
5. Click **Export** to download the CSV file
### Transcript Export
Export transcript data:
1. Open any recording with a completed transcript
2. Click **Export → Transcript → CSV**
3. Configure export options:
* Include speaker identification
* Include timestamps
* Include confidence scores
* Format as monologue or dialogue
4. Download the CSV file
### Analytics Export
Export analytics data:
1. Go to **Analytics** section
2. Configure the report you want to export
3. Click **Export → CSV**
4. Choose the time period and data points to include
5. Download the CSV file
## Advanced Usage
### Scheduled Exports
Set up automated exports:
1. Navigate to **Settings → Scheduled Tasks**
2. Create a new task, selecting **CSV Export**
3. Configure:
* Schedule (daily, weekly, monthly)
* Data to include
* Filter criteria (date range, tags, folders)
* Delivery method (download, email, or cloud storage)
4. Save your scheduled export
### Bulk Data Management
For large datasets:
1. Use the **Bulk Export** feature in **Settings → Data Management**
2. Select data types to include
3. Apply filters for targeted exports
4. Choose between standard CSV or compressed formats for large datasets
5. Schedule for off-peak hours if working with very large datasets
## Troubleshooting
### Import Issues
* Verify your CSV file is properly formatted (UTF-8 encoding recommended)
* Check for special characters that might cause parsing errors
* Ensure date formats match the expected format (YYYY-MM-DD)
* Verify required fields are present and not empty
### Export Problems
* For large exports, try breaking into smaller batches
* Check for sufficient storage space for download
* Use the compressed export option for very large datasets
* Verify column selection if export is missing expected data
## Use Cases
### Data Analysis
* Export call data to spreadsheets for custom analysis
* Track meeting metrics over time
* Create custom dashboards in your BI tool
### Integration Bridge
* Use CSV as a bridge to systems without direct API integration
* Batch import external conversation data for signal processing
* Export and transform data for legacy system compatibility
### Reporting
* Create regular exports for executive dashboards
* Generate compliance reports with selective data
* Share anonymized data with stakeholders
# Fillout Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/fillout
Connect BuildBetter with Fillout for form response analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Fillout Integration Early Access" in the subject line.
Connect BuildBetter with Fillout to automatically analyze form submissions, extract insights from customer feedback, and identify trends across responses.
## Overview
The Fillout integration will enable you to:
* Automatically import form responses for AI analysis
* Extract insights and sentiment from open-ended responses
* Identify patterns and trends across form submissions
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Fillout Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Response Import**: Automatically sync Fillout form responses
* **Text Analysis**: Analyze open-ended responses for insights and sentiment
* **Trend Detection**: Identify common themes and patterns across submissions
* **Feedback Categorization**: Automatically categorize and tag responses
* **Integration**: Connect form insights with other customer data sources
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Formstack Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/formstack
Connect BuildBetter with Formstack for enterprise form data analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Formstack Integration Early Access" in the subject line.
Connect BuildBetter with Formstack to analyze form submissions at scale, extract customer insights, and integrate feedback with your customer intelligence platform.
## Overview
The Formstack integration will enable you to:
* Import form submissions from Formstack for AI-powered analysis
* Extract insights from customer feedback and survey responses
* Connect form data with other customer touchpoints
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Formstack Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Submission Sync**: Automatically import Formstack form responses
* **AI Analysis**: Extract insights and sentiment from text responses
* **Workflow Integration**: Connect with Formstack's workflow automation
* **Multi-Form Analytics**: Analyze responses across multiple forms
* **Customer Profile Enrichment**: Add form insights to customer records
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Google Forms Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/google-forms
Connect BuildBetter with Google Forms for survey response analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Google Forms Integration Early Access" in the subject line.
Connect BuildBetter with Google Forms to automatically analyze survey responses, extract customer insights, and integrate with your Google Workspace ecosystem.
## Overview
The Google Forms integration will enable you to:
* Automatically import responses from Google Forms
* Analyze open-ended responses with AI-powered insights
* Connect form data with other Google Workspace tools
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Google Forms Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Response Import**: Sync Google Forms responses to BuildBetter
* **Text Analysis**: Extract insights from open-ended questions
* **Google Workspace Integration**: Connect with Sheets, Drive, and other tools
* **Real-Time Analysis**: Analyze responses as they're submitted
* **Sentiment Tracking**: Monitor sentiment trends over time
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# JotForm Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/jotform
Connect BuildBetter with JotForm for form submission insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "JotForm Integration Early Access" in the subject line.
Connect BuildBetter with JotForm to automatically analyze form submissions, extract customer feedback insights, and identify trends across responses.
## Overview
The JotForm integration will enable you to:
* Automatically import JotForm submissions for analysis
* Extract insights from customer feedback and survey responses
* Identify patterns across form data
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "JotForm Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Submission Sync**: Import responses from JotForm automatically
* **AI Analysis**: Analyze text responses for insights and sentiment
* **Multi-Form Support**: Analyze data across multiple JotForm forms
* **Trend Detection**: Identify common themes and patterns
* **Workflow Integration**: Connect with JotForm's approval workflows
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# SurveyMonkey Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/surveymonkey
Connect BuildBetter with SurveyMonkey for survey response analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "SurveyMonkey Integration Early Access" in the subject line.
Connect BuildBetter with SurveyMonkey to analyze survey responses at scale, extract customer insights, and enhance your research with AI-powered analysis.
## Overview
The SurveyMonkey integration will enable you to:
* Import survey responses from SurveyMonkey for AI analysis
* Extract deeper insights from open-ended questions
* Identify trends and patterns across survey data
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "SurveyMonkey Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Response Import**: Automatically sync SurveyMonkey survey responses
* **Open-Ended Analysis**: AI-powered analysis of text responses
* **Cross-Survey Insights**: Identify patterns across multiple surveys
* **Sentiment Analysis**: Track sentiment trends over time
* **Response Categorization**: Automatically categorize and tag feedback
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Survey Planet Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/surveyplanet
Connect BuildBetter with Survey Planet for survey feedback analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Survey Planet Integration Early Access" in the subject line.
Connect BuildBetter with Survey Planet to automatically analyze survey responses and extract actionable customer insights.
## Overview
The Survey Planet integration will enable you to:
* Import survey responses from Survey Planet for AI analysis
* Extract insights from customer feedback
* Track sentiment and trends across surveys
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Survey Planet Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Response Sync**: Automatically import Survey Planet responses
* **Text Analysis**: AI-powered insights from open-ended responses
* **Trend Identification**: Detect patterns and themes across feedback
* **Sentiment Tracking**: Monitor customer sentiment over time
* **Multi-Survey Analytics**: Analyze data across multiple surveys
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# SurveySparrow Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/surveysparrow
Connect BuildBetter with SurveySparrow for conversational survey insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "SurveySparrow Integration Early Access" in the subject line.
Connect BuildBetter with SurveySparrow to analyze conversational survey responses and extract deeper customer insights with AI-powered analysis.
## Overview
The SurveySparrow integration will enable you to:
* Import responses from SurveySparrow surveys for AI analysis
* Analyze conversational survey data for deeper insights
* Track customer sentiment and feedback trends
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "SurveySparrow Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Response Import**: Sync SurveySparrow survey responses automatically
* **Conversational Analysis**: Extract insights from chat-style survey responses
* **NPS & CSAT Integration**: Analyze feedback alongside satisfaction scores
* **Multi-Channel Support**: Import responses from email, web, mobile, and chat surveys
* **Sentiment Tracking**: Monitor customer satisfaction trends over time
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Survicate Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/survicate
Connect BuildBetter with Survicate for customer feedback insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Survicate Integration Early Access" in the subject line.
Connect BuildBetter with Survicate to analyze targeted customer surveys and feedback, extracting actionable insights with AI-powered analysis.
## Overview
The Survicate integration will enable you to:
* Import survey responses from Survicate for AI analysis
* Analyze website, email, and in-product survey feedback
* Connect survey insights with customer profiles
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Survicate Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Multi-Channel Import**: Sync responses from web, email, mobile, and in-app surveys
* **Feedback Analysis**: Extract insights from open-ended responses
* **Customer Attribution**: Connect survey feedback to customer records
* **Sentiment Tracking**: Monitor satisfaction and sentiment trends
* **Targeted Insights**: Analyze feedback from specific customer segments
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Tally Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/tally
Connect BuildBetter with Tally for form response analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Tally Integration Early Access" in the subject line.
Connect BuildBetter with Tally to automatically analyze form submissions and survey responses with AI-powered insights.
## Overview
The Tally integration will enable you to:
* Import form and survey responses from Tally
* Extract insights from customer feedback
* Analyze open-ended responses with AI
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Tally Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Response Sync**: Automatically import Tally form submissions
* **AI Analysis**: Extract insights and sentiment from text responses
* **Multi-Form Support**: Analyze data across multiple Tally forms
* **Real-Time Processing**: Analyze responses as they're submitted
* **Trend Detection**: Identify patterns and themes across feedback
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Typeform Integration
Source: https://docs.buildbetter.ai/pages/Integrations/other/typeform
Connect Typeform to feed survey forms and responses into the BuildBetter Surveys workspace
Connect Typeform to BuildBetter to import forms and responses into the **Surveys** workspace, where you can browse, filter, and analyze survey feedback alongside calls, support conversations, and other customer data.
Typeform is the primary source for BuildBetter Surveys today. Once a form is connected, its responses appear in the Surveys section and feed signal extraction, dashboards, and AI chat just like any other feedback source.
## Overview
The Typeform integration:
* Imports Typeform forms as surveys in the Surveys workspace
* Syncs responses in real-time via webhooks
* Bulk-imports historical responses on connect
* Extracts signals (feature requests, complaints, ratings) from open-text answers
* Powers cross-source analysis combining survey data with calls and conversations
**Integration Type**: One-way import (Typeform → BuildBetter)
**Authentication**: API key
**Sync Method**: Real-time webhooks + historical import
## Features
* **API Key Authentication**: Connect with a Typeform personal access token
* **Form Import**: Import forms with all questions and logic
* **Real-Time Sync**: Webhook-based response import as submissions occur
* **Historical Import**: Bulk import past responses on connect
* **Question Type Support**: All Typeform question types supported
* **Response Tracking**: Track submissions with timestamps and metadata
* **Per-Form Control**: Select which forms to sync
* **Surveys Workspace Integration**: Responses appear in the BuildBetter Surveys section for browsing, filtering, and analysis
## Setup Guide
### Prerequisites
1. **Typeform Requirements**:
* Active Typeform account
* Forms with responses (or ready to receive responses)
* Permission to generate a personal access token with form, response, and webhook scopes
2. **BuildBetter Requirements**:
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
In Typeform, go to **Account → Personal tokens** and create a token with permission to read forms, read responses, and manage webhooks. Copy and save the token securely.
Go to **Settings → Integrations** in BuildBetter, find **Typeform**, and click **Connect**. Paste your API key and save.
BuildBetter loads your list of Typeform forms. Select the forms you want to import. You can change this selection any time.
BuildBetter automatically creates webhooks for each selected form so new responses sync in real time. Historical responses are imported in the background on first connect.
Once forms are connected, head to the **Surveys** workspace in BuildBetter to browse and filter responses. Survey responses also feed signals, dashboards, and AI chat.
## Supported Question Types
All Typeform question types are supported:
| Typeform Type | BuildBetter Type | Description |
| - | - | - |
| Short Text | Text | Short text responses |
| Long Text | Text | Long-form text responses |
| Multiple Choice | Single Select | Single choice questions |
| Picture Choice | Single Select | Image-based choices |
| Dropdown | Single Select | Dropdown selections |
| Yes/No | Boolean | Boolean responses |
| Opinion Scale | Rating | Rating scale questions |
| Rating | Rating | Star ratings |
| Email | Email | Email addresses |
| Number | Number | Numeric responses |
| Date | Date | Date selections |
| File Upload | File URL | Uploaded file URLs |
| Website | URL | Website URLs |
## How It Works
### Initial Setup Flow
1. Admin generates a Typeform personal access token
2. Token is stored securely in BuildBetter as an integration secret
3. User selects which forms to sync
4. Webhooks are created for each selected form
5. Historical responses are imported in the background
### Real-Time Sync
1. User submits a Typeform response
2. Typeform fires a webhook to BuildBetter
3. The response is processed and stored in the Surveys workspace
4. Data becomes available for browsing, filtering, and signal extraction immediately
### Data Structure
**Forms** are imported with:
* Form ID, title, and type
* Creation and update timestamps
* Form language
* Welcome and thank you screens
* Question logic and settings
**Responses** include:
* Response ID and token
* Submission timestamp
* Individual answers to each question
* Hidden fields and calculated scores
* Metadata (landing page, referrer, etc.)
## Required Token Scopes
When generating your Typeform personal access token, include at minimum:
* `forms:read` — Read your forms and their structure
* `responses:read` — Read form responses
* `webhooks:read` — View existing webhooks
* `webhooks:write` — Create and manage webhooks
## Configuration Options
### Per-Form Control
* Select which forms to sync individually
* Enable/disable forms without disconnecting the integration
* Historical import runs in the background for each newly connected form
### Webhook Management
* Webhooks are automatically created for connected forms
* Tagged with `bb-{formId}` for identification
* SSL verification enabled by default
* Webhooks are removed when forms are disconnected from BuildBetter
## Imported Data
### Forms
* Form structure and questions
* Question validation rules
* Logic jumps and branching
* Themes and settings
### Responses
* Complete response data
* Answer text, numbers, choices
* File upload URLs
* Email addresses and contact info
* Hidden fields
* Response metadata
### Analytics
* Submission timestamps
* Response completion status
* Calculated scores (if configured)
* Response source (landing page, referrer)
## Use Cases
### Product Feedback
* Combine survey responses with customer call insights
* Identify trends across quantitative and qualitative data
* Track feature requests from multiple sources
### Customer Research
* Analyze survey responses alongside interviews
* Build comprehensive user profiles
* Generate insights from mixed data sources
### Lead Qualification
* Import form responses for lead scoring
* Combine with conversation data
* Track user journey across touchpoints
## Limitations
* **One-Way Sync**: Data flows from Typeform to BuildBetter only
* **No Form Creation**: Cannot create Typeform forms from BuildBetter
* **Webhook Dependency**: Real-time sync requires webhooks (may not work with strict firewall restrictions)
## Troubleshooting
### Connection Issues
* Verify the API key was generated successfully and copied in full
* Ensure your Typeform account is active and the token hasn't been revoked
* Try regenerating the token and reconnecting
### Forms Not Appearing
* Verify you have forms in your Typeform account
* Check that forms are published (not drafts)
* Refresh the form list
* Ensure the token includes `forms:read` scope
### Responses Not Syncing
* Verify the webhook was created successfully (visible in Typeform → Form → Connect → Webhooks)
* Check that the form is still selected in BuildBetter
* Ensure your network/firewall allows webhook delivery to BuildBetter
* Test with a new form submission
* Review webhook logs in Typeform settings
### Historical Import Failing
* Check for Typeform API rate limits
* Try connecting fewer forms at once for very large workspaces
* Contact support for assistance with bulk historical imports
## Security & Compliance
* Encrypted token storage
* HTTPS for all data transfer
* SOC 2 compliant infrastructure
* GDPR compliant data handling
* Webhook SSL verification enabled
## Support
Need help? Contact us:
* Email: [support@buildbetter.app](mailto:support@buildbetter.app) with "Typeform Integration" in subject
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Wufoo Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/other/wufoo
Connect BuildBetter with Wufoo for form data analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Wufoo Integration Early Access" in the subject line.
Connect BuildBetter with Wufoo to analyze form submissions, extract customer insights, and integrate feedback with your customer intelligence platform.
## Overview
The Wufoo integration will enable you to:
* Automatically import Wufoo form entries for analysis
* Extract insights from customer feedback and responses
* Identify patterns across form submissions
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Wufoo Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Entry Import**: Sync Wufoo form entries automatically
* **Text Analysis**: AI-powered insights from open-ended fields
* **Multi-Form Analytics**: Analyze data across multiple Wufoo forms
* **Trend Detection**: Identify common themes and patterns
* **Customer Enrichment**: Add form insights to customer profiles
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Asana Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/project/asana
Connect BuildBetter with Asana for streamlined task management and project coordination
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Asana Integration Early Access" in the subject line.
The BuildBetter Asana integration allows you to create tasks, projects, and goals directly from your meeting recordings, helping you turn conversations into actionable work items in your Asana workspace.
## Features
* **Task Creation**: Create Asana tasks directly from meeting recordings
* **Project Linking**: Connect discussions to existing Asana projects
* **Action Item Extraction**: Automatically identify and create tasks from transcripts
* **Rich Context**: Include meeting clips and transcript snippets in Asana tasks
* **Due Date Detection**: Automatically identify and set due dates from conversation
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Asana account with appropriate workspace access
* Admin permissions in BuildBetter
### Connecting Asana
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Asana** from the project integrations section
3. Click **Connect** and authorize via Asana OAuth
4. Select which workspaces to enable for integration
5. Configure default settings and permissions
### Configuring Asana Settings
After connecting:
1. Go to **Settings → Integrations → Asana → Configuration**
2. Configure:
* Default workspace
* Default projects
* Task field mappings
* Default sections and tags
3. Save your configuration
## Usage
### Creating Tasks from Meetings
Create Asana tasks during or after meetings:
1. Open any recording in BuildBetter
2. Select a relevant segment in the transcript
3. Click the **Create Task** button
4. Select the Asana workspace and project
5. Fill in task details, leveraging the selected transcript context
6. Submit to create the task in Asana
### Linking to Projects
Connect meeting content to Asana projects:
1. From a recording or document, click **Link to Project**
2. Search for and select the relevant Asana project
3. Add a reference note (optional)
4. Save to establish the connection
### Automated Action Items
Extract action items as Asana tasks:
1. Go to a completed meeting recording
2. Navigate to the **Action Items** tab
3. Review automatically extracted action items
4. Select items to create as Asana tasks
5. Assign owners and due dates
6. Submit to create the tasks in Asana
## Advanced Features
### Custom Workflows
Create automation rules between BuildBetter and Asana:
1. Go to **Settings → Automation Rules**
2. Create rules based on:
* Meeting tags or topics
* Specific phrases in transcripts
* Meeting participants or roles
3. Configure how tasks should be formatted, assigned, and tagged
4. Enable the automation rule
### Bulk Task Creation
Create multiple Asana tasks at once:
1. Open a meeting recording with a completed transcript
2. Select multiple segments or use the AI-detected action items
3. Click **Create Multiple Tasks**
4. Review and edit the task details
5. Select target project and assignees
6. Submit to create all tasks in Asana
## Troubleshooting
### Connection Issues
* Verify your Asana authentication is current
* Check workspace access permissions
* Ensure you haven't exceeded API rate limits
### Task Creation Problems
* Verify required fields are properly populated
* Check for any project access restrictions
* Ensure proper workspace and project selection
### Missing Assignments
* Verify Asana users are properly mapped to BuildBetter participants
* Check that assignees have access to the target project
* Ensure email addresses match between systems
## Use Cases
### Project Management
* Convert meeting decisions into actionable tasks
* Track action items from status meetings
* Create comprehensive project plans from kickoff meetings
### Product Teams
* Transform customer feedback into product backlog items
* Link research findings to feature development tasks
* Record design decisions with links to implementation tasks
### Cross-functional Collaboration
* Ensure clear task ownership across departments
* Maintain context when transferring work between teams
* Provide rich meeting context for remote teammates
## Tips for Success
* Use consistent meeting tags to enable automation
* Create templates for different meeting types
* Set up default projects based on meeting categories
* Use Asana's "My Tasks" view to see all tasks created from BuildBetter
* Review and refine automation rules regularly
# GitHub Integration
Source: https://docs.buildbetter.ai/pages/Integrations/project/github
Connect BuildBetter with GitHub for seamless development workflow automation
BuildBetter's GitHub integration connects repositories to Projects, Inbox, ZeroShot, and release workflows. You can manage connected repositories directly in the web app, review repository activity, link PRs to customer evidence, and use GitHub context in project and agent-session workflows.
## Features
* **Issue Creation**: Create GitHub issues directly from meeting recordings
* **Repository Management**: Connect and manage repositories from dedicated overview, sessions, skills, activity, and settings views
* **GitHub App Install Flow**: Install the BuildBetter GitHub App, select repositories in-app, and add more repositories later without reinstalling
* **Pull Request References**: Link discussions to relevant pull requests
* **Repository Dashboards**: Review session, skill, and pull request counts by repository
* **Live Pull Requests**: View repository-specific pull requests in ZeroShot when GitHub data is available
* **Code Snippet Extraction**: Extract and reference code discussions
* **Automated Workflows**: Trigger GitHub actions based on meeting content
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* GitHub account with appropriate repository access
* Admin permissions in BuildBetter
### Connecting GitHub
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **GitHub** from the project integrations
3. Click **Connect** and follow the guided GitHub App install flow
4. Select which repositories to enable inside BuildBetter
5. Configure repository-specific settings, sessions, skills, and activity views
If the GitHub App is already installed, you can add more repositories from BuildBetter without reinstalling the app.
### Repository Configuration
After connecting:
1. Go to the GitHub integration or repository management area
2. Configure:
* Default repositories
* Issue templates mapping
* Label defaults
* Automatic reference formatting
* Repository-specific session and skill visibility
3. Save your repository configuration
## Repository Management Views
Connected repositories include dedicated views:
* **Overview**: Repository health and high-level activity
* **Sessions**: Agent sessions attributed to that repository
* **Skills**: Installed or proposed skills related to the repository
* **Activity**: Pull requests and related work
* **Settings**: Repository connection and visibility controls
## Usage
### Creating Issues from Meetings
Create GitHub issues while in a meeting:
1. Open any call recording in BuildBetter
2. Select a relevant segment in the transcript
3. Click the **Create Issue** button
4. Select the target GitHub repository
5. Fill in issue details, leveraging transcript content
6. Submit to create the issue in GitHub
### Linking to Repositories
Connect meetings to specific repositories:
1. From any recording or document, click **Link Repository**
2. Select the GitHub repository from your connected list
3. Optionally, add a reference note
4. Save to establish the connection
### Code Discussion References
Link code discussions to GitHub:
1. During transcript review, identify code-related discussions
2. Use the **Code Reference** button in the transcript
3. Select the relevant GitHub repository, branch, and file
4. Add line number references if applicable
5. Save to create a two-way reference
## Advanced Features
### Signal Analysis
BuildBetter's Signals feature can automatically detect:
1. Feature requests for GitHub issue creation
2. Bug reports for immediate tracking
3. Technical discussions for documentation
4. Decision points for project planning
Configure how these signals interact with GitHub:
1. Go to **Settings → Integrations → GitHub → Signals**
2. Map signal types to GitHub actions
3. Set thresholds and trigger conditions
4. Enable automation for selected signals
### Automated Issue Creation
Set up rules for automatic GitHub issues:
1. Navigate to **Settings → Automation Rules**
2. Create rules based on:
* Meeting tags or topics
* Specific phrases in transcripts
* Participant roles or departments
3. Configure how issues should be formatted
4. Test and enable your automated workflow
## Troubleshooting
### Connection Issues
* Verify your GitHub authentication is current
* Check repository access permissions
* Ensure you haven't hit API rate limits
### Issue Creation Problems
* Verify required fields in issue templates
* Check for any GitHub organization restrictions
* Ensure proper repository permissions
### Repository Access
* Review GitHub organization settings
* Check personal access token scopes (if applicable)
* Verify BuildBetter has been authorized for the specific repositories
## Use Cases
### Engineering Teams
* Create implementation tickets directly from planning meetings
* Reference architecture discussions in documentation
* Link technical decisions to relevant code changes
### Open Source Projects
* Extract feature requests from community meetings
* Document decisions with links to relevant discussions
* Create transparent issue trails from conversation to code
### DevOps Workflows
* Link incident response calls to GitHub issues
* Create post-mortem documentation with meeting references
* Track resolution from discussion to implementation
## Security Considerations
* BuildBetter uses GitHub's OAuth for secure authentication
* Repository access is limited to those explicitly granted
* Private repository content remains secure
* No code is stored in BuildBetter, only references to GitHub
# Jira Integration
Source: https://docs.buildbetter.ai/pages/Integrations/project/jira
Connect BuildBetter with Jira for seamless project management workflow
BuildBetter's Jira integration enables you to create, link, and update Jira issues directly from your meeting recordings, automating your workflow from customer conversations to actionable tasks.
## Features
* **Issue Creation**: Create Jira issues directly from meeting recordings
* **Automated Extraction**: Extract action items and tasks from meeting transcripts
* **Two-way Sync**: Link BuildBetter content to Jira issues and vice versa
* **Contextual References**: Include meeting clips and transcript segments in Jira issues
* **Custom Field Mapping**: Map BuildBetter data to specific Jira fields
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Jira Cloud (or Jira Server with API access)
* Admin permissions in both BuildBetter and Jira
### Connecting Jira
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Jira** from the project integrations section
3. Enter your Jira instance URL (e.g., `https://yourcompany.atlassian.net`)
4. Click **Connect** and complete the Atlassian authentication process
5. Grant necessary permissions for BuildBetter
### Configuring Jira Settings
After connecting:
1. Go to **Settings → Integrations → Jira → Project Settings**
2. Configure:
* Default Jira project
* Issue type mappings
* Field mappings (for automatic population)
* Default labels and components
3. Save your configuration
## Usage
### Creating Issues from Meetings
Create Jira issues while reviewing a meeting:
1. Open any recording in BuildBetter
2. Select a relevant segment in the transcript
3. Click the **Create Issue** button in the actions menu
4. Choose the Jira project and issue type
5. Add additional details or customize fields
6. Submit to create the issue in Jira
### Action Item Extraction
Automatically identify action items:
1. Go to a meeting recording with a completed transcript
2. Navigate to the **Action Items** tab
3. Review the automatically extracted action items
4. Select items to create as Jira issues
5. Adjust details if needed and submit
### Linking Existing Issues
Connect meetings to existing Jira issues:
1. Open any recording or document in BuildBetter
2. Click the **Link Issue** button
3. Search for existing Jira issues by key or title
4. Select the appropriate issue
5. Choose what content to reference (whole meeting, clip, or segment)
6. Save the link to connect BuildBetter to Jira
## Advanced Features
### Custom Workflows
Create automated workflows between BuildBetter and Jira:
1. Go to **Settings → Automation Rules**
2. Create rules for automatic issue creation based on:
* Meeting tags or topics
* Specific phrases in transcripts
* Meeting types or participants
3. Configure how issues should be populated
4. Enable and test your automated workflow
### Field Mapping
Map BuildBetter data to custom Jira fields:
1. Go to **Settings → Integrations → Jira → Field Mapping**
2. Configure mappings for:
* Standard Jira fields (summary, description, etc.)
* Custom fields specific to your Jira instance
* BuildBetter metadata (meeting date, participants, etc.)
3. Save your field mapping configuration
## Troubleshooting
### Connection Issues
* Verify your Jira instance URL is correct
* Check your Atlassian account permissions
* Ensure API access is available for your Jira plan
### Issue Creation Problems
* Verify required fields in Jira are being populated
* Check for any workflow restrictions in Jira
* Ensure proper project and issue type selections
### Permission Errors
* Verify BuildBetter has sufficient permissions in Jira
* Check user permissions for specific Jira projects
* Review Jira application access settings
## Use Cases
### Product Development
* Extract feature requests directly from customer calls
* Create bugs with precise references to user feedback
* Link requirements discussions to corresponding epics
### Customer Success
* Convert customer issues into support tickets with context
* Track customer requests from conversation to resolution
* Include meeting recordings for more detailed bug reports
### Agile Teams
* Create user stories directly from stakeholder interviews
* Extract acceptance criteria from requirement discussions
* Link sprint planning recordings to related epics
# Linear Integration
Source: https://docs.buildbetter.ai/pages/Integrations/project/linear
Connect BuildBetter with Linear to transform customer insights into actionable project tasks
Connect BuildBetter with Linear to automatically create and track issues based on customer conversations, ensuring feedback directly influences your product roadmap.
## Features
* **Automated Issue Creation**: Generate Linear issues from meeting signals and insights
* **Project Linking**: Link custom objects to Linear projects for tracking development work
* **Author Mapping**: Map Linear users to BuildBetter teammates for accurate ownership and attribution — including off-domain Linear accounts that don't match by email
* **Linear Evidence Tracker** *(early access)*: Tracked Linear issues automatically receive evidence-backed comments that update as new customer signals arrive — see the [Linear Evidence Tracker docs](/pages/Triage/linear-evidence-tracker)
* **Feedback Ingestion (Beta)**: Import matching Linear issues and comments into BuildBetter as feedback records
* **Linear as a Signal Source**: Imported Linear feedback appears as its own source in downstream signal and analysis views
* **PR Ticket Suggestions**: In triage, BuildBetter suggests existing Linear tickets that match an inbound PR so reviewers can attach the right context with one click
* **Custom Workflows**: Map conversation signals to specific Linear teams and projects
* **Rich Context**: Include meeting snippets, timestamps, and customer details in issues
* **Two-way Sync**: Update status in either system and keep everything in sync
* **Priority Mapping**: Convert customer sentiment and frequency into Linear priority
## Setup Guide
### Prerequisites
1. Linear Requirements:
* Linear account (any paid plan)
* Admin access for API key generation
* Teams and projects configured
2. BuildBetter Requirements:
* Active BuildBetter account
* Admin privileges for integration setup
### Installation Steps
1. **Connect Linear**
* Go to Settings > Integrations in BuildBetter
* Click "Connect" under Linear
* Enter your Linear API key
* Select teams and projects to connect
2. **Configure Workflows**
* Map signal types to Linear teams/projects
* Choose team and project scopes for feedback ingestion
* Configure status and project filters
* Preview matching issues before backfill
* Set up issue template mappings
* Configure priority and status defaults
* Define custom field mappings
3. **Test Integration**
* Create a test signal
* Send to Linear
* Verify issue creation and field mapping
## Usage
### Importing Linear Feedback
Linear feedback ingestion lets BuildBetter import matching issues and comments as feedback records.
Use the Linear setup UI to:
* Select teams and projects
* Choose status and project filters
* Preview what will be imported
* Save selections reliably across setup sessions
* Run or monitor manual backfills and syncs
Imported Linear feedback is available as a distinct source for Signals, analysis, and downstream workflows.
### Creating Issues from Conversations
After a customer call:
* Review and approve extracted signals
* Select "Send to Linear" from the signal actions menu
* Choose team, project, and other attributes
* BuildBetter creates a detailed issue with context
### Bulk Issue Creation
For multiple signals:
* Filter signals by type, meeting, or customer
* Multi-select relevant signals
* Use "Bulk Actions" → "Send to Linear"
* Apply team/project mapping
### Workflow Automation
Example automated workflows:
* Feature request signals → Product team issues
* Bug reports → Engineering team issues
* UI/UX feedback → Design team issues
* Customer success concerns → CS team issues
## Templates and Formatting
BuildBetter creates Linear issues with:
* Clear, automatically generated titles
* Detailed descriptions with context
* Embedded audio/video clips when relevant
* Customer attribution and metadata
* Links back to the full conversation
## Project Linking
Link your BuildBetter custom objects (like Cycles, Initiatives, or custom entities) directly to Linear projects. This creates a live connection between customer feedback and your development work.
### How It Works
Custom objects can have an "integration object" property that links to Linear projects. Once linked, you can:
* See the project name and status directly in BuildBetter
* Click through to the project in Linear
* Update project status from BuildBetter
* Filter custom objects by linked project
### Linking a Project
1. Open a custom object with a Linear project property
2. Click the property field
3. Choose from:
* **Link existing project**: Search and select from your Linear projects
* **Create new project**: Create a new Linear project and link it immediately
### Project Actions
Once a project is linked, you can:
| Action | Description |
| - | - |
| **View in Linear** | Click the external link icon to open the project in Linear |
| **Mark as Done** | Update the project status to "completed" |
| **Unlink** | Remove the link without deleting the Linear project |
| **Refresh** | Update the cached project data from Linear |
### Status Indicators
Linked projects display their current status with color-coded badges:
* **Backlog** (gray): Not yet started
* **Planned** (blue): Scheduled for work
* **Started** (yellow): In progress
* **Paused** (red): On hold
* **Completed** (green): Finished
* **Canceled** (gray): Not proceeding
### Filtering by Project
You can filter custom object lists by linked Linear project to:
* See all items related to a specific project
* Track customer feedback driving a project
* Monitor progress across related work
## Author Mapping
Map Linear users to BuildBetter teammates so ownership, attribution, and assignee carry-over work correctly — especially for Linear accounts that use a different domain than the email teammates use in BuildBetter.
### Where to Manage Mappings
Go to **Settings → Features → Linear Authors** in BuildBetter. The mapping screen shows:
* The full Linear workspace roster
* Highlights for unmapped Linear users
* A clear distinction between auto-mapped (email matched) and manual mappings
* Quick controls to assign the correct teammate for each Linear user
### Why It Matters
Once mappings are in place:
* **Assignee carry-over** works when promoting or attaching tickets — the right teammate appears as the assignee in Linear
* **Evidence and routing** correctly attribute work to the person who actually owns it
* **Triage suggestions** can recommend the right Linear assignee when promoting signals
## Linear Evidence Tracker
**Early Access** — rolling out alongside Topics.
Tracked Linear issues can receive **evidence-backed comments** in Linear that update as new customer signals arrive. The comment summarizes what customers are saying, with quotes, customer names, source platform labels, and dates — and refreshes automatically as new evidence is matched to the issue.
See the full [Linear Evidence Tracker documentation](/pages/Triage/linear-evidence-tracker) for setup and usage.
## PR Ticket Suggestions
When an inbound PR shows up in triage, BuildBetter suggests **existing Linear tickets** that look like a match. Reviewers can attach the suggested ticket directly from the PR detail panel — no manual searching. Promoted tickets disappear from triage immediately without needing a page refresh.
## Advanced Configuration
* **Custom Fields**: Map BuildBetter signal attributes to Linear custom fields
* **Labels**: Automatically apply labels based on signal classification
* **Relations**: Create issue relationships based on related signals
* **Webhooks**: Trigger BuildBetter actions when Linear issues change status
## Support
Need help? Contact us:
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Monday.com Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/project/monday
Connect BuildBetter with Monday.com to streamline your project management workflow
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Monday.com Integration Early Access" in the subject line.
BuildBetter's Monday.com integration allows you to create items, update boards, and link meetings directly to your Monday.com workspace, helping you transform conversations into structured work items.
## Features
* **Item Creation**: Create Monday.com items directly from meeting recordings
* **Board Integration**: Connect discussions to specific Monday.com boards
* **Action Item Extraction**: Automatically identify and create tasks from transcripts
* **Custom Column Mapping**: Map BuildBetter data to specific Monday.com columns
* **Rich Context**: Include meeting clips and transcript segments in Monday.com items
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Monday.com account with board editing permissions
* API token for Monday.com
### Connecting Monday.com
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Monday.com** from the project integrations section
3. Enter your Monday.com API token
4. Test the connection and save your settings
### Configuring Board Settings
After connecting:
1. Go to **Settings → Integrations → Monday.com → Board Settings**
2. Configure:
* Default workspace and boards
* Group configurations
* Column mappings
* Status field defaults
3. Save your configuration
## Usage
### Creating Items from Meetings
Create Monday.com items during or after meetings:
1. Open any recording in BuildBetter
2. Select a relevant segment in the transcript
3. Click the **Create Item** button
4. Select the target Monday.com board and group
5. Fill in item details, leveraging the selected transcript content
6. Submit to create the item in Monday.com
### Linking to Existing Boards
Connect meetings to specific Monday.com boards:
1. From a recording or document, click **Link to Board**
2. Search for and select the relevant Monday.com board
3. Add a reference note (optional)
4. Save to establish the connection
### Automated Action Items
Extract action items as Monday.com tasks:
1. Go to a meeting recording with a completed transcript
2. Navigate to the **Action Items** tab
3. Review automatically detected action items
4. Select items to create as Monday.com items
5. Assign owners and priorities
6. Submit to create the items in Monday.com
## Advanced Features
### Custom Workflows
Create automation rules between BuildBetter and Monday.com:
1. Go to **Settings → Automation Rules**
2. Create rules based on:
* Meeting tags or topics
* Specific phrases in transcripts
* Meeting participants or roles
3. Configure how items should be formatted and where they should be created
4. Enable the automation rule
### Column Mapping
Map BuildBetter data to custom Monday.com columns:
1. Navigate to **Settings → Integrations → Monday.com → Column Mapping**
2. Configure mappings for:
* Standard columns (name, status, etc.)
* Custom columns specific to your boards
* BuildBetter metadata (meeting date, participants, etc.)
3. Save your mapping configuration
## Troubleshooting
### Connection Issues
* Verify your Monday.com API token is valid
* Check your permissions in Monday.com
* Ensure your token has access to the relevant boards
### Item Creation Problems
* Verify required columns are properly mapped
* Check for any board permission restrictions
* Ensure proper board and group selections
### Data Mapping Errors
* Check column mapping configuration
* Verify data types match between systems
* Ensure required columns are populated
## Use Cases
### Project Management
* Create project updates from status meetings
* Track action items across multiple teams
* Link discussions to project timelines
### Product Development
* Convert customer feedback into product roadmap items
* Create development tasks from planning discussions
* Track feature requests from ideation to delivery
### Marketing & Content
* Create campaign tasks from planning sessions
* Link content assets to creation discussions
* Schedule deliverables based on meeting decisions
## Integration Examples
### Meeting Follow-up Board
Create a dedicated board for meeting follow-ups:
1. Create a board in Monday.com with columns for:
* Meeting reference
* Action item
* Owner
* Due date
* Status
* Priority
* Meeting recording link
2. Configure the BuildBetter integration to automatically create items on this board after each meeting
### Cross-functional Project Tracking
Use the integration for better cross-team collaboration:
1. Link departmental meetings to a shared project board
2. Create updates that include meeting context
3. Ensure everyone has the same information with links to source discussions
# Productboard Integration (Beta)
Source: https://docs.buildbetter.ai/pages/Integrations/project/productboard
Connect BuildBetter with Productboard to import product notes and customer feedback
Connect BuildBetter with Productboard to import your product notes and analyze customer feedback alongside your other conversation sources.
## Features
* **Note Import**: Automatically sync Productboard notes as feedback in BuildBetter
* **Source Filtering**: Choose which note sources to import (Slack, email, Intercom, etc.)
* **User & Company Sync**: Optionally import Productboard users and companies for enrichment
* **Sync Cancellation**: Stop an in-progress sync if needed
* **Deduplication**: Automatic prevention of duplicate imports
* **Custom Fields**: Preserve Productboard custom fields and tags
## How It Works
BuildBetter connects to Productboard via API access token and imports notes as feedback. Notes are processed through BuildBetter's AI to extract signals, enabling analysis alongside your other customer data sources.
**Import Type**: One-way (Productboard to BuildBetter)
**Sync Frequency**: Configurable with progress tracking
## Setup Guide
### Prerequisites
1. **Productboard Requirements:**
* Productboard account with API access
* Admin permissions to generate access tokens
2. **BuildBetter Requirements:**
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
1. **Get Your Productboard Access Token**
* Log in to Productboard as an Admin
* Navigate to **Settings > Integrations > Public API**
* Generate a new access token
* Copy and save the token securely
2. **Connect in BuildBetter**
* Go to **Settings > Integrations** in BuildBetter
* Find Productboard and click **Connect**
* Paste your access token
* Click **Connect** to verify
3. **Configure Import Settings**
* **Import History Window**: Choose how far back to import
* 7 days, 30 days, 90 days (default), 180 days, 365 days, or all history
* **Source Filter** (optional): After first sync, select which sources to include
* **User Sync**: Enable to import Productboard users
* **Company Sync**: Enable to import Productboard companies
* Click **Save** to start your first sync
## What Gets Imported
### Note Data
| Productboard Field | BuildBetter Field | Notes |
| - | - | - |
| Title | Feedback title | Optional field |
| Content | Feedback body | HTML stripped to plain text |
| State | Metadata | unprocessed, processed, archived |
| Tags | Tags | Preserved for filtering |
| Created/Updated | Timestamps | |
| Display URL | External link | Link back to Productboard |
| Source | Metadata | Origin of the note (slack, email, etc.) |
### People (Optional)
When user sync is enabled:
* Customer profiles from Productboard
* Email addresses for matching
* Company associations
* Custom fields
### Companies (Optional)
When company sync is enabled:
* Company names and domains
* External IDs
* Custom fields
### Metadata Preserved
* Note ID (for deduplication)
* Source origin (where feedback came from)
* Source record ID (external reference)
* Tags
* Custom field values
* Owner information
## Source Filtering
### Available Sources
BuildBetter automatically discovers note sources during sync:
* Slack
* Email
* Intercom
* Zendesk
* Chrome Extension
* API imports
* And more (depending on your Productboard setup)
### Configuring Sources
1. Run an initial sync to discover available sources
2. Go to integration settings
3. Select which sources to include
4. Future syncs will only import notes from selected sources
If no sources are selected, all notes are imported regardless of source.
## Sync Behavior
### Import History Options
| Setting | Behavior |
| - | - |
| 90 days (default) | Import notes from last 90 days |
| 7d - 365d | Import notes from specified time window |
| All | Import entire note history |
### Incremental Sync
* After initial import, syncs fetch only new and updated notes
* 6-hour overlap ensures recently modified notes are captured
* Deduplication prevents duplicate imports, including notes that have already been brought in during previous runs
* Sync is resilient to newly introduced Productboard note types and won't fail when Productboard rolls out new note formats
### Sync Progress
During sync, you can monitor:
* Notes processed (fetched from API)
* Feedback created (new records in BuildBetter)
* Notes failed (errors during processing)
* Last updated timestamp
### Cancelling a Sync
If a sync is taking too long or was started by mistake:
1. Go to integration settings
2. Click **Stop Sync**
3. The sync will complete its current batch and stop
4. Progress is preserved; you can resume later
## Rate Limiting
Productboard's API has rate limits (\~50 requests per window). BuildBetter handles this automatically:
* Pauses when approaching limits
* Resumes after the rate limit window resets
* Saves progress during pauses
## Use Cases
### Product Feedback Consolidation
* Bring Productboard notes into BuildBetter
* Analyze alongside call recordings and support tickets
* Get a unified view of customer feedback
### Cross-Source Analysis
* Compare feedback themes across sources
* Identify which channels surface certain types of feedback
* Track feature requests across touchpoints
### Enriched Context
* Link Productboard users to BuildBetter people
* Connect notes to companies for account-level insights
* Preserve original source context
## Troubleshooting
### Connection Issues
**"Invalid Access Token" Error**
* Verify you copied the complete token
* Ensure your Productboard plan includes API access
* Check that the token hasn't been revoked
**"Needs Reauthorization" Status**
* Your access token may have expired
* Generate a new token in Productboard and reconnect
### Sync Issues
**Sync Taking Too Long**
* Large backlogs can take time on first sync
* Consider using a shorter import history window
* You can cancel and restart with a more recent window
**Notes Not Appearing**
* Check your source filter settings
* Verify the note's creation date is within your import window
* Ensure the note is in an importable state (not archived if filtering)
**Duplicate Notes**
* BuildBetter uses external IDs and tracks previously imported notes to prevent duplicates across runs
* If duplicates still appear, check for notes that may have been re-created in Productboard with new IDs
### Rate Limit Errors
* BuildBetter handles rate limits automatically
* If sync stalls, wait a few minutes for limits to reset
* Large syncs may take longer due to rate limiting
## Privacy & Data
* BuildBetter only imports data you authorize via API token
* Notes are stored securely in your BuildBetter workspace
* User and company data is used for enrichment only
* You can disconnect at any time to stop all data sync
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
# Shortcut Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/project/shortcut
Connect BuildBetter with Shortcut (formerly Clubhouse) for streamlined project management
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Shortcut Integration Early Access" in the subject line.
The BuildBetter Shortcut integration allows you to create stories, epics, and tasks directly from your meeting recordings, helping you bridge the gap between customer conversations and your development workflow.
## Features
* **Story Creation**: Create Shortcut stories directly from meeting recordings
* **Epic Linking**: Connect discussions to existing epics
* **Action Item Extraction**: Automatically identify and create tasks from transcripts
* **Rich Context**: Include meeting clips and transcript snippets in Shortcut stories
* **Custom Field Mapping**: Connect BuildBetter data to Shortcut fields
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Shortcut account with administrative access
* API token for Shortcut
### Connecting Shortcut
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Shortcut** from the project integrations section
3. Enter your Shortcut API token
4. Select your default workspace and team
5. Test the connection and save
### Configuring Shortcut Settings
After connecting:
1. Go to **Settings → Integrations → Shortcut → Configuration**
2. Configure:
* Default workspace and team
* Story type and state mappings
* Custom field mappings
* Default labels and milestones
3. Save your configuration
## Usage
### Creating Stories from Meetings
Create Shortcut stories directly from meeting content:
1. Open any recording in BuildBetter
2. Select a relevant segment in the transcript
3. Click the **Create Story** button
4. Select the Shortcut workspace and team
5. Fill in story details, leveraging the selected transcript segment
6. Submit to create the story in Shortcut
### Linking to Existing Epics
Connect meeting content to Shortcut epics:
1. From a recording or document, click **Link to Epic**
2. Search for and select the relevant Shortcut epic
3. Add a reference note (optional)
4. Link the meeting recording, clip, or transcript segment
5. Save to establish the connection
### Automated Action Items
Extract action items as Shortcut tasks:
1. Go to a completed meeting recording
2. Navigate to the **Action Items** tab
3. Review automatically detected action items
4. Select items to create as Shortcut tasks
5. Assign owners and due dates
6. Submit to create the tasks in Shortcut
## Advanced Features
### Custom Workflows
Create automation rules between BuildBetter and Shortcut:
1. Go to **Settings → Automation Rules**
2. Create rules based on:
* Meeting tags or topics
* Specific phrases in transcripts
* Meeting participants or roles
3. Configure how stories should be formatted and labeled
4. Enable the automation rule
### Field Mapping
Map BuildBetter data to custom Shortcut fields:
1. Navigate to **Settings → Integrations → Shortcut → Field Mapping**
2. Configure mappings for:
* Standard Shortcut fields (name, description)
* Custom fields in your Shortcut workspace
* BuildBetter metadata (meeting date, participants)
3. Save your mapping configuration
## Troubleshooting
### Connection Issues
* Verify your Shortcut API token is valid and not expired
* Check your Shortcut permissions
* Ensure you have the correct workspace and team IDs
### Story Creation Problems
* Verify required fields are properly mapped
* Check for any workflow state restrictions
* Ensure proper workspace and team selection
### Missing Data
* Check field mapping configuration
* Verify data is available in the BuildBetter source
* Check for any character limit issues in Shortcut fields
## Use Cases
### Product Teams
* Convert customer feedback directly into product backlog items
* Link feature discussions to existing roadmap epics
* Track feature requests from conversation to release
### Engineering Teams
* Create technical stories from planning discussions
* Extract acceptance criteria from requirement meetings
* Link implementation details to design discussions
### Cross-functional Collaboration
* Bridge customer success and engineering workflows
* Create transparent history from conversation to implementation
* Maintain context when transferring work between teams
## Tips for Success
* Use consistent meeting tags to enable automation
* Create templates for different meeting types
* Set up default fields based on meeting categories
* Train team members on the integrated workflow
* Review and refine automation rules periodically
# Apollo Conversations Integration
Source: https://docs.buildbetter.ai/pages/Integrations/recording/apollo
Import call recordings and transcripts from Apollo Conversations into BuildBetter for analysis
Connect BuildBetter with Apollo Conversations to automatically import sales call recordings and transcripts from Apollo into BuildBetter, where you can analyze them with AI, extract signals, and surface insights across your pipeline.
## Overview
The Apollo Conversations integration enables you to:
* Import call recordings and full transcripts from Apollo
* Analyze sales and prospect conversations
* Backfill historical calls or ingest only future recordings
* Keep participant data accurate across large sync jobs
**Integration Type**: One-way import (Apollo → BuildBetter)
**Sync Frequency**: Automatic import of new recordings plus configurable retroactive backfill
## Features
* **Recording Import**: Apollo call recordings imported into your Recordings library
* **Transcript Support**: Direct transcript import with word-level detail for richer conversation context
* **History Window Options**: Choose how far back to import, or select **Don't import** to skip historical data entirely
* **Manual Full Sync**: Trigger a one-off retroactive resync from the integration settings
* **Participant Matching**: More accurate matching of Apollo participants to BuildBetter people and companies
* **Rate-Limit Handling**: Syncs respect Apollo's cooldown periods to reduce repeated retries
## Setup Guide
### Prerequisites
1. **Apollo Requirements**:
* Active Apollo account with access to Apollo Conversations
* Authorization to connect third-party integrations
2. **BuildBetter Requirements**:
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
1. **Connect in BuildBetter**
* Go to Settings → Integrations
* Select **Apollo Conversations** from the recording import integrations
* Authenticate with your Apollo account and approve access
2. **Configure Import Settings**
* Pick a history window: a specific date range, or **Don't import** if you only want future calls
* Save your settings
3. **Start Import**
* Launch the initial sync
* New Apollo calls will continue to flow in automatically
## Imported Data
When calls are imported from Apollo, BuildBetter preserves:
* **Call recording** audio/video from Apollo
* **Full transcript** with word-level timestamps and speaker identification
* **Call metadata** — start time, duration, direction, status
* **Participants** — Apollo attendees mapped to your BuildBetter people/companies
## History Window Options
When you first connect Apollo you can choose how much history to import:
* **A date range** — import all qualifying calls from that window forward
* **Don't import** — skip historical data and only ingest calls that happen after setup
You can change this later, or trigger a manual full sync from the integration settings if you want to pick up past calls after initially skipping them.
## Limitations
* **One-way import only** — data flows from Apollo to BuildBetter.
* **Recording or transcript required** — calls without either are skipped.
* **Rate limits** — very large backfills honor Apollo's API cooldown periods and may take time to complete.
## Troubleshooting
### Connection Issues
* Reauthenticate if your Apollo session has expired
* Confirm your Apollo account has access to Apollo Conversations
### No Calls Being Imported
* Double-check your history window — **Don't import** means nothing is backfilled
* Verify recordings exist in Apollo for the expected time range
* Confirm calls have completed processing in Apollo
### Duplicate or Missing Participants
* Participant matching looks for existing BuildBetter people by email and name
* Review your people list if a caller should be attached to an existing contact
### Retry Loops or Rate Limit Errors
* BuildBetter now respects Apollo's cooldown periods more accurately, reducing repeated retries
* If you see persistent errors, check the integration logs and reconnect if needed
## Support
Need help? Contact us:
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Claap Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/recording/claap
Connect BuildBetter with Claap for video collaboration and meeting intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Claap Integration Early Access" in the subject line.
Connect BuildBetter with Claap to automatically import screen recordings, meeting recordings, and async video messages for AI-powered analysis and insights.
## Overview
The Claap integration will enable you to:
* Automatically sync video recordings and transcripts from Claap
* Analyze async video communications with BuildBetter's AI
* Create searchable knowledge from your team's video content
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Claap Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Automatic Import**: Sync recordings and transcripts from Claap to BuildBetter
* **AI Analysis**: Extract insights, action items, and key topics from video content
* **Meeting Intelligence**: Get summaries and highlights from team meetings
* **Screen Recording Analysis**: Extract insights from product demos and walkthroughs
* **Cross-Platform Search**: Search across Claap recordings within BuildBetter
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Cycle Integration
Source: https://docs.buildbetter.ai/pages/Integrations/recording/cycle
Connect BuildBetter with Cycle for seamless recording and analysis of product development discussions
BuildBetter's Cycle integration enables automatic recording and analysis of product development meetings, allowing you to track discussions around features, bugs, and development cycles directly within your Cycle workflow.
## Features
* **Automatic Meeting Recording**: Record all your Cycle sprint planning and review meetings
* **Task-Focused Organization**: Automatically link recordings to relevant Cycle tasks and sprints
* **Development Context**: Connect meeting recordings to your existing development cycles
* **Transcript Tagging**: Tag transcript segments with relevant Cycle tasks and issues
* **Sprint Documentation**: Automatically document sprint discussions and decisions
## Setup Instructions
### Prerequisites
* An active BuildBetter account
* Cycle account with appropriate access
* Admin permissions in both platforms
### Connecting Cycle
1. Navigate to **Settings → Integrations** in your BuildBetter dashboard
2. Select **Cycle** from the recording integrations
3. Enter your Cycle API key
4. Select the workspace and team you want to connect
5. Configure visibility and access settings
6. Click **Connect** to activate the integration
### Configuring Recording Rules
After connecting:
1. Go to **Settings → Integrations → Cycle → Recording Rules**
2. Configure which Cycle meetings to record:
* Sprint planning
* Sprint reviews
* Backlog refinement
* Daily standups
3. Set up automatic tagging rules for different meeting types
4. Save your configuration
## Usage
### Recording Sprint Meetings
Once connected, BuildBetter will:
1. Detect scheduled Cycle meetings from connected calendars
2. Automatically join and record meetings based on your rules
3. Process transcripts with speaker identification
4. Link recordings to the appropriate sprint and tasks
5. Generate AI summaries focused on development context
### Task Reference
Link meeting discussions to specific Cycle tasks:
1. During transcript review, select relevant segments
2. Click **Link to Cycle Task**
3. Search for and select the appropriate task
4. Add an optional note or context
5. Save to create a reference visible in both BuildBetter and Cycle
### Sprint Documentation
Generate sprint documentation from meetings:
1. After sprint review meetings, go to the meeting recording
2. Click **Generate Sprint Documentation**
3. Select which aspects to include (decisions, action items, blockers)
4. Review and edit the generated document
5. Push to Cycle as sprint documentation
## Advanced Features
### Development Insights
Extract key development insights from recorded meetings:
1. View the **Insights** tab on any Cycle-linked recording
2. See AI-detected:
* Feature scope changes
* Technical decisions
* Blockers and risks
* Action items by team member
3. Export insights to Cycle as task comments or documentation
### Automatic Task Creation
Create Cycle tasks directly from meetings:
1. During transcript review, identify action items or new tasks
2. Select relevant transcript sections
3. Click **Create Cycle Task**
4. Fill in task details, leveraging content from the selected segment
5. Assign to team members and set due dates
6. Submit to create the task in Cycle
## Troubleshooting
### Connection Issues
* Verify your Cycle API key is valid
* Check permissions in your Cycle account
* Ensure proper workspace selection
### Meeting Detection
* Verify calendar integration is active
* Check that meeting titles include Cycle-related keywords
* Ensure the meeting is associated with a Cycle sprint
### Task Linking Problems
* Verify proper authentication between platforms
* Check that task IDs are correctly formatted
* Ensure you have access to the target task
## Use Cases
### Development Teams
* Document technical decisions in sprint planning
* Create traceable links between discussion and implementation
* Ensure context doesn't get lost between meetings
### Product Management
* Record feature discussions linked to their development tasks
* Track how requirements evolve during development
* Document reasons behind priority or scope changes
### Quality Assurance
* Link bug discussion context to testing tasks
* Document reproduction steps mentioned in meetings
* Create clear references between issues and their resolution discussions
# Dialpad Integration
Source: https://docs.buildbetter.ai/pages/Integrations/recording/dialpad
Import call recordings and transcripts from Dialpad into BuildBetter for analysis
Connect BuildBetter with Dialpad to import your call recordings and transcripts, so you can run BuildBetter's AI analysis across your support, sales, and success conversations alongside the rest of your data.
## Overview
The Dialpad integration enables you to:
* Import call recordings and transcripts from Dialpad
* Analyze support, sales, and service conversations
* Track trends across large call volumes
* Maintain automatic sync of new calls
**Integration Type**: One-way import (Dialpad → BuildBetter)
**Authentication**: API Key
**Sync Frequency**: Optional auto-import for new calls, plus manual retroactive backfills
## Features
* **Call Recording Import**: Import phone call recordings from Dialpad
* **Transcript Support**: Import full transcripts with speaker identification
* **Historical Backfill**: Import past calls within a configurable date window
* **Auto-Import**: Optionally sync new calls automatically as they complete
* **Participant Tracking**: Identify internal agents and external callers
* **Call Metadata**: Duration, direction, status, and timestamps
## Setup Guide
### Prerequisites
1. **Dialpad Requirements**:
* Active Dialpad account with API access
* API key generated from your Dialpad admin settings
* Call recording enabled for the calls you want to import
2. **BuildBetter Requirements**:
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
1. **Get Your Dialpad API Key**
* Log in to your Dialpad admin console
* Navigate to the API settings for your company
* Generate an API key with access to call recordings and transcripts
* Copy and keep the key secure
2. **Connect in BuildBetter**
* Go to Settings → Integrations
* Select **Dialpad** from the recording import integrations
* Paste your Dialpad API key
* Click **Connect**
3. **Configure Import Settings**
* Choose whether to enable auto-import of new calls
* Set the historical backfill window (or skip backfill if you only want future calls)
* Save your settings
4. **Start Import**
* Click **Import** to begin the initial sync
* Monitor progress in the integration dashboard
* New calls will flow in automatically if auto-import is enabled
## Imported Data
When calls are imported from Dialpad, the following data is preserved:
### Call Metadata
* Call ID from Dialpad
* Direction (inbound or outbound)
* Start, answer, and end timestamps
* Duration
* Caller and agent phone numbers
### Call Recordings
* Audio recording of the call
* Source URL stored and audio downloaded into BuildBetter
### Transcripts
* Full transcript with speaker identification
* Word-level timestamps where available
### Participants
* Internal Dialpad users mapped to your workspace
* External callers identified by phone number and contact detail
## Historical Backfill
When you first connect Dialpad you can choose how far back to import calls. Larger backfill windows can take longer to process — BuildBetter handles this in batches so large syncs continue reliably and resume automatically if interrupted.
You can also trigger a manual full resync later from the integration settings.
## Limitations
* **One-way import only** — data flows from Dialpad to BuildBetter, not back.
* **Recording or transcript required** — calls without either are skipped.
* **Rate limits** — very large backfills respect Dialpad's API rate limits and may take time to complete.
## Troubleshooting
### Connection Issues
* Verify your Dialpad API key is correct and not revoked
* Confirm the key has access to call recordings and transcripts
* Check that you have admin privileges in Dialpad
### No Calls Being Imported
* Verify call recording is enabled for the lines you expect
* Check the backfill date range covers periods with recorded calls
* Confirm calls have finished processing in Dialpad
### Sync Interruptions or Retries
* Large imports may hit rate limits; BuildBetter automatically retries with backoff
* Check the integration logs for status on in-progress syncs
## Support
Need help? Contact us:
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# GoToMeeting Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/recording/gotomeeting
Connect BuildBetter with GoToMeeting for automatic call recording and transcription
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "GoToMeeting Integration Early Access" in the subject line.
Connect BuildBetter with GoToMeeting to automatically record, transcribe, and analyze your video calls.
## Overview
The GoToMeeting integration will enable you to:
* Automatically record GoToMeeting calls
* Transcribe meeting conversations in real-time
* Extract key insights and action items
* Link meeting insights to customer accounts
* Search across all meeting transcripts
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "GoToMeeting Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Automatic meeting recording
* Real-time transcription
* Speaker identification
* Calendar integration
* Automatic insight extraction
* Integration with GoToWebinar for webinar analysis
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Grain Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/recording/grain
Connect BuildBetter with Grain for meeting recording and conversation intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Grain Integration Early Access" in the subject line.
Connect BuildBetter with Grain to automatically import meeting recordings and highlights for comprehensive conversation analysis and insights.
## Overview
The Grain integration will enable you to:
* Automatically sync meeting recordings and transcripts from Grain
* Combine Grain's highlights with BuildBetter's AI-powered analysis
* Create a unified repository of customer conversations
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Grain Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Recording Import**: Automatically sync Grain recordings to BuildBetter
* **Highlight Sync**: Import Grain highlights and clips for deeper analysis
* **AI Enhancement**: Layer BuildBetter's insights on top of Grain recordings
* **Meeting Intelligence**: Extract action items, decisions, and key topics
* **CRM Integration**: Connect Grain recordings to CRM records via BuildBetter
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Modjo Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/recording/modjo
Connect BuildBetter with Modjo for revenue intelligence and conversation analytics
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Modjo Integration Early Access" in the subject line.
Connect BuildBetter with Modjo to combine conversation intelligence platforms and create comprehensive insights from your sales and customer success calls.
## Overview
The Modjo integration will enable you to:
* Sync call recordings and transcripts from Modjo to BuildBetter
* Enhance revenue intelligence with BuildBetter's AI analysis
* Create unified customer insights across platforms
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Modjo Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Call Sync**: Import Modjo recordings and transcripts to BuildBetter
* **Dual Analysis**: Leverage both Modjo and BuildBetter's AI capabilities
* **Revenue Insights**: Combine conversation intelligence with BuildBetter's analytics
* **Coaching Integration**: Use BuildBetter insights to enhance sales coaching
* **Cross-Platform Search**: Search across all conversations in one place
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Momentum Integration
Source: https://docs.buildbetter.ai/pages/Integrations/recording/momentum
Import call recordings and transcripts from Momentum into BuildBetter for analysis
Connect BuildBetter with Momentum to pull your call recordings and transcripts into BuildBetter, where you can run AI analysis, extract signals, and surface insights alongside the rest of your customer data.
## Overview
The Momentum integration enables you to:
* Import call recordings and transcripts from Momentum
* Analyze sales and customer success conversations
* Retroactively backfill historical calls
* Automatically ingest new meetings as they're recorded
**Integration Type**: One-way import (Momentum → BuildBetter)
**Sync Frequency**: Ongoing import of new recordings plus retroactive backfill support
## Features
* **Recording Import**: Audio/video recordings from Momentum imported into your Recordings library
* **Transcript Support**: Full transcripts ingested with speaker identification
* **Retroactive Backfill**: Choose a historical window to import past meetings
* **Automatic Sync**: New Momentum recordings are imported as they become available
* **Participant Mapping**: Attendees from Momentum are mapped to your BuildBetter people and companies
* **Duplicate Handling**: Meetings already ingested from another source are deduplicated automatically
## Setup Guide
### Prerequisites
1. **Momentum Requirements**:
* Active Momentum account with recording access
* Authorization to connect third-party integrations
2. **BuildBetter Requirements**:
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
1. **Connect in BuildBetter**
* Go to Settings → Integrations
* Select **Momentum** from the recording import integrations
* Authenticate with your Momentum account
* Approve access when prompted
2. **Configure Import Settings**
* Choose a retroactive import window (or skip backfill to only import future recordings)
* Review the import configuration and save
3. **Start Import**
* Kick off the initial sync
* New Momentum recordings will continue to flow in automatically
## Imported Data
When recordings are imported from Momentum, BuildBetter preserves:
* **Recording audio/video** and source URL
* **Full transcript** with speaker identification and timestamps
* **Meeting metadata** — start time, duration, title
* **Attendees** — participants mapped to BuildBetter people/companies where possible
## Retroactive Backfill
On first connection you can pick how far back to import. Large backfills are processed in batches — if a sync is interrupted by a rate limit or transient error, BuildBetter resumes it automatically rather than restarting from scratch.
You can also trigger a manual resync from the integration settings later.
## Limitations
* **One-way import only** — recordings flow from Momentum to BuildBetter.
* **Recording or transcript required** — meetings without a recording or transcript are skipped.
* **Duplicate meetings** — if the same meeting exists in another connected source, BuildBetter merges rather than duplicates.
## Troubleshooting
### Connection Issues
* Reauthorize the integration if your Momentum session expired
* Verify you have permission to share recordings from Momentum
### Missing Recordings or Transcripts
* Confirm the recording has finished processing in Momentum
* Some recordings may not include a downloadable transcript — those can still be ingested if a recording file is available
### Auth or Rate-Limit Errors
* BuildBetter automatically backs off and retries on rate-limit responses
* If you see a persistent auth error, reconnect the integration from Settings → Integrations
## Support
Need help? Contact us:
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Otter.ai Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/recording/otter
Connect BuildBetter with Otter.ai for meeting transcription and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Otter.ai Integration Early Access" in the subject line.
Connect BuildBetter with Otter.ai to automatically import meeting transcripts and enhance them with AI-powered conversation intelligence.
## Overview
The Otter.ai integration will enable you to:
* Automatically sync meeting transcripts from Otter.ai
* Enhance Otter transcripts with BuildBetter's AI analysis
* Create searchable insights from all your meetings
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Otter.ai Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Transcript Sync**: Automatically import Otter.ai transcripts to BuildBetter
* **AI Enhancement**: Add BuildBetter's insights to Otter transcriptions
* **Action Item Detection**: Extract and track action items across meetings
* **Speaker Intelligence**: Analyze speaker patterns and conversation dynamics
* **Meeting Analytics**: Get insights on meeting effectiveness and outcomes
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Slack Huddles Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/recording/slack-huddles
Connect BuildBetter with Slack Huddles for audio conversation recording and analysis
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Slack Huddles Integration Early Access" in the subject line.
Connect BuildBetter with Slack Huddles to automatically record, transcribe, and analyze your audio conversations.
## Overview
The Slack Huddles integration will enable you to:
* Record Slack Huddle conversations
* Transcribe audio discussions in real-time
* Extract insights from informal conversations
* Link huddle insights to Slack channels
* Search across all huddle transcripts
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Slack Huddles Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Automatic huddle recording
* Real-time transcription
* Participant identification
* Channel-based organization
* Integration with Slack workflows
* Automatic summary posting to Slack channels
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# tldv Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/recording/tldv
Connect BuildBetter with tldv for meeting recording and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "tldv Integration Early Access" in the subject line.
Connect BuildBetter with tldv to automatically import meeting recordings, transcripts, and insights for comprehensive conversation intelligence.
## Overview
The tldv integration will enable you to:
* Automatically sync meeting recordings from tldv to BuildBetter
* Combine tldv's timestamps and highlights with BuildBetter's AI
* Create unified customer and team meeting insights
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "tldv Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Meeting Sync**: Import recordings and transcripts from tldv
* **Timestamp Integration**: Preserve tldv's highlights and key moments
* **AI Analysis**: Enhance tldv content with BuildBetter's insights
* **Multi-Platform**: Support meetings from Zoom, Google Meet, and Microsoft Teams
* **CRM Connection**: Link tldv recordings to customer records
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Zoho Voice Integration
Source: https://docs.buildbetter.ai/pages/Integrations/recording/zoho-voice
Import call recordings from Zoho Voice into BuildBetter for analysis
Connect BuildBetter with Zoho Voice to import your phone call recordings, enabling you to analyze customer conversations, support calls, and sales interactions with BuildBetter's AI.
## Overview
The Zoho Voice integration enables you to:
* Import call recordings from Zoho Voice
* Analyze customer support and sales calls
* Track call patterns and trends
* Extract insights from voice conversations
* Maintain automatic sync of new calls
**Integration Type**: One-way import (Zoho Voice → BuildBetter)
**Authentication**: OAuth 2.0
**Sync Frequency**: Automatic polling for new calls
## Features
* **Call Recording Import**: Import phone call audio files
* **Call Metadata**: Duration, timestamps, and call details
* **Date Range Filtering**: Control which calls to import by date
* **Automatic Polling**: New calls are automatically detected and imported
* **Secure Authentication**: OAuth 2.0 authorization
## Setup Guide
### Prerequisites
1. **Zoho Voice Requirements**:
* Active Zoho Voice account
* OAuth authorization (handled by BuildBetter)
* Call recording enabled in Zoho Voice
2. **BuildBetter Requirements**:
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
1. **Initiate Connection**
* Go to Settings > Integrations in BuildBetter
* Select "Zoho Voice" from recording import integrations
* Click "Connect to Zoho Voice"
2. **Authorize OAuth**
* You'll be redirected to Zoho Voice authorization
* Log in to your Zoho Voice account
* Review and approve the requested permissions:
* Read access to call logs and recordings
* Create access for batch downloads
* Click "Authorize"
3. **Configure Import Settings**
* Set date range for initial import
* Review import configuration
* Save settings
4. **Start Import**
* Click "Import" to begin importing calls
* Monitor import progress in the dashboard
* BuildBetter will automatically check for new calls
## OAuth Permissions
The integration requests the following Zoho Voice scopes:
* `ZohoVoice.call.READ` - Read access to call logs and recordings
* `ZohoVoice.call.CREATE` - Create access for batch operations
* `ZohoVoice.call.DELETE` - Delete access for transcription management
All permissions are managed securely through BuildBetter's OAuth integration.
## Imported Data
When calls are imported from Zoho Voice, the following data is preserved:
### Call Recordings
* **Audio Files**: Call recording audio downloaded and stored
* **Filename**: Recording filename from Zoho Voice
* **Format**: Audio format as provided by Zoho Voice
### Call Metadata
* **Call ID**: Unique log ID from Zoho Voice
* **Call Name**: Recording filename or log ID
* **Recorded At**: Call answer timestamp
* **Duration**: Call duration in seconds
* **Platform**: Zoho Voice attribution
### Import Settings
* **Interaction Type**: Set to external
* **Visibility**: Set to public within workspace
* **Owner**: User who created the integration
## Available Call Data (Not Currently Imported)
The Zoho Voice API provides additional data that is not currently imported:
* **Call Type**: Incoming, outgoing, missed, bridged, or forward calls
* **Participants**: Agent numbers, caller ID, destination numbers
* **Caller Information**: Caller ID name and number
* **Department**: Department associations
* **DID Numbers**: Direct inward dial numbers
* **Transcripts**: Call transcriptions (API supports but not imported)
## Filtering Options
**Currently Supported**:
* Date range filtering (start date and end date)
**Available in API (Not Yet Implemented)**:
* Agent filtering
* Call type filtering (incoming/outgoing/missed)
* Department filtering
* Number ID filtering
* Voicemail filtering
* Recording-only filtering
## Usage
### Viewing Imported Calls
1. Navigate to the **Calls** section in BuildBetter
2. Calls imported from Zoho Voice will show "Zoho Voice" as the source
3. Filter by source to view only Zoho Voice calls
4. Access all standard BuildBetter features:
* Listen to recordings
* Extract signals
* Generate summaries
* Share with team
### Analysis Features
Once imported, Zoho Voice calls are analyzed by BuildBetter:
* **Signal Extraction**: Detect customer issues, requests, and sentiment
* **AI Summaries**: Generate summaries of calls
* **Trend Analysis**: Identify patterns across calls
* **Call Organization**: Organize calls into folders and collections
* **Document Generation**: Create reports and insights from calls
### Automatic Updates
After initial setup, BuildBetter automatically:
* Polls for new Zoho Voice calls
* Imports new recordings
* Processes audio files
* Updates your call library
## Use Cases
### Customer Support
* Analyze support call quality
* Identify common customer issues
* Track issue resolution patterns
* Generate support insights
### Sales Analysis
* Review sales call effectiveness
* Identify successful approaches
* Track call outcomes
* Analyze sales conversations
### Quality Monitoring
* Monitor call quality
* Review agent performance
* Identify training needs
* Track compliance
### Product Feedback
* Extract feature requests from calls
* Identify product issues
* Understand customer needs
* Inform product decisions
## Limitations
* **One-Way Import Only**: Calls are imported from Zoho Voice to BuildBetter. No data flows back to Zoho Voice.
* **Recordings Only**: Currently only imports call recordings, not transcripts.
* **No Participant Data**: Caller and agent information is not imported.
* **Basic Filtering**: Only date range filtering is currently supported.
* **No Call Type Distinction**: Doesn't differentiate between incoming/outgoing/missed calls.
* **Limited Metadata**: Many available fields (department, call type, etc.) are not imported.
* **OAuth Authentication**: Managed through BuildBetter's secure integration system.
## Troubleshooting
### Connection Issues
* Verify OAuth authorization completed successfully
* Check that you approved all requested permissions
* Ensure your Zoho Voice account is active
* Try disconnecting and reconnecting
* Check integration status in Settings > Integrations
### No Calls Being Imported
* Check your date range settings
* Verify calls exist in Zoho Voice for the specified period
* Ensure calls have recordings available
* Confirm call recording is enabled in Zoho Voice settings
* Check that calls have completed (not in progress)
### Import Errors
* Verify sufficient storage space in BuildBetter
* Check network connectivity
* Ensure Zoho Voice API is accessible
* Review import logs for specific errors
* Contact support if errors persist
### OAuth Expiry
* OAuth tokens are refreshed automatically
* If authorization fails, reconnect the integration
* Check integration status in Settings > Integrations
## Technical Details
**Authentication Flow**:
* OAuth 2.0 authorization code flow
* Tokens stored securely and refreshed automatically
* Managed through BuildBetter's integration system
**API Base URL**: `https://voice.zoho.com/api/v1`
**Pagination**: 50 calls per page
**Date Format**: `yyyy-MM-dd` (e.g., "2024-01-15")
## Future Enhancements
Potential future improvements to this integration:
* Transcript import from Zoho Voice transcription API
* Participant and caller information mapping
* Advanced filtering (agent, call type, department)
* Call type classification (incoming/outbound/missed)
* Voicemail support
* Department and team associations
## Security & Compliance
* OAuth 2.0 secure authentication
* Encrypted credential storage
* Secure API communication over HTTPS
* SOC 2 compliant infrastructure
* GDPR compliant data handling
* Audio files securely stored and transmitted
## Support
Need help? Contact us:
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Airtable Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/sheets/airtable
Connect BuildBetter with Airtable for flexible database and feedback management
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Airtable Integration Early Access" in the subject line.
Connect BuildBetter with Airtable to sync customer insights, feedback, and product data with your collaborative database platform.
## Overview
The Airtable integration will enable you to:
* Export BuildBetter insights to Airtable bases
* Sync customer feedback with custom tables
* Automatically create records for new insights
* Link insights to customers and features
* Build custom views and workflows with feedback data
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Airtable Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Two-way base synchronization
* Automatic record creation from insights
* Custom field type mapping
* Linked record support
* Attachment sync for recordings
* Webhook-based real-time updates
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Smartsheet Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/sheets/smartsheet
Connect BuildBetter with Smartsheet for project and feedback management
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Smartsheet Integration Early Access" in the subject line.
Connect BuildBetter with Smartsheet to sync customer feedback, insights, and product roadmap data with your collaborative work management platform.
## Overview
The Smartsheet integration will enable you to:
* Export BuildBetter insights to Smartsheet
* Sync product feedback with project sheets
* Automatically create rows for new insights
* Link customer feedback to roadmap items
* Track feature requests in Smartsheet workflows
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Smartsheet Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Two-way data synchronization
* Automatic insight-to-row creation
* Custom field mapping
* Workflow automation triggers
* Attachment support for call recordings
* Real-time update notifications
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Bluesky Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/social/bluesky
Connect BuildBetter with Bluesky for social media feedback and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Bluesky Integration Early Access" in the subject line.
Connect BuildBetter with Bluesky to capture customer feedback, mentions, and conversations from the decentralized social network.
## Overview
The Bluesky integration will enable you to:
* Monitor mentions of your brand and products
* Import customer feedback from Bluesky posts
* Track sentiment across Bluesky conversations
* Identify trending topics and feature requests
* Analyze customer engagement patterns
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Bluesky Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Real-time Bluesky post monitoring
* Keyword and hashtag tracking
* Sentiment analysis on posts and replies
* Automated categorization of feedback
* Integration with custom feeds
* Support for Bluesky's AT Protocol
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Facebook Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/social/facebook
Connect BuildBetter with Facebook for social media feedback and community insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Facebook Integration Early Access" in the subject line.
Connect BuildBetter with Facebook to capture customer feedback from posts, comments, and group discussions.
## Overview
The Facebook integration will enable you to:
* Monitor Facebook page comments and messages
* Import feedback from Facebook groups
* Track sentiment across social conversations
* Analyze customer engagement patterns
* Identify trending topics and feature requests
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Facebook Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Facebook page and group monitoring
* Comment and message analysis
* Automated sentiment tracking
* Reaction and engagement metrics
* Facebook Live feedback capture
* Integration with Facebook Business Suite
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# LinkedIn Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/social/linkedin
Connect BuildBetter with LinkedIn for professional network feedback and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "LinkedIn Integration Early Access" in the subject line.
Connect BuildBetter with LinkedIn to capture professional feedback, monitor brand mentions, and analyze engagement from your network.
## Overview
The LinkedIn integration will enable you to:
* Monitor mentions of your company and products
* Import feedback from LinkedIn posts and comments
* Track sentiment across professional discussions
* Analyze engagement on company content
* Identify industry trends and customer needs
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "LinkedIn Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Company page mention monitoring
* Post and comment sentiment analysis
* Employee advocacy tracking
* LinkedIn message integration
* Industry hashtag monitoring
* Integration with LinkedIn Analytics
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Reddit Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/social/reddit
Connect BuildBetter with Reddit for community feedback and discussion insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Reddit Integration Early Access" in the subject line.
Connect BuildBetter with Reddit to monitor subreddit discussions, track brand mentions, and analyze community sentiment.
## Overview
The Reddit integration will enable you to:
* Monitor specific subreddits for customer feedback
* Track mentions of your brand and products
* Analyze sentiment across Reddit discussions
* Identify feature requests and pain points
* Capture insights from AMA sessions
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Reddit Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Multi-subreddit monitoring
* Keyword and phrase tracking
* Automated sentiment analysis
* Upvote and engagement metrics
* Comment thread analysis
* Integration with Reddit's API
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Twitter/X Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/social/twitter
Connect BuildBetter with Twitter/X for social media feedback and brand monitoring
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Twitter/X Integration Early Access" in the subject line.
Connect BuildBetter with Twitter/X to monitor brand mentions, capture customer feedback, and analyze social media sentiment.
## Overview
The Twitter/X integration will enable you to:
* Monitor mentions of your brand and products
* Import customer feedback from tweets and replies
* Track sentiment across Twitter conversations
* Identify trending topics and feature requests
* Analyze engagement patterns and reach
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Twitter/X Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Real-time tweet and mention monitoring
* Keyword and hashtag tracking
* Automated sentiment analysis
* Thread conversation analysis
* Engagement metrics and analytics
* Integration with Twitter/X API v2
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Ada Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/ada
Connect BuildBetter with Ada for automated customer service insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Ada Integration Early Access" in the subject line.
Connect BuildBetter with Ada to analyze chatbot conversations, extract customer insights, and improve automated support experiences with AI-powered intelligence.
## Overview
The Ada integration will enable you to:
* Import chatbot conversations from Ada for analysis
* Extract insights from automated customer interactions
* Identify opportunities to improve chatbot responses
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Ada Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Conversation Import**: Sync Ada chatbot conversations
* **Intent Analysis**: Understand customer intent and common questions
* **Escalation Detection**: Identify when automation isn't working
* **Response Optimization**: Generate insights to improve chatbot answers
* **Customer Satisfaction**: Track satisfaction with automated support
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Crisp Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/crisp
Connect BuildBetter with Crisp for customer messaging insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Crisp Integration Early Access" in the subject line.
Connect BuildBetter with Crisp to analyze customer conversations, extract support insights, and improve customer experience with AI-powered intelligence.
## Overview
The Crisp integration will enable you to:
* Import conversations from Crisp for AI analysis
* Extract insights from customer support and sales chats
* Track customer sentiment and common issues
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Crisp Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Conversation Sync**: Import Crisp chat conversations
* **Multi-Channel Analysis**: Analyze conversations from chat, email, and other channels
* **Issue Detection**: Identify recurring customer problems
* **Sentiment Tracking**: Monitor customer satisfaction
* **Knowledge Base Enhancement**: Generate insights to improve documentation
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Customerly Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/customerly
Connect BuildBetter with Customerly for customer communication insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Customerly Integration Early Access" in the subject line.
Connect BuildBetter with Customerly to analyze customer conversations, extract support insights, and improve customer engagement with AI-powered intelligence.
## Overview
The Customerly integration will enable you to:
* Import conversations from Customerly for AI analysis
* Extract insights from live chat, email, and in-app messaging
* Track customer satisfaction and support patterns
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Customerly Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Multi-Channel Import**: Sync conversations from chat, email, and in-app messaging
* **Customer Enrichment**: Add conversation insights to customer profiles
* **Issue Detection**: Identify recurring customer problems
* **Sentiment Analysis**: Track customer satisfaction trends
* **Knowledge Base Enhancement**: Generate insights to improve help content
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Drift Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/drift
Connect BuildBetter with Drift for conversational marketing and support insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Drift Integration Early Access" in the subject line.
Connect BuildBetter with Drift to analyze chat conversations, extract customer insights, and improve conversational marketing and support experiences.
## Overview
The Drift integration will enable you to:
* Import chat conversations from Drift for AI analysis
* Extract insights from sales and support interactions
* Track customer intent and conversation outcomes
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Drift Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Conversation Import**: Sync Drift chat conversations and meetings
* **Lead Intelligence**: Extract insights from sales conversations
* **Support Analysis**: Analyze support chat interactions
* **Intent Detection**: Identify customer intent and qualification signals
* **CRM Integration**: Connect Drift conversations to customer records
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Freshdesk Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/freshdesk
Connect BuildBetter with Freshdesk to ingest and analyze data for product insights and enhanced support
**Coming Soon - Request Early Access**
This integration is currently in Alpha development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Freshdesk Integration Early Access" in the subject line.
Ingest all data from Freshdesk platform and have it searchable and accessible to BuildBetter chat and documents.
Run signals over this data to get product insights, such as feature requests, bugs, issues, and complaints.
Use those signals or the raw data to generate reports or run workflows over them. This is great for support, customer success, and product teams.
The setup is pretty simple. All of them require a BuildBetter account and a plan that allows the specific integration. They are enabled for all organizations. Requires a Freshdesk workspace with API credentials and access.
## Setup Guide
1. Navigate to [https://app.buildbetter.app/settings/org/integrations](https://app.buildbetter.app/settings/org/integrations)
2. Scroll to **Freshdesk** integration.
3. Enter your Freshdesk API key.
4. Configure shareability and settings (see screenshot).
5. Click **Connect**.
## Bulk Ingestion
**Bulk Ingestion**
If you do wish to ingest historical data, please reach out to [support@buildbetter.app](mailto:support@buildbetter.app) and we can do a retroactive import over historical data, and we can do a bulk import as well.
## Settings & Options
Get the conversations when the conversation is closed in Freshdesk.
**Default**: Enabled
Get the conversations when a tag selected is attached to a message in your conversation.
**Default**: Disabled
Setting the days to 0 will stop the automatic update on reopened conversations or open conversations with selected tags.
**Default**: 0 days
# Front Integration (Beta)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/front
Connect BuildBetter with Front to sync conversations, people, and companies for product insights and support analysis
The Front integration is available in **beta** for early-access workspaces. Contact [support@buildbetter.app](mailto:support@buildbetter.app) if it isn't visible in your integrations list.
Connect BuildBetter with Front to ingest your conversations, people, and companies. Once synced, Front data is searchable in BuildBetter and available to chat, signals, reports, and workflows alongside your other customer feedback sources.
Run signals over this data to surface feature requests, bugs, complaints, and other product insights. Use those signals or the raw data to generate reports and run workflows — ideal for support, customer success, and product teams.
## What Gets Synced
* **Conversations**: Inbound and outbound conversation threads from your Front workspace
* **People**: Contacts associated with Front conversations
* **Companies**: Company records linked to those contacts
## Setup Guide
### Prerequisites
* Active BuildBetter account on a plan that includes the Front integration
* Front workspace with API access and a connectable user account
* Admin permissions in both Front and BuildBetter
### Quick Setup
Navigate to **Settings > Integrations** at [app.buildbetter.app/settings/org/integrations](https://app.buildbetter.app/settings/org/integrations).
Scroll to the **Front** integration card in the ticketing/support section.
Connect using either OAuth (recommended) or a Front API key, depending on how your workspace is configured.
Choose when to fetch conversations, what to share, and how often open conversations should refresh (see below).
Click **Connect** to save your configuration and kick off the initial sync.
## Bulk Ingestion
**Bulk Ingestion available on request**
Bring all of your past Front conversations into BuildBetter for complete historical insights:
* **Retroactive import** of historical conversations up until the present
* **Bulk upload** via BuildBetter's GraphQL API for very large volumes
Contact [support@buildbetter.app](mailto:support@buildbetter.app) to schedule bulk ingestion for your workspace.
## Settings & Options
Ingest a conversation when it is closed in Front.
**Default**: Enabled
Ingest a conversation when one of your selected tags is attached to a message.
**Default**: Disabled
Periodically refresh reopened conversations or open conversations with selected tags. Setting this to `0` disables automatic updates.
**Default**: 0 days
## Sync Behavior
* BuildBetter respects Front's rate limits and plan limits and will resume automatically when the limit window resets
* Reopened conversations and conversations matching tag rules continue to flow in based on your settings
* Failed or interrupted imports resume from the correct cursor instead of restarting or skipping records
## Troubleshooting
**Integration not visible**
* The Front integration is currently in beta. Contact [support@buildbetter.app](mailto:support@buildbetter.app) to enable it for your workspace.
**Authentication errors**
* Reconnect from **Settings > Integrations > Front**
* Confirm the connected Front user still has access to the inboxes you want to sync
**Conversations not appearing**
* Verify that "Fetch conversations on close" or your tag rules match the conversations you expect
* Check whether the conversation was closed or tagged after the integration's start date
* Allow the next sync cycle to complete, or trigger a manual sync from settings
## Support
Need help with the Front integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
# Help Scout Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/helpscout
Connect BuildBetter with Help Scout for customer support insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Help Scout Integration Early Access" in the subject line.
Connect BuildBetter with Help Scout to analyze customer support conversations, extract insights from tickets, and improve customer service with AI-powered intelligence.
## Overview
The Help Scout integration will enable you to:
* Import conversations and tickets from Help Scout for analysis
* Extract insights from customer support interactions
* Identify common issues and improvement opportunities
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Help Scout Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Conversation Import**: Sync Help Scout conversations and tickets
* **Issue Detection**: Automatically identify recurring customer issues
* **Sentiment Analysis**: Track customer satisfaction across support interactions
* **Knowledge Base Enrichment**: Generate insights to improve documentation
* **Agent Intelligence**: Analyze support patterns to improve team performance
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Intercom Integration
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/intercom
Connect BuildBetter with Intercom to ingest conversations and feed live Topics, Signals, and AI chat
Ingest conversations from Intercom into BuildBetter for product insights, signal extraction, and live [Topics](/pages/Triage/topics) tracking. Intercom data is searchable across BuildBetter chat and documents, and powers reports and workflows alongside calls, Slack, and other feedback sources.
Intercom is one of two primary sources for the Topics experience (alongside Slack). New and updated Intercom conversations stream into Topics in real time so recurring issues, requests, and complaints group automatically as they happen.
## Topics-First Ingestion
When Topics is enabled, BuildBetter prioritizes **open Intercom conversations** — the ones that still need a team response — for live ingestion. Closed conversations backfill on setup.
* **Open conversations first** — live updates to active conversations drive Topic creation, matching, and stale detection
* **Closed conversation backfill** — historical conversations are pulled in on initial setup to seed Topics with prior context
* **Conversation subject as channel context** — Intercom conversation subjects and metadata are passed to the Topic classifier as `channelContext`, sharpening topic naming and matching confidence
See [Triage → Topics](/pages/Triage/topics) for how topics are created, matched, and surfaced.
## Setup Guide
In your Intercom workspace, create an access token with permission to read conversations and contacts.
Navigate to [Settings → Integrations](https://app.buildbetter.app/settings/org/integrations) and find the **Intercom** integration.
Paste your Intercom API key and configure shareability and visibility settings.
BuildBetter verifies the connection and begins ingesting open conversations live. Historical conversations backfill in the background.
**Bulk historical ingestion**
If you need a one-time retroactive import beyond what's covered by automatic backfill, email [support@buildbetter.app](mailto:support@buildbetter.app) and we'll run a bulk import over your historical Intercom data.
## Settings & Options
Pull conversations into BuildBetter when they're closed in Intercom.
**Default**: Enabled
Pull a conversation when a selected tag is attached to one of its messages.
**Default**: Disabled
Refresh open or reopened conversations on a rolling cadence. Set to `0` to disable automatic refresh.
**Default**: 0 days
## Reliability
Intercom ingestion is built to absorb provider hiccups without dropping data.
* **Resilient to outages** — temporary Intercom outages no longer crash processing; ingestion resumes once Intercom recovers
* **Event handling fixes** — new conversations and replies are ingested more reliably, including edge cases around reopen events and rapid-fire updates
* **Cursor and retry safety** — billing-limited or interrupted imports no longer skip records or advance progress too early; partial syncs resume from the right place
If your Intercom connection ever expires, BuildBetter marks it as needing reauthentication in the integration settings panel instead of failing silently.
## What Gets Imported
| Data | Details |
| - | - |
| **Conversations** | Full thread with all messages and context |
| **Messages** | Individual messages with timestamps, author, and content |
| **Authors** | Contacts (customers) and admins (teammates) with email and avatar |
| **Tags** | Intercom tags are preserved for filtering and Topic context |
| **Subjects & metadata** | Used as channel context for Topic classification |
## Use Cases
### Live Topic Tracking
Connect Intercom to surface recurring customer themes in [Triage → Topics](/pages/Triage/topics) the moment they emerge. Open conversations drive live updates; closed ones provide historical grounding.
### Signal Extraction
Run signals over Intercom conversations to extract feature requests, bugs, complaints, and praise. Results flow into the signals table alongside calls and other feedback sources.
### Product Feedback Loops
Connect Intercom support data to product decisions by routing extracted signals to projects, Linear issues, and customer-facing changelogs.
## Support
Need help with the Intercom integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
# Kustomer Integration
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/kustomer
Connect BuildBetter with Kustomer to ingest and analyze data for product insights and enhanced support
Ingest all data from Kustomer platform and have it searchable and accessible to BuildBetter chat and documents.
Run signals over this data to get product insights, such as feature requests, bugs, issues, and complaints.
Use those signals or the raw data to generate reports or run workflows over them. This is great for support, customer success, and product teams.
The setup is pretty simple. All of them require a BuildBetter account and a plan that allows the specific integration. They are enabled for all organizations. Requires a Kustomer workspace with API credentials and access.
## Setup Guide
1. Navigate to [https://app.buildbetter.app/settings/org/integrations](https://app.buildbetter.app/settings/org/integrations)
2. Scroll to **Kustomer** integration.
3. Enter your Kustomer API key.
4. Configure shareability and settings (see screenshot).
5. Click **Connect**.
## Bulk Ingestion
**Bulk Ingestion**
If you do wish to ingest historical data, please reach out to [support@buildbetter.app](mailto:support@buildbetter.app) and we can do a retroactive import over historical data, and we can do a bulk import as well.
## Settings & Options
Get the conversations when the conversation is closed in Kustomer.
**Default**: Enabled
Get the conversations when a tag selected is attached to a message in your conversation.
**Default**: Disabled
Setting the days to 0 will stop the automatic update on reopened conversations or open conversations with selected tags.
**Default**: 0 days
# Planhat Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/planhat
Connect BuildBetter with Planhat for customer success intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Planhat Integration Early Access" in the subject line.
Connect BuildBetter with Planhat to enhance your customer success platform with AI-powered conversation insights and customer intelligence.
## Overview
The Planhat integration will enable you to:
* Sync conversation insights to Planhat company and end-user records
* Enhance customer health scores with conversation data
* Track customer success metrics with conversation intelligence
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Planhat Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Company Enrichment**: Add conversation insights to Planhat company records
* **Activity Logging**: Track conversations as touchpoints in Planhat
* **Health Score Integration**: Incorporate conversation sentiment into health metrics
* **Custom Dimensions**: Map conversation data to Planhat custom fields
* **Workflow Automation**: Trigger Planhat workflows based on conversation insights
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Pylon Integration (Beta)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/pylon
Connect BuildBetter with Pylon to import and analyze B2B customer support conversations
Connect BuildBetter with Pylon to import your B2B support conversations and extract insights from customer issues across Slack, email, and other channels.
## Features
* **Issue Import**: Automatically sync Pylon support issues as conversations in BuildBetter
* **Full Thread History**: Import complete message threads including all replies and context
* **Author Detection**: Distinguish between internal support agents and external customers
* **Metadata Capture**: Preserve issue state, priority, tags, and custom fields
* **Slack & Email Context**: Retain original channel and email metadata for traceability
* **CSAT Integration**: Import customer satisfaction scores and feedback
## How It Works
BuildBetter connects to Pylon via API key and imports support issues as conversations. Each issue becomes a conversation with its full message thread, enabling AI-powered analysis to identify patterns, common problems, and customer sentiment.
**Import Type**: One-way (Pylon to BuildBetter)
**Sync Frequency**: Hourly automatic sync
## Setup Guide
### Prerequisites
1. **Pylon Requirements:**
* Pylon account (any plan with API access)
* Admin user access to generate API tokens
2. **BuildBetter Requirements:**
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
1. **Get Your Pylon API Token**
* Log in to your Pylon account as an Admin
* Navigate to **Settings > API Tokens**
* Generate a new API token
* Copy and save the token securely
2. **Connect in BuildBetter**
* Go to **Settings > Integrations** in BuildBetter
* Find Pylon in the Support section and click **Connect**
* Paste your Pylon API token
* Click **Connect** to verify and save
3. **Configure Import Settings**
* **Import History Window**: Choose how far back to import
* 7 days, 30 days, 90 days (default), 180 days, 365 days, or all history
* **State Filter** (optional): Filter by issue state
* Open, Snoozed, Closed, Resolved
* Click **Save** to start your first sync
## What Gets Imported
### Issue Data
| Pylon Field | BuildBetter Field | Notes |
| - | - | - |
| Title | Conversation title | |
| Description | First message | HTML stripped to plain text |
| State | Metadata | open, snoozed, closed, resolved |
| Priority | Metadata | urgent, high, medium, low |
| Tags | Tags | Preserved as conversation tags |
| Created/Updated | Timestamps | |
| Display URL | External link | Link back to Pylon |
### Message Threads
Each issue's messages are imported as a conversation thread:
* Full message content (HTML converted to text)
* Author information (support agent or customer)
* Timestamps for each message
* Email metadata (from, to, cc, bcc) when applicable
* Slack metadata (channel, workspace) when applicable
### People
Authors are automatically created or matched in BuildBetter:
* **Support Agents**: Marked as internal users
* **Customers**: Marked as external contacts
* Email matching for deduplication
* Name and avatar imported
### Metadata Preserved
* Issue number and external ID
* State and priority
* Custom field values
* Linked external issues (Linear, Jira, GitHub, Asana)
* CSAT scores and comments
* Original source channel (Slack, email, chat widget)
## Sync Behavior
### Automatic Sync
* Runs hourly to capture new and updated issues
* Incremental sync imports only changes since last sync
* Handles Pylon's 30-day API window automatically
### Import History
* First sync imports based on your history window setting
* Subsequent syncs are incremental
* You can adjust the history window to backfill older data
### Filtering
* Only public messages are imported (internal-only messages excluded)
* Messages must have content to be included
* Duplicate prevention via external ID tracking
### Cursor and Retry Safety
Billing-limited or interrupted Pylon imports resume from the correct cursor on the next sync. Progress is never advanced past records that weren't actually processed, so partial syncs don't skip issues — once your usage limit resets or transient errors clear, ingestion picks up from where it left off.
## Use Cases
### Support Pattern Analysis
* Identify recurring customer issues
* Track common problems across your customer base
* Spot emerging trends before they escalate
### Product Feedback
* Extract feature requests from support conversations
* Understand customer pain points
* Connect support insights to product decisions
### Customer Health
* Monitor sentiment across support interactions
* Identify at-risk accounts based on support patterns
* Track resolution quality and response times
## Troubleshooting
### Connection Issues
**"Invalid API Token" Error**
* Verify you copied the complete token
* Ensure the token was generated by an Admin user
* Try generating a new token
**"Needs Reauthorization" Status**
* Your API token may have been revoked
* Generate a new token in Pylon and reconnect
### Data Not Syncing
* Check that the integration status shows "Active"
* Verify your state filter isn't excluding the issues you expect
* Allow up to 1 hour for the next automatic sync
* Check the integration logs for specific error messages
### Missing Messages
* Private/internal messages are intentionally excluded
* Messages without content are skipped
* Very old issues may be outside the history window
## Privacy & Data
* BuildBetter only imports data from your Pylon workspace
* Support conversations are stored securely in your BuildBetter workspace
* Internal-only messages are never imported
* You can disconnect at any time to stop all data sync
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
# Unthread Integration
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/unthread
Import and analyze Unthread support conversations in BuildBetter
Connect BuildBetter with Unthread to import your support conversations and analyze them alongside all your other customer feedback. Surface patterns across support threads, identify recurring issues, and turn support data into actionable product intelligence.
## Why Connect Unthread to BuildBetter
* **Conversation Import**: Sync support conversations, messages, and participant data from Unthread
* **Unified Feedback View**: See support conversations alongside calls, tickets, and other feedback sources in one platform
* **AI-Powered Analysis**: Automatically extract signals—feature requests, bugs, complaints, and more—from your support threads
* **Filtering & Dashboards**: Filter by Unthread-specific tags, authors, and metadata. Build dashboards that include support data.
## How the Unthread Integration Works
BuildBetter connects to Unthread to import conversations with their full message history, authors, and tags. Once imported, conversations are processed through BuildBetter's standard analysis pipeline to extract signals and insights.
**Sync Type**: One-way (Unthread → BuildBetter)
**Data Imported**: Conversations, messages, authors, tags
## Setup Guide
### Prerequisites
1. **Unthread Requirements**:
* Active Unthread account
* Admin or API access for generating credentials
2. **BuildBetter Requirements**:
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
Go to **Settings > Integrations** in BuildBetter
Find Unthread in the integration list and click **Connect**. Enter your Unthread API credentials.
Choose which conversations to import. You can filter by date range or import your full history.
Click **Import** to begin syncing your Unthread conversations. Monitor progress in the integration settings.
## Viewing Imported Conversations
Once imported, your Unthread conversations appear throughout BuildBetter:
* **Calls & Conversations**: Unthread conversations show with the Unthread icon as their source
* **Signals**: AI-extracted insights from support threads appear in your signals table
* **Dashboards**: Include Unthread data in clustering dashboards and analytics
* **Search**: Find support conversations through Universal Search
## What Gets Imported
| Data | Details |
| - | - |
| **Conversations** | Full thread with all messages and context |
| **Messages** | Individual messages with timestamps and content |
| **Authors** | Participant names and contact information |
| **Tags** | Unthread tags are preserved for filtering in BuildBetter |
## Use Cases
### Surface Support Patterns
Use clustering dashboards to identify the most common support themes and track them over time.
### Connect Support to Product
When signals are extracted from Unthread conversations, they appear alongside feedback from calls and other sources—giving your product team a complete picture.
### Track Customer Health
Filter signals by company to see which accounts are generating the most support conversations and what issues they're hitting.
## Reliability
### Reauthentication Handling
If your Unthread connection expires or its credentials are revoked, BuildBetter marks the integration as **needs reauthentication** in the integration settings panel instead of failing silently in the background. Reconnect with fresh credentials to resume sync — no data is lost, and ingestion picks up from where it left off.
### Import Cursor and Retry Safety
Billing-limited or interrupted Unthread imports resume from the correct cursor on the next sync. Progress is never advanced past records that weren't actually processed, so partial syncs don't skip conversations.
### Billing Records
Imported Unthread conversations are billed consistently with other integration-sourced conversations — no missing or duplicated billing records when imports retry.
## Support
Need help with the Unthread integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Vitally Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/vitally
Connect BuildBetter with Vitally for customer success intelligence
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Vitally Integration Early Access" in the subject line.
Connect BuildBetter with Vitally to enrich your customer success platform with conversation intelligence and AI-powered insights from customer interactions.
## Overview
The Vitally integration will enable you to:
* Sync conversation insights to Vitally customer profiles
* Enhance customer health scores with conversation sentiment
* Track customer outcomes and success metrics
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Vitally Integration Early Access"
3. Include:
* Your use case
* Expected data volume
* Timeline needs
Our team will review your request and reach out to discuss setup.
## Planned Features
* **Profile Enrichment**: Add conversation insights to Vitally customer profiles
* **Health Score Enhancement**: Incorporate conversation sentiment into health scores
* **Activity Tracking**: Log customer conversations as touchpoints
* **Risk Detection**: Identify at-risk customers from conversation signals
* **Success Playbooks**: Trigger Vitally playbooks based on conversation insights
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
* Schedule a [setup call](https://calendly.com/buildbetter/support)
# Zendesk Integration
Source: https://docs.buildbetter.ai/pages/Integrations/ticketing/zendesk
Connect BuildBetter with Zendesk to ingest and analyze data for product insights and enhanced support
Ingest all data from Zendesk platform and have it searchable and accessible to BuildBetter chat and documents.
Run signals over this data to get product insights, such as feature requests, bugs, issues, and complaints.
Use those signals or the raw data to generate reports or run workflows over them. This is great for support, customer success, and product teams.
The setup is pretty simple. All of them require a BuildBetter account and a plan that allows the specific integration. They are enabled for all organizations. Requires a Zendesk workspace with API credentials and access.
## Setup Guide
1. Navigate to [https://app.buildbetter.app/settings/org/integrations](https://app.buildbetter.app/settings/org/integrations)
2. Scroll to **Zendesk** integration.
3. Enter your Zendesk API key.
4. Configure shareability and settings (see screenshot).
5. Click **Connect**.
## Bulk Ingestion
**Bulk Ingestion**
Bring in all past Zendesk tickets into BuildBetter for complete insights:
* **Retroactive Import**: Import historical tickets up until today.
* **Bulk API Import**: Use our GraphQL API to upload large datasets.
Contact [support@buildbetter.app](mailto:support@buildbetter.app) to arrange your bulk ingestion.
## Settings & Options
Get the conversations when the conversation is closed in Zendesk.
**Default**: Enabled
Get the conversations when a tag selected is attached to a message in your conversation.
**Default**: Disabled
Setting the days to 0 will stop the automatic update on reopened conversations or open conversations with selected tags.
**Default**: 0 days
# BuildBetter Changelog
Source: https://docs.buildbetter.ai/changelog
Latest updates to the BuildBetter web app. Recorder and ZeroShot are tracked separately.
### 🚀 New Features
* **Interactive Evidence in ChatGPT:** In supported MCP clients, browse customer evidence, inspect its source context, select useful signals, and bring those selections into your conversation.
* **Product Analytics through MCP:** Discover connected PostHog and Amplitude projects, run read-only queries, and inspect saved insights alongside customer evidence, with connection and coverage context included.
* **Upcoming Calls Report:** Manage the morning Call Prep email from the Upcoming Calls report, including its schedule, email introduction, and subject. Existing Call Prep delivery is preserved while the replacement report is enrolled.
### ✨ Improvements & Enhancements
* **Live BoB Meeting Controls:** In enabled meetings, stop an answer, pause listening, or mute BoB independently. Answers are saved with the recording, and supported meeting chat can invoke BoB using the configured wake phrase.
* **Per-Call BoB Choices:** Turn BoB responses on or off for an upcoming call without turning off recording. Workspace admins can choose separate defaults for internal and external scheduled calls.
* **Search Beyond Attached Calls:** Chats keep searches within the calls you attached. When a question needs wider evidence, use Search all calls to rerun it across the workspace explicitly.
* **More Complete Calendar Answers:** Chat includes available all-day and multi-day calendar events and identifies your next timed meeting.
* **HubSpot Contact Scope:** Choose whether to import HubSpot contacts or enrich only people already in BuildBetter. Selecting custom object fields with contact import off no longer imports the whole contact list.
* **Chat-First MCP Research:** Complete supported research directly in chat, with visual evidence selection available when requested and an optional status card for existing processing and Smart Tag jobs.
### 🐛 Bug Fixes
* **Smoother BoB Answer Playback:** Enabled meetings buffer incoming audio for continuous playback and distinguish Thinking, Buffering, and Speaking. Stop, pause, and mute cancel queued speech as well as the current answer.
* **Large Signal Reads:** Chat can load large pages of signals without the stack overflow that interrupted some analyses.
* **Resumable HubSpot Imports:** Contact imports continue from where a capped run stopped instead of leaving later contacts unread.
* **Reliable Chat Error Handling:** Basic and Advanced chat handle failed response events without the additional error that could interrupt the conversation.
### 🚀 New Features
* **Canvas-First Workflow Builder:** Add blocks from the canvas, configure them in a panel beside the selected block, and find saved workflows by name, destination, or block type.
* **Public Documentation Imports from Chat:** Import an explicit list of public documentation URLs into Knowledge and use the imported pages in follow-up requests. Original image links and icon-table text are retained.
* **Calendar and Call Prep in Chat:** Ask about your schedule or prepare for a specific meeting using its attendees, saved Call Prep, and recent company activity.
* **Opt-In AI Call Types:** Where Smart Call Types are enabled, label new, otherwise-untyped calls from a type's plain-language definition. AI labeling costs one credit per labeled call; filter labels remain free, and enabling it does not scan past calls.
### ✨ Improvements & Enhancements
* **Editable Project Updates:** Project update Loops create concise Now, Done, Next, and Status sections in Notes and Slack. Open the Loop's conversation to adjust its instructions and preview a sourced update before publishing.
* **Linked Pull Requests:** Associate related pull requests with projects and inspect whether their changes have already landed on the base branch, with unclear results identified rather than assumed.
* **Newest Loop Findings First:** Opening a Loop's brief takes you to its newest finding.
* **Clearer Recording Guidance:** Asking chat how to stop the notetaker joining leads to the Never record setting.
### 🐛 Bug Fixes
* **Reliable Imported Calls:** Supported call imports handle missing transcript participants, resume after rate limits, and continue beyond the per-run cap without skipping remaining calls.
* **Failed Integration Reconnection:** A failed connection can be reconnected instead of leaving setup at a dead end.
* **Available Chat History:** A missing context record on one chat no longer prevents the rest of the chat list from loading.
* **Customer Portal Controls:** Portal assistance settings open correctly, roadmap dates use accepted date inputs, and valid effort weights can be saved. Portal titles also remain readable on mobile.
* **Accurate Billing Details:** Contract allowances account for consumed coverage correctly, and eligible unlimited workspaces show Free unlimited without a misleading monthly-plan breakdown.
### 🚀 New Features
* **Chat with Your Knowledge Page:** Ask questions from a Knowledge page with that page already attached as context. The conversation follows you as you navigate between pages.
* **Guided Knowledge Gaps Setup:** Follow a setup checklist to connect release and documentation sources, review the cost before analyzing a release, and resume unfinished setup where you left off.
### ✨ Improvements & Enhancements
* **Connect Integrations from Chat:** When a request needs an integration, use the Connect action in the answer to start setup and return to the conversation afterward.
* **Project Reports in Context:** Read saved project reports from the Evidence tab, search their text, expand the content, and follow available Slack delivery links.
* **Clearer Loops Navigation:** Browse your Loops beside the morning brief and open a dedicated settings dialog for each Loop.
* **Faster App Navigation:** The app loads less information at startup and avoids repeatedly requesting unchanged settings while you work.
* **Current Changelog Popup:** The in-app What's New popup presents the newest releases in order, with the full release history available through See all updates.
### 🐛 Bug Fixes
* **Integration Reconnection:** Reconnecting updates the existing connection instead of creating a duplicate.
* **Accurate Intercom Import Filters:** Exclude-tagged conversation settings save correctly.
* **Clearer Billing Actions:** Add Credits is offered when a live subscription supports it, and plan and usage labels remain consistent.
* **Complete MCP Chat Context:** Supported MCP chat responses retain the chat identity and evidence needed to open and understand the result.
### 🚀 New Features
* **Helpful Links in AI Answers:** Chat can link directly to the page or setting that completes the task it describes.
* **Basic Chat When Credits Run Out:** Continue with Basic Chat when Advanced Chat is out of credits, with a clear explanation of which capabilities are available.
### ✨ Improvements & Enhancements
* **Morning Brief with Your Loops:** Open Loops on the newest morning brief and jump into each Loop's latest conversation from the list beneath it, where briefs are enabled.
* **Easier MCP Setup:** Select and copy the server URL from a familiar field in Settings, with setup documentation close at hand.
* **More Useful Report Charts:** Taxonomy reports find nested product areas, and charts display their configured series correctly.
* **Recording Import Controls:** Use call-duration filters for supported call imports and load your Intercom workspace tags when choosing conversation filters.
* **Knowledge through MCP:** Browse Knowledge pages with continuation cursors and find skills by the terms relevant to your question.
### 🐛 Bug Fixes
* **Playback Stays in Place:** Refreshing a recording's playback URL preserves the current playback position.
* **Knowledge Sync Recovery:** Source imports resume after an interrupted worker instead of remaining stuck.
* **Readable Knowledge Pages:** Quote cards show their text and speaker, inherited workspace access is labeled correctly, and renamed drafts appear under their new name.
* **Reliable Call-Page Links:** The Knowledge page picker searches the entered text, enables the selected result, and shows linked calls from the page's details.
* **Recording Import Team Filters:** Team discovery no longer blocks the import filter controls.
### 🚀 New Features
* **Knowledge Answers Beyond Exact Words:** Chat and supported MCP clients can find relevant Knowledge passages from natural-language questions, with snippets that show the matching content.
* **Reports Follow Your Taxonomy:** Scope and label report signals using your workspace's existing taxonomy nodes.
### ✨ Improvements & Enhancements
* **Clearer Partial Search Results:** Search explains which result types could not finish instead of presenting a partial result as complete.
* **MCP Setup in Settings:** Find the MCP connection address and setup links directly in Settings.
* **Readable Warning Messages:** Warning text is easier to read in both light and dark themes.
* **Better Morning Brief Controls:** Where morning briefs are enabled, dismiss a decision in one step, see useful refusal reasons, and ask BOB to walk through the brief.
### 🐛 Bug Fixes
* **Resilient Coda Imports:** One unavailable or conflicting document no longer strands the entire sync, and pages interrupted by a failed refresh can recover.
* **Knowledge Edits without Extra Prompts:** Saving a page while keeping its existing parent no longer asks for a move confirmation.
* **Recovered Chat Turns:** Conversations can recover interrupted turns after a temporary service restart.
* **More GitHub Repository Choices:** Repository selection includes repositories beyond the first hundred.
* **Smoother Return to the App:** Returning to an older tab refreshes it quietly instead of producing a burst of expired-session requests.
* **Reliable Legacy Recordings:** Older recording media loads through the updated recording experience.
### 🚀 New Features
* **Coda Tables in Knowledge:** Import Coda table rows as readable Knowledge pages under their source tables, with large imports continuing automatically when a sync needs more time.
* **Knowledge Pages Linked to Calls:** Connect an existing Knowledge page to a call and see the related calls from that page. These links remain in place when a call is reprocessed.
* **Zoom Recording Host Controls:** Choose which hosts' cloud recordings a Zoom connection imports, while keeping the existing all-hosts behavior by default.
### ✨ Improvements & Enhancements
* **Clearer Projects and Knowledge:** Read documents in a cleaner layout, navigate Knowledge by source and page hierarchy, and manage page details and source actions more easily.
* **Live Transcripts When Needed:** In the web app, live transcription starts when someone opens a call's Transcript view and stops when nobody is viewing; ordinary recording and final transcription continue independently.
* **More Flexible HubSpot Connection:** Connect with the essential read permissions and choose additional capabilities only when needed.
* **One Consistent Chat Composer:** Floating chat and the full chat page share the same attachment picker, mentions, mode controls, and voice entry points.
* **Better Signal Search:** Search can use the quoted text behind signals from calls, conversations, and surveys.
* **Taxonomy-Aware Reports:** Report generation uses your workspace's existing product taxonomy when grouping themes instead of inventing keyword categories.
* **Richer Support Conversations:** Share clickable links and screenshots in support conversations, and open attached images at full size.
### 🐛 Bug Fixes
* **Collection Context Kept in Chat:** Opening Chat from a Collection keeps that Collection's scope instead of redirecting to an empty new chat.
* **Knowledge Hierarchy Preserved:** Synced pages stay beneath their parent pages when a source updates them.
* **Readable Coda Rows:** Rich-text table cells no longer show stray code fences or escaped punctuation after import.
* **Knowledge Source Renames During Sync:** Renaming a source succeeds while its content is syncing, without changing its import settings.
### 🚀 New Features
* **Live Call Transcripts:** Follow transcript text while a meeting is still in progress.
* **Coda Knowledge Sources:** Connect Coda to Knowledge and browse imported documents in their hierarchy.
* **Report Subscription Controls:** Manage report subscriptions directly from the report experience.
* **Persona Studies:** Group persona test runs into studies and follow clearer audience-research next steps.
### ✨ Improvements & Enhancements
* **Better Knowledge Organization:** Order Knowledge pages persistently, navigate simpler metadata, and search for sources directly from the Agent Chat mention menu.
* **Visible Chat Evidence:** Inspect the sources behind Agent Chat responses and follow numbered signal citations.
* **Safer Slack Reconnection:** Reconnect a Slack workspace without losing track of the existing integration.
* **Clearer Integration Imports:** Preview Jiminny imports and recover queued Knowledge imports more reliably.
* **More Useful Report Editing:** Work with larger report components safely and access links from embedded report views.
### 🐛 Bug Fixes
* **Reliable Voice Turns:** Refreshing AI Chat no longer duplicates voice prompts or turns.
* **Correct Report History:** Report run history refreshes without retaining stale results.
* **Clearer Calendar Recovery:** Google Calendar permission failures point to the integration settings needed to resolve them.
### 🚀 New Features
* **Simpler Chat Library Picker:** Add recordings, documents, signals, and other context to Agent Chat from one focused picker, with selected sources kept visible beside the composer.
* **Deeper Signal Research:** Agent Chat can search beyond the first page of matching signals while keeping later-page searches bounded and relevant.
### ✨ Improvements & Enhancements
* **One Consistent Recordings Experience:** The redesigned recordings list and established call detail view are now the single, predictable way to browse and review calls.
* **Clearer Voice Conversations:** Voice mode uses a more responsive audio visualization and clearer start and stop feedback.
* **More Flexible HubSpot Access:** Connect HubSpot custom objects when needed through optional read permissions.
### 🐛 Bug Fixes
* **Recovered Chat Answers:** Completed Agent Chat responses return after a temporary connection interruption instead of appearing lost.
* **Fresh Signal Results:** Deleted signals disappear from Agent Chat details without leaving stale panels behind.
* **Accurate Signal Context:** Signal panels show the correct relationships and participant labels.
### 🚀 New Features
* **Privacy-Safe Link Previews:** Shared recording links show a useful preview without exposing private or protected recording details.
* **CRM Deal Sync Choice:** Choose explicitly whether connected CRM deals sync into BuildBetter.
### ✨ Improvements & Enhancements
* **Document-First Knowledge:** Find and work with Knowledge documents more directly, including their images and source context.
* **Clearer Persona Research:** Navigate Personas and research drafts with a simpler creation and testing flow.
* **More Useful Live Calls:** See a call's title and participants in its live call card.
* **Resilient Chat Answers:** A completed answer stays available if the reader's connection drops during the conversation.
* **Preserved Report Subscriptions:** Existing report subscriptions carry forward when interactive reports move to the new experience.
### 🐛 Bug Fixes
* **Reliable Search with Chats:** Search results containing chats load and open without failing.
* **Stable Collection Picker:** The add-to-Collection menu stays open long enough to make a selection.
* **Correct Report Schedules:** Scheduled report lookbacks account for daylight saving time changes.
### 🚀 New Features
* **Fathom Recording Imports:** Bring supported Fathom recording media into BuildBetter for review alongside your other calls.
* **Recorded Calls on the Calendar:** See recordings associated with upcoming-call calendar events from the call view.
### ✨ Improvements & Enhancements
* **Direct Call Prep:** The next-call action opens Call Prep instead of starting an unrelated chat.
* **Loop Controls Where You Work:** Run the Loop you are viewing and adjust its settings without losing the conversation.
* **Clearer CRM Favorites:** Favorite companies and people show their logo or avatar in the navigation rail.
* **Understandable Recording Triggers:** Recording controls describe the action they will take.
### 🐛 Bug Fixes
* **Interactive Report Recovery:** Reports recover from loading and refresh failures instead of remaining stuck.
* **Safer Sharing Dialogs:** Blocked legacy sharing paths stay blocked, and failed sharing dialogs offer a recovery path.
* **Reliable Workspace Selection:** Workspaces with incomplete member names no longer crash the picker.
* **Reachable Recording Pages:** Page banners no longer cover recording-list pagination.
### 🚀 New Features
* **Engagement-Aware Loops:** Loops can recognize when findings are going unread, explain when their cadence slows, and link readers directly back to the relevant brief.
* **Theme-Aware Changelog Widget:** Embedded changelogs can follow the host application's light, dark, or system appearance.
### ✨ Improvements & Enhancements
* **Richer Public Recording Shares:** Public recording pages present summaries and transcripts in a clearer, more consistent reading experience.
* **Clearer Agent Chat Results:** Agent conversations render more reliably and explain outcomes with the context needed to understand what happened.
* **Accurate Pooled Billing:** Shared billing cards show the plan-scoped balance and usage details that contribute to pooled credits.
* **Compact Loop Settings:** Collapse the Loop settings panel when you want more room for the conversation and its results.
### 🐛 Bug Fixes
* **Safer Charged Actions:** BuildBetter verifies the available balance before a paid AI outcome runs.
* **Reliable Recording Sharing:** New recording shares finish initialization before the recording is marked ready, preventing incomplete sharing states.
* **Protected Issue Tracker Sync:** Signal updates cannot be pushed to connected issue trackers without the required access.
### 🚀 New Features
* **Starter Loops:** Begin a new Loop from a ready-made starting point, then edit its fields directly inside the Loop conversation.
* **Better Loop Follow-Through:** See when a Loop last ran, repeat its self-audit, and jump directly to its newest finding.
* **Personal Memory Controls:** Review and remove what BuildBetter remembers about a person from the person experience.
### ✨ Improvements & Enhancements
* **Private-by-Default Sharing:** New shares default to private access, while public-link actions are clearly separated and respect workspace restrictions.
* **Clearer Automated Decisions:** BuildBetter explains the reasoning and outcome of automated steps, identifies failures, and shows when a Loop needs a person to step in.
* **Flexible Collection Organization:** Members can undo their own Collection contributions, and workspace managers can organize shared Collections without affecting the underlying recordings.
* **More Consistent Billing:** Credit balances, period usage, and pooled coverage stay aligned, with clearer visual treatment for paid usage.
### 🐛 Bug Fixes
* **Reliable Public-Link Copying:** Copying an existing public link continues to work after the sharing changes.
* **Fresh Recording Details:** Recording detail pages refresh automatically when updated information becomes available.
* **Actionable Jiminny Sync Errors:** Failed Jiminny imports explain the problem and provide a retry action.
### 🚀 New Features
* **Recording Bot Activity:** Open a meeting's recording status to see what happened when a bot tried to join, including lobby waits, duplicate coverage, and credit-related blocks, with guidance when action is needed.
### ✨ Improvements & Enhancements
* **Clearer Sharing Restrictions:** Sharing controls explain when your workspace disables public links and copy the internal link instead. Existing named-recipient access remains separate from public sharing.
* **More Reliable Slack Setup:** Bulk channel setup preserves accepted work through temporary connection errors and shows confirmed progress. Summary delivery stays off by default, with a connection-wide option to turn it off without stopping imports.
### 🐛 Bug Fixes
* **Reliable Zoom Cloud Imports:** Cloud recordings with affected meeting identifiers import correctly, and previously unavailable recordings can be retried without duplicate imports.
* **Zoom Settings Saves:** Connection settings save correctly after synchronization has started.
### 🚀 New Features
* **Zoom Cloud Recording Imports:** Connect a Zoom account to import eligible cloud recordings, including past meetings and newly completed recordings, without adding a meeting bot.
* **Sales Call Coaching:** Open the Coaching tab on a call in the Sales workspace to review talk time, questions, and coaching moments alongside the recording.
### ✨ Improvements & Enhancements
* **Preview Slack Posts Before Approval:** Review the proposed message and destination channel before approving a Loop's Slack post. Posting checks that the channel is still configured for your workspace.
* **Easier Changelog Reading:** Updates appear newest-first, the panel opens beside the control you clicked, and Mark all read clears your unread backlog.
### 🐛 Bug Fixes
* **Faster Company Details:** Company pages can load without waiting for their signals, while the signals retain their existing access controls and newest-first order.
* **Accurate Unread Updates:** Opening the changelog for the first time no longer counts its entire release history as new updates.
**37 Core Commits Reviewed**
### 🚀 New Features
* **Customer-Authored Skillsets through MCP:** Create and maintain organization Skillsets directly from supported MCP clients, making reusable agent guidance available without switching back to the web app.
* **Slack Updates from Loops:** Let an approved Loop publish its update to a selected Slack channel as part of the same automated workflow.
* **Sales Context on Every Call:** Open the sales read as a dedicated tab on the standard call page instead of leaving the recording to find the same context elsewhere.
### ✨ Improvements & Enhancements
* **Surface-Aware Navigation:** Switching between BuildBetter workspaces now opens the selected surface at its own starting point, with Sales destinations kept together in a dedicated navigation rail.
* **Faster Company Search:** Large CRM company lists and company filters return results more quickly.
* **Clearer Slack Channel Setup:** Public-channel subscriptions explain their setup state more clearly and make individual or bulk channel selection easier to manage.
### 🐛 Bug Fixes
* **Complete Company Merges:** Merging duplicate companies preserves their connected deals and other customer relationships on the surviving company.
* **Accurate Free-Plan Usage:** Free-plan billing displays use billable meter activity so recorded usage and remaining allowance stay aligned.
This release adds customer-authored Skillsets, Slack publishing from Loops, and sales context on call pages while improving navigation, CRM speed, Slack setup, company merges, and free-plan usage accuracy.
**24 Core Commits Reviewed**
### 🚀 New Features
* **Broader Knowledge Integrations:** Import Zendesk Help Center articles, select multiple Confluence spaces, choose Jira projects, and bring SharePoint Site Pages into the Knowledge workspace.
* **Slack Public Channel Automation:** Subscribe to supported public Slack channels individually or in bulk and keep their content flowing into BuildBetter automatically.
* **Voice Briefs:** Listen to generated briefs and respond to proposed decisions by voice without leaving the BuildBetter workspace.
### ✨ Improvements & Enhancements
* **Safer Company Merges:** Company merges preserve connected deals, opportunities, success stories, and other customer relationships instead of leaving them attached to the retired record.
* **Clearer Credit Availability:** Billing surfaces distinguish usable balances, blocked work, and free-account limits more consistently so customers can tell what is available and what action to take.
### 🐛 Bug Fixes
* **Readable Transcript Search:** Matching transcript rows no longer overlap while searching inside a recording.
This release expands enterprise Knowledge sources, adds Slack channel automation and voice briefs, and improves company merges, credit clarity, and transcript search.
**58 Core Commits Reviewed**
### 🚀 New Features
* **In-Place Changelog Reading:** Open a public release directly from the changelog widget with accurate release ordering and publication dates.
### ✨ Improvements & Enhancements
* **Builder-Backed Dashboards and Person Context:** Main chat dashboards use the same durable Builder foundation, while chats opened from a person profile retain the correct person context.
* **Safer Knowledge Upgrades:** Existing pages, sharing rules, and access grants remain intact as workspaces move to the governed Knowledge experience.
* **More Reliable MCP Connections:** OAuth registration lifecycle behavior is preserved across reconnects, and tools correctly accept supported alternative input shapes.
* **Clearer Billing States:** Billing periods, allowance coverage, forecasts, and no-credit states render consistently at UTC boundaries without borrowing misleading plan ceilings.
* **Faster Smart Tag Backfills:** Large Smart Tag updates no longer serialize every object behind one operation, allowing independent work to progress without unnecessary blocking.
This release improves dashboards, Knowledge continuity, MCP connections, billing clarity, Smart Tag processing, and the public changelog experience.
**676 Core Commits Reviewed**
### 🚀 New Features
* **Unified Studio Workspace:** Move from captured evidence through maps, research sessions, automated flows, personas, variants, and iterative refinement in one connected Studio experience.
* **Governed Knowledge Workspace:** Create and work with organization knowledge in a dedicated Library area with clearer navigation, durable pages, and controlled sharing.
* **One-Click Collection Workflows:** Start an automation directly from a Collection and route new content to a connected destination without rebuilding the source setup.
* **Connected Sales Execution:** Prospect, build sequences, search LinkedIn, manage pipeline activity, and coordinate outreach from one connected sales workflow.
* **SharePoint and Gainsight Integrations:** Bring supported SharePoint and Gainsight content into BuildBetter alongside existing connected sources.
### ✨ Improvements & Enhancements
* **Unified Search:** Find relevant workspace content through one consistent search experience instead of switching between separate discovery flows.
* **More Complete Call Prep:** Generate Call Prep for new meetings with known attendees, keep it available after the meeting, and receive scheduled briefs by email.
* **Persistent AI Workspaces:** Builder and Workflow Builder conversations survive navigation and reconnects, while Agent Chat recovers incomplete tool activity more reliably.
* **Stronger Collection Collaboration:** Workspace members can contribute visible content safely, while nested Collections retain valid ownership and hierarchy.
* **Flexible Public Portals:** Verify custom domains, embed portal boards on another site, and let visitors subscribe to changelog updates with clearer setup and delivery states.
### 🐛 Bug Fixes
* **Complete Document Generation:** Documents created from a multi-signal selection now include every selected signal instead of only part of the set.
* **Reliable Recording Playback:** Secure recording media refreshes before its link expires so longer playback sessions do not stop unexpectedly.
* **Stable Transcript and Summary Actions:** Transcript selections remain clickable, and summary actions no longer overlap stale status banners.
* **Accurate Connected Records:** Attio deals retain their company associations, Jiminny imports accept incomplete activity details, and invitations resolve the intended member exactly.
This release introduces a unified Studio, governed Knowledge, Collection workflows, connected sales execution, and new enterprise integrations while improving search, Call Prep, AI continuity, portals, documents, playback, and connected records.
**76 Core Commits Reviewed**
### 🚀 New Features
* **Reconciled Credits Overview:** See one spendable total across plan, bonus, and purchased credits, with a breakdown that stays consistent across individual and linked workspaces.
* **Call Prep for Internal Meetings:** Generate the same durable Call Prep available for customer meetings when every attendee belongs to your workspace.
* **API Trigger Guidance in Workflow Builder:** Open concise invocation instructions for an API-triggered workflow, including its public identifier, request shape, queued response, and complete documentation.
* **In-App What's New Feed:** Open BuildBetter's public changelog widget directly from the account menu or sidebar to see the same release feed available on the web.
### ✨ Improvements & Enhancements
* **Clearer Billing and Payment Recovery:** Free, paid, and payment-recovery states retain accurate balances, plan details, usage breakdowns, and the right path to manage billing without conflicting prompts.
* **More Resilient Recording Integrations:** Apollo asks for reconnection when credentials expire, Teams retries temporary subscription timeouts, and Jiminny accepts incomplete participant details without stopping an import.
* **Honest Transcript Processing:** Empty provider transcripts are treated as unsuccessful instead of appearing complete, consuming credits, or generating an empty summary.
### 🐛 Bug Fixes
* **Saved Custom Link Expiration:** Custom public-link expiration now saves the date and time currently shown in the sharing dialog.
* **Accurate Credit Displays:** Usage breakdowns no longer show invalid percentages, and extra-credit notices can be dismissed when they are no longer useful.
This release adds a reconciled credits overview, internal-meeting Call Prep, workflow API guidance, and an in-app changelog while improving billing recovery, integrations, transcripts, sharing, and credit displays.
**36 Core Commits Reviewed**
### 🚀 New Features
* **Unified Sales Workspace:** Manage daily tasks, meetings, calendar bookings, prospecting, correspondence, pipeline activity, and CRM work from one connected workspace.
* **Jiminny Recording Integration:** Connect Jiminny with region-aware credentials to import calls, participants, transcripts, and media through durable incremental syncs.
### ✨ Improvements & Enhancements
* **More Reliable MCP Tools:** Current Codex clients complete OAuth callbacks correctly, extraction lists honor requested pages, durable jobs remain available, and changelog tools can target the right product board.
* **Smarter Smart Tag Classification:** Managed Smart Tags can leave unrelated signals untagged, and auto-improvement once again produces compatible guidance without changing evaluation behavior.
* **Resilient Interactive Reports:** Report creation reserves time for a complete result, retries transient data failures, and recovers the last successful snapshot when a run is interrupted.
* **More Accurate Recording Participants:** Exact calendar attendee links are prioritized when assigning known BuildBetter users, while existing fallbacks remain available for other participants.
### 🐛 Bug Fixes
* **Reliable Recording Playback:** Recordings play correctly even when their secure media URL does not include a filename extension.
* **Working Jiminny Imports:** Activity pagination now starts on the provider's first valid page so connected accounts can sync recordings successfully.
* **Clear Zoom Setup Errors:** Incomplete Zoom App connections return a useful setup response instead of appearing as an unexpected server failure.
This release introduces the unified Sales workspace and Jiminny integration while improving MCP tools, Smart Tags, interactive reports, participant matching, recording playback, and Zoom setup handling.
**83 Core Commits Reviewed**
### 🚀 New Features
* **Secure External Sharing:** Share recordings, documents, folders, Knowledge pages, and signals with named external recipients or protected public links, including expiration, password, access-request, inheritance, and activity controls.
* **Embeddable What's New Widget:** Add a lightweight changelog badge and release feed to another website with a public board key, isolated styling, unread tracking, and a link to the complete changelog.
* **Workflow Search and Destination Filters:** Find workflows by title, step, saved configuration, or connected destination, with integrations displayed directly on each workflow row.
* **Call Prep from the Calendar:** Generate Call Prep from upcoming meetings, including declined meetings on your connected calendar, and save completed briefs as readable company notes with evidence links.
### ✨ Improvements & Enhancements
* **Reconnect-Safe Documents:** Documents and templates recover persisted progress after reconnects, refresh correctly while processing, and retain canonical links, permissions, hierarchy, and sharing behavior.
* **More Reliable Meeting Capture:** Scheduled meeting bots can repair missing live-transcript configuration when joining, while ended calendar events and temporary Zoom or Fireflies failures recover without disrupting capture workflows.
* **Safer Sharing Rollouts:** Named recipient invitations work during sharing migrations, legacy public links continue opening the correct recording or document, and long external shared views scroll correctly on smaller screens.
* **Clearer Smart Tag Planning:** Large backfill previews show discovered candidates while planning is still running and report terminal progress accurately when complete.
### 🐛 Bug Fixes
* **Reliable Signal Details:** Call-backed signal details serialize correctly after their recording source is loaded.
* **Responsive Changelog Widget:** Embedded changelog feeds stop waiting after a bounded timeout instead of leaving unread status unresolved indefinitely.
* **Stable Public Links:** Copied legacy recording links use the current application address and remain directly usable during the sharing transition.
This release adds secure external sharing, an embeddable changelog, workflow discovery, and calendar-based Call Prep while improving documents, meeting capture, Smart Tag planning, signals, and public-link reliability.
**30 Core Commits Reviewed**
### 🚀 New Features
* **API-Key Authentication for MCP:** Unattended MCP clients can authenticate with the standard BuildBetter API-key header instead of placing credentials in a URL, while existing authentication methods remain compatible.
### ✨ Improvements & Enhancements
* **Linked Recording Participants:** Participant and company names in recording details now open their corresponding People and Company profiles.
* **Broader Reddit Listening:** Configured subreddits are treated as priorities while discovery can still find relevant public discussions elsewhere on Reddit.
* **Clearer Purchase History:** Credit purchases can show the customer-facing plan that determined their rate, making similar-looking charges easier to distinguish.
* **More Trustworthy AI Evidence:** Automated provider and system messages remain in source history but are excluded from AI analysis and generated evidence.
* **Accurate Plan Usage:** Billing surfaces use period-scoped plan consumption and preserve unlimited-plan status consistently.
### 🐛 Bug Fixes
* **Safer Gmail Company Matching:** Gmail imports no longer associate unrelated external participants with the company that caused a thread to be discovered.
* **Clear Document Template Access:** Members without template-management permission now see disabled template actions with an explanation instead of being sent to an unavailable page.
This release improves MCP authentication, recording navigation, social listening, billing clarity, AI evidence quality, Gmail matching, and document-template permissions.
**84 Core Commits Reviewed**
### 🚀 New Features
* **Realtime Voice for AI Chat:** Start a hands-free voice conversation with BuildBetter from AI Chat or the new-chat page, with clear microphone, mute, interruption, and progress controls.
* **Recording-Optional API Workflows:** API-triggered workflows can now run from validated inputs without requiring a recording, opening the same automation tools to more integration use cases.
### ✨ Improvements & Enhancements
* **More Resilient Shared Meeting Capture:** Coordinated meeting recordings preserve continuity through participant handoffs, reconnects, and overlapping capture segments, with transcript and video parts stitched into one experience.
* **Simpler MCP Connections:** Personal MCP servers now live under **Settings → AI Assistant**, with a catalog of presets, custom endpoint support, and clearer personal-versus-organization scope.
* **Upfront Social Listening Costs:** X and Reddit source settings show a live estimated credit range before you save collection limits.
* **Expected Meeting Participants:** Recording details can show calendar invitees and the meeting owner before speaker processing finishes, including a clear expected-participant state.
* **Clearer Recording Sharing:** Recording pages keep a consistent **Share** action while showing the current access level separately.
* **Consistent Participant Colors:** Participant colors now remain stable across recording details, transcripts, and related views.
### 🐛 Bug Fixes
* **Reliable Timestamp Citations:** Malformed transcript timestamps are repaired so citation links open the right point in a recording.
* **Working Speaker Assignment:** The **Unknown Speakers** control opens the assignment picker in place again.
* **Restored Signal Filters:** Built-in signal types are available again in signal filtering controls.
This release adds voice conversations and more flexible API workflows while improving meeting-capture continuity, MCP setup, social-listening estimates, participant context, sharing, citations, and signal filters.
**52 Core Commits Reviewed**
### 🚀 New Features
* **Custom Signal Analysis:** Dashboard and Builder reports can analyze workspace-defined custom signals with trends, severity, sentiment, source-linked evidence, metadata coverage, semantic themes, and a reusable analysis template.
### ✨ Improvements & Enhancements
* **More Reliable Custom Signals:** Custom-signal analysis now has a dedicated final synthesis step, follows each workspace's source and audience criteria, and sends published findings through the same Smart Tag processing used by built-in signals.
* **Better Recording Summaries Everywhere:** Summary emails and copied summaries preserve richer formatting, including tables, images, lists, links, and callouts, while malformed enhanced summaries get a safe recovery attempt before falling back.
* **Safer Legacy API Links:** Existing links that use older numeric resource IDs now redirect to their UUID equivalents on supported read endpoints while preserving query parameters and access controls.
* **Single-Charge Coverage for Bulk Usage:** Organizations with auto-recharge and a monthly cap can opt into one right-sized charge for a burst of billable work instead of receiving several rapid smaller charges.
* **Unified Core Interface:** Settings, recording details, and AI chat now share a consistent visual system, searchable settings navigation, clearer recording context, richer citations, and playlist-style highlight reels.
* **Consistent Detail Pages:** Feedback sources, conversations, and surveys now use the same action bars, metadata layouts, and responsive signal panels, with signal evidence easier to trace back to its source.
* **Clearer Survey Delivery:** Survey details surface delivery progress, failed recipients, launch schedules, and primary actions more efficiently while leaving more room for responses.
### 🐛 Bug Fixes
* **Stable Workspace Selection:** Navigating around the app no longer clears the selected workspace or unexpectedly returns users to the workspace picker.
* **Readable Workflow Templates:** Template cards, search controls, and browsing actions now wrap and space correctly in narrow workflow sidebars and dialogs.
* **Accurate Recording Previews:** Poster thumbnails load correctly throughout recording lists and previews.
* **Reliable Transcript Controls:** Speaker-assignment menus stay above virtualized transcript rows, and row actions align consistently with the transcript.
* **Complete AI Tool Activity:** AI chat shows labeled activity for supported tools instead of silently hiding unrecognized tool calls.
* **Safer Settings and Sharing:** Settings search no longer surfaces inaccessible admin controls, and changing a shared-link audience no longer rewrites the recording's permission.
* **Reliable Calendar Connections:** Calendar authorization preserves the return destination and opens consistently without being blocked by the browser.
This release adds custom-signal analysis, modernizes the Core interface, standardizes detail pages, and improves recording summaries, API compatibility, billing controls, workspace navigation, sharing, and calendar connections.
**69 Core Commits Reviewed**
### 🚀 New Features
* **AI Signal Type Controls:** Organization admins can enable or disable built-in signal types and add custom instructions for each enabled type from **Settings → Features → AI Labeling**.
* **Gmail Ingestion and CRM Email History:** Import Gmail conversations with automatic noise filtering, duplicate prevention, and review of ambiguous threads. Gmail activity is also available from **Emails** tabs on People and Company pages.
* **Durable Background Workflows:** Long-running actions such as persona generation, Smart Tag planning, Knowledge Gap analysis, survey invitations, and workflow runs continue in the background with progress, results, safe retries, and supported cancellation.
* **Unified Integration Catalog:** Settings and onboarding now share a searchable integration catalog with categories, connection status, setup guidance, and clear paths for sales-assisted integrations.
* **Recording Filter Builder:** Build reusable recording filters through a guided interface with nested all/any rules for interaction type, participant emails, and title criteria.
* **HubSpot Property Catalogs:** HubSpot settings provide searchable contact and company property catalogs for the selected portal, including display labels, internal names, manual entry, and refresh controls.
* **API-Triggered Recording Workflows:** API users can create recordings with folder placement, launch durable workflows after completion, monitor progress, and receive completion webhooks.
* **Opportunity Synthesis Controls:** Organizations can keep access to the Opportunities workspace while explicitly controlling whether credit-consuming synthesis is enabled.
### ✨ Improvements & Enhancements
* **More Reliable Action Items:** Extraction uses meeting and company context to identify commitments, decisions, follow-ups, and next steps while combining repeated statements without losing distinct work.
* **Higher-Quality Custom Signals:** Long sources are processed in overlapping sections, citations are validated, weak or duplicate findings are removed, and results publish only after the complete source succeeds.
* **Smarter Gmail Processing:** Imports recover after interruptions, avoid duplicate processing after reconnecting, exclude Google resource calendars, and preserve stable conversation identities.
* **Better Pooled Billing Insights:** Plan recommendations, credit forecasts, limits, and alerts account for usage across eligible organizations in a shared customer pool.
* **Improved Knowledge Gap Analysis:** Recommendations provide clearer documentation needs, urgency, and suggested actions while incremental analysis avoids repeating unchanged work.
* **Clearer Integration Availability:** Existing customers retain reconnect, configuration, and sync access while self-service availability and onboarding guidance are clearer across providers.
* **More Complete Competitor Reports:** Reports review more available signal history, use stricter evidence matching, reduce false matches between similarly named products, and warn when data limits reduce coverage.
* **Safer Slack Access Controls:** Private-channel settings and import information are visible only to members of the correct Slack workspace and channel.
* **Faster SAML Sign-In Routing:** Email-domain matching is faster and case-insensitive, including for organizations with large domain rule sets.
### 🐛 Bug Fixes
* **Accurate Saved Card Status:** Detached or mismatched payment methods no longer appear as valid saved cards in auto-recharge, credit notices, or payment-readiness checks.
* **No Duplicate Credit Alerts:** Shared-account alerts no longer send duplicate notifications during organization changes, concurrent checks, or pooled-billing transitions.
* **Reliable Slack Imports:** Invalid participant data no longer stalls new Slack message imports.
* **Respected Signal-Type Settings:** Manual Slack notifications and enrichment actions cannot apply signal types that the organization disabled.
* **Correct Gmail Reply Matching:** Replies remain attached to the correct conversations after mailbox-based identifiers are normalized.
* **Safe Concurrent Extractions:** Duplicate extraction jobs are prevented, and older custom-signal runs cannot overwrite or remove newer results.
* **Complete Long-Content Signals:** Custom findings are no longer missed in long calls, conversations, surveys, or Knowledge content because of content-length limits.
* **Reliable Restricted-Browser Loading:** The web app no longer crashes when browser storage is blocked, including in Safari privacy-restricted environments.
* **Protected Opportunity Credits:** Scheduled, automatic, replayed, and manual synthesis cannot consume credits unless the organization explicitly enabled synthesis.
* **Atomic Recording Folder Placement:** Recording creation fails cleanly when a requested folder is invalid or inaccessible, avoiding partially created data.
* **Accurate Fireflies Classification:** Internal and external classification consistently considers organizer and attendee domains while leaving insufficient evidence unclassified.
This release adds greater control over AI labeling, integrations, recording workflows, and billing while improving Gmail, Slack, signals, Knowledge Gaps, authentication, and data reliability.
**86 Core Commits Reviewed**
### 🚀 New Features
* **More Precise CRM People Search:** Limit People searches to all fields, name, email, or company to find the right record faster.
* **Richer Recording Attendees:** Recording details now combine matched People with calendar invitees and screen-name attendees, including useful name and email fallbacks.
* **Calendar Invitees for Integrations:** Authorized integrations can read a recording's linked calendar event and latest invitees through the API.
* **Knowledge Documents:** Generated documents are available from Knowledge, where they can be viewed, edited, exported, shared, and regenerated.
* **Survey-Aware Search:** Search can find open-ended survey responses and understand survey-specific questions, including multilingual queries.
* **Metadata Value Suggestions:** CRM filters offer searchable metadata-value suggestions with usage counts.
* **Improved Gmail Connections:** Gmail uses verified environment-specific authorization and retains the configuration associated with each connection.
* **Faster Shared Recordings:** Public recording links load independently from the signed-in app, reducing unnecessary downloads and improving load times.
### ✨ Improvements & Enhancements
* **Modernized Interface:** Dialogs, forms, detail views, navigation, documents, People, and Companies have more consistent, accessible, and mobile-friendly interactions.
* **Better Call and Conversation Filters:** Filters support easier multi-select choices, natural-language date ranges, richer options, clearer search states, and larger result sets.
* **Improved Document Editing:** Editing has clearer formatting controls, accessible dialogs, improved tables and code styling, and reusable tools across the app.
* **More Accessible CRM Management:** People and Companies workflows add keyboard navigation, visible focus states, searchable selectors, inline validation, and safer creation and deletion flows.
* **Faster Knowledge Gaps:** Recommendation lists load evidence details only when opened, with retry and close actions when detail loading fails.
* **Clearer Purchase History:** Successful billing transactions show the effective credit conversion rate beneath the credits granted.
* **Clearer Survey Statuses:** Pending recipients on draft or inactive surveys appear as **staged**, and statuses refresh when a survey is activated or deactivated.
* **Smaller Initial Download:** Word and RTF processing tools load only when needed, reducing the initial app download for users who do not upload those files.
* **Clearer Transcript Speakers:** When attendee details are unavailable, transcripts derive labels from the conversation and identify unmapped speakers as **Unknown Speaker**.
### 🐛 Bug Fixes
* **Reliable Gmail Authorization:** Fixed connection, settings-save, and manual-sync failures while preserving existing Gmail connections.
* **MCP Connector Registration:** Restored connector registration for supported authentication methods, including Claude and public sign-in flows.
* **Accurate Shared Billing:** Corrected pooled allowance routing so simultaneous usage applies credits to the right organization and event type.
* **Current Survey Delivery States:** Recipient delivery statuses no longer remain stale after a survey changes state.
* **Reliable Document Sharing:** The Shared permission flow opens the sharing dialog consistently.
* **Accurate Document Formatting Controls:** Bold, italic, strikethrough, and heading controls correctly show and announce their active state.
* **Company Creation from People:** Creating a company from the Person company picker works again after entering a new name.
* **Recording Collection Actions:** Collection actions open reliably from recording and folder views.
* **Rich Summary Rendering:** Code snippets containing HTML-like content, cards, or citations no longer break rich summaries.
* **Realtime Conversation Updates:** Fixed polling errors that could prevent new conversation updates from loading.
* **Reliable Live Transcripts:** Live-transcript bots initialize correctly for supported recording configurations.
This release improves CRM search, recording context, Knowledge documents, surveys, Gmail, public recording performance, billing clarity, accessibility, and integration reliability.
**135 Core Commits Reviewed**
### 🚀 New Features
* **Canny Feedback Integration:** Connect Canny to bring customer feedback into BuildBetter alongside your other sources.
* **Coordinated Meeting Capture:** Shared meeting capture and live transcripts now stay coordinated across participants and recording surfaces.
### ✨ Improvements & Enhancements
* **Clearer Collection Evidence:** Collection signals now distinguish items added directly from evidence created by a recording.
* **Better Company Matching:** People can be matched to companies even when spacing differs or an explicit company link is missing.
* **Accessible Workspace Recovery:** Disabled workspaces now provide a direct log-out action instead of leaving users stuck.
### 🐛 Bug Fixes
* **Reliable Media Playback:** Native recording playback now handles interrupted play requests without surfacing unnecessary errors.
* **Stable Live Capture:** Meeting capture and transcript coordination are more resilient when multiple recording participants or surfaces are active.
**92 Core Commits Reviewed**
### 🚀 New Features
* **Shared Multi-Organization Billing:** Customers with multiple organizations can view and manage usage through a shared billing pool and consolidated billing experience.
* **Recording Creation APIs:** New recording-first creation and metadata APIs make it easier for supported integrations to create recordings with the right context from the start.
### ✨ Improvements & Enhancements
* **Visible Custom Signal Names:** Configured signal titles now appear consistently instead of falling back to internal identifiers.
* **Remembered Recording Layout:** Your opt-in recordings layout remains selected when you open and return from an individual recording.
* **Collection Resource IDs:** Collections now expose stable public identifiers for integrations and API workflows.
### 🐛 Bug Fixes
* **Restored Recording Selection:** Row selection works again in the redesigned recordings list.
* **Reliable Integration Controls:** Disconnect actions are clickable again, and Attio, Front, and recording connections recover more safely from temporary failures.
* **Accurate Billing Controls:** Multi-organization usage, caps, top-ups, and plan-change actions now reflect the correct customer-wide state.
* **Complete Opportunity Clustering:** Large clustering jobs can finish without being cut off by an overly short read boundary.
**213 Core Commits Reviewed**
### ✨ Improvements & Enhancements
* **Scoped People and Company Chat:** AI chat now keeps the selected person or company as a first-class context, so retrieved signals and answers stay focused on the record you opened.
* **Consistent Streaming Chat:** Floating chat uses the same rich message renderer as the full AI chat, with visible streaming, formatted citations, and clearer in-progress states.
* **Clearer Recording Permissions:** Recording permission choices now include descriptions that make each access level easier to understand.
* **Broader Salesforce Feedback Sync:** Salesforce custom-object feedback can trigger the same signal extraction workflow as other supported sources.
### 🐛 Bug Fixes
* **Correct Chat Citations:** Fixed duplicate “Thinking…” indicators and citations that appeared as unrendered text.
* **Reliable New Conversations:** Streaming remains visible while a new chat is being created instead of appearing to stop mid-response.
* **Safer Billing Notifications:** Customers with automatic top-ups enabled no longer receive misleading low-credit warnings.
**98 Core Commits Included**
### 🚀 New Features
* **Redesigned Recordings List:** An opt-in recordings experience adds thumbnails, day-based grouping, participants, company details, processing states, starring, renaming, sharing, deletion, and Collection management.
* **Powerful Recording Search:** Search by title, transcript, summary, attendees, recording type, or company, with the most relevant matches ranked first.
* **Recording Navigation and Filters:** Browse all, personal, and shared recordings; jump to a date; paginate results; and return to your prior scroll position after opening a recording.
* **Live AI Chat Responses:** AI chat now streams responses in real time, including visible progress while BuildBetter is working.
* **Collection Shortcuts:** Add recordings to Collections directly from the list and open a Collection from its label.
### ✨ Improvements & Enhancements
* **Faster Profile Activity:** Person and Company activity loads in sections so available interviews, conversations, and signals appear sooner.
* **Richer Recording Rows:** Recording lists now show source icons, participant avatars, durations, capture times, privacy, Collections, and clearer processing states.
* **Better Recording Titles and Thumbnails:** Meaningful meeting titles and uploaded filenames are preserved more consistently, with useful participant-based fallbacks and clearer media previews.
* **More Accessible Recordings:** Improved keyboard navigation, screen-reader support, and standard browser behaviors make recording actions easier to use.
* **Smarter Local Dates:** Recording dates and times better respect your timezone, preventing late-day recordings from appearing on the wrong day.
### 🐛 Bug Fixes
* **Reliable Salesforce and HubSpot Syncs:** Salesforce requests stop cleanly when they time out, and HubSpot company syncs handle batches larger than 100 records.
* **Stable Recording Results:** Searches no longer duplicate, skip, or misgroup recordings that share timestamps or arrive out of order.
* **Accurate Recording Updates:** Renames, custom titles, lifecycle states, starring, deletion, and Collection changes now update more reliably.
* **Restored Realtime Refreshes:** Live updates across the app work without repeated loading errors.
* **Preserved Browser Shortcuts:** Standard browser keyboard shortcuts are no longer intercepted outside the desktop app.
**44 Core Commits Included**
### 🚀 New Features
* **Opportunities Workspace:** Discover, review, prioritize, and track evidence-backed product opportunities through list, graph, focus, and impact views, then hand selected work to teams or agents.
* **Native CRM:** Manage people, companies, notes, comments, tasks, meetings, deals, customizable pipelines, custom fields, relationships, and activity histories directly in BuildBetter.
* **Email from CRM Records:** Compose Gmail messages and reply within existing threads from person records, with reliable threading and fallback to the default email client.
* **Projects V2:** Projects now use a modern workspace for evidence, metrics, pull requests, calls, workflows, integrations, timelines, and close-the-loop tools. Existing links redirect to their updated locations.
* **Configurable Project Statuses:** Customize project statuses for the organization and keep them aligned consistently with project stages.
* **Property-Change Automations:** Trigger workflows when CRM record properties change, including conditions based on previous and new values.
### ✨ Improvements & Enhancements
* **Improved CRM Profiles:** People and Company records provide clearer navigation, highlights, unified activity, Tasks and Notes tabs, comments, and broader custom-property support.
* **Better CRM Relationships:** View and manage related people, companies, custom objects, and linked tasks from either side of a relationship.
* **Reliable Calendar Attendee Matching:** AI-assisted attendee matching uses valid identifiers more consistently, reducing incorrect matches while allowing valid assignments and summaries to continue.
* **Resilient Uploads:** Interrupted blob uploads can restore missing pieces safely, avoid duplicate processing, and recognize uploads that already completed.
* **More Reliable Plain Syncs:** Backfills prevent overlapping work for the same connection, support cancellation, and resume from their latest saved progress.
* **Safer Subscription Updates:** Salesbricks updates account for renewals and provider status changes so active subscriptions are not canceled by outdated events.
### 🐛 Bug Fixes
* **Accurate Organization Analytics:** Fixed inflated member counts and duplicate analytics events for organizations with multiple subscription records.
* **Current Billing Periods:** Organizations with only canceled subscriptions no longer display outdated billing-period or usage information.
* **Large Feedback Filters:** Feedback enrichment no longer fails when filtering against very large metadata sets.
* **CRM Data Preservation:** Failed custom-property saves, merges, and updates no longer remove relationship, integration, note, task, or property information.
* **Reliable Workflow Triggers:** Property-change workflows run for real edits while avoiding unchanged values and self-triggering loops.
* **Separate Record Chats:** Chat drafts and history no longer appear across unrelated People or Company records.
* **Reliable Promotional Credits:** Restored promotional credit grants for eligible Stripe subscription renewals.
* **Resumable Plain Backfills:** Interrupted syncs resume from the correct saved page without reusing another attempt's progress.
* **Reliable HubSpot Contact Creation:** Concurrent contact creation reuses the existing contact when another process creates it first.
This release introduces Opportunities and a native CRM, modernizes Projects, adds CRM-triggered workflows, and improves data preservation, billing, and integration reliability.
**49 Core Commits Included**
### 🚀 New Features
* **Support Chat and Inbox:** Add two-way support chat to an embeddable widget so visitors can start conversations and receive replies. Agents can manage conversations from a dedicated Inbox, including replying, resolving, reopening, and tracking unread threads.
* **Anonymous Visitor Conversations:** Visitors can begin a support conversation before providing an email. When they identify themselves later, prior conversation history links to the correct contact.
* **Support Widget Settings:** Configure support widgets with a name, greeting, color, email-collection behavior, and installation snippet, or reuse an existing feedback source.
* **Per-Agent Unread Status:** Inbox read state is personalized so each agent can see which conversations need their attention.
* **Integration Catalog:** Browse and manage integrations from a searchable, category-based catalog with clearer connection health, setup status, and next steps.
* **Expanded Workflow Templates:** Start workflows from new templates and blocks for CRM updates, surveys, knowledge search, pipeline updates, account context, documentation, reporting, and more.
* **Survey-Triggered Workflows:** Launch workflows when survey responses are completed, including templates for NPS escalation, adoption follow-up, QBR preparation, handovers, and expansion signals.
* **Synthetic Personas via MCP:** Manage personas, companies, panels, research runs, exports, and persona chats through MCP tools, with credit estimates and confirmation before AI-powered operations run.
### ✨ Improvements & Enhancements
* **Live Support Updates:** New visitor and agent messages appear automatically without manual refreshes.
* **Secure Support Sessions:** Conversations are protected by widget, organization, and visitor session, and chat sessions are created only for support-enabled widgets when needed.
* **Better Support Experience:** The Inbox and widget settings improve accessibility, dark-mode support, navigation, scrolling, timestamps, notifications, and embed-code controls.
* **Smarter Email Collection:** Recognized visitors are not repeatedly asked for email, while capture success and errors are shown clearly.
* **First-Party Conversation Processing:** Resolved support conversations participate in Search, analytics, status tracking, and extraction workflows, while externally imported conversations remain read-only.
* **Improved Smart Tag Suggestions:** Suggested keywords favor clearer phrases, avoid overly generic terms, provide better match estimates, and distinguish accepted from rejected suggestions.
* **Flexible Smart Tag Publishing:** Fully reviewed tags can be published below the recommended readiness threshold with guidance to review further evidence.
* **Improved Workflow Reliability:** Duplicate events, interrupted runs, delayed deliveries, and external actions are handled more safely to prevent repeated or incomplete actions.
* **Local-Time Scheduling:** Scheduled workflows run according to each user's timezone.
* **Better Integration Setup:** Authentication, permission, API-key, rate-limit, and reconnect errors provide more actionable guidance.
* **More Reliable HubSpot Syncs:** HubSpot handles short rate-limit bursts, daily limits, and attendee matching more smoothly.
* **Clearer Reports and Digests:** Scheduled reports and Slack digests remove internal and zero-value fields, clearly label AI summaries, and preserve attribution for verified feedback.
* **Live Subscription Status:** Plan status reflects current billing information more consistently across analytics, usage limits, and customer communications.
### 🐛 Bug Fixes
* **Support Action Errors:** Replying, resolving, and reopening show retryable errors when an action fails.
* **Support Chat Updates:** Fixed realtime delivery failures and reduced unnecessary conversation refreshes.
* **Conversation Reopening:** Agent and visitor replies reopen resolved conversations correctly without triggering closed-thread processing.
* **Message Attribution:** Visitor and agent messages remain aligned with the correct sender after reloads.
* **Smart Tag Matching:** Short terms and acronyms such as **AI**, **BI**, and **IT** match only as complete terms.
* **Smart Tag Evaluations:** Corrected readiness calculations for negative-only results, empty predictions, and changing review evidence.
* **Subscription Renewals:** Active renewed plans are no longer canceled by superseded agreements, delayed events, or duplicate provider updates.
* **Signal Filter Values:** Percent characters are preserved correctly in filter values.
* **Transcript Import Reliability:** Imports no longer wait indefinitely behind locked recording updates.
* **UserVoice Rate Limits:** Imports pause and retry when rate-limited instead of repeatedly failing.
* **Stable Feedback Pagination:** Backfills process imported records in a consistent order.
* **CSV Import Validation:** Malformed rows are rejected before feedback is written, preventing partial or incorrect imports.
This release adds native visitor support conversations and an agent Inbox, expands workflow and integration setup, and improves Smart Tags, subscriptions, imports, and scheduled automation.
**52 Core Commits Included**
### 🚀 New Features
* **Native AI Surveys:** Create, brand, schedule, deliver, and analyze surveys directly in BuildBetter through branded email, public links, or verified in-app widgets, with audience targeting, response analytics, AI follow-up questions, and signal extraction.
* **Survey Automation:** Manage surveys through REST, MCP, and Quick Agent tools, including creation, scheduling, recipients, resends, and response review.
* **Governed Smart Tags:** Draft, review, publish, search, and backfill AI-assisted tags with access controls and evidence-based results.
* **Public Sharing Controls:** Organization administrators can independently allow public links for calls and recordings or documents. Disabling a category immediately invalidates its existing public links.
* **Salesforce Custom-Object Filters:** Apply optional SOQL criteria to custom-object feedback imports so only relevant records are synchronized.
* **Knowledge Source Integrations:** Synchronize selected Confluence sites and spaces or Google Drive folders into Knowledge, with scheduled refreshes and links to the original content.
* **Plain Integration:** Import Plain support threads, messages, customers, companies, labels, and attachment metadata into Conversations for search, analysis, and signal workflows.
* **Call Clip Editing:** Select part of a recording and save it as a replacement clip. Updated clips reprocess transcripts, summaries, and signals and can be restored within seven days.
### ✨ Improvements & Enhancements
* **Safer Public Sharing:** When organization policy disables sharing, unavailable links and controls are hidden and share dialogs clearly explain the restriction.
* **Improved Survey Delivery:** Invitations, retries, scheduling recovery, unsubscribe handling, bounce suppression, recipient limits, widget identity checks, responsive pages, and branding are more reliable.
* **Resilient Smart Tag Workflows:** Evaluations and backfills recover from interruptions, support cancellation and retry, preserve progress, and recheck permissions before showing evidence.
* **More Accurate Custom Signals:** Custom findings now behave like standard signals across filtering, search, sentiment, severity, citations, permissions, and downstream analysis.
* **Clearer Library Navigation:** The Library is ordered as **Data → Skillsets → Favorites → Collections** so shared skill content is easier to find.
* **Improved Workflow Creation:** **Create Workflow** consistently opens the supported editor, while outdated creation links guide users to the active Workflows experience.
* **More Reliable AI Responses:** Anthropic requests handle a wider range of valid response and tool schemas while retaining structured-result validation.
* **Improved HubSpot Exports:** Recording-summary exports handle provider rate limits with more efficient contact matching and smarter retries.
* **Resumable Large CSV Imports:** Large feedback files process in manageable batches, resume safely without duplicates, preserve column mappings, and avoid duplicate companies.
* **Improved Clip Sharing and Playback:** Shared viewers receive the active recording securely, while replacement processing prevents outdated transcripts, summaries, signals, or media from appearing.
* **Improved Rich Summaries:** Rich summaries better handle line breaks and malformed citations while continuing to reject unsupported formatting and invalid references.
### 🐛 Bug Fixes
* **Legacy Workflow Links:** Removed creation paths that could produce workflows that no longer ran. Existing legacy workflows remain available to view or delete.
* **Shared Call Transcripts:** Restored shared-call pages and transcript access for authorized public viewers.
* **Call Clip Playback:** Fixed waveform, playback, media signing, and refresh issues affecting clipped recordings.
* **Accurate Clip and Summary Billing:** Corrected billing-event associations for clip reprocessing and replayed summary events without changing credit costs.
* **Deepgram Transcript Imports:** Fixed a transaction issue that could cause some transcript imports to stall.
* **Favorites Menus:** Fixed crashes when opening Time Range or additional-options menus on favorite cluster cards.
This release adds AI surveys, governed Smart Tags, external Knowledge and support sources, public-sharing policy controls, and call clipping while strengthening imports, workflows, and shared playback.
**175 Core Commits Reviewed**
### 🚀 New Features
* **Batch Recording Uploads:** Upload multiple audio and video files in a guided full-page workflow, assign speakers one recording at a time, and track every recording from upload through transcription and processing.
* **Knowledge Context for Uploads:** Add selected Knowledge Pages to a batch so their content can inform summaries, signals, details, and rich summaries across its recordings.
* **Transcript Editing:** Authorized users can edit transcript sentences directly with speaker and timestamp context. Updates keep Search and related extracted quotes synchronized.
* **Transcription Dictionary Suggestions:** After correcting a single-word transcription error, optionally add it to the organization's dictionary to improve future transcription accuracy.
* **Collection Access Management:** Collection owners can rename collections, choose Private, Shared, or Workspace visibility, share with specific members, and transfer ownership.
* **Collection-Aware Uploads:** Start an upload from a collection to add completed recordings automatically and return smoothly to the collection afterward.
* **Knowledge Sidebar Documents:** The Knowledge navigation now includes generated and uploaded documents within pages and document groups.
* **Signal Type Breakdown:** Explore signals by type in an interactive chart and select a segment or legend item to inspect the matching signals.
### ✨ Improvements & Enhancements
* **Flexible Batch Processing:** Finish a batch when ready or choose **Skip labeling — process now**, then add labels later from individual recording pages.
* **Persistent Processing Progress:** Upload, transcription, speaker labeling, summary, metadata, signal, and rich-summary statuses remain visible after refreshes or navigation.
* **Automatic Batch Recovery:** Inactive batches are released after 72 hours so recordings do not remain waiting indefinitely, while adding files extends the active period.
* **Smarter Upload Navigation:** The workflow includes step progress, keyboard-friendly speaker assignment, saved progress, clearer guidance, and an upload list that keeps active recordings easy to find.
* **Improved Knowledge Selection:** Browse and search accessible Knowledge Pages in a folder tree, select nested pages, and receive warnings when chosen context is too large.
* **Safer Knowledge Visibility:** Recording pages show only attached Knowledge Pages the current viewer can access.
* **Easier Drag and Drop:** The entire recordings panel accepts dropped files, making it easier to add uploads.
* **More Relevant Search:** Search offers **Relevant** and **Recent** views, visible timestamps, stable newest-first ordering, and stronger weighting for recent time-based results.
* **Clearer Recording Signals:** Signal views refresh as processing progresses and distinguish loading, generating, complete, empty, and error states.
* **Modernized Account Settings:** Profile, privacy, notification, integration, calendar recording, Slack, and Circle.so settings use more consistent forms, dialogs, loading states, and dark-mode styling.
* **Improved Contact Display:** Missing names fall back consistently to an email address or **Unknown** across lists, profiles, placeholders, and page titles.
* **Improved Call Summaries:** Summaries use richer Markdown formatting while preserving citations and internal links.
* **More Accessible Dialogs:** Workspace creation, email verification, and recording prompts have improved keyboard navigation, focus handling, loading states, and error feedback.
### 🐛 Bug Fixes
* **Reliable Batch Releases:** Fixed timing and failure cases that could leave recordings waiting indefinitely or prevent the rest of a batch from completing.
* **Reliable Speaker Assignment:** Selected speakers appear immediately, the assignment panel no longer loops, and the wizard waits for upload and transcription before advancing.
* **Knowledge Pages Appear Reliably:** Newly created and paginated Knowledge Pages display with their complete nested structure.
* **Accurate Processing Statuses:** Terminal transcription failures show as **Failed** instead of remaining stuck on **Transcribing**.
* **Consistent Transcript Updates:** Transcript edits cannot bypass the managed update flow, preventing stale Search results and extracted quotes.
* **Restored Notifications:** Confirmation messages for transcript copying, editing, and other actions are visible again.
* **More Reliable Summaries:** Recording and rich-recording summaries no longer fail because of incompatible AI request handling.
* **Flexible People Updates:** Merging people works when optional avatar, email, or persona fields are intentionally blank.
* **No Empty-State Flashes:** Calls and recordings no longer briefly show empty states while loading, filtering, refreshing, or paginating.
* **Reliable Action Menus:** Three-dot and table menus across calls, collections, documents, folders, and signals open consistently.
* **Improved Large-Workspace Performance:** Call and conversation lists are faster and less likely to freeze during realtime updates in organizations with many records.
* **Recording Metadata Recovery:** Temporary media connection failures can retry instead of permanently stopping metadata processing.
This release introduces a complete batch-upload and transcript-editing workflow, connects recordings with Knowledge context, expands collection and signal tools, and improves processing visibility throughout the web app.
**51 Core Commits Included**
### 🚀 New Features
* **Teams Recording Block Notifications:** BuildBetter now notifies you when a Microsoft Teams organization blocks recording bots and no alternative calendar can schedule the recording. Recording can resume automatically if the meeting moves to a new link.
* **Project Builder Content Versions:** Project Builder can return draft content, published content, or both. Editors load drafts while viewers load published content for a faster, more focused experience.
* **Smarter Search Ranking:** Search gives an appropriate boost to newer recordings, conversations, feedback, surveys, responses, and signals while preserving strong exact-title and keyword matches.
* **Summary Attendee Verification:** Advanced Summaries detect attendee changes that may affect speaker attribution and offer a **Regenerate summary** action when needed.
* **Modern Dialogs and Detail Panels:** Create, edit, confirmation, and record-detail experiences now use more consistent dialogs and side panels.
### ✨ Improvements & Enhancements
* **Better People Search:** Multi-word searches work more accurately across speaker assignment, attendees, People, and filters, including reversed first and last names.
* **Faster Builder Loading:** Editors request only draft content and viewers request only published content, reducing unnecessary data loading while preserving compatibility for integrations that request both.
* **More Reliable Workflows:** Long-running workflows have clearer time limits, recovery for stalled runs, and stronger protection against incomplete work continuing after a workflow ends.
* **More Accurate Signal Aggregates:** Tag reporting handles nested filters, typed IDs, empty results, date ranges, deterministic ordering, and large datasets more reliably.
* **Consistent Signals and Conversations:** Signal links open the current Signals experience, and Conversations use the modern list and detail layouts.
* **Updated Home and Personas:** Home and Personas now use more consistent controls, dialogs, menus, notifications, and light/dark theme styling.
* **Current Summary People Cards:** Advanced Summary People sections show current attendee names, titles, avatars, and audience classifications when available, including compatible older summaries.
### 🐛 Bug Fixes
* **Accurate Multi-Word Results:** Person searches now require every entered word to match a name or email, preventing unrelated partial matches from displacing the intended result.
* **Clean Search Labels:** Search suggestions no longer display `null` when a person's name or email is unavailable.
* **Reduced Recording Alert Noise:** Canceled events, disconnected calendars, missing meetings, and Teams bot restrictions no longer create unnecessary scheduling alerts.
* **No Repeated Blocked Recording Attempts:** Missing recording events are marked as deleted, and permanently blocked Teams meetings no longer receive repeated placeholder bot attempts.
* **Stable Calendar Scheduling:** Recording bots handle timestamp precision correctly, preventing unnecessary rescheduling of the same event.
* **Stable Upload Removal:** Canceling an upload no longer allows delayed cleanup timers to update the interface afterward.
* **Teams Renewal Reliability:** Removed Teams integrations are skipped safely during subscription renewal instead of causing renewal failures.
* **Protected Custom Signal Metadata:** Custom signals sharing an ID with an extraction record no longer expose extraction-only details.
* **Prevented Duplicate Usage Charges:** Repeated delivery attempts cannot consume credits or report the same usage more than once.
* **Light-Mode Quick Actions:** Home Quick Action cards display with the correct colors, borders, and icons in light mode.
* **Recording Metadata Recovery:** Temporary media metadata connection failures retry properly instead of leaving processing permanently stuck.
* **Correct Smart-Tag Replay Scope:** Unbounded smart-tag replays process the full matching set, while bounded replays continue respecting their configured limits.
This release improves Teams recording recovery, Project Builder, Search, summaries, workflows, signals, and everyday interface reliability.
**103 Core Commits Reviewed**
### 🚀 New Features
* **Unified Search:** Search across people, companies, recordings, chats, documents, folders, surveys, conversations, signals, and feedback from one place. Results are ranked by relevance, support filters and pagination, and open directly to the matching record.
* **Jira Support:** Review, link, promote, and create Jira tickets alongside Linear tickets in Triage and Projects.
* **Smart Tag Automation:** Create, preview, approve, apply, and replay smart-tag rules through BuildBetter workflows.
* **Smart Tag Reporting:** Review exact tag trends, call and company counts, severity, sentiment, revenue context, representative signals, and source evidence.
* **New Chat Home:** The restored home for new chats includes quick actions to join calls, create documents, upload or start recordings, browse recent recordings, and open a collapsible daily calendar.
* **Extraction Discovery:** MCP tools can browse large extraction sets with pagination and aggregate results by tag, topic, keyword, or type.
* **Calls Header Controls:** Calls now includes streamlined recording-scope and filter controls plus quick options to upload, join, or create recordings and calls.
### ✨ Improvements & Enhancements
* **Fresher Search Results:** Changes to recordings, chats, documents, feedback, surveys, people, companies, folders, and related records update Search in the background without slowing down normal work.
* **More Accurate Search:** Search validates permissions and current record data before displaying results, supports metadata and date filters, and handles long transcripts and conversations more effectively.
* **Familiar Search Layouts:** Results use entity-specific layouts for calls, chats, companies, people, documents, folders, and signals, with clearer actions for recordings.
* **Safer Salesforce Processing:** Salesforce syncs and exports use stricter deadlines, safer retries, duplicate-job protection, and improved handling during worker shutdown.
* **Better Summary Regeneration:** Cited summaries preserve selected templates, retain the last successful version while regenerating, and restore it if replacement generation fails.
* **Classic Recordings Layout Restored:** Call list and detail pages now consistently use the classic recordings experience.
* **More Reliable Slack Imports:** Imports capture feedback from legacy attachments and Block Kit content, while text-less bot messages no longer interrupt the remaining import.
* **Improved Smart Tag Accuracy:** Reports use exact label and slug matching, respect permissions, avoid misleading empty dashboards, and provide precise monthly trends.
* **Clearer Social Listening Setup:** Provider guidance and sync warnings better distinguish X and Reddit availability, credit limits, and daily caps.
* **Cleaner Call Summaries:** Cited summaries have a simpler layout with actions in a more accessible location.
### 🐛 Bug Fixes
* **Search Filters:** Disabling every result type now prevents both new and legacy search queries from running.
* **Search Access:** Restored authenticated, user-scoped access to chat search results.
* **Recording Bot Processing:** Scheduled bots with missing calendar-event creators are removed safely instead of causing processing failures.
* **Summary Reliability:** Fixed loading, polling, and failure states during rich-summary regeneration.
* **AI Persona Workflows:** Restored persona creation, chats, panels, company generation, and related AI workflows after an underlying model was retired.
* **Signal Matching:** Signals from different sources that share the same numeric ID are no longer confused, preventing incorrect clips or associations.
* **Subscription Usage Recovery:** Repaired subscriptions can replay usage that was blocked after the prior subscription entered its grace period.
This release introduces unified Search, expands Jira and Smart Tag workflows, refreshes chat and call navigation, and improves summaries, integrations, and signal accuracy.
**39 Core Commits Included**
### 🚀 New Features
* **Great Question Integration:** Import Great Question research-session transcripts into BuildBetter Recordings. Connect with an API key, select studies, map them to collections, and run manual or hourly syncs.
### ✨ Improvements & Enhancements
* **More Resilient Great Question Imports:** Imports better handle delayed transcripts, repeated syncs, pagination, rate limits, access restrictions, and transcript formatting without creating duplicate recordings.
* **Salesbricks Subscription Recovery:** Subscription status is checked daily so renewed subscriptions recover automatically and paused usage can resume.
* **Clearer Social Listening Status:** Connection warnings now distinguish between X, Reddit, credit-limit, and daily-cap issues.
* **Simplified Call Summaries:** Cited call summaries now have a cleaner layout with better-aligned actions and less visual clutter.
* **Improved Dialog Visibility:** Confirmation dialogs now reliably appear above document drawers.
### 🐛 Bug Fixes
* **Calendar Authorization Restored:** Google and Microsoft recording calendar connections can be authorized successfully again, with clearer errors when authorization fails.
* **Stable Signal Creation:** The selected template and current step remain intact when the document-creation wizard refreshes.
This release adds Great Question research imports and improves calendar setup, subscription recovery, social-listening status, summaries, and signal creation.
**50 Core Commits Included**
### 🚀 New Features
* **Dashboard Filter Suggestions:** Signal filters now offer searchable suggestions for tags, topics, keywords, folders, people, companies, surveys, and feedback sources.
* **Multi-Select Dashboard Filters:** Use **Is any of** and **Is none of** to filter by multiple tags and similar values at once.
* **On-Demand Signal Clustering:** Dashboards can now start clustering signal data when no clusters exist while keeping the underlying signals available to browse.
* **Automatic Organization Joining:** Users with a verified company email can be added automatically to organizations configured for their domain.
### ✨ Improvements & Enhancements
* **Intercom Billing Recovery:** Intercom imports pause when an organization runs out of credits without disconnecting the integration, then eligible imports can resume once credits are restored.
* **Flexible Integration Setup:** Connection forms now use provider-specific field names and labels, making API-key integrations easier to configure correctly.
* **More Resilient Intercom Imports:** Valid conversations can import even when optional author, source, or attachment details are missing.
* **Better Dashboard Controls:** Filter menus now match their input width, provide fully clickable options, and stay manageable when many values are selected.
* **Improved Partner Workspace Setup:** Partner-authenticated users can create or join workspaces more reliably, with the correct onboarding flow and fewer unnecessary verification emails.
### 🐛 Bug Fixes
* **Aircall Connection Setup:** Aircall settings now show the correct API ID and API Token fields so new connections can save and sync successfully.
* **Organization Creator Permissions:** People who create an organization now reliably receive administrator access.
* **Recording Calendar Reliability:** Older valid calendar connections continue processing correctly, while disconnected or unknown calendars no longer trigger unnecessary retries or bot changes.
* **Call Summary Reliability:** Restored the correct AI configuration for call summarization, metadata extraction, and related processing.
* **Billing Retry Handling:** Permanent billing-provider rejections no longer retry indefinitely, while temporary outages and rate limits continue to retry.
* **Mixed-Case Email Domains:** Workspace lookup and automatic joining now work correctly for domains containing uppercase or mixed-case characters.
* **Intercom Restore Behavior:** Restoring credits no longer re-enables integrations that are disconnected, unauthorized, or unavailable on the current plan.
* **Salesforce Export Timeouts:** Recording-summary exports now time out gracefully instead of blocking other integration work.
* **Dashboard Tag Filtering:** Call and data filters correctly match tags applied to interviews, and signal and cluster views retain the dashboard's active filters.
* **Transcript Speaker Picker:** The **Assign/Reassign Speaker** menu now displays with a solid, readable background.
* **Notification Hover States:** Notification-center rows once again show a visible hover state.
This release expands dashboard filtering and clustering while making integrations, workspace setup, billing recovery, calendars, and call processing more dependable.
**80 Core Commits Included**
### 🚀 New Features
* **Join Meetings by URL:** Submit a supported meeting link from BuildBetter to have a recording bot join the call, with clearer feedback when the provider, workspace, or meeting state prevents the join.
* **Shareable Skillsets:** Skillset pages now have direct links, making it easier to return to or share a specific Skillset configuration.
### ✨ Improvements & Enhancements
* **More Reliable Scheduled Recordings:** Calendar-linked recording bots better recover from duplicate events, delayed provisioning, temporary provider conflicts, and attendee calendar changes.
* **Improved Skillset Management:** Skillset screens now provide smoother search, clearer loading and empty states, safer in-progress controls, better notifications, and protection for unsaved access changes.
* **Resilient Integration Processing:** HubSpot exports and other provider workflows now pause and resume more gracefully around rate limits, while conversation imports provide more dependable status tracking and extraction processing.
* **Safer Recording Processing:** Missing media, unavailable recordings, and permanent transcription failures now stop cleanly instead of retrying indefinitely.
### 🐛 Bug Fixes
* **Quota Validation:** Submitting an empty quota cap, including with the Enter key, no longer sets the cap to zero. Explicitly entering `0` still pauses that event type.
* **Summary Content Preservation:** Signal summaries remain available even when timestamp citations cannot be generated.
* **Template Mode Reliability:** Organizations now reliably retain their selected fixed or automatic summary-template mode.
* **Stale Upload Recovery:** Uploads that remain stuck for more than an hour are marked as failed instead of staying in progress indefinitely.
* **Clearer Quota Messaging:** Feedback imports blocked by a usage cap now explain that the cap was reached and link to quota settings instead of suggesting a credit shortage.
* **More Reliable Top-Ups:** Failed, abandoned, or overlapping credit purchases no longer leave unnecessary unpaid invoices or duplicate saved payment methods.
* **Clearer Slack Errors:** Revoked access and missing Slack permissions are now reported accurately.
This release makes meeting capture, Skillsets, integrations, recording processing, quotas, and credit purchases more reliable.
**82 Commits Included**
### 🚀 New Features
* **Credit Top-Ups and Auto-Recharge:** Add credits manually, save payment methods, review receipts and purchase history, or automatically recharge when your balance runs low. Auto-recharge includes configurable thresholds and monthly spending caps.
* **Billing Quotas:** Set organization-wide or per-event usage limits from **Billing → Quotas**, pause quotas, and see clear recovery options when a limit is reached.
* **Automatic Work Recovery:** Imports, extractions, integrations, reports, and recording bots paused by insufficient credits now resume after credits, plans, or quotas are restored.
* **Credit Alerts:** Configure alerts at 70%, 90%, and 100% usage, choose email recipients, and review current usage and burn rate.
* **Interactive Reports:** Create reports with templates, configurable inputs, previews, run history, sharing, exports, favorites, workflow integrations, and scheduled delivery to email or Slack.
* **Organization Skillsets:** Create and manage shared Skillsets from **Build → Skillsets**, with read access through the API and MCP.
* **Recording and Transcript APIs:** Retrieve organization recordings and sentence-level transcripts through REST endpoints with pagination and date filtering.
* **Rich Call Summaries:** Call summaries now support Markdown sections, participant details, quotes, images, action and signal cards, and clickable timestamp citations.
### ✨ Improvements & Enhancements
* **Clearer Billing Details:** Billing now explains included and extra credits, current-period usage, expiry dates, recharge spending, and remaining balances more clearly.
* **Fair Mid-Cycle Credits:** Included credits now reflect prorated subscription charges during partial billing periods.
* **More Reliable Payments:** Top-ups and auto-recharge better handle delayed confirmations, missed payment notifications, card issues, spending caps, and stale pending purchases.
* **Partial Import Processing:** Feedback and image imports can process the affordable portion immediately and resume the rest after credits become available.
* **Improved Interactive Reports:** Report creation, previews, snapshots, refreshes, scheduling, and delivery previews are more reliable.
* **Faster Company Search:** Company search and Slack autocomplete respond faster for organizations with large CRM datasets.
* **Safer Recording Links:** Recording media and poster images now use secure, time-limited URLs.
* **Improved Transcript Playback:** Automatic transcript following stays smooth during playback, while manual timestamp and signal navigation preserve your reading position.
* **More Resilient Slack Summaries:** A revoked or broken Slack connection no longer prevents delivery to other valid destinations.
* **Consistent Invitations:** Creating, updating, removing, and resending invitations now behaves consistently across onboarding and member management.
### 🐛 Bug Fixes
* **Accurate Billing Prompts and Balances:** Fixed incorrect free-plan prompts and inaccurate displays for capped usage, top-up balances, expiry dates, and prorated credits.
* **Reliable Credit Alerts:** Every newly crossed usage threshold now triggers correctly, and a failed email no longer suppresses later alerts.
* **Protected Billing Recovery:** Low-credit work can trigger auto-recharge without duplicate charges or retries, while quota-related blocks avoid unnecessary charges.
* **Reliable Recording Bot Joins:** Bots blocked by low credits are recovered after recharge without losing or duplicating joins.
* **Fixed Login Redirects:** Signing in now returns users to the application instead of leaving them on the authentication callback page.
* **Fixed Slack Setup:** Slack connection selection no longer submits invalid values during setup.
* **Reliable Report Data:** Report previews now handle formatted numbers, stale snapshots, and refresh failures correctly.
* **Clearer People Merge Warnings:** Merge warnings wait for the required profile data and only list integrations that need attention.
* **Reliable Recording Processing:** Transcription begins only after recording assets transfer successfully, and temporary media-transfer failures retry automatically.
* **Restored Recording Calendar Support:** Existing recording calendar connections can receive events, sync updates, and schedule bots without reconnecting.
* **Fixed Transcript Auto-Scroll:** The active transcript sentence is found and scrolled into view again during playback.
This release adds more control over credits and usage, expands Interactive Reports and Skillsets, and improves recording, transcript, Slack, and billing reliability.
**135 Commits Included**
### 🚀 New Features
* **Knowledge Workspace:** Skillsets have been expanded into a broader Knowledge experience with groups, flexible sharing, revision history, activity tracking, review flows, and a new Groups settings page. Older Skillsets links now automatically redirect to the new experience.
* **Desktop Recorder Uploads:** Added support for authenticated desktop recordings to flow into the product like normal recordings and calls.
* **Initiatives & Project Setup:** You can now set up initiatives with guided metric configuration, link projects during creation, and roll up results from related projects, companies, and people.
* **Projects Evidence Workspace:** Projects now have a richer evidence workspace with smarter suggestions, better previews for linked items, and improved evidence organization.
* **Discourse Integration:** Added a new Discourse integration that can bring forum topics and replies into conversations, with setup support for categories and tags.
* **Personas Chat:** Added a new Personas Chat entry point and refreshed persona testing setup so users can work from saved panels or choose people directly.
* **Live Document Generation Progress:** The web app now shows live document-generation progress with stage messages, percentages, and progress counters.
* **Stable Public IDs:** Many API-facing records now include stable public IDs, making integrations and external references more reliable.
* **Team Activity Feed:** Added a team activity feed for live and recent work updates.
* **Improved Recording Metadata:** More recordings now include duration, track details, and poster images.
### ✨ Improvements & Enhancements
* **Knowledge Experience Refresh:** The Knowledge area has been redesigned with clearer management tables, drawers, access controls, review flows, better history visibility, and improved mobile navigation.
* **Feedback Ingestion Controls:** Linear feedback ingestion now gives clearer status filtering, better team/project scoping, and more reliable saved selections.
* **Initiative Rollups:** Initiative and project workflows now show rollups more clearly and handle fields more consistently across the product.
* **Project Sync & Evidence Quality:** Project syncing and evidence handling are now more reliable, with better metadata refreshes, fewer duplicates, and routing focused on approved evidence.
* **Discourse Setup & Sync Quality:** Discourse imports now focus on public visible posts, handle setup more reliably, and make backfills easier to continue.
* **Personas Workspace Refresh:** Personas now has a more compact layout, clearer workflow cues, improved search and bulk actions, and better study results.
* **Privacy-Friendly Recording Access:** Recording APIs now use public identifiers and safer asset links instead of exposing storage locations.
* **Document Generation Reliability:** Document generation now falls back to durable status tracking if live progress events are missed.
* **Richer Workflow Conditions:** Legacy signal-based webhook workflows now evaluate against much richer signal and participant context, improving automation accuracy.
* **Quieter Error Reporting:** Reduced noise from known browser-extension errors so issue reporting is more useful.
* **Safer Long-Running Jobs:** Long-running one-off jobs now retry more safely if interrupted, reducing the chance of partial work being left behind.
* **Linear Integration Reliability:** Linear connections now recover from expired tokens more gracefully, reducing unnecessary reconnect prompts.
* **Broader Recording Metadata Support:** Metadata and poster generation now work for more imported and transferred recordings.
### 🐛 Bug Fixes
* **Feedback Filter Saving:** Fixed an issue where saving feedback ingestion settings could keep old Linear status filters instead of the ones currently selected.
* **Image Upload Token Reliability:** Fixed token creation failures in more image upload configurations.
* **Recording Ownership Access:** Fixed non-public recording creation so owner permissions are applied correctly and uploaded assets remain playable.
* **Initiative Loading:** Fixed initiative detail pages so saved initiatives load more reliably and show clearer loading or not-found states.
* **Project Evidence Attachments:** Fixed large call IDs in the project evidence modal so attachments no longer fail due to number precision issues.
* **Discourse Setup Timing:** Fixed a setup issue where the initial Discourse sync could start before required setup data was ready.
* **Persona Counts:** Fixed company counts on the People page so linked companies are counted correctly.
* **Test Result Accuracy:** Fixed tied single-choice results so they no longer incorrectly imply a winner.
* **Sentiment Summary Accuracy:** Fixed qualitative summaries so “positive” learnings appear only when positive sentiment clearly leads.
* **Provider Retry Handling:** Fixed several integration sync issues so temporary provider rate limits or migration windows now retry later instead of failing immediately.
* **Notion Sync Stability:** Fixed Notion syncs so pages no longer shared with the integration are skipped cleanly instead of causing broader failures.
* **Pendo Sync Reliability:** Fixed Pendo retry handling so temporary errors defer correctly and preserve expected retry behavior.
* **People Filter Cleanup:** Fixed People filters so stale selections clear automatically and the filter hides when it isn’t useful.
* **Startup Stability:** Fixed several startup and configuration issues that could cause app launch failures.
* **GitHub OAuth Edge Cases:** Fixed GitHub connections so missing refresh-token details no longer break later sync jobs.
* **Document Generation Startup:** Fixed startup issues so document and report generation initialize correctly.
* **Intercom Sync Validation:** Fixed Intercom sync handling so valid updates are accepted more reliably while malformed payloads are rejected safely.
* **Recording Bot Status Handling:** Fixed recording bot status updates so expected “not started yet” cases no longer fail unnecessarily.
* **Recording Authorization Compatibility:** Fixed older in-flight recording authorization flows so they continue working during the migration.
* **Recording Calendar Auth Startup:** Fixed recording calendar authorization so Google and Microsoft calendar connection flows start reliably from authenticated app areas.
* **Calendar Auth Error Handling:** Fixed calendar auth startup failures so popups close cleanly and show an error instead of hanging.
These updates add major new Knowledge, workflow, and integration capabilities while also making syncing, analytics, and document generation more reliable. Overall, the release focuses on turning more of the product into real-data experiences with fewer interruptions and clearer workflows.
**53 Commits Included**
### 🚀 New Features
* **Signed Workflow Webhooks:** Outbound workflow webhooks now include BuildBetter signature headers for stronger request verification.
* **Webhook Signing Secrets:** Each webhook step in the workflow editor can now have its own signing secret, with easy copy and regenerate actions.
* **Webhook Verification Guide:** A new built-in guide explains how to validate webhook signatures, with examples in JavaScript and Python.
* **Inbox Workspace:** A new unified **Inbox** replaces the old Triage experience, giving teams one place to review signals, decisions, pull requests, topics, tickets, and other work.
* **Inbox Saved Views and Detail Pane:** Inbox now includes saved views, mixed queues, embedded details, and shareable URLs so it’s easier to organize and revisit work.
* **Success Follow-ups Workspace:** Teams now have a dedicated **Success > Follow-ups** area to manage account follow-up work.
* **Durable Follow-up Queue:** Follow-up items, evidence, drafts, and review state now persist over time so work doesn’t get lost.
* **Success People and Companies Views:** New Success-specific people and company views make it easier to move from follow-ups into related account and contact details.
* **Interactive Reports:** Builder now supports **Interactive Reports**, a new report type with interactive views, filtering, sharing, publishing, scheduling, and run history.
* **Organization Skillsets Catalog:** Teams can now browse and manage a shared organization-wide **Skillsets** catalog for reusable skills.
* **Managed Skillsets:** Users can create, edit, delete, and reorder skillsets and skills directly in the Build app.
* **Gmail Integration:** Initial Gmail integration support has been added for connected accounts.
### ✨ Improvements & Enhancements
* **Safer Webhook Security:** Custom webhook headers can no longer override reserved BuildBetter signature headers, improving webhook authenticity.
* **Fresher Webhook Secret Updates:** Webhook secret details now refresh more reliably in the workflow editor after saves and test runs.
* **Aircall Reconnect Guidance:** Aircall authentication failures now clearly move connections into a **needs reauth** state while preserving the provider’s message.
* **Inbox Navigation and Usability:** Build navigation has been updated from **Triage** to **Inbox**, while keeping existing workflows for signals, pull requests, decisions, clusters, topics, and tickets.
* **Inbox Rollout Polish:** Inbox now opens the correct detail view more reliably, preserves links and filters better, and keeps specialized workflows intact for tickets and decisions.
* **Transcript Consistency:** Transcript handling is now more consistent across search, exports, integrations, workflows, SDKs, and API clients.
* **Faster Transcript Search:** Search performance for transcripts has been improved.
* **More Reliable Image Uploads:** Image upload authentication is now simpler and more reliable.
* **Follow-up Context in Success:** Success account and profile views now bring together follow-ups, health, pipeline, contracts, re-engagement data, calls, and conversations in one place.
* **Follow-up Evidence Navigation:** Conversation details now include links back to the follow-up they came from.
* **Broader Customer Activity View:** Calls and conversations are now included alongside other customer activity signals.
* **Interactive Reports Security and Access:** Interactive Reports now have stronger rollout controls, owner-based access protections, and safer sharing and publishing behavior.
* **Library Navigation Update:** Favorites now appear below Data in the Library sidebar for a clearer, data-first layout.
* **Skillset Browsing Improvements:** Skillset lists now include summaries for easier browsing, while full details remain available when you open an item.
* **Skillsets Experience Polish:** The Skillsets UI now includes richer metadata, Markdown content, copy-to-clipboard support, source links, edit dialogs, and reordering controls.
### 🐛 Bug Fixes
* **Fireflies Sync Reliability:** Temporary Fireflies outages now retry automatically instead of immediately marking the integration as broken.
* **Recording Scheduling Reliability:** Temporary recording scheduling errors now retry more reliably instead of failing too early.
* **Clari Copilot Reauthorization Handling:** Clari Copilot auth failures now correctly mark integrations as **needs reauth** instead of showing generic failures.
* **Fathom Sync Stability:** Temporary Fathom outages no longer incorrectly mark integrations as failed.
* **HubSpot Reauthorization Handling:** Expired or invalid HubSpot auth now correctly moves connections to **needs reauthorization** instead of repeatedly failing in the background.
* **Duplicate Scheduling Recovery:** Events now recover properly when a duplicate recording request is still processing.
* **Slack Multi-Org Connect Fix:** Fixed a Slack `/bb connect` issue that could fail for teams linked to multiple organizations.
* **Projects List on Small Screens:** The Projects table now scrolls horizontally on narrow screens instead of cutting off action buttons.
* **Recording and Transcription Reliability:** Recordings now wait for asset transfer to finish before transcription begins, preventing stuck or failed transcript states.
* **Recording Media Retry Handling:** Media transfer can now retry more reliably while recording assets are still becoming available.
* **People Merge Stability:** Fixed issues where merge previews could appear before selections fully loaded, and ensured selected user associations are preserved during merge.
* **Slack Feedback Company Search:** Company suggestions in Slack `/bb-feedback` now appear more reliably and respond faster for larger organizations.
* **Person Merge Error Clarity:** Conflicting organization email ownership is now caught earlier with a clearer error message.
This release adds major new workspace capabilities like Inbox, Follow-ups, Interactive Reports, and Skillsets, while also improving transcript consistency and integration reliability. It also fixes several frustrating sync, scheduling, merge, and Slack workflow issues to make day-to-day use more dependable.
**68 Commits Included**
### 🚀 New Features
* **Slack Agent:** You can now interact with BuildBetter directly from Slack, either through Slack’s AI assistant panel or by mentioning the bot in a channel. It supports analysis workflows, formatted answers, citations, charts, highlights, and task results.
* **Smarter Slack Conversations:** Slack chats now support suggested prompts and thread-aware conversations, making it easier to continue work and keep context over time.
* **Modern Recording Uploads:** Recording uploads now use a faster direct-to-cloud browser upload flow, with support for folder uploads and re-uploading existing recordings.
* **Clearer Upload Progress:** Recording uploads now show clearer progress updates, separating file upload from server-side processing so it’s easier to tell what’s happening.
* **New Recording Integrations:** BuildBetter now supports connection-based recording sync for Chorus AI, Fireflies.ai, Clari Copilot, and Aircall.
* **Success Control Panel:** A new Success Control Panel is now the default Success landing page, with navigation for both the Control Panel and Dashboard.
* **Success Dashboard:** Success teams now have a dedicated dashboard with summaries for account health, contract exposure, and upcoming renewals.
* **Success Inbox:** A new triage inbox helps Success teams review follow-ups, customer additions, identity cleanup, health movement, trial changes, and close-the-loop work in one place.
* **Company Search Across Success:** You can now search for companies across Success Health, Convert, Contracts, Pipeline, Re-engage, and Releases using company names, domains, contacts, owners, and related context.
* **Health Change Tracking:** Success teams can now review accounts with recent health score or risk changes from a dedicated view.
* **Trial Change Tracking:** You can now review newly added, removed, expiring, or changed trial accounts from the Convert overview.
* **Dismiss Triage Items:** Reviewed Success inbox items can now be dismissed without deleting the underlying data.
* **CSV Export for Health Data:** Customer health data can now be exported from the Success home experience.
* **Feedback-Based Workflow Trigger:** Workflows can now start automatically when new feedback is added from a selected feedback source.
* **Feedback to Slack Template:** A new workflow template can send feedback into Slack, with source details, content, timestamps, and related customer context included.
* **Expanded MCP Product Ops Tools:** The BuildBetter MCP server now includes more tools for Projects Hub, triage, folders, and Linear, including viewing projects and triage items, backlog counts, folder details, and Linear issue discovery.
* **Approval-Based MCP Actions:** MCP now supports approval-based actions for promoting triage items or selected Linear tickets into Projects Hub projects.
* **Natural-Language Signal Search:** Signal search in MCP now supports natural-language queries for signed-in users, making it easier to find what you need without structured filters.
* **Gong CRM Context Filter:** Gong imports can now optionally be filtered using CRM fields like Salesforce account attributes.
* **Success Workflow Improvements:** Releases close-the-loop workflows now include searchable customer and request lists, deep links, and a draft follow-up sheet before opening Gmail.
### ✨ Improvements & Enhancements
* **Simpler Zapier Authentication:** Zapier authentication now uses the shared partner sign-in flow, making setup more consistent and secure.
* **Stronger Zapier Security:** Zapier connections now use a more secure OAuth flow with PKCE support.
* **More Reliable Slack Processing:** Slack event handling is now more dependable, with better retry handling, account-linking support, and improved chart/task persistence.
* **Better Recording Processing:** Recording processing is now more reliable, with clearer status updates, retry handling, stalled-upload recovery, and better cleanup after processing.
* **Audio-Only Upload Support:** Audio-only uploads are handled more gracefully, including audio-specific processing and skipping video-only steps when they don’t apply.
* **Managed Media Processing:** Clip generation now uses managed cloud media services for better scalability and reliability.
* **Unified Recording Integrations Experience:** Call recording onboarding and sync now run through the standard integrations experience, replacing older legacy setup paths.
* **Improved Admin Visibility for Recording Connections:** Admin views now show recording connection details like provider, status, and last sync information.
* **Safer Duplicate Prevention for Imports:** Imported recordings are better deduplicated, helping avoid duplicate records during retries or migration periods.
* **Improved Gong Sync Reliability:** Gong syncing now handles rate limits, authentication issues, and retry behavior more gracefully.
* **Better Fathom Retry Handling:** Temporary Fathom errors are now retried in a delayed, controlled way instead of immediately failing active jobs.
* **Improved Productboard Imports:** Productboard manual imports now better respect source and date filters together and use the latest connection settings more reliably.
* **More Reliable Pendo Syncs:** Pendo syncing now retries temporary failures, respects provider-requested backoff windows, and avoids excessive repeated failures.
* **Background Processing for Long Tasks:** Long-running release sync and analysis actions now run in the background, so you don’t have to wait on a single request to finish.
* **Improved Upcoming Calls Cards:** Upcoming calls now support richer contextual actions, including account links and demo prep.
* **Consistent Success Risk Indicators:** Risk colors and labels are now more consistent across charts, badges, and score displays.
* **Improved Feedback Workflow Targeting:** Feedback-triggered workflows now only run for direct feedback creation and only when the selected source matches.
* **Better MCP Guidance:** MCP documentation and guidance have been improved so it’s easier to discover and use projects, triage, folder, Linear, and search tools.
* **Safer MCP Access Controls:** New MCP capabilities now follow existing permission rules more closely, helping keep data access properly scoped.
* **More Accurate Product Taxonomy Guidance:** Triage and project chat tools now check Product Taxonomy more reliably when answering taxonomy-related questions.
### 🐛 Bug Fixes
* **Social Login Organization Selection:** Google and other social logins now correctly require organization selection for partner and connector-based sign-ins, preventing users from being signed in without the right organization context.
* **Zapier Refresh Tokens:** Zapier refresh-token support is now more consistent and no longer depends on special scope requests.
* **Reconnect Required for Existing Zapier Connections:** Existing Zapier connections will need to be reconnected to continue working with the updated authentication flow.
* **Authentication Startup Stability:** Fixed a startup issue that could temporarily affect authentication services during infrastructure updates.
* **Slack Duplicate Event Handling:** Fixed cases where Slack retries could cause the same event to be processed more than once.
* **Secure Slack Webhook Verification:** Slack webhook verification has been hardened for safer request validation.
* **Salesloft Reauthorization Handling:** When Salesloft credentials expire or are revoked, the connection is now marked as needing reauthorization instead of repeatedly failing in the background.
* **Recording Calendar Disconnect Handling:** Disconnecting a recording calendar no longer incorrectly cancels related future events unless the provider explicitly reports a cancellation.
* **Aircall Sync Pagination:** Fixed an issue where Aircall imports could get stuck on the first page instead of continuing through all results.
* **Clari Copilot Filtering:** Fixed a problem where empty or invalid Clari Copilot filters could accidentally block all calls from importing.
* **Recording Retry Recovery:** Failed recording imports are now less likely to be skipped when older recording links are still present.
* **Gong Asset Repair:** Broken Gong recording assets can now be repaired automatically in the background, including refreshing expired media links before retrying.
* **Gong Reauthorization Handling:** Gong connections now correctly move to a needs-reauthorization state when credentials expire, instead of repeatedly retrying and advancing sync incorrectly.
* **Fathom Outage Handling:** Temporary Fathom outages no longer repeatedly fail background processing or consume unnecessary capacity.
* **Recording Bot Removal Reliability:** Recording bot removal now handles “already deleting” responses safely and continues processing related events instead of stopping early.
* **Success Triage Confidence Display:** Fixed how release confidence percentages are interpreted and shown in Success triage.
* **Convert Trial Data Isolation:** Fixed an issue that could mix up Convert trial inbox data across organizations.
* **Taxonomy Reading in Chat Tools:** Fixed the triage/projects chat tool so it can correctly read your organization’s Product Taxonomy from Settings.
* **Product Taxonomy Fallback Logic:** The chat agent no longer incorrectly assumes no custom taxonomy exists when certain tracked-item settings are empty.
These updates add major new workflows across Slack, Success, feedback automation, MCP, and recording integrations, while also improving reliability for uploads, syncs, and authentication. Overall, the release makes BuildBetter easier to use day to day and more dependable behind the scenes.
**105 Commits Included**
### 🚀 New Features
* **Repository Management:** You can now connect and manage GitHub repositories directly in the web app, with dedicated views for overview, sessions, skills, activity, and settings.
* **GitHub App Connection Flow:** Connecting repositories is now easier with a guided GitHub App install flow, in-app repository selection, and support for adding more repositories later without reinstalling.
* **Custom Signals:** Organizations can now create custom signals that run after the standard extraction pipeline, with support for previews, run history, findings, and usage estimates.
* **Custom Signals API:** A new v3 API is available for managing custom signals and their results, making it easier to build workflows around them.
* **AI Labeling for Custom Signals:** The app now includes create/edit flows, previews, run history, and run details for custom signals in the AI labeling experience.
* **Custom Signals in Signals v2:** Active custom signals now appear alongside other signal types in filtering and signal views.
* **Redesigned App Experience:** An opt-in redesigned app shell is now available, featuring a refreshed sidebar and updated navigation.
* **New Chat Experience:** The new welcome screen makes it easier to start conversations, with favorites, working `@` mentions, and direct creation of a real chat thread when you submit a prompt.
* **Recents in Sidebar:** The redesigned sidebar now includes a Recents section for AI chats, with inline search and quick actions.
* **Mobile Redesign Support:** The redesigned app experience is now available on mobile with an off-canvas sidebar.
* **Library Panel:** A floating Library panel is now available beside conversations for quicker access to chat-related content.
* **Metadata-Aware Chat:** The chat agent can now discover available CRM, person, and company metadata fields before answering metadata-based questions, improving accuracy.
* **Linear Feedback Ingestion (Beta):** You can now import matching Linear issues and comments into BuildBetter as feedback records.
* **Linear Setup UI:** Linear integration settings now include setup controls for team/project scoping, filters, previews, and manual backfill/sync visibility.
* **Linear as a Signal Source:** Imported Linear feedback is now represented as its own source in downstream analysis.
* **Improved MCP App Verification Support:** A public verification endpoint was added so the MCP app can complete OpenAI Apps domain verification.
* **MCP Dynamic Client Registration:** Approved MCP integrations can now register their own dedicated OAuth clients instead of relying on a single shared client.
* **Broader MCP Redirect Support:** MCP registration now supports more callback types, including standard HTTPS URLs, local loopback URLs for native apps, and custom URI schemes.
* **OAuth Compatibility Endpoints for MCP:** More MCP clients can now complete OAuth successfully using MCP-hosted authorize and token endpoints.
* **List Extractions Schema Tool:** A new MCP tool provides the expected input schema for `list-extractions`, helping strict clients build valid requests.
### ✨ Improvements & Enhancements
* **Per-Repository Dashboards:** Repository metrics now show session, skill, and pull request counts for clearer repo-level insights.
* **Repo-Specific Session Trends:** Session counts can now be filtered by GitHub repository for more accurate dashboards and trends.
* **Smoother Custom Signal Previews:** Custom signal previews now always run asynchronously for a more responsive and reliable experience.
* **Custom Signal Cost Estimates:** Admins can now see projected usage and credit impact before enabling a custom signal.
* **More Reliable Custom Signal Processing:** Custom signals now run with better background processing and billing support.
* **Better Sidebar Navigation:** In the new app experience, sidebar tab selection now follows the current route more accurately.
* **Polished Chat and Sidebar UI:** The redesigned app experience includes visual refinements, clearer wording, improved styling, and a better message composer.
* **Quick Chat Actions:** You can now copy chat links or delete chats directly from Recents in the sidebar.
* **Consistent Library Experience:** The chat data browser has been renamed and restyled as Library for a more consistent product experience.
* **Improved Mobile Upcoming Calls View:** The mobile week view now uses a swipeable horizontal layout that preserves date and time context more clearly.
* **More Accurate Signal Titles:** The Signals list in call views now prefers each signal’s real title, making names more consistent.
* **Better Feedback Duplicate Detection:** Duplicate matching for feedback records has been improved to make suggestions more useful and reduce misleading cross-category matches.
* **Improved Slack Feedback Form:** The `/bb feedback` Slack modal now better explains support for custom company identifiers and handles custom field names more clearly.
* **Safer Billing Experience:** The app is less likely to show false “upgrade your plan” or out-of-credits states when billing checks are temporarily unavailable.
* **Better OAuth Security for MCP:** MCP registration now validates redirect URLs more carefully, reuses matching approved registrations when possible, and improves token validation for registered clients.
* **MCP Registration Availability:** Dynamic client registration is now available for approved MCP integrations.
* **Stricter MCP Token Requirements:** MCP now requires tokens to include the expected user and organization information before allowing tool access.
* **Improved MCP OAuth Compatibility:** MCP-hosted authorize and token routes now preserve request details more reliably, including support for DPoP headers.
* **Simpler `list-extractions` Requests:** `list-extractions` is now easier for strict clients to call while still supporting advanced filtering and pagination behind the scenes.
* **More Reliable Metadata Discovery:** Chat metadata discovery now works better in larger datasets.
* **Safer Semantic Matching Rollout:** Semantic keyword and topic matching now falls back automatically when vector data is incomplete or unavailable, preserving existing behavior.
* **Faster Cross-Source Company Matching:** Company matching across connected data sources is now faster.
* **Improved Salesforce Connection Reliability:** Temporary Salesforce setup issues are now handled more gracefully with retries and cleaner failure handling.
* **Improved Recording Provider Reliability:** Recording and subscription flows now better handle temporary provider outages and rate limits.
* **Improved Sales Integration Reliability:** Sales data syncs now recover better from temporary infrastructure and provider-side failures.
* **More Reliable Transcript Callback Handling:** Transcript callbacks now follow a more consistent path, handle final error states more reliably, and keep quieter logs while preserving processing behavior.
### 🐛 Bug Fixes
* **Repository Configuration Reliability:** Repository connection settings are now handled more gracefully when optional setup values are not yet available.
* **Signal Search Behavior Restored:** A recent keyword/topic matching change was rolled back to restore expected search behavior while a safer replacement is evaluated.
* **More Accurate Profile Extractions:** Person and company extraction lists no longer show unrelated signals from other records in the same organization.
* **Fixed Entity Filtering:** Person and company extraction endpoints now correctly return results only for the requested record.
* **Working `@` Mentions in New Chat:** `@` mention autocomplete now works correctly on the New Chat screen.
* **No More Empty New Chats:** Submitting a prompt from New Chat now immediately creates a real thread instead of leaving you in an empty chat state.
* **Mobile Sidebar Auto-Close:** The redesigned mobile sidebar now closes properly after navigation.
* **Safari Layout Crash Fix:** A Safari crash caused by blocked browser storage has been fixed so the UI can fall back safely.
* **Local Storage Fallback for Sign-In:** The web app no longer crashes on load when browser privacy settings block `localStorage`; sign-in now falls back to in-memory storage.
* **Settings Page Opt-In Fix:** Users no longer hit a Settings crash when their organization has the new layout enabled but they haven’t personally opted in.
* **Classic Chat Thread List Fix:** Classic users no longer lose their thread list when their organization has the new sidebar enabled but they haven’t opted in.
* **Custom Signal Stability Fixes:** Custom signal runs now wait for completed extraction jobs, save nested run data correctly, and avoid schema-related AI output failures.
* **Custom Signal Query Fix:** Custom signal rows are no longer mistaken for standard extraction rows in timestamp and ID lookups.
* **Custom Signal Fanout Protection:** Failures while queueing custom-signal work no longer break standard extraction completion.
* **Custom Signal Type Naming Fix:** Custom signal type names now use API-compatible values, preventing enum-related issues.
* **Billing Settings Refresh Fix:** The organization billing settings page now stays accurate after polling or navigation.
* **Stale Recording Stop Fix:** Clicking Stop on stale recordings no longer triggers accidental row navigation or unnecessary errors.
* **MCP Startup Reliability:** A startup issue affecting people search in packaged MCP builds has been fixed.
* **MCP Registration Access Fix:** Dynamic client registration now has the permissions it needs to create OAuth clients.
* **IPv6 Loopback Redirect Fix:** Local IPv6 loopback callback URLs such as `::1` are now accepted correctly.
* **OAuth Failure Handling for Integrations:** Expected OAuth token exchange failures for recording and meeting providers now return users to the right settings page instead of failing confusingly.
* **Circle Auth Failure Handling:** Invalid Circle tokens now trigger reauthorization instead of crashing sync jobs.
* **Microsoft Teams Renewal Fix:** Temporary Microsoft outages no longer unnecessarily disconnect Teams integrations during subscription renewal.
* **Intercom Webhook Race Fix:** Concurrent Intercom webhook requests no longer fail when creating the same speaker person.
* **Webex Host-Join Reliability:** Temporary Webex token refresh or provider errors no longer incorrectly disconnect integrations or silently drop retryable webhook events.
* **Notion Sync Resilience:** If a page becomes unavailable during sync, it’s now skipped without breaking the rest of the sync, and future syncs can pick it up again if access is restored.
* **Semantic Index Sync Fixes:** Newly created keyword and topic tokens are now added to the live index correctly, and extraction writes no longer fail when live sync can’t run safely.
* **Semantic Matching Precision Fix:** A single extracted keyword or topic now links only to the closest existing match instead of multiple similar matches.
* **Runtime Config Resilience:** Temporary config refresh failures now keep the last known good config instead of causing unnecessary errors.
* **Calendar Worker Reliability:** Calendar jobs now recover better from rate limits and temporary API failures without getting stuck.
Overall, this release adds major new capabilities for repository management, custom signals, admin visibility, and Linear feedback ingestion, while also delivering a redesigned chat experience and stronger MCP OAuth support. It also includes a wide range of reliability fixes to make integrations, billing, syncing, and day-to-day app usage more dependable.
**58 Commits Included**
### 🚀 New Features
* **Persona Marketing Variants:** You can now create marketing projects, choose target audiences from saved panels or personas, upload assets or text ideas, generate AI image variations, compare results, review synthetic persona feedback, and revisit past runs.
* **Marketing Asset Downloads:** Marketing project assets and winning variants can now be downloaded, and you can start a marketing variants project directly from a persona panel.
* **AI Chat Project Management:** Quick chat can now help manage tracked items and projects, including creating, updating, merging, promoting, and organizing related evidence and links.
* **Social Listening (Beta):** Eligible organizations can now monitor public mentions from **X** and **Reddit** in a dedicated Social experience.
* **Social Monitoring Workspace:** A new Social page lets you review mentions in one place, with filters for platform, target type, and status.
* **Smart Fill for Social Setup:** Social Listening setup can now suggest brand, product, competitor, domain, subreddit, and threshold settings automatically.
* **Managed Social Connections:** X and Reddit can now be connected using BuildBetter-managed credentials, reducing setup work.
* **Home Chat Experience:** A new Home sidebar tab provides a chat-first starting point with **New Chat**, **Getting Started**, **Upcoming Calls**, **Favorites**, and recent agent sessions.
* **New Chat Welcome Screen:** A new `/new-chat` experience gives you starter prompts, quick actions, favorites, and an AI composer to begin faster.
* **Upcoming Calls Calendar:** A new weekly calendar view lets you browse upcoming calls, jump between dates, and open detailed event info like participants, meeting links, recording status, and access settings.
* **Workflow Email Sending:** Workflows can now send emails to one or more active organization members.
* **Workflow Email Attachments:** Workflow emails can now include attachments for rendered signals, signal lists, and calls or recordings.
* **Multi-Select Workflow Pickers:** The workflow editor now supports multi-select pickers, including selecting multiple internal recipients for email actions.
* **Recording Rules by Email Domain:** You can now create recording rules based on attendee email domains, including blocking recording for certain domains or requiring at least one matching domain before recording.
### ✨ Improvements & Enhancements
* **Safer Marketing Usage Controls:** Marketing generation and evaluation now show projected usage estimates and ask for confirmation before larger runs.
* **More Reliable Marketing Processing:** Marketing image generation and persona evaluation flows are now more reliable and better tracked for usage.
* **Secure Marketing Image Storage:** Uploaded and generated marketing images now use secure cloud-backed storage with signed access.
* **Refreshed Sidebar Navigation:** The web app sidebar has been polished with improved icons and more consistent navigation behavior.
* **Safer AI Chat Actions:** Destructive actions in AI chat now require explicit confirmation.
* **Persona Test Run Cost Estimates:** Persona test runs now show an estimated credit cost before launch.
* **Credit Checks Before Persona Runs:** Persona test runs now verify available credits before starting and clearly explain when there aren’t enough credits.
* **Fairer Persona Billing:** Persona runs now bill only for completed work. Fully failed runs are not charged, and partially completed runs are billed only for successful completions.
* **Better Social Mention Quality:** Social Listening now preserves matched terms more accurately, filters overly broad suggestions, and avoids duplicate rediscovered mentions.
* **More Reliable Social Syncing:** Temporary provider issues like outages or rate limits are handled more gracefully to reduce missed data.
* **Platform Filters for Signals:** Signals can now be filtered by social source, including **X** and **Reddit**.
* **Cleaner Social Settings Input:** Numeric social settings such as thresholds and daily caps now save more reliably.
* **Slack Company Picker Search:** The Slack `/BB feedback` company picker can now search by configured company metadata values, such as CRM account IDs, in addition to company name and domain.
* **Smoother Slack Picker Fallbacks:** The Slack company picker now behaves more gracefully when metadata labels or display settings are unavailable.
* **Easier Chat Resumption:** The sidebar **Knowledge** tab has been renamed to **Library**, and recent chat sessions are now easier to resume from the new Home experience.
* **Improved Help & Calendar UI:** The help button now opens **Getting Started**, hover tooltips are less noisy, and calendar/popover styling has been refreshed.
* **Consistent Calendar Colors:** Meetings now keep the same color consistently across attendee calendars.
* **Clearer Calendar Setup Prompt:** If no calendar is connected, the app now shows a dedicated prompt to connect one from Settings.
* **Clearer Feedback Upload Guidance:** The Feedback page now better explains empty states and shows supported file types up front to reduce failed uploads.
* **Workflow Email Security:** Workflow email recipients are re-checked at send time to ensure messages only go to active organization members.
* **Better Workflow Email Formatting:** Workflow emails now render Markdown as styled HTML for cleaner, easier-to-read messages.
* **Consistent Email and Slack Attachments:** Attachments sent through Slack and Email now use the same rendering logic for more consistent results.
* **Unified Project Management Experience:** Project creation across Projects and Triage is now more consistent, with improved details, editing, routing, and review controls.
* **Richer Project Details:** Project views now show more useful information, including source, type, author, status, priority, product area, and start date.
* **Improved Initiative Editing:** Initiative setup and editing now surface selected fields more clearly and support deeper editing of status, product area, and custom fields.
* **Remembered Duplicate Decisions:** Duplicate-project decisions such as merge or “not duplicate” are now remembered.
* **Smarter Triage Routing:** Triage handling for clusters, PRs, Linear, and Jira has been improved, including filtering out tickets already routed to projects.
* **Better Project Chat Context:** Project chat now uses current project context more reliably for project-specific questions.
* **Faster Success Pages:** Success pages now keep connected data warm across sections for faster navigation and fewer confusing refresh states.
* **Smarter Pipeline Setup Defaults:** Pipeline settings can now scan CRM properties earlier and prefill common stage mappings with sensible defaults.
* **Faster Pipeline Updates:** Saved Pipeline mapping changes now take effect more quickly and stale property data is refreshed more reliably.
* **More Reliable File Exports:** File exports in the web app now use a more consistent download flow and reduce browser memory usage during repeated exports.
### 🐛 Bug Fixes
* **Cleaner Manual Disconnects:** Intentionally disconnecting from event streams no longer triggers unwanted automatic reconnect attempts.
* **More Stable Sign-In Renewal:** Fixed an authentication issue that could cause repeated redirect attempts when silent sign-in renewal failed.
* **Cancelled Calendar Events Handled Correctly:** Cancelled recording calendar events are now treated properly so the system stops retrying against events that are already cancelled.
* **Snowflake Reauthorization Prompt:** When Snowflake access is revoked or invalid, connections are now marked as needing reauthorization instead of retrying endlessly.
* **Front Rate Limit Handling:** Front syncs now wait for the provider retry window during rate limits instead of failing background jobs unnecessarily.
* **Sidebar Icon Rendering:** Fixed a visual issue where some sidebar icons could appear too dark.
* **AI Chat Request Failures:** Fixed an issue that could cause all `/ai-chat` requests to fail after project-management chat tools were introduced.
* **AI Extraction Resilience:** AI extraction now completes gracefully when providers return blocked or empty output instead of failing the whole job.
* **Transcript Copying:** Fixed **Cmd+C / Ctrl+C** on the v3 call page so selected transcript text now copies correctly.
* **AI Chat Citation Links:** Citation links now open the correct referenced signal or source page across calls, conversations, feedback, and surveys.
* **Workflow Multi-Select Saving:** Fixed workflow configuration issues so multi-select picker values save and validate correctly.
* **Workflow Attachment Inputs:** Empty attachment values no longer turn into invalid IDs that trigger unnecessary fetches.
* **Templated Workflow Text Fields:** Single-line workflow text fields, such as email subjects with `{{variables}}`, now save and evaluate correctly.
* **Project Status and Priority Display:** Projects now show their actual saved status and priority instead of placeholder values.
* **New Project Starting State:** Manually created projects now start in **Triage** as expected.
* **Project Metadata Persistence:** Fixed issues where project type metadata, author information, duplicate suppression choices, and start dates could be lost or displayed incorrectly.
* **Jira Routing and Labels:** Fixed Jira ticket routing and labeling in Triage and project views.
* **Project Chat Runtime Errors:** Fixed project chat failures caused by schema validation and missing timeline event titles.
* **Recording Rule Reprocessing:** Fixed attendee-domain recording rule matching so duplicate calendar events no longer cause skipped or repeated jobs.
* **Success Health Loading:** Success Health now stays responsive when fresh connected-source data already exists, even if live connection checks temporarily fail.
* **Pipeline Loading and Refreshing:** Fixed several Pipeline issues involving stale data, delayed updates, and initial loading while sources are syncing.
* **Stage Mapping Accuracy:** Improved Pipeline default stage matching to avoid incorrect mappings for similarly named stages like “Renewal.”
* **OAuth Discovery Compatibility:** Improved OAuth discovery support for more connection flows and restored compatibility with older ChatGPT connector callback URLs.
* **Chat Tool Compatibility:** Fixed project-management chat requests failing with providers that reject certain tool schema formats.
These updates add major new workflows for marketing, social listening, chat, calendars, and workflow emails while also making billing, navigation, exports, and project management clearer and more reliable. We also fixed a wide range of issues affecting chat, syncing, citations, copying, and settings so day-to-day use feels smoother.
**195 Commits Included**
### 🚀 New Features
* **New Dashboard Trend Cards:** You can now add four new trend visualizations to clustering dashboards: **Volume Trend**, **Sentiment Trend**, **Severity Trend**, and **Impact Distribution**.
* **Trends Card Category:** Dashboard card pickers now include a dedicated **Trends** category so these visualizations are easier to find and add.
* **Saved Trend Time Ranges:** Each trend card now supports **7, 30, 90, and 365 day** views, and remembers the selected range for each card between visits.
* **Employee SSO for Admin Dashboard:** Employees can now sign in to the admin dashboard using single sign-on, with access controlled by role.
* **Initiatives in Projects:** Projects now support **initiatives**, including initiative creation, setup flows, reusable fields, and linking projects to one or more initiatives.
* **Initiative-Based Reporting:** Reporting and rollups can now be viewed by project, initiative, personal projects, or across all projects.
* **Evidence Review Workflow:** Project evidence can now be reviewed and approved or rejected before it affects rollups and reporting.
* **Decisions Inbox:** Triage now includes a **Decisions inbox** for reviewing project setup actions along with rationale, scoring factors, and supporting signals.
* **Recorder Cloud Passthrough:** The recorder now supports hosted live transcription and AI chat through new cloud-connected endpoints.
* **Recorder Usage Tracking:** Recorder-specific usage and billing tracking now shows eligible subscription status and remaining recorder usage more clearly.
* **Success Workspace Restored:** The **Success** workspace is available again behind its feature flag, including **Health, Convert, Contracts, Pipeline, Re-engage, and Close the Loop**.
* **Batch Extractions API:** Clients can now fetch up to **100 extraction records in a single request**, making larger data loads more efficient.
* **Inline Workflow Renaming:** Workflows can now be renamed directly in place, making it faster to replace “Untitled Workflow” with a meaningful name.
* **Workflow Duplication:** You can now duplicate a workflow to create a disabled copy for safe editing before turning it on.
* **Improved Workflow Testing:** Workflow testing now uses the newer Signals filter experience instead of requiring manual extraction IDs.
* **Unified Test Run View:** Test runs now open in the main run history drawer with a **TEST** badge and the same troubleshooting tools as regular runs.
* **Fix With Agent Shortcut:** Failed workflow steps and run-level errors now include a **Fix with agent** shortcut to speed up troubleshooting.
* **Release Approval Page:** Releases can now be reviewed and approved in a browser-based flow that shows the planned version, target commit, checks, and included pull requests.
* **Call Processing Status Dashboard:** Admins now have a **Call Status** page for monitoring in-flight or stuck calls, with charts, recent-call lists, single-call lookup, and a **reprocess transcript** action.
* **Build Navigation Section:** The web app now includes a new **Build** section that groups **Projects**, **Triage**, and **Prototypes** together.
* **Build Routes and Landing Page:** New **/build/** routes are available, and the Build landing page automatically opens the first enabled section.
* **Updated Build Unlock Page:** The Build unlock page now explains all three Build areas.
* **Queue Autoscaling Dashboard:** Super-admins can now view a new **Queue Autoscaling** dashboard to monitor queue backlog, scaling state, deployment readiness, and warning signals.
* **Queue Snapshot History:** The admin dashboard now includes queue snapshot history so teams can review recent queue pressure over time.
* **Plaud iOS Token Endpoint:** Signed-in users can now securely fetch a short-lived Plaud token for the iOS SDK without exposing partner credentials.
* **AI Chat Inspector:** Support teams can now review organization chat timelines, task status, tool activity, and related sandbox runs in a new admin chat inspector.
* **Project-Scoped Chat Context:** Chat conversations can now persist per project and use that project’s attached evidence for more relevant answers.
* **Slack Workflow Channels:** Slack now includes a **Workflows** option in `/bb connect`, so teams can register channels specifically for workflow use.
* **Workflow Channel Visibility:** Connected workflow channels now appear in both the workflow channel picker and a new **Available to workflows** section in Slack settings.
* **Screen-Share Layout Setting:** Organizations can now choose a screen-share recording layout with **Hide**, **Beside**, and **Overlap** options in bot settings.
### ✨ Improvements & Enhancements
* **Richer Trend Cards:** Trend cards now show both a summary and historical context, including totals for the selected period, comparisons to the previous period, and visual trend indicators.
* **Consistent Trend Behavior:** Trend cards now behave more consistently across the home page and clustering dashboards.
* **Taxonomy Admin Controls:** Taxonomy generation and reset actions are now limited to workspace admins.
* **Clearer Taxonomy Access for Non-Admins:** Non-admins can still view taxonomy data and job status, but editing controls are hidden and the UI now clearly tells them to contact a workspace admin for changes.
* **Stronger Admin Security:** Admin dashboard access is now more tightly protected so only properly authorized employee sessions can use standard admin features.
* **Access Denied and Account Switching Flows:** Users without the right admin role now get clearer access-denied and switch-account experiences.
* **Better Initiative Setup Experience:** Initiative setup is now easier, with configuration moved into Project Settings and support for starter initiatives, recommended fields, and mapped rollups.
* **Improved Triage Navigation:** Triage now has better search, filtering, and clearer separation between inbox and detail views.
* **Tracked Items Redirect to Triage:** `/tracked-items` now redirects to Triage, making Triage the main place for intake work.
* **Clearer Initiative Labels:** Custom initiatives now display more clearly across roadmap and project views.
* **Staging QA Checklists in Slack:** Staging release notifications in Slack now provide a numbered QA checklist instead of a change summary, making testing steps clearer.
* **Improved Evidence Context:** Evidence now includes richer source details, such as stronger call, conversation, participant, and company context.
* **Recorder Reliability Improvements:** Live and file transcription flows are more reliable, with better handling for disconnects, upload failures, WebSocket issues, and cleanup.
* **Clearer Recorder Billing Display:** Recorder usage now appears more clearly and separately in billing-related UI.
* **Better Subscription Handling:** Subscription and credit checks now more accurately reflect the organization’s active plan and free-plan state.
* **Folder Performance for Large Loads:** Folder pages now load signal details more efficiently, especially for folders with many signals.
* **Faster Success Workspace Refreshes:** Success workspace data now refreshes faster and handles cross-source matching and deduplication better.
* **Safer Metadata Creation Under Load:** Record creation is more reliable during high-concurrency activity.
* **Feedback Source Refreshing:** Feedback source lists now refresh more consistently after create, delete, and upload actions across both feedback experiences.
* **Success Health Snapshot Handling:** Success Health overviews now better detect connection changes and can safely fall back to cached data when live checks fail.
* **Slack Channel Picker Performance:** The Slack channel picker is now faster and more reliable in large workspaces.
* **Slack Signal Enrichment Protection:** Slack-created signals can now be enriched safely without overwriting signals that were already edited in BuildBetter.
* **Cleaner Build Navigation:** Legacy routes for Projects, Triage, and Prototypes now redirect into the new Build section while preserving access behavior.
* **Removed Cycles:** The deprecated **Cycles** feature has been removed from the web app to simplify navigation and reduce clutter.
* **Removed Legacy V4 Surface:** The old `/v4/*` app surface has been removed, consolidating active experiences into the current app structure.
* **Improved Reports Experience:** Reports documentation and behavior have been aligned around the unified `/reports` experience, including clearer handling for manual reports.
* **Persona Creation Flow Improvements:** Persona creation now routes through the current wizard more consistently, and panel drafts can carry into the wizard automatically.
* **Improved Call Status Dashboard:** The admin call status dashboard now includes call ID and date filters, sortable columns, open-state counts, and filtered summary cards.
* **Admin Navigation Updates:** Admin navigation now groups **Call Status** and **Queue Scaling** under a new **Infra** section.
* **Queue Scaling and Reliability Tuning:** Queue-backed workers now scale more efficiently, including scaling down when idle where appropriate while keeping selected workers warm for responsiveness.
* **Clearer Recorder Consent Settings:** Recorder consent wording is clearer, and the **Send Recording Consent in Chat** setting is now easier to find under **Call Recorder** settings.
* **More Reliable Recorder Settings Saves:** Recorder consent setting updates now handle save failures and bot-sync failures more gracefully.
* **Projects Experience Polish:** Projects now have more consistent status handling, better formatting for descriptions, faster refresh for blockers and next actions, clearer naming for **Linear tickets**, and improved project detail presentation.
* **Search Tool Pagination:** MCP search tools now support pagination, including direct page access and continuation keys for fetching older results.
* **Workflow Slack Connections:** Slack setup now keeps **Workflows** and **Push Summaries** available even without channel-history import permissions.
* **Recording Copy Improvements:** Duplicating recordings between workspaces is now more reliable and preserves ownership, permissions, summaries, and transcript data more accurately.
* **Knowledge Navigation Improvements:** The Knowledge tree is more reliable for nested pages, and invalid nesting actions now produce clearer errors.
* **Scheduled Recording Settings Sync:** Updates to bot settings now sync more reliably to already scheduled recordings.
* **Unified Recorder Settings:** Recording view and screen-share layout settings are now managed together in the shared organization settings flow.
### 🐛 Bug Fixes
* **Billing Credit Retry Fix:** Billing credits already applied to an invoice are no longer repeatedly retried for voiding, reducing avoidable billing errors.
* **Safer Stripe Billing Flows:** Billing now handles missing subscription items and missing setup details more safely, with clearer error behavior.
* **Permission Query Fix:** Custom integration object value updates now target the correct organization data, preventing cross-organization impact.
* **Desktop Update Reliability:** The desktop app no longer fails when auto-update support is unavailable.
* **Admin Session Refresh Loop Fix:** Fixed an issue that could cause the admin dashboard to get stuck refreshing employee sessions.
* **Evidence Review Edge Cases:** Evidence review now handles stale unlink attempts, race conditions, and recency tracking more reliably.
* **Analytics Error Noise Reduced:** Analytics delivery failures on shared call pages no longer surface as unhandled errors, and repeated failures now warn only once per destination.
* **Webhook and Integration Retry Reliability:** Temporary network issues are less likely to cause unnecessary integration job failures.
* **Zendesk Reauthorization Handling:** Invalid Zendesk token refresh responses now correctly prompt reauthorization instead of surfacing confusing parsing errors.
* **Typeform and Teams Retry Improvements:** Temporary request failures for Typeform and Microsoft Teams now retry more safely.
* **Missing-Call Handling:** Recording processing now stops cleanly when the related call has already been removed, avoiding unnecessary downstream failures.
* **Fathom Sync Retry Improvements:** Temporary provider-side failures during Fathom syncs are now retried more reliably.
* **Safer Media Error Logging:** Sensitive signed media URLs are no longer exposed in error logs.
* **Sentry Noise Reduction:** Several known false-positive browser and background errors are now filtered out, reducing noisy monitoring without hiding real issues.
* **Apollo Sync Cooldown Fix:** Automatic Apollo syncs now respect cooldown windows instead of retrying too quickly.
* **Zoom Reconnect Prompt:** Invalid Zoom refresh tokens now prompt users to reconnect instead of showing a generic server error.
* **Gong Cursor Recovery:** Gong imports now recover cleanly when saved cursors expire, without incorrectly marking connections as errored.
* **Notification Deletion Reliability:** Notification deletion now succeeds even if the external notification was already removed.
* **Teams Refresh Error Handling:** Known Microsoft Teams refresh failures now disconnect cleanly and notify users appropriately.
* **Unauthorized Context Usage Handling:** Unauthorized context-usage responses on call and chat pages now fail gracefully instead of creating extra console and monitoring noise.
* **Folder Loading Fix for Large Folders:** Folders with more than 100 signals now load correctly instead of failing.
* **Metadata Duplicate-Key Fix:** Metadata creation is now more reliable under concurrency and no longer fails with duplicate-key errors in common cases.
* **Snowflake Token Refresh Retry:** Temporary Snowflake refresh failures now retry once before failing.
* **Intercom Unauthorized Response Fix:** Invalid Intercom webhook signatures now correctly return **401 Unauthorized** instead of showing up as generic application errors.
* **CRM Recording Links Fixed:** Recording links on CRM person and company detail pages now open the correct call detail page.
* **CRM Pagination Fix:** CRM detail tables now default to 100 rows as intended.
* **Persona Review Error Handling:** Persona creation failures on the review step now appear in the shared wizard area with clearer inline error details.
* **Feedback Source Staleness Fix:** Feedback source data now stays in sync more reliably across app versions.
* **Migration Timestamp Fix:** Migration timestamp generation no longer causes ordering or collision problems.
* **Success Health Stale Status Fix:** Success Health no longer shows outdated disconnected states after integrations change.
* **Slack Create-Extraction Error Handling:** If there’s no active Slack bot integration, users now see a reauthorization prompt instead of an internal error.
* **Deadlock Retry for Metadata Writes:** Some metadata write deadlocks now retry automatically, improving success rates.
* **Salesforce Person Matching Fix:** Salesforce sync no longer merges unrelated people due to shared user or owner IDs.
* **Workflow Trigger Timing Fixes:** Workflow triggers now fire at the correct time, after processing finishes and signals are actually available.
* **Test Workflow Modal Fix:** Fixed the close button in the **Test Workflow** modal.
* **Slack Schema Validation Fix:** Slack workflow actions now handle stringified signal ID arrays and null call IDs correctly.
* **Slack Message Rendering Fix:** Titles containing `<`, `>`, or `&` no longer break Slack links.
* **Folder Move Safety Fixes:** Invalid folder moves are now blocked more reliably, and corrupted hierarchies no longer cause breadcrumbs or trees to hang.
* **Deepgram Error Handling Fixes:** Calls no longer get stuck in processing when Deepgram fails early, and successful callbacks are no longer misclassified as errors.
* **Automatic Gong Asset Recovery:** Gong recordings with previously failed asset transfers are now automatically retried during normal sync.
* **Feedback Widget Build Fix:** Fixed an issue that could break the feedback widget build after package moves.
* **GitHub Webhook Signature Fix:** GitHub webhook signature validation now handles byte comparisons correctly.
* **Large Merge Deploy Fix:** Deployment manifest generation no longer fails on very large merges.
* **Custom Worker Startup Fix:** Fixed a deployment startup issue where a custom worker could fail with an unknown command.
* **Expired Recording URL Handling:** Expired recording source URLs are now treated as terminal failures instead of being retried repeatedly.
* **Safer Recording URL Logs:** Signed query parameters are now redacted from recording asset URLs in logs.
* **Logout Crash Fix:** Logging out no longer crashes when no authenticated user object is present.
* **Faster Retry for Failed Jobs:** Failed integration and call-import jobs now retry sooner instead of staying hidden for too long.
* **HubSpot Sync Guardrails:** HubSpot sync now skips unusable company records more safely instead of causing downstream failures.
* **Recording Terminal-State Handling:** Expected recording timing and completion states are now treated as normal terminal outcomes instead of errors.
* **Salesforce Bulk Sync Limit Fix:** Salesforce bulk syncs now respect each query’s intended record limit instead of applying an unintended cap.
* **Deleted Call Summary Guard:** Automated call summaries no longer run for calls that were already deleted.
* **Circle Import Backfill Fix:** Circle imports now handle `backfillDate="none"` correctly by starting from the connection creation time.
* **Billing Checkout Fallback:** If Stripe.js fails to load, checkout now shows a clear **Payment Initialization Failed** message instead of crashing.
* **Duplicate Recording to Workspace Fix:** Recording duplication between workspaces is now more reliable and no longer depends on the older path that caused failures.
* **Knowledge Tree Fix:** Nested Knowledge pages now appear correctly even when ID formats differ.
* **Knowledge Cycle Cleanup:** Legacy cyclic page relationships are cleaned up automatically to restore affected pages and prevent move failures.
* **Realtime Subscription Cleanup Fix:** Shared realtime subscriptions now stay active until the last consumer unmounts, reducing duplicate refetches and missed updates.
* **Report Cache Scoping Fix:** Report history and detail views no longer show cached data from the wrong workspace after switching organizations.
* **Screen-Share Layout Default Fix:** Existing organizations now default to **Hide** for screen-share layout so participant grids don’t suddenly appear unless chosen.
* **Recorder Preference Migration Fix:** Existing recording-view preferences are preserved during settings migration.
These updates add richer dashboard insights, stronger admin and project workflows, better workflow tooling, and more reliable integrations across the product. They also fix a wide range of edge cases and reliability issues to make day-to-day usage smoother and more predictable.
**68 Commits Included**
### 🚀 New Features
* **Glue Sign-In Support:** You can now sign in to Glue-connected clients using redirects from both `app.glue.ai` and `glue.ai`, making login work across more supported Glue entry points.
* **Prototyper Access Page:** Workspaces without Prototyper access now see a dedicated page explaining the feature and offering a **Request access** button.
* **Always-Visible Prototypes Navigation:** The **Prototypes** sidebar item is now always visible, taking you either to the feature or to the access request page depending on your workspace access.
* **Recording Transfer Queue & Admin Endpoint:** Added a dedicated recording-processing pipeline and admin API endpoint for safely queueing call recording transfers from URLs.
* **Workflow Test Run History:** Workflow test runs are now saved in run history with a **TEST** badge, so you can revisit results later even after the workflow changes.
* **Rich Slack Workflow Cards:** Workflow Slack messages now support richer cards for signals, signal lists, calls, and recordings with deeper context and direct links.
* **Has Content Workflow Block:** Added a new workflow logic block that lets workflows check whether a value is empty before continuing.
* **Natural-Language Signal Filters in Workflow Chat:** The workflow chat agent can now turn plain-English requests into signal filters using the same logic as the Signals page.
* **New External Data Workflow Blocks:** Workflows can now pull in outside data using **HTTP Request**, **Exa Search**, and **Firecrawl Scrape** blocks.
* **Salesforce Remote Debugging Endpoint:** Added a secure admin endpoint for sending Salesforce requests from deployed environments, making it easier to troubleshoot environment-specific issues.
* **Signal Summary Repair Tool:** Added a backfill command that can safely regenerate existing signal summaries with support for dry runs, batching, and resumable execution.
* **Environment-Specific Postgres Backups:** Added backup support for staging and production environments with environment-specific dump locations.
* **Dedicated Extraction Regeneration API:** Extraction regeneration is now available through a dedicated REST endpoint.
### ✨ Improvements & Enhancements
* **More Reliable Person Imports:** Person imports now handle organization matching and legacy metadata more consistently, with clearer reporting on successes and per-record errors.
* **Direct Chrome Web Store Installs for Prototypes:** The **Install extension** action now opens the Chrome Web Store directly instead of requiring temporary manual install steps.
* **Less Browser-Extension Error Noise:** Error reporting now ignores a class of browser-extension-caused issues, helping surface more relevant problems.
* **More Reliable Person Metadata Linking:** Duplicate Intercom webhook deliveries now safely reuse existing links instead of causing avoidable errors.
* **Stronger Weaviate Recovery:** Large vector write failures now retry automatically in smaller chunks, improving reliability during temporary memory or transport issues.
* **Simpler Authentication Background Behavior:** Sign-in and token refresh behavior now avoid unnecessary background account updates, reducing extra churn during authentication.
* **Faster Metadata Syncing:** Large metadata syncs now complete more efficiently and are less likely to get stuck on database locks.
* **Recording Transfers Moved to a Dedicated Pipeline:** Recording asset transfers now run through a more focused processing path for better reliability across imports, assistants, and admin tools.
* **Workflow Filtering Improvements:** **Get Call Signals** now supports the same advanced filtering options as the Signals page while staying scoped to the selected call.
* **Better Workflow Editor and Run Views:** Run detail cards now appear in actual execution order, and editor cards no longer stretch awkwardly when descriptions are long.
* **Safer Workflow HTTP Requests:** Workflow HTTP requests now return structured response details even for non-success responses, making it easier to branch on failures instead of stopping the whole workflow.
* **Improved Workflow Guardrails:** Added protections for user-supplied URLs, warnings for mutating HTTP methods, and better workflow agent guidance.
* **Safer Slack Action Handling:** Unsupported Slack actions are now quietly acknowledged instead of creating noisy invalid webhook errors.
* **More Reliable Call Importing:** Call imports now complete core data first and handle slower follow-up work separately, improving stability during imports.
* **Better Integration Update Stability:** Integration refreshes and settings updates are now more reliable under load and less likely to conflict with each other.
* **Higher-Quality Signal Summaries:** Signal summaries are now generated as concise analyst-style paraphrases instead of quote-like text, while preserving exact supporting evidence separately for traceability.
* **Smaller, Faster Backup Restores:** Backup dumps now exclude high-volume telemetry and vector data by default, making restores leaner and faster.
* **Improved Extraction Regeneration:** Regeneration now works more reliably across difficult recording states while continuing to respect user permissions.
* **Healthier Report Generation:** Report generation now avoids trying to process unbounded signal volumes, improving reliability for large organizations.
### 🐛 Bug Fixes
* **Duplicate GitHub People Prevention:** Fixed cases where GitHub imports could create duplicate people for the same account.
* **More Accurate GitHub Matching:** GitHub imports now rely more on stable identity details like username and profile URL, reducing duplicates when email data is missing or inconsistent.
* **GitHub Webhook Verification:** Fixed GitHub webhook signature verification compatibility issues with the current runtime/toolchain.
* **Notion Auto-Push Retry Loops:** Missing or unshared parent pages are now treated as a configuration problem instead of a temporary sync issue, preventing endless retries and alert noise.
* **Fallback Chat Streaming for API Consumers:** Fixed fallback chat streaming so API consumers receive a valid assistant text event sequence even when the original stream fails.
* **Safer Stream Recovery:** Fixed several fallback streaming issues that could cause duplicate start events, protocol errors, or locked-stream cancellation failures.
* **Theme Loading in Safari and Restricted Browsers:** Fixed a crash in some browsers, including Safari, when theme preferences couldn’t access `localStorage`. The app now safely falls back to the default theme.
* **GitHub Sync Rate Limit Handling:** GitHub syncs now pause and resume correctly after rate limiting instead of being marked as failed, and successful syncs clear old retry/error state properly.
* **Unwanted Database Migration Removed:** Removed an unintended migration that would have created an unnecessary table.
* **Extraction Query Timeouts:** Added consistent timeout protection for extraction listing queries to prevent runaway database work.
* **Workflow Test Result Persistence:** Fixed workflow test results disappearing after closing the inline panel.
* **Historical Workflow Accuracy:** Fixed historical workflow runs sometimes rendering against the current workflow instead of the version that actually ran.
* **Workflow Metadata Filter Chips:** Fixed cases where custom metadata filters could display broken `[object Object]` chips.
* **Slack URL Button Workflow Errors:** Fixed false failure alerts and retries caused by Slack URL-only buttons.
* **Workflow Default Values Saving:** Fixed newly added workflow nodes failing to save default settings, which could trigger validation errors even when defaults looked filled in.
* **Chat Link Readability:** Fixed chat message link styling so links remain readable.
* **Worker Startup Reliability:** Fixed a startup issue that could cause the legacy worker to crash when loading workflow services.
* **Call Extraction with Bad Attendee Emails:** Fixed call metadata extraction failures caused by malformed imported attendee email addresses.
* **Database Timeout Stability:** Fixed cases where long non-database work inside transactions could trigger PostgreSQL idle-in-transaction timeout failures.
* **Concurrent Integration Update Conflicts:** Fixed cases where token refreshes and connection settings updates could overwrite each other.
* **Recording Processing Compatibility:** Fixed the recording-processing worker so jobs without a job ID are still accepted and processed.
* **Signal Summary Output:** Fixed signal summaries being written as raw customer quotes instead of readable paraphrased summaries.
* **MCP OAuth Organization Refresh:** Fixed refresh tokens losing the selected partner organization after login, so authorization continues to work correctly in offline refresh flows.
* **Concurrent Sign-In Provisioning:** Fixed rare sign-in race conditions that could cause duplicate-key conflicts or inconsistent user creation.
* **Reports Worker Stability:** Reduced report generation crashes caused by memory pressure.
These updates focus on smoother installs and workflows, better reliability across imports, syncing, and authentication, and clearer user-facing behavior when things go wrong. Overall, the release adds several new capabilities while making existing tools more dependable and easier to use.
The BuildBetter web app, Recorder, and ZeroShot each ship on their own cadence. See the [Recorder changelog](/recorder-changelog) and [ZeroShot changelog](/cli-changelog) for updates to those products.
**69 Commits Included**
### 🚀 New Features
* **Scoped Chat Context:** You can now limit chats to a specific knowledge page, making conversations more focused and relevant.
* **Chat Deletion:** Chats can now be removed without immediately losing all historical record, improving cleanup and recovery options.
* **Call Deletion Controls:** Interviews and calls now support safer deletion, including bulk delete for faster cleanup.
* **Recording Consent Message:** Organizations can now automatically send a consent message in chat when a recording bot joins a call.
* **Call Export to Notion:** You can now send call summaries, transcripts, or both to Notion, either on one page or split into separate pages.
* **Automatic Notion Export:** Calls can now be pushed to Notion automatically, with settings to control how and where content is delivered.
* **Salesforce Custom Object Sync:** Admins can now sync related Salesforce company records, such as subscriptions or licenses, for richer filtering and reporting.
* **Slack Channel Picker:** Workflow Slack steps now let you choose a connected Slack channel directly instead of setting up webhooks manually.
* **Format List Workflow Block:** Workflows now include a new block for turning lists into clean, formatted text, with flexible date formatting options.
* **Prototypes:** A new prototype experience lets you capture webpages, edit them with AI assistance, browse versions, and manage prototypes from a dedicated listing page.
* **Chrome Extension Guidance:** The app now includes in-product help for installing the Chrome extension, with the right download option for your environment.
* **Projects V2:** A new Projects experience adds project and item management with organization-level separation and structured project activity.
* **Linear Author Mapping:** You can now map Linear users to teammates for more accurate ownership and attribution.
* **AI Routing Suggestions:** Triage and project views now surface AI-powered suggestions for routing tickets, linking PRs, and spotting duplicate projects.
* **Expanded Related Search:** The “Find related” flow now supports both signals and calls, making it easier to attach the right context.
* **Invite-Only Password Setup:** Invited users can now set up passwords through a dedicated invite flow without relying on a global reset-password setting.
* **Workflow AI Chat Assistant:** The workflow editor now includes an AI assistant that can help build, edit, explain, and debug workflows in natural language.
* **Real-Time Workflow Chat:** Workflow AI help now streams responses live for a more responsive editing experience.
* **Prototype v2:** Prototypes now support starting from a blank canvas, cloning a captured page, or forking from an earlier version.
* **Prototype Editing Controls:** The prototype editor now supports click-to-select targeting, viewport switching, and a quick option to clear content while keeping the frame.
* **Build Unlock Pages:** New Build Unlock and Success Unlock pages provide launch-focused overviews and quick access to request access.
### ✨ Improvements & Enhancements
* **Safer Taxonomy Changes:** Regenerating or deleting taxonomy now includes stronger confirmations and clearer messaging to help prevent accidental changes.
* **Smarter Onboarding:** Organizations with existing taxonomy data no longer risk having it regenerated during onboarding.
* **Privacy Settings Experience:** Organization-level consent controls now load more reliably and are easier to manage.
* **Better Notion Page Selection:** Finding the right Notion page is now easier thanks to improved search ranking and a cleaner picker experience.
* **More Reliable Slack Workflows:** Slack actions now work through the connected Slack bot, with better setup guidance and automatic token refresh.
* **Better Workflow Templating:** Workflow formatting now handles arrays, large numbers, and multi-line output more cleanly.
* **Improved Prototype Editor:** The prototype experience now has clearer labels, better version navigation, improved layout stability, and richer listing details like thumbnails and source sites.
* **Safer Prototype Capture:** Captured pages now preserve styling more accurately, handle links more reliably, and better protect sensitive form values.
* **Invite and Join Experience:** Member invite, resend, and first-time setup flows have been improved for a smoother and more dependable onboarding experience.
* **More Reliable App Update Checks:** Update prompts are now shown more accurately and won’t appear when version information is unavailable or invalid.
* **Email Address Support:** Email validation now correctly accepts valid plus-address aliases like `name+tag@example.com`.
* **Better Default Bot Naming:** If a custom bot name is blank, the system now falls back to the organization name or a sensible default instead of showing an empty name.
* **People and Company Extraction Loading:** People and Companies pages now load extraction lists through dedicated endpoints for more consistent results.
* **Faster Persona Views:** Persona panel lists now return lighter responses while keeping the counts users need in the interface.
* **More Reliable Transactional Emails:** Some temporary email delivery timeouts now retry automatically instead of failing right away.
* **Automatic Linear Attribution:** Linear tickets now carry over assignee information more accurately when attached or promoted.
* **Faster Triage Updates:** Promoted Linear tickets now disappear from triage immediately without needing a refresh.
* **Better Linear Mapping UI:** The mapping screen now shows the full workspace roster, highlights unmapped users, and makes auto-mapped versus manual mappings clearer.
* **Improved Project Search and Signal Display:** Project views now do a better job showing names, badges, and direct links to related signals even when source data is incomplete.
* **Workflow Editor Usability:** The workflow editor now has automatic layout for AI-generated changes, a collapsible block palette, clearer active-editing feedback, and a recent call picker for testing.
* **Long-Session Workflow Chat Stability:** Workflow chat handles longer conversations more reliably while keeping the original request intact.
* **Prototype Branching Reliability:** Forked prototypes now start from the exact visual state of the version you selected.
* **Persistent Prototype Preferences:** The editor now remembers your viewport preference and provides clearer guidance during AI-assisted editing.
* **MCP OAuth Compatibility:** OAuth support has been expanded to allow additional Glue redirect URLs, improving partner integration setup.
### 🐛 Bug Fixes
* **Onboarding Flow Fix:** Invited and auto-joined users are no longer mistaken for workspace creators, preventing the wrong setup flow from appearing.
* **Project Decision Settings Fix:** Updating project decision weights now works correctly from the frontend.
* **Recording Consent Persistence:** Recording consent preferences now save correctly at the organization level instead of the user level.
* **Recording Consent Propagation:** Updated consent settings now correctly apply to rescheduled and upcoming bots.
* **Consent Toggle Tooltip Fix:** The consent toggle tooltip text now matches the actual setting behavior.
* **Notion Export Reliability:** Fixed issues that could cause the Notion export dialog to hang or auto-push settings to save incorrectly.
* **Notion Export Retry Handling:** Temporary Notion export failures are now retried instead of being silently dropped.
* **Call Export Edge Cases:** Exports now handle missing speaker names more gracefully and avoid problems during partial failures.
* **Slack Error Handling:** Slack channel errors now surface the real issue instead of a generic failure.
* **Prototype Auth and Save Fixes:** Fixed several prototype issues affecting extension auth, replay timing, duplicate saves, timestamp freshness, long names, and concurrent version creation.
* **Highlight Reel Accuracy:** Highlight reels now only count clips that are actually playable, avoiding misleading counts or empty reel claims.
* **Transcript Ordering Fix:** Transcript chunks now appear in the correct order.
* **Invite and Join Bug Fixes:** Explicitly invited users no longer see incorrect “Join” prompts, duplicate invite emails are prevented, and verification works more reliably.
* **Web Update Check Fix:** The app now safely handles missing or invalid version responses without crashing update checks.
* **Zendesk and Salesforce Reauthorization:** Expired or invalid Zendesk and Salesforce connections are now correctly marked as needing reauthorization instead of failing with unclear errors.
* **Concurrent Metadata Creation Fix:** Duplicate records created at the same time are now handled more gracefully instead of causing failures.
* **Intercom Resilience:** Temporary Intercom outages no longer crash processing.
* **Email Retry Fix:** Temporary recipient timeouts no longer block the rest of an email batch.
* **Signal Display Fixes:** Project and signal views now correctly show customer/internal badges and more complete person and company information.
* **Invite Link Fixes:** Invite emails now send the correct destination for new versus existing users, use the right domain, and avoid the wrong email template.
* **Call Attendee Import Fix:** Invalid extracted email values no longer cause errors when creating attendee records.
* **Salesforce Email Matching Fix:** Email-to-Case matching now uses the actual sender email more accurately, reducing incorrect thread attribution.
* **Prototype Navigation Fixes:** Forked and loaded prototypes now open with the correct version and conversation state, and captured pages no longer navigate away unexpectedly inside the editor.
* **MCP OAuth Redirect Fix:** Valid Glue redirect URLs are now accepted correctly.
* **GitHub Person Deduplication:** GitHub imports now do a better job preventing duplicate people records and keeping merges within the correct organization.
These updates add several major user-facing capabilities, especially around Notion exports, workflows, prototypes, and projects. They also improve reliability across onboarding, integrations, exports, and invite flows so day-to-day work is smoother and more predictable.
**103 Commits Included**
### 🚀 New Features
* **Calendar Event Management API:** Calendar recording controls, permissions, recurrence settings, bot join times, and recording rule management now run through a newer backend API, improving reliability and consistency across the app.
* **Runtime Calendar Job Controls:** Specific calendar worker job types can now be paused immediately without restarting the service, making incident response and maintenance safer.
* **Project Manager Evidence Page:** Added a new admin page for reviewing evidence evaluation results and generated issue summaries.
* **Organization Topic Notification Settings:** Added support for high-priority and stale-topic notification settings so these options are now properly recognized and available.
* **Circle Comment Refresh Window:** Circle imports now include a setting to recheck recently imported posts for new comments, with configurable time windows.
* **Billing-Aware Import Limits:** Imports across many integrations now stop or automatically scale back when an organization reaches its usage limits, helping prevent overages.
* **Calls List URL State:** The Calls list now keeps your selected tab and filters in the URL, so returning from call details restores your previous view and browser navigation works more naturally.
* **AI Chat Message Collapse:** Long messages in AI chat can now be expanded or collapsed with Show more / Show less controls for easier reading.
* **AI Chat Signal Creation:** In quick mode, AI chat can now create manual signals directly from transcript selections and show the results as clickable cards.
* **Tracked Items:** Added a new tracked-items workflow with automatic routing, triage, manual creation, merge/correction flows, promotion to projects, and related Linear/GitHub linking.
* **Chat Deletion:** You can now delete chat threads directly from the AI chat sidebar.
* **Editable User Roles:** Admins can now change a user’s role directly from the admin user detail page.
### ✨ Improvements & Enhancements
* **Simpler Recording Rule Management:** Recording rule changes are now handled more fully by the backend, reducing multi-step issues and making settings updates more dependable.
* **Safer Manual Recording Overrides:** Manually enabled bots or recording settings are now preserved when recording rules are re-evaluated, so your explicit choices are less likely to be undone.
* **Clearer Calendar APIs:** Calendar event actions now use more consistent API behavior and documentation, improving reliability in the web app.
* **More Reliable Circle Syncing:** Circle imports now use smarter fetching strategies for large backfills and smaller incremental syncs, reducing unnecessary API usage while keeping comments up to date.
* **Faster, More Efficient Circle Imports:** Circle syncing now avoids refreshing comments when counts have not changed and skips unnecessary work on older posts.
* **Improved Billing Limit Handling:** Import flows now handle partial limits more gracefully, with clearer behavior when only some records can be processed.
* **More Reliable Salesforce Syncing:** Salesforce imports now better track progress over time, improving incremental sync accuracy.
* **Scoped Extraction Search:** Extraction search results are now limited to your organization, helping keep results relevant and separated correctly.
* **Smarter Empty Search Handling:** Blank extraction searches no longer run unnecessary queries.
* **Retired Legacy AI Chat Experience:** Older thread-based AI chat flows and outdated related surfaces have been removed so the product consistently uses the current chat experience.
* **Refined Recordings UI:** The v4 Recordings experience now has more consistent layout, spacing, typography, pagination, and column controls.
* **Better Chat Header Behavior:** Embedded and shared chat views now render controls more appropriately across different contexts.
* **Improved Chat Deletion Experience:** Chat deletion now includes confirmation, loading feedback, cleanup, and faster UI updates.
* **Hidden Deleted Chats:** Soft-deleted chats are now consistently hidden from chat lists and global search.
* **Better Role Setting Visibility:** Admin pages now show clearer badges and status indicators for organization role settings.
* **More Reliable Role Tooltips:** Role-setting tooltips in admin now behave more consistently on hover and focus.
* **Integration Labels Updated:** Several mature integrations are no longer marked as beta and are now shown as live.
### 🐛 Bug Fixes
* **Recording Rule Permissions:** Creating and deleting calendar event recording rules is now restricted to organization admins, while members can still view rules.
* **Recording Rule Toggle Restored:** Fixed a regression where the organization recording rule toggle was missing from Settings.
* **Recording Rule Status Banner:** Fixed the organization recording rule banner so it only appears while processing is actually happening.
* **Recurring Meeting Recording Fixes:** Fixed several issues with recurring calendar events so deleted recurrence rules can be restored correctly, matching is more accurate, and settings inherit from the right earlier events.
* **Cross-Calendar Sync Protection:** Fixed recurring meeting syncs so existing user permission settings are no longer incorrectly overwritten across multiple calendars.
* **Reschedule Detection:** Updated calendar handling so rescheduled events are no longer treated like brand-new events.
* **Bot Scheduling Reliability:** Improved bot scheduling retries when image issues occur, reduced duplicate active bots, and prevented calendar events from being linked before scheduling actually succeeds.
* **Organizer Detection Accuracy:** Fixed organizer detection for Google and Microsoft calendars when aliases are used, improving recording behavior.
* **Worker Config Stability:** Fixed runtime config handling so unrelated changes no longer accidentally update or clear ignored calendar job types.
* **Circle Comment Import Fixes:** Fixed cases where Circle posts could be imported without comments, where refreshes ran unnecessarily, and where temporary comment failures could block or weaken sync behavior.
* **Circle API Reliability:** Fixed Circle API URL and member lookup behavior so requests succeed more consistently.
* **Import Cursor and Retry Fixes:** Fixed multiple cases across integrations like Front, GitHub, HubSpot, Zendesk, Unthread, Pylon, Intercom, Kustomer, Salesforce, and Circle where billing-limited or interrupted imports could skip records or advance progress too early.
* **Imported Conversation Billing:** Fixed missing billing records for imported conversations from integrations such as Salesforce, HubSpot, GitHub, Zendesk, and Unthread.
* **Integration Provider API Error:** Fixed an API response issue that could break loading integration provider settings for providers like Salesforce.
* **Onboarding Search Fallbacks:** Fixed onboarding search setup so Exa is used correctly when configured, and Tavily is used more cleanly as a fallback.
* **Calls and Search Stability:** Reverted an interview search change that did not improve performance and restored previous behavior.
* **AI Chat Layout Fixes:** Fixed layout and spacing issues in V3 call tabs and improved sticky prompt behavior when expanding long messages.
* **Signal Creation Accuracy:** Fixed signal creation to support speaker tag `0`, validate speaker tags correctly, preserve successful items during partial failures, and return clearer errors when no transcript is available.
* **Deleted Chat Safety:** Fixed cases where deleted chats could still receive updates, improved race-condition handling, and now return proper 404 responses when a chat has been removed.
* **Untitled Chat Naming:** Untitled chats now display as “Untitled” instead of generic fallback names.
These updates focus on making calendar controls, imports, admin settings, and AI chat more reliable and easier to use. Overall, users should see fewer skipped records, clearer settings behavior, and smoother workflows across chat, recordings, and integrations.
**236 Commits Included**
### 🚀 New Features
* **Synthetic Personas:** Refreshed the Synthetic Personas experience with clearer flows, stronger onboarding, and better review/results screens so teams can spin up and evaluate personas faster.
* **Dialpad Integration:** Added a new Dialpad integration with API key setup, optional auto-imports, and historical backfill support.
* **Momentum Integration:** Added a new Momentum integration for importing recordings into Recordings, including retroactive import support.
* **Salesforce Case Reason Filter:** Teams can now limit Salesforce case imports to selected case reasons.
* **Floating Chat in Recordings:** Added a floating chat bar to the v4 recordings experience with recording-specific chat, history, and follow-up suggestions.
* **Recordings Layout Toggle:** Added a layout switch for recordings so users can choose between classic and new layouts.
* **Transcript Selection Toolbar:** Selecting transcript text now shows quick actions to copy it or create a new signal.
* **Single-Block Speaker Reassignment:** Reassign just one transcript section to a different speaker without changing every section for that speaker.
* **Internal Recording Domains:** Admins can now define internal recording domains to better classify meetings as internal or external.
* **Email-First SSO Login:** Added a new login flow that routes users to the right sign-in method based on their work email, including SAML support.
* **Ranked Company Search:** Calls now support better company search by name or domain.
* **Personas Access Page:** Users without Personas access now see a dedicated unlock/request-access page instead of being redirected away.
* **Free Plan Expansion:** Increased the free plan allowance from 1,200 to 10,000 credits.
* **Topics (Early Access):** Introduced a new Topics experience for tracking recurring customer issues, requests, and conversations in one place — including a dedicated workspace, detail pages with evidence and linked tickets, AI-powered classification and naming, two-stage semantic + AI matching, automatic lifecycle states (active, stale, reactivated, resolved), in-app alerts, search/sort, manual create/move/split actions, Slack and Intercom as topic sources, live Slack ingestion with backfill, channel purpose context, and real participant names on conversations.
* **Linear Evidence Tracker (Early Access):** Tracked Linear issues can now receive evidence-backed comments that update as new customer signals appear.
### ✨ Improvements & Enhancements
**Integrations**
* **Slack Backfills:** Slack backfills now cover more conversation types, including non-threaded and single-message imports by default, for broader coverage.
* **Slack Channel Gating:** Only Slack channels explicitly set to track topics will be processed, giving teams more control.
* **Slack Message Edits:** Edited Slack messages now refresh stored conversation text so downstream content stays current.
* **Slack Source Context:** Evidence now includes clearer source details like channel names and platform labels.
* **Slack Connect Confirmation:** Connection confirmations are now shown only to the person taking the action, reducing channel noise.
* **Linear Evidence Quality:** Evidence retrieval and comment generation for tracked Linear issues is now more relevant and reliable.
* **Notion Search Relevance:** Notion page search now returns more relevant results for non-empty searches.
**Recordings**
* **Better Recordings Experience:** The v4 recordings experience now has clearer navigation, improved status states, and better desktop/mobile layouts.
* **Document/Notes Experience:** The recording detail experience was refreshed, including renaming Documents to Notes and improving layout/editing behavior.
* **Improved Mobile Recordings:** Browsing recordings on mobile is now cleaner, with more compact actions and layout updates.
* **Transcript Tab Rename:** The Timeline tab is now labeled Transcript for clarity.
* **Playback Controls:** Playback speed is now capped at 2x, and autoplay controls are limited to the Transcript view.
* **Long Transcript Chat Support:** AI chat can now work through long transcripts in multiple chunks instead of cutting off early.
* **Call Recorder Settings:** Admin settings for recording classification and internal domains are now clearer and easier to manage.
**Feedback & Widget**
* **Feedback Widget:** The feedback widget is now more integrated, easier to use, and better optimized for signed-in users and mobile layouts.
* **Widget Builder Refresh:** The feedback widget builder now has clearer controls, labels, and embed code presentation.
**Elsewhere**
* **Onboarding Experience:** Onboarding is now more guided, outcome-focused, and better at preparing workspaces in the background.
* **Signals Simplification:** Removed outdated dataset and saved-search experiences so Signals is more focused on supported workflows.
**Topics (Early Access)**
* **Intercom-First Rollout:** The initial Topics experience focuses on Intercom conversations first, with an emphasis on open conversations that still need attention.
* **Better Matching & Dedup:** Topic grouping is more accurate across channels, customers, languages, and differently worded reports, with smarter deduplication using summaries and richer context.
* **Improved Splitting & Low-Signal Filtering:** AI better separates multi-subject conversations and is less likely to create topics from greetings or low-value messages.
* **More Reliable Re-ingestion:** Reprocessing preserves existing topic relationships while refreshing metadata, classifications, and counts.
* **Richer Detail Pages:** Topic pages now include richer evidence with snippets, timestamps, and speaker labels; clearer participant-named summaries; paginated long conversations; and more accurate priority updates over time.
* **Cleaner UI & Settings:** Counts refresh immediately after moves/splits, empty topics are cleaned up automatically, organizations can configure stale thresholds and alerts in-app, notifications were streamlined, and Topics is now in the main navigation.
### 🐛 Bug Fixes
**Auth & Login**
* **Login Flow Reliability:** Fixed several SSO and password-login issues so sign-in works more consistently across email-first and SAML flows.
* **Admin-Only Domain Management:** Fixed domain management so only admins can add or remove invite and recording domains.
**Integrations**
* **Slack Multi-Org Handling:** Fixed Slack processing in shared channels so messages and edits are handled correctly for every connected organization.
* **Slack Deduplication & Recovery:** Fixed duplicate creation from repeated Slack imports, retries, or polling, and improved recovery after rate limits so imports resume correctly.
* **Slack Edit Reprocessing:** Edited Slack replies now reprocess correctly so downstream classification stays current.
* **Slack Backfill Grouping:** Slack backfills no longer split related closed conversations into duplicates.
* **Slack Buffer Flushing:** Fixed worker issues that could stop buffered Slack messages from flushing correctly.
* **Intercom Event Handling:** Fixed Intercom event handling so new conversations and replies are ingested more reliably.
* **Dialpad Sync Reliability:** Fixed several Dialpad import and retry issues affecting large syncs and continued imports.
* **Momentum Import Reliability:** Fixed Momentum import edge cases around downloads, transcripts, duplicate meetings, and auth/rate-limit handling.
* **Linear Tracking Reliability:** Fixed duplicate or incorrect evidence updates for tracked Linear issues.
**Recordings**
* **Video Playback:** Fixed timestamp-linked playback so the real player loads instead of getting stuck in preview mode.
* **Recording Creation:** Fixed manual recording creation so new recordings always get a default name and timestamp.
* **Recording Actions:** Fixed cases where clicking actions on an active recording could accidentally open the recording.
* **Recording Policy Settings:** Fixed recording policy toggles and domain settings so failed saves no longer leave the UI looking out of sync.
* **Workspace Domain Caching:** Fixed recording-domain settings showing the wrong data after switching workspaces.
* **Transcript Selection & Speaker Updates:** Fixed stale transcript selection and speaker labels so the UI updates correctly after actions.
**UI & Misc**
* **Floating Chat Recovery:** Fixed issues where in-progress chat replies or history could be lost after refresh.
* **Feedback Widget Submission:** Fixed the feedback widget so it closes properly after submit and behaves more consistently in embedded layouts.
* **Company Search Reliability:** Fixed company search issues where valid domain matches could be missed.
* **Favorites Stability:** Fixed crashes and incorrect favorite behavior caused by old dataset-related records.
* **Electron Navigation:** Fixed highlight reel links so they open correctly inside the desktop app.
**Topics (Early Access)**
* **Permissions & Cross-Tenant Safety:** Fixed issues that could allow topic access, message viewing, or manual splits across the wrong organization.
* **Lifecycle Accuracy:** Fixed several cases where topics could become stale, active, or resolved at the wrong time, including awaiting-response detection and multi-conversation resolution.
* **Matching to Closed Topics:** New evidence no longer attaches to resolved or stale topics when it shouldn’t.
* **Reconciliation & Counts:** Fixed cases where reprocessing could create duplicate groups or leave stale counts, and corrected inflated message/participant totals and activity timestamps.
* **Detail Loading:** Fixed topic detail routing and ID handling issues that could cause failed loads or incorrect “not found” behavior.
* **Manual Move/Split Reliability:** Moving or splitting topic groups is more reliable and won’t leave groups temporarily detached if something fails.
* **Worker & Alert Stability:** Fixed startup issues that could prevent background topic jobs from running and stale-topic alerts from being sent.
* **Slack Topic Settings Validation:** Fixed Slack topic-tracking settings so updates like channel purpose save correctly.
This release brings Synthetic Personas to a much stronger polish, adds Dialpad and Momentum integrations, and improves recordings, login, Slack, and Linear reliability across the product — with Topics and the Linear Evidence Tracker rolling out in early access.
**110 Commits Included**
### 🚀 New Features
* **Floating Chat on Recordings:** You can now ask questions about a recording directly from the v4 recordings page with a built-in floating chat experience.
* **Recordings Layout Toggle:** Added a per-user toggle to switch between classic and v4 recordings layouts from recordings list and detail pages.
* **Signals Detail Enhancements:** Signals v2 detail panels now support Product Area tagging, Cycle linking, Created by display, and direct add/remove actions for Product Areas and Cycles.
* **Direct Feedback Link in Slack:** After using /bb feedback in Slack, you'll now see a View in BuildBetter link so you can jump straight to the submitted feedback and related insights.
* **Richer Support Context:** Support chats now automatically include helpful details like your organization name, plan, organization ID, and current page so support can assist you faster.
* **MCP Access Improvements:** MCP now supports access from the root URL as well as `/mcp`.
* **Billing API Upgrade:** Billing actions like plan changes, billing portal access, usage checks, and webhook handling now run through a newer API foundation for a more reliable billing experience.
* **Cluster Precompute Controls:** Added runtime controls for similarity precompute jobs, including adjustable batch sizes and a pause switch for new runs.
* **Weekly Weaviate Backups:** Added automated weekly backups for vector search data, with support for restoring the latest staging or production backup into local environments.
### ✨ Improvements & Enhancements
* **Free Plan Expansion:** The Free plan now includes 10,000 credits, up from 1,200.
* **Interview Search Performance:** Interview search is much faster, with some searches dropping from minutes to milliseconds.
* **Short Search Term Support:** Very short searches now return more accurate results again.
* **Recordings Page Refresh:** The Recordings experience has been polished with a cleaner layout, improved Overview and Notes organization, smoother editing, and better mobile behavior.
* **Improved Table Navigation:** Updated table footers and pagination controls for a cleaner, more consistent browsing experience.
* **Signals Insights Panel Polish:** Improved scrolling, layout stability, chart sizing, and hover behavior in the Signals v4 insights panel.
* **Signals Title Syncing:** Signals titles now stay more consistent between list, card, and detail views, with better fallback behavior.
* **Better Product Area Search:** Product Area names and nested matching now behave more consistently in signals search.
* **Company Display in Signals:** Feedback-only signals now show company information more reliably, even when no person record is attached.
* **Better Avatar Fallbacks:** Avatar placeholders now flash less and use more consistent fallback colors.
* **Keyword Quality Improvements:** AI-generated keywords are now shorter, clearer, and more useful for filtering and scanning themes.
* **Widget Builder Polish:** The feedback widget builder now has a more consistent editing experience, easier-to-find embed code, and cleaner controls.
* **Notion Search Ranking:** Notion search now ranks relevant title matches more intelligently for better results on non-empty searches.
* **Feature-Flagged UI Cleanup:** The app now more consistently hides call recording, join-call, and calendar-related UI when those features are disabled for your account.
* **Cleaner Summary Emails:** Summary-ready email recipients are now selected more accurately, with fewer duplicates.
* **Safer Concurrent Processing:** Several background flows now handle simultaneous duplicate events more gracefully, improving reliability during heavy activity.
* **More Consistent Call Permissions:** Related call data like attendees, summaries, tags, and transcripts now follow the same access rules as the parent call.
* **AI Workflow Reliability:** AI-based workflow condition checks now return more consistent true/false results across workflow types.
* **Recording API Reliability:** Read-only recording service requests now retry automatically when temporary network or service issues occur.
* **Productboard Sync Deduplication:** Productboard sync now avoids re-importing notes that were already brought in previously.
* **Productboard Compatibility:** Productboard sync is now more resilient to newly introduced note types.
* **HubSpot Contact Sync Accuracy:** Incremental HubSpot contact syncs now use a more reliable update timestamp, helping prevent missed updates.
* **Salesforce Sync Reliability:** Salesforce custom object syncs now save progress more consistently and handle duplicates, empty results, and malformed cursors more safely.
* **Metadata Type Accuracy:** CRM metadata sync now preserves numeric and boolean field types more accurately instead of flattening everything to text.
* **Unthread Reauthentication Handling:** If an Unthread connection expires, it's now marked as needing reauthentication instead of failing noisily in the background.
* **Gong Empty Sync Handling:** Syncs with no calls found are now treated as successful, reducing noise and avoiding unnecessary follow-up work.
* **Partner OAuth Flexibility:** Approved partner integrations now support wildcard redirect URLs.
* **Cluster Precompute Stability:** Similarity precompute jobs now handle memory pressure better, use smaller batches, and recover more safely when work is interrupted.
* **Weaviate Memory Optimization:** Vector storage now uses more efficient compression by default, reducing memory pressure and improving reliability.
### 🐛 Bug Fixes
* **SSO Login Flow:** Fixed issues with email-first SSO and password fallback behavior, then restored the last known working sign-in flow.
* **Transcript Rendering Stability:** Fixed a transcript issue that could cause blank rows or crashes during fast scrolling.
* **Floating Chat Context Issues:** Fixed several chat issues in recordings, including wrong chat restoration, stale context when switching recordings, and draft creation races.
* **Floating Chat Visibility:** Fixed cases where floating chat could appear when it shouldn't, including some mobile and feature-restricted views.
* **Call Video Playback Reset:** Fixed an issue where switching between chats with timestamped links could reset video playback.
* **Clipboard Reliability:** Copy actions now fail more gracefully when the browser tab is unfocused and report success or failure more accurately.
* **Pagination Accessibility:** Restored screen-reader labels for previous/next pagination buttons.
* **Duplicate Interview Search Results:** Fixed cases where the same interview could appear multiple times in search results.
* **React Render Issue in Signals:** Fixed a state update issue in Signals v4 that could trigger updates at the wrong time.
* **Notion Title Extraction:** Fixed title detection for Notion pages with different title property names.
* **Slack Workspace Connection Errors:** Connecting a Slack workspace now shows clearer error messages and returns you to the integrations page if something goes wrong.
* **Faster, Smoother Login Updates:** Login and profile updates now avoid unnecessary permission recalculations, reducing slowdowns.
* **Duplicate Match Explanations:** Fixed AI reasoning so it adds to existing duplicate context instead of replacing it.
* **AI Verification Fallback:** Fixed transient AI verification failures from wiping out duplicate candidates that should still be reviewed manually.
* **Duplicate Matching Reruns:** Prevented reruns from recreating duplicate candidate pairs that were already reviewed.
* **Recording Bot Duplicate Handling:** Fixed an issue where duplicate webhook events arriving at the same time could cause recording failures.
* **Large Survey Processing:** Very large survey responses now process successfully by being split into smaller chunks automatically.
* **Cleaner Error Reporting:** Reduced duplicate and unnecessary error reporting in the web app so only meaningful issues are captured.
* **Malformed Text Protection:** Fixed failures caused by invalid Unicode characters in AI tagging and prompt generation flows.
* **HubSpot Meeting Export Validation:** Invalid meeting time ranges are now skipped safely instead of causing sync failures.
* **Changelog Notification Resilience:** Temporary feed fetch failures no longer cause changelog notification errors or false states.
* **Extraction Permission Checks:** Fixed extraction creation so access is validated correctly against the original related item.
* **Safer Write Request Retries:** Prevented automatic retries for unsafe recording service write actions, reducing the risk of duplicate actions.
* **Metadata Save Safety:** Background metadata updates no longer fail if the related call has already been deleted.
* **Metadata Tag Deadlock:** Fixed a database deadlock that could occur when auto-attaching metadata tags to interviews.
* **Completed Recording Bot Updates:** Prevented unnecessary errors when trying to update recording bots that were already finished or shutting down.
* **Scheduled Job Recovery:** Fixed scheduled jobs that could fail to enqueue background work correctly.
* **Duplicate Similarity Work:** Fixed duplicate background chunk creation during similarity precompute recovery.
* **Worker Startup Stability:** Fixed a worker startup memory issue that could cause crash loops.
These updates focus on making the product faster, more reliable, and easier to use across search, recordings, billing, integrations, and review workflows. You should see smoother day-to-day behavior, fewer confusing errors, and better handling of large or edge-case workloads.
**77 Commits Included**
### 🚀 New Features
* **(BETA) New Collections Experience:** A redesigned Collections area is now available, with updated list and detail pages, mobile-friendly card views, and support for creating collections, organizing sub-collections, uploading recordings, and using quick actions like favorite and copy link.
* **(BETA) Smarter Collection Navigation:** You can now browse collections more easily with tabs for All Collections and My Collections, plus search, pagination, and separate tabs for recordings, signals, documents, and sub-collections inside each collection.
* **(BETA) Collection Permissions & Ownership:** New permission controls make it easier to manage who can access collections, and restricted collections now clearly show who owns them.
* **AI Chat Everywhere:** AI Chat is now more consistent across the app, including the main chat page and chats embedded in calls, folders, documents, custom objects, and floating chat.
* **Transcript-Aware AI Chat:** Call-based chats can now use full call transcripts, making it easier to ask for summaries, decisions, action items, and specific things that were said.
* **Chat History & Response Controls:** Contextual chats now keep their own conversation history, and you can stop an AI response while it’s still generating.
* **Instant Insight Cards:** Dashboards now include instant insight cards, and older saved dashboards are automatically updated to include these default widgets.
* **(BETA) Cluster Explorer:** A new Cluster Explorer page lets you search, filter, sort, and explore clusters in more detail, including related signals and trend views.
* **(BETA) Trend Analysis for Clusters:** Cluster details now include trend indicators and activity charts so you can better spot rising and falling topics.
### ✨ Improvements & Enhancements
* **(BETA) Better Mobile Collections:** Collections and folders now work better on mobile, with cleaner layouts, improved action placement, scrollable tabs, and more readable card-based item views.
* **(BETA) Cleaner Tables & Toolbars:** Tables and toolbars in the new collections experience are easier to use, with better spacing, clearer column controls, and improved dropdown behavior.
* **(BETA) Clearer Collection Items:** Collection rows now have better thumbnails, icons, and avatar fallbacks, making it easier to identify items at a glance.
* **Faster Clustering Performance:** Clustering has been improved to handle larger workloads more smoothly and reliably, helping results stay responsive even for heavier processing.
* **Faster Extraction & Search Performance:** Several extraction and search flows have been optimized, including much faster call search and quicker access to person-related extraction data.
* **Scoped AI Chat Context:** Chats started from calls, folders, and documents now stay focused more reliably on the relevant content, so follow-up questions keep the right context.
* **Persistent AI Chat Links:** New chats started from the main AI Chat page now get their own shareable, refresh-safe URLs.
* **Better Signal Navigation from Chat:** Signal cards and chart interactions in chat now link more cleanly into filtered signal views while preserving chat context.
* **Improved Recorder Experience:** The recording flow has been simplified with a single Open BB Recorder option and a more polished download modal that behaves better across screen sizes.
* **Better Slack Disconnect Experience:** Disconnecting Slack is now smoother, with clearer in-progress states and faster refresh of workspace status afterward.
* **Email-First SSO Sign-In:** Sign-in now better detects whether your organization uses SSO and guides you to the right login method, while still offering email/password when available.
* **Faster Dashboard & Cluster Loading:** Dashboard cluster results now load more progressively, with better loading states, clearer naming, and support for showing more results as they become available.
* **(BETA) Dashboards Naming Update:** The Clustering experience has been renamed to Dashboards for clearer terminology, and old links continue to redirect automatically.
* **Improved Signals Experience:** Signals now have a more consistent layout across calls, conversations, feedback, and surveys, with better mobile behavior and a unified Timeline view for call details.
* **(BETA) Improved Call Privacy & Company Display:** Private calls are now labeled more clearly, and call lists show a more complete set of associated companies.
* **Better CSV Upload & Mapping:** CSV imports now handle limited credits more gracefully, provide clearer guidance, and improve column mapping by reducing temporary validation noise while AI mapping is in progress.
* **(BETA) Improved People & Companies Search:** Search in v4 People and Companies is now more responsive, with better pagination behavior and less UI flashing while results refresh.
* **Larger Clustering Capacity:** Clustering can now process significantly more input data in supported flows, helping with larger analysis jobs.
* **Simpler MCP Connection Setup:** Connecting to MCP is now easier with a simplified default endpoint and backward-compatible support for older paths.
* **More Powerful QuickAgent Research:** QuickAgent can now handle longer, more complex research tasks with a much larger step and reasoning budget.
* **Smarter Intelligent Reports Processing:** Intelligent Reports have been improved for better scalability, scheduling, and permission handling.
### 🐛 Bug Fixes
* **More Reliable Collection Deletion:** Deleting collections now waits until the deletion is actually complete before showing success, so items no longer briefly disappear and reappear.
* **Correct Collection Delete Errors:** If you don’t have permission to delete a collection, the app now shows the correct ownership-related error instead of a false success message.
* **Consistent Collection Removal in the UI:** Deleted collections now disappear from the interface immediately and more reliably.
* **Safer Collection Admin Rules:** Collection deletion safeguards have been improved to prevent issues like orphaned subfolders and to restore proper admin delete access.
* **Signals Filter Stability:** Active filter chips in Signals no longer break when some filter details are missing.
* **Reliable Call Deletion Updates:** Deleted calls now disappear correctly from the UI even when the server response is missing expected details.
* **AI Chat Context Fixes:** Follow-up AI chat messages now keep the correct context more reliably instead of drifting into broader or unrelated results.
* **Safer Error Handling in the Web App:** Certain app errors that previously caused crashes are now handled more gracefully, with users redirected safely or kept in flow instead of hitting a broken screen.
* **Calendar OAuth Stability:** Calendar connection flows now handle missing or invalid callback state safely and redirect users back to Integrations instead of crashing.
* **Slack Disconnect Race Fixes:** Slack disconnect and uninstall flows now handle overlapping actions more safely, preventing duplicate cleanup issues.
* **Call Tab Navigation Fixes:** Deep links and timestamped links on call pages now open the correct tab more reliably, and manual tab switching no longer gets stuck.
* **Cluster Dashboard Accuracy Fixes:** Cluster cards, charts, summaries, and drill-down actions now stay aligned with the correct clusters after loading or filtering.
* **Improved Cluster Loading States:** Cluster pages now show more accurate progress and no longer get stuck when descriptions or results finish in edge cases.
* **Readable Cluster Fallback Names:** Clusters without generated descriptions now show meaningful topic-based names instead of “Untitled Cluster.”
* **Safer Clustering Requests:** Oversized cluster requests are now capped more safely to avoid failures and improve stability.
* **Workflow AI Compatibility Fix:** AI-powered workflow automations were updated to work correctly after model changes, restoring affected automation checks and generated responses.
* **Admin API Settings Fixes:** Saved API keys now display correctly on the Admin API/MCP settings page, and the documentation link there has been corrected.
* **Feature Search Fixes in CRM Views:** CRM search in v4 People and Companies now searches the full dataset instead of only the rows currently loaded.
* **Search Empty-State Fixes:** Search results now show a clearer “No results found” message instead of incorrectly showing a full empty state.
* **Avatar Rendering Fixes:** Avatar flicker and inconsistent fallback styling have been fixed.
* **CSV Mapping Error Fix:** A loading spinner/type error during AI-assisted CSV column analysis has been resolved.
* **Credit Handling Fix:** Credit balance processing now ignores unrelated Stripe events, preventing false “credit grant not found” errors.
* **Apollo Retry Improvements:** Apollo syncs now respect provider cooldown periods more accurately, reducing repeated retries and improving reliability during rate limits.
* **Metadata Import Deduplication Fixes:** Metadata and Productboard imports now avoid incorrect reuse or duplicate creation in edge cases.
These updates bring a more polished Collections and Dashboards experience, stronger AI Chat behavior, and a wide range of reliability fixes across search, imports, integrations, and navigation. Overall, the app should feel faster, clearer, and more dependable in everyday use.
**65 Commits Included**
## BuildBetter Release – March 2026 🚀
### 🚀 New Features
* **Front Integration Beta:** The Front integration is now available in beta for more early-access users, with support for syncing conversations, people, and companies.
* **Taxonomy Explorer Search (Requestable Beta):** You can now search within the Taxonomy Explorer, with matching results highlighted, relevant branches expanded automatically, and a clear "No matches" state when nothing is found.
* **Embeddable Feedback Widget (Requestable Beta):** Added a new feedback widget you can embed on your site, with multiple display styles, customizable fields and themes, optional user identification, and an easier setup flow through the new Widget Builder.
* **Report Builder (Requestable Beta):** Builder now supports creating reports in addition to views, so you can build email and Slack reports in the same workflow.
* **Email Report Authoring (Requestable Beta):** You can now write, preview, and test email reports directly in Builder, with AI-assisted drafting and automatic title suggestions.
* **Scheduled Report Delivery (Requestable Beta):** Reports can now be sent automatically on a recurring schedule to email recipients or Slack channels, with delivery history included.
* **Salesforce Custom Object Sync:** BuildBetter can now sync feedback from Salesforce custom objects, with flexible field mapping for content, metadata, people, and companies.
* **Apollo Conversations Integration:** Added Apollo Conversations as a new call recording integration, allowing teams to connect Apollo and automatically import recordings and transcripts.
* **Apollo Transcript Import:** Apollo imports now include direct transcript support with word-level detail for richer conversation context.
* **Apollo Import Controls:** Added a new Apollo import history window option, including "Don't import" for teams that only want future calls.
* **Retroactive Import Confirmation:** When expanding the import window on supported integrations, you'll now be asked to confirm larger backfills before they begin.
* **SSO-First MCP Sign-In:** MCP sign-in now supports an SSO-first experience, letting users choose between SSO and email/password login.
* **Automatic SSO Routing:** Entering a work email in MCP can now automatically route users to the correct identity provider for a smoother enterprise login experience.
### ✨ Improvements & Enhancements
* **Faster Search Performance:** Search is now more reliable and responsive, especially for short queries, heavily filtered searches, and semantic search results.
* **Faster Permissions Updates:** Permission refreshes for interviews, extractions, and related content now run much faster, helping access changes take effect more quickly.
* **Improved Call Transcript Imports:** Transcript imports now process more efficiently, improving performance on larger call data sets.
* **Better Company Labels:** Company selectors across the app and Slack now show clearer, more consistent labels with extra metadata to help distinguish similar companies.
* **Widget Builder Workflow Improvements:** Managing widgets is now more streamlined, with better browser support, safer previews, and clearer setup guidance.
* **Faster Extraction Access Checks:** Extraction-related queries and visibility checks are now significantly faster, improving responsiveness across many pages and actions.
* **Safer and More Reliable Report Delivery:** Report rendering and scheduled delivery are now more secure and dependable, reducing the chance of missed or duplicate sends.
* **Better Builder Editing Performance:** Builder now feels smoother during AI-assisted generation and previewing, with fewer unnecessary refreshes and clearer error handling.
* **Snowflake Company Import Standardization:** Snowflake company imports now use a single, clearer lookup-key setup, making identity matching more consistent and reducing confusion during configuration.
* **Salesforce Sync Improvements:** Salesforce feedback sync now better handles company creation, person-to-company linking, settings validation, and import controls for smoother setup and imports.
* **Improved Slack Call Matching:** Slack call matching now does a better job recognizing relevant calls from broader keyword and topic inputs.
* **MCP Reliability Improvements:** MCP tools now have stronger validation, more consistent access handling, better lookup behavior, and more stable responses.
* **Suggested Chat Questions Reliability:** Suggested chat questions now handle incomplete or malformed AI responses more gracefully.
* **Apollo Sync Improvements:** Apollo imports now have more accurate participant matching, better manual sync behavior, and stronger handling of incomplete or inconsistent source data.
* **Smoother Enterprise Login Flow:** The MCP login experience now guides work-email users more clearly toward the right sign-in method based on their organization's setup.
### 🐛 Bug Fixes
* **Webex Connection Status:** Fixed an issue where Webex integrations could appear connected even after tokens expired or were revoked.
* **Short Search Query Fixes:** Fixed search failures for very short, punctuation-heavy, or quoted queries so they return results more reliably.
* **Invite Permission Fixes:** Non-admin users can no longer send organization invites in admin-only situations, and person creation now correctly reflects invite permissions.
* **Survey Extraction Visibility:** Fixed a gap where survey response–based extractions were not always included in visibility checks.
* **Realtime Polling Reliability:** Fixed realtime updates to avoid unnecessary repeated scanning, reduce missed updates, and improve long-running session performance.
* **Widget Fixes:** Fixed several widget issues affecting embed configuration, inline and popover setup, field rendering, and programmatic open/close behavior.
* **Snowflake Import Identity Fixes:** Fixed Snowflake imports so rows without a valid lookup key no longer create incorrect matches or duplicate metadata.
* **Timezone Polling Fix:** Fixed a timezone-related issue that could cause realtime polling cursors to shift unexpectedly.
* **Scheduled Report Delivery Fixes:** Fixed cases where scheduled report deliveries could be skipped or lost if queueing failed.
* **Salesforce Sync Fixes:** Fixed issues with Salesforce custom-object queries, optional settings validation, start date handling, sync progress tracking, and HTML content decoding.
* **Company and People Table Scrolling:** Fixed intermittent infinite-scroll issues in company and people tables.
* **Apollo Import Fixes:** Fixed Apollo history selection, retroactive backfills, reauthentication handling, manual full sync requests, and participant duplication issues.
* **Extraction Person Linking Fixes:** Fixed several cases where person-to-extraction links could become outdated after speaker, author, or interaction changes.
* **Person Merge Protection:** Fixed person merge behavior so extraction-to-person links are no longer incorrectly rewritten.
***
This release adds major new capabilities across reporting, feedback collection, integrations, and authentication while also making search, syncing, and realtime experiences faster and more reliable. It focuses on giving teams more ways to collect and share insights with fewer interruptions and smoother day-to-day workflows.
**52 Commits Included**
## BuildBetter Release – March 2026 🚀
### 🚀 New Features
* **Competitive Intelligence Reports:** Generate AI-powered competitive intelligence reports with multi-report support per team, independent schedules (including quarterly), previews, saved history, and email delivery.
* **Taxonomy Explorer (Beta):** Explore your taxonomy with column and tree drill-down views, node detail panels, filtered Signals tables, AI summaries, and top people/companies — all gated behind a feature flag.
* **Highlight Reels in AI Chat:** AI chat can now automatically generate highlight reels. Edit reels inline with timestamp editing, drag-and-drop ordering, clip removal, and download individual clips or the full combined reel.
* **In-App Changelog:** A new What's New section in the sidebar shows the latest product updates with richer formatting, entry dates, categories, pagination, and notifications for unseen updates.
* **Salesforce Sandbox Support:** Choose between Production and Sandbox environments before connecting Salesforce. OAuth routes correctly to the right endpoint, and your environment selection is preserved for token refreshes.
* **Billing-Aware Feedback Imports:** CSV and image feedback imports now check your available credits before importing. See a preview of row count and credit cost, and import partially up to your available balance when credits are limited.
* **Stable Asset Links:** Shared asset links now use a stable URL model that automatically refreshes signed S3 URLs on access, so links no longer expire. Existing links are migrated automatically.
### ✨ Improvements & Enhancements
* **Smarter Snowflake Syncs:** Snowflake setup now supports two company lookup strategies — match via a mapped metadata column or use a stable identifier from table primary keys. The setup UI shows detected PK columns and validates config before saving, with improved mapping for wide tables.
* **MCP Server Improvements:** MCP server configuration has moved from browser storage to server-side encrypted storage with a one-time migration, expanded presets, and a simplified auth experience.
* **Mobile Optimizations:** Improved responsive layouts for Settings, Integrations, Bot Recording Rules, Feedback, and Signals across common breakpoints.
* **Smarter Deletion Handling:** Deleting users and organizations now detects one-hop transitive FK dependencies with detailed per-table logs, ensuring related data is handled safely.
* **Faster Queries:** Improved metadata field lookups, extraction queries for person/company/persona resolution, and added indexes for user/org deletes, attendee deletion, and metadata field operations.
### 🐛 Bug Fixes
* **Clip Downloads:** Fixed queue routing, cross-origin S3 downloads, expired source URLs, polling/status failures, memory leaks, and duplicate download requests for clip generation.
* **Billing Credits:** Fixed credits not being granted for out-of-order Stripe webhooks, a subscription replacement edge case that could void the wrong credits, and limited duplicate checks to the current billing cycle.
* **Recording Title Editing:** Fixed an issue where editing a recording title would reset on every keystroke.
* **Salesforce & Teams Auth:** Fixed Teams OAuth callback validation, DI credential handling, and API client auth propagation.
* **CSV Uploads:** Fixed file type detection for Windows MIME edge cases and CSV upload from an empty feedback state.
* **Gong Filters:** Fixed speaker filtering inversion and `speakerBoundary: "all"` hydration.
* **Desktop Layout:** Fixed Signals detail panel overlapping Electron window chrome.
***
This release introduces AI-powered competitive intelligence reports, a Taxonomy Explorer for navigating your data hierarchy, and highlight reel generation directly in AI chat. Salesforce now supports sandbox environments, feedback imports are billing-aware with credit previews, and shared asset links no longer expire thanks to a new stable URL model. An in-app changelog keeps you up to date on product updates, and we've shipped performance improvements, mobile optimizations, and dozens of bug fixes across the platform.
**39 Commits Included**
## BuildBetter Release – February 2026 🚀
### 🚀 New Features
* **Notion Integration (Beta):** Connect your Notion workspace with OAuth and import pages — including nested hierarchies — directly into BuildBetter as documents or knowledge base pages. Export content back to Notion with support for 25+ block types. Manage multiple workspaces and resync anytime from the integration settings.
* **Surveys & Typeform Integration:** A new Surveys section lets you browse, filter, and analyze survey responses alongside your other customer data. Connect Typeform with your API key to import forms and responses automatically, including historical data and real-time syncs.
* **Visual Clip Editor:** Trim audio and video clips with a new timeline editor. Drag handles to set start and end points, see color-coded speaker segments and waveforms, and preview your clip in real-time before saving.
* **Rich Call Summaries with Citations:** Call summaries now feature organized sections with clickable timestamp citations that jump directly to the relevant moment in the transcript. Choose from summary templates, regenerate summaries, and easily copy or share them.
* **Smarter AI Chat:** Chat now offers progressive suggestion chips that guide you deeper into a topic, improved context selection, chart and data rendering inline, and better citations linking back to source material.
* **User Management for Admins:** Admins can now soft-delete and restore users from the admin panel. Soft-deleting a user revokes their access and disables their integrations, while restoring brings everything back.
### ✨ Improvements & Enhancements
* **Faster Search:** Full-text search for calls is now significantly faster with improved indexing.
* **Faster Billing Queries:** Organization billing and usage limit checks are now faster, especially for large workspaces.
* **Summary Templates:** A refreshed template selection experience with a visual dialog, section management, and the ability to regenerate summaries with a different template.
* **UI Polish:** Improved iconography, sticky toolbars, better spacing, and more consistent metadata label rendering throughout the app.
### 🐛 Bug Fixes
* **Notion Sync:** Fixed race conditions and error handling during Notion imports, including better behavior when API rate limits are hit or tokens are revoked.
* **Survey Display:** Fixed company attribution on survey responses, pagination on the detail page, and Slack feedback message timestamps.
* **Summary Rendering:** Fixed markdown rendering edge cases, dropdown overflow in template selectors, and null-safe handling for empty summary fields.
* **Chat Context:** Fixed duplicate context items, suggestion chip rendering, and streaming throttle issues in AI chat.
* **Dashboard Trends:** Fixed trend data display for dashboards using legacy filters.
* **Clustering Simplified:** Advanced clustering options have been removed in favor of the simpler, more reliable legacy clustering. Existing cluster views continue to work as before.
***
This release introduces Notion integration for importing and exporting pages, a new Surveys section with Typeform support, and a visual clip editor for trimming audio and video. Call summaries now include organized sections with clickable timestamp citations, and AI chat has been upgraded with progressive suggestions, inline charts, and better source linking. Admins can now soft-delete and restore users, and we've shipped faster search and billing queries across the board.
**67 Commits Included**
## BuildBetter Release – February 2026 🚀
### 🚀 New Features
* **Snowflake Integration:** Connect your Snowflake data warehouse to BuildBetter with OAuth. Browse your schemas and tables, map columns to BuildBetter fields, and set up scheduled syncs to keep your data flowing automatically. All credentials are securely managed and masked throughout the UI.
* **Salesloft Group Filtering:** Choose which Salesloft conversations to import by selecting specific groups. Only conversations from users in your selected groups are synced, giving you precise control over what data comes into BuildBetter.
* **MCP OAuth Sign-In:** Connect AI assistants like Claude, ChatGPT, and Cursor to your BuildBetter data by simply signing in with your BuildBetter account. No more API keys to manage — just add the server URL and authenticate.
* **Feedback v4 (Now Default):** The redesigned feedback experience is now the default for all users. Drag-and-drop file uploads with progress indicators, improved field mapping, modern panel navigation, and better empty states make uploading and managing feedback faster and more intuitive.
### ✨ Improvements & Enhancements
* **Upgraded Data Tables:** Tables across the app now feature server-side pagination, column visibility controls, bulk actions, sticky footers, and improved accessibility — including better screen reader support and keyboard navigation.
* **Better Mobile Experience:** Chat and data browser now have dedicated mobile navigation with full-screen and overlay modes for a smoother experience on smaller screens.
* **Improved Accessibility:** Dialogs, tooltips, and avatars throughout the app now have better screen reader support, improved markup, and context-aware rendering.
* **Faster Extraction Processing:** Extraction quote syncing now happens fully in the background, removing delays when saving and improving responsiveness for large workspaces.
* **Improved Search:** Full-text and fuzzy search across extractions and feedback now returns more relevant results with better ranking.
### 🐛 Bug Fixes
* **Data Table Selection:** Fixed an issue where row selections could be lost after deleting items from a table.
* **Feedback Deep Linking:** Fixed bugs with deep linking and state restoration when navigating directly to a specific feedback item.
* **Table Display Polish:** Fixed avatar sizing, badge states, hover previews, and tag rendering inconsistencies across data tables.
* **Salesloft Sync:** Fixed an issue where some Salesloft recording URLs weren't resolved correctly and participant names could fall back incorrectly.
* **Credits Tab:** Fixed pagination and selection bugs in the admin credits view.
***
This release adds Snowflake data warehouse integration with OAuth and scheduled syncs, group-level filtering for Salesloft imports, and a new sign-in-based connection for AI assistants via MCP. The redesigned feedback experience is now the default, and data tables across the app have been upgraded with pagination, bulk actions, and better accessibility. We've also shipped performance improvements for extraction processing and search relevance.
**75 Commits Included**
## BuildBetter Release – February 2026 🚀
### 🚀 New Features
* **Smarter Gong Attendee Matching:** Attendee-to-person matching for Gong imports now uses AI-powered matching with confidence scoring, dramatically improving accuracy for ambiguous participants. Emails, phones, and CRM data are all used to resolve the right person.
* **Advanced Search:** Full-text and fuzzy search across extractions and feedback with improved ranking and relevance.
### ✨ Improvements & Enhancements
* **Faster Extraction & Feedback Queries:** Hierarchical property filters now use pre-filtered, indexed subqueries for significant performance improvements on large workspaces.
* **More Reliable Gong Imports:** All Gong call imports now use batch enrichment and local lookups to minimize API calls, improve completeness, and always persist participant metadata for future deduplication.
* **Safer Person Merging:** Merging duplicate people now always preserves emails, phones, and metadata with smarter ordering—prioritizing users, then contacts with emails, then by creation date.
* **Faster Extraction Permissions:** Extraction permission refreshes now use indexed materialized tables for faster updates at scale.
* **Async Quote Sync:** Extraction quote syncing now happens asynchronously after save, removing blocking operations and improving responsiveness.
### 🐛 Bug Fixes
* **Person Data Integrity:** Fixed a bug where updating people during Gong backfill didn't persist metadata, which could cause future duplication.
* **Extraction Deadlocks:** Fixed race conditions in extraction upserts by serializing per-organization and normalizing tokens to prevent lock conflicts.
* **Person Merge Ordering:** Fixed merge logic to always prefer users and contacts with emails, preventing email loss during deduplication.
* **Corrupt Metadata Handling:** Gong backfill now gracefully skips and logs corrupt or null metadata instead of failing.
* **Quote & Permission Updates:** Fixed extraction quote and permission update bugs by replacing blocking triggers with async jobs.
***
This release brings AI-powered attendee matching for Gong imports, delivering significantly better accuracy for ambiguous participants. We've also shipped major performance improvements to extraction queries and permission refreshes, made person merging safer and more reliable, and fixed several data integrity issues around Gong imports and extraction operations.
**84 Commits Included**
## BuildBetter Release – February 2026 🚀
### 🚀 New Features
* **Salesloft Integration:** Import call recordings, transcripts, and participants from Salesloft with full batch and incremental sync support, participant enrichment, and provider selection.
* **Manual Reports:** A BuildBetter team member can help set up customer reports viewable in a unified reports inbox with secure sandboxed rendering and organization-scoped permissions.
* **Recording Source Labels:** All imported recordings now display their integration source (Gong, Salesloft, Aircall, etc.) with icons throughout call detail and list views.
* **QuickAgent Q\&A:** A fast, document-aware Q\&A agent that answers questions scoped to a specific document, folder, signal, call, person, or organization for more precise results.
* **AI Chat Titles:** Chats now automatically generate descriptive titles using AI for easier navigation and history browsing.
### ✨ Improvements & Enhancements
* **Faster Database Queries:** Major query optimizations with new indexes and query rewrites for extraction, interview, and feedback queries—significant speedups for large workspaces.
* **Streaming Analysis Progress:** Analysis tasks now stream real-time progress updates via WebSocket with inline UI indicators so you always know what's happening.
* **Improved Clustering:** Cluster results are now cached with smart invalidation, async description generation, and improved visualization and progress indicators.
* **Better Avatars:** Deterministic gradient fallback avatars provide a polished look when profile pictures aren't available.
* **Improved Attendee Matching:** Better person matching for Gong imports with phone and email merging and smarter duplicate elimination.
* **Slack Feedback Modal:** Organization-level field configuration with dynamic UI, validation, and context-aware customer search.
* **Knowledge Base Improvements:** Pagination, search with highlights, orphan detection, delete confirmation, and improved parent/child integrity for knowledge base pages.
* **Improved Table Filtering:** New audience and boundary filters, quick filter templates, and an upgraded DataTable across key views.
### 🐛 Bug Fixes
* **Table Display:** Fixed swapped columns, label rendering, infinite scroll bugs, and missing avatars in data tables.
* **Gong Import:** Fixed missing persistence for Gong user IDs and error handling in participant mapping.
* **Slack Modal:** Fixed customer and company filtering and optional email input handling.
* **Chat Reliability:** Fixed message race conditions, tool event duplication, and chat history persistence.
* **Feedback Panel:** Fixed feedback source panel logic and missing signals in sidebar navigation.
***
This release adds Salesloft integration for importing call recordings and manual reports that a BuildBetter team member can help set up. Recordings now display their source integration with icons, and the new QuickAgent delivers fast, context-scoped Q\&A. We've also shipped major database query optimizations, real-time analysis progress streaming, and improvements to clustering, attendee matching, and the Slack feedback modal.
**38 Commits Included**
## BuildBetter Release – February 2026 🚀
### 🚀 New Features
* **Redesigned Call & Conversation Detail Pages:** A modern, responsive layout for call and conversation details with tabbed interfaces, timeline and signal integration, and global panels for AI, search, and notifications. Rolling out gradually via feature flag.
* **Gong CRM Data Enrichment:** Gong call imports now automatically link participants to your Salesforce contacts, leads, and accounts with smart identity matching across CRMs.
* **Unthread Integration:** Import and analyze Unthread support conversations with full filtering, platform-specific icons and tags, and dashboard integration.
### ✨ Improvements & Enhancements
* **Faster Extraction Search:** Taxonomy queries are up to 900x faster for large workspaces with optimized database performance.
* **Editable Signal Dates:** Edit the display date of signals directly from the extraction table using a calendar popover.
* **Faster Clustering:** Clustering performance improved with a new indexing approach that reduces processing time and handles larger datasets.
* **Improved Mobile Navigation:** Sidebar and navigation components are now more responsive with better mobile support.
* **Faster Asset Loading:** Asset URL refresh is now parallelized for improved speed and resilience.
### 🐛 Bug Fixes
* **Extraction Table:** Fixed company and date mapping issues in the extraction table.
* **Database Reliability:** Migrations are now safer and more reliable across all environments with idempotent operations.
* **OAuth Compatibility:** Fixed OAuth discovery and Dynamic Client Registration for improved third-party compatibility.
***
This release introduces redesigned call and conversation detail pages with a modern tabbed layout, Gong CRM data enrichment that automatically links call participants to your Salesforce records, and a new Unthread integration for importing support conversations. We've also delivered major performance improvements—extraction search is up to 900x faster for large workspaces, and clustering handles larger datasets more efficiently.
**112 Commits Included**
## BuildBetter Release – January 2026 🚀
### 🚀 New Features
* **Attio CRM Integration (Beta):** Connect your Attio CRM with OAuth2-based bidirectional sync. Sync People and Companies automatically, map custom fields to your BuildBetter data, and export call summaries directly to Attio records.
* **Pylon Integration:** Import and analyze conversational data from Pylon. Full support for filtering, dashboard integration, and reporting on your Pylon conversations alongside other feedback sources.
* **Deep Analysis with AI Agents (Beta - Coming Soon):** Get comprehensive, multi-phase analysis of your customer feedback. The system plans sections, samples data intelligently, and streams progress in real-time. Every insight includes citations you can click to see the original evidence.
* **CSV Company Mapping:** When uploading feedback via CSV, map columns directly to company fields—name, domain, or any custom metadata. Companies are automatically matched or created, with smart deduplication to keep your data clean.
* **Taxonomy Label Counts:** See how many signals use each taxonomy label at a glance. Click any count to jump directly to filtered signals for that label.
* **Admin Credit Grants:** Workspace admins can now receive bonus credits from BuildBetter that stack on top of plan limits. Credits are tracked separately with full transparency in your billing dashboard, and are always consumed before paid credits.
### ✨ Improvements & Enhancements
* **Better Credit Visibility:** Your billing dashboard now shows a detailed breakdown of plan credits vs. admin credits, with clear tracking of usage, grants, and expiration dates.
* **Smarter Company Filtering:** Filter signals, extractions, and feedback by company with improved performance. Sort by company across all views for faster analysis.
* **Refreshed Sidebar Navigation:** A cleaner sidebar design (rolling out gradually) with improved dropdowns, better loading states, and smoother navigation.
* **Share Link Controls:** Enable or disable share links on a per-resource basis. Clearer messaging when someone tries to access a disabled or deleted share link.
* **Faster Autocomplete:** Async loading for autocomplete fields means snappier search across people, companies, and other entities.
* **Gong Webhook Updates:** Improved webhook management UI with clearer setup instructions and better status feedback.
### 🐛 Bug Fixes
* **Credit Calculations:** Fixed issues with admin and plan credit reporting, proration calculations, and enforcement logic.
* **Feedback Sorting:** Feedback and signal lists now sort by timestamp instead of record ID, showing your most recent data first.
* **CSV Import Deduplication:** Fixed an issue where importing companies via CSV could create duplicates under certain conditions.
* **Slack Integration:** Fixed async handling and permissions for more reliable imports and threading.
* **Loading States:** Fixed inconsistent skeleton loaders, spinners, and modal overlays throughout the app.
***
This release introduces Attio CRM integration for bidirectional sync, Pylon support for conversational data, and a preview of AI-driven deep analysis (coming soon) with real-time streaming and evidence citations. We've also added CSV company mapping for smarter feedback imports, taxonomy label counts for quick navigation, and significant improvements to credit visibility and billing transparency.
**27 Commits Included**
## BuildBetter Release – January 2026 🚀
### 🚀 New Features
* **Circle Space Selection:** Choose exactly which Circle spaces to sync. A new settings dialog lets you view all available spaces and select only the ones you want—no more importing everything by default.
* **Intelligent Reports Scheduling:** Configure how often you receive AI-powered reports. The system intelligently recommends daily, weekly, or monthly frequency based on your data volume, or opt out entirely. Customize your preferred delivery time for reports on your schedule.
* **Home Page Favorite Cards:** Your favorite dashboards now display as rich, interactive cards on your home page. See sparklines, bar charts, pie charts, and trend indicators at a glance. Non-dashboard favorites appear as quick-access pills.
* **Gong Webhook Integration:** Get near real-time call imports from Gong via webhooks. Your Gong integration settings now display the webhook URL and workspace ID for easy setup—no more waiting for scheduled syncs.
* **Unified Global Search:** Search across your entire workspace—calls, companies, people, documents, folders, extractions, and chats—from one search bar. Results are permission-aware and sorted by relevance with fast pagination.
### ✨ Improvements & Enhancements
* **Smarter Circle Sync:** Syncing now tracks the latest imported post per space, eliminating duplicates and ensuring no posts are missed. Orphaned spaces are handled gracefully in the UI.
* **Better Favorite Charts:** Sparkline and stacked bar charts are more accurate and easier to read. Card dropdowns are now scrollable for workspaces with many favorites.
* **Improved Ticket Imports:** Tickets without an assigned owner or contact now get an "Unassigned" author automatically, ensuring all your support data is captured.
* **Faster Call Search:** Call list search is significantly faster with improved filters for company names and extraction types.
* **Cleaner Dialogs:** Create Person dialog has better error messaging. Speaker assignment popovers close properly after selection.
### 🐛 Bug Fixes
* **Circle Sync Duplicates:** Fixed an issue where all Circle posts were re-fetched on every sync. Only new and updated posts are now imported.
* **Sparkline Accuracy:** Corrected bucket sampling and scaling so sparkline charts accurately reflect your data trends.
* **Transcript Updates:** Fixed an issue where call transcripts wouldn't refresh when changing selection or search terms.
***
This release adds Circle space selection so you control exactly what gets synced, intelligent scheduling for AI reports, and rich favorite cards with charts on your home page. Gong users can now get near real-time imports via webhooks, and the new unified global search makes finding anything in your workspace fast and easy.
**71 Commits Included**
## BuildBetter Release – January 2026 🚀
### 🚀 New Features
* **Linear Project Linking:** Link your custom objects directly to Linear projects. Add, create, manage, and filter Linear projects without leaving BuildBetter—perfect for connecting customer feedback to your development workflow.
* **Productboard Integration (Beta):** Connect your Productboard account to import and sync notes as feedback. Filter by date range, see real-time sync progress, and cancel syncs if needed. Automatic deduplication ensures clean data.
* **Intelligent Reports (Beta):** Receive AI-powered, personalized customer insights delivered to your inbox. Reports analyze your data to surface trends, highlight important quotes, and provide actionable recommendations tailored to your role.
* **SmartSearchBar for Clustering:** Use natural language to search your clustering dashboards. Ask questions like "show me churn risk signals" and the AI understands what you're looking for.
* **Quick Filters for Clustering:** Apply common filter templates with one click—External Only, Churn Risk, and more. Customize which templates appear for your workflow.
* **Create Dashboards from Taxonomy:** Build clustering dashboards directly from your product taxonomy. Select multiple taxonomy nodes and create pre-configured dashboards instantly.
* **Favorite Dashboards:** Star your most-used clustering dashboards for quick access. Favorites appear at the top of your dashboard list.
* **Slack Message Grouping:** Consecutive messages from the same person in Slack are now intelligently grouped as conversations when imported, giving you better context without cluttering your feedback.
* **Stop In-Progress Syncs:** Cancel any integration sync that's taking too long or was started by mistake. See clear "Stop Sync" and "Stopping..." states so you know exactly what's happening.
### ✨ Improvements & Enhancements
* **Improved Linear Project UX:** Streamlined project linking with better search, status badges, and clearer actions. Find and connect projects faster with debounced search.
* **Collapsible Taxonomy Trees:** Taxonomy selection in AI Labeling settings and dashboard creation now features expand/collapse controls, making it easier to navigate large taxonomies.
* **Smarter Clustering Defaults:** New dashboards default to "External Only" filtering so you focus on customer feedback first.
* **Improved Slack Integration UI:** Expand and collapse workspaces and channels in settings. See channel counts at a glance with helpful quick-start links.
* **Modernized Settings Experience:** Settings pages have been refreshed with cleaner layouts, better navigation, and improved forms throughout.
### 🐛 Bug Fixes
* **Circle Integration:** Fixed issues when connecting without historical import. Date filtering now works correctly with improved handling of missing data.
* **Productboard Sync:** Fixed date filter logic, manual sync availability, and settings validation. Canceling syncs now works reliably.
* **Slack Import Progress:** Fixed the processed calls counter to accurately reflect sync progress.
* **Better Error Messages:** Conversations without authors or messages now show clear error messages instead of failing silently.
* **Calendar Event Handling:** Events without valid URLs or platforms are now safely skipped with logging instead of causing errors.
* **Slack OAuth:** Fixed token refresh errors that could cause disconnections.
***
This release introduces Linear project linking for connecting customer feedback to development, a new Productboard integration for importing product notes, and AI-powered Intelligent Reports that deliver personalized insights to your inbox. We've also added powerful new ways to search and filter clustering dashboards, plus the ability to stop syncs and create dashboards directly from your taxonomy.
**59 Commits Included**
## BuildBetter Release – December 2025 🚀
### 🚀 New Features
* **Call Export Manifests:** When exporting calls, you can now generate an optional JSON manifest file alongside your exports. The manifest includes metadata like file paths, timestamps, attendees, and tags—perfect for integrating exports into your data pipelines. Enable with the new `--exportManifest` and `--manifestName` CLI flags.
* **Redesigned Calendar Picker:** The date picker throughout BuildBetter has been completely rebuilt with improved accessibility, a cleaner design, and better customization options. Enjoy a consistent calendar experience across scheduling, forms, and call details.
### ✨ Improvements & Enhancements
* **Smarter Signal Filtering:** The "in" and "not in" filter operators now support comma-separated values, making it easier to filter signals by multiple values at once.
* **Faster Slack Feedback:** The `/bb-feedback` Slack command now routes through a dedicated endpoint for faster, more reliable feedback submissions.
* **Improved Performance:** Optimized how we load AI tokenization libraries, reducing memory usage and improving response times for AI-powered features.
### 🐛 Bug Fixes
* **Multi-Filter Dashboard Support:** Fixed an issue where cluster dashboards would only allow two filters at a time. You can now apply as many filters as needed, and filter state properly syncs when changed externally.
***
This release brings a redesigned calendar experience with improved accessibility, optional manifest generation for call exports, and smarter signal filtering. We've also improved Slack feedback reliability and overall performance.
**121 Commits Included**
## BuildBetter Release – December 2025 🚀
### 🔌 Integration Improvements
* **Smarter Reconnection:** Integrations now clearly indicate when they need to be reconnected due to expired credentials, with a simple one-click reconnection flow.
* **More Reliable OAuth:** Improved token refresh logic ensures your integrations stay connected without unexpected disconnections.
### 👥 Improved Personas Management
* **Better Error Handling:** Clearer error messages when creating or editing personas.
* **Improved Form Experience:** Enhanced placeholder text and labeling for persona creation.
### 🔍 Advanced Signal Filtering
* **Hierarchy Filtering:** Filter your signals table by hierarchy properties (taxonomies) using powerful operators like "equals", "is any of", "is none of", and "is under" with multi-select support.
* **See Who Created Signals:** The signals table now shows who created each signal with their name and avatar for better attribution.
### ⭐ Favorite Cluster Dashboards
* **Quick Access to Key Dashboards:** Favorite your most important cluster dashboards and access them instantly from your sidebar and home page.
### 💬 Slack Improvements
* **CRM Contact Search:** Search and select HubSpot or Salesforce contacts directly from the Slack feedback modal—automatically deduplicates and creates or updates people records.
* **Dynamic Custom Properties:** The Slack feedback modal now shows all your configured custom properties (text, select, hierarchy, user fields) for richer feedback capture.
### 🗂️ Custom Objects Enhancements
* **Slack Thread Updates:** Send status updates to Slack threads directly from custom object pages to keep your team in the loop.
* **AI Content Generation:** Generate markdown content for object detail pages using AI—great for drafting summaries or documentation.
* **Chat Integration:** Open and manage chat threads within custom objects for contextual discussions.
* **Bulk Deletion:** Select and delete multiple custom objects at once from the selection toolbar.
### 📊 Saved Searches (formerly Datasets)
* **Renamed for Clarity:** "Datasets" are now called "Saved Searches" to better reflect their purpose.
* **New Search Bar:** SmartSearchBar with templates and quick filters makes finding and saving searches faster.
* **Saved Search Dropdowns:** Quickly apply saved searches from convenient dropdown menus.
### 🏷️ Hierarchy Management
* **Control Selector Visibility:** Choose which hierarchy levels appear in selectors—hide internal levels to keep dropdowns clean and focused for your team.
* **Unique Node Slugs:** Hierarchy nodes now have unique slugs with better handling of parent/child relationships.
### ⚡ Real-Time Taxonomy Generation
* **Live Progress Updates:** Taxonomy generation now shows real-time progress as it runs, with streaming updates so you know exactly what's happening.
### 🎨 Interface Improvements
* **Better Sidebar Navigation:** Improved sidebar organization and visual hierarchy.
* **Cleaner Tables:** Enhanced table loading states and skeleton screens.
* **Improved Scrollbars:** Better scrollbar styling throughout the app.
* **Aggregate Counts:** See counts and aggregations more clearly across views.
### 🐞 Stability & Fixes
* Fixed chat input bar overlapping with sidebar in certain views.
* Fixed CSV import failures caused by whitespace in column headers.
* Restored filter dropdown functionality in signals table.
* Fixed Salesforce sync issues including duplicate processing and memory improvements.
* Improved organization join flow with stricter email domain matching.
* Fixed layout overflow and spacing issues on key pages.
* Resolved OAuth token refresh race conditions for more reliable integrations.
***
This release adds powerful hierarchy filtering to signals and brings CRM contact search directly into Slack. We've also improved integration reliability with smarter reconnection flows and enhanced custom objects with AI content generation and Slack thread updates.
**81 Commits Included**
## BuildBetter Release – December 2025 🚀
### 🏷️ Entity Properties & AI Auto-Fill
* **Flexible Properties:** Add custom properties to objects, extractions, and feedback with support for various field types.
* **AI-Powered Auto-Fill:** Properties can be automatically populated using AI, saving time on manual data entry.
* **Improved Taxonomy Editor:** New UI for managing taxonomies with node assignment and protection flags.
### 💬 Enhanced Slack Integration
* **Richer Signal Creation:** Create signals directly from Slack with title, context, signal type, and speaker selection.
* **Taxonomy Support:** Multi-select taxonomy nodes right in Slack with live search and hierarchical display.
* **Speaker Search & Create:** Find existing speakers or create new ones without leaving Slack.
* **Close the Loop:** Post follow-up messages to Slack threads with automatic deduplication and direct links back to BuildBetter.
### ⚡ Automatic Extractions from Feedback
* **Less Manual Work:** New feedback created via API now automatically triggers extraction jobs—no manual processing needed.
### 🔄 Simpler Clustering
* **Streamlined Experience:** Clustering now uses a simplified approach for faster, more predictable results.
* **Clearer Visualizations:** Impact and quote visualizations are easier to understand.
### 📥 Better CSV Imports
* **Smarter Validation:** Invalid emails ("None", "null", "N/A") are automatically cleaned up during import.
* **Clearer Errors:** Improved error messages help you fix issues quickly.
* **Cancel Anytime:** Abort AI classification mid-process if needed.
### 🔗 Integration Improvements
* **Zoom Reliability:** Improved webhook handling and type safety for fewer sync failures.
* **Front & Slack Fixes:** Better data visibility and upsert logic for consistent syncing.
* **Smoother Calendar Setup:** Improved handling during calendar connection for easier onboarding.
### 🎨 Interface Improvements
* **Consistent Empty States:** Better onboarding guidance when sections have no data yet.
* **Improved Tooltips:** Clearer explanations throughout the platform.
* **Better Accessibility:** Improved keyboard navigation and screen reader support.
### 🐞 Stability & Fixes
* Fixed persona/profile selection issues with ID type handling.
* Fixed hierarchy node deletion to properly clean up related records.
* Prevented duplicate Stripe customer creation across organizations.
* Malformed background jobs now logged and removed instead of causing infinite retries.
* Fixed OAuth client ID handling for integrations.
* Improved job schema alignment across all integration types.
***
This release brings powerful AI auto-fill capabilities for entity properties, significantly enhanced Slack integration with taxonomy support, and automatic extraction generation from feedback. We've also simplified clustering for a faster, more intuitive experience and made numerous reliability improvements across integrations.
**56 Commits Included**
## BuildBetter Release – November 2025 🚀
### 🤖 AI-Powered CSV Column Mapping
* **Smart Column Detection:** When importing CSV feedback, AI automatically suggests how to map your columns to feedback and person fields.
* **Interactive Review:** Review AI suggestions with confidence scores, edit mappings, and validate in real-time before importing.
* **Manual Fallback:** Full manual mapping available if you prefer or when AI isn't available.
### 👤 Person Linking for CSV Imports
* **Automatic Person Matching:** Person fields (email, name) are automatically extracted and matched to existing contacts during CSV imports.
* **Better Traceability:** Feedback records and signals from spreadsheet imports now link directly to people in your workspace.
* **Rich Display:** Feedback tables show person metadata, avatars, and quick links to profiles.
### ✉️ Email Verification for Organizations
* **Secure Joining:** Organizations can now require email verification before new members join—for both domain and invite code flows.
* **Smooth Experience:** Pending join states with automatic resumption after verification keeps the process seamless.
### 📊 Improved Feedback API
* **Flexible Creation:** The `boundary` field is now optional and defaults to "external" if omitted—simpler API and Zapier integrations.
* **Larger Uploads:** REST API now accepts JSON payloads up to 100MB (increased from 20MB).
* **Metadata Support:** Import and export feedback metadata with full validation.
### 🔄 Smarter Transcript Processing
* **Daily Reprocessing:** Automated daily job catches and corrects any transcript processing errors.
* **Person Boundaries:** Hourly job automatically classifies contacts as internal or external based on email domains.
### 🎨 Interface Improvements
* **Better Feedback Tables:** Clearer display for anonymous feedback, improved date formatting, and more interactive person metadata.
* **Cleaner Settings:** Organization domain rules and allowed domains management clarified in settings.
* **Smarter Dropzone:** CSV column samples displayed during mapping for easier review.
### 🐞 Stability & Fixes
* Fixed infinite render loops in feedback upload dialog.
* Robust handling of empty or malformed CSV files with clear error messages.
* Drag-and-drop image uploads now correctly set the image type.
* Fixed recording bot image errors with automatic fallback to default images.
* Fixed Pendo dashboard analytics parameter mapping.
* Improved recording bot scheduling — bots only assigned when scheduling succeeds.
* Better handling of calendar attendee changes for integrated users.
* Fixed signals import logic for correct person associations.
***
This release makes CSV feedback imports significantly smarter with AI-powered column mapping and automatic person linking. Organizations gain better security with email verification for joining, while admins get improved search capabilities. Under the hood, we've made major reliability improvements to transcript processing and bot scheduling.
**59 Commits Included**
## BuildBetter Release – November 2025 🚀
### 🧪 Clustering Dashboard Templates (Beta)
* **New Clustering Experience:** We're testing a new clustering approach for dashboards—currently in beta as we refine the experience for better signal organization.
### 🖼️ Image Feedback Upload
* **Upload Images as Feedback:** Now you can upload image files (JPEG, PNG, WebP, GIF) directly as feedback sources.
* **AI-Powered Extraction:** Images are automatically processed to extract feedback text, participant names, and emails—structured and ready for analysis.
### 📊 Signals v2: Enhanced Clustering & Visualization
* **Powerful Signal Management:** New pipeline for viewing, filtering, and clustering up to 5,000 signals at once.
* **All Signal Types Selector:** Quickly filter by signal type with the new unified selector.
* **Better Visualization:** Visualization panel now auto-opens with improved controls and granularity presets.
* **Refined Stats & Settings:** Clearer statistics and more discoverable clustering settings.
### 🔄 Custom Objects (Beta)
* **Flexible Data Modeling:** New schema-driven custom object framework for creating your own data types like "Cycles."
* **Rich Management UI:** Sidebar, list, and Kanban views for organizing custom objects your way.
* **Relationships & Hierarchy:** Define relationships between objects with full hierarchy support.
### 💳 Smarter Subscription Upgrades
* **Instant Proration:** Plan upgrades now immediately calculate and charge the correct proration amounts.
* **Credit Application:** Usage overages and credits are accurately applied during upgrades.
* **Clearer Messaging:** Improved UI explains exactly what you'll pay when upgrading.
### 📤 Improved Feedback Upload Experience
* **Unified Upload Flow:** New streamlined drop zone and dialog for all feedback uploads.
* **Better Guidance:** Clearer instructions and navigation for uploading different file types.
* **Smarter Validation:** Enhanced file type detection and validation with helpful error messages.
### 🎨 Interface Improvements
* **Visual Polish:** Major improvements to spacing, padding, and scrollability across taxonomy, feedback, and clustering UIs following our Tailwind 4 upgrade.
* **Better Mobile Experience:** Workflow lists, signals sidebar, and upload components refined for accessibility and smaller screens.
* **Context-Aware Navigation:** Breadcrumbs, page titles, and cards now adapt to your current context.
### 🐞 Stability & Fixes
* Fixed missing upload context that prevented some feedback uploads.
* Resolved file type mismatches between UI and backend.
* Fixed feedback creation issues with optional boundaries (especially for Zapier).
* Subscription upgrades now correctly include overages and credits.
* Fixed extraction polling accuracy and state management.
* Organization join via invite code now works when no domain is set.
* Workflow list and conversation views now scroll properly on overflow.
* Signals sidebar row clickability and hover states fixed.
* Conversation import usage events now only trigger on creation.
***
This release introduces image feedback uploads with AI extraction, a powerful new signals pipeline supporting up to 5,000 signals, custom objects for flexible data modeling, and significant improvements to subscription billing accuracy. We're also beta testing new clustering approaches to help you organize insights more effectively.
**24 Commits Included**
## BuildBetter Release – November 2025 🚀
### 💳 New Billing System & Management
* **Modern Billing Platform:** Completely rebuilt billing system with transparent credit tracking and flexible pricing.
* **Grace Period Protection:** If payment issues arise, you keep full access for 30 days while resolving them—no interruptions to your work.
* **Accurate Credit Tracking:** Enhanced credit calculations ensure you're only charged for actual usage, with automatic corrections for any discrepancies.
* **Better Subscription Management:** Clearer visibility into your subscription status, credits, and usage patterns.
### 👥 Smarter People Matching
* **Accurate Participant Assignment:** Improved system for matching call participants to the right people in your workspace using multiple strategies—screen names, calendar emails, and platform-specific IDs.
* **Confidence Indicators:** See when participant assignments are uncertain and need your confirmation.
* **Manual Corrections:** Easily confirm or reassign participants directly in transcripts when the system isn't sure.
* **Reduced Duplicates:** Better deduplication logic means fewer duplicate contact profiles and cleaner data.
* **Merge Duplicates:** New tools to batch-merge duplicate people profiles for cleaner contact management.
### 🏷️ Enhanced Tagging
* **Tag Analytics:** Tags on signals now support aggregation and reporting for better insight organization.
* **Real-Time Sync:** Tag updates propagate instantly across all views and reports.
### 🔍 Better Data Quality
* **Cleaner Imports:** ChorusAI imports now handle missing calls gracefully with better error messages.
* **Improved Feedback Handling:** System now accepts large feedback submissions (up to 20MB) for comprehensive data imports.
* **Better Filtering:** Enhanced filters across signals and extractions respect permissions and assignment confidence.
### 🎨 Interface Improvements
* **Transcript Highlights:** Uncertain participant assignments are visually flagged in transcripts for easy identification.
* **Better Dialogs:** Improved dialog layering and dropdown behavior across the platform.
* **Smoother Navigation:** Better scrolling, filtering, and table interactions throughout.
### 🐞 Stability & Fixes
* Fixed credit grant handling during subscription renewals.
* Corrected promotional credit calculations for accurate tier pricing.
* Resolved feedback extraction bugs for more reliable processing.
* Improved filter mapping for signal sources and extractions.
* Fixed type handling in participant assignment workflows.
***
This major release introduces a completely rebuilt billing system with better transparency and protection, along with smarter people matching with confidence indicators. The platform delivers cleaner data, more accurate matching, and better control over your workspace.
**62 Commits Included**
## BuildBetter Release – October 2025 🚀
### 🔗 Linear & Jira Integrations
* **Push to Linear:** Create Linear issues directly from signals with AI-powered descriptions and automatic team/project/priority selection.
* **Push to Jira:** Send signals to Jira as tickets with intelligent content generation and dynamic field mapping.
* **Unified Push Flow:** Simple, consistent experience for creating tickets across all your project management tools.
* **Smart Content:** AI automatically generates ticket titles and descriptions based on signal context and quotes.
### 🔗 Fathom AI Integration
* **Meeting Sync:** Automatically import Fathom meetings and transcripts as call recordings for unified analysis.
* **Seamless Connection:** Quick OAuth setup brings all your Fathom data into BuildBetter.
* **Rich Context:** Meetings include full transcripts and metadata for comprehensive insights.
### 🔗 Enhanced Integration Experience
* **Complete Integration List:** Browse and connect all available integrations from one central hub—including Gong, Chorus, Clari, Fireflies, Aircall, Intercom, Kustomer, Zendesk, HubSpot, Salesforce, Pendo, Slack, and Zapier.
* **Clear Categories:** Integrations organized by type (CRM, call recording, customer support, analytics) for easier discovery.
* **Status Visibility:** See which integrations are connected, available, or coming soon at a glance.
* **Improved Onboarding:** Smoother setup flows and clearer error messages for all integrations.
### 🧠 User Journey Regression Analysis
* **Discover Trends:** Analyze how user behavior changes over time across different segments and cohorts.
* **Interactive Dashboard Cards:** Add regression analysis to any dashboard to track changes in user journeys.
* **Deep Exploration:** Click into regression cards to explore detailed breakdowns, clusters, and user properties.
* **Flexible Configuration:** Choose which clusters, properties, and time ranges to analyze.
### 🗂️ Signal Tagging
* **Organize Insights:** Add custom tags to signals for better organization and filtering.
* **Quick Search:** Find signals by tag instantly with dedicated tag filters.
* **Flexible Management:** Add, remove, and edit tags across multiple signals at once.
* **Smart Sorting:** Sort and group signals by tags to focus on specific themes or categories.
### 🗑️ Conversation Management
* **Delete Conversations:** Remove unwanted conversations with a simple delete action.
* **Instant Updates:** Conversations disappear immediately from all views and searches.
* **Permission Protected:** Only authorized users can delete conversations for better security.
### 📊 Pendo Poll Enhancements
* **More Poll Types:** Support for voting and free-text polls imported from Pendo.
* **Better Rendering:** Polls display correctly regardless of format or question type.
* **Export Support:** Include all poll types in exports and reports.
### 👥 People Table Improvements
* **Smarter Search:** Find people faster with improved search that looks across names, emails, and companies.
* **Infinite Scroll:** Browse large contact lists smoothly without pagination interruptions.
* **Merge Workflow:** Combine duplicate profiles with a simple, guided merge process.
* **Better Performance:** Tables load faster and stay responsive even with thousands of contacts.
### 💳 Billing & Credits
* **30-Day Grace Period:** Payment issues won't interrupt your work—keep full access for 30 days while you resolve payment problems.
* **Credit Grants:** Promotional credits and paid credit packages now available with automatic expiration tracking.
* **Accurate Usage:** Improved credit calculations ensure you're only billed for actual usage.
* **Retroactive Corrections:** Any billing discrepancies are automatically detected and corrected.
### 🔧 Performance & Reliability
* **Faster Integration Syncs:** All integrations sync more reliably with better error recovery.
* **Improved Navigation:** Browser history and query parameters work smoothly for better back/forward navigation.
* **Better Caching:** Smarter cache management means fresher data and fewer loading delays.
* **Extraction Accuracy:** Custom context now properly applies to all extraction prompts for more relevant insights.
### 🐞 Stability & Fixes
* Fixed visual glitches and missing icons throughout the platform.
* Corrected billing credit calculations and subscription handling.
* Improved conversation deletion to update all views immediately.
* Enhanced people data loading and prevented stale data issues.
* Fixed animation and positioning bugs in modals and pop-out panels.
* Resolved webhook event handling for accurate credit grant tracking.
***
This release brings powerful new integrations for Linear, Jira, and Fathom, advanced regression analysis for user journeys, and significant improvements to billing, tagging, and conversation management. The platform is faster, more reliable, and more flexible than ever.
**90 Commits Included**
## BuildBetter 4.0 – October 2025 🎉
A major release transforming how you manage usage, integrate with your tools, and organize insights.
### 💳 Credits-Based Billing System
* **Flexible Credits:** New credit-based system replaces hourly limits, giving you more control over how you use BuildBetter.
* **Clear Usage Tracking:** See exactly how many credits each feature uses with transparent, real-time usage breakdowns.
* **Smart Limits:** Dynamic warnings and limits based on your actual credit usage, not arbitrary restrictions.
* **New Plans:** Introducing "Lite" and "Custom" plan options to fit different team sizes and needs.
* **Live Payment Status:** Real-time updates during checkout show exactly what's happening with your payment—processing, success, or if there's an issue.
* **Proration Preview:** See exactly what you'll pay when changing plans before you commit.
* **Monthly Credits for Yearly Plans:** Yearly subscribers can now track monthly credit allowances for better budget planning.
### 🔗 Powerful New Integrations
* **HubSpot:** Two-way sync for contacts, companies, and tickets with dynamic field mapping and multiple connection support.
* **Zendesk:** Sync tickets and conversations automatically with customizable field selection.
* **Salesforce:** Connect your Salesforce data with flexible field mapping and entity matching.
* **GitHub:** Import issues and pull requests with repository filtering and smart matching.
* **Pendo (Beta):** Sync in-app guides and polls as survey data for comprehensive user feedback analysis.
### 📋 Surveys Platform (Beta)
* **Survey Management:** Create, organize, and analyze surveys as a first-class data type in BuildBetter.
* **Rich Question Types:** Support for multiple question formats with comprehensive response tracking.
* **Automatic Insights:** Survey responses automatically generate signals and extractions with answer-level citations.
* **Pendo Integration:** Import Pendo guides and polls directly as surveys for unified analysis.
### 📚 Knowledge Base System
* **Organize Knowledge:** Create and organize knowledge pages with parent-child relationships and custom icons.
* **Markdown Support:** Write rich documentation with full markdown formatting.
* **Chat Integration:** Mention knowledge pages in chat for instant context and reference.
* **Permissions:** Control who can view and edit each knowledge page.
### 🏷️ Product Taxonomy (Alpha)
* **Hierarchical Organization:** Build a structured taxonomy of products, features, domains, and tags.
* **AI-Powered Tagging:** Smart tags use AI to automatically categorize your data based on custom instructions.
* **Easy Management:** Import and edit your product structure through an intuitive interface.
### 📦 Collections Terminology
* **Clearer Language:** "Collections" replaces "Folders" throughout the platform for more intuitive organization.
* **Better Protection:** Deleted collections are now completely hidden and protected from accidental access.
### 🔍 Enhanced Integration Features
* **Multiple Connections:** Connect multiple accounts from the same provider to sync data from different sources.
* **Last Sync Tracking:** See exactly when each integration last synced for better monitoring.
* **Dynamic Scheduling:** Smart cron scheduling adapts to your integration needs.
* **Better Error Handling:** Clear error messages and automatic retry logic for more reliable syncs.
* **Field Mapping:** Choose exactly which fields to sync for each integration.
### 📊 Improved Data Management
* **Bulk People Actions:** Select, merge, and delete multiple people at once with keyboard shortcuts.
* **Interactive Filters:** Visual filter chips make it easier to see and adjust your current filters.
* **Group by Source:** Filter and organize signals by their original source for better context.
* **Keyboard Navigation:** Full keyboard support for tables and data views improves accessibility.
* **Infinite Scroll:** Smoother browsing through large datasets without pagination breaks.
### 🔔 Richer Webhooks
* **More Context:** Webhooks now include signal severity, sentiment, and bias in both numeric and human-readable formats.
* **Enhanced Payloads:** Get signal type, full quotes, and speaker details in every webhook notification.
### 🚀 Performance & Reliability
* **Faster Searches:** Improved batch performance and concurrency for semantic search.
* **Better Credit Tracking:** Only billable events count toward usage—no surprises.
* **Improved Validation:** Enhanced OAuth2 flows and connection validation across all integrations.
* **Centralized CORS:** Better API security and reliability with unified CORS configuration.
### 🐞 Stability & Fixes
* Fixed credit calculations to round properly and only count billable events.
* Resolved plan downgrade and renewal edge cases for smoother transitions.
* Corrected user-company associations in Zendesk integration.
* Fixed GitHub OAuth token handling and repository selection.
* Improved table selection to prevent invalid bulk actions.
* Resolved loading and empty state rendering across all tables.
* Fixed transcript highlighting and signal creation button behavior.
* Protected soft-deleted collections and conversations from appearing in any queries.
* Corrected survey module initialization errors.
* Fixed Pendo and Zoom integration callback routing.
***
**BuildBetter 4.0** represents a fundamental shift in how you use the platform. The new credits-based system gives you more flexibility, powerful integrations connect your existing tools, and new capabilities like surveys and knowledge bases expand what you can do with your customer insights.
**30 Commits Included**
## BuildBetter Release – October 2025 🚀
### 📊 Enhanced Feedback Management
* **Flexible Data Model:** Import feedback from any source—spreadsheets, documents, images, slideshows—with rich metadata support.
* **Bulk Import Power:** Process thousands of feedback records at once with high-speed, batched imports that handle large datasets efficiently.
* **Smart Field Detection:** Automatically detects and organizes feedback fields for faster setup and analysis.
* **Upload Tracking:** See real-time status as your feedback files process, with clear visibility into records and fields being imported.
* **Better Organization:** Each uploaded file gets a unique identifier for easy tracking and management.
### 🔍 Richer Signals & Extractions
* **Exact Quotes Column:** New "Exact Quote" column in signals table shows aggregated quotes for better context at a glance.
* **Feedback Filtering:** Filter and sort extractions by feedback source, submission date, and associated metadata.
* **Submitted At Timeline:** New "Submitted At" column helps you understand the timeline of feedback and signals.
* **Enhanced Context:** Extraction details now include complete feedback source information for better traceability.
### 🎯 Powerful Query Builder
* **Feedback Source Filters:** Search and filter by specific feedback sources to narrow down insights.
* **Dynamic Options:** Filter options update based on your actual data for more relevant selections.
* **Better Labels:** Clearer field descriptions and labels throughout the query interface.
* **Advanced Filtering:** Filter signals by feedback date, source type, tags, and associated people.
### 🔔 Improved Webhooks
* **Richer Payloads:** Webhook notifications now include signal type (complaint, bug, feature request, etc.) and full quote details.
* **Better Context:** See speaker information and associated call IDs directly in webhook data.
* **Preview Support:** Truncated previews make it easier to review webhook data at a glance.
### 🚀 Performance Improvements
* **Faster Vectorization:** Improved batch processing for semantic search with better concurrency control.
* **Smarter Event Handling:** System skips outdated events to avoid redundant processing and improve response times.
* **Optimized Queries:** Better database query performance for filtering, sorting, and grouping operations.
* **Large File Support:** Spreadsheet imports now process in parallel batches for faster completion.
### 🔧 Better Table Experience
* **Resizable Columns:** Easily adjust column widths in feedback tables—double-click to reset to default.
* **Direct Page Input:** Jump to any page number quickly with improved pagination controls.
* **Smart Status Messages:** Clear distinction between "no fields detected" and "no records found" for better clarity.
* **Responsive Polling:** Tables automatically check for new data more frequently when you're actively using them.
### 🐞 Stability & Fixes
* Fixed bot dispatch timing issues when calendar event times change.
* Resolved webhook data accuracy to ensure all linked information is included.
* Improved semantic search filtering to respect permissions correctly.
* Corrected Teams integration disconnect flow for cleaner uninstalls.
* Better error tracking and logging for all new features.
* Fixed edge cases in timestamp handling during feedback imports.
***
This release transforms feedback management with flexible import options and rich metadata support, while enhancing signals with better filtering, quotes, and context. Webhooks now provide richer data for more powerful automation workflows.
**60 Commits Included**
## BuildBetter Release – September 2025 🚀
### 🔗 Powerful Integration Platform
* **Connect Your Tools:** Seamlessly integrate BuildBetter with Salesforce, HubSpot, and other platforms using secure OAuth connections.
* **Centralized Management:** View and manage all your integrations from one place, with detailed connection status and sync logs.
* **Automatic Syncing:** People, companies, and data automatically sync from your connected tools to keep everything up to date.
* **Sync Monitoring:** Track integration activity with real-time logs and error notifications to stay on top of any issues.
* **Encrypted Security:** All integration credentials are encrypted and stored securely with enterprise-grade protection.
### 📥 Advanced Feedback Management
* **Bulk Feedback Import:** Upload customer feedback in bulk via CSV or API to process thousands of records at once.
* **Smart Classification:** AI automatically categorizes and organizes feedback fields for faster analysis.
* **Flexible Sources:** Manage multiple feedback sources (surveys, support tickets, user interviews) in one unified system.
* **Rich Context:** See detailed metadata and provenance for every feedback record to understand its origin and context.
* **Async Processing:** Large feedback imports process in the background so you can keep working without interruption.
### ⌨️ Keyboard Navigation
* **Full Keyboard Control:** Navigate data tables and signals with arrow keys, making it faster to review and analyze information.
* **Quick Selection:** Use Shift+arrows for range selection and quick bulk actions without touching your mouse.
* **Better Accessibility:** Improved support for keyboard-only workflows throughout the platform.
### 🎯 Smarter Participant Matching
* **Improved Accuracy:** Attendee matching now prioritizes calendar data over screen names for more reliable participant identification.
* **Better Context:** Webhook payloads now include detailed participant information for richer integrations.
* **Generate Tickets from More Sources:** Create engineering tickets from conversations and feedback, not just calls.
### 🎨 Enhanced User Experience
* **Cleaner Navigation:** Redesigned sidebar and iconography for easier navigation and better visual clarity.
* **Better Modals:** All dialogs and popups now center properly on your screen regardless of window size.
* **Improved Tables:** Resizable columns, better pagination, and smoother scrolling across all data views.
* **People Pages:** Enhanced layout showing job history and company context more clearly.
* **Internal/External Labels:** Clearer terminology throughout the interface—"Internal" and "External" instead of technical boundary terms.
### 🔍 Better Search & Performance
* **Richer Context:** Extractions now include quotes, feedback, and conversation messages for more comprehensive search results.
* **Faster Queries:** Optimized extraction searches load significantly faster, especially with large datasets.
* **Better Attribution:** See exactly where each quote or insight came from with improved provenance tracking.
### 🐞 Stability & Fixes
* Fixed signals page loading issues for more reliable access to your insights.
* Corrected email validation to accept all standard email formats.
* Improved company and people deduplication when syncing from integrations.
* Fixed cluster reports to include all relevant attributes.
* Resolved modal positioning issues that could push content off screen.
* Better error messages and recovery when integration syncs encounter issues.
* Corrected document citation displays to always show complete information.
***
This release introduces a powerful integration framework to connect your existing tools, advanced feedback management for bulk processing, and significant improvements to navigation, search, and overall platform reliability.
**30 Commits Included**
## BuildBetter Release – September 2025 🚀
### 📄 Powerful Document Generation
* **Create Documents from Signals:** Generate documents directly from your signals and extracted insights, not just calls.
* **Dataset-Powered Docs:** Use your custom datasets as the foundation for document generation with rich context and citations.
* **Improved Creation Flow:** New streamlined multi-step process makes it easier to select sources, choose templates, and customize outputs.
* **Quick Actions:** Generate documents directly from dataset toolbars with one click.
* **Better Citations:** See exactly which extractions, datasets, or signals contributed to each section of your documents.
### 📊 Smarter Dashboard Analytics
* **Segmentation Controls:** Break down any dashboard visualization by person, company, or signal properties like sentiment, severity, or boundary.
* **Intelligent Grouping:** Visualizations automatically group data in meaningful ways based on your segmentation choices.
* **Multiple Chart Types:** Apply segmentation to bar charts, heatmaps, pie charts, timelines, and quote cards.
* **Expandable Views:** Collapse and expand segmented data to focus on what matters most.
* **Persistent Settings:** Your segmentation preferences are saved across sessions.
### 🎬 Highlight Reels
* **Create Video Highlights:** Build collections of your best clips from calls and signals to share key moments.
* **Custom Ordering:** Arrange clips in the perfect sequence to tell your story.
* **Dedicated Player:** Beautiful playback experience designed specifically for highlight reels.
* **Easy Sharing:** Share reels with anyone via simple links—perfect for stakeholder updates and reports.
### 🎯 Better Data Connections
* **Improved Person Matching:** Automatically connects call attendees to the right people in your workspace using smarter matching.
* **Call Import Enhancement:** Historical calls now properly associate attendees with their profiles for better analytics.
### 🔧 Performance & Reliability
* **Faster Document Processing:** Rebuilt document generation pipeline is more reliable and handles large documents better.
* **Enhanced Health Monitoring:** Better system health checks ensure smoother operation and faster recovery from issues.
* **Improved Search:** Document embeddings update automatically for more accurate search results.
### 🐞 Stability & Fixes
* Fixed dataset creation from document citations now preserves all associations correctly.
* Resolved playback issues in highlight reels with better time formatting and navigation.
* Improved dashboard heatmap generation with better error handling and timeout management.
* Fixed AWS credential handling for long-running data exports.
* Better transcript import handling for edge cases and special characters.
* Corrected permission checks across various features for more consistent access control.
***
This release brings major improvements to how you create and share insights, with powerful new document generation options, flexible dashboard segmentation, and the ability to create compelling highlight reels from your best clips.
**60 Commits Included**
## BuildBetter Release – August 2025 🚀
### 🎯 Simpler User Classification
* **Boundary System:** Replaced complex persona management with a straightforward "Internal vs. External" boundary system across the entire platform.
* **Clearer Speaker Classification:** All speakers, filters, and analytics now use consistent internal/external boundaries for easier understanding.
* **Streamlined Workflows:** Simplified speaker assignment and classification throughout the app.
### 💬 Conversations as First-Class Citizens
* **New Conversations Section:** Dedicated sidebar view for managing all your Slack, Intercom, and Kustomer conversations in one place.
* **Advanced Filtering:** Search and filter conversations by platform, participant, status, and more with powerful multi-criteria filtering.
* **Folder Integration:** Add conversations to folders using drag-and-drop and bulk actions, just like calls and documents.
* **Granular Permissions:** Control who can view and edit specific conversations with role-based access.
### 📊 Custom Analytics Dashboards
* **Build Your Own Dashboards:** Create custom analytics dashboards with drag-and-drop metrics, charts, and quotes from your data.
* **Natural Language Queries:** Build dashboard filters by simply describing what you want to see—no complex query syntax needed.
* **Cluster Insights:** Visualize patterns and trends across your customer feedback and signals.
### 🎫 Direct Ticket Generation
* **One-Click Tickets:** Generate Linear or JIRA tickets directly from signals with AI-powered descriptions and context.
* **Inline Editing:** Edit ticket details before creating them to ensure accuracy.
* **Quick Integration Setup:** Connect your ticketing tools right from the ticket generation flow.
### 🔍 Automated Data Enrichment
* **Company & People Enrichment:** Automatically enrich company and contact information using Exa.ai (opt-in at organization level).
* **Domain Validation:** Company domains automatically update from user emails for better data accuracy.
* **Enhanced Profiles:** See enriched metadata directly in company and people profiles.
### 📅 Smarter Calendar Management
* **Integration Health Banner:** Clear notifications when your calendar integration needs attention, with one-click reconnection.
* **Automatic Cleanup:** Stale calendar notifications disappear automatically after successful reconnection.
* **Better Error Handling:** Only see actionable notifications that you need to address.
### ⭐ Enhanced Favorites
* **Favorite Everything:** You can now favorite signals (extractions), documents, folders, and recordings for quick access.
* **Better Organization:** Keep your most important items front and center across all sections.
### 🎨 Improved Navigation
* **Updated Sidebar:** New "Assistant" and "Documents" items for faster access to key features.
* **Better Visual Hierarchy:** Improved section highlighting and navigation clarity.
### 🐞 Stability & Fixes
* More reliable dataset creation and extraction queries.
* Fixed conversation folder operations and bulk actions.
* Corrected navigation links for team invites and call recorder.
* Improved tag group updates with proper permissions.
* Better handling of CSV downloads with consistent field names.
* Fixed calendar notification persistence issues.
***
This release simplifies how you classify and work with participants, introduces powerful new ways to manage conversations and visualize insights, and makes it easier to take action on your data with direct ticket generation and enriched profiles.
**37 Commits Included**
## BuildBetter Release – August 2025 🚀
### 🏷 Smarter Tagging & Organization
* **Tag Groups:** Organize tags into clear groups, set group-specific rules, and apply them consistently across interviews, extractions, and signals.
* **AI Auto-Tagging:** Let AI automatically pick the right tags for your content, saving time and ensuring consistency.
* **Retroactive Tagging:** Update group rules and instantly re-apply them to past data.
* **Easier Management:** New clean, card-based interface to create, edit, and manage tags and groups.
### 📈 More Powerful Search & Filtering
* **Signals v2:** Search, sort, and filter by any person or company detail, including new dynamic metadata fields.
* **Natural Navigation:** Infinite scrolling, multi-column sorting, and better filtering so you can find exactly what you need—fast.
### 🎥 Improved Sharing & Recording
* **Public Sharing Control:** When sharing call recordings publicly, you can now choose whether or not to include the AI-generated summary.
* **Custom Recording Triggers:** Recording bots can start based on your chosen conditions—when someone joins, when a participant speaks, or manually.
### 📅 Expanded Integrations
* **Microsoft Teams & Calendar:** Secure support for Microsoft connections, paving the way for deeper Teams and Calendar features.
* **Slack Reactions:** Automate Slack bot reactions to messages for faster collaboration cues.
### ⚡ Faster Workflows
* **New Workflow Engine:** More flexible, reliable automation for tagging, routing, and other triggers—without relying on third-party services.
### 🖥 Better Everyday Experience
* Cleaner navigation with a persistent sidebar.
* Favorites and collections for quicker access to what matters most.
* Smoother profile updates, settings management, and consistent date displays.
### 🐞 Stability & Fixes
* More reliable filtering and sorting across tables.
* Improved handling for edge cases in calendars, metadata, and signals.
* Faster page loads and fewer UI crashes in large datasets.
* Reduced noisy system messages so you can focus on what’s important.
***
This release makes finding, tagging, and sharing information dramatically faster while giving you more control over how your data is organized and displayed. It also improves integrations and polishes the everyday interface for a smoother experience.
**53 Commits Included**
## 🚀 New Features
### Favorite Important Feedback Themes
Star your most critical customer feedback clusters to keep them front and center. Your favorites appear at the top of your dashboard, making it easy to track the issues that matter most to your team.
### Document Management & AI Chat
* Upload documents in multiple formats (Word, text, RTF, markdown) to your workspace
* Chat with your uploaded documents using AI to quickly find information
* Keep track of document sources - whether uploaded by your team or AI-generated
* Access your document library from the sidebar for easy reference
### Export Your Data as CSV
Download any of your customer insights, feedback, or conversation data as CSV files for further analysis in Excel or other tools. Perfect for sharing with stakeholders or conducting deeper analysis.
### Smart Folder Organization
* Create folders to organize your signals and insights
* Bulk add or remove items with powerful "select all" functionality
* Quickly search through your folders to find what you need
* Drag and drop items between folders for easy organization
### Enhanced Email Control
Take control of your email notifications with new preferences. Choose exactly which reports and updates you want to receive, including the ability to opt in or out of weekly trend emails.
### Floating AI Assistant (Beta)
Experience our new persistent AI chat that stays with you as you navigate between pages. Drag and drop items directly into the chat for instant analysis and insights. (Currently in beta for select users)
### Smarter Search
Our search now understands context better, using persona information to deliver more relevant results. The AI-powered search always applies the right filters to give you exactly what you're looking for.
## ✨ Improvements
### Better User Experience
* **Cleaner Interface**: Copy feedback clusters to clipboard, share direct links with teammates, and see trending badges on hot topics
* **Faster Performance**: Improved loading times for large datasets and smoother scrolling in tables
* **Smart Notifications**: Get helpful error messages that actually tell you what went wrong and how to fix it
* **Responsive Design**: Better experience on mobile devices and tablets
### More Reliable Integrations
* **Slack Integration**: Handles large workspaces better with improved rate limiting and retry logic
* **Better Error Recovery**: If one integration has issues, it won't affect your other data imports
* **Smarter Organization Detection**: Slack bot now correctly identifies your organization context
### Enhanced Data Management
* **Secure Access**: Fine-grained control over who can see and edit different types of data
* **Better Deduplication**: Smarter handling of contacts prevents duplicate entries
* **Improved Merging**: More reliable person and contact merging when combining data sources
## 🐛 Bug Fixes
* Fixed issues where contacts could be accidentally overwritten during imports
* Resolved Slack bot failures in multi-organization setups
* Corrected email preference settings that weren't being properly saved
* Fixed CSV exports to respect your current filters and show correct labels
* Resolved floating chat drag-and-drop issues
* Fixed folder selection checkboxes to accurately show selected items
* Improved error handling for failed imports - one failure no longer stops everything
## What This Means for You
This release brings powerful organizational tools and better control over your workspace:
* **Stay Focused**: Favorite and track your most important customer feedback themes
* **Work Your Way**: Export data for external analysis or upload documents for AI-powered insights
* **Better Organization**: Use folders to keep your insights organized and easily accessible
* **Improved Reliability**: More robust integrations and better error handling mean fewer interruptions
* **Enhanced Control**: Granular notification settings and access controls give you more power over your workspace
## Smooth Upgrade
All your existing data and settings are preserved during the upgrade. New features like favorites and folders are available immediately, while beta features like floating chat can be enabled upon request.
Questions or feedback? We'd love to hear from you!
**10 Commits Included**
### 🚀 New Features
#### Smarter Participant Recognition
We've upgraded how we identify who's who in your calls and meetings. Each participant now gets accurately tagged with their role (customer, team member, etc.), making it easier to understand conversation dynamics and filter insights by participant type.
#### Intelligent Speaker Identification
When someone joins a call who isn't in your contact list, our AI now uses conversation context and your organization's history to figure out their likely role. No more "Unknown Speaker" cluttering your transcripts.
#### Enhanced Call Summaries
Get richer, more detailed summaries of your calls that capture the key points and action items more accurately. These improved summaries also power better insights across your entire conversation history.
#### More Reliable Slack Import
* Resume interrupted imports exactly where they left off
* Handle large conversation histories without timeouts
* Better handling of Slack's rate limits
* See exactly what's been imported and what's pending
#### Targeted Data Processing
Process and update specific date ranges of historical data, making it easier to backfill missing information or retry failed imports for particular time periods.
### ✨ Improvements
#### Better Context for AI Features
Our AI now has access to more organizational context when analyzing your conversations, leading to more accurate insights and better understanding of your specific business terminology.
#### Faster Performance
* Quicker participant assignment processing
* More efficient data handling for large conversation volumes
* Reduced duplicate processing of calendar events
#### Smarter Meeting Titles
Call and meeting titles now intelligently prioritize user edits, calendar event names, and auto-generated titles in that order, ensuring you always see the most relevant name.
#### Enhanced Data Accuracy
Improved handling of participant data ensures everyone shows up correctly in your reports and analytics, with no conflicting role assignments.
### 🐛 Bug Fixes
* Fixed HubSpot ticket integration to properly categorize support interactions
* Resolved issues where some participants weren't showing up in meeting attendee lists
* Fixed calendar event associations to correctly link meetings with their recordings
* Improved accuracy of time-based filtering for calls and meetings
* Corrected data type issues that could cause errors in certain scenarios
### What This Means for You
This release focuses on making your conversation data more accurate and actionable:
* **Better Analytics**: With improved participant recognition, you can now filter and analyze conversations by role with confidence
* **Cleaner Data**: Fewer unknowns and better categorization mean clearer insights
* **More Reliable Imports**: Slack integration issues are a thing of the past - imports now complete reliably even for large workspaces
* **Smarter AI**: Enhanced context means our AI understands your business better and provides more relevant insights
### Smooth Upgrade
This update includes no breaking changes. All your existing data and integrations will continue working seamlessly while benefiting from these improvements.
Questions or feedback? We'd love to hear from you!
### 🚀 What's New
### 🎥 **Enhanced Recording Features (Desktop App)**
* **Screen & Webcam Recording**: Easily record your screen or webcam (or both simultaneously) with intuitive controls. Create clear, professional MP4 or WebM recordings, complete with webcam overlays positioned exactly where you want.
* **Audio-Only Recordings**: Quickly capture microphone or system audio, saving as accessible MP3 files. Mac users can now effortlessly capture system audio natively.
* **Easy Local Access**: Automatically save recordings to your device, making backups and offline access simple.
* **Quick Controls**: Manage your recordings directly from your desktop tray, simplifying your workflow.
### 📊 **Powerful Data & Table Management**
* **Easy Filtering & Sorting**: Quickly find insights with new intuitive filter and multi-column sorting capabilities, remembered across sessions.
* **Improved Table Performance**: Smooth navigation and quick rendering for large datasets, with convenient expandable previews for summaries.
* **Natural Language Queries**: Use everyday language to effortlessly create filters and pinpoint the exact data you need.
* **Undo & Revert**: Easily revert filters and sorting changes—no more worrying about accidental edits.
### 🗂️ **Improved Folder & Asset Navigation**
* **Effortless Browsing**: Quickly navigate folders with clear pagination, easy-to-use debounced search, and informative folder previews.
### 🛠️ **Expanded Integrations & Conversation Types**
* **HubSpot Tickets**: Now fully integrated as a conversation platform, enabling streamlined customer interactions directly within BuildBetter.
* **Selective Call Imports**: Enhanced filtering options for Gong and Fireflies imports, ensuring only the most relevant content is synced.
***
This update streamlines your daily workflows, makes capturing insights simpler, and significantly enhances your experience managing recordings, data, and customer interactions.
### 🚀 What's New
### 📅 **Smarter Folder Organization**
* Sort and filter folder items by their actual creation date, not just when they were added to the folder.
* Large folders now load smoothly with pagination - no more waiting for hundreds of items to load.
* See accurate item counts and preview samples of folder contents.
### 🚫 **Advanced Import Filtering**
* New "Title Does Not Contain" filter for call imports.
* Exclude unwanted calls automatically during import from Fireflies.ai and Gong.
* Case-insensitive matching makes filtering more flexible.
***
### ✨ Improvements & Enhancements
### 💬 **Better Slack Integration**
* Smarter error handling that doesn't affect other integrations.
* Get notified only about issues that affect you specifically.
* Clearer guidance when reauthorization is needed.
* Improved permission checks with helpful prompts.
### 🤖 **Smarter AI Classification**
* Persona classification now automatically adapts to your custom personas.
* AI prompts update dynamically when you change your persona list.
* More accurate classification for your specific use cases.
### 🔔 **Enhanced Notifications**
* Comment notifications now take you directly to the specific comment.
* No more hunting through long transcripts to find what someone said.
### 🎥 **Better Bot Management**
* Bot images now properly reflect your current settings.
* Clear indication that bot setting changes only apply to future calls.
* Improved visual feedback for bot configuration.
### 🚀 **Performance Improvements**
* Faster extraction queries with better data isolation.
* Improved folder browsing with smoother pagination.
* More responsive UI across the platform.
***
### 🐛 Bug Fixes
* Fixed speaker attribution issues during imports - Speaker 0 now correctly identified.
* Resolved recording limit display showing incorrect status.
* Fixed folder loading issues and UI glitches.
* Corrected bot image display when set to "none".
* Improved handling of folder data to prevent loading errors.
***
### 🔧 Technical Updates
* Enhanced system architecture for better performance and reliability.
* Improved data consistency across imports and integrations.
* Various backend optimizations for smoother operation.
* Application version updated to `3.9.6`.
***
## 📅 Updated Release (2025-06-16)
### 🚀 New Features
* **Sort Signals by Newest or Oldest**: Easily find relevant data faster by sorting signals according to recency.
* **Infinite Scroll for Signals**: Browse through large sets of signals effortlessly without manual pagination; data automatically loads as you scroll.
* **Unlimited Organization Recording Limits**: Organizations can now choose unlimited recording times. You can easily set or clear this limit directly in your organization settings.
### ✨ Improvements & Enhancements
### ⚡ **Faster Performance**
* **Improved Data Load Speed**: Signals and extractions now load significantly faster thanks to optimized database queries and reduced data fetching overhead.
### 🎯 **Enhanced User Experience**
* **Clearer Loading Feedback**: You'll see responsive visual indicators and skeleton placeholders clearly distinguishing between loaded and loading states, making your interactions smoother and more intuitive.
* **Consistent Sorting Across Pages**: Signals and folder items now maintain consistent sorting, making navigation intuitive.
### 🔍 **Better Search & Organization Management**
* **Faster and More Relevant Search**: Searches now return quicker and more relevant results due to optimized indexing.
* **Simplified Organization Settings**: Organization usage and recording limits settings have improved clarity, and you'll receive clear notifications when settings are updated.
### 🐛 Bug Fixes
* **Resolved Stability Issues**: Fixed an issue causing unnecessary reloads on the signals page, making the experience smoother and more reliable.
### 🚀 What's New
### 💬 **Automated Slack Import Scheduling**
* Schedule automatic imports of Slack conversations on your preferred schedule (daily, weekly, etc.).
* Choose your timezone and exact time for imports to run.
* See when your last import occurred directly in the configuration.
* Select between importing conversations or pushing summaries.
### 🔄 **Smarter Slack Integration**
* Automatic detection when Slack app is uninstalled with proper cleanup.
* Prevents duplicate channel configurations - each channel can only be imported once.
* Clear, human-readable schedule summaries so you know exactly when imports will run.
* Better error messages and validation to help you set up integrations correctly.
### 📊 **Flexible Data Import Options**
* Import data from more sources including local files, web URLs, and cloud storage.
* Better speaker identification in imported conversations.
* Support for various data formats and sources.
***
### ✨ Improvements & Enhancements
### 🤖 **AI Model Upgrades**
* Upgraded to our latest AI models for better quality across all features.
* Improved accuracy in summaries, extractions, and document generation.
* Faster processing with higher token limits.
### 📈 **Data Quality Improvements**
* Even stricter quality standards for datasets (validation threshold increased).
* Better citation management - old citations are properly cleared before regeneration.
* More reliable extraction results with fewer duplicates.
### 🎨 **Interface Enhancements**
* Improved Slack configuration interface with better schedule pickers.
* Real-time validation with immediate feedback.
* Helpful tooltips and preview of your import schedule.
* Clearer distinction between different configuration types.
***
### 🐛 Bug Fixes
* Fixed "Last Import" time showing incorrect future dates.
* Resolved timezone issues with scheduled imports running at wrong times.
* Corrected duplicate data issues in citations and extractions.
* Fixed permission errors preventing regular users from accessing Slack features.
* Improved handling of inactive or deleted user notifications.
* Better speaker mapping in imported conversations.
***
### 🔧 Technical Updates
* Enhanced security for Slack integrations.
* Improved system architecture for better reliability.
* Various backend optimizations for improved performance.
* Application version updated to `3.9.5`.
### 🚀 What's New
### 👥 **Bulk People Management**
* Select and delete multiple people at once from your People table.
* Streamlined cleanup of duplicate or outdated contacts with confirmation dialogs.
* Changes reflect immediately across your workspace.
### 🔗 **Smarter Integration Monitoring**
* See real-time status of your Intercom integration (connected, disconnected, or restricted).
* Get clear notifications and guidance when integrations need attention.
* Know exactly when and why an integration isn't working as expected.
### 📑 **Unlimited Data Access**
* Access all your extractions and data without artificial limits.
* Handle large result sets smoothly - perfect for comprehensive analysis.
* No more pagination restrictions when working with extensive datasets.
***
### ✨ Improvements & Enhancements
### 📅 **Smarter Calendar Sync**
* Calendar events now sync more efficiently, processing only actual changes.
* Reduced duplicate notifications and unnecessary updates.
* Better handling of large calendars with hundreds of events.
* Improved detection and handling of deleted calendar events.
### 🎯 **Enhanced Speaker Assignment**
* "Assign Speaker" feature now works more reliably in call recordings.
* Clear error messages if something goes wrong.
* Better navigation to the exact moment in the transcript.
### 📊 **Higher Quality Datasets**
* Stricter quality standards for dataset validation ensure better data accuracy.
* Improved logging helps track dataset creation and updates.
### 🚀 **Performance Improvements**
* Faster processing of large batches of data.
* More efficient handling of background tasks.
* Reduced system load for smoother overall performance.
***
### 🐛 Bug Fixes
* Fixed speaker assignment button not updating properly in some cases.
* Resolved issues with calendar event deletions not being recognized.
* Corrected problems with empty conversations creating unnecessary processing jobs.
* Fixed integration status not displaying correctly in settings.
* Improved error handling throughout the application.
***
### 🔧 Technical Updates
* Enhanced command-line tools for power users and administrators.
* Improved system architecture for better reliability and maintainability.
* Cleaned up outdated code for improved performance.
* Application version updated to `3.9.4`.
### 🚀 What's New
### 📊 **Datasets - Organize Your Data Like Never Before**
* Create custom datasets to organize and analyze your calls, documents, and insights.
* Build powerful data collections with custom columns and automated value generation.
* Share datasets with specific team members or keep them private for your own analysis.
* Natural language filtering - just describe what you're looking for and we'll find it.
### 🔍 **Advanced Signals Table**
* Completely redesigned signals view with lightning-fast infinite scrolling.
* Sort by multiple columns and apply complex filters with ease.
* Create and manage topics and keywords directly from the filter interface.
* Side panel view for detailed signal information without leaving the table.
### ✅ **Document Verification & Citations**
* Track and verify important information extracted from your documents.
* Highlight phrases to create citation datasets for review workflows.
* Perfect for compliance, fact-checking, and quality assurance.
### 🔐 **Enterprise Single Sign-On (SSO)**
* Automatic SSO provider detection based on your email domain.
* Seamless login experience for organizations with custom authentication.
***
### ✨ Improvements & Enhancements
### ⚡ **Supercharged Performance**
* Tables now load instantly with smooth infinite scrolling - no more pagination.
* Real-time updates show data as it's being processed.
* Drag and drop columns to reorder them exactly how you want.
* Your table preferences are remembered across sessions.
### 🤝 **Smarter Collaboration**
* Enhanced sharing permissions for datasets and documents.
* Access datasets through document citations, not just as the creator.
* More flexible team collaboration options.
### 🎯 **Powerful Search & Filtering**
* All text searches are now case-insensitive for easier finding.
* Advanced filtering with "includes" and "excludes" options.
* Deep-linkable views - share exact filtered results with your team.
* Removed artificial limits on data queries - access all your information.
### 🎨 **Interface Improvements**
* Better loading indicators so you always know what's happening.
* Improved onboarding flow for new users.
* Tabbed navigation for easier access to different features.
* Document editor now maintains your cursor position when saving.
***
### 🐛 Bug Fixes
* Fixed issues with keyword and topic filtering in signals.
* Resolved document citation saving problems.
* Corrected calendar event processing for better reliability.
* Fixed cursor jumping issues in the document editor.
* Improved handling of empty filter selections.
* Better error messages throughout the application.
***
### 🔧 Technical Updates
* Major architecture improvements for better reliability and speed.
* Enhanced security and access control systems.
* Improved error handling and system stability.
* Application version updated to `3.9.3`.
### 🚀 What's New
### 📄 **Enhanced Document Summaries**
* Upgraded to our most advanced summarization model for higher quality, more accurate document summaries.
* Experience improved clarity and better insights across all document types.
### 📥 **Flexible Call Imports**
* Import calls from external sources even without video or audio files.
* Perfect for text-based transcripts or meeting notes from other platforms.
***
### ✨ Improvements & Enhancements
### ⚡ **Faster File Uploads & Downloads**
* Optimized file transfer system for improved reliability and speed.
* Better performance when handling large recordings and documents.
* Reduced memory usage for smoother operation.
### 🎯 **Better Call Organization**
* Improved handling of calls and extractions that aren't linked to companies.
* All your data is now properly displayed, even when company information is missing.
### 🚀 **Performance Improvements**
* Increased system resources for better stability during heavy workloads.
* Enhanced processing power for faster extraction and analysis tasks.
***
### 🔧 Technical Updates
* Removed unused extraction reranking feature to streamline the interface.
* Various backend optimizations for improved reliability and performance.
* Application version updated to `3.9.2`.
### 🚀 What's New
### 🔗 **Slack Integration Overhaul**
* Connect Slack effortlessly using our new OAuth-based integration.
* Manage Slack workspaces independently of summaries, enabling flexible channel-specific settings.
* Enhanced workspace selection experience post-OAuth connection.
* Automatic data migration ensures a seamless transition to improved Slack models.
***
### ✨ Improvements & Enhancements
### 📄 **Enhanced Document Experience**
* Improved document title input stability: consistent sizing, intuitive "Untitled" placeholders, and reliable saving.
* Document titles now accurately displayed in search results.
### 🧑 **Improved Person Management**
* More reliable person merging workflow, with streamlined GraphQL queries and clearer integration logic.
### 📂 **Folder Management Improvements**
* Consistent and accurate updates to folders and nested items following changes.
### 🛠️ **Dev Tooling**
* Expanded spellcheck to include project-specific terminology, enhancing development experience.
***
### 🐛 Bug Fixes
* **Person Merge:** Fixed persona attribute loss during merges.
* **Intercom Settings:** Corrected toggle-switch states to reflect actual settings.
* **Slack Integration:** Resolved migration and dependency issues to ensure stable, error-free connections.
* **Folder Items:** Fixed item addition conflicts to ensure accurate updates without errors.
***
### 🔧 Technical Updates
* Streamlined Slack integration repository logic and analytics handling.
* Improved organization of GraphQL operations for clearer, maintainable codebase.
* Application version updated to `3.9.0`.
### 🚀 What's New
### 🔐 Role-Based Access Control (RBAC)
* Simplified permissions management ensures clearer roles and tighter security.
* Admin actions now securely separated, enhancing safety and system integrity.
### 📊 Unified Data Views
* New unified List/Grid views for calls, folders, documents, and signals.
* Easily perform bulk actions, drag-and-drop items, customize columns, and maintain persistent user preferences.
### 📈 Signals Filtering & Table View
* Filter signals efficiently by Data Type, Source, and Creator (AI/manual).
* New customizable signals table view offers faster navigation and improved readability.
### 🔍 Improved Extraction Relevance
* Relevant content now prioritized through Cohere-powered reranking, enhancing accuracy.
### 📤 Public Document Sharing
* Quickly share documents securely via public links with complete control over access.
### ⏱️ Invitation Rate Limits
* Built-in rate limiting prevents invitation spam, providing clearer feedback during user invitations.
### 🚫 Enhanced User Deletion
* Delete users without affecting their federated authentication identities, streamlining account management.
### 📱 Responsive Views
* Data views automatically adapt to mobile, tablet, and desktop screens, significantly improving usability.
***
### ✨ Improvements & Enhancements
### 🔒 Security Enhancements
* Enhanced protection against XSS and injection attacks across the application.
* Stronger GraphQL query protections prevent resource exhaustion and unauthorized queries.
### 🎨 UI/UX Updates
* Modernized interface improves clarity, interaction feedback, and preview functionality.
* Unified and streamlined bulk operations, drag-and-drop features, and avatar visibility.
### ⚡️ Performance Improvements
* Faster loading, smoother interactions, and better handling of large data sets.
### 🛠 Expanded Integrations
* Improved support for integrations including Clari Copilot, Fireflies.ai, GitHub, and Slack.
***
### 🐛 Bug Fixes
* Fixed WebSocket authentication issues ensuring smoother real-time interactions.
* Resolved search results duplication and UI inconsistencies.
* Improved filtering logic and synchronization between backend and UI.
* Enhanced sanitization to maintain data integrity and prevent unintended character loss.
***
### 🔧 Technical Improvements
* Improved database schema and permissions management for enhanced performance.
* Refactored backend/frontend modules for better maintainability and scalability.
* Enhanced infrastructure with updated security policies and efficient integration handling.
### 🚀 New Features
### 📂 Folders: Direct Recording Upload
* Added **"Upload Recording"** buttons in:
* Folder title bar
* Empty folder states
* Allows uploading recordings directly into folders.
### 🔗 Signal Clips View: Copy Signal URL
* Introduced a **"Copy Signal URL"** button next to the "Open" button in the signal detail panel within the Clips tab.
### 📧 Authentication: Clearer Non-Business Email Error
* Updated error messages when registering with a non-business email (e.g., Gmail) for clearer guidance.
### ⚙️ Settings: Control Automatic Call Titles
* New toggle (**Settings > Organization > General**) for automatic call title generation from conversations (default: **enabled**).
### 🧑🤝🧑 People Table: Bulk Selection
* Added **"Select All"** and **"Deselect All"** buttons when search/filter is active in the People table header.
### 🔐 Granular Sharing & Permissions (Folders/Documents)
* New permissions model:
* **Public:** Workspace-wide access
* **Shared:** Specific users/groups
* **Private:** Owner-only access
### 🤝 Share UI (Folders/Documents)
* New unified **"Share"** modal for managing access levels and inviting collaborators.
***
### ✨ Improvements & Enhancements
### 📄 Call Summary Status Display
* Enhanced statuses:
* "Awaiting Transcript"
* "Awaiting Summary"
* "No Transcript"
### 👤 People Table UI Clarity
* Updated placeholder to "Showing All Personas."
* Standardized empty-state message to "No people found."
### 🔄 People Table Workflow After Merge
* Table automatically refreshes and clears selections after merging entries.
### 📁 Folder Access Management UI
* Renamed modal to **"Folder Access"** and integrated options for managing "Shared With..." access.
### 🏷️ Folder Ownership Display
* Folder title bar now displays current owner instead of original creator.
### 🔄 UI Responsiveness: Folder Title Bar
* Folder title bar immediately reflects updates without manual refresh (name/permissions).
### 🗃️ Calendar Worker Logging (Revert)
* Reduced calendar worker logging verbosity by excluding full message objects from error logs.
***
### 🐛 Bug Fixes
### 📅 Calendar Integration: Complex Event Updates
* Improved calendar update handling (ical\_uid changes, reschedules) to avoid duplicates.
### 🤖 Calendar Integration: Bot Settings Job Handler
* Fixed calendar worker issue processing bot-setting updates triggered by calendar rules.
### ⏲️ Calendar Integration: Optional Start Timezone
* Resolved errors with events missing explicit start timezones.
### ⚙️ Calendar Worker Stability: Malformed Messages
* Improved error handling/logging to prevent crashes from malformed queue messages.
### 📝 Metadata Extraction: Title/Summary Overwrite
* Prevented automatic metadata extraction from overwriting manually edited call titles/summaries.
### 📑 Signals Page: Uncategorized Tab Visibility
* Fixed issue hiding "Uncategorized" signals when no filters were applied.
### 🗂️ Thread Context: Source Type Reflection
* Corrected thread context display to reflect all associated source types (calls, documents).
### 💬 Slack Signal Creation: No Text Content
* Provided informative feedback in Slack when attempting to create signals from textless messages.
### 🔗 Sharing Links: Private Document URL Path
* Corrected URL generation for private document sharing links to use `/documents/`.
### New
* **Document Generation Overhaul**:
* New asynchronous document generation worker improves performance and stability
* Automatic checkpointing resumes document creation after interruptions
* AI-powered content reranking to prioritize relevant sections
* **Improved Calendar Processing**: Revamped background processing ensures reliability and prevents conflicts
* **Integrations & Features**:
* User Deletion with optional data transfer to other users
* Recording Rules Update with condition to disable recording if specific attendees are absent
### Improved
* **Performance Enhancements**:
* People List Optimization with instant filtering, sorting, and smooth scrolling
* Major improvements in document generation speed and efficiency
* **Stability & Reliability**:
* Enhanced error handling in calendar events and document generation
* Reduced memory usage to eliminate out-of-memory errors
* Improved visibility into document generation status and logs
* **User Experience**:
* More descriptive AI Assistant tool interactions and clearer UI elements
* Easier deletion and management of feedback sources
* Enhanced accuracy in transcript navigation and speaker assignment
### Fixed
* **API Stability**: Resolved critical API memory issues
* **Calendar Bot Settings**: Fixed processing failures for bot settings updates
* **Transcript UI**: Corrected transcript selection and navigation issues
* **Interview Summaries**: Ensured only the latest summary version is displayed
* **UI/UX**: Addressed layout issues on various screen sizes and improved account dropdown accessibility
### Technical Changes
* **Internal Enhancements**: Major refactoring to improve document generation reliability and code maintainability
* **Infrastructure Updates**: Enhanced queue management and introduced robust checkpointing
### New
* **Call Imports via JSON**:
* Import call data (transcripts, metadata) through structured JSON files
* Schema validation ensures imported data meets required formats
* **Call Imports from Fireflies AI**:
* Automatically import calls from connected Fireflies AI accounts
* Regular polling fetches new calls without duplication
### Improved
* **Simplified JSON Call Imports**: No longer require poster image data, making uploads quicker and simpler
* **Call Import Stability**: Internal improvements to ensure all import methods (JSON, Fireflies AI) function reliably
### Fixed
* **Interview Summary Display**: Resolved an issue where multiple historical summaries were incorrectly displayed, ensuring only the most recent summary is shown
### New
* **Call Notes & AI Integration**:
* Add and edit notes directly on call pages via new Notes Tab
* Notes are searchable and integrated into AI chat queries
* **Recording Comments & Mentions**:
* Add comments directly on call recordings
* Use @ to notify teammates via email
* **Revamped Folder Management**:
* Enhanced usability with hierarchical views, bulk actions, checkboxes, and folder search
* **Call-Specific Document Management**:
* New Documents Tab lists call-specific documents with direct "Generate Document" shortcut
* **Direct Document Deletion**:
* Delete documents directly from document cards in list views
* **Chat Interaction Enhancements**:
* Copy AI messages and quickly add items to folders or generate documents from chat
* **Consistent "Generate Document" Button**:
* Generate documents from Calls, Folders, and Chat interactions
* **Signal Creator Attribution**:
* Clearly see who created Signals associated with calls
* **Signal Context Linking**:
* Directly access the original source (e.g., Slack or email) for Signals
### Improved
* **Folder Path Visibility**:
* Full hierarchical paths now visible in folder filters
* **Enhanced Document Creation Flow**:
* Pre-selection on Call pages and clearer optional fields
* **Document Display Updates**:
* Improved handling of long titles and better link behavior
* **Search Assistance**:
* Helpful suggestions appear when searches yield no results
* **Signal Folder Management**:
* Adding Signals to folders uses the updated folder interface
* **UI Elements Refresh**:
* Minor visual updates, including indeterminate checkbox state
* **Chat URL Conversion**:
* Copied chat references convert to clickable URLs automatically
### New
* **Document Regeneration**: Regenerate documents directly from the error page for faster, simpler issue resolution
* **Fireflies AI Integration**: Seamlessly import call transcripts and meeting data from Fireflies AI
* **Expanded Platform Integrations**: Added improvements for Slack, Clari Copilot, and Fireflies AI
* **Call Tagging Controls**: Enable or disable automatic tagging for calls through a new setting
### Improved
* **UI & User Experience**:
* Better management interfaces for integrations
* Clearer, more helpful error messages in documents
* Improved notifications for regeneration status updates
* Adjusted Intercom widget placement based on user feedback
### Fixed
* **Slack Integration Stability**: Integrations now correctly remain active unless explicitly disconnected
* **Notification Delivery**: Resolved issues affecting Slack notifications to ensure messages reach intended recipients
* **Error Messaging**: Corrected display issues with error messages on the document view
### New
* **Slack Integration**: Create signals directly from Slack conversations with a popup interface for specifying signal type and context
* **Manual Signal Content Regeneration**: New "Regenerate Signal" feature lets users generate AI Signal content by selecting a specific time range from call transcripts
* **Smart Interview Summary Management**: Interview summaries now automatically track the latest version, ensuring only the most recent summaries remain active
### Improved
* **Precise Data Extraction**: Define optional time ranges for extractions, allowing for more targeted and relevant results
* **Query Performance**:
* Optimized filtering & data retrieval for better speed and efficiency
* Improved user-scoped extractions and permissions checks
* **Schema Updates**: Fully integrated Slack as a supported type across relevant database structures and APIs
* **Interview Summary Performance**: Added indexing to improve query speed for faster retrieval of the latest summaries
### Fixed
* **Signal & Summary Processing**:
* Fixed invitee email rule inconsistencies, ensuring invitees follow the same rules as attendees
* Corrected signal display logic, so the "Edit Clip" button only appears for signals linked to calls
* Improved "Uncategorized" tab filtering for more accurate and efficient extractions
### New
* **Call Metadata Management**: Organizations can now enable or disable automatic call tagging with a new toggle in settings
### Improved
* **Email Styling**:
* Emails now render with inline styles, fixing formatting issues in Gmail and other clients
* Consistent spacing and styling for tables, headings, lists, and bold text
* **Microsoft Teams URL Validation**: Now supports .live and .microsoft domains, ensuring all Microsoft Teams links are accepted
### Fixed
* Fixed an issue where placeholder text disappeared when editing folders
* Signals that were manually created or missing an assigned type now correctly appear in the "Uncategorized" tab
* Adjusted the OrgAutoTagSetting layout for proper display across all screen sizes
* The system now respects the auto-tagging setting, ensuring tags only generate when enabled
### Technical Changes
* Adjusted query logic to properly categorize signals and improve performance
### Deep Analysis Documents
Imagine sifting through over 5,000+ feature requests, issues, trends, and blockers—and having it all automatically organized with charts, citations, and clear next steps. With customizable templates and seamless data extraction, you get instant, powerful insights to supercharge your product strategy. With our latest release of Documents, all of this is possible.
### New
* **Real-Time Document Updates**: Document changes now trigger real-time events, keeping notifications and workflows instantly updated
* **Smarter Semantic Search**: Automatically updates when documents change, ensuring the most relevant and accurate search results
* **Clari Copilot Integration**: Added support for Clari Copilot call imports with UI improvements and tailored integration settings
* **Reasoning Models (Beta)**: New beta brings enhanced chat and data extraction features, with customization options via feature flags
### Improved
* **Robust Import Process**: Added retry logic to imports, ensuring metadata loads correctly even when delayed
* **Performance Optimizations**:
* Debouncing added to document updates, reducing lag and errors
* Improved input validation for templates, making form creation more seamless
* **UI Enhancements**:
* Refined Integrations page, hiding unnecessary internal workflows for cleaner navigation
* Optimized document rendering for better performance and responsiveness
### Fixed
* **Reports**: Resolved issues ensuring correct database alignment and data accuracy
* **Database Consistency**: Improved foreign key references for stronger database integrity
* **Document Processing**: Fixed vectorization and event trigger issues for smooth and reliable processing
* **UI Loading**: Ensured documents load correctly, reducing inconsistencies in updates and interactions
### New
* **Getting Started Page**: Step-by-step tutorials to help users navigate the platform, from essential setups to advanced features
* **In-Depth Tutorials & Guides**:
* Detailed guides on calendar setup, call summarization, folder organization, CRM & Slack integration, and workflow automation
* Progress tracking feature to show how far users have advanced in tutorials
* Dedicated 'Getting Started' menu in the sidebar for quick access to learning resources
* **New Platform Icons**: Distinctive GitHub and Salesforce icons added to the signals page for easier tool identification
### Improved
* **Intuitive & Engaging Visuals**:
* Refined UI with structured cards and progress indicators for better navigation
* Updated platform-specific icons for GitHub and Salesforce
* New "unknown" icon for unsupported platforms
### New
* **Improved Media Uploads**: New Media Upload Service handles media uploads separately from call management for improved efficiency
* **Interview Transcript Management**: Added "unavailable" transcript status for clearer tracking of transcript states
* **Call Asset Component**: Better display of call assets with a more structured and organized experience
* **Salesforce Company Imports**: Import companies directly from Salesforce with new search and import hooks
* **Enhanced Signal Details**: Added tooltips to Signal Detail entries for better data insights
* **Faster Recording**: New "+ Create" button for instantly starting a recording session
### Improved
* **Role-Based Permissions**: Updated access control to ensure the right users can manage data securely
* **Integration Verification**: System now checks for proper Salesforce setup before importing companies
* **GraphQL & Data**: Enhanced queries and mutations to support richer company metadata
* **User Interface**:
* Cleaner layout and spacing in call pages
* Updated button styles for a modern look
* Improved calendar event display
* **Performance**:
* Smoother interactions with optimized async operations
* Added loading indicators for better user feedback
* Enhanced error handling to minimize disruptions
* **Authentication**: Token refresh interval reduced from 50 minutes to 5 minutes, preventing unexpected logouts
### Fixed
* **Paragon Workflows**: Resolved issue affecting workflow updates for accurate data processing
* **Error Handling**: Fixed notification and call creation errors for increased stability
* **Dark Mode**: Adjusted CSS imports to resolve styling issues, particularly in dark mode for comments
### Technical Changes
* **Code Optimization**:
* Removed unnecessary logs and reorganized imports
* Improved state management for faster app behavior
* **Release Process**: Updated documentation to require commit approvals before deploying to staging and production
### New
* **Dashboard Layout**: Refreshed design providing a cleaner, more intuitive interface with streamlined access to key features
### Fixed
* **Slack Integration**:
* Resolved issue where Slack's placeholder property was mistakenly required, allowing select actions to function correctly
* Improved error-handling with clearer debugging messages for easier troubleshooting
* **Calendar Worker**:
* Fixed a bug where visibility manager settings were not being applied correctly in event recording jobs
* Enhanced logging and tracking for more transparent job execution
### Improved
* **Faster API Responses**: Optimized calendar database queries, reducing API response times by up to 30%
* **Better Memory Management**: Improved efficiency in background jobs, reducing system resource usage for greater stability
### Security
* **Stronger Authentication**: Updated protocols to align with latest security standards for safer third-party integrations
* **Improved Data Encryption**: Enhanced protection for information at rest and in transit, increasing compliance with security practices
### Documentation
* **Updated User Guides**: Revised manuals reflecting dashboard changes, with step-by-step guides for new and existing features
### New
* **Automatic Notification Emails**: When an interview is linked to a calendar event, all invitees will automatically receive notification emails
### Improved
* **More Accurate Email Delivery**: Enhanced attendee and invitee retrieval for better notification accuracy
### Fixed
* **Reliable Calendar Event Processing**: Resolved errors when processing events with empty attendee lists, ensuring smooth scheduling
### Technical Changes
* **Optimized Attendee & Calendar Event Queries**:
* Removed the first\_name field in the attendee model to simplify data management
* Consolidated invitee retrieval queries to reduce system load and improve performance
### Transform your messy data into streamlined workflows!
With intelligent AI tagging, BuildBetter instantly sorts your data into folders and Slack channels—sending customer issues directly to the Customer Success team and routing engineering syncs to the right spot. Say goodbye to manual organization and hello to effortless, automated insights that let you focus on what matters most. This is just the beginning of how BuildBetter can supercharge your team's productivity!
### New
* **Enhanced Workflow Management**:
* New workflow tools for more efficient process management
* Manual workflow trigger for direct process initiation
* **Improved Help & Support**: Intercom support bubble relocated to the sidebar as "Help & Support"
* **Event-Driven Updates**: Keeps folders and extraction data instantly refreshed for real-time responsiveness
* **Seamless Authentication**: Many integration authentication tokens now refresh automatically every 50 minutes
### Improved
* **Cleaner Interface**:
* Intercom settings now hide the default launcher for a more streamlined UI
* Enhanced tooltips and refined styles in Call Details section
* **Optimized Performance**:
* More efficient integration workflows, reducing delays in GraphQL operations
* Better data retrieval for organizations and extraction IDs
* **User-Friendly Components**:
* New inline-editable input field for quick edits
* Improved tooltip functionality for better contextual guidance
* Silent authentication refresh reduces UI loading states
### Fixed
* **Dark Mode**: Consistent styling in the Notification Center
* **UI Visuals**:
* Adjusted borders and padding for improved layout consistency
* Fixed comment display with corrected border radius issues
* **Form Handling**:
* Resolved unintended form submissions in ChipSelect component
* Adjusted Call Details tags for cleaner display
* **Data Management**:
* User timezone settings now work correctly across the app
* Improved GitHub data handling with better categorization
* **Performance**:
* Optimized event updates in integrations
* Enhanced GraphQL queries and mutations
* Code cleanup for better organization and maintainability
### New
* **Manual Attendee Management**:
* Add non-speaker attendees to call recordings manually
* New "Call Attendees" section for simplified participant management
* **Improved Selection Experience**: New checkbox-style option in dropdowns for better usability
* **Faster Person Creation**: Streamlined system for adding new people to the platform
### Improved
* **Clearer Terminology**: Updated "Participants" to "Speakers" for better understanding of transcripts
* **Enhanced Tooltips**: Added support for advanced customization, improving readability and interaction
* **Better Data Organization**: Clear distinction between speakers and non-speaker attendees for more accurate transcripts and reports
* **Smoother Tagging**: More intuitive "Add Tag" button for consistent tagging across the app
### Fixed
* **Attendee List Accuracy**:
* Non-speaker attendees correctly handled in queries and extractions
* Fixed issues with interview attendee lists to prevent missing or duplicated data
* **Error Handling**: Resolved console errors and improved error handling when adding new people
* **UI Improvements**: Adjusted button placement in call details for better layout and consistency
### New
* **Company-Interview Linking**: Added ability to link companies to interview recordings for better organization and tracking
* **Companies Section**: New section in call details for easier viewing and management of associated companies
* **Enhanced Feedback System**:
* Submit feedback on responses with sentiment tracking (positive or negative)
* Real-time feedback updates ensure your input is reflected instantly
### Improved
* **UI Enhancements**:
* Refreshed interface with improved button styling and better dropdowns
* Updated avatars for a cleaner look
* Dropdowns now handle read-only selections more effectively
* **Performance Optimization**:
* Improved caching speeds up company and call updates
* Faster and more consistent data retrieval for interviews
* **Feedback Process**: Refined submission flow with clearer indication of how feedback is used
### Fixed
* **Date & Time Display**: Corrected date formatting to properly adjust to user timezone
* **Data Synchronization**: Cache improvements ensure call and company data updates reflect immediately
* **Backend Optimizations**:
* Optimized database queries and cleaned up unused code
* Improved GraphQL queries and API performance
* **Patch (01/29)**: Fixed errors related to timezone processing when user\_timezone setting was absent
### New
* **Chat Backend Overhaul**: Transitioned to new rebuild system, significantly improving performance and reliability in thread execution
* **Streaming and Contextual Updates**: Implemented a new lightweight event system and context builder for real-time updates, enabling message delta streaming for better user engagement
* **GitHub Integration**: Added GitHub as a new conversation platform and metadata source (requires feature flag)
* **Frontend and Thread Naming**: Users can now specify thread names, improving thread organization and management
### Improved
* **Semantic Search Optimization**: Streamlined the search process with simplified steps, enhanced filtering logic, and improved logging
* **UI/UX Enhancements**: Improved hover effects, notification center styling, and loading states for a more intuitive and responsive UI
* **Logging & Debugging**: Enhanced logging across services for better traceability and quicker issue resolution
* **Thread Event Management**: Introduced new thread event types and improved tool call handling for clearer execution pathways
### Fixed
* **Popover Overlay**: Fixed issues with popover components to ensure a consistent user experience
* **Data Model & Import Paths**: Resolved issues related to the data model and import paths to prevent runtime errors
* **Timezone Prompt**: Updated date formats to include time details (HH:mm:ss), ensuring accurate UTC-to-local time conversion
* **Database Optimization**: Added indexes and optimized database queries to improve performance and data accuracy
### New
* **Chat Search Enhancement**: Added filtering by interaction type ('internal' or 'external') to refine search results in chat applications
* **Salesforce Integration**: Expanded ConversationPlatform with salesforce\_case and updated ConversationService for better Salesforce case handling
* **Semantic Search Upgrades**: Introduced new parameters (sortOrder, signal type, persona filters, display\_ts) to improve search result relevance
* **Interview Source Expansion**: Enabled text document uploads for recording creation via upload\_text
* **Improved Comments**: Added real-time comment functionality within signals and developed a notification system for collaboration
* **Timezone Detection in Chat**: Implemented automatic timezone detection to ensure accurate timestamps
### Improved
* **User Permissions**: Expanded organization role permissions to manage metadata fields
* **UI & Styling**: Enhanced UI with icon-enhanced tabs and moved to CSS classes for dark mode
### Fixed
* **Signal Filters**: Fixed persona filter issues in signals for accurate data joining
* **User Identification**: Corrected user identification in notifications
* **Slack Notifications**: Fixed errors in Slack notification connections
* **Transcript Sorting**: Ensured monologue sentences in transcripts are sorted by start time
* **Call Assignment**: Improved handling of missing or empty emails in call assignment notifications
* **File Upload Validation**: Removed unnecessary validations for smoother file uploads
### New
* **Recording Enhancements**:
* Adding meeting notes to recording page
* Adding ability to upload text documents as new recordings (creates an empty recording with the text document as the meeting notes)
* Adding ability to view signals on a recording transcript and via the Signals tab on a recording
* Adding ability to manually create signals via selecting transcript text
* **Signal Workflow**:
* Added comments in Signals
* Updates to ensure titles and descriptions for signals are clear, and fields appear editable
* **Search Enhancements**:
* Adding search filters for **"Asset Type"**
* Adding ability to search for folders, playlists, companies, people, documents, and signals
* **Folders & Signals**:
* Add the ability to add documents to folders
* Add contextual menu to add items to folders in the Document card
* Modify folder items to accept documents
* Show documents added to folders, including subfolder previews
* Add action to trigger vectorization after document creation
* Vectorize production documents and missing summaries on staging
* Adding ability to filter signals by custom metadata properties
* Adding comments to signal view
* **Chat**:
* Add folders as a draggable and default context in Chat
* Ensure citations for documents work in Chat
* Investigate and fix chat reply behavior without a custom context
* **Reports**:
* Create a **Reports Unlock** page that is now visible to all users
* **Other Additions**:
* Auto-complete property names in **People Profile** metadata
* Create tab views to switch between **People** or **Companies** in the **People View**
* Adding **Hubspot** and **Salesforce** syncing (to BuildBetter People and Companies)
* Replacing the current notification system with **LiveBlocks notifications** (this enables notifications for the comment system added to signals)
* Adding the ability to select a specific language for transcripts and generated text
### Fixed
* **Signals**:
* Fix sliders broken in signal filters
* **UI Issues**:
* **Backdrop-filter blur** affecting dropdown text in Windows popups
* Issues with selecting text on transcripts for signal creation
* Two rows showing hover events when property names are the same
* Correct unreadable text when users exceed hour limits
* **Folder & Document Bugs**:
* Hard refresh required after dragging calls into folders
* Folder chat not finding transcripts or summaries
* **Feedback**:
* Correct triggers are now in place to process signals on files uploaded into the **Feedback** section
* **Other Issues**:
* **Sidebar scroll** getting stuck when dragging items
* **Delete recording modal** breaking the app on close
* **Screen freezing** after deleting a person
* **Calendar recording rules** incorrectly showing recurrence
* **Recordings page** jumping to the top when scrolling to the bottom (and loading more)
* **Join workspace** button in dropdown menu not working
* **Slack dropdown** defaulting to the wrong workspace
* Fix **"update open"** mislabeling to **"conversations"** in Intercom syncing settings
### New
* **Export to Docs**: Export documents directly to Notion, Confluence, and Google Docs from the document view (currently feature-flagged)
* **Zoho Voice Integration**: Connect your Zoho Voice account for seamless voice communications
* **Slack /bb connect**: Introduced the `/bb connect` command in Slack to simplify channel connections
* **Signals Page**: Added a dedicated Signals page for better insights and management
* **Feedback Signals**: Reintroduced signals processed over feedback uploaded in the Feedback section (currently feature-flagged)
### Improved
* Enhanced Slack integration to fetch all channels across all pages
* Updated recording search to now include summaries in keyword searching
* Consolidated platform and hourly fees to streamline the subscription process
* Improved Zendesk workflows to automatically trigger extractions after imports
* Organizations can now set a default bot name, overriding individual user settings
* Separated calendars and extractions into their own queues to enhance performance
* Organization-scoped Paragon integrations now located under **Organization → Integrations**
### Fixed
* Resolved formatting issues causing problems in Slack messages
* Fixed `'no-channel-permission'` error some users experienced with Slack
* Addressed a bug causing errors when reading default call permissions
* Fixed transcription issues for specific call links
* Corrected AI misidentifying users during calls
* Ensured conversations without personas are included when filtering
* Fixed search issue preventing using full names with spaces
* Resolved duplicate key value errors in the Intercom integration
* Fixed issues where conversation signals were not processing correctly
* Addressed black screen upon login issue for some users
* Fixed problems where scheduled tasks were not executing
* Resolved Slack integration not displaying all channels for certain users
* Fixed chat responses stopping or becoming scrambled
### New
* **User Roles Management**: Organizations can now set different permission levels for admin and non-admin users
* **Enhanced Signal Filters**: Added filtering by Tags, Folders, and People on the Signals page
* **Integration Expansions**:
* Added Chorus.ai call imports
* Self-serve setup for Gong and Chorus.ai integrations
* New HubSpot and Zendesk integrations
* **Document Creation**: Create documents directly from call pages
### Improved
* **Organization Integration Page**: Redesigned with new sections and improved access management
* **Slack Channel Settings**: Automatic display of settings after channel selection
* **Default Call Recording Access**: New workspace-level default access settings
* **Local Recording UI**: Updated terminology from "Video" to "Movies"
### Fixed
* **Slack Integration**:
* Multiple workspace connections per account
* Better error messaging
* Improved workspace channel selection
* **Calendar Events**: Fixed updating and sharing issues
* **Call Display**:
* Corrected missing participant display
* Fixed overlapping video playback
* **Search**: Resolved issues with spaces and quotes in queries
* **UI Updates**: Thread deletion now properly refreshes the left pane
### New
* Added the ability to add custom properties to people
* Users can now delete custom properties from people profiles
* Introduced organization-level call summaries in the onboarding process
### Fixed
* Corrected a typo on the onboarding email page ("Pre-consent")
* Fixed an issue where the desktop app would display a blank screen upon system wake
* Resolved text wrapping issues for long names in the organization picker
* Fixed the perpetual "Loading more…" spinner at the bottom of the people table
* Removed the "Assign" label for speakers who are already labeled; the button now reads "Re-Assign"
* Corrected weekday mapping to prevent adding an extra day to weekly scheduled tasks
### Improvements
* Better automatic retry to process calls that failed
* Aligned property names and the "Add Property" text for consistency
* Updated the delete button to use a pointer cursor for a consistent user experience
* Improved the sorting of properties to prevent them from jumping around unexpectedly
* Adjusted form field messages for better readability
* Enhanced the display of merge text to show the number of people selected on the same row
* Modified the layout so the full "Email Address" label is visible by default
### New
* **Kustomer Integration** (Early Access): Support interactions from Kustomer can now be ingested and processed via Signals.
* **Intercom Integration (GA)**: Conversations and tickets from Intercom are now ingested and processed via Signals, moving from Early Access to GA.
* **Slack Integration (GA)**: Slack integration is now GA and available for all users to enable via the UI. Configure detailed rules for sending recording summaries to Slack channels.
### Improvements
* **Disable Recurring Events Confirmation**: Introduced a popup confirming only a single event is disabled.
* **Better Error Messaging for Calendar Setup**: Users see notifications if granting Outlook calendar access fails.
* **Model Performance Enhancements**: Upgraded various AI models to increase performance.
* **Remove Bot Before Recording**: Users can now remove the bot from a call before recording starts (waiting room or in-call).
### Fixes
* **Chat Message Loop**: Resolved an issue where chat messages reappeared in the input box after sending.
* **Custom Bot Image Editing**: Users can now edit a custom bot image immediately after saving without a page refresh.
* **Playlist Button Visibility**: Corrected a UI bug hiding the "Add Playlists" button in document creation flow due to call overflow.
* **Recording Scheduling Logic**: Stopped scheduling recordings if the event is deleted from the calendar.
* **Email Case Sensitivity**: Calendar attendee emails are now lowercased to fix matching issues.
* **Slack Channel Scrolling**: Fixed a UI issue preventing scrolling through the list of Slack channels.
* **Custom Images for Scheduled Bots**: Updated scheduled bots to apply updated custom images properly.
* **Signal Filter Personas**: Default personas now appear correctly in signal filtering.
* **Chat Message Display**: Addressed a cache issue causing chat messages to appear, vanish, then reappear.
* **Zapier Integration**: Resolved an issue where the full transcript for a call wasn't available in Zapier.
### New
* **Intercom Integration/App (Early Access)**: Intercom chats can be added to BuildBetter and processed via Signals.
* **Individual Call Sharing**: Keep a call private and share it with a single individual.
* **Bot Image Customization**:
* Upload your own bot image or create one using our editor.
* Option to remove the bot image entirely.
* **Join Workspace via URL**: Share a link to let others join your organization quickly and securely.
* **New Sidebar Designs**: Revamped sidebar for improved user experience.
* **Search Section**: Search has moved to its own dedicated section with improved filtering.
* **Default Call Filter Tabs**: Quick filters at the top of the recording list: All, My recordings, Shared with me.
### Improvements
* **Signals Optimization**: Query optimizations for faster load times in the Signals section.
* **Document Generation Flow**: If 3 or fewer calls are selected, the full transcripts are used; for more than 3, it uses call summaries.
* **Bot Name Disclaimer**: Under the bot name input, we note that Google Meets does not support custom names.
* **Local Recording Failure Help**: Added instructions for recovering local recordings if processing fails.
* **Scheduled Tasks**: Removed the paid flag from "New Task" to allow all users to create scheduled tasks.
* **Bot Name Customization**: Removing the paid flag so anyone can change their bot's name.
### Fixes
* **Signals Empty State**: Fixed brief "unlock" screen flicker for accounts that have Signals unlocked.
* **Transcript Chat**: Resolved failures when transcripts were empty.
* **Document Prompt Issues**: Fixed references to transcripts that caused LLM hallucinations when only a summary was passed.
### Improvements
* **Signal Speed**: Major query changes drastically improve performance on the Signals page.
* **Streaming Chat**: Chat responses now stream live instead of appearing all at once.
* **Bot Joining Logic**: If an event starts within 15 minutes, the bot is now joined ad-hoc instead of scheduled.
### Fixes
* **Onboarding Integration Linking**: Proper redirect strategy once a user integrates, bringing them back to the correct place.
### New
* **Feedback UI (Behind Feature Flag)**: Allows users to upload CSV files for signals.
* **Internal/External Calls Filter (Behind Feature Flag)**: Filter calls by internal/external plus "internal extractions" for Signals.
* **New Onboarding Screens**: Including a "team members invite" and "schedule onboarding" screen.
* **Custom Document Templates**: Support for custom doc templates added from the support side.
### Improvements
* **Chat Citation Links**: You can now click citations to jump directly to that moment in a call.
* **Signals Charting**: Changed numeric values to language descriptors (sentiment, severity, bias).
* **Personas**: Only "managed" personas appear as filter options in signals.
* **Select All**: For topics, themes, and keywords in signals.
* **Team Member Invite Optional**: Assign a speaker to a team member without forcing an invite.
* **Signals Query Performance**: Multiple fixes for faster loading.
### Fixed
* **Intercom Widget**: Fixed overlap with next button on mobile screens during onboarding.
* **Zero Hours**: Clear error if an org has 0 hours left and attempts an upload.
* **Document Editor**: Fixed table rendering issues.
* **Homepage Stats**: Fixed zero values erroneously displaying in stats panel.
### New
* **CSV Data Visualization in Signals (Beta)**: Early attempt to visualize CSV data in Signals.
* **Slack Integration (Beta)**: Configure workflows to post call summaries to a Slack channel upon call completion.
* **Workspace Stats**: Added basic stats to your workspace homepage.
* **Custom Document Templates**: (Invite Only)
* **Signal UI Improvements**:
* Show meta data on extraction cards
* Y-axis data picking
* Don't auto-select first clip when switching extraction types
* Hide old topics/themes/keywords from prior versions
* Filter by interaction for themes/topics/keywords
* Fixed bar chart, verify personas are working, more…
### Improvements
* **Google Meets Bot**: Upgraded login method for Google Meets bot.
* **Merge People**: Disabling integrations that are being deleted when merging profiles.
* **Task Scheduler**: Using standardized design-system selects on Windows.
* **Work Email Onboarding**: Further improvements to ensure smoother sign-ups.
### Fixed
* **Topic Extraction**: Issues with signals not working properly.
* **Soft Delete**: Marking interviews as removed on failure instead of fully deleting.
* **Missing Summaries**: Fixed problem where some summary fields wouldn't populate in staging.
* **Gong Imports**: Ensuring incremental Gong call imports work as intended.
* **Logout**: If the network is restored, we refresh the app vs. reauth to avoid UI lockup.
### New
* **Signal Extraction by Role**: Signals are now mapped to specific roles/people for greater accuracy.
* **Internal vs. External Calls**: Calls automatically labeled as internal or external, with optional manual override.
* **Batch Signal Extraction**: Enable signals on a set of calls from the folder view.
* **Profile Linking**: Clicking an avatar from a call links to that person's profile in the People section.
### Improvements
* **Signal Quality**: More precise signals for better usability.
* **Custom Context**: Signals now leverage your company's custom context for more relevant results.
* **Call Recording Filters**: Filter out calls from being recorded by title, description, or participant email in settings.
### New
* **Gong Integration**: Manually import Gong calls (Request access in settings).
* **Clip Editor**: Fine-tune start/end time of any clip (including manually created & extraction clips).
### Improvements
* **Model Upgrades**: Summaries, Chat, Docs now utilize the latest models for enhanced accuracy.
* **Transcriptions**: Up to 30% more accurate and 10x faster.
* **Zapier Integration**: Now includes transcripts as an export option for completed calls.
* **Logging Enhancements**: Better calendar-event logging for more transparency.
* **Calendar Logic**: Defaults call permission to either the event organizer or the org's default call permissions.
### Fixed
* **Billing UI Bugs**: Various visual fixes.
* **Document Generation from Playlist**: No more failures.
* **Video Player Autoplay**: Stopped random autoplay due to UI re-renders.
### New
* **Signals**: Broader availability with major improvements (unlock or request in settings).
* **Zapier Integration**: New doc & call-based triggers.
* **New Document Types**: Expanded doc generator selection screen.
* **Full Page Upcoming Events**: See more than four upcoming events in a new full-page view.
### Improvements
* **Prototype Generate**: Testing a new generate feature for extraction clips.
* **Playlists**: Now an option in the doc creation flow.
* **Signals Unlock Screen**: Non-paying users see an unlock UI; paying users see full signals in the menu.
* **Signals Default Filter**: Switched from last 7 days to 30 days.
* **No Email Summaries for Manual**: If you generate a summary for calls older than 1 hour, no auto-sent email.
* **Call Date Sorting**: Sorting by "call completed at" date to fix some manual date set issues.
* **Calendar Reconnect**: Additional logic for smoother reconnect.
* **Event Details**: Title and description from your calendar appear on the call page.
### Fixed
* **Duplicate Pre-Consent Emails**: Users no longer receive multiple pre-consent emails for the same event.
* **Calendar Debug Info**: Added for improved support.
* **Workspace Disconnection**: Disconnecting a calendar removes that schedule only, not entire integrations.
* **De-Dup Logic**: Handling overlap of manual join & scheduled bots for the same call.
* **Zoom Consent**: Improved workaround for Zoom's popup bugs to allow normal recording.
* **Stripe Subscription**: Cancels automatically if the last member leaves an org.
* **Invite Emails**: Corrected name usage in invite emails.
* **Chat to Call Links**: No more broken call links in chat messages.
* **Billing Tests**: Updated logic and testing in the billing service.
### New
* **Signals** (Beta): Analyze thousands of calls in seconds with near-magical accuracy. Filter data like it's quantitative and answer big questions instantly.
### Improved
* The app now works smoothly on mobile—easily add it as a web app on iPhone or Android.
* Folders now default to public.
* Renamed "Join Slack" to "Slack Priority Support" with a Typeform link.
### Fixed
* Users with unpaid accounts can no longer create new workspaces.
* Hovering over a call card expands the entire call brief again.
* Proper alignment fixes for text and subtext.
* Settings menu bar issues resolved.
* "Add calls to folder" now works properly.
* Removed "Select All" in create document call selection.
* Chat input no longer jumps to new thread if you switch threads.
* Uploading profile pictures now displays them correctly after refresh.
### New
* **3 New Notification Emails**:
1. **Personal Call Summaries**: Emailed right after a call with quick links.
2. **External Call Summaries**: Automatically emailed to your customers/clients if enabled.
3. **Pre-call consent emails**: 24 hours before the call to participants, explaining privacy & security.
* **Folders Sorting**: Sort calls by newest or oldest within a folder.
### Fixes
* **Zero Attendee Badge**: Calls with zero attendees now show the "Unlabeled participants" badge.
* **Bot View Settings**: Bug fix so your selected recorder layout is correctly applied.
### New
* **"New Chat" Button**: Start a chat directly from call panels and folder chat panels.
* **Summary Display**: Summaries appear on the call page, even with unlabeled participants. The labeling flow is in a separate tab.
### Improvements
* **Call Permissions & Attendees**: Prevent duplicate key errors; streamlined assignment flow.
* **Assign Flow Copy**: Reworded "assign speaker" → "label participant."
* **Call Details Visibility**: Title, tags, short description now visible above participant labeling.
* **Assign Button Enhancement**: Red counter badge shows how many participants need labels.
* **Assigned vs. Unassigned**: Lists sorted for clarity.
* **Assign Dropdown Sorting**: Team members appear at the top of the assign dropdown.
* **Retroactive Auto-Label**: Labeling a screen name to a person now retroactively applies to all other calls.
* **Instant Summary Generation**: Summaries generate right after transcript completion, even if participants aren't auto-labeled.
* **Calendar Overlap**: Attempts to fetch attendees from overlapping events if you do an ad-hoc bot join.
### Fixed
* **Merge Permissions**: Bug fix for merges during people-flow.
* **Email Validation**: Corrected a bug requiring an email in the assign flow.
* **.edu Domain**: 2-hour free plan limit for .edu is enforced properly.
* **Assign Participant Popover**: Now opens reliably on click.
* **Refresh Notification**: "Refresh to update" logic now triggers properly on new deployments.
* **Transcript Processing**: No more labeling prompts if the transcript is still processing.
* **Search Index**: Recent threads show immediately.
* **Unassigned Badge**: The call grid now displays a "unassigned speaker" label if relevant.
### New
* **Quality-of-Life Overhaul**: Many smaller improvements from direct user feedback.
* **New Document Types**:
* **Job Candidate Interview**: Evaluate candidates effectively.
* **Product Requirements Document (PRD)**: Create human-grade docs from calls about features.
### Improvements
* **Assignment Flow**: New design for labeling participants both automatically and manually (post-call).
* **Merging People**: Merge duplicate profiles seamlessly in the People section.
* **Edit Call Date**: Perfect for re-dating calls that were uploaded vs. recorded live.
* **Custom Transcript Dictionary**: Hard-code key terms (names, companies, etc.) to improve transcription accuracy.
* **Adjustable Recording Views**: Speaker or gallery, choose your default in Settings.
* **Calendar Privacy**: Changing call permission updates all upcoming calls proactively.
* **Google Auth**: Merge or sign up via Google more easily.
* **Event Time Indicators**: "Tomorrow" vs. exact hours for same-day events.
* **Workspace Permissions**: Updated "Public" → "Workspace Only" for clarity.
* **Manual Upload Enhancements**: Tweaked config and added retry logic.
* **Folder Chat Update**: Folders now open the most recent chat by default.
### Bug Fixes
* **Chat Persistence**: No more leftover text in the message bar after hitting send.
* **Bot Scheduling**: Bot arrival time is more precise for calls.
* **Zoom Popups**: More robust fix for Zoom's consent popup quirks.
### New
* **Folders**: Move beyond Projects to folder-based organization.
* All Projects automatically converted into Folders.
* Chat over an entire folder of calls at once.
* Drag calls into folders or select calls to add.
* **Document Output Improvements**: Smoother citations and formatting across doc types.
### Improved
* **Folder Chat**: Great for research, documentation, sales composition, or onboarding.
* **Document Generation**: Improved output quality and clarity.
### Fixed
* **Bot Image**: Now accurately reflects its current state.
* **Public Summary Edits**: Public summary now correctly displays after user edits.
* **Multiple Summary Headers**: Resolved duplication after regenerations.
* **People Profiles**: Calls properly load under each person's profile again.
* **Google Auth**: More robust fix for certain calendar authorization issues.
### Improved
* **Calendar Service**: Now only supports v2 for double the reliability.
* **Updated Zoom Assets**: Fresher UI elements for Zoom flows.
### Fixed
* **Zoom Auth Flow**: Restored full functionality for Zoom App recording.
* **Assembly Delete Flow**: Additional security/privacy checks for transcript deletions.
* **Share Pages**: Added more tracking events for user interactions.
### New
* **Completely Rebuilt Chat**:
* Embed up to 3x more calls
* More detailed responses
* Remembers your company context across chats
* **Citations in Documents**: All doc types now show which calls or messages contributed to each segment
* **Redesigned Call Page**: Chat panel integrated for quick Q\&A or summarization
* **Editable Summaries**: Edit the main call summary & briefs
* **Cross-Workspace Copy**: Copy calls to another workspace
* **Better Summaries**: With the newest large model and more context
* **Custom Domain Signups**: Support can enable domain-based auto-join
* **Accessibility**: Added video captions
* **New Onboarding**: Smoother first-time user flows
* **Leave a Workspace**: Any time, from workspace settings
### Improved
* **Copy/Paste**: Strips out font color for consistency
* **Drag & Drop Example**: A quick visual tutorial for new chat
* **Banner Alert on Old Chats**: Informs you they're read-only; all new chat is in v3
* **Real-time Subscriptions**: Fewer forced refreshes
* **Upcoming Calendar**: Adopts organizer's permission settings by default
* **No More AI Moments**: Feature is sunset
### Updated
* **Upload View**: Fits inside scroll view
* **Toast Notifications**: Appear above modals
* **Auto-End Calendar Events**: Visible until the meeting ends
* **Microsoft Teams**: Better detection if an account type is not supported
* **Document Generation**: Limits calls to those with transcripts ready
* **Load Balancer Timeout**: Increased for doc generation
### Fixed
* **Labeling Flow**: Creating new participants works reliably
* **Call Ready Email**: No more multiple sends
* **Index Caching**: Doesn't break the app post-deployment
* **New Threads Not Visible**: Now appear instantly
* **Upload Scroll**: Proper size in the UI
* **White Text**: Removed accidental inline color
* **Workspace Switch**: Warn if an upload is in progress
* **Wrong Workspace Call**: Doesn't load forever
* **Document Jolt**: No more jumping upward on open
* **Chat Boundaries**: Doesn't exceed screen
* \*\*Renamed "call"→ "recording": For consistency
* **Safari Audio**: Accepts file formats more gracefully
* **Click Gap**: Tapping near "cancel upload" doesn't open the call
* **Settings Close**: No longer acts as a "back" button
* **Persona Description**: No text overflow
* **Tags**: "Enter" picks the first match instead of opening assignment
* **Multi-call Selection**: No more stalling or errors
* **Team Member View**: Realigns properly
* **Longer Timeout**: For doc generation steps
### New
* **Disable Upcoming Calls**: In the home screen, turn off upcoming calls from your Google Calendar (reauthorize to see it).
* **Documents**: Generate custom doc types (Customer Call Analysis, Q\&A Extraction, Magic Minutes, User Persona).
* **15+ Language Support**: Summaries & transcripts in Spanish, French, German, Italian, Portuguese, Dutch, Hindi, Japanese, Chinese, Finnish, Korean, Polish, Russian, Turkish, Ukrainian, Vietnamese.
### Improvements
* **Search**: Fully available to everyone
* **Billing Management**: Clearer free trial vs. paid plan transitions
* **Notifications**: Error & info banners for offline or integration issues
* **Call Card Redesign**: Crisp new layout
* **720p Recording**: Higher resolution calls
* **Faster Call List**: 30s auto-poll fix until websockets
* **Outlook**: Repaired integration issues
### Fixed
* **Participant Labeling**: Role select bug squashed
* **Stripe**: Billing interface glitch resolved
### New
* **Home Screen**: Quick-launch new Chats, Projects, or join calls. Jump into recent calls, projects, or chats in one click.
* **(Beta) Search**: Finally, real search across calls, transcripts, and chats.
### Improvements
* **Profile Redesign**: "Edit Profile" is brand new; upload your own avatar.
* **Organization Screen Redesign**: Upload a company logo for your workspace.
* **Chat Typing**: Significantly reduced lag.
* **Logout**: Hitting "Sign Out" from the user menu properly resets states now.
### Fixed
* **URL Join**: We removed the forced `https://` prefix. Full or partial URLs now accepted.
### New
* **Workspaces**: Create or join multiple Workspaces under one email. Keep calls, chats, and projects neatly separated.
* **New Sidebar**: Workspace switching in the top-left. "Workspaces" section under "Switch Workspace" in your profile.
### Improvements
* **BB Chat**: Upgraded overall chat response quality, especially for CustomContext.
* **Settings & Inviting**: Easier to access from the lower-left sidebar.
### Fixed
* **Chat Names**: Auto-updating logic is restored.
* **Google Calendar**: Repaired integration issues for many users.
### New
* **Public Call Sharing**: Generate a public link for anyone to view the call & summary. Toggle in the share icon on a call.
* **Multiple Workspaces with Same Email**: We now unify your identity. If you need merges, contact support.
### Improvements
* **Project Prompts**: Uses summaries instead of raw transcripts for faster load.
* **WebSocket Status Banner**: Temporary reintroduction to help debug re-connection issues.
* **Transcript Copying**: More obvious "Copy Transcript" button (with deep links).
### Fixes
* **Regenerate Summary UI**: Properly shows finished state.
* **Duplicate Bot**: No more second bot if you manually join a call.
* **Chat to Call**: External call references link reliably now.
### New
* **Default Recording Privacy**: You can set calls to default "Just Participants" or keep them "Public."
* **Email Notifications Toggle**: Turn off the "summary ready" email after finishing a call.
### Improvements
* Upload pipeline enhancements
* Onboarding flow improvements
* Microsoft Teams join logic improved
* Re-added email capture on marketing site
* Introduced new affiliate tracking for signups
### Fixed
* Microsoft Teams bot recorder manual joining
* Slack & Intercom embed logic in onboarding
* Summaries occasionally not loading for some users
### New
* **Microsoft Teams Integration**: Officially launched. Record scheduled calls via Outlook and ad-hoc calls with MS Teams.
* **Copy Transcript**: Grab the entire transcript with segment-level deep links (top-right "•••" on the call).
### Improvements
* **Join Dialog**: Lists all supported platforms more clearly.
* **Tag Distinction**: Auto-generated tags visually distinct from manual tags.
* **Slack**: Removed 1-month call query limit for free plan users.
### Fixes
* **Summaries Not Loading**: Resolved for some users.
* **Uploads Stalling**: Addressed stalling issues in the processing pipeline.
* **Call Previews**: Now reliably run for new calls.
* **Ad-hoc Bot**: Fix to ensure the bot always joins in real time.
* **UI**: The "regenerate" button now responds properly.
* **Sentry**: Separated errors in the encoder from TS worker logs.
* **Custom Action Handling**: Clarified error messages for incorrect meeting URLs.
* **Scheduled Task Events**: Tracking improvements for debugging.
### New
* **Mobile App (Beta, iOS)**: Record from your phone—any in-person user interview, random voice memo, etc.—auto-upload to BuildBetter.
* **Auto-tagging & Titles**: Calls get auto-generated titles and tags.
* **Microsoft Outlook Integration**: Join all scheduled calls across any platform, including MS Teams.
* **Customer Support Widget**: Added bottom-right for quick help.
### Improvements
* Default recording is now "Public" again for newly scheduled calls (previous attempt at default "Just Participants" caused confusion).
* Better free/paid plan migration flows
* Notifications for trial-expiration warnings
* Summaries emailed upon transcript readiness
### Fixed
* Duplicate bots or duplicate calls
* Issues with "Invited" members or mismatched sign-up email case-sensitivity
### New
* **Custom Company Assistants**: Email [support@buildbetter.app](mailto:support@buildbetter.app) to set up your own custom assistant with specialized knowledge.
* **Participant Permissions**: All calls now default to visible only to participants (you can still make them public if needed).
* **AI Moments**: Quick highlight reel of important moments in the call (next to Summaries).
* **Chat Onboarding**: Guidance on how to get the most from BuildBetter Chat.
* **Project Tag Creation**: Create tags directly in the project creation dialog.
### Improvements
* **Signup Form**: Now collects first & last name for a more personalized experience.
### Fixed
* **Audio Playback**: Issues with videos that had transcripts are resolved.
* **Call Processing**: No more stuck "processing" if an untagged speaker is present.
* **Call Header Name**: Changing a call name updates properly on the page header.
* **Join Meeting Dialog**: Trimmed spaces in URLs so the button isn't disabled.
* **Project Deletion**: Projects remain deleted without reappearing.
* **Private Project Visibility**: Private projects no longer vanish from your view.
* **Ad-hoc Bot**: Prevent double or triple joins in some edges.
### 🎉 Public Release
* **v3 is now publicly available** to everyone
* **1 month of BB Pro free** for all users
### New Features
* **Optional "Join Call"**: For MS Teams, Google Meets, Zoom
* **New Zoom App**: With call removal capability
### Improvements
* **Enhanced Summaries**:
* Support for longer calls (no length limit)
* Background processing
* Automatic generation for paid plans
* Updated call loading state
* Streamlined project briefs UI, more space for calls
* Added Call Recorder profile picture for clarity
* Better handling of upload failures
### Bug Fixes
* Removed duplicate bot joins
* Removed unneeded "typing" alerts in titles
* Improved offline app states
* Fixed .mp3 file handling
* Resolved project loading issues after adding calls
* Fixed speaker-switching in call recordings
* Addressed stuck call processing
### Projects
Introducing Projects - a powerful new way to manage and share information:
* Create projects with titles, descriptions, tags, and access controls
* Automatic project brief generation and updates from tagged calls
* Perfect for user research, discovery calls, onboarding, sales, team standups
* Historical context access for new team members
* Automated documentation updates
* Easy brief sharing and export capabilities
### New Features
* Keyword Search: Enhanced call filtering with keyword search
* Customer Creation: Streamlined customer addition during speaker assignment
### Improvements
* Rebuilt video processing for faster access
* Added chunk uploading in v3 for faster, larger uploads
* Introduced new sidebar and full-width call grid
* Updated People section with side-by-side view
* Refreshed account dropdown design
* Added desktop app download option in web app
### Bug Fixes
* Resolved recorder and transcript processing issues
* Fixed 'Call not found' loading state
* Corrected blank avatar rendering
* Fixed video playback during speaker assignment
* Implemented real-time call page updates
### New Features
* **Call Tagging System**: Categorize and organize calls with tags
* **Call View Filtering**: Customizable filters (date range, tags, etc.)
* **Enhanced Agent Retrieval**: Tag filtering for improved call search
### Improvements
* Relocated summary action buttons (delete, regenerate, share, copy) above summaries
* Added informative loading messages during transcript and call data fetching
* Enhanced team member status display
* Improved chat thread sorting for "this week"
* Optimized new chat categorization under "Today"
### Bug Fixes
* Resolved frequent "Whoops" errors in chats
* Fixed chat blocking from excessive call attachments
* Addressed multiple call attachment issues in messages
### Summarizer 1.1
* **Richer Extractions** for call-type summaries
* **New meeting types**:
* Retrospectives
* Post-mortem / Pre-mortem
* Engineering Standups / Scoping
* Backlog Refinement
* Marketing + Design review
* Investor Update / Pitches
* Job Interviews
* **Improved existing types** (onboarding, CS) with Q\&A extraction
* **Regenerate Summaries** with feedback-based improvements
### Call Embedding 1.1
* **Enhanced multi-call analysis**:
* Full transcript embedding for single/dual call analysis
* Improved theme/pattern extraction for multiple calls
* Better topic identification & insight generation
### Improvements
* **Include transcripts** for context-dragged calls if size permits
* Removed call\_scope from retriever for simpler context
### Bug Fixes
* Prevented multiple bots from joining calls
### New Features
* **Multi-Call Drag to Chat**: Analyze patterns and themes across multiple calls simultaneously
* **Customers → People**: Flexible participant categorization for improved organization
### Improvements
* Enhanced app responsiveness
* Smoother call list scrolling
* Chat threads now grouped by timeframe (today, this week, previous)
* Full transcript embeddings for better single-call queries
* Revamped People section for better participant organization
### Bug Fixes
* Fixed chat panel scrolling issues
* Eliminated blank calls from unjoined bots
* Fixed horizontal scrolling in call view
* Improved summarization timing (after transcripts ready)
* New calls & transcripts appear without page reload
### New Features
* **Private Calls**: Keep sensitive calls hidden
* **Chat Goals**: Specialized chat experiences for different use cases
* **ChatGPT Plugin**: Access BuildBetter call data directly in ChatGPT
### Improvements
* Enhanced authentication system
* In-product changelog panel for v3
* Bulk call uploads
* In-app updates for v3
* Better markdown styling for chat
### Bug Fixes
* Real-time call list updates via subscriptions
* Added drag-resize for chat/data panels
* Fixed AI moment extraction
* No more duplicate chat messages
* Toast message no longer blocks chat bar
* Fixed top "X" scrolling glitch
* Corrected overlapping call view & uploads
* Addressed call view limitations
* Fixed labeling inconsistencies
* Improved mobile summary card display
* Collapse/expand icon direction corrected
* Call type label saving fixed
* Password reset security improved
* "Remember me" added to login
* Standard sub-headers across pages
* Default chat selection improved
* Enhanced audio-only file handling
* Added hover-delete button
* Call clearing functionality
* "Whoops" chat crashes resolved
* Maintained chat position after returning
* Fixed long titles in UI
* Fixed unassigned speaker icons
* Enabled emoji picker scrolling
* New chat auto-focus
* Adjusted markdown copy icon
* Removed white square in markdown corner
* Minimizing v2/v3 switching issues
* Alphabetized call types
* Restored v2 emoji support
* Updated invite org link
* Fixed disappearing sent messages
* Brought back v3 "Check for updates" button
* Improved call dragging
* Privacy filter on recent uploads
* Adjusted v3 question extraction
* Fixed call title editing glitch
* Permission dropdown for non-authors
* Automatic call list updates
* Webex disconnection fix
* Proper invited page name display
* Enhanced integration relevancy
### New Features
* **"Uncomfortably Good" Summaries**:
* Automatic call type identification with custom extractors
* Remarkably accurate, human-like note-taking
* Available via "Summary" > "Generate Summary" (paid plans)
* **Scheduled Tasks** with smart prompts using your company context
* **Enhanced UX** with layout customizations
### Improvements
* Smoother chat navigation after deletion
* Logout feature for v3
* Custom call types for v3
* Localized dates to user timezones
### Bug Fixes
* Background added to floating video player
* Fixed citation card alignment
* Corrected "view all citations" logic for single citation
* Tools used by agent now appear vertically
* Removed persistent time parameter from call URLs
* Toast notifications improved
* Fixed streaming line break issues in partial chat responses
* Prevented multiple bots in Google Meets/Zoom calls
### New Features
* **Drag & Drop**: Drag calls into chat for extraction or drop voice memos for quick PRD generation
* **Mobile Compatibility**: Progressive Web App with home screen access & improved performance
* **Increased Word Limit**: \~22,000 words (50 pages) for extensive content
* **Streaming Chat & Actions**: See incremental responses & real-time process updates
### Improvements
* Grouped citations for easier reading
* Conversations organized by most recent messages
* Significantly faster API loading & overall performance
### Bug Fixes
* Enter key no longer refreshes page in search
* Fixed chat message wrapping
* Loading indicator no longer persists if you close the call page
* Addressed chat view scrolling issues
* Chat message caching for instant responses
* Corrected citation timestamps
* Customer screen navigation fixes
* Localized timestamps
* Resolved crashes when assigning participants
* Fixed chat auto-scroll stutter
# ZeroShot Changelog
Source: https://docs.buildbetter.ai/cli-changelog
Updates to ZeroShot — the desktop app, `bb` CLI, and open-source BB-Skills packs.
This page tracks **ZeroShot** — the desktop app, the `bb` CLI, and the open-source **BB-Skills** packs. For the main BuildBetter web app, see the [BuildBetter Changelog](/changelog). For the desktop and mobile Recorder, see the [Recorder Changelog](/recorder-changelog).
Source: [github.com/buildbetter-app/BB-Skills](https://github.com/buildbetter-app/BB-Skills) (MIT-licensed).
Version labels follow the **ZeroShot desktop production release**. The `bb` CLI and BB-Skills packages are versioned independently.
**8 ZeroShot Commits Included**
### 🚀 New Features
* **Unified Skills Workspace:** Review installed and suggested skills in one card-based list, filter recommendations for the current branch, inspect details, and add useful skills without moving between separate proposal screens.
* **Local Diagnostics Center:** Keep a local diagnostic log, open its folder from Settings, and capture the information needed to investigate session, pull-request, usage, and team-view failures.
### ✨ Improvements
* **More Reliable Agent Hooks:** Skill synchronization and token-saving hooks use one managed provider integration across supported coding agents, reducing setup drift and conflicting hook advice.
* **More Relevant Skill Recommendations:** Mark suggestions as not useful, preserve repository preferences, and target accepted proposals to the current branch or selected destination more clearly.
### 🐛 Bug Fixes
* **Honest Loading Failures:** Sessions, pull requests, team insights, and usage views now distinguish real empty states from failed requests and offer a direct retry path.
* **Safer Skill Publication:** Skill proposals retain their intended repository and destination while moving through review and publication.
**33 ZeroShot Commits Included**
### 🚀 New Features
* **SkillRank for Your Skills:** Browse registry skills, review recommendations and installed versions, inspect skill contents, and run guided evaluations against your own local skills from one workspace.
* **Publish Skills to Coding Agents:** Publish approved skills from ZeroShot and keep managed hooks synchronized across supported Codex, Claude, and Cursor setups without overwriting unrelated configuration.
* **Folder-Scoped Session Tracking:** Choose the folders ZeroShot should monitor, map sessions to the correct repository, and target generated skill proposals to the intended project.
* **Windows Desktop Release:** Install ZeroShot on Windows x64 with automatic updates and native tray controls for opening or closing the app.
### ✨ Improvements
* **More Useful Session Browsing:** Filter Agent Sessions by the context that matters, refresh linked pull requests on demand, and see whether GitHub attribution is current or still pending.
* **Reliable Session Uploads:** Upload an individual Agent Session when needed, while large uploads finish safely in the background instead of holding an open request.
* **Safer Production Updates:** Settings can check for updates against reachable production metadata and clearly report the installed and available versions.
### 🐛 Bug Fixes
* **Reliable Transcript Search:** Agent Session transcript searches avoid database timeouts on larger histories.
* **Stable Agent Detection:** Provider availability checks and ZeroShot background services recover more consistently without leaving duplicate or stale service instances.
**49 ZeroShot Commits Included**
### 🚀 New Features
* **Guided CLI Onboarding:** The ZeroShot CLI now walks through setup with clearer readiness checks, diagnostics, and recovery guidance.
* **Skill Pull Requests:** Browse skill-related pull requests from the Skills switcher alongside existing skill proposals.
* **More Agent Support:** Session ingestion and proposal workflows now recognize OMP, Pi, Oh My Pi, and Codex subagent sessions with honest availability states.
* **Dedicated Session Scanning:** Session discovery has its own processing lane so large imports do not block the rest of the app.
### ✨ Improvements
* **Faster Sessions and Skills:** Local SQLite-backed session and skill views load more quickly.
* **Windowed Large Transcripts:** Very large session transcripts render in manageable windows for smoother browsing.
* **Reliable Repository Selection:** Repository roots are normalized consistently across onboarding, sync, and local processing.
* **Visible Runtime Status:** ZeroShot again shows the current session runtime and keeps background status pulses coordinated.
* **Faster First Sync:** Initial discovery and indexing can use available machine resources more effectively, while later work remains bounded.
* **Profile-Scoped Services:** Switching profiles keeps ZeroShot services and local state attached to the correct profile.
### 🐛 Bug Fixes
* **Stable v0.10 Desktop Experience:** Fixed regressions introduced during the v0.10 desktop transition.
* **Reliable Onboarding Completion:** First-run setup and initial sync no longer become stuck or lose legacy state during migration.
* **Cursor Sign-In Detection:** Dispatch checks now read Cursor's structured status output more reliably.
* **Accurate Subagent Classification:** Codex subagent sessions are labeled and grouped correctly instead of appearing as ordinary top-level sessions.
**24 ZeroShot Commits Included**
### 🚀 New Features
* **Session Transcript Workspace:** Browse and work with session transcripts in a clearer, more focused workspace.
* **Restored Skill Sets:** Skill Sets are available again for organizing and working with related skills.
* **Shared CLI and Sync Runtime:** The desktop app and CLI now use a shared session-sync foundation for more consistent imports and uploads.
* **Trustworthy Skill Analytics:** Skill usage and outcomes are measured from normalized session evidence instead of placeholder data.
### ✨ Improvements
* **Reliable Team Analytics:** Team views and session sync stay aligned as new sessions arrive.
* **Better Shot Notch Placement:** The menu-bar window positions correctly across multiple displays.
* **Self-Contained CLI Installer:** The ZeroShot CLI installer includes what it needs instead of depending on repository-local files.
* **Bounded Background Work:** Watchers, analytics, and skill processing use less idle CPU and avoid unbounded background loops.
### 🐛 Bug Fixes
* **Local Skill Proposals:** Local proposal runs can complete without an arbitrary timeout.
* **Codex CLI Discovery:** ZeroShot finds working Codex installations again across supported install layouts.
* **Mirrored Codex Messages:** Duplicate mirrored messages no longer inflate session transcripts or analytics.
**73 ZeroShot Commits Included**
### 🚀 New Features
* **Pi Session Ingestion:** Import and analyze sessions created with the Pi coding agent.
* **Agent Dispatch:** Dispatch supported coding agents from ZeroShot with provider-aware setup and readiness checks.
* **Pull Requests Workspace:** The Pull Requests tab is connected to live repository data with per-view fetching and GitHub connection guidance.
* **Cloud Skill Proposals from PR Feedback:** Turn pull-request feedback into reviewable, repository-specific skill proposals and hand approved changes back to the local workflow.
* **Repository Learning:** Preserve repository-specific learnings so future proposals can build on prior decisions.
* **ZeroShot Invitations:** Invite teammates through a ZeroShot-branded flow with resource-oriented account routes.
### ✨ Improvements
* **Clearer Session Titles:** Layered title extraction produces more useful names for local sessions.
* **Smarter Skill Proposals:** The proposal pipeline uses stronger signal quality, review confidence, approval modes, and duplicate prevention.
* **Simpler Settings:** Production settings hide developer-only controls while keeping proposal behavior and feedback access easy to find.
* **Reliable Open at Login:** macOS registration now appears correctly in System Settings login items.
* **Current Model Pricing:** Cost estimates include the latest supported Fable, Mythos, and Sonnet model pricing.
### 🐛 Bug Fixes
* **Lower Idle CPU:** Pooled database connections, session watchers, sync, and skill scheduling no longer spin unnecessarily while idle.
* **Reliable Repository Rollups:** Claude Code sessions are attributed to the selected repositories using their real on-disk git remotes.
* **Stable Skill Reviews:** Proposal review, reset, reconciliation, and cloud handoff flows recover cleanly from interrupted work.
* **Cursor Discovery:** ZeroShot resolves Cursor installations across supported installer and IDE launch paths.
### 🚀 New Features
* **ZeroShot Desktop App** — Introduced the ZeroShot desktop app for session analysis and related workflows.
* **Local Session Analytics** — ZeroShot now supports local-first session analytics, including local processing, remote processing, and automatic fallback to local mode when signed out.
* **Local Session Indexing** — Added native local indexing for Codex and Claude Code sessions, including usage, friction signals, and repository-aware attribution.
* **Organization-Wide Session Browsing** — Browse teammate sessions and sessions from other machines, with owner names and People filtering.
* **Remote Session Resume** — Cloud-only sessions can now be resumed when the related repository exists locally.
* **Skills in ZeroShot** — Browse and install BuildBetter skills inside ZeroShot, with installed-version tracking and update detection.
* **Local Insights** — ZeroShot Insights can read directly from the local session store for work breakdowns, friction-heavy sessions, and codebase hotspots.
* **Host Name Capture** — Agent sessions can optionally include the machine host name for better cross-device context.
* **Rewind and Archetypes** — Added a richer rewind experience with multi-repo onboarding, usage and signal story screens, and deterministic work-style archetypes.
* **Channel-Based Desktop Releases** — ZeroShot desktop releases now support separate release channels for early access and stable builds.
* **Shot Notch Chat Preview** — Shot Notch now includes an in-place chat preview with richer recent session cards and quick access to Sessions.
* **Local Repository Selection** — Onboarding now lets users choose local Git repositories directly and keeps imports scoped to selected repos.
* **Skill Discovery Inbox** — Added continuous skill discovery with ranked candidates, batch generation, and review steps.
* **Developer Archetype Cards** — Added shareable developer archetype cards with downloadable artwork and copy-to-clipboard support.
* **Live Pull Requests** — Added repository-specific live pull request views powered by GitHub data.
* **Local Skill Proposals** — ZeroShot can turn imported local sessions into repository-specific skill proposals that users can review and install directly.
* **Unified Local and Remote Sync** — Local import and remote upload are now combined into one sync flow.
* **Goalcraft Skill** — Added the Goalcraft skill for turning approved plans into active, evidence-based goals.
* **Smarter Repo Suggestions** — Onboarding highlights repositories with recent session activity and falls back to a broader scan when needed.
### ✨ Improvements
* **Agent Session Sync Performance** — Session syncing is faster and more transparent, with better progress reporting, chunk reuse, and optional storage improvements.
* **CLI Experience Improvements** — Command help and validation have been improved so setup and sync commands are easier to use correctly.
* **Live Analytics Views** — Usage, repository, people, and session views now use real session data.
* **More Accurate Usage Views** — Usage reporting uses real organization-wide people data and server-side filtering for more accurate breakdowns.
* **Cross-Machine Session Experience** — Session resume, missing-repo guidance, and owner information are clearer across devices.
* **Skills Screen Upgrade** — The Skills screen now uses real data, scans more local skill locations, and detects available updates more reliably.
* **Hybrid Mode** — ZeroShot switches more cleanly between local indexing when signed out and remote sync when signed in.
* **Faster Local Insights** — Local analytics are faster and more reliable thanks to direct reads from the local session store.
* **Better Session Navigation and Filtering** — Sessions and Usage handle deep links, filtering, and single-person scenarios more smoothly.
* **Improved Local Indexing Stability** — Local indexing processes sources more predictably and refreshes data at better times, reducing UI churn.
* **Shared Local and Hosted Session Model** — Local and hosted session analysis use the same normalized model for more consistent results.
* **Cached Local Signals** — Local signal extraction caches results so Home, Insights, onboarding, and session details load faster.
* **Better Local Indexing Performance** — Indexing handles larger batches, skips bad transcripts more gracefully, and keeps loading states accurate.
* **Shot Notch Improvements** — The macOS menu bar experience has better sizing, positioning, toggles, and settings integration.
* **Less Misleading Placeholder Content** — Hosted-only features show clearer unavailable states instead of synthetic placeholder data.
* **Faster Local Analytics Queries** — Local database optimizations improve responsiveness across sessions and analytics views.
* **More Accurate Repository Attribution** — Local and synced sessions stay linked to the right repository more reliably, even across worktrees, deleted folders, or remote-only metadata.
* **More Reliable Skill Discovery** — Skill discovery and generation avoid duplicates, clear acted-on suggestions, and better match the real product flow.
* **Better Usage Burn-Down Tracking** — Claude usage burn-down views use more accurate live limit data when available, including model-specific pacing.
* **Session Preview Improvements** — Session previews show cleaner recent conversation snippets with less noise.
* **Repository-Scoped Remote Sync** — Remote sync uploads only sessions from selected repositories.
* **Real-Data Experience** — Usage, Insights, and Home rely on real local session data and hosted usage when signed in.
* **Insights as the Main Focus** — Insights is now the default ZeroShot landing page.
* **Clearer Usage Breakdowns** — Usage includes breakdowns by model, repository, and branch, plus a “where tokens go” view.
* **Plain-English Signals** — Signal displays are easier to understand, with clearer explanations of what ZeroShot noticed.
* **Live GitHub Pull Requests** — PR views use live GitHub data for fresher results.
* **Automatic Session Syncing** — ZeroShot now runs hourly local and remote syncs.
* **Better Local Import Progress** — Local import shows clearer multi-stage progress through discovery, normalization, and database writes.
* **Safer Skill Installation** — Skill discovery is standardized across supported local skill folders with safer path handling.
* **App-Owned Authentication** — Native sign-in, sign-out, and token refresh behavior is smoother.
* **More Stable Loading States** — Insights, Usage, and related views use steadier loading placeholders.
* **Faster Onboarding Value** — Onboarding advances after the first recent-session batch imports while the rest continues in the background.
* **Onboarding Skill Suggestions** — Ready skill proposals from selected repositories can appear directly in onboarding.
* **Recent Repo Suggestions** — Onboarding prioritizes repositories from the last seven days of local session activity.
### 🐛 Bug Fixes
* **CLI Authentication Refresh** — Stored login tokens refresh before requests, reducing sync and upload failures.
* **Session Identity Collisions** — Claude subagent session uploads no longer collide during concurrent uploads.
* **Auth Status Reporting** — `bb auth status` refreshes expired credentials and reports current auth state more reliably.
* **Packaged ZeroShot Local Mode** — Packaged builds use the real local and remote processing flow.
* **Usage Data Source Labels** — Usage and Insights correctly show whether data is local or hosted.
* **Historical Repo Attribution** — Older synced and local sessions resolve repository attribution more reliably.
* **Session Navigation** — Session links work across supported session ID formats.
* **Local Database Reliability** — Reduced intermittent local database lock errors while indexing and browsing.
* **Local Insights Query Handling** — Valid read-only insight queries are no longer misclassified.
* **Skill Generation Edge Cases** — Improved candidate parsing, reset handling, and inbox-based proposal quality.
* **Local Data Reset** — Local reset fully clears stored session data before restarting onboarding.
* **Shot Notch Refreshing** — Session previews no longer briefly show the wrong chat snippet.
* **Updater Link Generation** — Prerelease updater links work when asset names contain spaces.
* **Remote Sync Scoping** — Syncing a selected repository no longer uploads sessions from every local repository.
* **Repo Selection During Onboarding** — Adding a repository no longer removes repositories already selected.
* **Sign-In Setup Errors** — Removed-hook setup failures no longer block setup.
* **Profile Images on Archetype Cards** — Shared archetype cards use profile images correctly, with initials as a fallback.
* **Signed-In State Timing** — Screens no longer get stuck on local-only data after login.
* **Signed-Out Local Sync** — Signed-out users still get incremental local session syncing.
* **Friction Detection Accuracy** — Successful tool output containing words like “error” or “failure” is no longer misclassified.
* **Skill Install Path Safety** — Saved skill files cannot escape the selected repository.
* **Codex CLI Detection** — Broken Codex shims are skipped in favor of working executables.
* **No-Work Sync Progress** — Selected-repository syncs show correct progress even when there is nothing new to import.
* **Analytics Accuracy** — Insights and Sessions use database-backed counts instead of placeholder or client-side estimates.
* **Large Session Uploads** — Very large analytics batches persist correctly.
* **First-Run Onboarding Guardrails** — Onboarding cannot be dismissed before a repository is selected.
* **Cold-Start Empty States** — Usage and Insights show loading placeholders instead of incorrect empty states on startup.
* **Desktop Button Rendering** — Fixed nested button rendering issues in the desktop UI.
* **Missing Dashboard Breakdowns** — Restored work-type and usage summary breakdowns.
* **Proposal Discovery Timing** — Proposal generation waits for enough imported sessions.
* **Stuck Proposal Runs** — Interrupted background work no longer blocks future proposal runs.
* **Onboarding Progress Timing** — Onboarding and import progress better reflect live import state.
* **Multi-Repo Onboarding Thresholds** — Proposal generation starts once combined imported sessions reach the threshold.
### 🚀 New Features
* **Agent Session Usage Analytics** — New analytics support tracks coding-agent session usage, costs, and friction across providers.
### ✨ Improvements
* **CLI Sync Improvements** — The `bb` CLI now provides improved sync uploads, auth checks, clearer status output, and more consistent provider naming.
### ✨ Improvements
* **Latest CLI Version Reporting** — BuildBetter now checks GitHub releases for the latest BB CLI version.
* **BB CLI Update Delivery** — The latest CLI release is served through the latest release path.
### 🐛 Bug Fixes
* **CLI Session Upload Fixes** — Agent session uploads finalize correctly, refresh expired tokens when needed, and avoid getting stuck mid-upload.
* **Hook Upload Reliability** — Repo-local hook uploads work more reliably, including better fallback handling and upload routing.
### 🚀 New Features
* **Go-Based CLI Foundation** — The `bb` CLI was rebuilt on a Go-based foundation with onboarding, auth, hook management, sync, and bootstrap capabilities.
* **Local-First CLI Onboarding** — The CLI includes a local-first onboarding experience with terminal review screens.
### 🐛 Bug Fixes
* **Legacy Hook URL Fix** — Existing `/bb.sh` bootstrap hook URLs work again.
## Earlier `bb` CLI Releases
The `bb` binary captures agent sessions and lets your team resume them anywhere. These earlier CLI releases are now tracked here as part of ZeroShot.
### 🚀 New Features
* **BB CLI Support Tools** — `bb` now includes diagnostics, support bundle creation, and feedback submission to make troubleshooting easier.
* **CLI Session Resume Filters** — Filter resumed agent sessions by provider, session, branch, commit, repository, or pull request.
* **CLI Hook Management** — Install, repair, check, and remove Codex and Claude hooks from one place.
* **One-Command CLI Installs** — BB CLI releases are available through a simpler install flow for macOS and Linux.
* **Shipping Confidence Skill** — Added a skill for assessing release readiness using evidence-based guidance.
### ✨ Improvements
* **CLI Updates and Install Experience** — Auto-update enabled for direct installs; clearer upgrade instructions for package-manager installs.
* **Cleaner CLI Hook Output** — Hook output is quieter and easier to read, while still logging useful details when something goes wrong.
* **Safer CLI Support Diagnostics** — Auth and support details easier to inspect, with permission checks and redacted diagnostics for privacy.
* **Safer Session Restore** — Resuming a session on a different machine or checkout now gives clearer guidance to avoid restoring into the wrong context.
* **Better Auth Visibility** — `bb auth status` gives more useful details and warns when credentials or config files are too broadly readable.
### 🐛 Bug Fixes
* **CLI Release Publishing Fix** — Release publishing works correctly even when the workflow runs without a checked-out repository.
* **Large CLI Session Uploads** — Large agent session uploads succeed more reliably, with full tool output preserved.
* **Eval CLI Boolean Flags** — CLI boolean flags work properly when passed without explicit values.
### 🚀 New Features
* **ZeroShot CLI Session Resume** — Previously uploaded Codex and Claude sessions can now be reopened on the current branch with `bb agent-sessions resume`.
* **Linear Command in Claude** — Create and manage Linear tickets directly from a Claude session, including ticket creation, workflow updates, and linking customer issues to engineering work.
## BB-Skills (open-source skill packs)
The Python `bb-skills` package installs and updates the skill packs that your coding agent uses. Versioned independently on PyPI and GitHub.
### ✨ Improvements
* **Staging environment support** in the `configure` command — point `bb-skills` at staging when needed.
### 🚀 New Features
* **`bb-` prefix on spec-workflow skills** — spec-workflow skill names now carry a `bb-` prefix so they don't collide with other skill catalogs.
* **`configure` command** — set up workspace defaults and environment from one CLI command.
### 🐛 Bug Fixes
* **PyPI installation path fix** — `bb-skills` now finds its skills directory when installed via `pip install` / `uvx` instead of from source.
First public release of BB-Skills — AI coding skills for any coding agent.
### 🚀 New
* **Skills-first architecture** with pack-based installation.
* **Three skill packs:**
* `core` — base skills including `bb-skills-update`
* `spec-workflow` — 9 skills derived from [github/spec-kit](https://github.com/github/spec-kit) (MIT), extended with BuildBetter customer evidence integration
* `testing` — 3 browser testing skills (`app-navigator`, `trust-but-verify`, `generate-tests`)
* **Multi-platform support** via 7 adapters: Claude Code, Codex, Cursor, Copilot, Gemini, Windsurf, Amazon Q.
* **`bb-skills` CLI** with `install`, `update`, `list`, `uninstall`, `platforms` commands.
* **User-initiated update checking** via GitHub releases.
### Acknowledgments
* Spec-workflow skills derived from [github/spec-kit](https://github.com/github/spec-kit) (MIT).
* Extended with BuildBetter customer evidence integration.
Initial scaffolding release.
### 🚀 New
* **BB-Skills launch** — BuildBetter-enriched spec workflow built on the spec-kit foundation.
# Partnership Benefits
Source: https://docs.buildbetter.ai/pages/Affiliate/benefits
Comprehensive benefits of joining the BuildBetter Affiliate Program
When you join the BuildBetter Affiliate Program, you'll unlock multiple revenue streams and growth opportunities.
## 20% Revenue Share
When you guide your audience & clients to sign up for BuildBetter, you'll receive **20% of their subscription revenue** for the first year. This will be monitored by your unique affiliate link. But this is just the beginning of what you get from BuildBetter's Partner Program…
## Consulting & Implementation Revenue
BuildBetter is an ideal platform for agencies and consultancies to create powerful AI assistants and automations for clients. You can charge for services, including implementation, setup, and support, with opportunities to build agency and consultancy services around the platform. If you're not handling the implementation work and just referring clients through content, you still earn commissions through affiliate links.
## Get Promoted Across BuildBetter's 100k+ Audience
When you post about BuildBetter online and inform us, we'll help you get noticed. When you post about BuildBetter, we'll be the first to engage and share. This will help expand your personal brand, boost your credibility within your industry, and showcase your expertise in AI.
## Get Promoted in BuildBetter's Customer Newsletter
Our current AI newsletter, boasting over 25,000 subscribers, is combined with our monthly email, where existing BuildBetter users are looking to grow their AI skills. This gives you the chance to showcase your content and attract inbound leads for your agency or consultancy.
## Get Clients From BuildBetter
BuildBetter receives hundreds of inbound requests for services, and we're looking to refer this work out. Top affiliates will have the opportunity to get client work directly from BuildBetter, featured directly on our website (coming soon!). Become a valued partner and benefit from BuildBetter's growing demand for AI assistants and automations.
## Access to Beta Features
You'll get access to early Beta features including the latest AI models, powerful new workflow automations, and our newest integrations. You'll be far ahead of your competitors and peers in AI - because you always have access to best-in-class tools.
## Slack Community of AI Experts
The program gives you access to a Slack community with Justin Fineberg and a community of top AI Experts. Our team is here the answer your questions and share recommended workflows to grow your business. We'll also host webinars and share resources to level-up your AI skills.
## Priority Support
When you're a BuildBetter Partner - you and your clients get priority support. That means when you or your clients need help - you're first in line. Whether it's building complex workflows, creating assistants, or troubleshooting specific use cases, we're here to help.
## 👉 [`[Apply Here]`](https://bbai.getrewardful.com/signup) 👈
# Frequently Asked Questions
Source: https://docs.buildbetter.ai/pages/Affiliate/faq
Common questions about the BuildBetter Affiliate Program
Get answers to the most common questions about BuildBetter's Affiliate Program.
## How do payouts work?
You'll get 20% of the subscription revenue brought in by your referrals for the first 12 months. For instance, if their plan is $500/mo you'll receive $100/mo for 12 months (unless they cancel before then). Everything will be managed automatically and you can choose how you want to get paid out.
## How much can I earn?
There's no limits! Even if you refer enterprise clients for \$500k/year deals, you'll earn 20% of that revenue. We want to see clients build businesses around BuildBetter.
## Who should sign up for the program?
Don't be discouraged from applying if you're not a Cassidy expert yet! Anyone who recommends BuildBetter to their clients or assists them with AI setup and implementation will find immense value in our partner program. This includes consultants, agencies, and experts specializing in AI workflows. We have plenty of resources to set you up for success.
## How do I track my referrals?
Once approved for the program, you'll receive a unique affiliate link to share with potential clients. Our system automatically tracks all sign-ups that come through your link, and you'll have access to a dashboard showing your referrals and earnings.
## When do I get paid?
Payments are processed monthly for all qualifying revenue from the previous month. There is a 30-day holding period for new accounts to ensure they remain active subscribers.
## Are there any costs to join?
No, joining the BuildBetter Affiliate Program is completely free. There are no fees or minimum requirements to participate.
## Have more questions?
If you have any more questions, big or small, you can email **[tyler@buildbetter.ai](mailto:tyler@buildbetter.ai)** and we will gladly get back to you shortly! We're so excited for you to join us in the AI revolution!
## 👉 [`[Apply Here]`](https://bbai.getrewardful.com/signup) 👈
# How to Apply
Source: https://docs.buildbetter.ai/pages/Affiliate/how-to-apply
Step-by-step guide to joining the BuildBetter Affiliate Program
Joining the BuildBetter Affiliate Program is simple. Follow these steps to get started:
## Application Process
1. **Submit Your Application**: Fill out the application form at [bbai.getrewardful.com/signup](https://bbai.getrewardful.com/signup)
2. **Review**: Our team will review your application (typically within 1-2 business days)
3. **Approval**: Once approved, you'll receive your unique affiliate link and access to our partner dashboard
4. **Start Earning**: Begin sharing your affiliate link and implementing BuildBetter for clients
## What We Look For
We welcome applications from:
* AI consultants and implementation specialists
* Digital marketing agencies
* Software implementation consultants
* Content creators in the AI/SaaS space
* Industry experts who advise on productivity tools
## After Approval
Once approved, you'll receive:
* A welcome email with your unique affiliate link
* Access to partner resources and marketing materials
* Invitation to our exclusive Slack community
* Information on upcoming partner webinars and events
## Schedule a Call
Want to learn more before applying? Schedule a call with our partnership team:
## 👉 [`[Apply Here]`](https://bbai.getrewardful.com/signup) 👈
# Affiliate Program
Source: https://docs.buildbetter.ai/pages/Affiliate/index
Join the BuildBetter Partner Program and earn 20% revenue share
## What is the Partner Program?
BuildBetter's Partner Program is designed to enable AI users, consultants, and enthusiasts to build businesses by referring and implementing BuildBetter for a 20% revenue share of your referred clients (and much more)!
`New` When your referrals join, they will now also get an additional 50 free hour credits for their first month, just for using your link! This helps incentivize referrals to join via your links so you get the associated credits.
As a part of BuildBetter's Partner Program, you're also encouraged to create content that resonates with your expertise area- we'll then broadcast it to our 100k+ users + followers. Along with the revenue share, you're welcome to charge for services around BuildBetter - such as AI implementation & support.
## Why we created the program
Almost every company is thinking about implementing AI, but doesn't know where to start. That's where a new industry of AI implementation experts is forming to fill the gap. Businesses need experts to setup their workspaces, setup integrations, custom documents, create prompts, and give them direction so they don't need to start from scratch.
Our goal is help BuildBetter Partners grow businesses, while also shaping the direction of our product. We work closely with our partners to build new integrations and features to make the platform even better. We also use any content our Partners create to educate our audience (while bringing you new leads)!
## Why clients love BuildBetter's platform
It's incredibly easy to use and uses the latest in AI fully compliant…... And unlike other tools, it securely connects with client's knowledge tools (e.g. Intercom, Gong, Kustomer, Slack, Notion, etc.) to train AI to be hyper-personalized to their brand and super accurate. BuildBetter goes beyond chat and allows teams to build customized assistants, multi-step AI automations, and more.
## 👉 [`[Apply Here]`](https://bbai.getrewardful.com/signup) 👈
# Success Stories
Source: https://docs.buildbetter.ai/pages/Affiliate/success-stories
Real-world examples of successful BuildBetter affiliates
Learn how other partners have built successful businesses with the BuildBetter Affiliate Program.
## AI Implementation Specialist: Sarah T.
Sarah started her AI implementation consultancy in 2023. By partnering with BuildBetter, she:
* Generated \$45,000 in commission revenue in her first year
* Built a client base of 12 enterprise companies
* Created implementation packages ranging from $2,500 to $15,000
* Established herself as a thought leader through content shared by BuildBetter
> "BuildBetter's affiliate program was a game-changer for my consultancy. Not only do I earn passive income from referrals, but the partnership has opened doors to high-value implementation projects." - Sarah T.
## Marketing Agency: Digital Pulse
Digital Pulse integrated BuildBetter into their service offerings:
* Added BuildBetter implementation as a premium service tier
* Generated \$87,000 in additional service revenue
* Earned \$36,000 in affiliate commissions
* Improved client retention by 28%
> "Our clients were already asking for AI solutions. BuildBetter gave us a perfect product to recommend, plus we've built a new revenue stream helping clients implement it." - Mark J., Digital Pulse CEO
## Independent Creator: Alex W.
Alex creates content about productivity tools and AI:
* Built a niche following by creating tutorials on BuildBetter
* Generated \$29,000 in affiliate revenue
* Was featured in BuildBetter's newsletter, growing his audience by 45%
* Created a premium course on BuildBetter implementation
> "As a content creator, BuildBetter's affiliate program has been fantastic. The 20% commission is generous, and the team actively promotes my content to their audience." - Alex W.
## 👉 [`[Join These Success Stories]`](https://bbai.getrewardful.com/signup) 👈
# Build vs Buy: Should You Create Your Own Solution?
Source: https://docs.buildbetter.ai/pages/FAQ/build-vs-buy
Understand the true costs and considerations when deciding between building in-house or buying BuildBetter
A comprehensive guide to help you make the right decision for your organization.
## The Real Cost of Building In-House
Building a conversation intelligence platform is more complex and expensive than most teams initially estimate. Here's what you're really signing up for:
### Time & Resource Investment
**6-8 months minimum**
* 2-3 months for basic infrastructure
* 2-3 months for core features
* 2 months for testing and refinement
**3-5 dedicated engineers**
* AI/ML expertise required
* Data pipeline experience
* Frontend development
* DevOps for infrastructure
**$500K - $1M+ Year 1**
* Engineer salaries
* Infrastructure costs
* Third-party APIs
* Ongoing maintenance
**Often overlooked expenses**
* Compliance certifications
* Security audits
* Feature updates
* Bug fixes and support
## Real Customer Story
An enterprise customer with an AI-native team spent 6 months with 5 engineers trying to build a similar solution. Despite their expertise and significant investment, they couldn't match BuildBetter's capabilities. Their BuildBetter contract ended up being **50x cheaper** than what they'd already spent attempting to build it themselves.
## Build vs Buy Calculator
Visit our interactive [Build vs Buy Calculator](https://buildbetter.ai/buildorbuy) to see a detailed cost comparison based on your specific needs.
### Quick Cost Comparison (Year 1)
**One-Time Setup**: \$175,000
* Infrastructure setup
* Initial development
* Basic feature set
**Monthly Ongoing**: \$24,243
* 2 engineers for maintenance
* Infrastructure costs
* API fees
**Year 1 Total**: \$465,920
**One-Time Setup**: \$0
* Instant deployment
* No infrastructure needed
* Full feature access
**Monthly Cost**: \~\$200-500
* Usage-based pricing
* All features included
* Automatic updates
**Year 1 Total**: \$2,400-6,000
## What You're Really Building
Many teams underestimate the complexity of building a conversation intelligence platform. Here's what's actually required:
### Core Components
* Meeting platform integrations (Zoom, Teams, Meet, Webex)
* Calendar syncing (Google, Outlook)
* CRM connections (Salesforce, HubSpot)
* Email and Slack ingestion
* File upload capabilities
* Audio/video transcription
* Speaker diarization
* Context extraction
* Signal identification
* Pattern recognition
* Report generation
* Custom AI models (not just LLM wrappers)
* Contextual understanding
* Sentiment analysis
* Topic modeling
* Trend identification
* Actionable insights
* Search functionality
* Filtering and segmentation
* Report customization
* Team collaboration
* Permission management
* API access
* SOC 2 compliance
* GDPR compliance
* HIPAA readiness
* Data encryption
* Audit logging
* SSO integration
## Why Buy BuildBetter?
### Immediate Benefits
Start getting insights immediately, not in 6-8 months
Battle-tested with thousands of B2B teams
We handle all updates, improvements, and infrastructure
### Long-Term Advantages
1. **Continuous Innovation**
* Regular feature updates
* Latest AI model improvements
* New integrations added automatically
* No additional development costs
2. **Enterprise-Ready**
* SOC 2 Type 2 certified
* GDPR compliant
* HIPAA compliant options
* 99.9% uptime SLA
3. **Usage-Based Pricing**
* No per-seat licensing
* Everyone in your org gets access
* Pay only for what you use
* Scales with your business
4. **Expert Support**
* Dedicated customer success
* Technical support included
* Best practices guidance
* Regular training sessions
## Common Misconceptions
**"We can just use ChatGPT with our transcripts"**
This approach fails because:
* Context window limitations (3-10 transcripts max)
* No persistent memory or pattern recognition
* No integration with your tools
* No compliance or security guarantees
* Poor performance on analytical queries
**"We'll start simple and add features later"**
The reality:
* "Simple" still requires significant infrastructure
* Feature requests pile up quickly
* Technical debt accumulates
* Maintenance becomes a full-time job
* You're always playing catch-up
## Decision Framework
### Build In-House If:
* ❌ You have 6+ months to wait for results
* ❌ You can dedicate 3-5 engineers long-term
* ❌ You have \$500K+ budget for Year 1
* ❌ Conversation intelligence is your core product
* ❌ You need highly specialized, unique features
### Buy BuildBetter If:
* ✅ You need insights now, not in 6 months
* ✅ You want to focus on your core business
* ✅ You need enterprise-grade security and compliance
* ✅ You want access to continuous improvements
* ✅ You prefer predictable, usage-based costs
## The Bottom Line
For \~$200-500/month, you get a platform that would cost $1M+ to build and maintain. The math is simple: unless conversation intelligence IS your product, building doesn't make sense.
## What Our Customers Say
> "We tried building this ourselves for 6 months. Switching to BuildBetter gave us better results in 2 weeks than we achieved in half a year of development." - Enterprise Customer
> "The build vs buy decision was easy once we calculated the true costs. BuildBetter pays for itself in the time savings alone." - Series B Startup
> "We thought we could build a 'simple version' - there's no such thing. BuildBetter has features we didn't even know we needed." - Tech Company
## Ready to Get Started?
Run your own numbers with our interactive Build vs Buy Calculator
Get free credits to explore BuildBetter - no credit card required
## Still Have Questions?
Our team is happy to discuss your specific use case and help you make the right decision. [Contact us](mailto:support@buildbetter.ai) for a personalized consultation.
# Consent & Compliance
Source: https://docs.buildbetter.ai/pages/FAQ/consent-and-compliance
Frequently asked questions about recording consent and compliance with BuildBetter
## Recording Consent
Yes. In most jurisdictions, you need some form of consent to record conversations. The specific requirements vary by location:
* **One-party consent jurisdictions:** At least one participant in the conversation must consent to recording (which can be you). This is the federal standard established by the Electronic Communications Privacy Act (ECPA).
* **Two-party/all-party consent jurisdictions:** All participants must consent to recording. This applies in 11 states plus Washington D.C.
BuildBetter provides tools to help with consent management, but legal compliance remains your responsibility. We recommend consulting with your legal team regarding specific requirements for your location and use case.
BuildBetter offers several consent tools:
1. **Pre-call consent emails:** Automatically sent 24 hours before the call, notifying participants that the call will be recorded and offering them the option to opt out. This can be configured in your account settings.
2. **In-call consent pop-ups:** When joining a call, participants see a clear pop-up indicating that recording is active, and they confirm their consent through the meeting platform (Zoom, MS Teams, Google Meet).
3. **Visual indicators:** Clear recording indicators in supported meeting platforms.
4. **Chat messages:** Automated consent messages in meeting chat.
5. **Custom consent workflows:** Enterprise customers can design custom consent processes.
These tools can be configured to match your organization's compliance requirements and help ensure compliance with both federal and state-specific laws.
If a participant doesn't consent to recording, you should follow these best practices:
1. **Stop or pause recording:** BuildBetter allows you to pause or stop recording at any time
2. **Offer alternatives:** Suggest alternative ways to participate (e.g., written input)
3. **Document objection:** Note the objection in your records
4. **Post-meeting editing:** You can edit transcripts to remove content if needed
Participants can revoke consent by explicitly stating so or by leaving the call. For meetings in all-party consent jurisdictions, recording should not proceed without everyone's consent.
BuildBetter only records meetings according to rules you configure. You have complete control through:
* **Recording rules:** Set criteria for which meetings to record
* **Calendar settings:** Specify which calendars to monitor
* **Manual controls:** Override automatic settings for specific meetings
* **Blacklist options:** Exclude specific meeting types or participants
The system never records without your explicit configuration and permission, and always follows the consent workflows you've established.
## Legal Compliance
All-party consent is required in various jurisdictions, including:
**U.S. States with all-party consent laws:**
* California
* Connecticut
* Florida
* Illinois
* Maryland
* Massachusetts
* Montana
* New Hampshire
* Pennsylvania
* Washington
* Nevada (despite its one-party stance in-person)
* Washington D.C.
**Countries with strict recording consent regulations:**
* Australia (varies by state)
* Canada (for private conversations)
* Germany
* Switzerland
* United Kingdom (for business purposes)
This list is not exhaustive, and laws change frequently. You can find detailed information about state laws on recording at:
* [Justia's 50-state survey](https://www.justia.com/50-state-surveys/recording-phone-calls-and-conversations/)
* [MWL Law's Recording Conversations Chart](https://www.mwl-law.com/wp-content/uploads/2018/02/RECORDING-CONVERSATIONS-CHART.pdf)
Always verify current requirements for your jurisdiction.
Courts have generally ruled that AI-powered transcription is treated similarly to recording, particularly in states requiring all-party consent. For example, California's TranscriptionStar case under Penal Code §632 established that transcription services are subject to the same consent requirements as recordings.
This means that BuildBetter's transcription process must also be compliant with:
* State-specific recording consent laws
* Relevant data protection regulations like HIPAA and CCPA where applicable
BuildBetter's compliance certifications (SOC 2, GDPR, HIPAA) ensure that both recording and transcription processes meet regulatory requirements.
GDPR compliance for recordings requires several measures:
1. **Legal basis:** Establish a legal basis for processing (consent, legitimate interest, etc.)
2. **Transparency:** Clearly inform participants about recording before the meeting
3. **Data minimization:** Only record necessary meetings and content
4. **Access controls:** Limit access to recordings to those with a need to know
5. **Retention limits:** Set appropriate retention periods
6. **Subject rights:** Honor data subject requests (access, deletion, etc.)
BuildBetter provides tools to help with these requirements, including consent mechanisms, access controls, and retention settings. Our platform is fully GDPR compliant, giving you the necessary infrastructure to maintain compliance.
BuildBetter maintains several key compliance certifications:
* **SOC 2 Type 2:** Covering security, availability, and confidentiality
* **GDPR:** Full compliance with European data protection requirements
* **HIPAA:** Healthcare data protection (available for healthcare customers)
* **CCPA/CPRA:** California privacy requirements
We also provide an [AI Transparency Policy](https://trust.buildbetter.ai/doc/trust) detailing how our AI technologies are used and how data is handled.
These certifications ensure that BuildBetter's data handling practices meet the highest standards for security and privacy. For detailed documentation, enterprise customers can request access to our complete compliance package.
Yes. BuildBetter offers several documentation features:
* **Consent logs:** Records of notification delivery and acknowledgments
* **Access logs:** Tracking who has viewed recordings
* **Processing records:** Documentation of data processing activities
* **Retention tracking:** Records of when data is deleted according to policies
* **Policy management:** Tools to document and implement compliance policies
Enterprise customers have access to additional compliance reporting features and can request access to our detailed security documentation.
## Privacy Controls
BuildBetter offers several content protection features:
* **Automatic PII detection:** Identifies potentially sensitive information
* **Redaction tools:** Remove sensitive content from transcripts
* **Custom vocabulary filters:** Set specific terms for automatic redaction
* **Access restrictions:** Limit who can view sensitive recordings
* **Export controls:** Manage how content can be shared
These tools help protect sensitive information while preserving valuable insights.
Yes. BuildBetter provides several post-recording editing capabilities:
* **Transcript editing:** Modify or remove specific content
* **Redaction:** Obscure sensitive information
* **Segment removal:** Delete portions of recordings
* **Custom exports:** Create sanitized versions for sharing
* **Annotations:** Add context or corrections
Editing capabilities help you maintain compliance while preserving valuable information.
Retention periods are customizable based on your requirements:
* **Starter plan:** 30-day default retention
* **Professional plan:** 90-day default retention
* **Enterprise plan:** Custom retention policies
You can configure different retention periods for different meeting types or content categories. Automatic deletion occurs at the end of the configured retention period.
Your organization retains full ownership of all data recorded and processed in BuildBetter. As our founder Spencer puts it: "BuildBetter excels at a lot of stuff, but one of the big ones is I can confidently say that no other call recorder can: 'it's your data.'"
Your data is:
* Never used to train our AI models
* Never shared with third parties without your explicit permission
* Fully exportable at any time
* Deletable at your request
BuildBetter acts as a data processor, not a data controller (unless specifically arranged otherwise), meaning you maintain ultimate control over your information.
## Best Practices
Based on our experience and legal research, we recommend these consent best practices:
1. **Advance notice:** Include recording notices in meeting invitations and send pre-call consent emails (BuildBetter can automate this)
2. **Verbal confirmation:** Announce recording at the start of meetings
3. **Visual indicators:** Ensure recording status is visible to all participants
4. **Opt-out option:** Provide clear instructions for objecting to recording
5. **Purpose explanation:** Clearly state why recording is happening and how it will be used
6. **Access transparency:** Inform participants about who will have access to recordings
At a minimum, companies should notify all call participants about recordings. In many internal settings (like customer support or user research), consent may already be covered under broader corporate policies. However, BuildBetter's layered consent system is designed to preempt any legal issues by verifying and displaying consent clearly at every stage.
Following these practices helps build trust while maintaining compliance across jurisdictions.
Effective team training should include:
1. **Policy education:** Clear guidelines on when and how to record
2. **Legal requirements:** Basic understanding of applicable laws (federal one-party consent and state-specific requirements)
3. **Consent procedures:** Proper methods for obtaining and documenting consent
4. **System training:** How to use BuildBetter's consent features
5. **Scenario practice:** Handling objections or special situations
6. **Regular updates:** Refreshers when policies or laws change
BuildBetter provides training materials and getting-started videos that you can customize for your organization. These resources are available at [app.buildbetter.app/getting-started](https://app.buildbetter.app/getting-started).
Yes. We strongly recommend creating a formal recording policy that addresses:
* When recording is permitted or required
* Who has authority to initiate recordings
* Proper consent procedures based on jurisdiction
* Access and sharing restrictions
* Retention and deletion schedules
* Handling of sensitive information
* Compliance with applicable regulations
Your policy should account for both federal standards (ECPA) and any state-specific requirements that apply to your operations. BuildBetter can provide policy templates as a starting point for your organization.
For enterprise customers operating across multiple jurisdictions, we recommend a policy that defaults to the strictest applicable standards (typically all-party consent) to simplify compliance.
## Risk Mitigation
The primary legal risks associated with recording meetings include:
1. **Compliance violations:** Failing to obtain proper consent as required by state or federal laws
2. **Privacy infringement:** Recording confidential or sensitive conversations without appropriate safeguards
3. **Data protection issues:** Not properly securing or handling recorded content
4. **Contractual breaches:** Violating terms of employment or service agreements regarding confidentiality
BuildBetter's multi-tiered approach minimizes these legal risks by:
* Integrating federal one-party consent requirements as defined by the ECPA
* Implementing additional measures to meet stricter state laws and all-party consent states
* Providing robust consent acquisition workflows (pre-call emails and in-call notifications)
* Ensuring participants are fully aware of and can manage their consent at any time
This comprehensive approach helps protect your organization while maintaining ethical recording practices.
For organizations operating across multiple states or countries, we recommend:
1. **Default to the strictest standard:** Apply all-party consent rules to all recordings to simplify compliance
2. **Implement location detection:** Configure settings based on participant locations when possible
3. **Document state-specific procedures:** Maintain clear guidance for employees on jurisdiction-specific requirements
4. **Regular policy reviews:** Update procedures as laws change
BuildBetter's platform can accommodate these multi-jurisdiction strategies while maintaining consistent user experiences and workflows.
Contact our compliance specialists for personalized guidance
# Frequently Asked Questions
Source: https://docs.buildbetter.ai/pages/FAQ/index
Common questions and answers about BuildBetter
Browse our most commonly asked questions or use the search bar to find specific answers.
## General Questions
BuildBetter is an AI-powered platform that helps teams capture, analyze, and extract insights from conversations. It started in 2020 as one of the first B2B tools to leverage GPT models, with a focus on empowering teams rather than replacing them.
BuildBetter works by recording meetings, processing conversations, and turning them into actionable intelligence. It captures meetings through calendar integration, analyzes the content for key signals, and makes all the information searchable and accessible for your entire organization.
Yes. BuildBetter is SOC 2 Type 2 compliant, GDPR compliant, and can be HIPAA compliant when required. Your data is encrypted in transit and at rest, and is never used to train models or for any other purposes beyond serving your needs.
BuildBetter differs by blending internal and external data in one unified platform. It's not just a qualitative analysis tool or a ChatGPT instance with your company knowledge - it's a complete operational system that captures everything from Slack conversations to calls to emails, creating a single source of truth.
Unlike traditional RAG (Retrieval-Augmented Generation) and embedding-based tools, BuildBetter doesn't rely on semantic similarity searches. Here's why this matters:
**The Problem with RAG/Embeddings:**
* RAG tools search for semantically similar content, which often misses nuanced context
* When you ask "What are the top customer issues?", RAG looks for things semantically related to "issues" but misses phrases like "friction" or "this took longer than expected"
* RAG doesn't understand context - it can't distinguish if an issue was raised by a customer vs. team member, or if it's about your product vs. a competitor
* Performance degrades significantly with scale - beyond 3-10 transcripts, responses become unreliable
**BuildBetter's Approach:**
* We use proprietary models and a custom dataset called "Signals" that processes data contextually
* Our pipeline understands who's speaking (customer vs. team), what they're discussing, and filters out irrelevant information
* We can analyze hundreds of hours of transcripts while maintaining accuracy and providing citations
* Instead of just answering questions, we generate comprehensive reports with meaningful patterns and insights
This is why B2B teams love BuildBetter - we're built for quality analysis at scale, not just quick semantic searches.
Building an in-house conversation intelligence solution requires significant investment:
**Time & Resources:**
* 6-8 months development time
* 3-5 engineers familiar with AI pipelines
* Ongoing maintenance and feature development
**Real-World Example:**
An enterprise customer with 5 engineers spent 6 months trying to build a similar solution. Their contract with BuildBetter was 50x cheaper than what they'd already invested, and we delivered superior results.
**Why Buy BuildBetter:**
* **Immediate Value**: Start getting insights today, not in 6-8 months
* **Proven Technology**: Our proprietary models handle nuances that basic LLM wrappers miss
* **Complete Solution**: Data integration, CRM syncing, compliance, and workflow automation included
* **Cost Effective**: For \~$200/month, you get a tool that would cost $1M+ to build
* **No Maintenance**: We handle updates, new features, and model improvements
* **Enterprise Ready**: SOC 2, GDPR, and HIPAA compliance built-in
Check out our detailed [Build vs. Buy Calculator](https://buildbetter.ai/buildorbuy) to see the cost comparison for your specific use case.
## Pricing and Licensing
BuildBetter uses a usage-based pricing model rather than per-seat licensing. This means everyone at your company gets access, not just select teams. This approach democratizes access to insights across your organization.
Yes! When you sign up, you get free credits to explore the platform—about 2 hours of recordings or \~35 tickets worth. There's no time limit on using these credits, so you can take your time evaluating BuildBetter at your own pace.
You actually get a **free tier** to start with—about 2 hours of recordings or \~35 tickets—so you can explore the platform before committing.
For paid trials, here's why we take that approach:
**We're usage-based, so everything has real cost**
Unlike tools funded by VC money that can afford to give away unlimited trials, every recording and analysis you run costs us to process. A small commitment helps ensure we're both serious about the evaluation.
**We do things differently**
Most feedback tools use cheap vector databases with embeddings—it can cost them just dollars to run a trial. Our approach is [fundamentally different](/pages/FAQ/rag-embeddings-comparison): we use proprietary models and contextual processing that's more expensive to run, but the output quality reflects that investment.
**You get real support**
We staff up to help with integrations and onboarding during trials. The trial covers those costs so we can actually be hands-on rather than leaving you to figure things out alone.
**We're building for the long term**
We're trying to build 20-year relationships with customers, not optimize for trial volume. That means running a sustainable business from day one.
Of course, you can always go month-to-month on our contracts, and plans start as low as \$8/month. We're not trying to lock anyone in—we just want to make sure we can deliver real value to customers who are serious about solving this problem.
Usage limits depend on your specific plan. Contact our sales team for detailed information on available plans and their corresponding usage allowances.
## Setup and Configuration
Basic setup can be completed in less than 30 minutes. This includes creating your account, connecting your calendar, and configuring the Meeting Assistant. More advanced integrations like CRM connections may take additional time.
BuildBetter integrates with popular meeting platforms (Zoom, Google Meet, Microsoft Teams, Webex), calendars (Google Calendar, Outlook), CRM systems (Salesforce, HubSpot), and communication tools (Slack). Check our [Integrations](/pages/Integrations/integrations-overview) page for a complete list.
BuildBetter provides simple onboarding tools for team members. As an admin, you can invite team members via email, and they'll receive step-by-step instructions to get started. We also offer customized onboarding sessions for enterprise customers.
## Recording and Privacy
BuildBetter only records meetings based on the rules you configure. You have complete control over which meetings are recorded through calendar settings and recording rules.
BuildBetter provides built-in consent mechanisms, including automatic announcements at the start of meetings and pre-meeting notifications. The Meeting Assistant can be configured to announce itself when joining calls. However, compliance with local recording laws remains your responsibility.
Access to recordings is controlled by your organization's permission settings. By default, only the meeting organizer and specifically designated individuals can access recordings. Admins can configure organization-wide access policies.
## Technical Requirements
BuildBetter is a cloud-based solution that works in modern web browsers (Chrome, Firefox, Safari, Edge). No downloads are required for the core platform, though optional extensions are available for Zoom, Chrome, and other tools.
Yes, BuildBetter has a responsive web interface that works on tablets and smartphones. We also offer dedicated mobile apps for iOS and Android with core functionality.
A stable internet connection with at least 5 Mbps download and 2 Mbps upload speed is recommended for optimal performance during recording sessions.
## Support and Training
BuildBetter offers multiple support channels:
* In-app chat support
* Email support at [support@buildbetter.ai](mailto:support@buildbetter.ai)
* Documentation at docs.buildbetter.ai
* Scheduled training sessions for enterprise customers
Yes, we provide free onboarding webinars for all new customers. Enterprise customers receive additional personalized training sessions. We also offer a comprehensive knowledge base and video tutorials.
Our support team is available Monday through Friday, 9am to 6pm Eastern Time. Enterprise customers may have access to extended support hours based on their service level agreement.
Contact our support team for personalized assistance
# Language Support FAQ
Source: https://docs.buildbetter.ai/pages/FAQ/language-support
Information about languages supported in BuildBetter
## Supported Languages
BuildBetter currently supports the following languages for transcription and analysis:
**Fully Supported:**
* English (US, UK, Australia, Canada)
* Spanish (Spain, Latin America)
* French
* German
* Portuguese
* Italian
**Beta Support:**
* Japanese
* Mandarin Chinese
* Korean
* Dutch
* Swedish
* Norwegian
We continually expand our language capabilities based on customer demand.
Yes. BuildBetter can transcribe and analyze meetings with multiple languages spoken. The system will attempt to identify language switches and transcribe accordingly. For optimal performance in multilingual settings, we recommend specifying the expected languages before recording.
Transcription accuracy varies by language:
* English: 95-98% accuracy
* Fully supported languages: 90-95% accuracy
* Beta languages: 85-90% accuracy
Factors affecting accuracy include audio quality, background noise, accents, and technical terminology.
Yes. The BuildBetter interface is available in:
* English
* Spanish
* French
* German
* Portuguese
* Japanese
You can change your preferred interface language in your user settings.
## Language Features
Yes. BuildBetter automatically detects the spoken language during recordings. However, for optimal performance, you can pre-select expected languages for your meetings in your recording settings.
Yes. BuildBetter offers two translation features:
1. **Transcript Translation:** Convert meeting transcripts from one language to another
2. **Real-time Subtitles:** Display live translations during meetings (Enterprise plan only)
Translations are available between any of our fully supported languages.
BuildBetter's transcription engine is trained on diverse speech patterns to handle various accents and dialects. For specific regional dialects, you can specify this in your settings to improve accuracy. Our system continuously improves through machine learning techniques.
Yes. BuildBetter can be customized with industry-specific vocabularies for fields like:
* Healthcare
* Legal
* Finance
* Technology
* Engineering
Enterprise customers can upload custom terminology lists to improve transcription accuracy for specialized terminology.
## Language Processing
Sentiment analysis is available in all fully supported languages. The system analyzes emotional tones, positive/negative sentiment, and conversational dynamics regardless of language. Beta languages have more basic sentiment detection capabilities.
Yes. Topic extraction works across all supported languages, though with varying degrees of sophistication:
* English has the most advanced topic extraction
* Fully supported languages have comprehensive topic identification
* Beta languages have basic topic detection
No. BuildBetter's transcription requires an internet connection to access our cloud-based language processing capabilities. This ensures the highest possible accuracy across all supported languages.
## Language Roadmap
We're currently working on adding full support for:
* Arabic
* Hindi
* Russian
* Turkish
* Vietnamese
Our language expansion roadmap is informed by customer requests and market demand.
Yes. You can submit language support requests through:
* Your account manager
* Our feature request form
* Customer support
We prioritize language additions based on customer demand and technical feasibility.
Contact our language specialists for detailed information
# Popular Feature Requests
Source: https://docs.buildbetter.ai/pages/FAQ/popular-feature-requests
Frequently requested features and their current status in BuildBetter
BuildBetter is constantly evolving based on customer feedback. Here's the status of our most frequently requested features.
## Currently in Development
**Status:** In development, expected Q2 2025
We're expanding our mobile app capabilities to include:
* Full meeting controls
* Enhanced notification settings
* Offline content access
* Document generation on mobile
* Improved sharing controls
The updated mobile experience will be available for both iOS and Android.
**Status:** Beta available for Enterprise customers
Our enhanced analytics dashboard includes:
* Custom visualization creation
* Trend analysis across meeting types
* Comparative performance metrics
* Exportable charts and graphs
* Team-level insights
General availability is expected in Q3 2025.
**Status:** Ongoing development
We're adding integrations with:
* Microsoft Power BI
* Tableau
* Asana
* Monday.com
* Additional CRM platforms
New integrations are released on a rolling basis.
**Status:** Alpha testing
This feature will provide:
* Live topic identification
* Action item detection during meetings
* Real-time sentiment analysis
* On-screen agenda tracking
* Smart meeting summaries generated during calls
Early access is available for select customers.
## Coming Soon
**Status:** Planned for Q4 2025
This feature will allow:
* Training on your organization's terminology
* Custom detection for industry-specific signals
* Personalized insight generation
* Organization-specific summarization styles
* Custom classification systems
**Status:** Design phase
This feature will enable:
* Analysis across multiple related meetings
* Project-level insights
* Customer journey mapping
* Long-term trend identification
* Cross-team collaboration metrics
**Status:** Planning phase
Upcoming calendar features include:
* Smart scheduling recommendations
* Automated meeting categorization
* Priority-based recording rules
* Meeting effectiveness scoring
* Attendance pattern analysis
**Status:** Planned for Q3 2025
Enhanced sharing will include:
* Temporary access links
* Watermarking for sensitive content
* Viewer analytics
* Customizable permission sets
* Integration with identity providers
## Under Consideration
**Status:** Under evaluation
This potential feature would:
* Capture and index whiteboard content
* Sync visual elements with transcripts
* Enable searchable visual content
* Integrate with popular whiteboarding tools
* Provide visual content analytics
**Status:** Early research
This concept includes:
* AI-assisted meeting moderation
* Speaking time balancing
* Automatic action item assignment
* Meeting effectiveness coaching
* Agenda adherence monitoring
**Status:** Evaluating feasibility
This potential feature set would:
* Analyze body language and gestures
* Provide engagement metrics based on video
* Identify visual aids and references
* Enhance remote presentation effectiveness
* Support multi-camera setups
## Request a Feature
You can submit feature requests through multiple channels:
1. **In-app Feedback:** Use the feedback button in the BuildBetter interface
2. **Account Manager:** Contact your designated account representative
3. **Support Portal:** Submit detailed requests via our support system
4. **User Community:** Post ideas in our customer community forum
5. **Quarterly Surveys:** Participate in our product direction surveys
All requests are reviewed by our product team and prioritized based on customer demand and strategic alignment.
Our feature prioritization considers several factors:
* Customer demand (number of requests)
* Strategic alignment with our product vision
* Technical feasibility and development complexity
* Potential impact on user experience
* Market differentiation potential
We regularly review our roadmap to ensure it reflects customer needs while maintaining product coherence.
Yes! BuildBetter has an active beta program for customers interested in early access to new features.
To join:
1. Contact your account manager to express interest
2. Complete the beta program enrollment form
3. Agree to the beta testing terms
Beta participants receive early access in exchange for feedback and usage data to help improve features before general release.
Submit your feature suggestion and help shape the future of BuildBetter
# Privacy and Security FAQ
Source: https://docs.buildbetter.ai/pages/FAQ/privacy-and-security
Frequently asked questions about BuildBetter's privacy and security practices
## Data Protection
BuildBetter employs multiple layers of protection:
* End-to-end encryption for all data in transit
* AES-256 encryption for data at rest
* Regular security audits and penetration testing
* Secure cloud infrastructure with redundant backups
* Role-based access controls
* Continuous security monitoring
No. Your data is never used to train any models, including our own. Our founder Spencer emphasizes this point: "Your data is never being used to train on any models. Your data is never being used to train for our own models."
Only authorized users within your organization have access to your data, based on permissions you configure. BuildBetter staff cannot access your content unless specifically granted permission for support purposes, and all access is logged and auditable.
BuildBetter uses secure cloud infrastructure with data centers located in the United States. For enterprise customers with specific data residency requirements, we offer regional data storage options in select locations.
## Compliance
BuildBetter holds several compliance certifications:
* SOC 2 Type 2
* GDPR compliance
* HIPAA compliance (available for healthcare customers)
* ISO 27001 (in process)
We can provide documentation for these certifications upon request.
Yes. BuildBetter is fully GDPR compliant and can serve as either a data processor or data controller depending on your implementation. We provide tools for handling data subject requests, including access, portability, and erasure requirements.
Yes. BuildBetter can be configured for HIPAA compliance for healthcare customers. This requires signing a Business Associate Agreement (BAA) and implementing specific security controls. Contact our sales team for details on HIPAA-compliant implementations.
BuildBetter allows you to configure data retention policies according to your requirements. You can set automatic deletion timeframes ranging from 7 days to indefinite retention. When data is deleted, it is permanently removed from our systems following secure deletion protocols.
## Privacy Controls
Yes. BuildBetter provides granular access controls for all content:
* Default permissions based on organizational roles
* Custom permissions for specific recordings
* Private folders with restricted access
* Sharing controls for external access
* Time-limited access options
BuildBetter offers several features to protect sensitive information:
* Automatic PII detection and redaction
* Custom redaction rules for industry-specific information
* Ability to edit transcripts to remove sensitive content
* Permission-based visibility for redacted content
Yes. You maintain complete control over your data. You can:
* Export data in standard formats
* Delete individual recordings or documents
* Delete all data associated with specific users
* Request complete account deletion with verification
BuildBetter provides multiple consent mechanisms:
* Pre-meeting notifications to participants
* Visible bot participant for transparency
* Automatic announcements at meeting start
* Consent messages in meeting chat
* Documentation features for recording policies
While we provide these tools, compliance with local recording laws remains your responsibility.
## Security Features
BuildBetter supports multiple authentication methods:
* Email/password with strong password requirements
* Single Sign-On (SSO) via SAML 2.0
* Google Workspace integration
* Microsoft 365 integration
* Multi-factor authentication (MFA)
* IP-based access restrictions (Enterprise plan)
Yes. Enterprise customers have access to comprehensive audit logs that track:
* User access events
* Permission changes
* Content creation and modification
* Administrative actions
* Authentication events
* Data export activities
Logs can be retained according to your compliance requirements.
BuildBetter has a robust incident response plan that includes:
* 24/7 monitoring for suspicious activities
* Automated alerts for potential security issues
* Dedicated security response team
* Customer notification procedures
* Regular testing of incident response processes
* Post-incident analysis and remediation
Yes. We provide security documentation to customers under NDA, including:
* Security whitepaper
* Compliance certifications
* Penetration test summaries
* Data processing agreements
* Security policies and procedures
Contact your account representative to request this documentation.
## Security Best Practices
We recommend the following security practices:
* Enable multi-factor authentication for all users
* Implement role-based access controls
* Regularly review user access permissions
* Set appropriate data retention policies
* Train users on security awareness
* Use strong, unique passwords
* Enable SSO when available
Security concerns can be reported through:
* Our dedicated security email: [security@buildbetter.ai](mailto:security@buildbetter.ai)
* The security contact form on our website
* For critical issues, call our security hotline at 1-800-BUILD-SEC
We follow responsible disclosure practices and will acknowledge reports within 24 hours.
Contact our security team for detailed information
# RAG vs BuildBetter: Understanding the Difference
Source: https://docs.buildbetter.ai/pages/FAQ/rag-embeddings-comparison
Learn how BuildBetter differs from traditional RAG and embedding-based tools
Understanding why BuildBetter's approach delivers superior results for B2B teams analyzing conversations at scale.
## The Limitations of RAG and Embeddings
Traditional RAG (Retrieval-Augmented Generation) and embedding-based tools rely on semantic similarity searches. While this approach works for simple information retrieval, it falls short when analyzing complex business conversations.
### Common Problems with RAG/Embeddings:
When you ask "What are the top customer issues?", RAG searches for content semantically similar to "issues" but misses nuanced phrases like:
* "This creates friction in our workflow"
* "It took me longer than expected"
* "We had to find a workaround"
* "The team struggled with this"
RAG can't distinguish:
* **Who's speaking**: Customer vs. team member vs. prospect
* **What they're discussing**: Your product vs. a competitor's
* **Why it matters**: Bug report vs. feature request vs. general feedback
* **When it's relevant**: Current issue vs. resolved problem
* Works adequately for 3-10 transcripts
* Quality drops significantly beyond that
* "Needle in haystack" queries work, but knowledge-based questions fail
* Can't handle questions like "What were the 10 most common problems Alice had with our product?"
## BuildBetter's Proprietary Approach
BuildBetter doesn't use traditional RAG or embeddings. Instead, we've built a sophisticated pipeline that understands conversations the way humans do.
### Our Technology Stack
We've developed a custom dataset called "Signals" that:
* Processes data contextually, not just semantically
* Understands business context and relationships
* Maintains accuracy across hundreds of hours of content
* Provides accurate citations for every insight
Our models understand:
* **Speaker identification**: Automatically distinguishes customers, team members, prospects
* **Topic relevance**: Filters out irrelevant mentions (e.g., "weather complaints")
* **Temporal context**: Knows if something is a current issue or historical reference
* **Business impact**: Prioritizes based on severity, frequency, and business value
Unlike RAG systems:
* Analyze hundreds of hours of transcripts with consistent quality
* Generate comprehensive reports, not just answers
* Identify patterns across massive datasets
* Maintain citation accuracy throughout
## Real-World Comparison
**Query**: "What are our customers' main issues?"
**Process**:
1. Searches for semantic matches to "issues"
2. Returns fragments containing similar words
3. No understanding of context or speaker
4. Quality degrades with more data
**Result**: Incomplete, often irrelevant results mixing customer issues with internal discussions, competitor mentions, and resolved problems.
**Query**: "What are our customers' main issues?"
**Process**:
1. Identifies all customer conversations
2. Extracts actual problems (even if not called "issues")
3. Filters by relevance and recency
4. Groups by theme and impact
**Result**: Comprehensive report with:
* Ranked list of actual customer problems
* Citations to specific conversations
* Severity and frequency analysis
* Actionable insights with context
## Why This Matters for B2B Teams
Get meaningful insights from every conversation, not just keyword matches
Analyze your entire conversation history without degrading quality
Receive reports you can act on, not just search results
Every insight links back to the original conversation
## Technical Deep Dive
Our pipeline is expensive to run because we prioritize accuracy and context over simple semantic matching. This investment in infrastructure means you get insights that actually drive business decisions.
### What Makes Our Pipeline Different:
1. **Multi-Stage Processing**
* Initial transcription and speaker diarization
* Context enrichment from CRM and internal data
* Signal extraction and classification
* Pattern recognition across conversations
* Report generation with citations
2. **Custom Models**
* Proprietary models trained on B2B conversations
* Understanding of business terminology and context
* Continuous learning from usage patterns
* No reliance on generic embeddings
3. **Intelligent Filtering**
* Automatic noise reduction
* Relevance scoring
* Temporal awareness
* Business impact assessment
## Customer Success Story
"We had an AI-native enterprise customer with 5 engineers spend 6 months trying to build a similar solution using RAG and embeddings. They couldn't get anywhere close to what BuildBetter produced in our reports. Their contract with us was 50x cheaper than what they'd already spent trying to build it themselves."
## The Bottom Line
RAG and embeddings are great for:
* Simple semantic search
* Finding specific mentions
* Basic Q\&A systems
BuildBetter is built for:
* Comprehensive conversation analysis
* Pattern recognition at scale
* Actionable business intelligence
* Quality insights from massive datasets
Start your free trial and experience how BuildBetter transforms your conversation data into actionable insights.
# Recording FAQ
Source: https://docs.buildbetter.ai/pages/FAQ/recording-faq
Frequently asked questions about recording meetings with BuildBetter
## Calendar Integration
BuildBetter supports Google Calendar, Microsoft Outlook/Office 365, and standard iCal/ICS calendar formats. For optimal performance, we recommend using Google Calendar or Microsoft Outlook integration.
No. BuildBetter only reads your calendar data to identify meetings - it never creates, modifies, or deletes any calendar events. The calendar integration is read-only.
BuildBetter automatically scans the description/notes section of calendar events for meeting links from supported platforms (Zoom, Google Meet, Microsoft Teams, etc.). For best results, ensure your meeting invites include the conferencing links.
Yes. You can choose which calendars BuildBetter monitors, and you can set up rules to exclude certain meetings based on keywords, participants, or time periods.
## Meeting Assistant
The Meeting Assistant uses the conferencing links found in your calendar events to join meetings as a participant. It works with Zoom, Google Meet, Microsoft Teams, and other supported platforms.
Yes. The Meeting Assistant appears as a regular participant in your meetings with the name and avatar you configure. This ensures transparency about recording.
By default, the Meeting Assistant can announce itself at the beginning of meetings to notify participants of recording. This behavior is customizable in your settings.
The Meeting Assistant will attempt to rejoin automatically. If the disconnection is brief, recording continues seamlessly. For longer disconnections, a partial recording is saved and processed.
Yes. You can access Meeting Assistant controls from the BuildBetter dashboard during active meetings to pause, resume, or stop recording as needed.
## Recording Quality
Several factors influence recording quality:
* Internet connection stability
* Meeting platform performance
* Audio equipment used by participants
* Background noise levels
* Speaker clarity and proximity to microphones
For best results:
* Use a stable internet connection
* Ensure participants use headsets when possible
* Minimize background noise
* Ask participants to speak clearly
* Test recording settings before important meetings
BuildBetter records audio in high-quality formats optimized for speech recognition and clarity. The exact specifications depend on the meeting platform and connection quality.
Yes, BuildBetter can record video content including participant cameras and screen shares, but this is configurable. You can choose audio-only recording if preferred.
## Privacy and Compliance
BuildBetter provides several consent mechanisms:
* Pre-meeting notifications to participants
* Automatic announcements at the beginning of meetings
* Visible bot participant for transparency
* Consent messages in meeting chat
However, compliance with local recording laws remains your responsibility.
Access to recordings is controlled by your organization's permission settings. By default, only the meeting organizer and specifically designated individuals can access recordings. Administrators can configure organization-wide access policies.
Retention periods are configurable based on your organization's policies. Default retention is 90 days, but this can be adjusted from 7 days to indefinite storage depending on your needs and compliance requirements.
Yes. BuildBetter provides tools for administrators to handle data subject requests, including selective removal of content if required for compliance purposes.
## Troubleshooting
This could occur for several reasons:
* The meeting platform may be unsupported
* Meeting link might be missing or in an unrecognized format
* Your recording rules might be excluding this meeting
* There might be authentication issues with the meeting platform
* The bot might have reached connection limitations
Check your settings and ensure the meeting platform is properly connected.
This can happen when:
* Participants join after recording starts
* Participants use dial-in instead of the web interface
* Network issues affect connection quality
* Participants have very low speaking volume
For best results, ensure all participants join using the web interface and speak at normal volume.
Try these steps:
1. Verify your calendar permissions are still valid
2. Refresh the calendar connection in settings
3. Check that meeting invites contain proper conferencing links
4. Ensure your recording rules aren't excluding meetings
5. Contact support if issues persist
Contact our recording specialists for personalized assistance
# Report a Bug
Source: https://docs.buildbetter.ai/pages/FAQ/report-a-bug
How to report technical issues with BuildBetter and get help
## Reporting Options
BuildBetter offers multiple ways to report issues:
1. **In-app reporting:** Use the "Report an Issue" button in the application footer
2. **Support portal:** Submit detailed bug reports at support.buildbetter.ai
3. **Email:** Send bug reports to [support@buildbetter.ai](mailto:support@buildbetter.ai)
4. **Live chat:** Chat with support agents from within the application
5. **Account manager:** Enterprise customers can report through their dedicated manager
For critical issues affecting business operations, enterprise customers can use the priority support hotline.
Effective bug reports should include:
* **Clear description** of what happened
* **Steps to reproduce** the issue
* **Expected behavior** vs. actual behavior
* **Screenshots or screen recordings** when possible
* **Error messages** received (exact text is helpful)
* **Device and browser** information
* **Time and date** when the issue occurred
* **User account** affected (if applicable)
* **Recording or content** affected (if applicable)
The more details you provide, the faster we can diagnose and fix the issue.
To submit diagnostic logs:
1. Go to **Settings > Support > Diagnostic Logs**
2. Click "Generate Diagnostic Report"
3. Wait for the log collection to complete (usually 30-60 seconds)
4. Click "Submit with Report" to attach to a new bug report
5. Alternatively, click "Download" to save logs for manual submission
Logs contain technical information that helps our team identify the cause of issues. They don't include sensitive meeting content, but may include metadata like meeting titles and participant names.
Yes. Once submitted, you can track your report:
* **Support portal:** View ticket status and updates in your support account
* **Email:** Receive automatic updates as your issue progresses
* **In-app notifications:** Get alerts when your issue is resolved
* **Support dashboard:** Enterprise customers have a dedicated issue tracking dashboard
Each report receives a unique tracking ID that you can reference in any follow-up communications.
## Common Issues
Troubleshooting steps:
1. **Check calendar permissions:** Ensure BuildBetter has access to your calendar
2. **Verify meeting links:** Confirm meeting invites contain valid conferencing links
3. **Check recording rules:** Ensure your rules don't exclude this meeting type
4. **Platform authentication:** Verify your meeting platform connection is working
5. **Network access:** Check if corporate firewalls are blocking the assistant
If these steps don't resolve the issue, please submit a bug report with details about the specific meeting.
To improve transcription quality:
1. **Check audio source:** Ensure speakers are using clear audio equipment
2. **Reduce background noise:** Minimize environmental sounds
3. **Speaker identification:** Make sure speakers are properly identified
4. **Connection quality:** Verify stable internet connections for all participants
5. **Update vocabulary:** Add industry-specific terms to your custom vocabulary
If quality remains poor after these adjustments, submit a bug report with a sample recording.
Search troubleshooting:
1. **Indexing status:** Check if content is fully processed and indexed
2. **Search terms:** Try alternative keywords or phrases
3. **Filters:** Ensure search filters aren't excluding relevant content
4. **Access permissions:** Verify you have access to the content you're searching for
5. **Processing errors:** Check for warnings on specific recordings
Include specific search examples in your bug report to help us replicate the issue.
Integration troubleshooting:
1. **Authentication:** Verify the integration's authentication is current
2. **Permissions:** Check that necessary API permissions are granted
3. **Sync status:** Review the integration's synchronization status
4. **Error logs:** Check for specific error messages in the integration logs
5. **Version compatibility:** Ensure you're using supported versions of both systems
Please include the specific integration name and any error messages in your bug report.
## Bug Reporting Best Practices
Follow these best practices for effective bug reports:
1. **Be specific:** Describe exactly what happened
2. **One issue per report:** Submit separate reports for different issues
3. **Reproduce first:** Try to make the issue happen again before reporting
4. **Include environment details:** Your device, browser, and app version
5. **Explain impact:** Describe how the bug affects your work
6. **Provide context:** What were you trying to accomplish?
7. **Avoid assumptions:** Report what happened, not what you think caused it
Well-documented bug reports help us resolve issues faster.
Yes! We appreciate reports of all issues, regardless of severity:
* Minor user interface inconsistencies
* Spelling or grammatical errors
* Performance slowdowns
* Occasional glitches
* Confusing messages or instructions
Small issues help us continuously improve the product experience and may prevent more serious problems later.
Our bug handling process includes:
1. **Initial review:** Support team evaluates the report (typically within 1 business day)
2. **Prioritization:** Issue is categorized by severity and impact
3. **Investigation:** Technical team diagnoses the root cause
4. **Resolution plan:** We determine the best fix approach
5. **Implementation:** Developers fix the issue
6. **Verification:** QA team validates the fix
7. **Deployment:** Fix is released in an update
8. **Notification:** You're informed when the issue is resolved
Critical bugs affecting core functionality receive expedited handling.
## Feature Requests vs. Bugs
Understanding the distinction:
**Bugs** are issues where something isn't working as designed:
* Errors or crashes
* Incorrect functionality
* Missing functionality that's advertised
* Performance problems
* Security vulnerabilities
**Feature requests** are suggestions for new capabilities:
* New functionality not currently offered
* Enhancements to existing features
* Integration with additional systems
* User interface improvements
* Workflow optimizations
Sometimes the line between bugs and feature requests is blurry. We'll help categorize your submission appropriately.
To submit feature requests:
1. Use the dedicated "Feature Request" form in the support portal
2. Click the "Suggest a Feature" button in the application
3. Email feature ideas to [feedback@buildbetter.ai](mailto:feedback@buildbetter.ai)
4. Discuss ideas with your account manager (enterprise customers)
Feature requests are tracked separately from bug reports but receive similar attention from our product team.
## Security Vulnerabilities
For security issues, please follow our responsible disclosure process:
1. Email [security@buildbetter.ai](mailto:security@buildbetter.ai) with details of the vulnerability
2. Mark the subject line with "Security Vulnerability Report"
3. Do not disclose the issue publicly until we've had time to address it
4. Include clear steps to reproduce the security issue
5. If possible, suggest mitigation or remediation steps
Our security team will acknowledge receipt within 24 hours and provide regular updates on our investigation.
Yes, BuildBetter maintains a security bug bounty program:
* Rewards range from $100 to $10,000 based on severity
* All validated security reports receive recognition
* Our security page lists the Hall of Fame for contributors
* Program details are available at security.buildbetter.ai/bounty
We follow industry-standard CVSS scoring to evaluate vulnerability severity.
Submit a detailed bug report to get help from our technical team
# Sharing Controls
Source: https://docs.buildbetter.ai/pages/FAQ/sharing-controls
Frequently asked questions about sharing and permission settings in BuildBetter
## Access Management
By default, recording access is limited to:
* The meeting organizer
* Users specifically invited to the meeting (if enabled in your settings)
* Workspace administrators (if enabled in your organization's settings)
This restrictive default access model ensures recordings are only available to those who need them. You can modify these default settings to match your organization's requirements.
BuildBetter offers several ways to share recordings:
1. **Internal sharing:** Grant access to specific team members or groups
2. **Link sharing:** Create shareable links with optional password protection
3. **Workspace sharing:** Make recordings available to everyone in a workspace
4. **External sharing:** Securely share with people outside your organization
5. **Integration sharing:** Push recording data to integrated systems (CRM, etc.)
Each sharing method includes customizable permission settings.
BuildBetter offers granular permission controls:
* **View only:** Can watch/listen to recordings and view transcripts
* **Comment:** View plus ability to add comments and annotations
* **Edit:** Comment plus ability to edit transcripts and metadata
* **Share:** Edit plus ability to share with others
* **Manage:** Full control including deletion and permission management
* **Special permissions:** Custom permission sets for specific use cases
Permissions can be set at the individual, group, or organizational level.
Yes. BuildBetter provides complete control over access management:
* Revoke access for specific users or groups at any time
* Expire shared links automatically or manually
* Track who has accessed shared content
* Receive notifications for access events
* Audit access history to maintain compliance
All permission changes take effect immediately across all devices and platforms.
## Sharing Features
Yes. BuildBetter allows for selective sharing:
* Share specific time segments of recordings
* Share only certain topics or discussion points
* Create custom clips with just the relevant content
* Export specific portions as standalone files
* Generate focused summaries of key sections
This targeted sharing helps recipients focus on relevant content while maintaining privacy for the rest of the meeting.
External sharing options include:
1. **Guest access:** Create temporary accounts for external users
2. **Secure links:** Generate password-protected or time-limited links
3. **Export files:** Create standalone files in standard formats
4. **Embedded players:** Embed secure players in other platforms
5. **Integration sharing:** Share via connected third-party tools
External sharing includes additional security controls to protect sensitive content.
Yes. When sharing, you can customize the recipient's experience:
* Show/hide the transcript
* Include/exclude comments and annotations
* Show/hide metadata and tags
* Enable/disable downloads
* Show/hide speaker information
* Include/exclude AI-generated summaries
* Redact sensitive information selectively
These controls help you share appropriate information while protecting sensitive content.
Yes. Enterprise customers can integrate with Identity Providers (IdP) for:
* Role-based access synchronized with your IdP
* Group-based permissions that reflect your organization structure
* Single Sign-On (SSO) for seamless access
* Automated permission updates based on organizational changes
* Centralized access management and reporting
Supported IdP systems include Okta, Azure AD, Google Workspace, and other SAML/OAuth providers.
## Organization Controls
Workspace permissions operate at several levels:
1. **Organization-wide settings:** Global policies set by administrators
2. **Workspace-specific settings:** Policies for specific teams or departments
3. **Folder permissions:** Access controls for groups of related recordings
4. **Individual recording permissions:** Settings for specific content
This hierarchical approach allows for both consistent policy enforcement and flexible exceptions when needed.
Administrator capabilities depend on your organization's configuration:
* **Standard setting:** Admins can access all content for management purposes
* **Privacy-focused setting:** Admin access requires approval or is logged for audit
* **Restricted setting:** Certain content can be protected even from administrators
These options allow you to balance administrative needs with privacy requirements.
Role-based access control can be configured through:
1. **Predefined roles:** Use BuildBetter's default role templates
2. **Custom roles:** Create organization-specific roles with tailored permissions
3. **Group synchronization:** Align with existing groups from your directory service
4. **Automated assignments:** Set rules for automatic role assignment
5. **Inheritance controls:** Define how permissions propagate through your hierarchy
Enterprise customers have access to advanced RBAC features for complex organizations.
## Security Features
BuildBetter implements multiple security measures for shared content:
* **End-to-end encryption** for all content
* **Access verification** for each playback session
* **Watermarking** to identify the source of any leaks
* **DRM protection** for highly sensitive content
* **Access logging** to track all viewing activity
* **Geographic restrictions** to limit where content can be accessed
These layers of protection ensure your shared content remains secure.
You have complete control over download and redistribution:
* Enable/disable download functionality
* Allow screenshots or prevent them
* Enable/disable sharing by recipients
* Set expiration dates for access
* Limit the number of views
* Receive notifications when content is accessed
These controls help prevent unauthorized redistribution of sensitive content.
BuildBetter provides comprehensive access tracking:
* Real-time access logs showing who viewed content and when
* Duration tracking to see how long content was viewed
* Device and location information for security verification
* Export options for audit and compliance purposes
* Notification options for important access events
Access reporting is available in the sharing dashboard for each recording.
## Best Practices
Our recommended sharing best practices include:
1. **Least privilege principle:** Share with the minimum necessary permissions
2. **Time-limited access:** Set expiration dates when appropriate
3. **Regular audits:** Periodically review who has access to what
4. **Clear labeling:** Use descriptive names for shared content
5. **Segment sharing:** Share only relevant portions when possible
6. **Permission templates:** Create consistent permission sets for common scenarios
Following these practices helps maintain security while enabling collaboration.
Yes. We recommend creating a formal sharing policy that addresses:
* Who is authorized to share recordings
* Appropriate recipients for different content types
* Required approval processes (if any)
* Permitted sharing methods
* Prohibited sharing scenarios
* Handling of sensitive information
* Content classification guidelines
BuildBetter provides policy templates that you can customize for your organization.
Contact our team for personalized guidance on optimizing your sharing controls
# Subscription Plans
Source: https://docs.buildbetter.ai/pages/FAQ/subscription-plans
Frequently asked questions about BuildBetter subscription options
## Plan Options
BuildBetter offers several subscription tiers to meet different organizational needs:
**Free**
* Try BuildBetter with limited credits
* Basic features and analytics
* Great for evaluating the platform
**Hobby**
* For individuals and very small teams
* Limited monthly credits
* Core analytics and signal extraction
* Standard support
**Starter**
* For small teams getting started
* Monthly credit allocation for recordings and AI features
* Basic analytics and signal extraction
* Standard support
**Explorer**
* For growing teams
* Increased monthly credits
* Advanced analytics and custom signals
* Priority support
* CRM integrations
**Pro**
* For teams that need more power
* Higher credit allocation
* Full analytics suite
* Priority support
* All integrations included
**Enterprise**
* For larger organizations with custom needs
* Custom credit allocation
* Full analytics suite with custom dashboards
* Custom data retention policies
* Dedicated support manager
* Advanced security features (SSO, audit logs)
* Custom integrations
**Healthcare Edition**
* Specialized for healthcare organizations
* HIPAA compliance features
* PHI handling controls
* Clinical vocabulary support
* Compliance documentation
BuildBetter uses a **credits-based pricing model** rather than per-seat licensing. This means:
* Everyone in your organization gets access
* You pay based on credits consumed for recordings, AI processing, and other features
* Credits refresh monthly based on your plan
* Overage credits are available if you need more
* Premium features may have additional costs
This approach ensures insights flow freely across your organization, rather than being limited to specific licensed users.
Credits are BuildBetter's universal usage currency:
**What uses credits:**
* Recording and transcribing calls
* AI-powered signal extraction
* Document generation
* Advanced analytics processing
**Credit types:**
* **Included credits**: Your monthly allocation based on your plan
* **Overage credits**: Additional credits billed at your plan's overage rate when you exceed your allocation
* **Promotional credits**: Bonus credits from promotions or referrals
Credits reset at the start of each billing cycle. Unused credits do not roll over.
Yes. BuildBetter offers several customization options:
**Plan Add-ons:**
* Additional credit packages
* Extended data retention
* Premium integrations
* Advanced analytics modules
**Enterprise Plan:**
* Fully customizable to your organization's specific needs
* Custom contract terms
* Special compliance requirements
* Dedicated implementation services
* Custom training programs
Contact our sales team to discuss your specific requirements.
Yes. When you sign up, you get free credits to explore the platform—about 2 hours of recordings or \~35 tickets worth. This includes:
* Full access to all features
* No time limit on using your free credits
* No credit card required to start
You can upgrade to a paid plan at any time to get more credits.
## Billing and Payment
Billing depends on your plan:
* **Monthly plans:** Billed monthly with automatic renewal
* **Annual plans:** Billed yearly with monthly credit allocation
* **Enterprise:** Custom billing cycles based on contract terms
All plans include:
* Transparent credit usage tracking
* Real-time usage dashboard
* Automated notifications when approaching limits
* Flexible payment methods
BuildBetter accepts:
* Major credit cards (Visa, Mastercard, American Express)
* ACH bank transfers
* Wire transfers
* Purchase orders (for Enterprise customers)
All payment processing is secured with enterprise-grade encryption.
If you exceed your allocated credits:
1. You'll receive notifications as you approach your limit
2. Additional usage is billed at your plan's overage rate (two-tier pricing)
3. You can purchase additional credit packages anytime
4. Enterprise customers can set custom overage policies
You can monitor credit usage in real-time through your dashboard.
BuildBetter offers a **30-day grace period** if payment issues arise:
* You keep full access to your workspace during this period
* No interruption to your recordings or data
* Time to resolve payment method issues
* Your data remains safe and accessible
We'll notify you of any payment issues and work with you to resolve them.
Yes. You can upgrade your plan at any time:
* **Upgrades:** Take effect immediately with prorated billing
* **Proration preview:** See exactly what you'll pay before confirming
* **Downgrades:** Take effect at the start of your next billing cycle
Plan changes can be managed through your settings or by contacting your account representative.
## Usage and Limits
Credit usage includes:
* Meeting time captured through automatic recording
* Manually recorded sessions
* Imported audio/video files
* AI processing for transcription and extraction
* Document generation
Only actual processing counts—idle time and viewing content don't affect your credit allocation.
**Users:** All plans include unlimited users—everyone in your organization can access BuildBetter.
**Storage** is determined by:
* Your data retention settings
* Recording quality settings
* Volume of recordings
Extended storage is available as an add-on for all plans if you need to retain data beyond the standard retention period.
Recording quality settings affect storage consumption:
* Standard quality: \~70MB per hour
* High quality: \~150MB per hour
* HD quality: \~300MB per hour
You can adjust quality settings based on your needs. For most business conversations, standard quality is sufficient for accurate transcription and analysis.
## Enterprise Features
Enterprise plans include:
* Single Sign-On (SSO) integration
* SCIM user provisioning
* Advanced role-based access controls
* Custom data retention policies
* Dedicated customer success manager
* SLA guarantees
* Priority support queue
* Custom integrations
* Audit logs and compliance reports
* Advanced analytics dashboards
* Custom onboarding and training
Yes. Enterprise customers can access our Professional Services team for:
* Custom implementation
* Integration development
* Workflow automation
* Custom AI model training
* System optimization
* Strategic advisory services
Professional Services are scoped and priced based on your specific requirements.
## Getting Started
To receive a customized quote:
1. Contact our sales team via the pricing page
2. Schedule a consultation call
3. Discuss your specific needs and usage patterns
4. Receive a tailored proposal
We'll work with you to find the right plan and customizations for your organization.
Implementation timelines vary by plan:
* **Free/Hobby/Starter:** Same-day setup, fully self-service
* **Explorer/Pro:** 1-3 days with guided setup assistance
* **Enterprise:** 1-4 weeks depending on customization requirements
Our implementation team works closely with you to ensure a smooth deployment.
Contact our sales team for personalized plan recommendations
# Common Issues
Source: https://docs.buildbetter.ai/pages/Help/common-issues
Troubleshooting guide for common BuildBetter issues and their solutions
## Quick Solutions
Most common connectivity problems and fixes
Solutions for recording and audio issues
Resolve login and permission problems
Fix common integration challenges
## Connection Problems
```yaml theme={null}
symptoms:
- Bot fails to join meetings
- Connection timeouts
- Platform access errors
solutions:
- Verify calendar integration
- Check meeting URL format
- Confirm platform permissions
- Test network connectivity
```
```yaml theme={null}
symptoms:
- API timeout errors
- Authentication failures
- Rate limit exceeded
solutions:
- Verify API credentials
- Check rate limits
- Test API endpoints
- Review error logs
```
## Recording Issues
### Audio Problems
```yaml theme={null}
common_issues:
no_audio:
symptoms:
- Silent recordings
- Missing audio tracks
- Low volume
solutions:
- Check audio source
- Verify permissions
- Test microphone
- Adjust settings
poor_quality:
symptoms:
- Background noise
- Echo effects
- Audio distortion
solutions:
- Use noise cancellation
- Check internet speed
- Optimize settings
- Update software
```
### Recording Failures
```yaml theme={null}
recording_issues:
failed_start:
- Check platform permissions
- Verify bot access
- Test connection
- Review settings
interrupted_recording:
- Check network stability
- Monitor system resources
- Verify storage space
- Review error logs
```
Always test recording settings before important meetings.
## Access & Authentication
* Reset password
* Clear browser cache
* Check email verification
* Contact support
* Verify role assignments
* Check access levels
* Review workspace settings
* Update permissions
* Verify SSO configuration
* Check identity provider
* Test SSO connection
* Review error messages
## Integration Challenges
### Platform Integration
```yaml theme={null}
integration_issues:
calendar:
problems:
- Sync failures
- Missing meetings
- Update delays
solutions:
- Reconnect calendar
- Check permissions
- Verify settings
- Update integration
crm:
problems:
- Data sync issues
- Field mapping errors
- Update conflicts
solutions:
- Review mapping
- Check credentials
- Test connection
- Update config
```
### Third-Party Tools
```yaml theme={null}
tool_issues:
connectivity:
- API authentication
- Endpoint access
- Rate limiting
- Token expiration
data_sync:
- Sync conflicts
- Missing data
- Format issues
- Update failures
```
Keep integration configurations up to date for optimal performance.
## Storage & Processing
* Space limitations
* Upload failures
* Access problems
* Sync errors
* Transcription delays
* Analysis failures
* Queue backlog
* Resource limits
## Performance Issues
### System Performance
```yaml theme={null}
performance_problems:
slow_response:
- Clear cache
- Check connection
- Update browser
- Optimize settings
resource_usage:
- Monitor usage
- Close unused tabs
- Clear temporary files
- Update application
```
### Feature Performance
```yaml theme={null}
feature_issues:
analysis_delays:
- Check queue status
- Verify file size
- Monitor progress
- Contact support
search_problems:
- Optimize query
- Check indexing
- Verify permissions
- Review filters
```
Regular maintenance and updates help prevent common performance issues.
## Error Messages
```yaml theme={null}
error_codes:
400:
- Bad request format
- Invalid parameters
- Missing data
401:
- Authentication required
- Invalid credentials
- Expired token
403:
- Insufficient permissions
- Access denied
- Rate limited
500:
- Server error
- Processing failure
- System overload
```
```yaml theme={null}
resolution_steps:
validation_errors:
- Check input format
- Verify parameters
- Review documentation
auth_errors:
- Update credentials
- Refresh token
- Verify permissions
system_errors:
- Retry operation
- Check status
- Contact support
```
## Recovery Steps
### Data Recovery
```yaml theme={null}
recovery_procedures:
lost_data:
- Check recycle bin
- Review backups
- Check versions
- Contact support
corrupted_files:
- Download backup
- Verify integrity
- Restore version
- Rebuild index
```
### Account Recovery
```yaml theme={null}
account_issues:
locked_account:
- Verify identity
- Reset password
- Contact admin
- Review activity
lost_access:
- Password reset
- 2FA recovery
- Admin assistance
- Support ticket
```
For persistent issues, contact BuildBetter support with detailed error information and steps to reproduce.
# Language Support
Source: https://docs.buildbetter.ai/pages/Help/language-support
Languages and dialects supported by BuildBetter
BuildBetter supports a wide range of languages and regional dialects for transcription and analysis.
## Supported Languages
BuildBetter supports the following languages and their corresponding language codes:
```yaml theme={null}
languages:
multilingual:
name: "Multilingual (Spanish + English)"
codes: ["multi"]
european:
- name: "Bulgarian"
codes: ["bg"]
- name: "Catalan"
codes: ["ca"]
- name: "Czech"
codes: ["cs"]
- name: "Danish"
codes: ["da", "da-DK"]
- name: "Dutch"
codes: ["nl"]
- name: "English"
codes: ["en", "en-US", "en-AU", "en-GB", "en-NZ", "en-IN"]
- name: "Estonian"
codes: ["et"]
- name: "Finnish"
codes: ["fi"]
- name: "Flemish"
codes: ["nl-BE"]
- name: "French"
codes: ["fr", "fr-CA"]
- name: "German"
codes: ["de"]
- name: "German (Switzerland)"
codes: ["de-CH"]
- name: "Greek"
codes: ["el"]
- name: "Hungarian"
codes: ["hu"]
- name: "Italian"
codes: ["it"]
- name: "Latvian"
codes: ["lv"]
- name: "Lithuanian"
codes: ["lt"]
- name: "Norwegian"
codes: ["no"]
- name: "Polish"
codes: ["pl"]
- name: "Portuguese"
codes: ["pt", "pt-BR", "pt-PT"]
- name: "Romanian"
codes: ["ro"]
- name: "Russian"
codes: ["ru"]
- name: "Slovak"
codes: ["sk"]
- name: "Spanish"
codes: ["es", "es-419"]
- name: "Swedish"
codes: ["sv", "sv-SE"]
- name: "Ukrainian"
codes: ["uk"]
asian:
- name: "Chinese (Mandarin, Simplified)"
codes: ["zh", "zh-CN", "zh-Hans"]
- name: "Chinese (Mandarin, Traditional)"
codes: ["zh-TW", "zh-Hant"]
- name: "Chinese (Cantonese, Traditional)"
codes: ["zh-HK"]
- name: "Hindi"
codes: ["hi"]
- name: "Indonesian"
codes: ["id"]
- name: "Japanese"
codes: ["ja"]
- name: "Korean"
codes: ["ko", "ko-KR"]
- name: "Malay"
codes: ["ms"]
- name: "Thai"
codes: ["th", "th-TH"]
- name: "Turkish"
codes: ["tr"]
- name: "Vietnamese"
codes: ["vi"]
```
## Language Selection
You can select the language for your recordings in the following ways:
1. **Automatic Detection**: BuildBetter attempts to automatically detect the language of the recording
2. **Default Setting**: Set your preferred default language in workspace settings
3. **Per Recording**: Choose a specific language for each recording
4. **API Parameter**: Specify language code when using the API
## Language Coverage
Our language support varies by feature:
| Feature | Coverage |
| - | - |
| Transcription | All listed languages |
| Topic Detection | All listed languages |
| Sentiment Analysis | All listed languages |
| Intent Recognition | Major languages (EN, ES, FR, DE, ZH, JA) |
| Entity Extraction | Major languages (EN, ES, FR, DE, ZH, JA) |
## Special Features
### Multilingual Support
The `multi` language code enables automatic detection and processing of mixed Spanish and English content within the same recording.
### Dialect Specificity
When using regional dialects (e.g., `en-AU` for Australian English), BuildBetter will:
* Apply region-specific language models
* Recognize regional terminology and expressions
* Adapt to regional accents
## Language-Specific Best Practices
For optimal results when recording non-English languages:
1. Ensure clear audio quality
2. Minimize background noise
3. Use dedicated microphones when possible
4. Speak at a natural pace
5. Avoid excessive slang or highly technical jargon
## Adding Language Support
BuildBetter regularly expands language support. If you need a language not currently listed, please [contact our support team](/pages/Help/support-channels).
# Performance Tips
Source: https://docs.buildbetter.ai/pages/Help/performance-tips
Optimize your BuildBetter experience with these performance tips and best practices
## Quick Optimization Guide
Tips for optimal browser performance
Manage system resources effectively
Optimize network connectivity
Efficient storage utilization
## Browser Optimization
### Browser Settings
```yaml theme={null}
recommended_settings:
cache:
- Enable caching
- Regular cache clearing
- Optimal cache size
- Cache management
memory:
- Limit active tabs
- Use tab suspender
- Clear unused data
- Monitor usage
```
### Extension Management
```yaml theme={null}
extension_tips:
recommended:
- BuildBetter extension
- Meeting integrations
- Essential tools only
optimization:
- Disable unused
- Regular updates
- Performance monitoring
- Conflict checking
```
## Resource Management
* Close unused applications
* Limit background processes
* Monitor system load
* Optimize workload
* Clear temporary files
* Close inactive tabs
* Restart periodically
* Monitor consumption
* Regular cleanup
* Archive old data
* Optimize storage
* Monitor capacity
## Network Optimization
```yaml theme={null}
network_optimization:
bandwidth:
- Quality settings adjustment
- Background updates control
- Download scheduling
- Upload optimization
stability:
- Wired connection preferred
- Strong WiFi signal
- Network monitoring
- Backup connection
```
```yaml theme={null}
meeting_settings:
audio:
- Optimal codec selection
- Bandwidth allocation
- Quality preferences
- Echo cancellation
recording:
- Compression settings
- Storage optimization
- Upload configuration
- Quality balance
```
## Storage Optimization
### Data Management
```yaml theme={null}
storage_tips:
organization:
- Folder structure
- Regular cleanup
- Archive strategy
- Version control
optimization:
- Compression use
- Duplicate removal
- Format selection
- Space monitoring
```
### Retention Policies
```yaml theme={null}
retention_strategy:
active_data:
- Recent recordings
- Current projects
- Active signals
- Working documents
archive_data:
- Old recordings
- Completed projects
- Historical data
- Reference materials
```
Implement retention policies that balance performance with business needs.
## Application Performance
* Regular updates
* Cache management
* Resource monitoring
* Settings optimization
* Connection monitoring
* Sync optimization
* Load balancing
* Error handling
## Processing Optimization
### Analysis Settings
```yaml theme={null}
processing_optimization:
transcription:
- Language selection
- Quality settings
- Processing priority
- Resource allocation
signal_detection:
- Detection sensitivity
- Processing rules
- Pattern matching
- Resource usage
```
### Batch Processing
```yaml theme={null}
batch_settings:
scheduling:
- Off-peak hours
- Resource availability
- Priority queuing
- Load distribution
optimization:
- Batch size
- Processing intervals
- Resource allocation
- Queue management
```
Configure processing settings based on your available resources and requirements.
## Search Performance
### Search Optimization
```yaml theme={null}
search_tips:
indexing:
- Regular updates
- Optimization schedule
- Coverage verification
- Performance monitoring
queries:
- Efficient syntax
- Filter usage
- Result limiting
- Cache utilization
```
### Content Organization
```yaml theme={null}
organization_tips:
structure:
- Logical hierarchy
- Clear naming
- Proper tagging
- Metadata usage
maintenance:
- Regular cleanup
- Index optimization
- Cache management
- Performance checks
```
Well-organized content improves search performance and user experience.
## Monitoring & Maintenance
```yaml theme={null}
monitoring_areas:
system:
- Resource usage
- Response times
- Error rates
- Queue status
application:
- Feature performance
- Processing speed
- Storage usage
- Integration health
```
```yaml theme={null}
maintenance_tasks:
daily:
- Cache clearing
- Resource check
- Error review
- Quick cleanup
weekly:
- Full cleanup
- Performance audit
- Storage review
- System update
```
## Best Practices
### Daily Operations
* Regular cache clearing
* Resource monitoring
* Performance checks
* Issue prevention
### Long-term Management
* System updates
* Regular maintenance
* Performance tracking
* Capacity planning
Regular application of these performance tips ensures optimal BuildBetter operation.
# Support Channels
Source: https://docs.buildbetter.ai/pages/Help/support-channels
Available support options and how to get help with BuildBetter
## Support Options
Documentation and knowledge base
Real-time assistance options
User community and forums
Dedicated support for enterprise customers
## Getting Help
* Documentation
* Knowledge base
* Video tutorials
* FAQs
* User forums
* Community discussions
* Feature requests
* Best practices
* Live chat
* Email support
* Phone support
* Ticket system
## Support Channels
### Online Support
```yaml theme={null}
online_channels:
documentation:
- Product guides
- API documentation
- Integration guides
- Best practices
knowledge_base:
- Troubleshooting guides
- How-to articles
- Feature explanations
- Common solutions
```
### Live Assistance
```yaml theme={null}
live_support:
chat:
- Business hours coverage
- Quick response times
- Technical assistance
- Issue resolution
phone:
- Enterprise support
- Priority handling
- Expert assistance
- Scheduled calls
```
## Enterprise Support
```yaml theme={null}
enterprise_support:
features:
- Dedicated account manager
- Priority response
- 24/7 availability
- Custom SLAs
services:
- Technical consulting
- Implementation support
- Custom solutions
- Training sessions
```
```yaml theme={null}
sla_levels:
critical:
response_time: "1 hour"
availability: "24/7"
escalation: true
high:
response_time: "4 hours"
availability: "24/7"
escalation: true
standard:
response_time: "1 business day"
availability: "business hours"
escalation: false
```
## Community Resources
### User Community
```yaml theme={null}
community_features:
forums:
- Discussion boards
- Knowledge sharing
- Feature requests
- User tips
collaboration:
- Best practices
- Use cases
- Integration examples
- Success stories
```
### Developer Resources
```yaml theme={null}
developer_support:
resources:
- API documentation
- Code examples
- SDKs
- Integration guides
assistance:
- Developer forum
- Technical support
- Implementation help
- Code review
```
Enterprise features and SLAs are only available with qualifying subscription plans.
## Training & Education
* Online courses
* Video tutorials
* Documentation
* Best practices
* Personalized sessions
* Team training
* Custom curriculum
* Hands-on workshops
## Support Hours
### Standard Support
```yaml theme={null}
support_availability:
business_hours:
- Monday-Friday
- 9:00 AM - 5:00 PM
- Local time zones
- Email and chat
response_times:
- Initial: "4 hours"
- Follow-up: "1 business day"
- Resolution: "Best effort"
```
### Extended Support
```yaml theme={null}
extended_support:
enterprise:
- 24/7 availability
- Priority response
- Multiple channels
- Global coverage
premium:
- Extended hours
- Weekend support
- Faster response
- Direct access
```
Support hours and availability may vary by region and subscription plan.
## Contact Methods
### Support Channels
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Phone: +1 (888) BUILD-BTR
* Chat: Available in-app
* Portal: support.buildbetter.app
### Priority Support
* Enterprise: [enterprise@buildbetter.app](mailto:enterprise@buildbetter.app)
* Security: [security@buildbetter.app](mailto:security@buildbetter.app)
* Billing: [billing@buildbetter.app](mailto:billing@buildbetter.app)
Use the in-app chat for fastest response during business hours.
## Issue Reporting
```yaml theme={null}
reporting_steps:
initial:
- Issue description
- Steps to reproduce
- Expected behavior
- Actual behavior
details:
- Screenshots/videos
- Error messages
- System info
- Logs
```
```yaml theme={null}
follow_up_process:
tracking:
- Ticket number
- Status updates
- Resolution progress
- Satisfaction survey
escalation:
- Priority adjustment
- Technical review
- Management attention
- Resolution plan
```
## Feedback & Suggestions
### Feedback Channels
```yaml theme={null}
feedback_options:
product:
- Feature requests
- Improvement ideas
- Bug reports
- User experience
support:
- Service quality
- Response time
- Resolution effectiveness
- Support experience
```
Your feedback helps us improve BuildBetter's products and services.
# Make Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/automation/make
Connect BuildBetter with Make (formerly Integromat) for visual workflow automation
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Make Integration Early Access" in the subject line.
Connect BuildBetter with Make to create powerful visual workflow automations that process customer insights and trigger actions across your tech stack.
## Overview
The Make integration will enable you to:
* Trigger Make scenarios from BuildBetter events
* Process insights through visual workflows
* Connect BuildBetter with 1000+ apps
* Create complex multi-step automations
* Transform and filter feedback data
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Make Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Pre-built BuildBetter modules for Make
* Webhook triggers for real-time events
* Custom scenario templates
* Advanced data transformation
* Error handling and retry logic
* Support for Make Teams and Enterprise
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# n8n Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/automation/n8n
Connect BuildBetter with n8n for workflow automation
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "n8n Integration Early Access" in the subject line.
Connect BuildBetter with n8n to create custom workflow automations that trigger actions based on customer insights and feedback.
## Overview
The n8n integration will enable you to:
* Trigger n8n workflows from BuildBetter events
* Send insights to any connected n8n service
* Create custom automation workflows
* Sync data between BuildBetter and other tools
* Build complex multi-step automations
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "n8n Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Webhook triggers for BuildBetter events
* Pre-built BuildBetter nodes for n8n
* Support for self-hosted and cloud n8n
* Custom workflow templates
* Bidirectional data synchronization
* Real-time event streaming
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Zapier Integration
Source: https://docs.buildbetter.ai/pages/Integrations/other/zapier
Connect BuildBetter with 7,000+ apps through Zapier automation
## What It Does
BuildBetter offers two ways to integrate with Zapier:
### 1. BuildBetter Zapier App (Pull Data from BuildBetter)
Use BuildBetter as a **trigger** in your Zaps to send call data to other apps when new calls or summaries are created.
**Available Triggers:**
* **New Call** - Triggers when a call is processed and ready
* **New Call Summary** - Triggers when a call summary is generated
**Available Searches:**
* **Get Call** - Fetch call details by ID
* **Get Call Summary** - Fetch full summary by call ID
* **Get Call Transcript** - Fetch complete transcript by call ID
* **Get Call Attendees** - Fetch list of attendees by call ID
### 2. Webhooks/API Integration (Push Data to BuildBetter)
Use Zapier's **Webhooks by Zapier** action to push feedback data into BuildBetter from other apps.
**Common Use Cases:**
* Send support tickets from Zendesk/Intercom to BuildBetter
* Push survey responses from Typeform/Google Forms
* Import customer feedback from Slack/Email
* Sync CRM notes and interactions
## Setup Instructions
### Option 1: Using BuildBetter Zapier App (Pull Data)
#### Prerequisites
* Active BuildBetter account
* Zapier account (free or paid)
* At least one processed call in BuildBetter
#### Connection Steps
1. **Create a Zap in Zapier**
* Go to Zapier and click "Create Zap"
* Search for "BuildBetter" in the trigger app
2. **Connect Your BuildBetter Account**
* Select a trigger event (e.g., "New Call")
* Click "Sign in to BuildBetter"
* Authorize Zapier to access your BuildBetter data
* Select your organization if prompted
3. **Test the Trigger**
* Zapier will fetch recent calls to test the connection
* Review the sample data
* Click "Continue"
4. **Add Your Action**
* Choose what app to send data to (e.g., Slack, Google Sheets, Notion)
* Map BuildBetter fields to the action app
* Test the action
* Turn on your Zap
### Option 2: Push Data to BuildBetter (Using Webhooks)
To push data INTO BuildBetter, you'll use Zapier's "Webhooks by Zapier" action with BuildBetter's Feedback Ingestion API.
#### Prerequisites
* BuildBetter Organization API Key
* Feedback Source created in BuildBetter (see API Setup below)
#### API Setup in BuildBetter
Before creating Zaps, set up your API access:
1. **Get Your API Key**
* Go to Settings → API in BuildBetter
* Generate an Organization API Key
* Copy and save it securely
2. **Create a Feedback Source** (One-time setup)
You can create a feedback source via the API or BuildBetter UI. Here's how via API:
```bash theme={null}
curl -X POST https://api.buildbetter.app/v3/rest/feedback-sources \
-H "X-BuildBetter-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Zapier Support Tickets",
"type": "api"
}'
```
Save the returned `id` - you'll need it for your Zaps.
## Available Data from BuildBetter
When using BuildBetter as a trigger, you get access to:
### New Call Trigger
* **Call ID** - Unique identifier
* **Created At** - When the call was recorded
* **Name** - Call title (usually participants)
* **Short Summary** - AI-generated summary
* **Duration** - Length in seconds
* **URL** - Link to the call in BuildBetter
* **Tags** - All tags applied to the call
### New Call Summary Trigger
* **Summary ID** - Unique identifier
* **Call ID** - Associated call
* **Content** - Full summary markdown text
* **Created At** - When summary was generated
### Search Actions
Use these to fetch additional data in multi-step Zaps:
* **Get Call** - Fetch call metadata
* **Get Call Summary** - Fetch full summary content
* **Get Call Transcript** - Fetch complete transcript with speaker attribution
* **Get Call Attendees** - Fetch participant details (names, emails, IDs)
## Pushing Data to BuildBetter with Webhooks
Use Zapier's "Webhooks by Zapier" action to send data to BuildBetter's Feedback Ingestion API.
### Step-by-Step: Create Feedback from Any App
1. **Set Up Your Trigger**
* Choose your source app (e.g., Typeform, Zendesk, Google Forms)
* Select the trigger event (e.g., "New Response", "New Ticket")
2. **Add Webhooks by Zapier Action**
* Click "+" to add an action
* Search for "Webhooks by Zapier"
* Select "POST" method
3. **Configure the Webhook**
**URL:**
```
https://api.buildbetter.app/v3/rest/feedback-sources/{FEEDBACK_SOURCE_ID}/records
```
Replace `{FEEDBACK_SOURCE_ID}` with your feedback source ID
**Headers:**
```
X-BuildBetter-Api-Key: YOUR_API_KEY
Content-Type: application/json
```
**Data (as JSON):**
See examples below for different use cases
4. **Test and Enable**
* Test the webhook with sample data
* Turn on your Zap
## Common Zapier Workflows
### Example 1: Typeform to BuildBetter
**Use Case:** Import NPS survey responses
**Trigger:** Typeform - New Entry
**Action:** Webhooks by Zapier - POST
**Webhook Configuration:**
**URL:**
```
https://api.buildbetter.app/v3/rest/feedback-sources/123/records
```
**Headers:**
```
X-BuildBetter-Api-Key: YOUR_API_KEY
Content-Type: application/json
```
**Data (JSON):**
```json theme={null}
{
"display_ts": "{{zap_meta_human_now}}",
"external_id": "typeform-{{response_id}}",
"fields": [
{
"category": "identity",
"type": "string",
"name": "email",
"value": "{{email}}"
},
{
"category": "content",
"type": "integer",
"name": "nps_score",
"value": "{{nps_score}}"
},
{
"category": "content",
"type": "string",
"name": "feedback",
"value": "{{feedback_text}}"
},
{
"category": "metadata",
"type": "string",
"name": "survey_name",
"value": "Q1 2025 NPS"
}
]
}
```
Since we're using `email` in the identity field, BuildBetter will automatically find or create a person with that email.
### Example 2: Zendesk Tickets to BuildBetter
**Use Case:** Import support tickets for analysis
**Trigger:** Zendesk - New Ticket
**Action 1:** Webhooks - PUT (Create/Update Person)
**Action 2:** Webhooks - POST (Send Feedback)
**Action 1 - Create Person:**
**URL:**
```
https://api.buildbetter.app/v3/rest/people
```
**Headers:**
```
X-BuildBetter-Api-Key: YOUR_API_KEY
Content-Type: application/json
```
**Data:**
```json theme={null}
{
"first_name": "{{requester_first_name}}",
"last_name": "{{requester_last_name}}",
"email": "{{requester_email}}",
"boundary": "external",
"company": {
"name": "{{organization_name}}",
"domain": "{{organization_domain}}"
}
}
```
**Action 2 - Send Ticket:**
**URL:**
```
https://api.buildbetter.app/v3/rest/feedback-sources/123/records
```
**Headers:**
```
X-BuildBetter-Api-Key: YOUR_API_KEY
Content-Type: application/json
```
**Data:**
```json theme={null}
{
"person_id": "{{person_id}}",
"display_ts": "{{created_at}}",
"external_id": "zendesk-{{ticket_id}}",
"fields": [
{
"category": "content",
"type": "string",
"name": "subject",
"value": "{{subject}}"
},
{
"category": "content",
"type": "string",
"name": "description",
"value": "{{description}}"
},
{
"category": "metadata",
"type": "string",
"name": "ticket_id",
"value": "{{ticket_id}}"
},
{
"category": "metadata",
"type": "string",
"name": "priority",
"value": "{{priority}}"
},
{
"category": "metadata",
"type": "string",
"name": "status",
"value": "{{status}}"
}
]
}
```
### Example 3: Google Forms to BuildBetter
**Use Case:** Import customer feedback surveys
**Trigger:** Google Forms - New Response
**Action:** Webhooks by Zapier - POST
**Webhook Configuration:**
**URL:**
```
https://api.buildbetter.app/v3/rest/feedback-sources/125/records
```
**Headers:**
```
X-BuildBetter-Api-Key: YOUR_API_KEY
Content-Type: application/json
```
**Data:**
```json theme={null}
{
"display_ts": "{{timestamp}}",
"external_id": "gform-{{response_id}}",
"fields": [
{
"category": "identity",
"type": "string",
"name": "email",
"value": "{{email_address}}"
},
{
"category": "content",
"type": "string",
"name": "product_feedback",
"value": "{{what_do_you_think_of_our_product}}"
},
{
"category": "content",
"type": "string",
"name": "feature_request",
"value": "{{what_features_would_you_like}}"
},
{
"category": "metadata",
"type": "string",
"name": "source",
"value": "Google Forms Feedback Survey"
}
]
}
```
### Example 4: Slack Messages to BuildBetter
**Use Case:** Capture important Slack feedback manually
**Trigger:** Slack - New Saved Message (or New Reaction)
**Action:** Webhooks by Zapier - POST
**URL:**
```
https://api.buildbetter.app/v3/rest/feedback-sources/126/records
```
**Headers:**
```
X-BuildBetter-Api-Key: YOUR_API_KEY
Content-Type: application/json
```
**Data:**
```json theme={null}
{
"display_ts": "{{timestamp}}",
"external_id": "slack-{{channel_id}}-{{ts}}",
"fields": [
{
"category": "identity",
"type": "string",
"name": "email",
"value": "{{user_email}}"
},
{
"category": "content",
"type": "string",
"name": "message",
"value": "{{text}}"
},
{
"category": "metadata",
"type": "string",
"name": "channel",
"value": "{{channel_name}}"
},
{
"category": "metadata",
"type": "string",
"name": "permalink",
"value": "{{permalink}}"
}
]
}
```
### Example 5: BuildBetter Call → Slack Notification
**Use Case:** Notify team when important calls are recorded
**Trigger:** BuildBetter - New Call
**Filter:** Only if tags contain "customer-feedback"
**Action:** Slack - Send Channel Message
**Slack Message:**
```
New customer feedback call recorded!
Title: {{name}}
Summary: {{short_summary}}
Duration: {{asset_duration_seconds}} seconds
Tags: {{tags__name}}
View call: {{url}}
```
## Understanding Feedback API Field Structure
When pushing data to BuildBetter, use this field structure:
### Field Categories
* **`identity`** - Used to match people (email, user\_id, etc.) - BuildBetter will auto-create person if needed
* **`content`** - The actual feedback content (comments, messages, responses)
* **`metadata`** - Additional context (priority, source, tags, channel, etc.)
* **`created_at`** - Timestamp fields
* **`identifier`** - External references (ticket IDs, response IDs)
### Field Types
* `string` - Text content
* `integer` - Whole numbers (NPS scores, ratings)
* `float` - Decimal numbers
* `boolean` - True/false
* `date` - Date only (YYYY-MM-DD)
* `datetime` - Full timestamp (ISO 8601)
* `json` - Structured data
### Person Matching
You have two options for matching people:
**Option 1: Use identity fields (simpler)**
```json theme={null}
{
"fields": [
{
"category": "identity",
"type": "string",
"name": "email",
"value": "customer@example.com"
}
]
}
```
BuildBetter will automatically find or create a person with this email.
**Option 2: Create person first, then use person\_id**
```json theme={null}
{
"person_id": 456,
"fields": [...]
}
```
## Troubleshooting
### BuildBetter Zapier App Issues
**"Can't connect BuildBetter account"**
* Make sure you're logged into BuildBetter
* Verify you have at least one organization
* Check that you have admin access
* Try reconnecting in Zapier
**"No calls appearing in trigger test"**
* Ensure you have processed calls in BuildBetter
* Check that calls are in the selected organization
* Verify the trigger is set to the correct event type
**"Trigger not firing for new calls"**
* Zapier checks every 5-15 minutes depending on your plan
* New calls must be fully processed (transcript + summary complete)
* Check Zapier task history for errors
### Webhook/API Push Issues
**"401 Unauthorized"**
* Verify your API key is correct
* Check the header is `X-BuildBetter-Api-Key` (exact capitalization)
* Ensure the API key hasn't been revoked
* Regenerate the key if needed
**"404 Not Found"**
* Check that the feedback source ID exists
* Verify the URL is correct: `/v3/rest/feedback-sources/{id}/records`
* Make sure the feedback source wasn't deleted
**"400 Bad Request"**
* Verify JSON syntax is valid
* Check that all field types match (string, integer, etc.)
* Ensure required fields are present (display\_ts, fields array)
* Remove any null or undefined values
**"Person not being created"**
* Include email in an `identity` category field
* Or create person first with PUT /v3/rest/people
* Check that email format is valid
**"Duplicate records"**
* Use unique `external_id` for each record
* Format: `{source}-{unique-identifier}` (e.g., "typeform-12345")
* BuildBetter will skip duplicates with same external\_id
## Best Practices
### For Pulling Data from BuildBetter
**Use Filters**
Add Zapier filter steps to only process specific calls:
* Filter by tags (e.g., only "customer-feedback" calls)
* Filter by duration (e.g., calls longer than 10 minutes)
* Filter by participants (e.g., calls with external attendees)
**Combine Searches**
Use search actions to fetch additional data:
1. Trigger: New Call
2. Action: Get Call Transcript (to get full text)
3. Action: Get Call Attendees (to get participant emails)
4. Action: Send to destination app
### For Pushing Data to BuildBetter
**Use Consistent Field Names**
* Use snake\_case for field names
* Keep field names consistent across records
* Document your field schema for your team
**Include Metadata**
Add context fields to make feedback searchable:
* Source system (e.g., "zendesk", "typeform")
* Priority or urgency
* Product area or category
* Original URL or link
**Set Display Timestamp**
Always include `display_ts` with the original creation time:
```
"display_ts": "{{created_at}}"
```
Or use Zapier's timestamp: `"{{zap_meta_human_now}}"`
**Use External IDs**
Prevent duplicates with unique external IDs:
```
"external_id": "zendesk-ticket-{{ticket_id}}"
```
**Test with Sample Data**
Before turning on your Zap:
* Test with real sample data
* Verify records appear in BuildBetter
* Check that people are being created/matched correctly
## Example Zap Combinations
### Support Ticket Analysis
**Trigger:** Zendesk - New Ticket
**Action 1:** Webhooks - Create Person in BuildBetter
**Action 2:** Webhooks - Send Ticket to BuildBetter
**Action 3:** Slack - Notify team in #customer-feedback
### NPS Survey Tracking
**Trigger:** Typeform - New Entry
**Filter:** Only if NPS score \< 7 (detractors)
**Action 1:** Webhooks - Send to BuildBetter
**Action 2:** Slack - Alert customer success team
### Product Feedback Loop
**Trigger:** Google Forms - New Response
**Action 1:** Webhooks - Send to BuildBetter
**Action 2:** Notion - Create database entry
**Action 3:** Linear - Create issue (if critical feedback)
### Call Summary Distribution
**Trigger:** BuildBetter - New Call Summary
**Filter:** Only if tags contain "sales"
**Action 1:** Slack - Post to #sales-team
**Action 2:** Google Sheets - Add row to sales log
**Action 3:** HubSpot - Create note on contact
## Rate Limits
### BuildBetter Zapier App (Triggers)
* Polls every 5-15 minutes (depending on your Zapier plan)
* Returns up to 100 items per poll
* No additional rate limits
### Feedback Ingestion API (Webhooks)
* 100 requests per minute
* 1 record per request
* 10KB per field value limit
## Getting API Keys
**Organization API Key:**
1. Go to Settings → API in BuildBetter
2. Click "Generate API Key"
3. Copy and save securely
4. Use in `X-BuildBetter-Api-Key` header
**Scope:**
* Organization API keys have access to all data in your organization
* Keep them secure - don't expose in public repositories
* Rotate keys periodically for security
## Related Documentation
* [Feedback Ingestion API](/pages/api/feedback-ingestion) - Full API reference
* [GraphQL API](/pages/api/graphql-queries) - Query BuildBetter data directly
* [Webhooks](/pages/api/webhooks) - Real-time notifications from BuildBetter
## Support
Need help with Zapier integration?
* Check Zapier task history for error details
* Verify API key and feedback source ID
* Test API calls with curl before creating Zaps
* Contact BuildBetter support with your Zap configuration and error messages
# AlternativeTo Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/reviews/alternativeto
Connect BuildBetter with AlternativeTo for software review and comparison insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "AlternativeTo Integration Early Access" in the subject line.
Connect BuildBetter with AlternativeTo to analyze user comments, likes, and feedback about your software and alternatives.
## Overview
The AlternativeTo integration will enable you to:
* Import user comments and feedback
* Track software comparison discussions
* Analyze why users choose alternatives
* Identify competitive advantages and gaps
* Monitor trending alternative recommendations
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "AlternativeTo Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Automatic comment and feedback import
* Competitive comparison analysis
* Feature gap identification
* User preference tracking
* Alternative software monitoring
* Sentiment analysis on comparisons
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Apple App Store Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/reviews/apple-app-store
Connect BuildBetter with Apple App Store for app review analysis and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Apple App Store Integration Early Access" in the subject line.
Connect BuildBetter with Apple App Store to automatically import and analyze app reviews, ratings, and user feedback.
## Overview
The Apple App Store integration will enable you to:
* Import app reviews across all territories
* Analyze review sentiment and key themes
* Track rating trends by app version
* Identify bugs and feature requests
* Monitor competitor app reviews
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Apple App Store Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Multi-territory review import
* Version-specific feedback tracking
* Sentiment analysis by app feature
* Critical bug identification
* Translation support for international reviews
* Real-time review notifications
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Capterra Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/reviews/capterra
Connect BuildBetter with Capterra for software review analysis and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Capterra Integration Early Access" in the subject line.
Connect BuildBetter with Capterra to automatically import and analyze software reviews, ratings, and user feedback.
## Overview
The Capterra integration will enable you to:
* Import software reviews from Capterra
* Analyze review sentiment and themes
* Track feature-specific feedback
* Identify user pain points and requests
* Compare feedback against competitors
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Capterra Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Automatic review import and synchronization
* Category-based sentiment analysis
* Feature rating breakdowns
* Reviewer role and company size insights
* Competitor review comparison
* Trend tracking over time
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# G2 Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/reviews/g2
Connect BuildBetter with G2 for software review analysis and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "G2 Integration Early Access" in the subject line.
Connect BuildBetter with G2 to automatically import and analyze software reviews, ratings, and detailed user feedback.
## Overview
The G2 integration will enable you to:
* Import detailed reviews from G2
* Analyze category-specific ratings
* Track feature-level feedback
* Identify buyer personas and use cases
* Compare feedback against competitors
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "G2 Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Automatic review synchronization
* Category and feature rating analysis
* Reviewer role and company size insights
* Pros and cons extraction
* Competitor comparison matrix
* G2 Grid positioning insights
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Gainsight Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/reviews/gainsight
Connect BuildBetter with Gainsight for customer success and feedback insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Gainsight Integration Early Access" in the subject line.
Connect BuildBetter with Gainsight to sync customer success data, health scores, and feedback surveys.
## Overview
The Gainsight integration will enable you to:
* Import customer health scores and metrics
* Sync survey responses and feedback
* Link customer success data to product insights
* Track customer sentiment over time
* Identify at-risk customers and expansion opportunities
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Gainsight Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Customer health score synchronization
* Survey response import and analysis
* NPS and CSAT tracking
* Customer timeline integration
* Success plan correlation
* Risk and opportunity identification
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# GetApp Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/reviews/getapp
Connect BuildBetter with GetApp for software review analysis and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "GetApp Integration Early Access" in the subject line.
Connect BuildBetter with GetApp to automatically import and analyze software reviews, ratings, and buyer feedback.
## Overview
The GetApp integration will enable you to:
* Import software reviews from GetApp
* Analyze review sentiment and patterns
* Track feature-specific ratings
* Identify buyer pain points and needs
* Compare feedback with competitors
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "GetApp Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Automatic review synchronization
* Category-based sentiment tracking
* Feature rating analysis
* Buyer persona insights
* Competitor comparison
* Review trend monitoring
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Google Play Store Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/reviews/google-play-store
Connect BuildBetter with Google Play Store for app review analysis and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Google Play Store Integration Early Access" in the subject line.
Connect BuildBetter with Google Play Store to automatically import and analyze app reviews, ratings, and user feedback.
## Overview
The Google Play Store integration will enable you to:
* Import app reviews from all countries
* Analyze review sentiment and themes
* Track rating trends by app version
* Identify crashes and performance issues
* Monitor competitor app feedback
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Google Play Store Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Multi-country review synchronization
* Version-based feedback analysis
* Device and OS-specific insights
* Crash report correlation
* Translation support for global reviews
* Real-time review alerts
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Software Advice Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/reviews/software-advice
Connect BuildBetter with Software Advice for software review analysis and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Software Advice Integration Early Access" in the subject line.
Connect BuildBetter with Software Advice to automatically import and analyze software reviews, ratings, and buyer insights.
## Overview
The Software Advice integration will enable you to:
* Import software reviews from Software Advice
* Analyze review sentiment and themes
* Track feature-specific feedback
* Identify buyer needs and pain points
* Compare feedback with competitor products
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Software Advice Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Automatic review import
* Category-based sentiment analysis
* Feature rating breakdowns
* Business size and industry insights
* Competitor review comparison
* Review trend tracking
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Trustpilot Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/reviews/trustpilot
Connect BuildBetter with Trustpilot for customer review analysis and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Trustpilot Integration Early Access" in the subject line.
Connect BuildBetter with Trustpilot to automatically import and analyze customer reviews, ratings, and feedback.
## Overview
The Trustpilot integration will enable you to:
* Automatically import customer reviews from Trustpilot
* Analyze review sentiment and key themes
* Track rating trends over time
* Identify common pain points and feature requests
* Link review feedback to product improvements
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Trustpilot Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Automatic review synchronization
* Sentiment analysis on reviews
* Rating trend tracking
* Category-based feedback organization
* Competitor review comparison
* Real-time review notifications
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Circle Integration (Beta)
Source: https://docs.buildbetter.ai/pages/Integrations/social/circle
Connect BuildBetter with Circle to capture insights from your community discussions
Connect BuildBetter with Circle to import community posts and discussions, extracting insights from member feedback and conversations.
## Features
* **Space Selection**: Choose exactly which Circle spaces to sync instead of importing everything
* **Post Import**: Automatically sync published posts as conversations in BuildBetter
* **Comment Threads**: Import full comment threads for complete context
* **Per-Space Incremental Sync**: Each space tracks its own sync progress for efficient updates
* **Comment Refresh Window**: Recheck recently imported posts for new comments on a configurable schedule
* **Member Data**: Capture author information including profiles and activity stats
* **Engagement Metrics**: Preserve likes, comments counts, and engagement data
## How It Works
BuildBetter connects to Circle via API token and imports community posts with their comment threads. Each post becomes a conversation, enabling AI-powered analysis to identify trends, feature requests, and community sentiment.
**Import Type**: One-way (Circle to BuildBetter)
**Sync Frequency**: Hourly automatic sync
## Setup Guide
### Prerequisites
1. **Circle Requirements:**
* Circle community on Business or Enterprise plan
* Admin access for API token generation
2. **BuildBetter Requirements:**
* Active BuildBetter account
* Admin privileges for integration setup
### Quick Setup
1. **Get Your Circle API Token**
* Log in to your Circle community as an Admin
* Navigate to **Settings > API**
* Generate a new Admin API token
* Copy and save the token securely
2. **Connect in BuildBetter**
* Go to **Settings > Integrations** in BuildBetter
* Find Circle in the Social section and click **Connect**
* Paste your Circle API token
* Click **Connect** to verify
3. **Select Spaces to Sync**
* After connecting, BuildBetter fetches your available spaces
* Select the spaces you want to import (or leave all selected)
* Deselect spaces you want to exclude from sync
4. **Configure Import Settings**
* **Import History**: Choose how far back to import
* None (new posts only), 4 hours (default), 7 days, 30 days, 90 days, 180 days, 365 days, or all
* **Comment Refresh Window** (optional): How far back to re-check imported posts for new comments
* None (default), 7 days, 14 days, 30 days — see [Comment Refresh Window](#comment-refresh-window) below
* Click **Save** to start your first sync
## What Gets Imported
### Post Data
| Circle Field | BuildBetter Field | Notes |
| - | - | - |
| Post name | Conversation title | |
| Content | Message body | HTML and Tiptap formats supported |
| URL | External link | Link back to Circle post |
| Status | Metadata | Post status (published, etc.) |
| Topics | Tags | Preserved for filtering |
| Created/Updated | Timestamps | |
### Comments
Comments are imported as conversation messages:
* Full comment content
* Author information
* Timestamps
* Nested replies (parent-child relationships)
* Engagement metrics
### People
Community members are automatically created or matched:
* Name and email (for matching)
* Headline and bio
* Avatar
* Activity stats (posts, comments, likes)
* Gamification data (levels, points)
* Member tags and custom profile fields
### Metadata
Each imported post includes:
* Space ID and name
* Topics/tags
* Engagement metrics (likes count, comments count)
* Post status
* Source identifier (circle)
## Space Selection
### Why Select Spaces?
Not all community spaces may contain relevant product feedback. Space selection lets you:
* Focus on spaces with customer discussions
* Exclude internal or off-topic spaces
* Reduce noise in your insights
### Managing Spaces
1. Go to your Circle integration settings
2. Click **Configure Spaces**
3. Check/uncheck spaces to include or exclude
4. Save your changes
Each space maintains its own sync progress. Adding a new space will import its history based on your backfill setting.
## Sync Behavior
### Per-Space Incremental Sync
* Each space tracks when it was last synced
* Only new and updated posts are fetched after initial import
* Adding a space starts a fresh sync for that space only
### Automatic Sync
* Runs hourly to capture new posts and comments
* Smart cutoff logic prevents duplicate imports
* Early termination when reaching already-imported posts
### Backfill Options
| Setting | Behavior |
| - | - |
| None | Only sync new posts going forward |
| 4 hours (default) | Import posts from last 4 hours |
| 7d - 365d | Import posts from specified time window |
| All | Import entire community history |
### Comment Refresh Window
Circle posts often pick up comments long after the post itself is published. The **comment refresh window** controls how far back the integration rechecks already-imported posts for new comments.
| Setting | Behavior |
| - | - |
| None (default) | Don't re-check imported posts — comments only flow in via new-post sync |
| 7d, 14d, 30d | Refresh comments on posts created within the selected window on each sync |
| Custom | Any supported window (e.g. `90d`) — match it to how active your community is |
A wider window catches more late-arriving comments but uses more Circle API calls. Start with 7d or 14d for active communities and widen only if you're missing comments on older posts.
Smarter fetching keeps refreshes efficient:
* **Comment count check** — comments are only re-fetched when Circle reports a different comment count, avoiding unnecessary work
* **Older posts skipped** — posts outside the refresh window are never re-fetched
* **Failure isolation** — if a single post's comments fail temporarily, sync continues for the rest of the space and retries on the next pass
## Use Cases
### Community Feedback Analysis
* Identify common questions and pain points
* Track feature requests from community members
* Monitor sentiment across discussions
### Product Development
* Extract product ideas from community discussions
* Understand how members use your product
* Gather feedback on new features
### Customer Success
* Spot members who may need help
* Identify power users and advocates
* Track community engagement trends
## Troubleshooting
### Connection Issues
**"Invalid API Token" Error**
* Verify you have an Admin API token (not a regular member token)
* Ensure your Circle plan includes API access (Business or Enterprise)
* Try generating a new token
**"Needs Reauthorization" Status**
* Your API token may have been revoked or expired
* Generate a new token in Circle and reconnect
### Spaces Not Loading
* Check that your Circle account has Admin access
* Verify the API token has permission to list spaces
* Try disconnecting and reconnecting
### Posts Not Syncing
* Confirm the space is selected in your settings
* Check that posts are published (drafts aren't imported)
* Verify your backfill date covers the expected time range
* Allow up to 1 hour for the next automatic sync
### Missing Comments on Imported Posts
If a post imported without its comments, the next sync (or the comment refresh window) recovers them automatically. Temporary comment fetch failures no longer block or weaken the rest of the sync — they retry on the following pass.
## Reliability
Circle ingestion has gone through several rounds of hardening:
* **Comment import fixes** — posts no longer import without comments due to transient failures, refreshes don't run unnecessarily when counts haven't changed, and a single failing post can't block sync for the rest of the space
* **Circle API URL fixes** — corrected API URL handling so requests succeed more consistently across endpoints
* **Member lookup behavior** — member resolution is more reliable, with better fallbacks when a member record is incomplete
* **Cursor and retry safety** — billing-limited or interrupted imports resume from the correct point on the next sync, without skipping records or advancing progress prematurely
* **Orphaned spaces** — spaces that disappear from Circle (deleted, archived, or unselected) are handled gracefully in the UI without breaking sync for the remaining spaces
## Privacy & Data
* BuildBetter only imports data from spaces you select
* Posts and comments are stored securely in your BuildBetter workspace
* Member data is used for author attribution only
* You can disconnect at any time to stop all data sync
## Support
Questions about this integration?
* Email: [support@buildbetter.app](mailto:support@buildbetter.app)
* Visit our [Help Center](/pages/Help/common-issues)
# Discourse Integration
Source: https://docs.buildbetter.ai/pages/Integrations/social/discourse
Connect BuildBetter with Discourse to import forum topics and replies as customer conversations
Connect BuildBetter with Discourse to capture insights from your community forum discussions, feature requests, and support threads.
## Overview
The Discourse integration can:
* Import topics and replies from Discourse forums
* Scope imports by categories and tags
* Track feature requests and bug reports
* Analyze community sentiment and engagement
* Identify trending topics and pain points
* Link forum feedback to product roadmap
Discourse imports focus on public visible posts and support backfills that can continue more reliably after setup or sync interruptions.
## Setup
1. Go to **Settings → Integrations**.
2. Select **Discourse** from Social & Community integrations.
3. Add your Discourse site details and credentials.
4. Choose categories and tags to include.
5. Preview the scope, then start the sync or backfill.
## What Gets Imported
* Forum topics and replies
* Author and timestamp context when available
* Category and tag context for filtering
* Source links back to Discourse
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# Threads Integration (Alpha)
Source: https://docs.buildbetter.ai/pages/Integrations/social/threads
Connect BuildBetter with Threads for social media feedback and insights
**Coming Soon - Request Early Access**
This integration is currently in development and not yet publicly available. If you're interested in early access, please contact [support@buildbetter.app](mailto:support@buildbetter.app) with "Threads Integration Early Access" in the subject line.
Connect BuildBetter with Threads to capture customer feedback and brand mentions from Meta's text-based conversation platform.
## Overview
The Threads integration will enable you to:
* Monitor mentions of your brand and products
* Import customer feedback from Threads posts
* Track sentiment across conversations
* Identify trending topics and customer needs
* Analyze engagement patterns
**Status**: In Development
**Early Access**: Contact [support@buildbetter.app](mailto:support@buildbetter.app)
## Request Early Access
To request early access to this integration:
1. Email [support@buildbetter.app](mailto:support@buildbetter.app)
2. Subject: "Threads Integration Early Access"
3. Include your use case and timeline needs
## Planned Features
* Real-time Threads post monitoring
* Keyword and mention tracking
* Automated sentiment analysis
* Reply thread analysis
* Engagement metrics tracking
* Integration with Threads API
## Support
Questions? Email [support@buildbetter.app](mailto:support@buildbetter.app)
# AI Transparency Statement
Source: https://docs.buildbetter.ai/pages/Legal/ai-transparency
Build Better, Inc. AI Transparency Statement
# Build Better, Inc. AI Transparency Statement
At **Build Better, Inc.** (“BuildBetter”), we are committed to providing transparent and responsible AI solutions for enterprises. This document outlines our approach to AI development, data use, model transparency, and the safeguards we have in place to protect your data.
## 1. Purpose and Commitment
BuildBetter’s AI-driven platform enhances product operations by automating workflows, improving decision-making, and reducing operational burdens. We prioritize safety, transparency, and compliance across all our AI functionalities.
## 2. How We Use AI in Our Services
Our platform leverages AI to:
* **Automate Workflows**: Streamline routine operations to increase efficiency.
* **Enhance Decision-Making**: Provide data-driven insights to support strategic choices.
* **Personalize User Experience**: Tailor services to meet specific client needs.
We utilize a combination of in-house models and select third-party AI models, ensuring all meet our stringent compliance and security standards.
## 3. Types of Data Processed
We process the following data to provide our services:
* **Customer Data**: Inputs such as user research interviews, team recordings, surveys, support tickets, documentation, interactions, workflows, and metrics.
* **Personal Information**: Business contact data—names, email addresses, job titles—used for account management and support.
* **Usage Data**: General platform usage data to improve our services.
### Important Notes
* **No Training on Customer Data**: Your data is never used to train or retrain models outside your account. If fine-tuning is required, it's done under strict data governance outlined in a separate agreement.
* **Data Retention**: We retain data only as long as needed. Data is deleted or anonymized per retention policies.
* **Data Control**: You have full control and visibility over your data. Our platform provides role-based access and encrypts data in transit and at rest.
## 4. Model Explainability and Transparency
* **Explainable Outputs**: All AI outputs include source citations and logic for full transparency.
* **Bias Mitigation**: Models are continuously audited to reduce bias. Internal processes include data cleaning, audits, and mitigation steps.
## 5. Our Commitment to Responsible and Ethical AI Use
Our core commitments include:
* **Transparency**: Clear explanations of model behavior and AI-generated decisions.
* **Fairness and Bias Prevention**: Multi-layered filters, regular audits, and sharable bias mitigation documentation.
* **Compliance**: Adherence to global laws including **GDPR**, **HIPAA**, **SOC 2 Type II**, and the evolving **EU AI Act**.
## 6. Safeguards in Place
We implement multiple layers of security and ethical safeguards:
### Data Security Measures
* **Encryption**: Data encrypted in transit and at rest.
* **Access Controls**: Role-based controls ensure only authorized access.
* **Security Audits**: Ongoing third-party audits and checks.
### AI Safety Measures
* **Toxicity Filters and Bias Prevention**: Advanced systems to block harmful or biased outputs.
* **Prompt Injection Protections**: Prevent malicious inputs or unauthorized outputs.
### Third-Party Compliance
* Third-party models are vetted and bound by agreements (e.g., **BAAs**) that ensure data protection. These models do not train on customer data without explicit consent.
## 7. Model Development
We combine in-house and third-party models to deliver robust AI services.
* **In-House and Third-Party Models**: All external models are rigorously audited and comply with **SOC 2**, **HIPAA**, and other regulations.
* **Third-Party Model Compliance**: Bound by strict agreements and never train on your data without consent.
* **Custom Deployment**: Options for on-premises deployment, private models, or client-owned models are available under separate agreements.
## Additional Information
* **Custom Deployment Options**: On-prem, custom models, and client-owned model integrations are available for enhanced privacy.
* **No Unauthorized Data Sharing**: We never sell or share your data for purposes not explicitly agreed upon.
* **Continuous Improvement**: We continuously enhance our AI systems with the latest ethical and technical advancements.
***
For more information, contact us at [security@buildbetter.ai](mailto:security@buildbetter.ai).
# International Data Processing Addendum
Source: https://docs.buildbetter.ai/pages/Legal/data-processing-agreement
DPA for Build Better, Inc.
> **📄 Read and download the entire DPA on our trust portal here:**\
> [https://trust.buildbetter.ai/resources?s=ib6b62opxkoo5zlshrwh8f\&name=international-bb-data-processing-agreement](https://trust.buildbetter.ai/resources?s=ib6b62opxkoo5zlshrwh8f\&name=international-bb-data-processing-agreement)
# International Data Processing Addendum
This Data Processing Addendum (“**DPA**”) supplements the Build Better, Inc. Master Subscription Agreement (the “**Agreement**”) between the customer signing this DPA (“**Customer**”) and Build Better, Inc. (“**Company**”). By executing this DPA, Customer enters into it on behalf of itself and, where applicable, its Affiliates.
Unless otherwise defined herein, capitalized terms shall have the meanings assigned in the Agreement.
## 1. Definitions
* **Affiliate**: An entity directly or indirectly controlling, controlled by, or under common control with a party.
* **Authorized Sub-Processor**: A third party authorized to process Customer Personal Data under the Agreement.
* **Company Account Data**: Personal data related to Customer’s account, including contacts and billing.
* **Company Usage Data**: Service usage data collected for performance and abuse prevention.
* **Data Exporter**: The Customer.
* **Data Importer**: The Company.
* **Data Protection Laws**: Includes GDPR, UK GDPR, CCPA, Swiss FADP, and other relevant regulations.
* **EU SCCs**: Standard Contractual Clauses adopted in EU Commission Decision 2021/914.
* **ex-EEA/UK Transfers**: Transfers of data outside the EEA or UK not covered by adequacy decisions.
* **Services**: Defined in the Agreement.
* **Standard Contractual Clauses (SCCs)**: Includes EU SCCs and UK SCCs.
## 2. Processing of Data
* Customer is a controller or processor; Company is the processor (unless otherwise specified).
* Customer must comply with all Data Protection Laws and ensure that instructions to Company are lawful.
* Processing details are in **Exhibit A**.
* Upon service termination, Company will return or delete data unless required to retain it.
* Under the CCPA, Company is a **service provider** and will not sell or misuse Customer data.
## 3. Confidentiality
Company personnel authorized to process data are bound by confidentiality obligations. Disclosures may be made to advisors or auditors when necessary.
## 4. Sub-Processors
* Company may engage Authorized Sub-Processors (listed at [https://sites.buildbetter.ai/subprocessors](https://sites.buildbetter.ai/subprocessors)).
* Customer can object within 10 days of notice. Essential sub-processors may be required for services.
* Sub-processors are contractually obligated to maintain data protection standards.
## 5. Security Measures
See **Exhibit C** for technical and organizational measures including:
* Encryption (in transit and at rest)
* Access controls
* Security audits (SOC 2 Type II)
* Incident response and logging
## 6. Data Transfers
* Company primarily processes data in the U.S.
* Ex-EEA, ex-UK, and Swiss transfers are governed by SCCs, described in Section 6 and detailed in **Exhibits B–D**.
* Supplementary measures apply, including notice of government access requests.
## 7. Rights of Data Subjects
* Company will notify Customer of Data Subject Requests.
* Customer is responsible for fulfilling those requests.
* Company will assist, where necessary, with appropriate technical and organizational support.
## 8. Audits & Requests
* Customer may audit or review certifications or perform on-site audits annually.
* Requests must be reasonable and non-disruptive.
* Company will assist with DPIAs and supervisory authority interactions.
## 9. Personal Data Breach
* Company shall notify Customer without undue delay upon becoming aware of a Personal Data Breach.
* Cooperation will be provided for regulatory notifications and remediation.
## 10. Company as a Controller
Company acts as an independent controller for **Company Account Data** and **Usage Data** for:
* Relationship management
* Fraud detection
* Legal compliance
See [Privacy Policy](https://sites.buildbetter.ai/privacy).
## 11. Conflict Resolution
In case of conflict:
1. SCCs prevail
2. This DPA
3. The Agreement
4. Privacy Policy
## 12. Execution
Company has pre-signed this DPA. Customer must:
1. Complete and sign the signature block
2. Fill in **Exhibit B**
3. Email the signed copy to [legal@buildbetter.ai](mailto:legal@buildbetter.ai)
***
## Exhibit A – Processing Details
* **Purpose**: To deliver the Services under the Agreement.
* **Processing Activities**: Collection, encryption, analysis, deletion, sharing.
* **Duration**: As needed per the Agreement, business purposes, or law.
* **Data Subjects**: Employees, contractors, agents.
* **Personal Data Types**: Names, emails, job titles, device data, training records.
* **Sensitive Data**: Prohibited.
***
## Exhibit B – Transfer Details (SCC Annex I)
* **Data Exporter**: The Customer
* **Data Importer**: Build Better, Inc.
* **Data Categories**: As defined in Exhibit A
* **Supervisory Authority**: Based on Data Exporter’s jurisdiction
***
## Exhibit C – Security Measures (SCC Annex II)
Includes encryption, access control, breach response, system logging, audit practices, and sub-processor contracts. Measures align with SOC 2 Type II and AWS best practices.
***
## Exhibit D – UK Addendum (UK SCCs)
* **Tables 1–4**: Incorporates EU SCCs as modified for UK GDPR
* **Interpretation**: UK law prevails in UK Addendum
* **Revisions**: Handled via ICO-approved mechanisms
* **Disputes**: Resolved under UK courts
***
> **📄 Read and download the entire DPA on our trust portal here:**\
> [https://trust.buildbetter.ai/resources?s=ib6b62opxkoo5zlshrwh8f\&name=international-bb-data-processing-agreement](https://trust.buildbetter.ai/resources?s=ib6b62opxkoo5zlshrwh8f\&name=international-bb-data-processing-agreement)
# Data Retention Policy Summary
Source: https://docs.buildbetter.ai/pages/Legal/data-retention
Build Better, Inc.'s data retention, deletion, and disposal practices
> **📄 Read and download the full Data Management Policy on our trust portal:**\
> [https://trust.buildbetter.ai/resources?s=otpd4biuoubjwccyizc0c\&name=data-management-policy](https://trust.buildbetter.ai/resources?s=otpd4biuoubjwccyizc0c\&name=data-management-policy)
# Data Retention & Deletion Policy Summary
## 🗃️ Retention Policy
Build Better, Inc. retains customer data **only as long as necessary to fulfill a business, contractual, legal, or regulatory obligation on behalf of the customer**.
> 🔁 Once the customer terminates their account or requests deletion, data is no longer required to fulfill any business obligation **for that customer** — and is **therefore deleted**.
* **Personally Identifiable Information (PII)** is deleted or de-identified once it no longer has an active business purpose.
* Specific retention timelines vary by data type and system (see the Retention Matrix in the full policy).
## ✅ Account Cancellation & Deletion
> **When a customer cancels their account or requests deletion, Build Better, Inc. automatically deletes all associated data within 60 days.**
* Manual deletion is performed across systems.
* If required by law or contract, some data may be retained beyond this period.
## 🔐 Secure Disposal
* Confidential and restricted data is always securely deleted.
* Paper records are shredded; digital devices are wiped or physically destroyed.
* Certified e-waste partners are used when necessary, and certificates are retained for one year.
## 🔁 Annual Review
Build Better, Inc. management conducts an **annual review** of data retention and disposal practices to ensure compliance and relevance.
***
> **📄 Read and download the full Data Management Policy on our trust portal:**\
> [https://trust.buildbetter.ai/resources?s=otpd4biuoubjwccyizc0c\&name=data-management-policy](https://trust.buildbetter.ai/resources?s=otpd4biuoubjwccyizc0c\&name=data-management-policy)
# Information Security Policy Summary
Source: https://docs.buildbetter.ai/pages/Legal/data-security
Summary of Build Better, Inc.'s core security and acceptable use practices
> **📄 Read and download the full Information Security Policy on our trust portal:**\
> [https://trust.buildbetter.ai/resources?s=82ed75cltv69qy292r9sgi\&name=information-security-policy-(aup)](https://trust.buildbetter.ai/resources?s=82ed75cltv69qy292r9sgi\&name=information-security-policy-\(aup\))
# Information Security Policy Summary
**Effective Date:** January 1, 2023\
**Policy Owner:** Spencer Shulem, CEO
## 🔐 Purpose & Scope
This policy outlines acceptable use and required protections for Build Better, Inc.’s systems, networks, and data. It applies to **all employees, contractors, and third parties** accessing Build Better, Inc. assets.
Security is a **shared responsibility**, and all personnel are required to act in accordance with this policy and report incidents promptly.
***
## 📦 Key Security Controls
### 🔒 Device & Mobile Security
* All end-user devices must be:
* Locked with a password or biometric
* Set to auto-lock after 5 minutes
* Encrypted if storing or accessing confidential data
* Confidential data may **not** be stored on USB drives or personal devices.
* Lost or misused devices must be reported **immediately**.
### 🔐 Access Controls
* Passwords must follow the **Access Control Policy**.
* Users may not share credentials or leave devices unattended and unlocked.
* All VPN and remote access tools must be company-approved and use **MFA**.
### 🧹 Clear Desk & Clear Screen
* Users must **lock screens** when not in use.
* Confidential materials must not be left visible or unsecured in the workspace.
***
## 🌐 Acceptable Use & Unacceptable Activities
Build Better, Inc. systems are for **authorized business use only**. Prohibited activities include:
* Unauthorized software installs or access
* Network sniffing, denial of service, or unauthorized scanning
* Storing or transmitting copyrighted, offensive, or malicious material
* Sharing confidential data without permission
* Bypassing security mechanisms or using rogue software
***
## 🛡️ Incident Reporting
All suspected security incidents or policy violations must be reported **immediately** to:\
📧 **[security@buildbetter.app](mailto:security@buildbetter.app)**
**Whistleblower protections** are in place to encourage good-faith reporting of violations, fraud, or misconduct.
***
## 🌐 Remote Access & Public Network Use
* Only authorized, encrypted remote access (e.g., VPN with MFA) is permitted.
* Public Wi-Fi use requires VPN.
* Users must not save credentials or download data on public/shared machines.
***
## 📚 Linked Security Policies
This policy incorporates and references the following:
* ✅ Access Control Policy
* ✅ Cryptography Policy
* ✅ Data Management Policy
* ✅ Secure Development Policy
* ✅ Incident Response Plan
* ✅ Risk & Asset Management
* ✅ Business Continuity & Disaster Recovery
* ✅ Operations & Physical Security
Personnel are required to understand and follow all applicable linked policies.
***
## ✅ Compliance & Enforcement
* **Audits and monitoring** are conducted regularly.
* Violations may result in **disciplinary action**, including termination.
* **Exceptions** must be approved by the IT Manager.
***
> **📄 Read and download the full Information Security Policy on our trust portal:**\
> [https://trust.buildbetter.ai/resources?s=82ed75cltv69qy292r9sgi\&name=information-security-policy-(aup)](https://trust.buildbetter.ai/resources?s=82ed75cltv69qy292r9sgi\&name=information-security-policy-\(aup\))
# GDPR Compliance Summary
Source: https://docs.buildbetter.ai/pages/Legal/gdpr-compliance
Summary of Build Better, Inc.'s GDPR Compliance Policy
> **📄 Read and download the full GDPR Compliance Policy on our trust portal:**\
> [https://trust.buildbetter.ai/resources?s=khy0s6atxmuealj7w7p01a\&name=gdpr-compliance-policy-(en)](https://trust.buildbetter.ai/resources?s=khy0s6atxmuealj7w7p01a\&name=gdpr-compliance-policy-\(en\))
# GDPR Compliance Policy Summary
**Effective Date:** January 1, 2023\
**Policy Owner:** CEO
## 📌 Scope
This policy applies to all employees, contractors, and vendors of Build Better, Inc. with access to **EU/EEA personal data**.
## 🔐 Commitments
Build Better, Inc. ensures:
* Legal basis for all data processing
* Technical, physical, and administrative safeguards
* Access to personal data is strictly **need-to-know**
* Personal data is used only for **authorized purposes**
* Encryption in transit and at rest
* Secure disposal of all personal data
* No third-party transfers without a signed **Data Protection Addendum (DPA)**
## 🧑💼 Key Roles
* **CEO / Policy Owner:** Spencer Shulem\
📧 [spencer@buildbetter.app](mailto:spencer@buildbetter.app) | 📞 +1 (805) 680-6343
* **Data Protection Officer (DPO):** Spencer Shulem
* Ensures GDPR compliance and internal monitoring
* Reviews DPIAs, breach responses, and processing records
* Acts as main contact for supervisory authorities
### Article 27 Representatives
* **EU Representative:**\
Osano International Compliance Services Limited, Dublin, Ireland
* **UK Representative:**\
Osano UK Compliance LTD, Belfast, UK
## 🛠️ Data Protection Measures
* Encrypted storage & transmission
* Secure shredding (paper), wiping or destruction (digital media)
* Mandatory awareness training
* SAR/DSAR procedures established
* Maintains a **Record of Processing Activity** (RoPA) under Article 30
## 🔁 Data Subject Rights (DSAR/SAR)
Build Better, Inc. supports:
* Access, Rectification, Erasure, Restriction, Portability, Objection, and Consent withdrawal
* Requests handled via [Privacy Page](https://buildbetter.ai/privacy) or **[privacy@buildbetter.ai](mailto:privacy@buildbetter.ai)**
* Requests acknowledged within **3 days**, resolved within **25 days**
* Records of all SARs are maintained and auditable
## 🛡️ Breach & Disclosure
* Follows GDPR breach notification requirements
* All incidents reported to **[incidents@buildbetter.app](mailto:incidents@buildbetter.app)**
* Will notify affected data subjects when required
* External communications approved by CTO or DPO
## 📘 Enforcement & Reporting
* **Responsible:** CTO & CEO
* **Noncompliance** may result in disciplinary action, including termination
* **Good faith reporting** is protected
## 📅 Version History
| Version | Date | Description | Author |
| - | - | - | - |
| 1.0 | 10-AUG-2023 | Initial policy | Spencer Shulem |
> **📄 Read and download the full GDPR Compliance Policy on our trust portal:**\
> [https://trust.buildbetter.ai/resources?s=khy0s6atxmuealj7w7p01a\&name=gdpr-compliance-policy-(en)](https://trust.buildbetter.ai/resources?s=khy0s6atxmuealj7w7p01a\&name=gdpr-compliance-policy-\(en\))
# HIPAA Compliance Summary
Source: https://docs.buildbetter.ai/pages/Legal/hipaa-compliance
Summary of Build Better, Inc.'s HIPAA Compliance Policy
> **📄 Read and download the full HIPAA Compliance Policy on our trust portal:**\
> [https://trust.buildbetter.ai/resources?s=0z8sfhuqcmut5ky1ghbnlu\&name=hipaa-compliance-policy-(en)](https://trust.buildbetter.ai/resources?s=0z8sfhuqcmut5ky1ghbnlu\&name=hipaa-compliance-policy-\(en\))
# HIPAA Compliance Policy Summary
**Effective Date:** July 1, 2023\
**Policy Owner:** Spencer Shulem
## 📌 Overview
Build Better, Inc. is committed to maintaining the **confidentiality, integrity, availability, and privacy** of Protected Health Information (PHI) in accordance with HIPAA. This policy applies to all employees, contractors, and vendors with access to PHI.
## 🔐 Core Commitments
* Comply with **HIPAA** and **HITECH Act** requirements.
* Protect PHI via technical, physical, and administrative safeguards.
* Limit access to PHI to only those with a **need-to-know** basis.
* Encrypt PHI at rest and in transit.
* Train personnel on HIPAA and PHI responsibilities.
* Securely dispose of paper and electronic PHI.
* Notify affected parties of reportable incidents under HIPAA Breach Notification Rule.
## 🧑💼 Key Roles
* **HIPAA Security Officer:** Spencer Shulem\
📧 [spencer@buildbetter.ai](mailto:spencer@buildbetter.ai) | 📞 +1 (805) 680-6343
Responsibilities include:
* Overseeing compliance efforts.
* Reviewing PHI-related projects.
* Maintaining and updating HIPAA policies.
## 📘 Definitions
* **PHI:** Individually identifiable health information.
* **HIPAA Policies:** Internal safeguards and procedures.
* **Business Associate Activities:** Handling PHI on behalf of covered entities.
## 🚨 Breach & Enforcement
* Report any suspected violations to: **[incidents@buildbetter.ai](mailto:incidents@buildbetter.ai)**
* Failure to report or comply may result in disciplinary action, including termination.
* Reports made in good faith are protected from retaliation.
## 📅 Version History
| Version | Date | Description | Author |
| - | - | - | - |
| 1.0 | 07/01/2023 | Initial policy | Spencer Shulem |
> **📄 Read and download the full HIPAA Compliance Policy on our trust portal:**\
> [https://trust.buildbetter.ai/resources?s=0z8sfhuqcmut5ky1ghbnlu\&name=hipaa-compliance-policy-(en)](https://trust.buildbetter.ai/resources?s=0z8sfhuqcmut5ky1ghbnlu\&name=hipaa-compliance-policy-\(en\))
# Privacy Policy
Source: https://docs.buildbetter.ai/pages/Legal/privacy-policy
**Effective Date: 04/24/2025**
# Privacy Policy
## 1. Introduction
Welcome to Build Better, Inc.
Build Better, Inc. (“us”, “we”, or “our”) operates [https://www.BuildBetter.app](https://www.BuildBetter.app) and the BuildBetter mobile application (hereinafter referred to as “Service”).
Our Privacy Policy governs your visit to [https://www.BuildBetter.app](https://www.BuildBetter.app) and the BuildBetter mobile application, and explains how we collect, safeguard, and disclose information that results from your use of our Service.
We use your data to provide and improve our Service. By using our Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, the terms used herein have the same meanings as in our Terms and Conditions.
Our Terms and Conditions (“Terms”) govern all use of our Service and, together with this Privacy Policy, constitute your agreement with us (“agreement”).
### Definitions
* **SERVICE**: The [https://www.BuildBetter.app](https://www.BuildBetter.app) website and BuildBetter mobile application operated by Build Better, Inc.
* **PERSONAL DATA**: Data about a living individual who can be identified from that data (or from that and other information in our possession or likely to come into our possession).
* **USAGE DATA**: Data collected automatically generated by the use of our Service or from our Service infrastructure (e.g., the duration of a page visit).
* **COOKIES**: Small files stored on your device (computer or mobile).
* **DATA CONTROLLER**: The natural or legal person who (alone or jointly with others) determines the purposes and manner in which any personal data are processed. For this Privacy Policy, we are the Data Controller.
* **DATA PROCESSORS (OR SERVICE PROVIDERS)**: Any natural or legal person who processes data on behalf of the Data Controller. We may use various Service Providers to process your data more effectively.
* **DATA SUBJECT**: Any living individual who is the subject of Personal Data.
* **THE USER**: The individual using our Service. The User corresponds to the Data Subject.
***
## 2. Information Collection and Use
We collect several types of information for various purposes to provide and improve our Service.
***
## 3. Types of Data Collected
### Personal Data
While using our Service, we may ask you to provide certain personally identifiable information that can be used to contact or identify you (“Personal Data”). This may include, but is not limited to:
* Email address
* First name and last name
* Phone number
* Address, State, Province, ZIP/Postal code, City
* Cookies and Usage Data
We may use this Personal Data to contact you with newsletters, marketing or promotional materials, and other information that may be of interest to you. You may opt out of these communications by following the unsubscribe link.
### Usage Data
We may also collect information that your browser sends whenever you visit our Service or when you access our Service via a mobile device (“Usage Data”). This may include:
* Your computer's IP address, browser type and version
* The pages you visit on our Service, and the time and date of your visit
* The time spent on those pages, unique device identifiers, and other diagnostic data
When accessing our Service with a mobile device, Usage Data may include details such as the type of mobile device, unique device identifiers, IP address, operating system, and mobile browser type.
***
## 4. Google API Services User Data Compliance
Build Better, Inc. complies with the Google API Services User Data Policy, including the Limited Use requirements. We use and transfer information received from Google APIs strictly in adherence to this policy. Our handling of data obtained through Restricted and Sensitive Scopes follows Google's guidelines to protect user privacy and security.\
[Learn more about Google API Services User Data Policy](https://policies.google.com/privacy?hl=en).
***
## 5. Tracking Cookies Data
We use cookies and similar tracking technologies to track activity on our Service and hold certain information. Cookies are small files with a small amount of data (often including an anonymous unique identifier) that are sent to your browser and stored on your device. Other tracking technologies (e.g., beacons, tags, and scripts) may also be used to collect and track information and to improve and analyze our Service.
You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, some portions of our Service may not function properly.
**Examples of Cookies We Use:**
* **Session Cookies:** To operate our Service.
* **Preference Cookies:** To remember your preferences and settings.
* **Security Cookies:** For security purposes.
***
## 6. Use of Data
Build Better, Inc. uses the collected data for various purposes, including:
* To provide and maintain our Service.
* To notify you about changes to our Service.
* To enable interactive features when you choose to use them.
* To provide customer support.
* To gather analysis or valuable information for improving our Service.
* To monitor usage of our Service.
* To detect, prevent, and address technical issues.
* To fulfill our contractual obligations (e.g., billing and collection).
* To provide you with account or subscription notices (e.g., expiration and renewal notices).
* To deliver news, special offers, and general information about goods, services, and events that may interest you.
* In any other manner described when you provided the information.
* For any other purpose with your consent.
***
## 7. Retention of Data
We retain your Personal Data only as long as necessary for the purposes outlined in this Privacy Policy. We will also retain and use your Personal Data as required to comply with our legal obligations, resolve disputes, and enforce our legal agreements and policies.
Usage Data is generally retained for a shorter period unless needed to strengthen security, improve functionality, or comply with legal obligations.
***
## 8. Transfer of Data
Your information, including Personal Data, may be transferred to—and maintained on—computers located outside your state, province, country, or other governmental jurisdiction where the data protection laws may differ from those in your jurisdiction.
If you are located outside the United States and choose to provide information to us, please note that we transfer the data, including Personal Data, to the United States and process it there. Your consent to this Privacy Policy and your submission of such information represents your agreement to that transfer.
We will take all reasonable steps to ensure your data is treated securely and in accordance with this Privacy Policy, and no transfer of your Personal Data will occur to an organization or country unless adequate controls are in place.
For enterprise deployments, BuildBetter offers **custom data residency options** in select jurisdictions that comply with GDPR, HIPAA, and other regional regulations. This allows enterprise customers to store and process data in specific compliant countries upon request.
***
## 9. Disclosure of Data
We may disclose personal information that we collect or you provide:
### Disclosure for Law Enforcement
Under certain circumstances, we may be required to disclose your Personal Data if required by law or in response to valid requests by public authorities.
### Business Transaction
If we or our subsidiaries are involved in a merger, acquisition, or asset sale, your Personal Data may be transferred.
### Other Cases
We may also disclose your information:
* To contractors, service providers, and other third parties used to support our business.
* For any other purpose disclosed by us when you provide the information.
* With your consent in any other cases.
* If we believe disclosure is necessary or appropriate to protect the rights, property, or safety of the Company, our customers, or others.
***
## 10. Security of Data
The security of your data is important to us, but remember that no method of transmission over the Internet or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Data, we cannot guarantee its absolute security.
We undergo **annual SOC 2 Type II audits** and third-party penetration tests, the results of which are available at [trust.buildbetter.ai](https://trust.buildbetter.ai), and we use a third party security monitoring service for continuous security monitoring and compliance tracking. These efforts ensure we maintain the highest security standards throughout our infrastructure and operations.
***
## 11. Your Data Protection Rights Under GDPR
If you are a resident of the European Union (EU) or European Economic Area (EEA), you have certain rights under GDPR. We aim to take reasonable steps to allow you to correct, amend, delete, or limit the use of your Personal Data.
If you wish to know what Personal Data we hold about you or have it removed from our systems, please email us at [support@buildbetter.ai](mailto:support@buildbetter.ai).
### Your Rights Include:
* **Access:** The right to access, update, or delete your information.
* **Rectification:** The right to have your information corrected if it is inaccurate or incomplete.
* **Objection:** The right to object to our processing of your Personal Data.
* **Restriction:** The right to request that we restrict the processing of your personal information.
* **Data Portability:** The right to receive your Personal Data in a structured, machine-readable format.
* **Withdrawal of Consent:** The right to withdraw your consent at any time, where applicable.
You also have the right to complain to a Data Protection Authority about our collection and use of your Personal Data.
***
## 12. Your Data Protection Rights Under CalOPPA
CalOPPA requires commercial websites and online services collecting personally identifiable information from California consumers to post a privacy policy. We agree to the following under CalOPPA:
* Users can visit our site anonymously.
* Our Privacy Policy link includes the word "Privacy" and is easily found on our homepage.
* Users will be notified of any privacy policy changes on our Privacy Policy page.
* Users can change their personal information by emailing us at [support@buildbetter.ai](mailto:support@buildbetter.ai).
#### Our Policy on "Do Not Track" Signals
We honor Do Not Track signals and do not track, plant cookies, or use advertising when a Do Not Track mechanism is in place. You can enable or disable Do Not Track by visiting your browser's Preferences or Settings.
***
## 13. Your Data Protection Rights Under CCPA
If you are a California resident, you have the right to know what personal information we collect, request deletion of your data, and opt out of the sale of your personal data. To exercise these rights, you may request:
* **What personal information we have about you:**\
We will provide details including:
* Categories of personal information collected.
* Sources of your personal information.
* The business or commercial purpose for collecting or selling your information.
* Categories of third parties with whom we share your information.
* Specific pieces of personal information we have collected.
* Lists of categories of information we have sold or disclosed for a business purpose.
* **Deletion of your personal information:**\
We will delete your personal information from our records (and instruct our service providers to do the same) upon your request, except where deletion is not possible due to legal obligations.
* **Opt-out of the sale of your personal information:**\
We do not sell your personal information for monetary consideration. If you request to stop such transfers, we will comply. To opt out, click "Do Not Sell My Personal Information" at the bottom of our homepage.
Please note that exercising these rights may affect your ability to use certain features of our Service.
To exercise your rights, please email [support@buildbetter.ai](mailto:support@buildbetter.ai).
***
## 14. Service Providers
We may employ third-party companies and individuals to facilitate our Service, provide Service on our behalf, perform Service-related services, or assist us in analyzing how our Service is used. These third parties have access to your Personal Data only to perform these tasks and are obligated not to disclose or use it for any other purpose.
***
## 15. Analytics
We may use third-party Service Providers to monitor and analyze the use of our Service.
**Google Analytics**\
Google Analytics is a web analytics service provided by Google that tracks and reports website traffic. Google uses the data collected to monitor the use of our Service and to personalize ads on its network.\
For more information, please visit the [Google Privacy Terms](https://policies.google.com/privacy?hl=en) and [Google Analytics Help](https://support.google.com/analytics/answer/6004245).
**Mixpanel**\
Mixpanel is provided by Mixpanel Inc. You can opt out of Mixpanel's data collection by visiting [Mixpanel Opt-Out](https://mixpanel.com/optout/).\
For more information, see [Mixpanel Terms](https://mixpanel.com/terms/).
***
## 16. CI/CD Tools
We may use third-party Service Providers to automate our Service's development process.
**GitHub**\
GitHub, provided by GitHub, Inc., is used for hosting and reviewing code, managing projects, and building software.\
For more information, please refer to the [GitHub Privacy Statement](https://help.github.com/en/articles/github-privacy-statement).
**GitLab CI/CD**\
GitLab CI/CD, provided by GitLab, Inc., builds, tests, and deploys our software.\
For more information, visit [GitLab Privacy](https://about.gitlab.com/privacy/).
***
## 17. Behavioral Remarketing
Build Better, Inc. uses remarketing services to advertise on third-party websites to you after you visit our Service. We and our third-party vendors use cookies to optimize and serve ads based on your past visits.
**Google Ads (AdWords)**\
Provided by Google Inc.\
Opt out via [Google Ads Settings](http://www.google.com/settings/ads) or install the [Google Analytics Opt-out Browser Add-on](https://tools.google.com/dlpage/gaoptout).\
See [Google Privacy Terms](https://policies.google.com/privacy?hl=en) for details.
**Bing Ads Remarketing**\
Provided by Microsoft Inc.\
For more information, visit [Bing Ads Policies](https://advertise.bingads.microsoft.com/en-us/resources/policies/personalized-ads) and [Microsoft Privacy Statement](https://privacy.microsoft.com/en-us/PrivacyStatement).
**Twitter**\
Provided by Twitter Inc.\
To opt out of Twitter's interest-based ads, visit [Twitter Support](https://support.twitter.com/articles/20170405) and see [Twitter Privacy](https://twitter.com/privacy).
**Facebook**\
Provided by Facebook Inc.\
For interest-based advertising details, visit [Facebook Help](https://www.facebook.com/help/164968693837950). To opt out, follow [Facebook's Instructions](https://www.facebook.com/help/568137493302217).\
For more details, see [Facebook's Data Policy](https://www.facebook.com/privacy/explanation).
***
## 18. Payments
We may offer paid products and/or services within our Service. In such cases, we use third-party payment processors.
We do not store or collect your payment card details. Your payment information is provided directly to our payment processors, which adhere to PCI-DSS standards.
**Stripe**\
For more information, please see [Stripe Privacy](https://stripe.com/us/privacy).
***
## 19. Links to Other Sites
Our Service may contain links to other sites not operated by us. Clicking a third-party link will direct you to that site.\
We strongly advise you to review the Privacy Policy of every site you visit. We have no control over, and assume no responsibility for, the content, privacy policies, or practices of any third-party sites or services.
***
## 20. Children's Privacy
Our Services are not intended for children under the age of 18 ("Child" or "Children").\
We do not knowingly collect personally identifiable information from children under 18. If you become aware that a child has provided us with Personal Data, please contact us immediately. If we discover that we have collected Personal Data from children without parental consent, we will take steps to remove that information from our servers.
***
## 21. Changes to This Privacy Policy
We may update our Privacy Policy from time to time. We will notify you of significant changes by posting the new Privacy Policy on this page, and via email and/or prominent notice on our Service, prior to the change becoming effective. The "Effective Date" at the top of this Privacy Policy will be updated accordingly.
We advise you to review this Privacy Policy periodically for any changes. Changes are effective when posted on this page.
**April 24, 2025** – Added disclosures about SOC 2 Type II certification, Vanta security monitoring, AI usage transparency, penetration testing, and custom data residency options for enterprise clients.
***
## 22. Slack Integration Data Handling
When you use our Slack integration, we collect and process certain data from Slack:
### Data We Collect
* Workspace name and ID
* Channel names and IDs where our app is installed
* User IDs and display names of users interacting with our app
* Command payloads from slash commands
* Message content when explicitly shared with our app
* System logs related to app installation and usage
### How We Use This Data
* To provide core functionality of our BuildBetter integration
* To authenticate and authorize users
* To deliver notifications to specified channels
* For debugging and troubleshooting
* For security monitoring and abuse prevention
### Data We Receive But Don't Actively Use
Our app may receive additional data through Slack's API that we do not actively use as part of our service features, including:
* Command metadata from slash commands
* API call logs and error reports
* Temporary system logs for technical monitoring
### Data Retention
Data from Slack integrations is retained according to our general data retention policy outlined in Section 7. Specifically:
* Active integration data is retained while the integration is active
* Upon uninstallation, user-specific data is deleted within 30 days
***
## 23. Requesting Access, Transfer, or Deletion of Your Data
You may request access to, transfer of, or deletion of your data at any time by:
* Emailing us at [support@buildbetter.ai](mailto:support@buildbetter.ai) with the subject "Data Request"
* Using our [data request form](https://docs.google.com/forms/d/e/1FAIpQLSfi_C_r7t2QbkSe_TsvUhIloQI5YGBoSgZIZQjN_jReD6zvbQ/viewform?usp=sharing)
* Contacting our support team via live chat on our website
All data requests will be processed within 30 days of verification of your identity.
### Response Timeframe
When you submit a data request, you can expect the following timeline:
* **Initial Acknowledgment**: You will receive an automated confirmation email within 24 hours of submitting your request.
* **Identity Verification**: Within 2 business days, our team will send instructions to verify your identity. This step is necessary to protect your privacy and ensure requests are legitimate.
* **Request Processing**: Once your identity is verified, we will process your request within 30 days. Complex requests may require up to 45 days, in which case we will notify you of the extension with an explanation.
* **Progress Updates**: For requests that take longer than 10 business days, we will provide weekly status updates via email.
* **Completion Notification**: When your request is completed, you will receive a confirmation email with details of the actions taken.
* **Additional Information**: If we need additional information to process your request, we will contact you within 5 business days of your initial request.
We are committed to handling all data requests promptly and thoroughly.
***
### 24. AI Use and Transparency
BuildBetter uses AI to assist with meeting transcription, summarization, and workflow automation. We do **not train AI models on customer data**. When third-party models are used (e.g., OpenAI or Anthropic), your content is processed in real time and never retained or reused for model improvement.
BuildBetter has published a dedicated [AI Transparency Statement](https://trust.buildbetter.ai/ai-transparency) outlining:
* Our zero-training stance on customer data
* Our use of explainable AI outputs with source attribution
* Continuous auditing and bias mitigation practices
* Compliance with all major AI governance frameworks (e.g., GDPR, HIPAA, SOC 2)
Additionally, we offer **custom deployment options** for enterprise clients, including:
* **On-premises hosting**
* **Bring-your-own-model (BYOM)**
* **Custom model fine-tuning under strict governance**
To learn more or to request our AI policies, contact: [security@buildbetter.ai](mailto:security@buildbetter.ai).
***
## 25. Contact Us
If you have any questions about this Privacy Policy, please contact us:
**By email:** [support@buildbetter.ai](mailto:support@buildbetter.ai)
**Questions, Concerns, or Complaints:**
If you have any questions, concerns, complaints, or would like to exercise your rights, please contact us at:
**Build Better, Inc.**\
Spencer Shulem\
3790 S El Camino Real #809\
Palo Alto, CA, US 94403\
[hi@BuildBetter.app](mailto:hi@BuildBetter.ai)\
+1-628-267-2887
# SCIM Provisioning
Source: https://docs.buildbetter.ai/pages/Legal/scim-provisioning
Automate user provisioning and deprovisioning with SCIM 2.0
BuildBetter supports SCIM 2.0 (System for Cross-domain Identity Management) for automated user lifecycle management. SCIM enables your identity provider to automatically create, update, and deactivate user accounts in BuildBetter.
SCIM provisioning is available for Enterprise customers with custom SAML SSO integrations. Contact your account representative to enable SCIM for your organization.
## Overview
SCIM automates the user provisioning process, ensuring that:
* **New employees** automatically get BuildBetter access when added to your identity provider
* **Departing employees** are immediately deprovisioned when removed from your identity provider
* **User profile changes** (name, email) are synced automatically
* **Account management** is centralized in your identity provider
New users are created in BuildBetter when assigned in your IdP
Users are deactivated when unassigned or removed from your IdP
User profile updates are synchronized automatically
Manage all access from your identity provider
## Supported Identity Providers
BuildBetter's SCIM implementation works with any SCIM 2.0 compliant identity provider, including:
* **Okta**
* **Azure Active Directory (Entra ID)**
* **OneLogin**
* **JumpCloud**
* **Google Workspace** (with SCIM connector)
* **Ping Identity**
## SCIM Capabilities
### Supported Operations
| Operation | Description | Supported |
| - | - | - |
| Create User | Provision new users in BuildBetter | Yes |
| Update User | Modify user profile attributes | Yes |
| Deactivate User | Disable user access without deletion | Yes |
| Delete User | Remove user from BuildBetter | Yes |
| Get User | Retrieve user information | Yes |
| List Users | Retrieve all provisioned users | Yes |
### Supported Attributes
BuildBetter supports the following SCIM user attributes:
| SCIM Attribute | BuildBetter Field | Required |
| - | - | - |
| `userName` | Email address (primary identifier) | Yes |
| `name.givenName` | First name | Yes |
| `name.familyName` | Last name | Yes |
| `active` | Account status | Yes |
| `emails[primary]` | Primary email | Yes |
| `displayName` | Display name | No |
Role-based access control (RBAC) and department assignments are managed within BuildBetter's admin settings rather than through SCIM. This allows for flexible permission configurations that may not map directly to your IdP's group structure.
## Setting Up SCIM with Okta
Follow these steps to configure SCIM provisioning with Okta:
Contact BuildBetter support at [support@buildbetter.ai](mailto:support@buildbetter.ai) to request SCIM provisioning setup. We'll provide you with:
* SCIM Base URL
* API Bearer Token for authentication
* Any organization-specific configuration details
1. Log in to your Okta Admin Console
2. Navigate to **Applications** > **Applications**
3. Click **Create App Integration**
4. Select **SAML 2.0** (if you haven't already configured SAML SSO)
5. Or select your existing BuildBetter SAML application
1. In your BuildBetter application, go to the **Provisioning** tab
2. Click **Configure API Integration**
3. Check **Enable API Integration**
4. Enter the SCIM Base URL provided by BuildBetter:
```
https://api.buildbetter.ai/scim/v2
```
5. Enter the API Token (Bearer Token) provided by BuildBetter
6. Click **Test API Credentials** to verify the connection
7. Click **Save**
After saving the API configuration:
1. Go to **Provisioning** > **To App**
2. Click **Edit**
3. Enable the following options:
* **Create Users** - Provision new users
* **Update User Attributes** - Sync profile changes
* **Deactivate Users** - Disable access when unassigned
4. Click **Save**
1. Go to **Provisioning** > **To App** > **Attribute Mappings**
2. Verify the following mappings are configured:
| Okta Attribute | BuildBetter Attribute |
| - | - |
| `user.email` | `userName` |
| `user.firstName` | `name.givenName` |
| `user.lastName` | `name.familyName` |
| `user.email` | `emails[primary].value` |
3. Click **Save** after making any changes
1. Go to the **Assignments** tab
2. Click **Assign** > **Assign to People** or **Assign to Groups**
3. Select the users or groups that should have access to BuildBetter
4. Click **Save and Go Back**
5. Click **Done**
Assigned users will be automatically provisioned in BuildBetter.
Keep your SCIM API token secure. If you believe your token has been compromised, contact BuildBetter support immediately to rotate the credentials.
## Setting Up SCIM with Azure AD (Entra ID)
Contact [support@buildbetter.ai](mailto:support@buildbetter.ai) to receive your SCIM credentials.
1. Log in to the Azure Portal
2. Navigate to **Azure Active Directory** > **Enterprise Applications**
3. Select your existing BuildBetter application or create a new one
4. Go to **Provisioning** in the left menu
5. Set **Provisioning Mode** to **Automatic**
In the **Admin Credentials** section:
* **Tenant URL**: Enter the SCIM Base URL from BuildBetter
```
https://api.buildbetter.ai/scim/v2
```
* **Secret Token**: Enter the API Bearer Token from BuildBetter
Click **Test Connection** to verify, then **Save**
1. Expand **Mappings**
2. Select **Provision Azure Active Directory Users**
3. Verify the attribute mappings match your requirements
4. Enable the mapping and save
1. Set **Provisioning Status** to **On**
2. Click **Save**
3. Azure AD will begin initial synchronization
## User Lifecycle Management
### When a User is Assigned
When you assign a user to BuildBetter in your identity provider:
1. The IdP sends a SCIM create request to BuildBetter
2. BuildBetter creates the user account with the provided attributes
3. The user receives a welcome email (if enabled)
4. The user can sign in via SSO immediately
### When a User is Updated
When you update a user's profile in your identity provider:
1. The IdP sends a SCIM patch request to BuildBetter
2. BuildBetter updates the user's profile with the new attributes
3. Changes take effect immediately
### When a User is Unassigned or Deactivated
When you remove a user's access in your identity provider:
1. The IdP sends a SCIM deactivate request to BuildBetter
2. BuildBetter deactivates the user account
3. The user can no longer sign in
4. User's data is retained according to your data retention policy
Deactivated users' data remains accessible to administrators for compliance and audit purposes. If you need to permanently delete user data, contact [support@buildbetter.ai](mailto:support@buildbetter.ai).
## Troubleshooting
**Common causes:**
* API credentials are incorrect or expired
* User is not assigned to the application in your IdP
* Required attributes (email, first name, last name) are missing
**Solutions:**
1. Test the API connection in your IdP's provisioning settings
2. Verify the user is assigned to the BuildBetter application
3. Check that all required user attributes are populated
4. Review provisioning logs in your IdP for specific error messages
**Common causes:**
* Attribute mappings are misconfigured
* Provisioning is paused or disabled
* Rate limiting on API requests
**Solutions:**
1. Verify attribute mappings in your IdP
2. Ensure provisioning is enabled and running
3. Trigger a manual sync if available
4. Wait a few minutes and check again (some IdPs batch updates)
**Common causes:**
* Deactivation is not enabled in provisioning settings
* User was removed from IdP but not unassigned from the app
**Solutions:**
1. Verify "Deactivate Users" is enabled in provisioning settings
2. Ensure the user was properly unassigned from the application
3. Check provisioning logs for any errors
4. Contact BuildBetter support if the issue persists
**Common causes:**
* Incorrect SCIM Base URL
* Invalid or expired API token
* Network/firewall blocking the connection
**Solutions:**
1. Verify the SCIM Base URL is exactly: `https://api.buildbetter.ai/scim/v2`
2. Request a new API token from BuildBetter support
3. Ensure your network allows outbound HTTPS connections to BuildBetter
## Security Considerations
### Authentication
* SCIM requests are authenticated using Bearer tokens
* Tokens are organization-specific and can be rotated on request
* All SCIM traffic is encrypted via TLS 1.2+
### Audit Logging
All SCIM operations are logged for compliance purposes:
* User creation events
* Profile updates
* Deactivation events
* API authentication attempts
Enterprise customers can access these logs through the audit log feature.
### Data Protection
* SCIM data is transmitted over encrypted connections only
* User data is stored according to BuildBetter's data security policies
* Deactivated users can be permanently deleted upon request
## Frequently Asked Questions
SCIM provisioning is typically paired with SAML SSO for a complete identity management solution. Contact your account representative to discuss your specific requirements.
Currently, BuildBetter manages roles and permissions within the application rather than through SCIM group provisioning. This provides flexibility for complex permission structures that may not map directly to your IdP's group hierarchy.
Most identity providers sync changes within minutes. The exact timing depends on your IdP's provisioning schedule and configuration.
Yes. Contact BuildBetter support to configure multi-workspace provisioning based on your organizational structure.
Existing users can be linked to your IdP through email matching. Contact BuildBetter support to coordinate the initial sync and avoid duplicate accounts.
***
For assistance with SCIM configuration or to request SCIM provisioning for your organization, contact [support@buildbetter.ai](mailto:support@buildbetter.ai) or your account representative.
# Terms of Service
Source: https://docs.buildbetter.ai/pages/Legal/terms-of-service
**TERMS OF SERVICE**
Last updated: 03/28/2023
### 1. **Introduction**
Welcome to **Build Better, Inc.** (“**Company**”, “**we**”, “**our**”, “**us**”)! As you have just clicked our Terms of Service, please pause, grab a cup of coffee and carefully read the following pages. It will take you approximately 20 minutes.
These Terms of Service (“**Terms**”, “**Terms of Service**”) govern your use of our web pages located at [https://www.BuildBetter.app](https://www.BuildBetter.app) and our mobile application BuildBetter (together or individually “**Service**”) operated by Build Better, Inc.
Our Privacy Policy also governs your use of our Service and explains how we collect, safeguard and disclose information that results from your use of our web pages. Please read it here [https://www.BuildBetter.ai/privacy](https://www.BuildBetter.ai/privacy).
Your agreement with us includes these Terms and our Privacy Policy (“**Agreements**”). You acknowledge that you have read and understood Agreements, and agree to be bound by them.
If you do not agree with (or cannot comply with) Agreements, then you may not use the Service, but please let us know by emailing [support@buildbetter.app](mailto:support@buildbetter.app) so we can try to find a solution. These Terms apply to all visitors, users and others who wish to access or use Service.
Thank you for being responsible.
### 2. **Communications**
By creating an Account on our Service, you agree to subscribe to newsletters, marketing or promotional materials and other information we may send. However, you may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or by emailing us.
### 3. **Purchases**
If you wish to purchase any product or service made available through Service (“**Purchase**”), you may be asked to supply certain information relevant to your Purchase including, without limitation, your credit card number, the expiration date of your credit card, your billing address, and your shipping information.
You represent and warrant that: (i) you have the legal right to use any credit card(s) or other payment method(s) in connection with any Purchase; and that (ii) the information you supply to us is true, correct and complete.
We may employ the use of third party services for the purpose of facilitating payment and the completion of Purchases. By submitting your information, you grant us the right to provide the information to these third parties subject to our Privacy Policy.
We reserve the right to refuse or cancel your order at any time for reasons including but not limited to: product or service availability, errors in the description or price of the product or service, error in your order or other reasons.
We reserve the right to refuse or cancel your order if fraud or an unauthorized or illegal transaction is suspected.
### 4. **Subscriptions**
Some parts of Service are billed on a subscription basis (“**Subscription(s)**”). You will be billed in advance on a recurring and periodic basis (“**Billing Cycle**”). Billing cycles are set either on a monthly or annual basis, depending on the type of subscription plan you select when purchasing a Subscription.
At the end of each Billing Cycle, your Subscription will automatically renew under the exact same conditions unless you cancel it or Build Better, Inc. cancels it. You may cancel your Subscription renewal either through your online account management page or by contacting Build Better, Inc. customer support team.
A valid payment method, including credit card, is required to process the payment for your subscription. You shall provide Build Better, Inc. with accurate and complete billing information including full name, address, state, zip code, telephone number, and a valid payment method information. By submitting such payment information, you automatically authorize Build Better, Inc. to charge all Subscription fees incurred through your account to any such payment instruments.
Should automatic billing fail to occur for any reason, Build Better, Inc. will issue an electronic invoice indicating that you must proceed manually, within a certain deadline date, with the full payment corresponding to the billing period as indicated on the invoice.
### 5. **Free Trial**
Build Better, Inc. may, at its sole discretion, offer a Subscription with a free trial for a limited period of time (“**Free Trial**”).
You may be required to enter your billing information in order to sign up for Free Trial.
If you do enter your billing information when signing up for Free Trial, you will not be charged by Build Better, Inc. until Free Trial has expired. On the last day of Free Trial period, unless you cancelled your Subscription, you will be automatically charged the applicable Subscription fees for the type of Subscription you have selected.
At any time and without notice, Build Better, Inc. reserves the right to (i) modify Terms of Service of Free Trial offer, or (ii) cancel such Free Trial offer.
### 6. **Fee Changes**
Build Better, Inc., in its sole discretion and at any time, may modify Subscription fees for the Subscriptions. Any Subscription fee change will become effective at the end of the then-current Billing Cycle.
Build Better, Inc. will provide you with a reasonable prior notice of any change in Subscription fees to give you an opportunity to terminate your Subscription before such change becomes effective.
Your continued use of Service after Subscription fee change comes into effect constitutes your agreement to pay the modified Subscription fee amount.
### 7. **Refunds**
Except when required by law, paid Subscription fees are non-refundable.
### 8. **Content**
Our Service allows you to post, link, store, share and otherwise make available certain information, text, graphics, videos, or other material (“**Content**”). You are responsible for Content that you post on or through Service, including its legality, reliability, and appropriateness.
By posting Content on or through Service, you represent and warrant that: (i) Content is yours (you own it) and/or you have the right to use it and the right to grant us the rights and license as provided in these Terms, and (ii) that the posting of your Content on or through Service does not violate the privacy rights, publicity rights, copyrights, contract rights or any other rights of any person or entity. We reserve the right to terminate the account of anyone found to be infringing on a copyright.
You retain any and all of your rights to any Content you submit, post or display on or through Service and you are responsible for protecting those rights. We take no responsibility and assume no liability for Content you or any third party posts on or through Service. However, by posting Content using Service you grant us the limited right and license to use your Content solely to provide and improve the Service—this includes the right to modify, publicly perform, publicly display, reproduce, and distribute such Content on and through Service. You agree that this license includes the right for us to make your Content available to other users of Service, who may also use your Content subject to these Terms, but only within the scope necessary for Service functionality.
Build Better, Inc. has the right but not the obligation to monitor and edit all Content provided by users.
In addition, Content found on or through this Service are the property of Build Better, Inc. or used with permission. You may not distribute, modify, transmit, reuse, download, repost, copy, or use said Content, whether in whole or in part, for commercial purposes or for personal gain, without express advance written permission from us.
### 9. **Prohibited Uses**
You may use Service only for lawful purposes and in accordance with Terms. You agree not to use Service:
* In any way that violates any applicable national or international law or regulation.
* For the purpose of exploiting, harming, or attempting to exploit or harm minors in any way by exposing them to inappropriate content or otherwise.
* To transmit, or procure the sending of, any advertising or promotional material, including any “junk mail”, “chain letter,” “spam,” or any other similar solicitation.
* To impersonate or attempt to impersonate Company, a Company employee, another user, or any other person or entity.
* In any way that infringes upon the rights of others, or in any way is illegal, threatening, fraudulent, or harmful, or in connection with any unlawful, illegal, fraudulent, or harmful purpose or activity.
* To engage in any other conduct that restricts or inhibits anyone’s use or enjoyment of Service, or which, as determined by us, may harm or offend Company or users of Service or expose them to liability.
Additionally, you agree not to:
* Use Service in any manner that could disable, overburden, damage, or impair Service or interfere with any other party’s use of Service, including their ability to engage in real-time activities through Service.
* Use any robot, spider, or other automatic device, process, or means to access Service for any purpose, including monitoring or copying any of the material on Service.
* Use any manual process to monitor or copy any of the material on Service or for any other unauthorized purpose without our prior written consent.
* Use any device, software, or routine that interferes with the proper working of Service.
* Introduce any viruses, trojan horses, worms, logic bombs, or other material which is malicious or technologically harmful.
* Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of Service, the server on which Service is stored, or any server, computer, or database connected to Service.
* Attack Service via a denial-of-service attack or a distributed denial-of-service attack.
* Take any action that may damage or falsify Company rating.
* Otherwise attempt to interfere with the proper working of Service.
### 10. **Analytics**
We may use third-party Service Providers to monitor and analyze the use of our Service.
**Google Analytics**\
Google Analytics is a web analytics service offered by Google that tracks and reports website traffic. Google uses the data collected to track and monitor the use of our Service. This data is shared with other Google services. Google may use the collected data to contextualise and personalise the ads of its own advertising network.
For more information on the privacy practices of Google, please visit the Google Privacy Terms web page:\
[https://policies.google.com/privacy?hl=en](https://policies.google.com/privacy?hl=en)
We also encourage you to review Google's policy for safeguarding your data:\
[https://support.google.com/analytics/answer/6004245](https://support.google.com/analytics/answer/6004245).
**Mixpanel**\
Mixpanel is provided by Mixpanel Inc.
You can prevent Mixpanel from using your information for analytics purposes by opting-out. To opt-out of Mixpanel service, please visit this page:\
[https://mixpanel.com/optout/](https://mixpanel.com/optout/)
For more information on what type of information Mixpanel collects, please visit the Terms of Use page of Mixpanel:\
[https://mixpanel.com/terms/](https://mixpanel.com/terms/)
### 11. **No Use By Minors**
Service is intended only for access and use by individuals at least eighteen (18) years old. By accessing or using any of Company, you warrant and represent that you are at least eighteen (18) years of age and with the full authority, right, and capacity to enter into this agreement and abide by all of the terms and conditions of Terms. If you are not at least eighteen (18) years old, you are prohibited from both access to and usage of Service.
### 12. **Accounts**
When you create an account with us, you guarantee that you are above the age of 18, and that the information you provide us is accurate, complete, and current at all times. Inaccurate, incomplete, or obsolete information may result in the immediate termination of your account on Service.
You are responsible for maintaining the confidentiality of your account and password, including but not limited to the restriction of access to your computer and/or account. You agree to accept responsibility for any and all activities or actions that occur under your account and/or password, whether your password is with our Service or a third-party service. You must notify us immediately upon becoming aware of any breach of security or unauthorized use of your account.
You may not use as a username the name of another person or entity or that is not lawfully available for use, a name or trademark that is subject to any rights of another person or entity other than you, without appropriate authorization. You may not use as a username any name that is offensive, vulgar or obscene.
We reserve the right to refuse service, terminate accounts, remove or edit content, or cancel orders in our sole discretion.
### 13. **Intellectual Property**
Service and its original content (excluding Content provided by users), features and functionality are and will remain the exclusive property of Build Better, Inc. and its licensors. Service is protected by copyright, trademark, and other laws of the United States. Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of Build Better, Inc.
### 14. **Copyright Policy**
We respect the intellectual property rights of others. It is our policy to respond to any claim that Content posted on Service infringes on the copyright or other intellectual property rights (“**Infringement**”) of any person or entity.
If you are a copyright owner, or authorized on behalf of one, and you believe that the copyrighted work has been copied in a way that constitutes copyright infringement, please submit your claim via email to [legal@buildbetter.app](mailto:legal@buildbetter.app), with the subject line “Copyright Infringement” and include a detailed description of the alleged Infringement as detailed below, under “DMCA Notice and Procedure for Copyright Infringement Claims.”
You may be held accountable for damages (including costs and attorneys’ fees) for misrepresentation or bad-faith claims on the infringement of any Content found on and/or through Service on your copyright.
### 15. **DMCA Notice and Procedure for Copyright Infringement Claims**
You may submit a notification pursuant to the Digital Millennium Copyright Act (DMCA) by providing our Copyright Agent with the following information in writing (see 17 U.S.C 512(c)(3) for further detail):
* an electronic or physical signature of the person authorized to act on behalf of the owner of the copyright’s interest;
* a description of the copyrighted work that you claim has been infringed, including the URL (i.e., web page address) of the location where the copyrighted work exists or a copy of the copyrighted work;
* identification of the URL or other specific location on Service where the material that you claim is infringing is located;
* your address, telephone number, and email address;
* a statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent, or the law;
* a statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or authorized to act on the copyright owner’s behalf.
You can contact our Copyright Agent via email at [legal@buildbetter.app](mailto:legal@buildbetter.app)
### 16. **Error Reporting and Feedback**
You may provide us either directly at [support@buildbetter.app](mailto:support@buildbetter.app) or via third party sites and tools with information and feedback concerning errors, suggestions for improvements, ideas, problems, complaints, and other matters related to our Service (“**Feedback**”). You acknowledge and agree that: (i) you shall not retain, acquire or assert any intellectual property right or other right, title or interest in or to the Feedback; (ii) Company may have development ideas similar to the Feedback; (iii) Feedback does not contain confidential information or proprietary information from you or any third party; and (iv) Company is not under any obligation of confidentiality with respect to the Feedback. In the event the transfer of the ownership to the Feedback is not possible due to applicable mandatory laws, you grant Company and its affiliates an exclusive, transferable, irrevocable, free-of-charge, sub-licensable, unlimited and perpetual right to use (including copy, modify, create derivative works, publish, distribute and commercialize) Feedback in any manner and for any purpose.
The third party sites and tools mentioned above include the following:
**Sentry**\
Sentry is open-source error tracking solution provided by Functional Software Inc. More information is available here:\
[https://sentry.io/privacy/](https://sentry.io/privacy/)
### 17. **Links To Other Web Sites**
Our Service may contain links to third party web sites or services that are not owned or controlled by Build Better, Inc.
Build Better, Inc. has no control over, and assumes no responsibility for the content, privacy policies, or practices of any third party web sites or services. We do not warrant the offerings of any of these entities/individuals or their websites.
YOU ACKNOWLEDGE AND AGREE THAT Build Better, Inc. SHALL NOT BE RESPONSIBLE OR LIABLE, DIRECTLY OR INDIRECTLY, FOR ANY DAMAGE OR LOSS CAUSED OR ALLEGED TO BE CAUSED BY OR IN CONNECTION WITH USE OF OR RELIANCE ON ANY SUCH CONTENT, GOODS OR SERVICES AVAILABLE ON OR THROUGH ANY SUCH THIRD PARTY WEB SITES OR SERVICES.
WE STRONGLY ADVISE YOU TO READ THE TERMS OF SERVICE AND PRIVACY POLICIES OF ANY THIRD PARTY WEB SITES OR SERVICES THAT YOU VISIT.
### 18. **Disclaimer Of Warranty**
THESE SERVICES ARE PROVIDED BY COMPANY ON AN “AS IS” AND “AS AVAILABLE” BASIS. COMPANY MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE OPERATION OF THEIR SERVICES, OR THE INFORMATION, CONTENT OR MATERIALS INCLUDED THEREIN. YOU EXPRESSLY AGREE THAT YOUR USE OF THESE SERVICES, THEIR CONTENT, AND ANY SERVICES OR ITEMS OBTAINED FROM US IS AT YOUR SOLE RISK.
NEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE SERVICES. WITHOUT LIMITING THE FOREGOING, NEITHER COMPANY NOR ANYONE ASSOCIATED WITH COMPANY REPRESENTS OR WARRANTS THAT THE SERVICES, THEIR CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE SERVICES WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT THE Services OR THE Server That Makes It Available Are FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS OR THAT THE Services OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE Services WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.
COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.
THE FOREGOING DOES NOT AFFECT ANY WARRANTIES WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.
### 19. **Limitation Of Liability**
EXCEPT AS PROHIBITED BY LAW, YOU WILL HOLD US AND OUR OFFICERS, DIRECTORS, EMPLOYEES, AND AGENTS HARMLESS FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGE, HOWEVER IT ARISES (INCLUDING ATTORNEYS’ FEES AND ALL RELATED COSTS AND EXPENSES OF LITIGATION AND ARBITRATION, OR AT TRIAL OR ON APPEAL, IF ANY, WHETHER OR NOT LITIGATION OR ARBITRATION IS INSTITUTED), WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, OR ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT, INCLUDING WITHOUT LIMITATION ANY CLAIM FOR PERSONAL INJURY OR PROPERTY DAMAGE, ARISING FROM THIS AGREEMENT AND ANY VIOLATION BY YOU OF ANY FEDERAL, STATE, OR LOCAL LAWS, STATUTES, RULES, OR REGULATIONS, EVEN IF COMPANY HAS BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. EXCEPT AS PROHIBITED BY LAW, IF THERE IS LIABILITY FOUND ON THE PART OF COMPANY, IT WILL BE LIMITED TO THE AMOUNT PAID FOR THE PRODUCTS AND/OR SERVICES, AND UNDER NO CIRCUMSTANCES WILL THERE BE CONSEQUENTIAL OR PUNITIVE DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF PUNITIVE, INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE PRIOR LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. THIS LIMITATION DOES NOT APPLY TO CLAIMS RESULTING FROM OUR GROSS NEGLIGENCE OR WILLFUL MISCONDUCT.
### 20. **Termination**
We may terminate or suspend your account and bar access to Service immediately, without prior notice or liability, under our sole discretion, for any reason whatsoever and without limitation, including but not limited to a breach of Terms.
If you wish to terminate your account, you may simply discontinue using Service.
All provisions of Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.
### 21. **Governing Law**
These Terms shall be governed and construed in accordance with the laws of State of Delaware without regard to its conflict of law provisions.
Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights. If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service and supersede and replace any prior agreements we might have had between us regarding Service.
### 22. **Changes To Service**
We reserve the right to withdraw or amend our Service, and any service or material we provide via Service, in our sole discretion without notice. We will not be liable if for any reason all or any part of Service is unavailable at any time or for any period. From time to time, we may restrict access to some parts of Service, or the entire Service, to users, including registered users.
### 23. **Amendments To Terms**
We may amend Terms at any time by posting the amended terms on this site. It is your responsibility to review these Terms periodically.
Your continued use of the Platform following the posting of revised Terms means that you accept and agree to the changes. You are expected to check this page frequently so you are aware of any changes, as they are binding on you.
By continuing to access or use our Service after any revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, you are no longer authorized to use Service.
### 24. **Waiver And Severability**
No waiver by Company of any term or condition set forth in Terms shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of Company to assert a right or provision under Terms shall not constitute a waiver of such right or provision.
If any provision of Terms is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of Terms will continue in full force and effect.
***
### 25. **Security and Compliance**
We implement industry-standard security measures including TLS encryption for data in transit and AES-256 encryption for data at rest. We undergo annual SOC 2 Type II audits, third-party penetration tests, and continuous security monitoring via a dedicated service (reports available at [https://trust.buildbetter.ai](https://trust.buildbetter.ai)).
In the event of a security incident or data breach, we commit to:
* Notify affected customers and relevant authorities within 72 hours of discovery.
* Provide regular updates until resolution.
* Engage our incident response team to investigate, remediate, and report on root causes.
We engage only subprocessors that adhere to equivalent security standards; a current list of subprocessors and their compliance attestations is available upon request. Customers may audit our controls under a mutually agreed NDA and schedule, and we will provide compliance reports, penetration-test summaries, and certifications.
**Data Residency:**\
For enterprise deployments, we offer custom data residency options in select jurisdictions to comply with GDPR, HIPAA, CCPA, and other regional regulations.
### 26. **Service-Level Agreement (SLA)**
We target **99.9%** service availability, excluding scheduled maintenance windows with at least 48 hours’ notice. If availability falls below this threshold in any calendar month, customers are eligible for service credits as defined in our SLA addendum. To request SLA credits or review our SLA terms, please contact [support@buildbetter.app](mailto:support@buildbetter.app).
### 27. **Change Management and Notifications**
We will provide at least 30 days’ notice for any planned deprecations, breaking changes, or major feature removals in the Service. Critical security patches may be deployed with shorter notice but will be communicated as promptly as possible.
### 28. **Data Processing Addendum**
Our DPA governs how we handle Personal Data. Review it at:\
[https://trust.buildbetter.ai/resources?s=ib6b62opxkoo5zlshrwh8f\&name=international-bb-data-processing-agreement](https://trust.buildbetter.ai/resources?s=ib6b62opxkoo5zlshrwh8f\&name=international-bb-data-processing-agreement)
### 29. **Subprocessor List**
A current list of all subprocessors and their compliance attestations is here:\
[https://trust.buildbetter.ai/subprocessors](https://trust.buildbetter.ai/subprocessors)
### 30. **Business Continuity & Disaster Recovery**
For RTO/RPO targets, fail-over procedures and test cadence, see:\
[https://trust.buildbetter.ai/resources?s=09bepo4j2bh8m7b5ymfnn\&name=business-continuity-and-disaster-recovery-plan](https://trust.buildbetter.ai/resources?s=09bepo4j2bh8m7b5ymfnn\&name=business-continuity-and-disaster-recovery-plan)
### 31. **Data Return & Deletion**
Upon termination or at your request, we will return or securely delete your data per the DPA.
### 32. **Vulnerability Disclosure**
To report security issues responsibly, see:\
[https://trust.buildbetter.ai/security/vulnerability-disclosure](https://trust.buildbetter.ai/security/vulnerability-disclosure)
### 33. **Employee Security Training**
All Build Better staff undergo regular security & privacy training; details:\
[https://trust.buildbetter.ai/trust-center](https://trust.buildbetter.ai/trust-center)
### 34. **Acknowledgement**
BY USING THE SERVICE, YOU ACKNOWLEDGE THAT YOU HAVE READ THESE TERMS AND AGREE TO BE BOUND BY THEM.
### 35. **Contact Us**
Please send your feedback, comments, requests for technical support:
By email: [support@buildbetter.app](mailto:support@buildbetter.app).
If you have questions, concerns, complaints, or would like to exercise your rights, please contact us at:
Build Better, Inc.\
Spencer Shulem\
3790 S El Camino Real #809\
Palo Alto, CA 94403\
[hi@BuildBetter.app](mailto:hi@BuildBetter.app)\
+1-628-267-2887
# Features
Source: https://docs.buildbetter.ai/pages/Local Recorder/features
Detailed guide to all BuildBetter Local Recorder features — meeting recording, dictation, and screen recording in one app
**Beta Software** — The BuildBetter Local Recorder is currently in beta.
# Features
The Local Recorder is three products in one app: a no-bot **meeting recorder**, a global **dictation** tool, and a native **screen recorder**. They share the same library, the same AI engine, and the same local-first privacy guarantees.
No-bot, system-audio meeting capture with live transcription, templated summaries, and AI chat.
Global hotkey-driven voice-to-text that works in any app, with cleanup and a snippets library.
Native ScreenCaptureKit video with system audio, saved alongside meetings and dictation.
***
## Meeting Recorder
### No-Bot Capture
The recorder never joins the call. It captures your microphone and the call's system audio directly via macOS's ScreenCaptureKit framework.
| Source | What It Captures |
| - | - |
| **Microphone** | Your voice |
| **System Audio** | The other participants — from Zoom, Meet, Teams, Slack Huddles, Discord, Webex, or any app playing sound |
Nothing appears in the participant list on the call. Nothing shows in the attendee log.
System audio capture requires the **Screen Recording** permission in macOS Privacy settings.
### Meeting-Aware Auto-Start
The recorder watches for meetings and offers to record when it sees one.
**Basic detection** — no extra permissions:
* Detects running meeting apps
* Monitors microphone activity
* Checks network connections
**Advanced detection** — requires Automation permission:
* Checks browser URLs for meeting links
* More accurate for browser-based meetings
You can set thresholds for when the recorder **prompts** you to record vs. when it **auto-starts** on high-confidence matches. Auto-stop kicks in when the meeting ends, with a configurable grace period.
### Live Transcription
Real-time speech-to-text with speaker identification. Click any line in the transcript to jump to that moment in playback.
Speakers appear in different colors, and you can relabel any speaker after the fact.
### Notes That Enhance Themselves
Take rough notes during the call — the app combines them with the transcript afterward to produce a clean, well-structured summary. Notes are Markdown-formatted and saved as `.md` files alongside each recording.
### Templates
Use a built-in summary template (discovery calls, 1:1s, standups) or author your own. Templates control the sections and prompts the summarizer applies to your recording.
### Catch-Me-Up
Mid-call, ask for a 3-bullet summary of the last 5 minutes. Useful if you joined late or stepped away.
### Chat With the Transcript
Ask questions about a recording after it's finished:
```
"Summarize this meeting in bullet points."
"What action items were discussed?"
"What did [person] say about the timeline?"
"List all the decisions that were made."
"What questions were asked?"
```
Answers run against the full transcript and come back grounded in what was said.
### Relink and Unlink
If the recorder attaches a recording to the wrong calendar event, relink it to the right one — or unlink it entirely and keep it as a standalone recording.
### Organization
* **Folders** — group related recordings
* **Search** — find recordings by title or transcript content
* **Sort and filter** — by date, duration, or name
* **Preview** — see transcript snippets before opening
* **Dedicated pages** — browse Call Recordings, Screen Recordings, Snippets, Favorites, folders, and Archive separately
* **Bulk actions** — select multiple items for faster cleanup and organization
* **Media badges** — see whether a recording is video or audio-only
***
## Recording Library and Playback
Recordings, screen captures, and snippets live in one library, but the app gives each workflow a focused view.
| Area | What You Can Do |
| - | - |
| **Call Recordings** | Review meeting recordings, transcripts, notes, and cloud playback status |
| **Screen Recordings** | Browse captured videos and generate transcripts when retained audio is available |
| **Snippets** | Recover, reuse, and retry dictation clips |
| **Favorites** | Keep important recordings and snippets together |
| **Folders and Archive** | Organize active work and move old items out of the main views |
The bottom playback bar stays available while you move through the app, with play/pause, scrubbing, skip controls, and playback speed. For supported cloud recordings, the app refreshes expired playback links automatically so media remains playable longer.
***
## Dictation
Press a hotkey anywhere on your Mac, speak, and the cleaned-up text lands at your cursor in any app.
### Hotkeys
Three gestures, each configurable:
* **Hold** — dictate while holding; release to paste
* **Tap** — toggle dictation on with one tap, off with another
* **Double-tap** — alternative toggle gesture
You can also press **Esc** to cancel active dictation, even while another app is focused.
### Dictation Bar and Notch UI
Dictation has its own compact UI that shows live transcription while you speak — either a draggable bar or a notch-style overlay — so you can see what you're dictating without a full window stealing focus.
### Cleanup
After you stop dictating, the app can optionally clean the output:
* Remove filler words (um, uh, like)
* Add punctuation and paragraph breaks
* Apply custom cleanup instructions per context (tighter for Slack, looser for Google Docs, preserve jargon)
### Snippets Library
Save dictated clips into a searchable library. Useful for recurring phrases, reusable descriptions, or clips you want to refine and reuse later.
If dictation fails after audio was captured, the clip can be preserved in Snippets so you can retry transcription instead of losing the spoken content.
### Engine Selection and Short Phrases
Choose your preferred dictation engine in Settings, or let the app automatically pick the best available option. Dictation is tuned for short responses like "OK," "No," and "you," so quick replies are less likely to be discarded as silence.
### Auto-Paste
Clean text is pasted at your cursor in whatever app you're in — Slack, Gmail, Notion, Linear, Figma, VS Code, Cursor, Terminal, Messages, Safari, and thousands more. If macOS permissions block auto-paste, the app tells you exactly what to fix.
### Multilingual Support
Pick a dictation model that matches the languages you speak. The app flags English-only models (like Whisper's `.en` variants) when you're trying to use them with non-English speech, and suggests multilingual alternatives.
***
## Screen Recording
### ScreenCaptureKit-Powered
Native macOS screen recording using the same framework as QuickTime and Apple's built-in screen sharing. Low overhead, hardware-encoded video (H.264 or HEVC), clean window/display/region source picker.
**Requires macOS 14 (Sonoma) or later** for the screen recording feature.
### System Audio Included
Speaker audio is captured alongside the video automatically — no separate recording step needed.
### Saved to Your Library
Screen recordings land in the same library as your meetings and dictation clips, so everything is searchable and organized in one place.
Screen recordings can also retain audio for transcript generation later. If automatic transcription is turned off, you can generate or regenerate a transcript from the recording details page after processing finishes.
### Good For
* Quick walkthroughs — hotkey, record, stop, share
* Demos during a meeting (combine with the meeting recorder)
* Bug reports and async updates
No account required, no upload prompt, no watermark.
***
## Mobile Apps and Plaud Import
The iPhone and Android apps bring the recorder workflow to mobile devices and support Plaud device imports in builds that include the Plaud integration.
### Mobile Recording
* Record from the iPhone or Android app and keep recordings in the same BuildBetter library
* Use the transcription options available on your device or BuildBetter cloud transcription when available
* Chat with recordings and generate summaries from the mobile app
* Retranscribe saved recordings when you change transcription providers
### Plaud Device Support
Connect a Plaud recorder from a Plaud-enabled BuildBetter mobile app to browse files and import audio into BuildBetter.
| Capability | What It Does |
| - | - |
| **Device connection** | Pair and manage the Plaud device from the mobile settings flow |
| **Wi-Fi import** | Transfer Plaud recordings faster when Wi-Fi import is available |
| **Workspace selection** | Automatically selects the active workspace when possible, with setup guidance when sign-in is required |
| **Import labeling** | Marks imported recordings as Plaud-originated and keeps timestamps accurate for sorting |
| **Reliable long imports** | Long Wi-Fi transfers continue while progress is being made instead of stopping at a fixed overall time limit |
| **Clearer setup errors** | Permission, resource, and app-key issues are surfaced directly instead of appearing as a ready state |
| **Reset controls** | Clears stale connection state when you disable or switch Plaud devices |
Plaud import uses the mobile app's signed-in BuildBetter workspace. If you switch workspaces, refresh the Plaud setup before importing more files.
Follow the customer setup guide to connect a device, start recordings, import files, and configure automation.
***
## AI Engine: Pick Your Providers
The Local Recorder doesn't lock you into one model. You can pick different providers for each role — **transcription**, **chat**, and **cleanup** — from a mix of local and cloud options.
### Local Providers
| Provider | Roles | Notes |
| - | - | - |
| **Apple Intelligence** | Transcription, chat, cleanup | Native macOS 26+. Fully on-device. |
| **whisper.cpp** | Transcription | Drop in any Whisper-compatible `.bin` model |
| **llama.cpp** | Chat, cleanup | Drop in any GGUF model (Llama, Qwen, Mistral, Phi, Gemma, DeepSeek, etc.) |
| **Parakeet** | Transcription | NVIDIA's fast on-device transcription engine |
| **Ollama** | Chat, cleanup | Point at a local Ollama server for any pulled model |
| **LM Studio** | Chat, cleanup | Point at LM Studio's OpenAI-compatible local server |
### Cloud Providers (Bring Your Own Keys)
| Provider | Roles | Notes |
| - | - | - |
| **OpenAI** | Chat, cleanup | GPT-4.1, GPT-5 via your API key |
| **Anthropic** | Chat, cleanup | Claude Sonnet / Opus via your API key |
| **Groq** | Transcription, chat, cleanup | Ultra-fast inference |
| **Deepgram** | Transcription | Low-latency, strong multi-speaker accuracy |
| **BuildBetter** | Transcription, chat, cleanup | First-party cloud, optional sign-in |
When you bring your own cloud key, traffic goes **Mac → provider directly**. BuildBetter is never in the path for BYOK traffic.
***
## Privacy & Data
### Local-First by Default
Out of the box, nothing leaves your Mac:
* No account required
* No telemetry
* No background sync
* No shadow uploads
You can verify there are no outbound requests with a tool like Little Snitch when using local models only.
### Flexible Storage
* Pick the folder where recordings are saved (defaults to `~/Documents/BuildBetter Recordings/`)
* Set per-folder defaults
* Optional compression to save space
* Delete recordings anytime — they're regular files on your disk
### Hide From Screenshots
The recorder window can be marked so it appears black in screenshots and screen shares — useful when you're recording a demo that shouldn't include the recorder UI.
### Optional BuildBetter Sync
If you want team features, you can optionally sync recordings to BuildBetter:
* Team-wide search across everyone's recordings
* Shared summaries and notes
* Role-based access controls
* Integrations: Slack, Linear, Notion
* Cloud transcription included
The BuildBetter cloud path is SOC 2 Type II audited, HIPAA-ready with a BAA available, and GDPR/CCPA compliant.
***
## Window Modes
Tucks into the MacBook notch area. Minimal visual footprint, expands on hover or when recording.
Compact draggable window you can park anywhere on screen. Shows live transcript and quick controls.
Dedicated app window with transcript, notes, and AI chat all visible at once.
### Hide Until Meeting
Enable this to keep the recorder completely hidden until a meeting is detected. The app runs silently in the background and appears automatically when needed.
***
## Notion Export (Beta)
With the BYO Keys setup, you can export notes and summaries to Notion. Currently in beta.
***
## Data Storage
All data is stored locally on your Mac:
```
~/Documents/BuildBetter Recordings/
├── [Recording Name]/
│ ├── audio.m4a # Audio file
│ ├── transcript.txt # Plain text transcript
│ └── notes.md # Your notes
└── ...
```
Recording metadata is stored in a local SQLite database for fast searching. Your recordings are regular files — back them up with Time Machine, iCloud Drive, or any backup solution.
***
## Themes
* **Dark Mode** — easy on the eyes, matches macOS dark appearance
* **Light Mode** — bright interface for well-lit environments
* **System** — follows your macOS appearance setting
***
## Keyboard Shortcuts
| Action | Shortcut |
| - | - |
| Start / Stop Recording | Configurable in Settings |
| Dictation hotkey | Configurable (hold / tap / double-tap) |
| Cancel Dictation | Esc |
| Global Search | ⌘K / Ctrl+K |
| Open Dashboard | Click dock icon |
| Show / Hide Floating Bar | Click menu bar icon |
# Getting Started
Source: https://docs.buildbetter.ai/pages/Local Recorder/getting-started
Download, install, and set up the BuildBetter Local Recorder
**Beta Software** - The BuildBetter Local Recorder is currently in beta.
# Getting Started
Get up and running with the BuildBetter Local Recorder in just a few minutes.
## Download & Install
Download the latest version of BuildBetter Local Recorder:
BuildBetter.ai Recorder (Apple Silicon)
The app is notarized by Apple and signed with a Developer ID certificate.
1. Open the downloaded `.dmg` file
2. Drag **BuildBetter.ai Recorder** to your **Applications** folder
3. Eject the DMG
4. Open the app from Applications or Spotlight
On first launch, the setup flow asks what you want to use the recorder for — meetings, dictation, screen recording, or a mix — and then shows only the most relevant setup steps.
You can sign in to connect a BuildBetter workspace, or continue without an account and use local recording features first. During setup, you can also test live transcription before completing setup; test audio is not saved as a normal recording.
macOS will ask for permissions based on the features you enable. The main permissions are:
| Permission | Why It's Needed |
| - | - |
| **Microphone** | Record your voice |
| **Screen Recording** | Capture system audio (what others say on calls) |
| **Accessibility** (optional) | Smart meeting detection |
| **Automation** (optional) | Browser-based meeting link detection |
If you skip permissions, you can grant them later in **System Settings → Privacy & Security**.
Setup helps you choose a transcription engine, language, dictation hotkey, AI summary behavior, and any local models you want to use.
**Transcription**
* Pick a local option for privacy-first use
* Pick a cloud option when you are signed in or using a supported provider
* Download local models during setup, or later from Settings
**AI Chat and Cleanup**
* Choose whether to enable summaries, chat, and dictation cleanup
* Download local LLMs later if you want fully local AI features
* Let the app fall back to an available local option when a cloud option is not available
Pick how you want the recorder to appear:
| Style | Description |
| - | - |
| **Floating Bar** | Draggable window, place anywhere on screen |
| **Notch Mode** | Tucks into the MacBook notch area |
You can also enable **"Hide until meeting"** to keep the app hidden until a meeting is detected.
The final review screen lets you confirm and change your main setup choices before finishing.
## First Recording
Once setup is complete, you're ready to record:
Click the **microphone button** in the floating bar, or use the keyboard shortcut.
The button turns red when recording is active.
As you speak, the transcript appears in real-time. You can open the full transcript window for a better view.
Click the **notes icon** to open the notes panel. Your notes are timestamped and saved automatically.
Click the microphone button again to stop. Your recording is automatically saved.
Open the **Dashboard** (click the dock icon) to see all your recordings. Dedicated pages for Call Recordings, Screen Recordings, Snippets, Favorites, folders, and Archive make it easier to browse and filter. Click any recording to:
* Play back the audio
* Read the transcript
* Review your notes
* Chat with AI about the content
## Quick Tips
The app starts automatically when you log in. Disable this in Settings if you prefer.
Right-click the menu bar icon for quick actions. Left-click shows the dropdown menu.
Click the dock icon to open the Dashboard with all your recordings.
Enable auto-recording to automatically start when meetings are detected.
Use ⌘K / Ctrl+K to search recordings, notes, transcripts, snippets, and settings.
Rerun onboarding from Settings if you want to change your setup path later.
## Where Are My Recordings?
Recordings are stored locally in your Documents folder:
```
~/Documents/BuildBetter Recordings/
├── 2024-01-15_Meeting_with_Team/
│ ├── audio.m4a
│ ├── transcript.txt
│ └── notes.md
└── ...
```
You can access recordings through:
* The **Dashboard** in the app
* Dedicated pages for call recordings, screen recordings, snippets, favorites, folders, and archive
* Finder at the path above
* Spotlight search
## Next Steps
Learn about AI chat, meeting detection, and more
Customize audio devices, themes, and behavior
# Local Recorder Overview
Source: https://docs.buildbetter.ai/pages/Local Recorder/overview
Privacy-first meeting recording, dictation, and screen recording for macOS
**Beta Software** - The BuildBetter Local Recorder is currently in beta. We're actively improving it based on user feedback. Use the chat widget in the bottom-right corner to report issues or request features.
Get the latest version for Mac
Join the TestFlight beta
# BuildBetter Local Recorder
The BuildBetter Local Recorder is a **privacy-first desktop application** for macOS that combines three tools in one app — a no-bot meeting recorder, a global dictation tool, and a native screen recorder. It works locally by default, with optional BuildBetter cloud features for team search, cloud playback, and shared workflows.
All processing happens on your Mac. Your audio never leaves your computer unless you opt in.
No cloud uploads, no telemetry, no account required.
Full-featured with no subscription or payment needed.
## Three Products in One App
No-bot, system-audio meeting capture with live transcription, templated summaries, Catch-me-up, and AI chat with your recordings.
Global hotkey-driven voice-to-text that works in any app, with cleanup, a snippets library, and multilingual support.
Native ScreenCaptureKit video with system audio, saved alongside meetings and dictation in one library.
## Key Features
Automatically detects when you join meetings on Zoom, Google Meet, Microsoft Teams, Slack Huddles, Discord, Webex, and more. Prompts you to record — or auto-starts on high-confidence matches.
Real-time speech-to-text with color-coded speaker identification. Click any line in the transcript to jump to that moment, or relabel speakers after the fact.
Built-in summary templates (discovery calls, 1:1s, standups) plus custom templates. Ask for a 3-bullet summary of the last 5 minutes mid-call when you step away or join late.
Choose different providers for transcription, chat, and cleanup — locally with Apple Intelligence, Whisper, Parakeet, Ollama, or LM Studio, or via BYO keys for OpenAI, Anthropic, Groq, or Deepgram.
Ask questions about any recording — summaries, action items, decisions, quotes — grounded in the transcript.
Press a hotkey anywhere on your Mac and speak. Cleaned-up text lands at your cursor in any app. Save reusable snippets, retry failed dictation when audio was captured, and apply custom cleanup instructions per context.
ScreenCaptureKit-powered screen recording with hardware-encoded video and speaker audio included. Saved to your library with your meetings and dictation.
First-run setup walks through goals, permissions, transcription choices, appearance, and a final review step. Global search and Settings search help you jump back to recordings, snippets, notes, transcripts, and preferences later.
Dedicated pages for call recordings, screen recordings, snippets, favorites, folders, and archive include list/table views, filters, sorting, bulk actions, media badges, and a persistent playback bar.
Take timestamped rough notes during recordings; the app combines them with the transcript afterward into a clean Markdown summary.
Optionally connect to BuildBetter for team-wide search, shared summaries, role-based access, and Slack / Linear / Notion integrations. SOC 2 Type II and HIPAA-ready.
## System Requirements
macOS 12 (Monterey) or later. macOS 14 (Sonoma) required for screen recording. macOS 26+ required for Apple Intelligence.
Apple Silicon (M-series) recommended for best AI performance
\~2GB for app + AI models
8GB minimum, 16GB recommended for AI features
### Other Platforms
* **iOS** — beta available via TestFlight with on-device transcription, local AI chat, phone call capture, and Plaud device import.
* **Android** — coming soon (waitlist).
### Plaud on iPhone
The iOS beta can connect to a Plaud recorder so you can browse device files, import audio into your BuildBetter recordings library, and manage the connection from the iPhone app.
* Import over standard transfer or Wi-Fi when available
* Use automatic workspace selection when you are signed in to BuildBetter
* See Plaud-origin labels and accurate recording timestamps after import
* Keep long Wi-Fi transfers running as long as the device is making progress
* Reset or disable the Plaud connection from iOS settings when you switch devices or workspaces
## How It Works
```mermaid theme={null}
flowchart LR
A[Microphone] --> B[Local Recorder]
C[System Audio] --> B
B --> D[Selected transcription engine]
D --> E[Live Transcript]
B --> F[Local Storage]
E --> G[Selected AI engine]
G --> H[AI Chat & Summaries]
```
1. **Capture** - Records both your microphone and system audio (what others say on calls)
2. **Transcribe** - Your selected local or cloud transcription engine converts speech to text
3. **Store** - Everything saved locally in your Documents folder
4. **Analyze** - Ask the selected AI engine questions about your recordings
## Privacy Commitment
Your data stays on your device. We don't collect telemetry, require sign-in, or upload anything to servers. The only exception is if you explicitly choose to sync with BuildBetter cloud services.
| What We Don't Do | What You Control |
| - | - |
| No audio uploads | Choose what to record |
| No transcript uploads | Delete recordings anytime |
| No usage tracking | Optional cloud sync |
| No account required | Export your data freely |
## Next Steps
Download, install, and set up the recorder
Learn about all the features in detail
Customize the app to your preferences
Common issues and how to fix them
# Connect a Plaud Device
Source: https://docs.buildbetter.ai/pages/Local Recorder/plaud-integration
Connect a Plaud recorder to the BuildBetter mobile app, record on the device, and import audio into your workspace
# Connect a Plaud Device
Use the BuildBetter mobile app to connect a Plaud recorder, start and stop hardware recordings, and import completed audio into your BuildBetter library.
BuildBetter has iPhone and Android apps. Plaud is available on iPhone and in Plaud-enabled Android builds. You do not need a Plaud API key, client secret, or access token. BuildBetter handles device authorization after you sign in and select a workspace.
## Before You Start
Make sure you have:
* The latest BuildBetter app installed on a physical iPhone or Android phone
* A BuildBetter account with access to the workspace where recordings should be uploaded
* A charged Plaud device nearby
* Bluetooth turned on and allowed for BuildBetter in iOS or Android Settings
Accept any Bluetooth, Nearby Devices, location, or Wi-Fi permission prompts shown during setup. The exact permissions depend on your phone and operating-system version.
If the Plaud device is connected to the official Plaud app, disconnect it there before pairing it with BuildBetter. A Plaud device can only maintain one active app connection at a time.
## Enable and Connect Plaud
Open **Settings** in the BuildBetter mobile app, sign in, and select the workspace that should receive Plaud uploads.
Plaud cannot be enabled until both sign-in and workspace selection are complete.
In **Settings**, find **Plaud** and turn **Enable Plaud** on.
Tap **Plaud Devices**, then tap **Scan**. Keep the Plaud close to the phone while BuildBetter searches for it.
Find your Plaud in the **Pairing** list and tap **Connect**. Wait until the device card says **Connected**.
An enabled integration is not the same as a connected device. The status is green only when BuildBetter has completed the secure connection and the Plaud is ready.
## Record on Plaud
You can start a hardware recording in either of these ways:
* Open **Plaud Devices** and tap **Record On Plaud**. Return to the same screen and tap **Stop Device** when you are finished.
* Tap the main record button while a Plaud is connected. BuildBetter asks whether you want to record on **this iPhone** or **this Android device**, or on the connected **Plaud device**.
A Plaud recording does not stream into the BuildBetter library while it is still in progress. Stop the recording, sync the device list, and import the completed file.
## Import Recordings
Open **Plaud Devices** and tap **Sync List**. Completed recordings appear under **Device Recordings**.
Use one of the available buttons:
| Button | Transfer method | Best for |
| - | - | - |
| **Import** | Bluetooth | Shorter files or a reliable fallback |
| **Fast** | Wi-Fi Fast Transfer | Larger files that would take longer over Bluetooth |
Fast Transfer may temporarily change the phone's Wi-Fi connection while it connects directly to the Plaud.
Keep BuildBetter open, the phone awake, and the Plaud nearby. The device page shows the transfer stage and percentage.
When the import is complete, the file changes to **Open**. Tap it to open the recording, or find it later in **Library**.
BuildBetter marks the recording as Plaud-originated and keeps the original recording time for sorting.
## Optional Automation
The Plaud settings include three optional controls. They are off by default.
| Setting | What It Does |
| - | - |
| **AutoSync** | Imports recordings that are not already in your Library while BuildBetter is open and the Plaud is connected |
| **Auto-transcribe imports** | Starts completed-file transcription after a Plaud recording is imported |
| **Auto-upload imports** | Uploads the original audio to the selected BuildBetter workspace after import |
Auto-upload requires an active BuildBetter session and a selected workspace. If transcription or upload cannot run, the original imported audio remains in the local Library.
## Troubleshooting
### The Device Does Not Appear
1. Confirm Bluetooth is on and BuildBetter has Bluetooth or Nearby Devices permission.
2. Move the Plaud closer to the phone and make sure it has enough battery.
3. Disconnect the device from the official Plaud app on any nearby phone.
4. Stop the scan, tap the refresh button, and scan again.
### Pairing Does Not Finish
If BuildBetter finds the device but does not reach **Connected**, disconnect it from the official Plaud app, restart the Plaud if needed, and retry the connection. Do not start **Sync List**, recording, or an import until the device card says **Connected**.
### Sync List Says the Device Is Not Connected
The integration may be enabled while the secure device connection is not ready. Open **Plaud Devices**, reconnect the device, and wait for the green **Connected** status before tapping **Sync List**.
### Fast Transfer Stalls or Fails
* Keep BuildBetter in the foreground and keep the Plaud close to the phone.
* Wait for any current transfer to finish before starting another.
* Retry **Fast** once after reconnecting the device.
* Use **Import** to transfer over Bluetooth if Wi-Fi Fast Transfer remains unavailable.
### BuildBetter Asks for Setup or Authorization
You should never enter a Plaud client secret or user access token in the app. Instead:
1. Confirm you are signed in to BuildBetter.
2. Confirm the correct workspace is selected.
3. Turn **Enable Plaud** off and back on.
4. Reopen **Plaud Devices** and reconnect the recorder.
If you changed workspaces, re-enable Plaud after selecting the new workspace so future uploads go to the correct place.
### An Imported Recording Was Not Transcribed or Uploaded
Open **Settings → Plaud** and check **Auto-transcribe imports** and **Auto-upload imports**. Also confirm that your BuildBetter session is active and the selected workspace can process new recordings. You can still open, play, or manually upload the original audio from the local Library.
If **Plaud** does not appear in Settings, update the BuildBetter mobile app. If it is still missing, contact your BuildBetter representative to confirm that your iPhone or Android build includes Plaud support.
# Settings Reference
Source: https://docs.buildbetter.ai/pages/Local Recorder/settings
Complete guide to all BuildBetter Local Recorder settings
**Beta Software** - The BuildBetter Local Recorder is currently in beta.
# Settings Reference
Access Settings from the Dashboard by clicking the **gear icon** in the sidebar, from the menu bar dropdown, or by searching with **⌘K / Ctrl+K**.
Settings open as an integrated in-app page with sidebar navigation and built-in search. Search results can take you directly to the relevant setting, which is useful when you need to adjust permissions, meeting detection, dictation, AI providers, or appearance without browsing every section.
## General Settings
### Audio Devices
The app uses your system defaults automatically. Only change these if you have multiple audio devices and need to select a specific one.
| Setting | Description |
| - | - |
| **Microphone** | Select which microphone to use for recording |
| **System Audio** | Select which audio output to capture |
**Use System Default**: Select this option to always use whatever device macOS has set as default. This is recommended for most users.
If you change audio devices (e.g., plug in a USB mic), the app will use the new system default automatically if "Use System Default" is selected.
### Recording Preferences
| Setting | Description | Default |
| - | - | - |
| **Auto-transcribe recordings** | Automatically transcribe when recording stops | On |
| **Launch at login** | Start the app when you log into macOS | On |
| **Offline mode** | Work without network connection | On |
| **Auto-open notes on recording** | Open the notes panel when you start recording | Off |
| **Retain audio for transcripts** | Keep the audio needed to generate or regenerate transcripts later | On |
***
## Meeting Detection
### Basic Settings
| Setting | Description | Default |
| - | - | - |
| **Enable meeting detection** | Detect meetings using mic, apps, and network | On |
| **Advanced detection** | Also check browser URLs (requires Automation permission) | Off |
| **Auto-record on meeting** | Automatically start/stop recording | On |
### Detection Sensitivity
Controls when the app shows the "Record this meeting?" prompt.
| Level | Threshold | Best For |
| - | - | - |
| **Low** | 40% confidence | Catching more potential meetings |
| **Medium** | 60% confidence | Balanced approach |
| **High** | 85% confidence | Fewer false positives (Recommended) |
| **Very High** | 95% confidence | Only obvious meetings |
### Auto-Record Threshold
Controls when automatic recording starts (if auto-record is enabled).
| Level | Threshold | Behavior |
| - | - | - |
| **Medium** | 60% | More aggressive auto-recording |
| **High** | 85% | Balanced (Recommended) |
| **Very High** | 95% | Only very confident detections |
### Auto-Stop Settings
| Setting | Description | Default |
| - | - | - |
| **Auto-stop when meeting ends** | Automatically stop recording when the meeting ends | Off |
| **Grace period** | Wait time before stopping (prevents false stops) | 30 seconds |
### Calendar Access
Calendar-based meeting detection can be connected or disconnected from inside the app. Disconnecting calendar access fully stops calendar reading and calendar-based meeting detection until you reconnect.
### Hide Until Meeting
| Setting | Description | Default |
| - | - | - |
| **Hide until meeting** | Keep the floating bar hidden until a meeting is detected | Off |
When enabled, the recorder runs silently in the background and only appears when it detects a meeting.
***
## Appearance
### Theme
| Option | Description |
| - | - |
| **Dark** | Dark background, light text |
| **Light** | Light background, dark text |
### Window Style
| Style | Description |
| - | - |
| **Floating Bar** | Draggable window that can be placed anywhere on screen |
| **Notch Mode** | Compact mode that tucks into the MacBook notch area |
***
## Dictation
### Hotkey Behavior
| Setting | Description |
| - | - |
| **Hold to dictate** | Dictate while the hotkey is held, then paste when released |
| **Tap to toggle** | Start dictation with one press and stop with another |
| **Double-tap to toggle** | Use a double-tap gesture as the toggle |
| **Esc to cancel** | Cancel active dictation without pasting text |
### Dictation Engine
Choose a specific dictation engine or let the app automatically select the best available option. Engine choices can include local transcription for privacy-first use and cloud transcription when you are signed in or have configured a supported provider.
### Cleanup and Snippets
| Setting | Description |
| - | - |
| **Cleanup dictated text** | Add punctuation, remove filler words, and format dictated text before paste |
| **Save failed dictation audio** | Preserve captured audio in Snippets when transcription fails so you can retry |
| **Snippets library** | Store reusable dictated clips for later search, retry, or reuse |
***
## AI Models
### Transcription and Dictation
Manage speech-to-text providers and local models:
| Action | Description |
| - | - |
| **Download** | Download additional local transcription models |
| **Set Active** | Choose which model or provider to use for transcription |
| **Delete** | Remove downloaded models to free space |
| **Automatic Selection** | Let the app pick an available local or cloud engine based on your setup |
**Available Models:**
| Model | Size | Description |
| - | - | - |
| Base English | 140MB | Fast, accurate for English |
| Small | 460MB | Multi-language support |
| Medium | 1.5GB | Higher accuracy |
### AI Chat (LLM)
Manage local language models:
| Action | Description |
| - | - |
| **Download** | Download LLM models for AI chat |
| **Enable/Disable** | Turn AI chat feature on or off |
**Available Models:**
| Model | Size | Description |
| - | - | - |
| Llama 3.2 3B | 2GB | Recommended - good balance |
| Llama 3.2 1B | 700MB | Faster, less capable |
If a selected cloud option is unavailable because you are signed out or no workspace is selected, the app can fall back to an available local option and show a clearer status message.
***
## Recording Library and Playback
| Setting or Area | Description |
| - | - |
| **Call Recordings** | Manage meeting recordings and cloud playback availability |
| **Screen Recordings** | Manage captured videos and transcript generation |
| **Snippets** | Review dictated clips and retry failed dictation when audio was captured |
| **Favorites** | Keep important recordings and snippets in one place |
| **Folders** | Organize recordings by project, customer, or workflow |
| **Archive** | Move older items out of active views without deleting them |
Supported cloud recordings can be played in the app. If a playback link expires, the recorder refreshes it automatically when possible.
***
## Privacy & Security
### Content Protection
| Setting | Description | Default |
| - | - | - |
| **Hide from screenshots** | Prevent the app from appearing in screenshots and screen recordings | On |
When enabled, the recorder window appears black in screenshots and screen shares.
### Data Location
View where your recordings are stored:
```
~/Documents/BuildBetter Recordings/
```
***
## About
### Version Information
View current app version and check for updates.
| Action | Description |
| - | - |
| **Check for Updates** | Look for new versions |
| **Current Version** | Shows installed version number |
The update button appears only when a newer version is available.
### Support Links
* **Documentation**: Link to these docs
* **Report a Bug**: Submit issues on GitHub
* **Request a Feature**: Suggest improvements
***
## Permissions Reference
The app may request these macOS permissions:
| Permission | Location in System Settings | Required? |
| - | - | - |
| **Microphone** | Privacy & Security → Microphone | Yes |
| **Screen Recording** | Privacy & Security → Screen Recording | Yes (for system audio) |
| **Accessibility** | Privacy & Security → Accessibility | Optional (for meeting detection) |
| **Automation** | Privacy & Security → Automation | Optional (for browser URL detection) |
### Granting Permissions
1. Open **System Settings** (or System Preferences on older macOS)
2. Go to **Privacy & Security**
3. Select the permission type
4. Enable the toggle for **BuildBetter.ai Recorder**
After granting Screen Recording permission, you may need to restart the app for changes to take effect.
***
## Resetting Settings
To reset all settings to defaults:
1. Quit the app completely
2. Delete the preferences file:
```bash theme={null}
rm -rf ~/Library/Application\ Support/com.buildbetter.recorder/
```
3. Restart the app
This will reset all settings but will **not** delete your recordings.
# Troubleshooting & FAQ
Source: https://docs.buildbetter.ai/pages/Local Recorder/troubleshooting
Common issues, solutions, and frequently asked questions
**Beta Software** - The BuildBetter Local Recorder is currently in beta. [Report issues on GitHub](https://github.com/buildbetter-app/bb-recorder/issues).
# Troubleshooting & FAQ
## Common Issues
### No Audio Being Recorded
**Symptoms:** Recording shows no audio from your microphone.
**Solutions:**
1. Check that Microphone permission is granted:
* Open **System Settings → Privacy & Security → Microphone**
* Ensure **BuildBetter.ai Recorder** is enabled
2. Verify the correct microphone is selected in Settings
3. Test your microphone in another app (e.g., Voice Memos)
4. Try selecting "Use System Default" in audio device settings
**Symptoms:** You can hear yourself but not others on the call.
**Solutions:**
1. Check that Screen Recording permission is granted:
* Open **System Settings → Privacy & Security → Screen Recording**
* Ensure **BuildBetter.ai Recorder** is enabled
* **Restart the app** after granting this permission
2. Make sure the call audio is playing through your selected output device
3. Some apps (like FaceTime) may block audio capture for privacy
**Symptoms:** Changed audio device, but it reverts after restart.
**Solutions:**
1. Update to version 0.1.28 or later (this was fixed)
2. Select "Use System Default" to always use the OS default
3. If selecting a specific device, make sure that device is still connected
### Transcription Issues
**Symptoms:** Recording works but no transcript shows.
**Solutions:**
1. Ensure a Whisper model is downloaded (check Settings → AI Models)
2. Verify "Auto-transcribe recordings" is enabled in Settings
3. Check that you have enough disk space (\~500MB free)
4. Try downloading a different Whisper model
**Symptoms:** Many errors in the transcript.
**Solutions:**
1. Try a larger Whisper model (Small or Medium) for better accuracy
2. Ensure good microphone quality and positioning
3. Reduce background noise
4. Note: Whisper works best with clear English speech
**Symptoms:** Long delay before text appears.
**Solutions:**
1. Use the Base English model for fastest performance
2. On Intel Macs, transcription will be slower than Apple Silicon
3. Close other resource-intensive apps
4. Ensure your Mac isn't in low-power mode
### AI Chat Issues
**Symptoms:** Can't ask questions about recordings.
**Solutions:**
1. Download an LLM model in Settings → AI Models
2. The download is large (\~2GB) - ensure stable internet
3. Check that LLM is enabled in Settings
**Symptoms:** Long wait time for AI responses.
**Solutions:**
1. Use the smaller Llama 3.2 1B model for faster responses
2. Apple Silicon Macs are significantly faster than Intel
3. Close other apps to free up memory
4. Shorter transcripts = faster responses
**Symptoms:** AI responses aren't helpful or accurate.
**Solutions:**
1. Be specific in your questions
2. For long recordings, ask about specific topics
3. The local LLM is less capable than cloud AI - keep expectations reasonable
4. Try rephrasing your question
### App Issues
**Symptoms:** App crashes on launch or won't start.
**Solutions:**
1. Check macOS version (requires 12.0 Monterey or later)
2. Try deleting preferences:
```bash theme={null}
rm -rf ~/Library/Application\ Support/com.buildbetter.recorder/
```
3. Re-download and reinstall the app
4. Check Console.app for crash logs
**Symptoms:** App is running but you can't see it.
**Solutions:**
1. Check if "Hide until meeting" is enabled - disable it in the menu bar dropdown
2. Click the dock icon to open the Dashboard
3. Right-click the menu bar icon and select "Show Recorder"
4. The floating bar might be off-screen - try Notch Mode to reset position
**Symptoms:** Mac running hot or slow during recording.
**Solutions:**
1. Use the Base English Whisper model (smallest/fastest)
2. Close the AI Chat when not using it
3. Disable live transcription if not needed
4. Apple Silicon Macs are much more efficient than Intel
### Meeting Detection Issues
**Symptoms:** App doesn't recognize when you're in a meeting.
**Solutions:**
1. Enable "Advanced detection" in Settings (requires Automation permission)
2. Grant Automation permission in System Settings
3. Increase detection sensitivity (try Medium or Low)
4. Some meeting apps may not be supported yet
**Symptoms:** App thinks you're in a meeting when you're not.
**Solutions:**
1. Increase detection sensitivity to High or Very High
2. Disable "Auto-record on meeting" and use manual recording
3. Adjust the auto-record threshold to Very High
***
## Frequently Asked Questions
### General
**Yes.** All processing happens locally on your Mac:
* Audio is never uploaded to any server
* Transcription runs locally via Whisper
* AI chat uses a local LLM
* No analytics or telemetry is collected
The only exception is if you explicitly enable BuildBetter cloud sync.
**Yes.** Once you've downloaded the AI models, the app works completely offline. No internet connection is required for recording, transcription, or AI chat.
**Yes.** The Local Recorder is completely free with no limitations. Optional BuildBetter cloud features require a subscription.
**Yes**, but performance is significantly better on Apple Silicon (M1/M2/M3). Intel Macs will have slower transcription and AI responses.
**No.** macOS requires Screen Recording permission to capture audio from other apps. This is a security feature of macOS.
### Recording
There's no built-in limit. Recording length is only limited by your available disk space. A typical meeting uses about 1MB per minute.
Recordings are saved as M4A (AAC) files, which offer good quality with efficient compression. They can be played in any media player.
The app records your selected microphone and system audio together. It doesn't currently support multiple separate microphones.
**Yes.** You can disable "Auto-transcribe recordings" in Settings. You'll still have the audio file.
### AI Features
* **Transcription**: OpenAI Whisper (running locally)
* **AI Chat**: Meta Llama 3.2 (running locally)
Both models run entirely on your Mac with no cloud processing.
* Whisper Base English: \~140MB
* Whisper Small: \~460MB
* Llama 3.2 3B: \~2GB
* Llama 3.2 1B: \~700MB
You can delete models you're not using to free space.
Not currently. The app uses specific optimized versions of Whisper and Llama.
### Privacy & Security
**No.** The Screen Recording permission is only used to capture system audio. The app never captures video or screenshots.
Recordings are stored as regular files on your Mac. They inherit your Mac's FileVault encryption if enabled. The app doesn't add additional encryption.
**Yes.** Delete recordings from the Dashboard, or manually delete the folder:
```bash theme={null}
rm -rf ~/Documents/BuildBetter\ Recordings/
```
***
## Getting Help
### Report a Bug
Found a bug? Please report it on GitHub:
Open a new issue on GitHub
Include:
* macOS version
* App version (found in Settings → About)
* Steps to reproduce the issue
* Any error messages
### Request a Feature
Have an idea for improvement?
Submit a feature request
### Contact Support
For account or billing questions related to BuildBetter cloud services:
[support@buildbetter.ai](mailto:support@buildbetter.ai)
# Agent Sessions
Source: https://docs.buildbetter.ai/pages/ZeroShot/agent-sessions
What gets captured, where it's stored, and how to resume on any machine.
# Agent Sessions
A **session** is one continuous conversation with a coding agent: every message, every file edit, every tool call, plus the branch and commit it produced. The CLI captures sessions in the background — you don't `bb start` anything — and lets you resume them later, on any machine, by anyone on your team with access to the repo.
This is what makes `bb agent-sessions resume` feel like time travel.
## How capture works
The moment `bb` is installed, it watches the on-disk session log of every supported coding agent:
| Agent | Source it tails |
| - | - |
| Claude Code | `~/.claude/projects//sessions/*.jsonl` |
| Codex CLI | `~/.codex/sessions/*.jsonl` |
| Cursor | Cursor's local SQLite + workspaceStorage logs |
| Copilot CLI | `~/.config/github-copilot/cli/sessions/` |
| Gemini CLI | `~/.gemini/sessions/` |
| Windsurf | Windsurf workspace storage |
| Amazon Q | `~/.aws/q/sessions/` |
Whenever an agent writes to its log, `bb` indexes the new turns, attaches the current `git` state (repo, branch, HEAD commit, dirty paths), and writes a normalized session record to `~/.buildbetter/sessions/`. If you're signed in (`bb login`), the record syncs to your free BuildBetter workspace within a few seconds.
Capture is passive. There's no daemon to start, nothing to remember, no flag to set on the agent. Install the CLI once and every session from then on is captured.
## Where sessions are stored
```
~/.buildbetter/
├── bin/bb
├── config.toml
├── sessions/
│ ├── index.db # SQLite — fast lookup by repo/branch/commit
│ ├── 2026/05/07/
│ │ ├── ee7f3a-codex.session.json # one file per session
│ │ └── 1f2c8d-claude.session.json
│ └── pending/ # awaiting sync to the cloud
└── logs/bb.log
```
Each `.session.json` is a self-contained record:
```json theme={null}
{
"id": "ee7f3a",
"agent": "codex",
"repo": "buildbetter-app/bbapp",
"branch": "codex/llm-data-source",
"commit": "9f3a1c2",
"author": "spencer@buildbetter.app",
"started_at": "2026-05-07T10:14:33Z",
"ended_at": "2026-05-07T12:08:51Z",
"messages": 247,
"file_edits": 12,
"tool_calls": 38,
"summary": "Ingest LLM chat history as a new data source...",
"open_questions": [
"Should agent_logs be its own model or stay on conversation?"
],
"linked_pr": 3308
}
```
The full transcript lives next to the metadata (or in the cloud, depending on size). Source code is **not** copied — `bb` only stores the file paths and diffs the agent touched.
## Resuming a session
The most common call:
```bash theme={null}
bb agent-sessions resume
```
The CLI lists sessions tied to the current branch (yours and your team's), most recent first, and hydrates the chosen one into your active agent:
```
? Resume which session?
❯ codex/llm-data-source · spencer · 2h ago · 247 msgs
bb-recorder-pass-through · nikhil · 3d ago · 89 msgs
websocket-rpc-stream · spencer · 6d ago · 312 msgs
✓ Hydrating session ee7f3a — 247 messages, 12 file edits
Codex › Picking up Spencer's exec plan for LLM ingestion.
Last open question was the conversation/agent_logs split.
> _
```
What "hydrate" actually does:
1. Loads the prior conversation into the agent's context window (compacted if it's long)
2. Replays the file edits as a virtual diff so the agent knows what it changed
3. Surfaces the **open questions** the prior session left behind — not just a transcript, but a state you can keep working from
### Resume by ID
If you already know the session you want — say it's linked from a PR comment or a teammate sent it to you:
```bash theme={null}
bb agent-sessions resume ee7f3a
```
### Resume on a branch you didn't start
You don't need to be the original author. The picker shows everyone's sessions for the current branch, and resuming pulls the conversation into *your* agent on *your* machine:
```bash theme={null}
git checkout nikhil/payments-stripe-webhook
bb agent-sessions resume
```
This is the "no copy-paste handoff" flow — see the [Branch handoff](#workflow-branch-handoff) workflow below.
## Searching across sessions
Resume is for the current branch. When you need to find a session from somewhere else — a PR you reviewed last month, a feature whose name you forgot — search:
```bash theme={null}
bb agent-sessions search "agent_logs" # full-text across all sessions
bb agent-sessions list --author maya --since 30d # everything Maya did this month
bb agent-sessions list --branch "feat/exports" # by branch
bb agent-sessions show ee7f3a # full metadata + summary
```
Output supports `--json` if you want to pipe it into something:
```bash theme={null}
bb agent-sessions search "OAuth" --json | jq '.[].id'
```
## PR linking
When you push a branch and open a PR, `bb` auto-attaches the session(s) that produced it. Reviewers can pull the chat to understand *why* the code looks the way it does — better than the PR description, and impossible to lose to a closed tab.
```bash theme={null}
bb agent-sessions link 3308 # manually link the current session to PR #3308
bb agent-sessions show ee7f3a # see which PR a session is linked to
```
To disable auto-linking for a specific repo:
```bash theme={null}
bb config set pr.auto_link false
```
## Workflows
### Workflow: branch handoff
Spencer started a feature, has to step away. Maya picks it up.
```bash theme={null}
# Spencer (Monday, EOD)
git push -u origin spencer/llm-data-source
# bb auto-syncs the session as a side effect of normal coding
# Maya (Tuesday morning, on her laptop)
git fetch && git checkout spencer/llm-data-source
bb agent-sessions resume
# > picks Spencer's session · 247 msgs · 2h ago
# Codex hydrates with everything Spencer worked through, including the
# open question he left for her.
```
No Slack screenshots. No "wait, what were you trying to do?" The agent already knows.
### Workflow: post-merge context recovery
Six months later, a customer ticket lands on a system someone else built.
```bash theme={null}
git log -- src/agent_logs # find the commit / PR
git checkout # check out the historical state
bb agent-sessions list --branch HEAD # see every session that touched this code
bb agent-sessions resume # pull the chat that produced it
```
The agent loads the original reasoning — including any decisions the PR description never mentioned ("we picked denormalized to keep report queries under 50ms").
### Workflow: ticket → spec → PR loop
The full close-the-loop play with skills + sessions:
```bash theme={null}
# 1. Customer ticket #4127 lands. Pull it into a spec with team conventions.
/bb-specify "CSV export fails for orgs > 10k rows — see ticket #4127"
# 2. Plan and implement against the spec.
/bb-plan
/bb-implement
# 3. Verify in a real browser before merging.
/trust-but-verify
# 4. Push. Session auto-attaches to the PR for reviewers.
git push -u origin fix/large-csv-export
# 5. Months later, when the next ticket hits this code:
bb agent-sessions resume # the chat that produced this code is right here
```
### Workflow: scripting in a pre-commit hook
Make sure every commit has an attached session, so the chat is never lost:
```bash theme={null}
# .git/hooks/pre-commit
test -n "$(bb agent-sessions list --branch HEAD --since 1d --json | jq '.[0]')" \
|| { echo "No active agent session — run an agent or bb agent-sessions link"; exit 1; }
```
## Privacy & access
| What's stored | Where | Who can see it |
| - | - | - |
| Chat messages, tool calls, file paths, diffs, branch metadata | Your free BuildBetter workspace, encrypted in transit and at rest | Anyone with access to the same repo in your workspace |
| Source code | Never copied — only paths and diffs | n/a |
| Sessions before `bb login` | `~/.buildbetter/sessions/` on your machine | You only |
| Sessions in a repo nobody else has access to | Same as above | You only |
To delete:
```bash theme={null}
bb agent-sessions delete # one session
bb agent-sessions purge --repo . # everything for the current repo
bb agent-sessions purge --before 90d # everything older than 90 days
```
To opt a sensitive repo out of cloud sync entirely:
```bash theme={null}
cd path/to/sensitive-repo
bb config set sync.enabled false
```
To exclude specific branches from being captured at all:
```bash theme={null}
bb config set sessions.exclude_branches "secret/*,scratch/*"
```
## Working offline
If you skip `bb login`, capture still works — sessions land in `~/.buildbetter/sessions/` and you can `resume` your own sessions on the same machine. You just lose cross-machine sync and teammate-resumable sessions. Sign in any time and the local backlog back-fills the cloud index.
```bash theme={null}
bb sync --status # see how many local sessions are pending sync
bb sync # force the back-fill now
```
## Next steps
Every `bb` command in one place
The slash commands that work alongside session resume
# CLI Reference
Source: https://docs.buildbetter.ai/pages/ZeroShot/cli-reference
Every bb command, what it does, and when you'd reach for it.
# `bb` — the ZeroShot CLI
Once installed, everything ZeroShot does on your machine runs through a single binary: `bb`. It's small, scriptable, and stays out of your way until you call it.
```bash theme={null}
bb # show top-level help
bb -h # show help for a specific command
bb --version # print the installed version
```
## Day-to-day commands
These are the commands you'll actually type. The rest are below.
| Command | What it does |
| - | - |
| `bb agent-sessions resume` | Pick a coding session to resume — yours or a teammate's |
| `bb agent-sessions list` | Show sessions for the current branch / repo |
| `bb skills install ` | Add a skill pack to your agent |
| `bb doctor` | Diagnose install, PATH, and agent integration issues |
| `bb login` | Sign in to sync sessions across machines |
## Sessions
The CLI tracks every session you have with a supported coding agent (Claude Code, Codex, Cursor, etc.) and indexes it by **repo · branch · commit · author**. See the [Agent Sessions](/pages/ZeroShot/agent-sessions) page for the full story; here's the command surface.
```bash theme={null}
bb agent-sessions resume # interactive picker for the current branch
bb agent-sessions resume # resume a specific session
bb agent-sessions list # sessions in this repo
bb agent-sessions list --branch # filter by branch
bb agent-sessions list --author # filter by teammate
bb agent-sessions list --since 7d # filter by time window
bb agent-sessions search "" # full-text search across sessions
bb agent-sessions show # print metadata + summary for one session
bb agent-sessions link # attach the current session to a PR
bb agent-sessions delete # remove a single session
bb agent-sessions purge --repo . # remove every session for this repo
```
Run `bb agent-sessions resume` from inside any git checkout. The CLI scopes the picker to the repo and branch you're standing in, so the list is always short.
## Skills
Skills are slash commands like `/bb-specify` and `/trust-but-verify` that get installed into your coding agent. They're shipped as **packs** — see the [Skills reference](/pages/ZeroShot/skills) for what each one does.
```bash theme={null}
bb skills install # install a pack (spec-workflow, testing, core)
bb skills install --all # install every pack
bb skills uninstall # remove a pack
bb skills list # show installed packs and individual skills
bb skills update # pull the latest version of every installed pack
bb skills platforms # show which agents are detected and where skills go
```
## Account & sync
```bash theme={null}
bb login # browser-based sign-in to your free BuildBetter workspace
bb logout # remove cached credentials
bb whoami # show the signed-in user and workspace
bb sync # force a sync of local sessions to the cloud
bb sync --status # show last sync time and pending items
```
You can use the CLI fully offline — `bb login` is optional. Without it, sessions stay on disk and only resume on the same machine.
## Diagnostics & maintenance
```bash theme={null}
bb doctor # check install, PATH, agent detection, sync health
bb doctor --fix # attempt to repair common issues (PATH, shell rc, perms)
bb update # update the bb binary and every installed skill pack
bb uninstall # remove ~/.buildbetter/ and the binary
```
`bb doctor` is the first thing to run when something feels off. Sample output:
```
✓ bb 1.2.0 (latest)
✓ ~/.buildbetter/bin in PATH
✓ Signed in as spencer@buildbetter.app
✓ Claude Code · skills installed at ~/.claude/skills
✓ Codex CLI · skills installed at ~/.codex/skills
⚠ Cursor · detected, skills directory missing — run `bb skills install --all`
✓ Last sync 2m ago — 0 pending sessions
```
## Repo configuration
`bb` stores per-repo settings in `.buildbetter/` at the repo root (it's safe to commit). Use these to opt repos into different defaults — for example, a repo where sessions should never sync to the cloud.
```bash theme={null}
bb config init # create .buildbetter/ in the current repo
bb config get # read a setting
bb config set # write a setting
bb config list # show every setting (with where it comes from)
```
Common keys:
| Key | Effect |
| - | - |
| `sync.enabled` | `false` keeps all sessions for this repo local-only |
| `sessions.exclude_branches` | Glob list of branches that should never be indexed (e.g. `secret/*`) |
| `pr.auto_link` | `false` disables automatic session-to-PR linking |
## Where things live
| Path | What's there |
| - | - |
| `~/.buildbetter/bin/bb` | The binary itself |
| `~/.buildbetter/skills/` | Installed skill packs (synced to your agent's skills dir) |
| `~/.buildbetter/sessions/` | Local session cache (offline + pre-sync) |
| `~/.buildbetter/config.toml` | Global config and credentials |
| `~/.buildbetter/logs/bb.log` | CLI logs — attach this to bug reports |
| `/.buildbetter/` | Per-repo overrides (safe to commit) |
## Scripting `bb`
Most commands support `--json` for machine-readable output, which makes `bb` easy to wire into pre-commit hooks, PR templates, or CI:
```bash theme={null}
# Print the most recent session ID for the current branch as JSON
bb agent-sessions list --branch "$(git branch --show-current)" --since 1d --json \
| jq -r '.[0].id'
# Fail a pre-commit hook if there's no session attached to this branch
test -n "$(bb agent-sessions list --branch HEAD --json | jq '.[0]')" \
|| { echo "No agent session linked — run bb agent-sessions link"; exit 1; }
```
Exit codes are stable: `0` success, `1` user error, `2` not signed in, `3` network failure, `4` integrity / corrupted state.
## Next steps
What's in a session, where it's stored, how resume actually works
The slash commands that ship in each pack
# Getting Started
Source: https://docs.buildbetter.ai/pages/ZeroShot/getting-started
Install the ZeroShot CLI in one line and connect your coding agent.
# Getting Started with ZeroShot
Install in one line, sign in once, then your AI coding agent picks up the ZeroShot skills automatically.
## 1. Install the CLI
Run this in your terminal:
```bash theme={null}
curl -fsSL buildbetter.sh | sh
```
The installer will:
1. Download the `bb` binary for your OS and architecture
2. Place it in `~/.buildbetter/bin/bb` and add that directory to your `PATH`
3. Detect which coding agents you have installed (Claude Code, Codex, Cursor, etc.) and offer to install matching skill packs
**Prefer to read the script first?** Open [buildbetter.sh](https://buildbetter.sh) in your browser to inspect it, then download and pipe to `sh` once you're satisfied.
### Prerequisites
| Requirement | Notes |
| - | - |
| **OS** | macOS 12+ or Linux (x86\_64 / arm64) |
| **Shell** | bash, zsh, or fish |
| **Git** | Required — sessions are indexed by repo, branch, and commit |
| **At least one coding agent** | Claude Code, Codex, Cursor, Copilot CLI, Gemini CLI, Windsurf, or Amazon Q |
## 2. Verify the install
```bash theme={null}
bb --version
bb doctor
```
`bb doctor` reports which agents it detected, where their skill directories live, and whether your `PATH` and shell rc files are wired up correctly.
## 3. Sign in (optional but recommended)
```bash theme={null}
bb login
```
A browser window opens for you to authenticate with your free BuildBetter account. After signing in:
* Your agent sessions sync to the cloud and become resumable on any machine
* Teammates can pull each other's sessions for the same branch
* Skills update automatically when your team improves them
You can skip this step and use the CLI fully offline — sessions just stay local.
## 4. Install the skills
The installer prompts you to install the default packs, or you can install them manually:
```bash theme={null}
bb skills install spec-workflow
bb skills install testing
bb skills install core
```
To see everything installed:
```bash theme={null}
bb skills list
```
To update later:
```bash theme={null}
bb skills update
```
## 5. Use the skills in your agent
Open your coding agent and type `/` — the ZeroShot skills appear in the slash command list.
Draft a feature spec from a description, with customer signals attached
Generate a phased implementation plan from the spec
Review code against your team's encoded conventions
Walk the UI like a real user before merging
See the [skills reference](/pages/ZeroShot/skills) for the full list.
## Updating
```bash theme={null}
bb update
```
This refreshes the `bb` binary and updates every installed skill pack.
## Uninstalling
```bash theme={null}
bb uninstall
```
This removes the `bb` binary, every installed skill, and the `~/.buildbetter/` directory. Your agent sessions in the BuildBetter cloud are not deleted — sign in to [buildbetter.ai](https://buildbetter.ai) and delete them there if you want them gone.
## Troubleshooting
The installer added `~/.buildbetter/bin` to your shell's rc file, but the current shell doesn't have it loaded. Open a new terminal window, or run `source ~/.zshrc` (or `~/.bashrc`).
Run `bb doctor` to confirm the skills directory matches what your agent expects. Restart the agent after installing or updating skills — most agents only scan the skills directory at startup.
Download the binary directly from the [latest release](https://github.com/buildbetter-app/BB-Skills/releases) and place it on your `PATH` manually. Then run `bb skills install spec-workflow testing core` to fetch the skill packs.
`bb` respects standard `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY` environment variables. Set them in your shell before running `bb login` or `bb skills update`.
## Next steps
See what each skill does and when to reach for it
Pick up where a teammate left off
# ZeroShot (CLI) Overview
Source: https://docs.buildbetter.ai/pages/ZeroShot/overview
A single bb binary that captures every coding-agent session and lets your team resume them anywhere.
**Free and open source.** The CLI and skills are MIT-licensed and live at [github.com/buildbetter-app/BB-Skills](https://github.com/buildbetter-app/BB-Skills). You can use them with or without a paid BuildBetter account.
# ZeroShot
ZeroShot (the `bb` CLI) sits next to your AI coding agent and gives it **the context behind every PR** — the chats, decisions, customer signals, and team conventions that produced the code.
You install it once. It runs passively in the background, capturing every session you have with Claude Code, Codex, Cursor, Copilot CLI, Gemini CLI, Windsurf, or Amazon Q. Then anyone on your team can pick those sessions back up — on their machine, six months later, on a long-merged branch — with one command:
```bash theme={null}
bb agent-sessions resume
```
`curl -fsSL buildbetter.sh | sh`
Read the source, file issues, contribute
## What you get
Every coding session — chat, file edits, tool calls — saved and indexed by repo, branch, PR, and commit. Resume any teammate's session on your machine in one command.
A small `bb` binary with stable exit codes and `--json` everywhere. Wire it into pre-commit hooks, PR templates, and CI.
Slash commands like `/bb-specify`, `/bb-review`, and `/trust-but-verify` that show up with your team's conventions attached.
## The 30-second tour
```bash theme={null}
# 1. Install
curl -fsSL buildbetter.sh | sh
# 2. (Optional) Sign in to sync sessions across machines and teammates
bb login
# 3. Code with your agent like normal — bb captures every session
# in the background. No daemon, no flags, no daily startup.
# 4. Pick up where you (or anyone on your team) left off
bb agent-sessions resume
```
That's the whole loop. Everything else — skills, PR linking, scripting — is built on top.
## How sessions work
Whenever you use a supported coding agent inside a git checkout, `bb`:
1. Watches the agent's session log on disk
2. Indexes every new turn by **repo · branch · commit · author**
3. Writes a normalized record to `~/.buildbetter/sessions/`
4. Syncs to your free BuildBetter workspace if you're signed in
When you (or a teammate) run `bb agent-sessions resume`, the chosen session is **hydrated** back into your active agent — prior conversation, file edits as a virtual diff, and any open questions the previous session left behind. You're not reading a transcript; you're picking the work back up.
See [Agent Sessions](/pages/ZeroShot/agent-sessions) for storage paths, the session file schema, and worked workflows.
## What ships in the box
A single `bb` binary that captures sessions, syncs them across machines, manages skills, and bridges your coding agent to BuildBetter. macOS and Linux, x86\_64 and arm64. See the [CLI reference](/pages/ZeroShot/cli-reference).
Sessions are indexed by repo, branch, PR, and commit, then synced through your free BuildBetter account so any teammate with access to the repo can resume them. Opt-out per repo with `bb config set sync.enabled false`.
Nine skills that drive a spec-first workflow: `/bb-specify`, `/bb-clarify`, `/bb-plan`, `/bb-tasks`, `/bb-checklist`, `/bb-analyze`, `/bb-review`, `/bb-implement`, `/bb-constitution`.
Three browser-driven verification skills: `/app-navigator`, `/trust-but-verify`, `/generate-tests`. They walk the UI like a real user and confirm a feature actually works before you merge.
Maintenance skills like `/bb-skills-update` to keep installed skills fresh.
## Supported coding agents
| Agent | Status |
| - | - |
| Claude Code | Supported |
| Codex CLI | Supported |
| Cursor | Supported |
| GitHub Copilot CLI | Supported |
| Gemini CLI | Supported |
| Windsurf | Supported |
| Amazon Q Developer | Supported |
## Pricing
The CLI, all skills, and a BuildBetter account with unlimited session sync. No credit card required.
The paid AI platform that powers customer-signal-driven specs — call/ticket/Slack ingestion, signal extraction, triage, projects. Talk to us.
## Next steps
Run the curl command and verify your install
Every `bb` command, organized by topic
What's captured, where it's stored, how resume hydrates state
The slash commands that ship in each pack
# Skills Reference
Source: https://docs.buildbetter.ai/pages/ZeroShot/skills
The open-source skills that ship with the ZeroShot CLI.
# Skills
The CLI installs **skills** into your coding agent — slash commands like `/bb-specify` or `/trust-but-verify` that wrap a workflow with your team's encoded conventions.
All skills are open source ([github.com/buildbetter-app/BB-Skills](https://github.com/buildbetter-app/BB-Skills)) and free to use. They work with or without a paid BuildBetter account.
## Three packs
```bash theme={null}
bb skills install spec-workflow # nine skills for spec-driven dev
bb skills install testing # three browser-driven verification skills
bb skills install core # maintenance (bb-skills-update)
```
Or install them all at once:
```bash theme={null}
bb skills install --all
```
## Spec workflow
A guided, spec-first workflow for building features. Each skill picks up where the last one left off — read the spec, plan from it, generate tasks, review the work, verify in the browser.
Create or update a feature specification from a natural-language description. With BuildBetter Signal connected, it pulls in the customer quotes, tickets, and call moments that justified the feature.
Identify underspecified areas in the spec by asking up to 5 highly targeted clarification questions, then encode the answers back into the spec.
Generate a phased implementation plan from the spec, with file-level design artifacts.
Break the plan into an actionable, dependency-ordered `tasks.md`.
Produce a custom checklist for the feature based on user requirements (testing scope, risk areas, rollout steps).
Non-destructive cross-artifact consistency check across `spec.md`, `plan.md`, and `tasks.md`. Catches drift before implementation starts.
Execute the plan by walking the tasks in order, committing after each.
Code review against your team's encoded conventions — every correction your seniors made on prior PRs is in the prompt.
Create or update the project's design principles. Other skills read it as the canonical source of truth for "how we build things here."
## Testing
Skills that drive a real browser to verify a feature actually works — not just that the types compile.
Maps the application's routes, pages, and components. Builds reusable Playwright playbooks and performs a UI/UX audit across the app.
Use after a feature branch is implemented. Walks the UI/UX and functionality match the original plan before merging — golden path, edge cases, regressions in adjacent features.
Generate reusable Playwright `.spec.ts` files from the app-navigator's app map and playbooks. Tests survive after the agent's session ends.
## Core
Check for and install BB-Skills updates from the open-source repo. Use when the team has shipped a new version of a skill you depend on.
## How skills get your team's conventions
Out of the box, the spec-workflow and review skills are generic. They become your team's voice in two ways:
1. **`/bb-constitution`** — write down the principles that govern this codebase ("we use the `RetryablePolicy` for all retry logic", "migrations always include a rollback plan", "auth tokens go through the OAuth provider"). Every other skill reads this file as input.
2. **Pull from BuildBetter Signal** (optional) — when connected to a paid BuildBetter workspace, skills can also reference the *actual* corrections your team has made on prior PRs and the customer signals that drove the feature. The agent stops asking the same question twice.
## Authoring your own skills
Skills are plain Markdown with frontmatter — see [the skills writing guide](https://github.com/buildbetter-app/BB-Skills/blob/main/docs/writing-skills.md) on GitHub. Drop a new `.md` file into `~/.buildbetter/skills//` and restart your coding agent to pick it up.
To contribute a skill back to the open-source pack, open a PR against [BB-Skills](https://github.com/buildbetter-app/BB-Skills).
## Next steps
Pick up a session by branch — yours or a teammate's
Read the skill source, file issues, contribute
# ZeroShot Desktop
Source: https://docs.buildbetter.ai/pages/ZeroShot/zeroshot-desktop
Use the ZeroShot desktop app to analyze coding-agent sessions locally, sync across machines, and discover reusable skills.
# ZeroShot Desktop
ZeroShot Desktop is the native app for ZeroShot. It reads local coding-agent sessions, shows usage and friction patterns, helps you browse work across repositories and teammates, and turns repeated workflows into reusable skills.
ZeroShot works locally when you are signed out. Sign in when you want organization-wide session browsing, hosted usage, teammate sessions, or remote sync.
## Core Areas
Review work breakdowns, friction-heavy sessions, and codebase hotspots from real local session data.
See usage by model, repository, branch, and person, including token burn-down views when provider limits are available.
Browse local, synced, and teammate sessions. Resume a cloud-only session when the related repository exists locally.
Browse ZeroShot skills, detect updates, review generated skill proposals, and install repository-specific skills.
## Onboarding
ZeroShot onboarding starts by helping you choose local Git repositories. It prioritizes repositories with recent Codex or Claude Code activity and falls back to a broader scan when needed.
During onboarding, ZeroShot can:
* Import the first batch of recent sessions so you see value quickly
* Continue importing the rest in the background
* Generate skill proposals once enough sessions are available
* Keep selected repositories scoped so sync and analysis stay focused
## Local and Remote Sync
ZeroShot combines local import and remote upload into one sync flow:
* **Local mode** indexes Codex and Claude Code sessions on this machine.
* **Signed-in mode** syncs selected repository sessions to BuildBetter so you can browse across machines and teammates.
* **Repository-scoped sync** uploads only sessions from selected repositories.
* **Hourly sync** keeps local and remote evidence fresh.
If a cloud session belongs to a repository you have locally, use **Resume** to continue that session from your current machine.
## Rewind and Archetypes
The Rewind experience summarizes your recent coding-agent activity across selected repositories. It includes:
* Usage and signal story screens
* Multi-repo onboarding context
* A deterministic work-style archetype based on real local session activity
* Shareable archetype cards with downloadable artwork and copy-to-clipboard support
## Menu Bar Preview
Shot Notch adds a lightweight macOS menu bar experience with:
* Recent session cards
* In-place chat preview
* Quick access to the full Sessions page
* Settings and display toggles
## Skills and Proposals
ZeroShot can discover repeated local workflows and propose repository-specific skills. Review proposals from the skill discovery inbox, then install the ones that are useful.
Skill discovery:
* Ranks candidates from imported session evidence
* Avoids duplicate suggestions
* Clears suggestions after you act on them
* Tracks installed versions and available updates
## Privacy
ZeroShot is local-first. When signed out, local sessions, signals, usage, and skills stay on your machine. When signed in, sync is scoped to selected repositories and uses your BuildBetter account permissions.
# Agent Chats API
Source: https://docs.buildbetter.ai/pages/api/agent-chats
Send AI chat sessions and message feedback to BuildBetter
Use Agent Chats to analyze the quality of your AI product conversations. BuildBetter stores each conversation as a session, extracts qualitative Signals, and keeps explicit message feedback linked to the assistant response that received it.
Agent Chats focus on the user experience. They identify steering and correction, misunderstanding, repetition, capability gaps, missing context, incomplete outcomes, response-quality gaps, user friction, product opportunities, and explicit positive or negative feedback.
## Set up an application
In BuildBetter, open **Library → Agent Chats**, then select **Set up Agent Chats**. Ask a workspace administrator if Agent Chats is not available in your workspace.
Give the application a name and a stable key. Use one application for each agent or product whose conversations you want to filter separately. This registers your existing agent. It does not build a new agent. The setup action also creates its first ingest credential.
Set content capture, participant type, allowed environments, retention, redaction, and conversation access before you send production data.
Copy the secret when BuildBetter shows it. The secret is shown once. Store it in a server-side secret manager and do not put it in browser code. Use **Manage ingest credentials** to create or revoke credentials later. These credentials are upload secrets, not billing credits.
## Authentication
Send the ingest secret in `X-BuildBetter-Agent-Key`. This is an ingestion-only credential. It is different from your organization API key.
```http theme={null}
X-BuildBetter-Agent-Key: bb_agent_...
Content-Type: application/json
```
The request body must also contain the application `agentKey`. BuildBetter validates that the key and secret belong to the same application.
## Send a conversation
Send events to:
```http theme={null}
POST https://api.buildbetter.app/v3/rest/agent-conversations/ingest
```
The following example sends one user message and one finalized assistant response.
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/agent-conversations/ingest" \
-H "Content-Type: application/json" \
-H "X-BuildBetter-Agent-Key: $BUILDBETTER_AGENT_SECRET" \
-d '{
"agentKey": "support-agent",
"externalSessionId": "chat_123",
"status": "open",
"agentVersion": "2026-08-26",
"source": {
"sdk": "vercel-ai",
"version": "5.0.0"
},
"context": {
"productArea": "analytics",
"surface": "dashboard-assistant",
"routeTemplate": "/dashboards/:dashboardId",
"pathname": "/dashboards/db_42",
"entryPoint": "ask-ai",
"entityType": "dashboard",
"entityId": "db_42",
"environment": "production",
"release": "web-2026.08.26",
"properties": {
"plan": "growth"
}
},
"participants": [
{
"externalId": "user_42",
"displayName": "Avery Chen",
"username": "avery",
"email": "avery@example.com",
"companyExternalId": "account_17",
"boundary": "external"
}
],
"events": [
{
"externalEventId": "user_1",
"revision": 1,
"sequence": 1,
"occurredAt": "2026-08-26T18:00:00.000Z",
"type": "user_message",
"participantExternalId": "user_42",
"content": "Why did revenue drop this month?"
},
{
"externalEventId": "assistant_1",
"revision": 1,
"sequence": 2,
"occurredAt": "2026-08-26T18:00:03.000Z",
"type": "assistant_message",
"final": true,
"content": "Revenue fell because upgrades declined by 12%.",
"model": {
"provider": "openai",
"name": "gpt-5"
},
"usage": {
"inputTokens": 740,
"outputTokens": 31,
"latencyMs": 1840
},
"trace": {
"traceId": "trace_abc",
"spanId": "span_123"
}
}
]
}'
```
BuildBetter returns the stable session ID and the event counts for the batch.
```json theme={null}
{
"sessionId": "0198e42f-8027-7fd6-b514-8ee755e50590",
"acceptedEventCount": 2,
"deduplicatedEventCount": 0,
"revisedEventCount": 0,
"processingStatus": "pending"
}
```
`pending` means BuildBetter accepted the data and queued signal extraction. It does not mean extraction is complete.
## Session and event identity
BuildBetter uses `agentKey` plus `externalSessionId` as the stable session identity. Continue to send new events with the same values while the conversation is active.
Each event needs:
* `externalEventId`: a stable ID from your system.
* `sequence`: the event's position in the session. Sequence numbers must be unique.
* `revision`: start at `1`. Increase it when you correct an existing event.
* `occurredAt`: an ISO 8601 timestamp.
* `type`: such as `user_message`, `assistant_message`, or `feedback`.
Retries with the same sanitized event content are deduplicated. If the content changes, send a revision greater than the stored revision. A revision cannot change the event sequence or type, and a finalized event cannot become partial again.
Events in one request do not have to be in array order. BuildBetter uses `sequence` to order them. Open sessions wait at sequence gaps. Ended or abandoned sessions process through permanent gaps.
## Finalize a session
Send `status: "ended"` after the conversation ends. You can send only the final lifecycle update if the earlier events already exist, but every ingest request must contain at least one event. A common pattern is to include the last new event with the terminal status.
Use `status: "abandoned"` when the user leaves before the agent reaches an outcome.
## Send message feedback
Send feedback as its own event. `targetEventExternalId` must point to an earlier `assistant_message` in the same session.
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/agent-conversations/ingest" \
-H "Content-Type: application/json" \
-H "X-BuildBetter-Agent-Key: $BUILDBETTER_AGENT_SECRET" \
-d '{
"agentKey": "support-agent",
"externalSessionId": "chat_123",
"status": "open",
"participants": [],
"events": [
{
"externalEventId": "feedback_assistant_1",
"revision": 1,
"sequence": 3,
"occurredAt": "2026-08-26T18:00:10.000Z",
"type": "feedback",
"feedback": {
"targetEventExternalId": "assistant_1",
"rating": "negative",
"labels": ["incorrect", "missing-context"],
"comment": "That compares this month with the wrong period."
}
}
]
}'
```
Ratings are `positive` or `negative`. A feedback event can contain a rating, labels, a comment, or any combination of them. BuildBetter creates explicit-feedback Signals deterministically and does not use model credits for that conversion. The normal qualitative analysis of finalized assistant responses uses response credits.
In Signals, use the Agent Chat source filters to separate `explicit_feedback` from `qualitative_inference` and to filter positive or negative ratings.
## Vercel AI SDK
See the [Node SDK and Vercel wrapper preview](/pages/api/agent-chats-sdk#vercel-ai-sdk-preview) for the planned SDK integration. The package is not published to npm.
For an HTTP integration, persist finalized messages in your server-side completion handler. Send only visible user and assistant text through the conversation endpoint above. Include only text parts, not reasoning, files, system prompts, or tool inputs and outputs.
Assign each event its sequence and timestamp when you first persist it. Keep those values stable when you filter hidden content or send only new messages. Do not recalculate sequences from the current batch index.
Check the HTTP response status. If delivery fails, retain the event data for a retry. Do not expose the ingest secret in browser code.
One request accepts at most 500 events and 2 MiB. One event accepts at most 256 KiB.
## Context and filters
Set context at the session level when it applies to the whole chat. An event can also supply context to override the session defaults.
| Field | Use |
| - | - |
| `productArea` | A stable product area, such as `analytics` or `crm`. |
| `surface` | The exact experience, such as `dashboard-assistant`, `bob`, or `copilot-sidebar`. |
| `routeTemplate` | A low-cardinality route, such as `/dashboards/:dashboardId`. |
| `pathname` | The actual path where the chat occurred. |
| `entryPoint` | The control or flow that opened the chat. |
| `entityType` and `entityId` | The product object in context. |
| `environment` | `production`, `staging`, or another configured environment. |
| `release` | Your application or agent release. |
| `properties` | Up to 50 additional JSON values. |
These fields make Agent Chats filterable by agent, product area, surface, environment, and related object.
## Participant identity
Use a stable `externalId` for each participant. If you send `displayName`, `username`, or `email`, `externalId` is required. You can also send a BuildBetter `personId` UUID when you already know the canonical Person.
Set `boundary` to:
* `external` for a customer, prospect, or other product user.
* `internal` for a team member.
BuildBetter can use the identity and boundary in signal attribution. Configure redaction before you send personal data that your workspace does not need.
One unique, case-insensitive email match can link an existing Person in the destination workspace. An explicit `personId` takes precedence. Unknown or cross-workspace Person UUIDs are rejected. This endpoint does not create or modify people.
`companyExternalId` stores your company's external ID on the participant. It does not create or link a canonical Company record. Participant `properties` store up to 50 custom JSON values. See the [identity and properties reference](/pages/api/agent-chats-sdk#identity-and-properties) for limits and SDK field mappings.
`ownerUserId` controls access, not customer identity. Use an active BuildBetter user UUID from the destination workspace for owner-only chats. If omitted, the application's access policy applies. Workspace access is the default. Enabling Agent Chats does not connect another workspace's data.
## Privacy and retention
Application settings apply before storage and hashing.
* **Status:** Active accepts uploads. Disabled stops new uploads without deleting stored conversations.
* **Content capture:** Turn it off to retain counts and status without message content. On the next ingest for a session, stored content, participants, jobs, and Signals for that session are permanently deleted.
* **Redacted field names:** Remove matching keys from message payloads, feedback, model metadata, usage, traces, context, and participant identity fields.
* **Redacted text patterns:** Replace exact sensitive text before storage.
* **Retention:** Set a value from 1 through 3650 days, or leave it blank for no application-specific limit. Reducing retention can permanently delete older conversations.
* **Allowed environments:** Leave the list blank to accept all environments. If you configure a list, each request must resolve to an allowed `context.environment`. This does not select a destination workspace.
* **Conversation access:** Use workspace access or restrict the application to selected BuildBetter user UUIDs. Reducing access also restricts existing chats and Signals. A later change back to workspace access does not restore historical access.
BuildBetter also masks common secret fields, bearer tokens, private keys, long binary payloads, and common provider secret formats.
## Billing
BuildBetter meters `agent_response_processed` units. One visible finalized assistant response is one response unit. Appending a new response adds only the new unit. A successful idempotent retry does not add another unit.
Explicit positive or negative feedback creates its explicit-feedback Signal without model credits. The session can still use credits when BuildBetter runs normal qualitative analysis on finalized assistant responses.
## Coding-agent sessions and Projects through MCP
The MCP Agent Session tools are for uploaded coding-agent session artifacts, such as Codex or Claude Code sessions. They are separate from the Agent Chats ingestion endpoint above.
To create a Projects V2 project and attach an uploaded coding-agent session:
1. Call `create-project` and keep the returned project `publicId`.
2. Call `upload-agent-session` with either normalized events or supported native JSONL.
3. Call `associate-agent-session` with `resourceType: "project"`, the project `publicId`, and the uploaded session ID.
4. Call `get-project` or `list-associated-agent-sessions` to verify the association.
MCP upload, project creation, and association are mutating actions. They require OAuth user context and explicit user approval.
## Troubleshooting
| Response | Meaning |
| - | - |
| `400` | The payload is invalid or too large, the environment is missing or blocked, or feedback does not target an earlier assistant event. |
| `401` | The ingest secret is missing, revoked, or does not match the application key. |
| `404` | Agent Chats is not enabled for the workspace or the application does not exist. |
| `409` | An event changed without a higher revision, moved to another sequence, changed type, or reused an occupied sequence. |
If a retry returns a high `deduplicatedEventCount`, the API is working as intended. If `processingStatus` is `billing_blocked`, add credits or adjust the relevant quota. If it is `capture_disabled`, enable content capture in the application settings before you send more content.
# Agent Chats SDK
Source: https://docs.buildbetter.ai/pages/api/agent-chats-sdk
Connect your AI agent to BuildBetter with sessions, participant identity, product context, and message feedback.
Send your agent's conversations to BuildBetter to find user friction, misunderstood requests, and opportunities to improve responses. Send message feedback separately to distinguish explicit ratings from findings extracted through qualitative analysis.
The Node SDK, `@buildbetter/ai`, is a preview and is not published to npm. The SDK examples below describe the preview interface, not an installable release. Use the [Agent Chats HTTP API](/pages/api/agent-chats#send-a-conversation) for an integration today.
## Set up your destination
1. Open **Library → Agent Chats → Set up Agent Chats** in the destination workspace. Ask an administrator if Agent Chats is unavailable.
2. Create an application, such as **Support assistant**, with a stable key, such as `support-agent`.
3. Set its access policy, content capture, redaction, retention, and allowed environments before sending customer data.
4. Create an ingest credential. Save the secret when it appears. BuildBetter shows it once.
An application represents the agent or product that sends conversations. It groups those conversations and sets their ingestion and access rules.
Keep the credential in your server's secret manager. It is an ingestion-only secret, not your organization API key. Never send it to a browser.
| Destination | API base URL |
| - | - |
| Production | `https://api.buildbetter.app` |
| Staging | `https://api-staging.buildbetter.app` |
Use an application key and credential created in the destination environment. The credential selects the workspace. `context.environment` describes your source environment and does not select the destination.
Enabling Agent Chats does not connect any agent automatically. Customers connect their own agents to their own workspaces. It does not grant access to another workspace's chats.
## Start with HTTP
The HTTP API works from any language. Send a server-side `POST` to `/v3/rest/agent-conversations/ingest` with:
* Header `X-BuildBetter-Agent-Key`: your ingest secret.
* Header `Content-Type`: `application/json`.
* Body `agentKey`: your application's stable key.
* Body `externalSessionId`: your conversation ID.
* Body `events`: messages or feedback with stable event IDs, sequences, and timestamps.
Follow the complete [conversation example](/pages/api/agent-chats#send-a-conversation), then send the [feedback example](/pages/api/agent-chats#send-message-feedback). Both use the same session. No SDK package is required.
## Node SDK preview
The preview requires Node.js 22.12 or later. The root package supports ESM and CommonJS. This example uses ESM.
The variables below represent server configuration. Set the secret outside your source code.
```ts theme={null}
import { BuildBetterAI } from "@buildbetter/ai";
const buildbetter = new BuildBetterAI({
apiKey: process.env.BUILDBETTER_AGENT_SECRET!,
agent: "support-agent",
apiUrl: "https://api.buildbetter.app",
});
const session = {
sessionId: "production:account_17:chat_123",
startedAt: "2026-09-08T18:00:00.000Z",
user: {
id: "account_17:user_42",
name: "Avery Chen",
username: "avery",
email: "avery@example.com",
companyId: "account_17",
},
context: {
productArea: "reporting",
surface: "dashboard-assistant",
routeTemplate: "/dashboards/:id",
environment: "production",
},
};
await buildbetter.capture({
...session,
status: "open",
messages: [
{
id: "user_1",
role: "user",
sequence: 1,
createdAt: "2026-09-08T18:00:00.000Z",
content: "Why is this report blank?",
},
{
id: "assistant_1",
role: "assistant",
sequence: 3,
createdAt: "2026-09-08T18:00:03.000Z",
content: "I could not find the report.",
final: true,
},
],
});
```
Use your persisted IDs and timestamps in place of these sample values. Include the source environment and account in IDs when multiple accounts share one destination application.
The SDK uses positive odd message sequences and reserves the next even sequence for feedback. This example uses explicit sequences so later batches keep their positions. Without explicit sequences, send the complete visible history in its original order.
Names, usernames, and emails support participant identification. `user.id` maps to the HTTP field `externalId`, and `user.name` maps to `displayName`. External identities do not create BuildBetter users or Persons.
## Identity and properties
Send the identity from your authenticated server. Do not trust an ID supplied by an unauthenticated browser.
| SDK field | HTTP field | Meaning |
| - | - | - |
| `user.id` or `participants[].id` | `participants[].externalId` | Your stable customer or user ID, up to 255 characters. Scope it to your account when IDs can overlap. |
| `user.name` | `participants[].displayName` | Display name, up to 200 characters. |
| `user.username` | `participants[].username` | Username, up to 255 characters. |
| `user.email` | `participants[].email` | Email address, up to 320 characters. One unique, case-insensitive match can link an existing Person in this workspace. |
| `user.personId` | `participants[].personId` | An existing BuildBetter Person UUID in the destination workspace. An explicit UUID takes precedence over email matching. |
| `user.companyId` | `participants[].companyExternalId` | Your external company or account ID, up to 255 characters. This is not a BuildBetter Company UUID. |
| `user.boundary` | `participants[].boundary` | `external` for customers, or `internal` for team members. The SDK defaults to `external`. Raw HTTP participants must specify this field. |
| `user.properties` | `participants[].properties` | Participant attributes, such as role or plan. These do not update the canonical Person record. |
| `ownerUserId` | `ownerUserId` | An active BuildBetter user UUID in the destination workspace. Sets owner-only access. This is not your external customer ID. |
| `messages[].participantId` | `events[].participantExternalId` | The external ID of the participant who sent a message. Use this for conversations with multiple people. |
| `context.properties` | `context.properties` | Attributes for the conversation, such as account tier, experiment, or feature version. |
| `messages[].context.properties` | `events[].context.properties` | Attributes for a specific message. |
The same participant fields work inside `participants[]`. The `user` shortcut also attributes user messages to that participant unless a message supplies `participantId`.
Each properties object accepts up to 50 keys. Keys contain 1–80 characters. Values can be strings, finite numbers, booleans, null, arrays, or JSON objects.
Company IDs are retained with the conversation. They do **not** create companies, link CRM company records, or provide PostHog-style group profiles. Person matching does not create people. If an email matches multiple people, BuildBetter does not choose one. Configure existing CRM records separately when you need canonical associations.
```ts theme={null}
const identity = {
id: "account_17:user_42",
email: "avery@example.com",
companyId: "account_17",
boundary: "external" as const,
properties: { role: "admin", plan: "growth" },
};
await buildbetter.capture({
...session,
user: identity,
context: {
environment: "production",
surface: "support-widget",
properties: { accountId: "account_17", experiment: "answer-v2" },
},
messages: savedMessages,
});
```
Send only the personal data that your workspace needs. Redaction applies before storage and can prevent identity matching.
## SDK field reference
### Client options
| Option | Meaning |
| - | - |
| `apiKey` | Required ingestion secret. Keep it on the server. |
| `agent` | Required application key, 3–64 lowercase letters, digits, underscores, or hyphens. Start and end with a letter or digit. |
| `apiUrl` | Destination API origin. Defaults to `https://api.buildbetter.app`. Remote destinations require HTTPS. |
| `timeoutMs` | Timeout for each HTTP request. Defaults to 5,000 milliseconds. A timeout does not prove the server rejected the batch. |
| `fetch` | Optional Fetch API implementation, for example for transport instrumentation. Do not log the credential or transcript. |
### Conversation and message fields
| Field | Meaning |
| - | - |
| `sessionId`, `startedAt` | Required stable session identity and original start time. Dates accept a `Date`, an ISO string, or epoch milliseconds. |
| `status`, `endedAt` | Status defaults to `open`. Use `ended` or `abandoned` with the final batch and an end time when known. |
| `agentVersion` | Your agent version. Messages can supply their own version. |
| `user`, `participants`, `ownerUserId` | Identity and access fields described above. |
| `context` | Product context. See the complete [context reference](/pages/api/agent-chats#context-and-filters). |
| `messages` | Required messages with stable `id`, `role: "user"` or `"assistant"`, and visible text in `content` or text `parts`. |
| `messages[].createdAt` | Original message time. Without it, the SDK derives a stable time from the session start and position. Prefer persisted times. |
| `messages[].sequence` | Positive odd position. Supply it when sending only new messages. Otherwise, send complete visible history in its original order. |
| `messages[].revision`, `messages[].final` | Revision defaults to `1`. Increase it when content changes. Use `final: false` for an unfinished response. |
| `messages[].model` | Optional `provider` and `name`. |
| `messages[].usage` | Nonnegative integers: `inputTokens`, `outputTokens`, `cachedInputTokens`, `costUsdMicros`, and `latencyMs`. Cost uses millionths of a US dollar. |
| `messages[].trace` | Optional `traceId`, `spanId`, and `parentSpanId` for correlation. These do not upload a complete trace. |
| `source` | Advanced source metadata: `sdk`, optional `version`, `sequenceLayout`, and `batchComplete`. Keep SDK defaults for normal capture. |
An empty assistant message with an explicit odd sequence and `final: false` reserves a position without content. Reuse its ID and sequence when the response finishes. Increase its revision.
`capture()`, `feedback()`, and `ingest()` return the BuildBetter session UUID, accepted/deduplicated/revised event counts, and `processingStatus`. They also return `batchCount` and each transmitted event's ID and sequence. An accepted batch is not proof of completed analysis.
## Add thumbs-up, thumbs-down, or written feedback
Send feedback from your authenticated server after it verifies that the user can access the target message. For the assistant response above:
```ts theme={null}
await buildbetter.feedback({
...session,
messageId: "assistant_1",
messageSequence: 3,
occurredAt: "2026-09-08T18:00:10.000Z",
revision: 1,
rating: "negative",
labels: ["incorrect", "missing-context"],
comment: "The report exists. You used the wrong dashboard.",
});
```
Use `positive` for a good response and `negative` for a bad response. Supply at least one rating, label, or comment. `messageSequence` is the target assistant's sequence, not the feedback sequence.
The preview SDK keeps one feedback event per target message. Increase `revision` when that feedback changes. Independent votes from multiple people require distinct feedback events through the [HTTP API](/pages/api/agent-chats#send-message-feedback).
Explicit feedback creates a Signal without model credits. Qualitative analysis of finalized assistant responses uses response credits. Use the Agent Chat source filters in Signals to separate explicit feedback from inferred findings.
## Vercel AI SDK preview
The optional wrapper supports Vercel AI SDK 7 (`ai@^7.0.0`) and uses the ESM subpath `@buildbetter/ai/vercel`. Your provider package must support that AI SDK version.
```ts theme={null}
import { generateText } from "ai";
import { withBuildBetter } from "@buildbetter/ai/vercel";
// providerModel is a model from your configured AI SDK provider.
const model = withBuildBetter(providerModel, {
client: buildbetter,
...session,
turnId: savedTurn.assistantMessageId,
turnSequence: savedTurn.assistantSequence,
turnStartedAt: savedTurn.startedAt,
messageIds: savedChat.messageIds,
messageSequences: savedChat.messageSequences,
messageTimestamps: savedChat.messageTimestamps,
messageRevisions: savedChat.messageRevisions,
onError: () => console.warn("BuildBetter capture failed"),
});
await generateText({
model,
prompt: "Why is this report blank?",
});
```
The wrapper captures visible user and assistant text. It excludes system prompts, reasoning, files, and tool inputs and outputs. Capture errors do not fail the model request.
Persist `turnId`, a positive odd `turnSequence`, and `turnStartedAt` before generation. Reuse them on retries and tool steps. Supply the message maps by zero-based visible history position. Increase a message's revision when you edit it.
Await each call for a session before the next call. Consume or cancel a response stream before another call. The wrapper rejects overlapping calls for the same destination and session within a process. Coordinate sessions across processes in your application.
For the simplest integration, use `capture()` after saving finalized messages. Use the wrapper when you need model-level capture and can supply stable turn metadata. Do not combine wrapper capture and direct capture for the same session.
## Delivery and retries
* Persist message IDs, sequences, revisions, and timestamps before sending. Reuse them for retries.
* Increase `revision` when an existing event changes. Keep its sequence and type unchanged.
* With the SDK, send new messages with explicit odd sequences. Do not mix raw HTTP event numbering with SDK numbering in one session.
* Send `status: "ended"` or `"abandoned"` when the conversation ends. Include at least one event, such as a replay of the final message.
* Await delivery before the process exits. Use a durable server queue when delivery must survive request or process failures.
* Direct SDK methods throw on failure. They do not provide a durable queue or automatic retries. Retry transient failures with bounded backoff and stable event data.
* The SDK batches requests and truncates oversized visible text. The HTTP limits are 500 events, 2 MiB per request, and 256 KiB per event.
Fix authentication and payload errors before retrying. See the [response codes](/pages/api/agent-chats#troubleshooting).
## Confirm the integration
1. Send a synthetic conversation with a unique session ID and a known surface.
2. Confirm the session appears in **Library → Agent Chats** in the intended workspace.
3. Send negative feedback on its assistant response. Confirm the rating and message link.
4. Retry the unchanged payload. Confirm the API reports deduplicated events instead of a second conversation.
5. Check access with an account outside the application's allowed users.
An accepted response with `processingStatus: "pending"` confirms ingestion, not completed signal extraction. Check the conversation after processing finishes.
Before sending real data, review the [privacy settings](/pages/api/agent-chats#privacy-and-retention). When `ownerUserId` is omitted, the application's access policy controls visibility, with workspace access as the default. For owner-only chats, use an active BuildBetter user UUID from the destination workspace, not an external participant ID.
# Authentication & Endpoint Setup
Source: https://docs.buildbetter.ai/pages/api/authentication
Learn how to authenticate your requests to the BuildBetter API.
## Authentication
All BuildBetter API requests must be authenticated. REST is the supported path for new customer integrations.
The GraphQL API is being deprecated for customer integrations. Use REST endpoints for new integrations and migrate existing GraphQL workflows to REST.
You can authenticate in one of two ways:
* **API Key (Header):** Provide your API key in the HTTP header `X-Buildbetter-API-Key`. For example: `X-Buildbetter-API-Key: YOUR_API_KEY`. This method is typically used for server-to-server access or integration scenarios. An API key may be scoped to an organization or a specific shared object (like a particular call or document), so it grants access according to its scope (e.g. all data in your organization or just one shared call/document).
* **Bearer Token (Header):** If you have a user login token (JWT), include it in the `Authorization` header as a Bearer token. For example: `Authorization: Bearer YOUR_JWT_TOKEN`. This method is used for authenticated user access. The token will be validated by the API, and if valid, the request will execute with the permissions of that user. (If your user account belongs to multiple organizations, you may also include an `X-Buildbetter-Organization-Key` header to specify which organization's context to use for the query, though in most cases this is not needed unless explicitly working across organizations.)
**Note:** Ensure you include *one* form of authentication on every request. If no valid API key or token is provided, the API will return an **Unauthorized** error (HTTP 401). API keys and tokens should be kept secret – do not expose them in client-side code or public repositories.
## REST Endpoint
The base URL for REST endpoints is:
```text theme={null}
https://api.buildbetter.app/v3/rest
```
For example, recording reads are available under `/recordings/{recordingId}`. See [Recordings API](/pages/api/recordings).
## Legacy GraphQL Endpoint
The BuildBetter GraphQL API is deprecated for customer integrations. Existing integrations may still use the legacy GraphQL endpoint during migration:
```
https://api.buildbetter.app/v1/graphql
```
Legacy GraphQL HTTP requests should be sent as POST requests to this URL. For example, you might send a JSON payload like:
```json theme={null}
{
"query": "query { ... }",
"variables": { ... }
}
```
to `https://api.buildbetter.app/v1/graphql`. The API will respond with a JSON object containing your query results or errors.
For real-time updates, the API also supports GraphQL subscriptions over WebSocket. The WebSocket endpoint is the same except with the `wss://` protocol. For example, `wss://api.buildbetter.app/v1/graphql` is used for subscriptions. (In a web app using Apollo or similar, you would configure the WebSocket URI for subscriptions accordingly.)
**CORS:** The GraphQL endpoint is CORS-enabled for allowed origins. When making requests from a browser or frontend app, ensure your origin is allowed. By default, the endpoint will accept requests from BuildBetter's domains (and in development, it may be configured to accept localhost).
# Accessing Data Models
Source: https://docs.buildbetter.ai/pages/api/data-access
Learn how to query core data types in the BuildBetter API: Calls (Interviews), Signals (Extractions), and Documents.
The BuildBetter GraphQL API is being deprecated for customer integrations. Use the REST API for new integrations and migrate existing GraphQL workflows to REST as endpoints become available. This section remains available as a legacy migration reference for GraphQL types such as `interview` (calls), `extraction` (signals), and `document` (documents).
The GraphQL API is deprecated for customer integrations. Move recording and transcript access to the [Recordings API](/pages/api/recordings).
## Calls (Interviews)
**Calls** represent recorded conversations (often meetings or user interviews) that have been ingested into BuildBetter. In the legacy GraphQL API, calls are exposed via the `interview` type. Key fields on a call include:
* `id`: The unique identifier of the call in GraphQL (BigInt). REST recording endpoints are transitioning to public UUID IDs.
* `name`: A title or name of the call (often an automatically generated name, or one provided by the user).
* `started_at` and `completed_at`: Timestamps for when the call started and when it ended (if completed).
* `asset_url` and `asset_duration_seconds`: Info about the recorded media (e.g., a URL to the audio/video and its duration).
* `type`: The call type or category (for example, demo call, user interview, etc.). This is an object relationship; you can query `type { id name }` to get the type's name.
* `tags`: Any tags associated with the call (an array relationship). Each tag object has a name and color, accessible via `tags { tag { name color } }`.
* **Participants:** The people who participated in the call. Participants are accessible via the `attendees` relationship. Each `attendee` has a `person` object with details. For example, you can query `attendees { person { first_name last_name email avatar_url } }` to get the names and emails of participants. If a participant is a registered user in your organization, the `person` will link to a `user` account (you can see `person.user.id`), otherwise it may just have a name/email from the calendar invite. The attendee record also includes a `speaker` label (an identifier for that speaker in transcript data).
* **Transcript:** BuildBetter automatically transcribes calls. Move transcript reads to REST. During migration, use the sentence-backed GraphQL transcript relationships on `interview`:
* `sentences`: Sentence-level transcript rows. Each row has `text`, `start_sec`, `end_sec`, and `speaker`.
* `transcript_segments`: A compatibility relationship backed by the same sentence-level transcript data.
The GraphQL API is being deprecated for customer integrations, and GraphQL `interview.monologues` is deprecated as of Wednesday, July 1, 2026. Do not build new GraphQL integrations; move to REST. During migration, use `sentences` or `transcript_segments` instead of `monologues`.
You can fetch any subset of these fields in a single query. For example, if you want the call's basic info, participants, and transcript, you can retrieve `id, name, started_at, attendees {...}, sentences {...}` all in one query. Be mindful that transcript text can be long; if you only need a portion, fetch a limited subset of sentence rows or apply a time filter.
If you need contiguous same-speaker transcript blocks, use the REST transcript endpoint with `type=monologue`. See [Recordings API](/pages/api/recordings) for the REST recording and transcript paths.
**Permissions:** When using a user token or an organization API key, you will only see calls that belong to your organization. Each call is associated with an `organization_id` internally, and the API enforces that you can only query calls for your org. If you use a *shared call* API key (for example, a link shared with an external user for one call), you will only have access to that specific call (the API uses a special role `shared-object` behind the scenes for this). In practice, just ensure you use the correct API key or token, and the GraphQL queries will return only the calls you're allowed to see.
## Signals (Extractions)
**Signals** are insights or notable data points extracted from calls (and possibly other sources). In the BuildBetter system, signals are often referred to as **extractions**. Each extraction corresponds to a specific piece of information identified in a call transcript, such as a highlight, an action item, a user sentiment, a mention of a topic, etc. The GraphQL type for signals is `extraction`. Key fields and how to query signals:
* `id`: Unique identifier for the signal (BigInt).
* `interview_id`: The ID of the call (interview) from which this signal was extracted. Typically you will filter signals by a particular call. For example, `extraction(where: { interview_id: { _eq: someCallId } }) { ... }` gives all signals for a given call.
* `summary`: A short summary or title of the signal. This is usually a one-liner or brief description of the insight.
* `context`: A longer context string, often a direct excerpt from the transcript around the moment of this signal. For example, if the signal is a "Pain Point" mentioned by a user, the `context` might be a sentence or two from the call where the user described the pain point. This helps you understand the signal in its original context.
* `start_sec` / `end_sec`: Timestamps in the call recording that delimit where this signal occurred (in seconds from start of call). Using these, you could, for instance, locate the segment in the audio/video or display the time in a player.
* `types`: Signals are categorized by type. The `types` field is an array relationship linking the signal to one or more types. Each entry has a `type { id name }` object, which might be things like "Pain Point", "Feature Request", "Positive Feedback", etc., depending on how your organization defines signal types. In many cases a signal has exactly one type, but the schema allows multiple.
* `topics`: Similar to types, signals can be associated with topics. The `topics` field is an array of topics (keywords or themes) relevant to the signal. Each has a `topic { id text }` sub-object. For example, a signal might have a topic "Pricing" if the user was talking about pricing concerns.
* `attendee`: This is an object relationship to the call participant (attendee) who spoke the content related to the signal. If the signal is tied to something a specific person said, the `attendee` link will let you retrieve that person. For instance, you could query `attendee { person { first_name last_name } }` to get the name of the speaker. (The linking is done via the call ID and a speaker identifier internally.) Not all extractions may have an attendee (for example, if a signal is derived from multiple speakers or from the call metadata), but most conversational signals will.
* `creator`: In some cases, signals can be created or confirmed by users. The `creator` field points to a `user` who created the signal (or who the system associates as responsible). For automatically generated signals, this might be null. If present, you can fetch `creator { person { first_name last_name } }` to see which user added the signal. (This is more relevant if your workflow allows manually adding signals.)
To query signals effectively, you will usually filter by a call. A typical query might look like: "Get all signals for Call X, including their type, topic, and context." You can also filter by type or other properties. For example, you could ask for only signals of a certain category across all calls, using a filter on `types` or a specific `extraction_type`. The schema supports complex filters (using `_exists` or joining through relationships), although common use-cases involve filtering by call or topic.
As with calls, permissions ensure that you only see signals for calls you have access to. If you query with an organization-scoped API key or user token, the `extraction` records returned will automatically be filtered to those belonging to your organization's calls.
## Documents
**Documents** in BuildBetter are pieces of content that may be generated from calls or created by users. Examples of documents include AI-generated summaries of one or multiple calls, or reports compiled from various signals. The GraphQL type is `document`. A document can be thought of as a standalone piece of text/content with associated metadata. Important fields and relationships for documents:
* `id`: Unique document ID (BigInt).
* `name`: The title or name of the document. This might be a user-provided title or an auto-generated one (e.g., "Summary of September 2025 User Interviews").
* `content`: The main content of the document. This is typically a large text field (for instance, the full text of a summary or report). When you query this field, you will get the entire content string. It could be a few paragraphs or several pages of text, depending on the document.
* `status`: The status of the document's generation or processing. This is usually an enum with values like `waiting`, `processing`, `completed`, or `error`. A newly requested AI summary might be `processing`, and once done it becomes `completed`. If something went wrong, it might be `error`.
* `created_at` / `updated_at`: Timestamps for when the document was created and last updated.
* `creator`: The user who created the document. This is a relation to a `user`. You can query `creator { person { first_name last_name } }` to get the name of who initiated or authored the document (for AI-generated content, this is the user who triggered the generation).
* `template`: If the document was created using a specific template (BuildBetter supports document templates for consistent formatting), the `template` field provides details. You can get the template's `name` and description via `template { name description }`. This may be null if no template was used.
* `permission`: An enum indicating the document's visibility, e.g. `private` or `public`. Private documents are only accessible to your organization, while public might be shareable via a public link (still requires a valid share key in practice).
* **Source Data (Input):** A document can be derived from one or more calls or even an entire folder of calls. The relationship `input_data` links a document to its source **calls** or **folders**. Each `input_data` entry can have either a `call` (interview) or a `folder` reference:
* If the document was generated from specific calls, you will see one or more `input_data` items with a `call` object. For example, `input_data { call { id name created_at } }` will list each source call used in making the document (with call ID, name, date).
* If the document was generated from a folder (which could imply all calls in that folder were used), then `input_data` might contain a `folder` object instead. You can query `input_data { folder { id name } }` in that case.
* The schema ensures an `input_data` entry is either a call or a folder (but not both). Typically, for an "All-hands summary" document that covers multiple calls, you'd see multiple `call` entries in `input_data`.
Using these fields, you can fetch a document and understand what it contains and where it came from. For instance, you might query a document's `name`, `content`, `status`, and then also retrieve the list of calls that were used to generate it via `input_data.call`. This lets you display the context, e.g., "This summary was generated from 3 calls (Call A, Call B, Call C)".
**Permissions:** Documents belong to an organization and possibly have their own sharing settings. With an organization API key or user token, you will see all documents your org has access to. If you use a *shared document* API key (for a public/shared link), the API will treat you as a special `shared-object` role limited to that single document. In that case, you can only query that document (and its related data). Attempts to query other documents will return no data or permission errors. The API enforces that you cannot access documents outside your scope.
# Error Handling & Best Practices
Source: https://docs.buildbetter.ai/pages/api/error-handling
Learn how to handle errors and follow best practices for BuildBetter API integrations.
## Error Handling
The GraphQL API is being deprecated for customer integrations. Use REST for new integrations and migrate existing GraphQL workflows to REST.
When querying the legacy GraphQL API, you may encounter error responses. Errors are returned in the standard GraphQL error format (with an `"errors"` array in the JSON response). Here are some common error scenarios and how to address them:
* **Authentication/Authorization Errors:** If you do not provide a valid API key or token, or if it's expired or revoked, the request will be rejected. In many cases, you will receive an HTTP 401 Unauthorized response. Ensure that the `Authorization` or `X-Buildbetter-API-Key` header is present and correct. If you see an error like `"Not authorized"` or a similar message, double-check your credentials. Also, if you are using a shared link key, make sure you are querying the specific allowed data (for example, a shared document key cannot be used to fetch a different document).
* **Permission Denied (Forbidden):** Even with a valid login, you might try to access data you aren't allowed to. For example, querying a call ID that belongs to a different organization or a field that your role cannot see. In this case, the API might return a 403 Forbidden or an error message in the GraphQL errors indicating lack of permissions. For instance, you might get an error: `"permission denied for table 'interview'"` if you tried to access a resource outside your scope. The solution is to ensure you're querying IDs that belong to your organization or have the proper share key for that object. If you believe you should have access, check that your user has the necessary permissions in the BuildBetter app (or contact an admin).
* **Query Validation Errors:** If your GraphQL syntax is incorrect or you request a field that doesn't exist, the API will return a validation error. For example, \`"Cannot query field 'foobar' on type 'interview'". These indicate mistakes in the query. Double-check field names against the documentation or introspection. Similarly, if you use a variable but forget to include it or mismatch types (e.g., passing a string where a bigint is expected), you'll get a descriptive error. Resolving these usually involves fixing typos or adjusting your query to match the schema.
* **Complexity/Depth Errors:** The BuildBetter API has limits on query complexity to protect performance. Extremely nested or large queries can be rejected. Internally, the system calculates the query **depth** and **number of nodes**, and if these exceed certain thresholds (approximately depth > 100 or nodes > 1000 by default) the API will refuse to execute the query. In such cases, you might see an error message like: **"Query is too complex"**. To resolve this, simplify your query – for example, fetch less nested data or split the query into multiple smaller queries. Most typical queries will be far under these limits, but if you are auto-generating very deep queries (or fetching huge nested relationships in one go), be mindful of this limit. Best practice is to only request the data you truly need.
* **Rate Limiting or Server Errors:** While not usually an issue, if you send a very high volume of requests, you could run into rate limiting. The API might respond with a 429 Too Many Requests or a message indicating you should slow down. If you encounter this, implement exponential backoff or contact BuildBetter support for higher rate limits. For server-side errors (HTTP 500), these are rare and usually indicate an internal issue – you can retry the query after some time, and if it persists, reach out to support.
In all cases, the `"errors"` array in the response will contain message fields that guide you to the problem. During development, using a GraphQL client or IDE can help catch errors early (for example, GraphiQL or Apollo Studio will underline unknown fields or type mismatches). By carefully reading error messages and following the documentation, you can resolve most issues quickly.
## Best Practices
To keep legacy GraphQL integrations stable during migration, consider the following best practices:
* **Request Only What You Need:** GraphQL lets you specify exact fields. Avoid requesting large blocks of data if you don't need them. This reduces payload size and speeds up queries. For example, if you only need call names and IDs for a list view, query just those fields, not the entire transcript or all attendees.
* **Use Filters and Pagination:** When dealing with potentially large datasets (e.g., hundreds of calls or signals), use the `where` filters and pagination parameters (`limit` and `offset`) to limit how much data is returned. Fetch data in chunks rather than one huge query. For instance, to get calls in pages of 50, you can query `interview(limit: 50, offset: 0)` for the first page, then `offset: 50` for the next, and so on. Similarly, filter by date or other criteria to narrow results if applicable (e.g., only calls after a certain date).
* **Leverage GraphQL Fragments:** If you find yourself writing the same selection of fields in multiple queries, use GraphQL fragments to define that set of fields once and reuse it. This makes your queries cleaner and ensures consistency. For example, you might define a fragment for basic call info:
```graphql theme={null}
fragment CallBasicFields on interview {
id
name
started_at
completed_at
}
```
Then use `...CallBasicFields` in any query where you need those fields. Fragments are especially useful if your application has predefined data patterns (the BuildBetter frontend uses fragments to keep field selections consistent across different queries for calls, signals, etc. ).
* **Avoid Excessive Nesting:** As mentioned, extremely deep queries can hit complexity limits. While GraphQL can fetch related data in one go, try not to nest too many relationship levels in one query if not necessary. For example, pulling a call -> its attendees -> each attendee's user -> each user's organization -> etc., in one query is probably overkill and might be denied. Instead, fetch the call and attendees first, then if you need more info about a user or org, use a follow-up query (or design your schema usage such that you request what you need in a manageable shape).
* **Use Order-By and Aggregations for Efficiency:** The API supports sorting (`order_by`) and basic aggregations. If you need the data sorted or some aggregate like count, let the server do it if possible, instead of retrieving everything and sorting on the client. For example, use `order_by: { created_at: desc }` rather than fetching unsorted data and ordering in your code. To get a count of items, you can use the `_aggregate` fields that Hasura provides (for instance, `interview_aggregate { aggregate { count } }` will return the number of calls). This prevents you from fetching all records just to count them.
* **Respect Rate Limits and Timeouts:** Design your integration to be respectful of the API. Do not spam the server with rapid-fire requests; if you need to fetch a lot of data, page through it with delays as needed. The server may enforce rate limits. Also, network calls have timeouts – very large queries might time out, so it's another reason to break them into smaller pieces using pagination or targeted queries.
* **Secure Your API Keys:** If you are using API keys, treat them like passwords. Do not embed them in client-side code or share them publicly. If you need to call an API from a client application (like a single-page app), it's better to use the user's JWT (via the Authorization header) after they log in, rather than a master API key. API keys are best used in secure server environments.
* **Monitor Query Performance:** In a production environment, keep an eye on how long your queries take and how much data they return. GraphQL makes it easy to ask for a lot, but always consider the end-user experience. If a query is slow (for example, fetching a call with thousands of transcript segments and signals in one go), you might want to load parts of the data on demand (e.g., lazy-load the transcript when a user opens a call detail view, instead of in the initial query).
By following these best practices, you can keep existing GraphQL integrations stable while migrating to REST. For new integrations, use the REST API instead of GraphQL.
Finally, remember that the BuildBetter documentation and schema are your friends while you migrate. If you're unsure about a legacy GraphQL field or type, refer back to this guide or use schema introspection to get details.
# Feedback Ingestion Examples
Source: https://docs.buildbetter.ai/pages/api/feedback-examples
Implementation examples for ingesting feedback data into BuildBetter
Production-ready examples for ingesting feedback from various sources.
## Field Reference
When creating fields, use these valid categories and types:
**Categories:** `content`, `created_at`, `identifier`, `identity`, `metadata`
**Types:** `boolean`, `date`, `datetime`, `float`, `integer`, `json`, `string`
## Support Ticket Integration
Sync your customer support tickets to analyze alongside calls and product data.
```javascript theme={null}
// Zendesk webhook handler (Node.js/Express)
const express = require('express');
const axios = require('axios');
app.post('/webhooks/zendesk', async (req, res) => {
const ticket = req.body;
try {
// First, ensure the customer exists
await axios.put('https://api.buildbetter.app/v3/rest/people', {
email: ticket.requester.email,
first_name: ticket.requester.first_name,
last_name: ticket.requester.last_name,
company: {
name: ticket.organization?.name,
domain: ticket.requester.email.split('@')[1]
}
}, {
headers: {
'X-BuildBetter-Api-Key': 'YOUR_ORGANIZATION_API_KEY'
}
});
// Then ingest the ticket
await axios.post(
'https://api.buildbetter.app/v3/rest/feedback-sources/123/records',
{
person_id: ticket.requester.id,
display_ts: ticket.created_at,
external_id: `zendesk-${ticket.id}`,
fields: [
{
category: 'content',
type: 'string',
name: 'subject',
value: ticket.subject
},
{
category: 'content',
type: 'string',
name: 'description',
value: ticket.description
},
{
category: 'metadata',
type: 'string',
name: 'priority',
value: ticket.priority
},
{
category: 'metadata',
type: 'string',
name: 'status',
value: ticket.status
},
{
category: 'metadata',
type: 'string',
name: 'tags',
value: ticket.tags.join(', ')
}
]
},
{
headers: {
'X-BuildBetter-Api-Key': 'ORGANIZATION_API_KEY'
}
}
);
res.status(200).send('Ticket ingested successfully');
} catch (error) {
console.error('Failed to ingest ticket:', error);
res.status(500).send('Error processing ticket');
}
});
```
```python theme={null}
# Intercom conversation sync (Python)
import requests
from datetime import datetime
class IntercomIngester:
def __init__(self, api_key, feedback_source_id):
self.api_key = api_key
self.feedback_source_id = feedback_source_id
self.base_url = "https://api.buildbetter.app/v3/rest"
def sync_conversation(self, conversation):
"""Sync an Intercom conversation to BuildBetter"""
# Create or update the person
person_response = requests.put(
f"{self.base_url}/people",
headers={
"X-BuildBetter-Api-Key": self.api_key,
"Content-Type": "application/json"
},
json={
"email": conversation['user']['email'],
"first_name": conversation['user']['name'].split()[0],
"last_name": conversation['user']['name'].split()[-1],
"external_id": f"intercom-{conversation['user']['id']}"
}
)
person_id = person_response.json()['id']
# Ingest the conversation
feedback_data = {
"person_id": person_id,
"display_ts": datetime.fromtimestamp(
conversation['created_at']
).isoformat(),
"external_id": f"intercom-conv-{conversation['id']}",
"fields": [
{
"category": "content",
"type": "string",
"name": "conversation",
"value": conversation['conversation_message']['body']
},
{
"category": "metadata",
"type": "string",
"name": "source",
"value": "intercom"
},
{
"category": "metadata",
"type": "string",
"name": "rating",
"value": str(conversation.get('conversation_rating', {}).get('rating', ''))
},
{
"category": "metadata",
"type": "string",
"name": "tags",
"value": ', '.join([tag['name'] for tag in conversation.get('tags', [])])
}
]
}
response = requests.post(
f"{self.base_url}/feedback-sources/{self.feedback_source_id}/records",
headers={
"X-BuildBetter-Api-Key": self.api_key,
"Content-Type": "application/json"
},
json=feedback_data
)
return response.json()
# Usage
ingester = IntercomIngester('ORGANIZATION_API_KEY', 123)
ingester.sync_conversation(intercom_conversation_data)
```
```typescript theme={null}
// TypeScript implementation for custom support system
interface SupportTicket {
id: string;
customerId: string;
subject: string;
body: string;
priority: 'low' | 'medium' | 'high' | 'urgent';
category: string;
createdAt: Date;
resolvedAt?: Date;
}
class FeedbackIngester {
private apiKey: string;
private feedbackSourceId: number;
constructor(apiKey: string, feedbackSourceId: number) {
this.apiKey = apiKey;
this.feedbackSourceId = feedbackSourceId;
}
async ingestTicket(ticket: SupportTicket): Promise {
const fields = [
{
category: 'content',
type: 'string',
name: 'subject',
value: ticket.subject
},
{
category: 'content',
type: 'string',
name: 'body',
value: ticket.body
},
{
category: 'metadata',
type: 'string',
name: 'priority',
value: ticket.priority
},
{
category: 'metadata',
type: 'string',
name: 'category',
value: ticket.category
}
];
// Add resolution time if ticket is resolved
if (ticket.resolvedAt) {
fields.push({
category: 'metadata',
type: 'float',
name: 'resolution_time_hours',
value: (ticket.resolvedAt.getTime() - ticket.createdAt.getTime()) / 3600000
});
}
const response = await fetch(
`https://api.buildbetter.app/v3/rest/feedback-sources/${this.feedbackSourceId}/records`,
{
method: 'POST',
headers: {
'X-BuildBetter-Api-Key': this.apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify({
person_id: ticket.customerId,
display_ts: ticket.createdAt.toISOString(),
external_id: `ticket-${ticket.id}`,
fields
})
}
);
if (!response.ok) {
throw new Error(`Failed to ingest ticket: ${response.statusText}`);
}
}
async batchIngest(tickets: SupportTicket[]): Promise {
for (const ticket of tickets) {
try {
await this.ingestTicket(ticket);
console.log(`✓ Ingested ticket ${ticket.id}`);
} catch (error) {
console.error(`✗ Failed to ingest ticket ${ticket.id}:`, error);
}
}
}
}
```
## NPS Survey Integration
Capture Net Promoter Score feedback to track customer satisfaction trends.
```javascript theme={null}
// Delighted NPS webhook handler
const processDelightedSurvey = async (surveyData) => {
const { person, score, comment, created_at } = surveyData;
// Calculate NPS category
let category;
if (score >= 9) category = 'promoter';
else if (score >= 7) category = 'passive';
else category = 'detractor';
const feedbackPayload = {
display_ts: new Date(created_at * 1000).toISOString(),
external_id: `delighted-${surveyData.id}`,
fields: [
{
category: 'content',
type: 'integer',
name: 'nps_score',
value: score
},
{
category: 'content',
type: 'string',
name: 'feedback',
value: comment || ''
},
{
category: 'metadata',
type: 'string',
name: 'nps_category',
value: category
},
{
category: 'metadata',
type: 'string',
name: 'survey_platform',
value: 'delighted'
},
{
category: 'metadata',
type: 'json',
name: 'person_properties',
value: surveyData.person_properties || {}
}
]
};
// If person has email, ensure they exist first
if (person.email) {
await ensurePersonExists({
email: person.email,
first_name: person.name?.split(' ')[0],
last_name: person.name?.split(' ').slice(1).join(' ')
});
feedbackPayload.person_id = await getPersonId(person.email);
}
return await ingestFeedback(feedbackPayload);
};
```
```python theme={null}
# Typeform NPS survey integration
import requests
from typing import Dict, Any
class TypeformNPSIngester:
def __init__(self, api_key: str, feedback_source_id: int):
self.api_key = api_key
self.feedback_source_id = feedback_source_id
def process_typeform_response(self, response: Dict[str, Any]) -> None:
"""Process a Typeform NPS survey response"""
# Extract answers from Typeform response
answers = {
answer['field']['ref']: answer['number']
if answer['type'] == 'number'
else answer.get('text', answer.get('choice', {}).get('label', ''))
for answer in response['answers']
}
# Map Typeform fields to our structure
nps_score = answers.get('nps_score_field', 0)
feedback_text = answers.get('feedback_field', '')
email = answers.get('email_field', '')
# Create or update person if email provided
if email:
person_resp = requests.put(
'https://api.buildbetter.app/v3/rest/people',
headers={'X-BuildBetter-Api-Key': self.api_key},
json={'email': email}
)
person_id = person_resp.json()['id']
else:
person_id = None
# Prepare feedback fields
fields = [
{
'category': 'content',
'type': 'integer',
'name': 'nps_score',
'value': nps_score
},
{
'category': 'content',
'type': 'string',
'name': 'feedback',
'value': feedback_text
},
{
'category': 'metadata',
'type': 'string',
'name': 'survey_id',
'value': response['form_id']
},
{
'category': 'metadata',
'type': 'string',
'name': 'response_id',
'value': response['response_id']
}
]
# Add calculated metrics
if nps_score >= 9:
nps_category = 'promoter'
elif nps_score >= 7:
nps_category = 'passive'
else:
nps_category = 'detractor'
fields.append({
'category': 'metadata',
'type': 'string',
'name': 'nps_category',
'value': nps_category
})
# Ingest the feedback
payload = {
'display_ts': response['submitted_at'],
'external_id': f"typeform-{response['response_id']}",
'fields': fields
}
if person_id:
payload['person_id'] = person_id
requests.post(
f'https://api.buildbetter.app/v3/rest/feedback-sources/{self.feedback_source_id}/records',
headers={'X-BuildBetter-Api-Key': self.api_key},
json=payload
)
```
## Slack Feedback Capture
Monitor Slack channels for product feedback and feature requests.
```javascript theme={null}
// Slack bot that captures messages with specific emoji reactions
const { App } = require('@slack/bolt');
const axios = require('axios');
const app = new App({
token: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET
});
// Listen for feedback emoji reactions (e.g., :feedback:)
app.event('reaction_added', async ({ event, client }) => {
if (event.reaction !== 'feedback') return;
try {
// Get the message that was reacted to
const message = await client.conversations.history({
channel: event.item.channel,
latest: event.item.ts,
limit: 1,
inclusive: true
});
const messageData = message.messages[0];
// Get user info
const user = await client.users.info({
user: messageData.user
});
// Get channel info
const channel = await client.conversations.info({
channel: event.item.channel
});
// Ingest to BuildBetter
await axios.post(
'https://api.buildbetter.app/v3/rest/feedback-sources/125/records',
{
display_ts: new Date(parseFloat(messageData.ts) * 1000).toISOString(),
external_id: `slack-${event.item.channel}-${event.item.ts}`,
fields: [
{
category: 'content',
type: 'string',
name: 'message',
value: messageData.text
},
{
category: 'metadata',
type: 'string',
name: 'channel',
value: channel.channel.name
},
{
category: 'metadata',
type: 'string',
name: 'user',
value: user.user.real_name
},
{
category: 'metadata',
type: 'string',
name: 'user_email',
value: user.user.profile.email
},
{
category: 'metadata',
type: 'string',
name: 'thread_ts',
value: messageData.thread_ts || messageData.ts
}
]
},
{
headers: {
'X-BuildBetter-Api-Key': process.env.BUILDBETTER_API_KEY
}
}
);
// Add confirmation reaction
await client.reactions.add({
channel: event.item.channel,
timestamp: event.item.ts,
name: 'white_check_mark'
});
} catch (error) {
console.error('Error processing feedback:', error);
}
});
```
```python theme={null}
# Slack slash command for submitting feedback
from flask import Flask, request, jsonify
import requests
import hashlib
import hmac
import time
app = Flask(__name__)
def verify_slack_request(request):
"""Verify the request is from Slack"""
slack_signing_secret = 'YOUR_SLACK_SIGNING_SECRET'
timestamp = request.headers.get('X-Slack-Request-Timestamp', '')
signature = request.headers.get('X-Slack-Signature', '')
# Check timestamp to prevent replay attacks
if abs(time.time() - float(timestamp)) > 60 * 5:
return False
# Verify signature
sig_basestring = f"v0:{timestamp}:{request.get_data(as_text=True)}"
my_signature = 'v0=' + hmac.new(
slack_signing_secret.encode(),
sig_basestring.encode(),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(my_signature, signature)
@app.route('/slack/feedback', methods=['POST'])
def handle_feedback():
if not verify_slack_request(request):
return jsonify({'error': 'Invalid request'}), 403
data = request.form
# Parse the feedback command
# Format: /feedback [category] feedback text
text_parts = data['text'].split(' ', 1)
if len(text_parts) == 2 and text_parts[0] in ['bug', 'feature', 'improvement']:
category = text_parts[0]
feedback_text = text_parts[1]
else:
category = 'general'
feedback_text = data['text']
# Ingest to BuildBetter
feedback_data = {
'display_ts': datetime.now().isoformat(),
'external_id': f"slack-cmd-{data['response_url'].split('/')[-1]}",
'fields': [
{
'category': 'content',
'type': 'string',
'name': 'feedback',
'value': feedback_text
},
{
'category': 'metadata',
'type': 'string',
'name': 'category',
'value': category
},
{
'category': 'metadata',
'type': 'string',
'name': 'channel',
'value': data['channel_name']
},
{
'category': 'metadata',
'type': 'string',
'name': 'user',
'value': data['user_name']
},
{
'category': 'metadata',
'type': 'string',
'name': 'team',
'value': data['team_domain']
}
]
}
response = requests.post(
'https://api.buildbetter.app/v3/rest/feedback-sources/125/records',
headers={'X-BuildBetter-Api-Key': 'ORGANIZATION_API_KEY'},
json=feedback_data
)
if response.ok:
return jsonify({
'response_type': 'ephemeral',
'text': f'✅ Feedback submitted as {category}'
})
else:
return jsonify({
'response_type': 'ephemeral',
'text': '❌ Failed to submit feedback'
})
```
## Product Analytics Events
Ingest product usage events and user behavior data.
```typescript theme={null}
// Segment webhook handler for product events
interface SegmentEvent {
type: 'track' | 'identify' | 'page' | 'screen';
userId?: string;
anonymousId: string;
event?: string;
properties?: Record;
traits?: Record;
timestamp: string;
}
class SegmentToBuildbetter {
private apiKey: string;
private feedbackSourceId: number;
constructor(apiKey: string, feedbackSourceId: number) {
this.apiKey = apiKey;
this.feedbackSourceId = feedbackSourceId;
}
async processEvent(event: SegmentEvent): Promise {
// Only process specific events that are feedback-related
const feedbackEvents = [
'Feedback Submitted',
'Feature Requested',
'Bug Reported',
'Rating Provided',
'Survey Completed'
];
if (event.type !== 'track' || !feedbackEvents.includes(event.event!)) {
return;
}
const fields = [];
// Add the main event as content
fields.push({
category: 'content',
type: 'string',
name: 'event',
value: event.event
});
// Add relevant properties
if (event.properties?.feedback) {
fields.push({
category: 'content',
type: 'string',
name: 'feedback',
value: event.properties.feedback
});
}
if (event.properties?.rating) {
fields.push({
category: 'content',
type: 'integer',
name: 'rating',
value: event.properties.rating
});
}
// Add metadata
fields.push(
{
category: 'metadata',
type: 'string',
name: 'source',
value: 'segment'
},
{
category: 'metadata',
type: 'string',
name: 'user_id',
value: event.userId || event.anonymousId
}
);
// Add any custom properties as metadata
Object.entries(event.properties || {}).forEach(([key, value]) => {
if (!['feedback', 'rating'].includes(key)) {
fields.push({
category: 'metadata',
type: 'string',
name: key,
value: String(value)
});
}
});
await fetch(
`https://api.buildbetter.app/v3/rest/feedback-sources/${this.feedbackSourceId}/records`,
{
method: 'POST',
headers: {
'X-BuildBetter-Api-Key': this.apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify({
display_ts: event.timestamp,
external_id: `segment-${event.type}-${Date.now()}`,
fields
})
}
);
}
}
```
```python theme={null}
# Mixpanel event ingestion
import hashlib
from mixpanel import Mixpanel
import requests
class MixpanelFeedbackSync:
def __init__(self, buildbetter_api_key, feedback_source_id):
self.bb_api_key = buildbetter_api_key
self.feedback_source_id = feedback_source_id
def sync_feedback_events(self, events):
"""Sync Mixpanel feedback events to BuildBetter"""
for event in events:
# Filter for feedback-related events
if event['event'] not in ['Feedback Sent', 'Feature Vote', 'Issue Report']:
continue
properties = event['properties']
# Build fields array
fields = [
{
'category': 'content',
'type': 'string',
'name': 'event_type',
'value': event['event']
}
]
# Add feedback content if present
if 'feedback_text' in properties:
fields.append({
'category': 'content',
'type': 'string',
'name': 'feedback',
'value': properties['feedback_text']
})
# Add metadata
metadata_fields = [
'distinct_id', 'mp_country_code', 'mp_region',
'browser', 'os', 'device', 'feature_area',
'user_segment', 'account_type'
]
for field in metadata_fields:
if field in properties:
fields.append({
'category': 'metadata',
'type': 'string',
'name': field,
'value': str(properties[field])
})
# Generate unique ID
event_id = hashlib.md5(
f"{event['event']}-{properties.get('time', '')}-{properties.get('distinct_id', '')}".encode()
).hexdigest()
# Ingest to BuildBetter
requests.post(
f'https://api.buildbetter.app/v3/rest/feedback-sources/{self.feedback_source_id}/records',
headers={'X-BuildBetter-Api-Key': self.bb_api_key},
json={
'display_ts': datetime.fromtimestamp(properties['time']).isoformat(),
'external_id': f'mixpanel-{event_id}',
'fields': fields
}
)
```
## Email Feedback Processing
Process feedback received via email or contact forms.
```javascript theme={null}
// Email parser for feedback (using SendGrid Inbound Parse)
const sgMail = require('@sendgrid/mail');
const multer = require('multer');
const upload = multer();
app.post('/email/feedback', upload.none(), async (req, res) => {
const { from, subject, text, html, envelope } = req.body;
// Parse sender email
const fromEmail = from.match(/<(.+)>/)?.[1] || from;
const fromName = from.match(/^([^<]+)/)?.[1]?.trim() || '';
// Parse email metadata
const envelopeData = JSON.parse(envelope);
// Extract feedback category from subject or email address
let category = 'general';
if (subject.toLowerCase().includes('bug')) category = 'bug';
else if (subject.toLowerCase().includes('feature')) category = 'feature_request';
else if (envelopeData.to.includes('support@')) category = 'support';
// Clean up email text (remove signatures, quotes, etc.)
const cleanText = text
.split(/^>|^On .+ wrote:|^-{2,}|^_{2,}/m)[0]
.trim();
// Ensure person exists
const personData = {
email: fromEmail,
first_name: fromName.split(' ')[0],
last_name: fromName.split(' ').slice(1).join(' ')
};
const personResponse = await axios.put(
'https://api.buildbetter.app/v3/rest/people',
personData,
{
headers: { 'X-BuildBetter-Api-Key': 'ORGANIZATION_API_KEY' }
}
);
// Ingest feedback
const feedbackData = {
person_id: personResponse.data.id,
display_ts: new Date().toISOString(),
external_id: `email-${Date.now()}-${fromEmail}`,
fields: [
{
category: 'content',
type: 'string',
name: 'subject',
value: subject
},
{
category: 'content',
type: 'string',
name: 'message',
value: cleanText
},
{
category: 'metadata',
type: 'string',
name: 'category',
value: category
},
{
category: 'metadata',
type: 'string',
name: 'source',
value: 'email'
},
{
category: 'metadata',
type: 'string',
name: 'to_address',
value: envelopeData.to[0]
}
]
};
await axios.post(
'https://api.buildbetter.app/v3/rest/feedback-sources/126/records',
feedbackData,
{
headers: { 'X-BuildBetter-Api-Key': 'ORGANIZATION_API_KEY' }
}
);
// Send auto-reply
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
await sgMail.send({
to: fromEmail,
from: 'feedback@yourcompany.com',
subject: 'Re: ' + subject,
text: `Thank you for your feedback! We've received your message and will review it shortly.
Your feedback helps us improve our product.
Reference ID: ${feedbackData.external_id}`
});
res.status(200).send('OK');
});
```
## Batch Import from CSV
Import historical feedback data from CSV files.
```python theme={null}
import csv
import requests
from datetime import datetime
import time
class CSVFeedbackImporter:
def __init__(self, api_key, feedback_source_id):
self.api_key = api_key
self.feedback_source_id = feedback_source_id
self.base_url = "https://api.buildbetter.app/v3/rest"
def import_csv(self, csv_file_path, mapping):
"""
Import feedback from CSV file
mapping = {
'email': 'customer_email', # CSV column -> field name
'feedback': 'comment',
'score': 'rating',
'date': 'created_at'
}
"""
with open(csv_file_path, 'r') as file:
reader = csv.DictReader(file)
success_count = 0
error_count = 0
for row_num, row in enumerate(reader, start=2):
try:
# Map CSV columns to our structure
email = row.get(mapping.get('email'))
# Create person if email exists
person_id = None
if email:
person_resp = requests.put(
f"{self.base_url}/people",
headers={'X-BuildBetter-Api-Key': self.api_key},
json={'email': email}
)
if person_resp.ok:
person_id = person_resp.json()['id']
# Build fields from mapping
fields = []
if 'feedback' in mapping and row.get(mapping['feedback']):
fields.append({
'category': 'content',
'type': 'string',
'name': 'feedback',
'value': row[mapping['feedback']]
})
if 'score' in mapping and row.get(mapping['score']):
fields.append({
'category': 'content',
'type': 'integer',
'name': 'score',
'value': int(row[mapping['score']])
})
# Add any additional columns as metadata
for csv_col, field_name in mapping.items():
if csv_col not in ['email', 'feedback', 'score', 'date']:
if row.get(csv_col):
fields.append({
'category': 'metadata',
'type': 'string',
'name': field_name,
'value': row[csv_col]
})
# Parse date
display_ts = datetime.now().isoformat()
if 'date' in mapping and row.get(mapping['date']):
try:
display_ts = datetime.strptime(
row[mapping['date']],
'%Y-%m-%d %H:%M:%S'
).isoformat()
except:
pass
# Create feedback record
feedback_data = {
'display_ts': display_ts,
'external_id': f'csv-import-row-{row_num}',
'fields': fields
}
if person_id:
feedback_data['person_id'] = person_id
response = requests.post(
f"{self.base_url}/feedback-sources/{self.feedback_source_id}/records",
headers={'X-BuildBetter-Api-Key': self.api_key},
json=feedback_data
)
if response.ok:
success_count += 1
print(f"✓ Row {row_num} imported")
else:
error_count += 1
print(f"✗ Row {row_num} failed: {response.text}")
# Rate limiting
time.sleep(0.1)
except Exception as e:
error_count += 1
print(f"✗ Row {row_num} error: {str(e)}")
print(f"\nImport complete: {success_count} successful, {error_count} errors")
# Usage
importer = CSVFeedbackImporter('ORGANIZATION_API_KEY', 123)
importer.import_csv('feedback_export.csv', {
'email': 'Customer Email',
'feedback': 'Comment',
'score': 'NPS Score',
'date': 'Submitted At',
'product': 'Product Area',
'account_type': 'Plan Type'
})
```
## Error Handling & Retry Logic
Implement robust error handling for production systems.
```typescript theme={null}
class RobustFeedbackIngester {
private maxRetries = 3;
private retryDelay = 1000; // Start with 1 second
async ingestWithRetry(
feedbackData: any,
attemptNum: number = 1
): Promise {
try {
const response = await fetch(
`https://api.buildbetter.app/v3/rest/feedback-sources/${this.feedbackSourceId}/records`,
{
method: 'POST',
headers: {
'X-BuildBetter-Api-Key': this.apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify(feedbackData)
}
);
if (response.status === 409) {
// Duplicate entry - this is okay
console.log(`Duplicate entry: ${feedbackData.external_id}`);
return { status: 'duplicate' };
}
if (!response.ok) {
const error = await response.text();
throw new Error(`HTTP ${response.status}: ${error}`);
}
return await response.json();
} catch (error) {
console.error(`Attempt ${attemptNum} failed:`, error);
if (attemptNum >= this.maxRetries) {
// Log to error queue for manual review
await this.logFailedIngestion(feedbackData, error);
throw error;
}
// Exponential backoff
const delay = this.retryDelay * Math.pow(2, attemptNum - 1);
await new Promise(resolve => setTimeout(resolve, delay));
return this.ingestWithRetry(feedbackData, attemptNum + 1);
}
}
private async logFailedIngestion(data: any, error: any): Promise {
// Log to your error tracking system
console.error('Failed to ingest after retries:', {
data,
error: error.message,
timestamp: new Date().toISOString()
});
// Could also write to a dead letter queue for later processing
}
}
```
## Tips
* **Use external\_id** to prevent duplicate records
* **Handle errors gracefully** - implement retry logic for transient failures
* **Store API keys securely** in environment variables, not in code
* **Monitor success rates** to catch issues early
## Next Steps
View the complete Feedback Ingestion API reference
Reference legacy GraphQL examples during migration
# Feedback Ingestion API
Source: https://docs.buildbetter.ai/pages/api/feedback-ingestion
Send customer feedback, surveys, and support data to BuildBetter
Ingest external feedback data into BuildBetter to analyze alongside your calls and documents. This includes support tickets, NPS surveys, Slack messages, and more.
## Quick Start
Define where your feedback comes from (e.g., "Support Tickets", "NPS Survey")
Ensure the person exists in your system
Ingest structured feedback with content and metadata
## Authentication
All requests require authentication:
```bash theme={null}
X-BuildBetter-Api-Key: ORGANIZATION_API_KEY
```
## Endpoints
### Create Feedback Source
Creates a new feedback source to categorize your data.
```bash theme={null}
POST https://api.buildbetter.app/v3/rest/feedback-sources
Content-Type: application/json
X-BuildBetter-Api-Key: ORGANIZATION_API_KEY
{
"name": "Customer Support Tickets",
"type": "api"
}
```
**Response:**
```json theme={null}
{
"id": 123,
"name": "Customer Support Tickets",
"type": "api",
"created_at": "2025-01-01T12:00:00Z"
}
```
### Create or Update Person
Ensures a person exists before ingesting their feedback.
```bash theme={null}
PUT https://api.buildbetter.app/v3/rest/people
Content-Type: application/json
X-BuildBetter-Api-Key: ORGANIZATION_API_KEY
{
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
"boundary": "external",
"company": {
"name": "Example Corp",
"domain": "example.com"
}
}
```
**Response:**
```json theme={null}
{
"id": 456,
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
"company_id": 789,
"created_at": "2025-01-01T12:00:00Z"
}
```
### Ingest Feedback Record
Sends structured feedback data to a feedback source.
```bash theme={null}
POST https://api.buildbetter.app/v3/rest/feedback-sources/123/records
Content-Type: application/json
X-BuildBetter-Api-Key: ORGANIZATION_API_KEY
{
"person_id": 456,
"display_ts": "2025-01-01T10:30:00Z",
"external_id": "unique-id-123",
"fields": [
{
"category": "content",
"type": "string",
"name": "feedback",
"value": "Your actual feedback text here"
},
{
"category": "metadata",
"type": "string",
"name": "priority",
"value": "high"
}
]
}
```
**Response:**
```json theme={null}
{
"id": 789,
"person_id": 456,
"feedback_source_id": 123,
"display_ts": "2025-01-01T10:30:00Z",
"external_id": "unique-id-123",
"created_at": "2025-01-01T10:30:00Z"
}
```
## Field Structure
### Categories
* **`content`** - The actual feedback (comments, descriptions, messages)
* **`created_at`** - Timestamp fields
* **`identifier`** - External identifiers and references
* **`identity`** - User or entity identification fields
* **`metadata`** - Additional context (priority, tags, channel, etc.)
### Types
* **`boolean`** - True/false values
* **`date`** - Date only values
* **`datetime`** - Date and time values
* **`float`** - Decimal numeric values
* **`integer`** - Whole number values
* **`json`** - Structured JSON data
* **`string`** - Text content
### Example Field
```json theme={null}
{
"category": "content",
"type": "string",
"name": "customer_comment",
"value": "The new dashboard is fantastic!"
}
```
## Implementation Examples
```bash theme={null}
curl -X POST https://api.buildbetter.app/v3/rest/feedback-sources/123/records \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"person_id": 456,
"display_ts": "2025-01-01T10:30:00Z",
"external_id": "ticket-789",
"fields": [
{
"category": "content",
"type": "string",
"name": "subject",
"value": "Cannot log into mobile app"
},
{
"category": "content",
"type": "string",
"name": "description",
"value": "Face ID authentication is failing on iOS"
},
{
"category": "metadata",
"type": "string",
"name": "priority",
"value": "high"
},
{
"category": "metadata",
"type": "string",
"name": "product_area",
"value": "mobile_auth"
}
]
}'
```
```bash theme={null}
curl -X POST https://api.buildbetter.app/v3/rest/feedback-sources/124/records \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"person_id": 456,
"display_ts": "2025-01-01T14:00:00Z",
"external_id": "nps-2025-q1-456",
"fields": [
{
"category": "content",
"type": "integer",
"name": "nps_score",
"value": 9
},
{
"category": "content",
"type": "string",
"name": "feedback",
"value": "Love the new features!"
},
{
"category": "metadata",
"type": "string",
"name": "survey_type",
"value": "quarterly_nps"
}
]
}'
```
```bash theme={null}
curl -X POST https://api.buildbetter.app/v3/rest/feedback-sources/125/records \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"person_id": 789,
"display_ts": "2025-01-01T16:45:00Z",
"external_id": "slack-msg-abc123",
"fields": [
{
"category": "content",
"type": "string",
"name": "message",
"value": "The API is really slow today"
},
{
"category": "metadata",
"type": "string",
"name": "channel",
"value": "#product-feedback"
},
{
"category": "metadata",
"type": "string",
"name": "urgency",
"value": "medium"
}
]
}'
```
## Best Practices
* **Use external\_id** to prevent duplicate records
* **Set display\_ts** to the original timestamp when the feedback was created
* **Validate data** before sending to avoid errors
* **Use snake\_case** and descriptive field names for consistency
* **Include relevant metadata** for better filtering and analysis
## Error Handling
Common error responses and how to handle them:
**Invalid request format or missing required fields**
Check that:
* All required fields are present
* JSON is properly formatted
* Field types match expected values
**Invalid or missing API key**
Ensure:
* API key is included in X-BuildBetter-Api-Key header
* Key format is correct
* API key has necessary permissions
**Feedback source or person not found**
Verify:
* Feedback source ID exists
* Person ID is valid (if provided)
* You have access to the resource
**Duplicate external\_id detected**
Resolution:
* Use a unique external\_id
* Check if record already exists
* Update existing record if needed
## Rate Limits
* **Requests per minute:** 100
* **Records per request:** 1
* **Field size limit:** 10KB per field value
## Next Steps
Reference legacy GraphQL queries during migration
Set up real-time notifications for feedback events
# Legacy GraphQL Examples
Source: https://docs.buildbetter.ai/pages/api/graphql-examples
Legacy GraphQL examples for integrations migrating to the BuildBetter REST API.
The BuildBetter GraphQL API is being deprecated for customer integrations. Use REST for new work and migrate existing GraphQL integrations to REST.
GraphQL examples on this page are legacy migration reference. Move recording and transcript reads to the [Recordings API](/pages/api/recordings).
## Getting Recent Calls
Retrieve the most recent calls from your workspace with participant information.
```graphql theme={null}
query GetRecentCalls {
interview(limit: 5, order_by: { started_at: desc }) {
id
name
started_at
duration_sec
type {
name
}
attendees {
person {
first_name
last_name
email
}
}
}
}
```
```json theme={null}
{
"data": {
"interview": [
{
"id": 12345,
"name": "Product Review Meeting",
"started_at": "2025-01-15T14:00:00Z",
"duration_sec": 1800,
"type": {
"name": "Internal Meeting"
},
"attendees": [
{
"person": {
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com"
}
}
]
}
]
}
}
```
```javascript theme={null}
// JavaScript/Node.js example
const axios = require('axios');
async function getRecentCalls() {
const query = `
query GetRecentCalls {
interview(limit: 5, order_by: { started_at: desc }) {
id
name
started_at
attendees {
person {
first_name
last_name
}
}
}
}
`;
const response = await axios.post(
'https://api.buildbetter.app/graphql',
{ query },
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
return response.data;
}
```
## Extracting Call Insights
Get signals and key moments from a specific call.
```graphql theme={null}
query GetCallInsights($callId: bigint!) {
extraction(
where: { interview_id: { _eq: $callId } }
order_by: { start_sec: asc }
) {
id
summary
context
start_sec
end_sec
types {
type {
name
}
}
topics {
topic {
text
}
}
attendee {
person {
first_name
last_name
}
}
}
}
```
```json theme={null}
{
"callId": 12345
}
```
```python theme={null}
import requests
import json
def get_call_insights(call_id):
url = "https://api.buildbetter.app/graphql"
query = """
query GetCallInsights($callId: bigint!) {
extraction(
where: { interview_id: { _eq: $callId } }
order_by: { start_sec: asc }
) {
id
summary
context
types {
type {
name
}
}
}
}
"""
variables = {"callId": call_id}
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
response = requests.post(
url,
json={"query": query, "variables": variables},
headers=headers
)
return response.json()
# Usage
insights = get_call_insights(12345)
for signal in insights['data']['extraction']:
print(f"Signal: {signal['summary']}")
print(f"Type: {signal['types'][0]['type']['name']}")
```
## Building a Call Dashboard
Create a comprehensive dashboard showing calls, participants, and key metrics.
```graphql theme={null}
query DashboardData($startDate: timestamptz!, $endDate: timestamptz!) {
# Get calls in date range
calls: interview(
where: {
started_at: { _gte: $startDate, _lte: $endDate }
}
order_by: { started_at: desc }
) {
id
name
started_at
duration_sec
attendee_count: attendees_aggregate {
aggregate {
count
}
}
signal_count: extractions_aggregate {
aggregate {
count
}
}
}
# Get top participants
participants: person(
limit: 10
order_by: { attendances_aggregate: { count: desc } }
) {
first_name
last_name
email
call_count: attendances_aggregate {
aggregate {
count
}
}
}
# Get signal statistics
signals: extraction_aggregate(
where: {
interview: {
started_at: { _gte: $startDate, _lte: $endDate }
}
}
) {
aggregate {
count
}
}
}
```
```jsx theme={null}
import React, { useEffect, useState } from 'react';
import { useQuery, gql } from '@apollo/client';
const DASHBOARD_QUERY = gql`
query DashboardData($startDate: timestamptz!, $endDate: timestamptz!) {
calls: interview(
where: {
started_at: { _gte: $startDate, _lte: $endDate }
}
order_by: { started_at: desc }
) {
id
name
started_at
duration_sec
}
}
`;
function CallDashboard() {
const [startDate] = useState(new Date(Date.now() - 7 * 24 * 60 * 60 * 1000));
const [endDate] = useState(new Date());
const { loading, error, data } = useQuery(DASHBOARD_QUERY, {
variables: {
startDate: startDate.toISOString(),
endDate: endDate.toISOString()
}
});
if (loading) return
);
}
```
## Searching and Filtering
Find specific calls or content across your workspace.
```graphql theme={null}
query SearchCalls(
$searchTerm: String!
$participantEmail: String
$startDate: timestamptz
$endDate: timestamptz
) {
interview(
where: {
_and: [
{ name: { _ilike: $searchTerm } }
{ started_at: { _gte: $startDate } }
{ started_at: { _lte: $endDate } }
{
attendees: {
person: {
email: { _eq: $participantEmail }
}
}
}
]
}
order_by: { started_at: desc }
) {
id
name
started_at
attendees {
person {
first_name
last_name
email
}
}
}
}
```
```graphql theme={null}
# Find calls with specific signal types
query CallsWithPainPoints {
interview(
where: {
extractions: {
types: {
type: {
name: { _eq: "Pain Point" }
}
}
}
}
) {
id
name
pain_points: extractions(
where: {
types: {
type: {
name: { _eq: "Pain Point" }
}
}
}
) {
summary
context
}
}
}
```
## Document Generation Status
Monitor AI-generated document creation and status.
```graphql theme={null}
query GetDocumentStatus($docId: bigint!) {
document_by_pk(id: $docId) {
id
name
status
content
created_at
updated_at
creator {
person {
first_name
last_name
}
}
# Source calls used to generate this document
input_data {
call {
id
name
started_at
}
}
}
}
```
```typescript theme={null}
// TypeScript implementation with polling
import { ApolloClient, InMemoryCache, gql } from '@apollo/client';
class DocumentMonitor {
private client: ApolloClient;
constructor(apiKey: string) {
this.client = new ApolloClient({
uri: 'https://api.buildbetter.app/graphql',
cache: new InMemoryCache(),
headers: {
'Authorization': `Bearer ${apiKey}`
}
});
}
async pollDocumentStatus(
docId: number,
onComplete: (doc: any) => void,
interval: number = 5000
): Promise {
const query = gql`
query GetDocumentStatus($docId: bigint!) {
document_by_pk(id: $docId) {
id
name
status
content
}
}
`;
const checkStatus = async () => {
const result = await this.client.query({
query,
variables: { docId },
fetchPolicy: 'network-only'
});
const doc = result.data.document_by_pk;
if (doc.status === 'completed') {
onComplete(doc);
} else {
setTimeout(checkStatus, interval);
}
};
await checkStatus();
}
}
// Usage
const monitor = new DocumentMonitor('YOUR_API_KEY');
monitor.pollDocumentStatus(12345, (doc) => {
console.log('Document ready:', doc.name);
console.log('Content:', doc.content);
});
```
## Pagination Patterns
Handle large datasets efficiently with cursor-based or offset pagination.
```graphql theme={null}
query GetCallsPaginated($limit: Int!, $offset: Int!) {
interview(
limit: $limit
offset: $offset
order_by: { started_at: desc }
) {
id
name
started_at
}
# Get total count for pagination controls
interview_aggregate {
aggregate {
count
}
}
}
```
```javascript theme={null}
class CallPaginator {
constructor(apiClient, pageSize = 10) {
this.client = apiClient;
this.pageSize = pageSize;
this.currentPage = 0;
}
async getPage(pageNumber) {
const offset = pageNumber * this.pageSize;
const query = `
query GetCallsPaginated($limit: Int!, $offset: Int!) {
interview(
limit: $limit
offset: $offset
order_by: { started_at: desc }
) {
id
name
started_at
}
interview_aggregate {
aggregate {
count
}
}
}
`;
const result = await this.client.query({
query,
variables: {
limit: this.pageSize,
offset
}
});
const totalCount = result.data.interview_aggregate.aggregate.count;
const totalPages = Math.ceil(totalCount / this.pageSize);
return {
data: result.data.interview,
pageInfo: {
currentPage: pageNumber,
totalPages,
totalCount,
hasNext: pageNumber < totalPages - 1,
hasPrev: pageNumber > 0
}
};
}
}
```
## Error Handling
Properly handle errors and edge cases in your GraphQL implementations.
```javascript theme={null}
async function safeGraphQLQuery(query, variables = {}) {
try {
const response = await fetch('https://api.buildbetter.app/graphql', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ query, variables })
});
const result = await response.json();
// Check for GraphQL errors
if (result.errors) {
console.error('GraphQL Errors:', result.errors);
// Handle specific error types
result.errors.forEach(error => {
if (error.message.includes('permission denied')) {
throw new Error('Access denied. Check your API key permissions.');
}
if (error.message.includes('not found')) {
throw new Error('Resource not found.');
}
});
throw new Error('GraphQL query failed');
}
return result.data;
} catch (error) {
// Handle network errors
if (error.name === 'NetworkError') {
console.error('Network error:', error);
throw new Error('Unable to connect to API');
}
// Re-throw other errors
throw error;
}
}
```
## Tips
* **Treat these examples as legacy** - use REST for new integrations
* **Request only needed fields** - GraphQL returns exactly what you ask for
* **Use pagination** for large datasets to avoid timeouts
* **Store API keys securely** - never expose them in client-side code
* **Test legacy queries first** in a GraphQL playground before changing existing integrations
## Next Steps
Move recording and transcript reads to REST
Reference legacy GraphQL queries during migration
Learn how to authenticate your API requests
# Legacy GraphQL Queries
Source: https://docs.buildbetter.ai/pages/api/graphql-queries
Legacy GraphQL query examples for integrations migrating to the BuildBetter REST API.
The BuildBetter GraphQL API is being deprecated for customer integrations. Use the REST API for new work and migrate existing GraphQL integrations to REST.
GraphQL examples on this page are legacy migration reference. Move recording and transcript reads to the [Recordings API](/pages/api/recordings).
## Authentication
Legacy GraphQL queries require authentication. Include your API key in the request header:
```bash theme={null}
X-BuildBetter-Api-Key: YOUR_ORGANIZATION_API_KEY
```
## Endpoint
```
POST https://api.buildbetter.app/graphql
```
## Query Examples
**Fetch a list of recent calls with participants**
```graphql theme={null}
query GetRecentCalls {
interview(limit: 5, order_by: { started_at: desc }) {
id
name
started_at
type {
name
}
attendees {
person {
first_name
last_name
email
}
}
}
}
```
**Use cases:**
* Building dashboards with recent activity
* Displaying call history
* Getting participant lists for follow-ups
**Retrieve signals (key moments) from a specific call**
```graphql theme={null}
query GetSignalsForCall($callId: bigint!) {
extraction(
where: { interview_id: { _eq: $callId } }
order_by: { start_sec: asc }
) {
id
summary
context
start_sec
end_sec
types {
type {
name
}
}
topics {
topic {
text
}
}
attendee {
person {
first_name
last_name
}
}
}
}
```
**Variables:**
```json theme={null}
{
"callId": 12345
}
```
**Use cases:**
* Creating call analysis dashboards
* Extracting key insights
* Building signal-based reports
**Retrieve the full transcript for a call**
The GraphQL API is being deprecated for customer integrations, and GraphQL `interview.monologues` is deprecated as of Wednesday, July 1, 2026. Move transcript reads to the REST transcript endpoint. During migration, use sentence-backed transcript relationships such as `sentences` or `transcript_segments`.
```graphql theme={null}
query GetCallTranscript($callId: bigint!) {
interview_by_pk(id: $callId) {
id
name
started_at
duration_sec
sentences(order_by: { start_sec: asc }) {
text
start_sec
end_sec
speaker
}
}
}
```
**Use cases:**
* Building transcript viewers
* Creating searchable interfaces
* Generating custom summaries
**Retrieve AI-generated documents with source calls**
```graphql theme={null}
query GetDocument($docId: bigint!) {
document_by_pk(id: $docId) {
id
name
status
content
created_at
creator {
person {
first_name
last_name
}
}
input_data {
call {
id
name
started_at
}
}
}
}
```
**Use cases:**
* Displaying AI summaries
* Showing document history
* Tracking document status
**Search for calls by various criteria**
```graphql theme={null}
query SearchCalls(
$searchTerm: String!
$startDate: timestamptz
$endDate: timestamptz
) {
interview(
where: {
_and: [
{ name: { _ilike: $searchTerm } }
{ started_at: { _gte: $startDate } }
{ started_at: { _lte: $endDate } }
]
}
order_by: { started_at: desc }
) {
id
name
started_at
attendees {
person {
first_name
last_name
email
}
}
}
}
```
**Use cases:**
* Implementing search functionality
* Building filtered call lists
* Creating date-based reports
**Retrieve people/contacts from your workspace**
```graphql theme={null}
query GetPeople($limit: Int = 10) {
person(limit: $limit, order_by: { created_at: desc }) {
id
first_name
last_name
email
company {
name
domain
}
attendances {
interview {
id
name
started_at
}
}
}
}
```
**Use cases:**
* Building contact directories
* Tracking participant history
* Managing customer relationships
## Pagination
For large result sets, use pagination with `limit` and `offset`:
```graphql theme={null}
query GetCallsPaginated($limit: Int!, $offset: Int!) {
interview(
limit: $limit
offset: $offset
order_by: { started_at: desc }
) {
id
name
started_at
}
}
```
## Filtering
Use the `where` clause to filter results:
```graphql theme={null}
query FilteredCalls {
interview(
where: {
_and: [
{ started_at: { _gte: "2025-01-01" } }
{ attendees: { person: { email: { _eq: "john@example.com" } } } }
]
}
) {
id
name
}
}
```
## Best Practices
1. **Request only needed fields** - GraphQL returns only what you ask for
2. **Use variables** - Makes queries reusable and secure
3. **Implement pagination** - For large datasets
4. **Handle errors gracefully** - Check for errors in responses
5. **Cache results** - When appropriate for your use case
# BuildBetter API Documentation
Source: https://docs.buildbetter.ai/pages/api/index
Use the BuildBetter REST API to integrate your applications and workflows with our data platform.
Welcome to the BuildBetter API documentation. The REST API is the supported path for new customer integrations, including creating recordings, attaching media, managing metadata definitions, and reading transcripts by public recording UUID.
The BuildBetter API is under active development and may change as we improve it. When we intend to make a breaking change, we will make a best-effort attempt to notify affected customers in advance, but advance notice is not guaranteed. Monitor these API docs and avoid relying on undocumented behavior.
The GraphQL API is being deprecated for customer integrations. Move new and existing integrations to the REST API. The GraphQL pages remain available as legacy migration reference while customers transition.
Whether you're looking to build custom integrations, automate workflows, or extract specific insights, this guide will help you get started and make the most of our API.
## Getting Started
Learn how to authenticate your REST API requests.
Reference existing GraphQL integrations while migrating to REST.
Explore the core data types: Calls (Interviews), Signals (Extractions), and Documents.
Create recordings, attach media, and fetch transcripts using public UUIDs.
Send your agent conversations and message feedback. Start with HTTP or explore the Node SDK preview.
Manage source namespaces and typed field definitions for API records.
See legacy query examples for migration reference.
Learn how to handle API errors and follow best practices for efficient integration.
# Metadata API
Source: https://docs.buildbetter.ai/pages/api/metadata
Manage reusable metadata source and field definitions for API-created records.
Use the Metadata API to define namespaced fields before attaching typed values to a recording or another supported entity. Sources separate fields that may share a name but come from different systems or represent different entities.
All endpoints on this page accept either a user access token or an organization API key. The examples use an organization API key:
```bash theme={null}
X-BuildBetter-Api-Key: ORGANIZATION_API_KEY
```
Base URL:
```text theme={null}
https://api.buildbetter.app/v3/rest
```
## Resource model
A source is an organization-scoped namespace with a public UUID, a `type`, and an `externalEntityName`. Within an organization, the pair of `type` and `externalEntityName` identifies the source definition. Sources of different types can use the same entity name without colliding. A field belongs to exactly one source and is identified by its own public UUID.
For example, separate API sources named `accounts` and `subscriptions` can each define a field named `status` without colliding. Field names need to be unique only within their source.
| Resource | Important fields | Ownership |
| - | - | - |
| Metadata source | `id`, `externalEntityName`, `type`, `managedBy`, `isCanonicalRecordingSource` | Customer-created API sources are editable. Provider sources and the canonical recordings source cannot be renamed. |
| Metadata field | `id`, `sourceId`, `name`, `type` | Fields under API-typed sources can be created and renamed, including fields under the canonical recordings source. Field type is immutable. |
All `sourceId` and `fieldId` values in this API are public UUIDs. Unknown, inaccessible, and cross-organization UUIDs return `404 Not Found` rather than exposing another organization's resources.
## The recordings source
BuildBetter maintains one canonical source per organization with:
```json theme={null}
{
"externalEntityName": "recordings",
"type": "api",
"managedBy": "buildbetter",
"isCanonicalRecordingSource": true
}
```
BuildBetter creates this source on demand instead of prepopulating it when the organization is provisioned. `GET /v3/rest/metadata/sources` ensures the source exists before returning results, so you can discover its public UUID and define recording fields before creating the organization's first recording. `POST /v3/rest/recordings` also ensures it exists when creating a recording.
BuildBetter owns this source's name, so it cannot be recreated or renamed. You can create and rename fields beneath it because it is API-typed.
`POST /v3/rest/recordings` always creates one canonical metadata record in this source. Recording create accepts `record.values[].fieldId`, but it does not accept `sourceId`; every supplied field must belong to the canonical `recordings` source.
## Endpoint overview
| Method | Path | Purpose |
| - | - | - |
| `GET` | `/v3/rest/metadata/sources` | List visible metadata sources |
| `POST` | `/v3/rest/metadata/sources` | Create a customer-managed API source |
| `GET` | `/v3/rest/metadata/sources/{sourceId}` | Get one source |
| `PATCH` | `/v3/rest/metadata/sources/{sourceId}` | Rename a customer-managed source |
| `GET` | `/v3/rest/metadata/sources/{sourceId}/fields` | List fields in a source |
| `POST` | `/v3/rest/metadata/sources/{sourceId}/fields` | Create a field in an API source |
| `GET` | `/v3/rest/metadata/fields/{fieldId}` | Get one field |
| `PATCH` | `/v3/rest/metadata/fields/{fieldId}` | Rename a field in an API source |
Deletion is not exposed. Removing definitions that already have values requires separate lifecycle handling.
## List sources
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/metadata/sources?page=1&limit=10" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
### Query parameters
| Parameter | Required | Description |
| - | - | - |
| `page` | No | Page number, starting at `1`. Defaults to `1`. |
| `limit` | No | Results per page, from `1` to `100`. Defaults to `10`. |
### Success response
`200 OK`. The endpoint returns an array for the requested page.
```json theme={null}
[
{
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6401",
"externalEntityName": "recordings",
"type": "api",
"managedBy": "buildbetter",
"isCanonicalRecordingSource": true,
"createdAt": "2026-07-28T12:00:00.000Z",
"updatedAt": "2026-07-28T12:00:00.000Z"
},
{
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6701",
"externalEntityName": "accounts",
"type": "api",
"managedBy": "customer",
"isCanonicalRecordingSource": false,
"createdAt": "2026-07-28T12:10:00.000Z",
"updatedAt": "2026-07-28T12:10:00.000Z"
}
]
```
`managedBy` can be `customer`, `integration`, or `buildbetter`. Provider-managed sources retain their provider `type`, while sources created through this API always have type `api`.
Listing sources creates the canonical API-typed `recordings` source on demand if it does not exist yet. Concurrent list and recording-create requests still resolve to the same organization-scoped source.
Request successive pages until a page contains fewer than `limit` results.
## Create a source
Creates an API-typed namespace for an external entity.
```bash theme={null}
curl -X POST "https://api.buildbetter.app/v3/rest/metadata/sources" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"externalEntityName": "accounts"
}'
```
`externalEntityName` is required, is trimmed, and must contain from `1` to `255` characters. The server sets `type` to `api`; the request cannot select an integration provider type.
### Success response
`201 Created`
```json theme={null}
{
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6701",
"externalEntityName": "accounts",
"type": "api",
"managedBy": "customer",
"isCanonicalRecordingSource": false,
"createdAt": "2026-07-28T12:10:00.000Z",
"updatedAt": "2026-07-28T12:10:00.000Z"
}
```
Creating an API source whose entity name is already used by another API source in the organization returns `409 Conflict`. A provider source of another `type` may use the same entity name. The name `recordings` is reserved for the canonical BuildBetter-managed API source and also returns `409 Conflict`.
If a create response is lost, list sources and match `externalEntityName` before retrying. Retrying an already successful create returns `409 Conflict` rather than creating a duplicate.
## Get a source
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/metadata/sources/0198f3b0-6e2d-7b11-8e12-91b2f91f6701" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
Returns `200 OK` with the same source shape returned by create. An unknown or inaccessible `sourceId` returns `404 Not Found`.
## Update a source
Renames a customer-managed API source.
```bash theme={null}
curl -X PATCH "https://api.buildbetter.app/v3/rest/metadata/sources/0198f3b0-6e2d-7b11-8e12-91b2f91f6701" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"externalEntityName": "customer_accounts"
}'
```
The complete request body is `{ "externalEntityName": string }`. `type`, `managedBy`, and `isCanonicalRecordingSource` are server-owned and cannot be patched.
Returns `200 OK` with the updated source.
| Status | When it is returned |
| - | - |
| `400 Bad Request` | The body is malformed or the name is blank or too long. |
| `401 Unauthorized` | Authentication is missing or invalid. |
| `403 Forbidden` | The source is integration-managed or is the canonical `recordings` source. |
| `404 Not Found` | The source UUID is unknown or inaccessible. |
| `409 Conflict` | The new name is already used by another API source or is the reserved `recordings` name. |
## List fields in a source
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/metadata/sources/0198f3b0-6e2d-7b11-8e12-91b2f91f6401/fields?page=1&limit=10" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
`page` defaults to `1`; `limit` defaults to `10` and can be from `1` to `100`.
### Success response
`200 OK`. The endpoint returns an array for the requested page.
```json theme={null}
[
{
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6101",
"sourceId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6401",
"name": "contract_value",
"type": "integer",
"createdAt": "2026-07-28T12:20:00.000Z",
"updatedAt": "2026-07-28T12:20:00.000Z"
}
]
```
An unknown or inaccessible source UUID returns `404 Not Found`. Request successive pages until a page contains fewer than `limit` results.
## Create a field
```bash theme={null}
curl -X POST "https://api.buildbetter.app/v3/rest/metadata/sources/0198f3b0-6e2d-7b11-8e12-91b2f91f6401/fields" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "contract_value",
"type": "integer"
}'
```
`name` is required, is trimmed, and must contain from `1` to `255` characters. `type` is required and must be one of the field types below.
### Success response
`201 Created`
```json theme={null}
{
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6101",
"sourceId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6401",
"name": "contract_value",
"type": "integer",
"createdAt": "2026-07-28T12:20:00.000Z",
"updatedAt": "2026-07-28T12:20:00.000Z"
}
```
Field names must be unique within one source. The same name can be used in a different source without conflict. Retrying an already successful create with the same source and name returns `409 Conflict`.
| Status | When it is returned |
| - | - |
| `400 Bad Request` | The body is malformed, the name is invalid, or `type` is unsupported. |
| `401 Unauthorized` | Authentication is missing or invalid. |
| `403 Forbidden` | The source is integration-managed rather than API-typed. |
| `404 Not Found` | The source UUID is unknown or inaccessible. |
| `409 Conflict` | A field with the same name already exists in the source. |
## Get a field
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/metadata/fields/0198f3b0-6e2d-7b11-8e12-91b2f91f6101" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
Returns `200 OK` with the same field shape returned by create. An unknown or inaccessible `fieldId` returns `404 Not Found`.
## Update a field
Renames a field in an API-typed source.
```bash theme={null}
curl -X PATCH "https://api.buildbetter.app/v3/rest/metadata/fields/0198f3b0-6e2d-7b11-8e12-91b2f91f6101" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "annual_contract_value"
}'
```
The complete request body is `{ "name": string }`. A field's `type` and `sourceId` are immutable through this API.
Returns `200 OK` with the updated field.
| Status | When it is returned |
| - | - |
| `400 Bad Request` | The body is malformed or the name is blank or too long. |
| `401 Unauthorized` | Authentication is missing or invalid. |
| `403 Forbidden` | The field belongs to an integration-managed source. |
| `404 Not Found` | The field UUID is unknown or inaccessible. |
| `409 Conflict` | The new name already exists in the same source. |
## Field types and values
Field definitions use one of these immutable types. Values are validated when an owning resource, such as a recording, creates its metadata record.
| Field type | Accepted JSON value |
| - | - |
| `string` | A JSON string. |
| `boolean` | `true` or `false`, not the strings `"true"` or `"false"`. |
| `integer` | A JSON number that is a safe integer. |
| `float` | A finite JSON number. |
| `date` | A valid RFC 3339 full-date string such as `"2026-07-28"`. |
| `datetime` | An RFC 3339 date-time string with a timezone offset, such as `"2026-07-28T15:00:00Z"`. |
| `json` | Any JSON-serializable value. |
Every type also accepts `null`. BuildBetter returns public values in their declared JSON types rather than as storage strings. A value that does not match the field definition returns `422 Unprocessable Entity` from the owning resource endpoint.
## Use recording fields
First find the canonical source by listing sources and selecting the item where `isCanonicalRecordingSource` is `true`. Create or list fields beneath its public `id`, then include their public field UUIDs in recording create:
```json theme={null}
{
"record": {
"externalId": "crm-call-4815",
"values": [
{
"fieldId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6101",
"value": 125000
}
]
}
}
```
The recording request deliberately omits `sourceId`. BuildBetter resolves the canonical API-typed `recordings` source and rejects a field from any other source with `422 Unprocessable Entity`. See [Create a recording](/pages/api/recordings#create-a-recording) for the complete request.
## Common errors
REST errors include an HTTP status plus the standard error response fields `statusCode`, `timestamp`, `path`, `error`, and, when available, `message`. Handle status codes rather than matching human-readable messages.
Across all metadata endpoints:
* `401 Unauthorized` means authentication is missing or invalid.
* `403 Forbidden` means the definition is visible but read-only for this API operation.
* `404 Not Found` also covers inaccessible and cross-organization UUIDs.
* `409 Conflict` indicates a source or field uniqueness collision.
Invalid requests do not create partial definitions. Correct the request and retry it.
# Legacy GraphQL Query Building
Source: https://docs.buildbetter.ai/pages/api/query-building
Reference legacy GraphQL query patterns while migrating to the BuildBetter REST API.
The BuildBetter GraphQL API is being deprecated for customer integrations. Use the REST API for new work. This page remains available as legacy reference for existing GraphQL integrations while they migrate to REST.
Do not build new customer integrations on GraphQL. Move recording and transcript access to the [Recordings API](/pages/api/recordings).
GraphQL queries allow you to specify exactly what data you need, and the response will mirror the structure of your request. Here are some key aspects of legacy queries:
* **Structure:** A basic GraphQL query uses the syntax `query { ... }` (or `mutation { ... }` for mutations). Inside, you list the fields you want to retrieve, and you can nest related fields. The response JSON will have the same shape as the fields you asked for. For example, to get a call's name and start time, you might write:
```graphql theme={null}
query {
interview(limit: 1) {
name
started_at
}
}
```
This query asks for the `name` and `started_at` of the first call (more on the `interview` type below). The result will contain those fields.
* **Variables:** Instead of hard-coding values in your queries (like IDs or filters), GraphQL variables let you write flexible queries. You define variables in the query signature, and provide their values separately in the request. For example, a query that fetches a specific call by ID using a variable:
```graphql theme={null}
query GetCallById($callId: bigint!) {
interview(where: { id: { _eq: $callId } }) {
id
name
started_at
}
}
```
In this query, `$callId` is a variable of type `bigint!` (an ID type used for calls). The `where` filter uses `_eq` (equals) to match the call ID. When you send this query, you'd include a JSON `variables` payload such as: `{ "callId": 12345 }`. The API will substitute the variable and return the matching call. You can use variables for any dynamic value (IDs, search keywords, filters, etc.), which makes your queries reusable and safer.
* **Filtering and Ordering:** The API supports rich filtering on query fields. Inside a `where` clause, you can use operators like `_eq` (equals), `_neq` (not equals), `_in`, `_ilike` (case-insensitive pattern match), and many others. These correspond to SQL-like filters. For example, to filter documents by status you might use `where: { status: { _eq: "completed" } }`. You can also sort results using an `order_by` argument on query fields. For example, `order_by: { created_at: desc }` will sort results by creation time in descending order. Pagination can be handled with limit/offset arguments – e.g., `limit: 10, offset: 0` to get the first 10 results, then adjust offset for the next page.
* **Schema Introspection:** The GraphQL schema defines all available types, fields, and operations. You can introspect the schema (for example, using GraphiQL or Apollo Sandbox if provided, or by sending the special `__schema` introspection query) to see the exact fields and types. Key types you'll be interacting with include `interview` (calls), `extraction` (signals), and `document`. We'll explain these in the Data Access section. Each of these types has fields and relationships you can query. For instance, the `interview` type has relationships for participants, transcripts, etc., and the `document` type has relationships for its creator and any source calls.
In summary, structure legacy queries to ask for exactly what you need, use variables to parameterize queries, and apply filters to narrow results. For new recording and transcript integrations, use REST instead.
# Recordings API
Source: https://docs.buildbetter.ai/pages/api/recordings
Create recordings, associate them with folders, attach media, and read recording and transcript data through the BuildBetter REST API.
Use the Recordings API to create a recording before its media is available, associate it with folders, attach media by URL or direct upload, and read the resulting recording and transcript. Recording resources use public UUIDs.
Most recording endpoints accept either a user access token or an organization API key. The examples below use an organization API key:
```bash theme={null}
X-BuildBetter-Api-Key: ORGANIZATION_API_KEY
```
The base URL for these endpoints is:
```text theme={null}
https://api.buildbetter.app/v3/rest
```
Except for the meeting-join command called out below, every endpoint on this page accepts either user authentication or an organization API key. Missing or invalid authentication returns `401 Unauthorized`. Authorization failures return the status documented for the operation. Resource paths return `404 Not Found` for unknown, inaccessible, cross-organization, or mismatched public UUIDs.
The GraphQL API is being deprecated for customer integrations. Use these REST endpoints for new recording and transcript integrations.
## Endpoint overview
| Method | Path | Purpose |
| - | - | - |
| `GET` | `/v3/rest/recordings` | List recordings |
| `POST` | `/v3/rest/recordings` | Create a recording |
| `GET` | `/v3/rest/recordings/{recordingId}` | Get a recording |
| `GET` | `/v3/rest/recordings/{recordingId}/transcript` | Get utterances or monologues |
| `POST` | `/v3/rest/recordings/{recordingId}/uploads` | Create a direct upload |
| `GET` | `/v3/rest/recordings/{recordingId}/uploads/{uploadId}` | Get upload status |
| `DELETE` | `/v3/rest/recordings/{recordingId}/uploads/{uploadId}` | Cancel an upload that has not begun processing |
| `POST` | `/v3/rest/recordings/meeting-joins` | Ask the BuildBetter recorder to join a meeting; user authentication only |
## Public IDs
`recordingId`, `folderIds`, `uploadId`, participant `personId`, metadata `fieldId`, and other IDs documented on this page are public UUIDs. Do not send GraphQL BigInt IDs to these endpoints.
The `id` returned by recording create, get, and list is the recording's public UUID. Store it and use it in transcript and upload paths.
Feedback IDs and recording IDs identify different resources and are not interchangeable. To associate a recording with folders, send the recording create request with the folders' public UUIDs in `folderIds`.
## List recordings
Returns recordings visible to the authenticated user or organization.
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/recordings?page=1&limit=50&recorded_at_gte=2026-07-01T00%3A00%3A00.000Z" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
### Query parameters
| Parameter | Required | Description |
| - | - | - |
| `page` | No | Page number, starting at `1`. Defaults to `1`. |
| `limit` | No | Results per page, from `1` to `100`. Defaults to `50`. |
| `recorded_at_gt` | No | Return recordings strictly after this RFC 3339 timestamp. |
| `recorded_at_gte` | No | Return recordings at or after this RFC 3339 timestamp. |
| `recorded_at_lt` | No | Return recordings strictly before this RFC 3339 timestamp. |
| `recorded_at_lte` | No | Return recordings at or before this RFC 3339 timestamp. |
### Success response
`200 OK`
```json theme={null}
{
"recordings": [
{
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"display_name": "Renewal discussion",
"source": "upload",
"recorded_at": "2026-07-28T15:00:00.000Z",
"created_at": "2026-07-28T15:05:00.000Z",
"updated_at": "2026-07-28T15:05:00.000Z",
"metadata": [
{
"source": {
"type": "api",
"external_entity_name": "recordings"
},
"record": {
"external_id": "crm-call-4815",
"fields": []
}
}
]
}
],
"page": 1,
"limit": 50,
"has_more": false
}
```
The list endpoint retains snake\_case field names for its established list projection. Its `metadata` array can contain canonical API metadata and other source-scoped records linked to the recording. Use `has_more` to decide whether to request the next page. Individual recording reads use the camelCase resource shown below and project only the singular canonical API record into `record`.
## Create a recording
Creates the recording resource and returns its public UUID immediately. Media processing, when requested, continues asynchronously.
```bash theme={null}
curl -X POST "https://api.buildbetter.app/v3/rest/recordings" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Renewal discussion",
"recordedAt": "2026-07-28T15:00:00.000Z",
"folderIds": [
"0198f3b0-6e2d-7b11-8e12-91b2f91f6501",
"0198f3b0-6e2d-7b11-8e12-91b2f91f6502"
],
"record": {
"externalId": "crm-call-4815",
"values": [
{
"fieldId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6101",
"value": 125000
}
]
},
"participants": [
{
"speaker": 0,
"person": {
"type": "upsert",
"email": "pat@example.com",
"firstName": "Pat",
"lastName": "Lee"
}
}
],
"transcript": {
"utterances": [
{
"startSec": 0,
"endSec": 2.5,
"text": "Thanks for making time today.",
"speaker": 0
}
]
}
}'
```
### Request body
| Field | Required | Description |
| - | - | - |
| `record` | Yes | The recording's single canonical metadata record. |
| `record.externalId` | Yes | Your unique identifier for this recording, from `1` to `512` characters after trimming. |
| `record.values` | No | Up to 500 typed metadata values. Defaults to `[]`. Each item contains a public `fieldId` and JSON `value`. |
| `name` | No | Recording name, from `1` to `500` characters. Defaults to `Untitled recording`. |
| `recordedAt` | No | RFC 3339 date-time with an offset. |
| `folderIds` | No | Up to 500 public folder UUIDs to associate with the recording. Duplicate UUIDs have set semantics. Defaults to no folder association. |
| `assetUrl` | No | An HTTP or HTTPS media URL for BuildBetter to ingest asynchronously. Maximum length is 4,096 characters. |
| `participants` | No | Up to 100 speaker-to-person assignments. Defaults to `[]`. |
| `transcript` | No | An authoritative transcript containing one or more ordered utterances. |
The server always places `record` in the organization's dedicated metadata source where `type` is `api` and `externalEntityName` is `recordings`. If the source does not exist yet, BuildBetter creates it on demand. The request does not accept a metadata source selector. Create fields for this source through the [Metadata API](/pages/api/metadata), then send their public UUIDs in `record.values`.
### Folder association
`folderIds` works with either a user access token or an organization API key. BuildBetter deduplicates the list and resolves every folder under the authenticated user or organization context before creating the recording. Unknown, inaccessible, and cross-organization folder UUIDs are all returned as `404 Not Found` without revealing whether the folder exists elsewhere.
The recording and every requested folder association are committed in one transaction. If any folder cannot be resolved or any association cannot be written, BuildBetter creates neither the recording nor a partial set of folder associations. This also supports transcript-only integrations: media upload is not required to place the new recording in its destination folders.
An `assetUrl` must use HTTP or HTTPS and cannot contain embedded credentials. The create request rejects localhost names and literal private or reserved IP addresses without performing DNS. BuildBetter resolves and revalidates the hostname in the durable ingestion worker, including every redirect, so transient DNS failures can be retried instead of failing recording creation permanently.
### Participant shapes
Reference an existing person by public UUID:
```json theme={null}
{
"speaker": 0,
"person": {
"type": "reference",
"personId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6201"
}
}
```
Or upsert a person by email:
```json theme={null}
{
"speaker": 1,
"person": {
"type": "upsert",
"email": "alex@example.com",
"firstName": "Alex",
"lastName": "Morgan"
}
}
```
`speaker` must be a non-negative integer. An upsert requires `email`; names are optional. Within one request, a speaker cannot resolve to multiple people and a person cannot resolve to multiple speakers. When `transcript` is present, every participant speaker must appear in at least one supplied utterance; utterance speakers may remain unlabeled.
### Transcript rules
Each utterance requires non-negative `startSec` and `endSec`, non-blank `text`, and a non-negative integer `speaker`. `endSec` must be greater than or equal to `startSec`. Utterances must be ordered by `startSec`, and utterances for the same speaker cannot overlap.
A transcript can contain up to 10,000 utterances and 2,000,000 text characters in total. Each utterance can contain up to 20,000 characters.
When you provide `transcript`, BuildBetter treats it as authoritative: transcript status is immediately `completed`, transcript source is `api`, and BuildBetter does not submit the recording for automatic transcription. This remains true whether or not you also provide media.
### Success response
`201 Created` with a `Location` header pointing to `/v3/rest/recordings/{recordingId}`.
```json theme={null}
{
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"name": "Renewal discussion",
"recordedAt": "2026-07-28T15:00:00.000Z",
"asset": {
"status": "waiting",
"url": null,
"errorCode": null
},
"transcript": {
"status": "completed",
"source": "api"
},
"participants": [
{
"speaker": 0,
"person": {
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6201",
"firstName": "Pat",
"lastName": "Lee",
"email": "pat@example.com"
}
}
],
"record": {
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6301",
"externalId": "crm-call-4815",
"source": {
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6401",
"type": "api",
"externalEntityName": "recordings"
},
"values": [
{
"fieldId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6101",
"name": "contract_value",
"type": "integer",
"value": 125000
}
]
},
"createdAt": "2026-07-28T15:05:00.000Z",
"updatedAt": "2026-07-28T15:05:00.000Z"
}
```
The recording, folder associations, metadata record, metadata values, participants, and supplied transcript are created atomically. If validation fails, correct the request and retry with the same `record.externalId`; the failed request does not reserve it. After a successful create, another request using the same external ID in the `recordings` source returns `409 Conflict` with the existing recording's public UUID:
```json theme={null}
{
"message": "recording-external-id-conflict",
"recordingId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001"
}
```
If the original `201 Created` response was lost, treat this conflict as recovery of that recording and continue with the returned `recordingId`. The API does not create or update another recording in this case.
### Create errors
| Status | When it is returned |
| - | - |
| `400 Bad Request` | The body is malformed, `record` or `record.externalId` is missing, an unknown property is supplied, a metadata field appears more than once, participant assignments conflict, or transcript ordering/timing is invalid. |
| `401 Unauthorized` | Authentication is missing or invalid. |
| `403 Forbidden` | The principal cannot create recordings in the organization. |
| `404 Not Found` | A referenced public person, metadata field, or folder does not exist or is not visible under the authenticated user or organization context. |
| `409 Conflict` | The canonical `record.externalId` already exists. The response uses `message: recording-external-id-conflict` and returns the existing public `recordingId`. |
| `413 Payload Too Large` | The supplied transcript exceeds the utterance or total-character limit. The response includes `errorCode`: `too_many_utterances`, `transcript_too_large`, or the defensive fallback `recording_payload_too_large`. |
| `422 Unprocessable Entity` | A metadata field belongs to another source or receives a value that does not match its field type. When applicable, the response identifies the failed value with `externalId`, public `fieldId`, `fieldType`, and `reason`. |
For example, an oversized transcript returns a stable limit code:
```json theme={null}
{
"message": "Transcript exceeds 10000 utterances",
"errorCode": "too_many_utterances"
}
```
A typed metadata failure includes field-specific details that can be shown to the caller:
```json theme={null}
{
"message": "Metadata value does not match the field type",
"externalId": "crm-call-4815",
"fieldId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6101",
"fieldType": "integer",
"reason": "Expected a safe integer"
}
```
## Get a recording
Returns the current recording, asset, transcript, participant, and canonical metadata state.
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/recordings/0198f3b0-6e2d-7b11-8e12-91b2f91f6001" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
### Success response
`200 OK`. The response uses the same recording resource shape returned by create. `record` can be `null` for older recordings that predate canonical API metadata records.
```json theme={null}
{
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"name": "Renewal discussion",
"recordedAt": "2026-07-28T15:00:00.000Z",
"asset": {
"status": "completed",
"url": "https://media.example.invalid/temporary-playback",
"errorCode": null
},
"transcript": {
"status": "completed",
"source": "api"
},
"participants": [],
"record": {
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6301",
"externalId": "crm-call-4815",
"source": {
"id": "0198f3b0-6e2d-7b11-8e12-91b2f91f6401",
"type": "api",
"externalEntityName": "recordings"
},
"values": []
},
"createdAt": "2026-07-28T15:05:00.000Z",
"updatedAt": "2026-07-28T15:12:00.000Z"
}
```
`asset.url` is a temporary playback URL derived at request time and may expire. The asset status can be `waiting`, `queued`, `uploading`, `processing`, `completed`, `failed`, or `cancelled`. `asset.errorCode` provides a stable failure code when one is available.
The asset and transcript states are independent. For example, a supplied transcript can be complete while media is still queued, or uploaded media can be complete while automatic transcription is still processing.
Unknown or inaccessible recording UUIDs return `404 Not Found`.
## Get a transcript
Returns transcript text as sentence-level utterances or contiguous same-speaker monologues.
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/recordings/0198f3b0-6e2d-7b11-8e12-91b2f91f6001/transcript?type=utterance" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
The optional `type` query parameter accepts:
* `utterance`: sentence-level transcript rows. This is the default.
* `monologue`: contiguous rows from the same speaker combined into blocks.
### Utterance response
`200 OK`
```json theme={null}
{
"type": "utterance",
"recordingId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"utterances": [
{
"recordingId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"startSec": 0,
"endSec": 2.5,
"speaker": 0,
"text": "Thanks for making time today."
}
]
}
```
### Monologue response
`200 OK`
```json theme={null}
{
"type": "monologue",
"recordingId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"monologues": [
{
"recordingId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"startSec": 0,
"endSec": 8.1,
"speaker": 0,
"text": "Thanks for making time today. I wanted to review the renewal."
}
]
}
```
Transcript entries do not include internal database IDs. Unknown or inaccessible recording UUIDs return `404 Not Found`; an unsupported `type` returns `400 Bad Request`.
## Attach a direct upload
Create the recording first, then create an upload nested beneath its public UUID. Do not provide `assetUrl` when you intend to use this flow.
Call `POST /v3/rest/recordings` and store the returned recording `id`.
Call `POST /v3/rest/recordings/{recordingId}/uploads` with the file name and byte size.
Send the file to the temporary `uploadUrl` using a resumable upload client. Treat this URL as a short-lived secret and do not log or persist it.
Poll `GET /v3/rest/recordings/{recordingId}/uploads/{uploadId}` until the phase is `ready`, `failed`, or `cancelled`.
### Create an upload
```bash theme={null}
curl -X POST "https://api.buildbetter.app/v3/rest/recordings/0198f3b0-6e2d-7b11-8e12-91b2f91f6001/uploads" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fileName": "renewal-discussion.mp4",
"fileSize": 73400320
}'
```
`fileName` must be non-blank and `fileSize` must be an integer from `1` through `9,007,199,254,740,991` containing the file's size in bytes. The request also accepts optional public UUIDs `folderId` and `batchId`. The folder must be visible to the principal. Upload batches are user-scoped, so an organization API key cannot attach an upload to a batch. `inMobileApp` defaults to `false` and is reserved for BuildBetter mobile clients.
Browser requests authenticated as a user must include their `Origin` header so the temporary upload destination can be scoped for CORS. Server-to-server requests using an organization API key do not require `Origin`.
`201 Created`
```json theme={null}
{
"recordingId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"uploadId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6501",
"uploadUrl": "https://upload.example.invalid/temporary-target",
"timeoutSeconds": 3600,
"phase": "waiting"
}
```
The real `uploadUrl` is temporary and unique to this attempt. Begin the transfer before `timeoutSeconds` elapses.
A recording can have only one active media ingestion. A different create request while an upload or URL ingestion is active returns `409 Conflict`. If this exact request succeeded but its response was lost, retrying with the same recording, `fileName`, `fileSize`, source, `folderId`, and `batchId` returns the existing unexpired waiting upload attempt, including the same `uploadId` and `uploadUrl`. This recovery does not create a second Mux destination. The same status can ask a caller to retry after an in-progress credit recharge. Unknown recording, folder, or batch UUIDs return `404 Not Found`.
| Status | When it is returned |
| - | - |
| `400 Bad Request` | The body is invalid, or a browser user request omits its `Origin` header. |
| `401 Unauthorized` | Authentication is invalid or recording upload is not allowed. |
| `403 Forbidden` | The principal cannot access the recording or related destination. |
| `404 Not Found` | The recording, folder, or batch UUID is unknown or inaccessible. |
| `409 Conflict` | The recording already has an active media ingestion, or a credit recharge is still pending. |
### Get upload status
```bash theme={null}
curl "https://api.buildbetter.app/v3/rest/recordings/0198f3b0-6e2d-7b11-8e12-91b2f91f6001/uploads/0198f3b0-6e2d-7b11-8e12-91b2f91f6501" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
`200 OK`
```json theme={null}
{
"recordingId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"uploadId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6501",
"phase": "encoding",
"encodeProgress": 42,
"errorCode": null
}
```
| Phase | Meaning |
| - | - |
| `waiting` | The upload destination is waiting for file bytes. |
| `encoding` | The media provider is encoding the asset. `encodeProgress` can contain a value from `0` to `100`. |
| `finalizing` | Encoding is complete and BuildBetter is finalizing storage. |
| `ready` | The media is available from the recording resource. |
| `failed` | The upload or processing failed. |
| `cancelled` | The upload was cancelled or expired before completion. |
`encodeProgress` is `null` outside encoding or when live progress is unavailable. On failure, `errorCode` can be `upload_failed`, `upload_expired`, or `processing_failed`.
The `uploadId` must belong to the `recordingId` in the path. Unknown, inaccessible, or mismatched IDs return `404 Not Found`.
### Cancel an upload
Cancels an upload while it is still waiting for file bytes.
```bash theme={null}
curl -X DELETE "https://api.buildbetter.app/v3/rest/recordings/0198f3b0-6e2d-7b11-8e12-91b2f91f6001/uploads/0198f3b0-6e2d-7b11-8e12-91b2f91f6501" \
-H "X-BuildBetter-Api-Key: ORGANIZATION_API_KEY"
```
`200 OK`
```json theme={null}
{
"recordingId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6001",
"uploadId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6501",
"phase": "cancelled",
"encodeProgress": null,
"errorCode": null
}
```
Cancellation releases the waiting media claim, so you can create a new upload for the same recording. Repeating the DELETE after a successful cancellation returns the same `cancelled` state. Once processing has begun, cancellation returns `409 Conflict`; continue polling the existing attempt instead. Unknown or mismatched IDs return `404 Not Found`.
## Ingest media from a URL
As an alternative to direct upload, include `assetUrl` in `POST /v3/rest/recordings`. BuildBetter validates locally decidable HTTP or HTTPS URL policy, creates the recording and a durable ingestion attempt atomically, and schedules media transfer asynchronously. DNS resolution and destination validation happen in the durable worker, not in the create request. The create response does not wait for the media transfer.
Poll `GET /v3/rest/recordings/{recordingId}` and inspect `asset.status`. A retryable transfer remains `queued`; terminal failures use `failed` and may include `asset.errorCode`. Transient DNS failures and a successful HTTP response containing zero media bytes are retryable; empty media is never published as a completed asset. Do not start a nested upload while URL ingestion is active, because the recording permits one active media ingestion at a time.
The URL must be directly retrievable with an unauthenticated `GET`. BuildBetter accepts common AAC, FLAC, MP4, MPEG, Ogg, WAV, WebM, and QuickTime audio/video content types, plus `application/octet-stream`, up to 5 GiB.
## Ask the recorder to join a meeting
This command requires an authenticated BuildBetter user. Organization API keys are not accepted and return `403 Forbidden`.
```bash theme={null}
curl -X POST "https://api.buildbetter.app/v3/rest/recordings/meeting-joins" \
-H "Authorization: Bearer USER_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "meetingUrl",
"joinUrl": "https://meet.example.com/example-room"
}'
```
`type` must be `meetingUrl`, and `joinUrl` must be a non-blank meeting URL supported by the recorder.
When the join request is accepted, the endpoint returns `201 Created`:
```json theme={null}
{
"recordingId": "0198f3b0-6e2d-7b11-8e12-91b2f91f6601"
}
```
The response identifies the recording resource immediately; joining, recording, media processing, and transcription continue asynchronously.
| Status | When it is returned |
| - | - |
| `400 Bad Request` | The body does not match the meeting URL request shape. |
| `401 Unauthorized` | User authentication is missing or invalid. |
| `403 Forbidden` | An organization API key is used for this user-only operation. |
| `404 Not Found` | The authenticated user cannot be resolved. |
| `409 Conflict` | The provided meeting URL is not supported for joining. |
| `502 Bad Gateway` | The recorder provider could not create the bot. |
An authenticated user whose organization is not allowed to record receives `401 Unauthorized`. If an active recording already exists for the same meeting identity, the endpoint returns that recording's public UUID rather than creating another recording.
## Legacy GraphQL transcript migration
Move transcript reads to `GET /v3/rest/recordings/{recordingId}/transcript`. Existing GraphQL integrations should avoid `interview.monologues` and use the REST transcript endpoint with `type=monologue` when contiguous same-speaker blocks are required.
# Webhooks
Source: https://docs.buildbetter.ai/pages/api/webhooks
Webhook structure for BuildBetter workflow events
BuildBetter sends webhooks from workflow actions and workflow completion events.
## Signed Workflow Webhooks
Workflow webhook actions can include BuildBetter signature headers so your receiver can verify that a request came from BuildBetter and was not modified in transit.
### Configure a Signing Secret
In the workflow editor:
1. Open the webhook step.
2. Add or generate a signing secret for that step.
3. Copy the secret into your receiving service.
4. Test the workflow and verify the signature before enabling the workflow.
Each webhook step can have its own signing secret. You can regenerate a secret if it is exposed or if you are rotating credentials.
Custom webhook headers cannot override reserved BuildBetter signature headers.
### Verifying Signatures
The webhook step includes a built-in verification guide with JavaScript and Python examples. Use that guide as the source of truth for the exact header names and signing payload used by your workspace.
At a high level, your receiver should:
* Read the BuildBetter signature headers.
* Recompute the signature using the webhook body and signing secret.
* Compare signatures using a constant-time comparison.
* Reject requests with missing, invalid, or stale signatures.
## Dataset to Document
Webhook sent when a dataset-to-document workflow completes.
### Structure
```json theme={null}
{
"workflow": {
"id": "string",
"name": "string",
"type": "dataset_document_to_webhook"
},
"dataset": {
"id": "string",
"name": "string"
},
"document_template": {
"id": "string",
"name": "string"
},
"generated_document": {
"id": "string",
"name": "string",
"content": "string (markdown)",
"status": "completed"
},
"execution": {
"started_at": "ISO 8601 timestamp",
"completed_at": "ISO 8601 timestamp",
"duration_ms": number
}
}
```
### Example
```json theme={null}
{
"workflow": {
"id": "1894",
"name": "__temp_test_1757007246506",
"type": "dataset_document_to_webhook"
},
"dataset": {
"id": "662",
"name": "Dataset 662"
},
"document_template": {
"id": "232",
"name": "Template 232"
},
"generated_document": {
"id": "2391",
"name": "Sales calls to case study - Dataset 662 - 2025-09-04T17:34:08.699Z",
"content": "# Sales calls to case study\n\nThis document aggregates customer feedback collected during multiple sales calls. It organizes key quotes, paraphrased versions, use cases, expected benefits, the general workflow observed, assumptions made, and challenges identified. Throughout, only direct customer observations and sentiments are included.\n\n---\n\n## Statistics & Confirmation\n\n• Multiple customers have rated their overall experience in the 7–9 (out of 10) range, confirming that automated summarization and document generation deliver measurable efficiency gains. \n• Customers have noted anecdotal evidence—such as saving significant time on call analysis and reducing manual note‐taking—that supports an estimated 20–30% improvement in operational efficiency. \n• Confirmations include remarks about the \"unfair value‐to‐cost balance\" and the \"brilliant pricing model\" that many believe will drive long‐term ROI.\n\n---\n\n## Catalyst for Change\n\nThe driving force behind customers switching to an AI‐driven insights platform was the need to move away from manual, labor‐intensive data review processes. Frustrated with legacy tools that offered only basic transcription or note‐taking, customers looked for a solution that could automatically synthesize unstructured call data into actionable insights. This key requirement for speed, accuracy, and deep integration across existing workflows served as the catalyst for change.\n\n---\n\n## Impact on Organization\n\nCustomers report transformative changes:\n• A dramatic reduction in manual work through auto–generated meeting summaries and document creation. \n• Enhanced decision–making stemming from easily accessible, categorized insights. \n• Improvements in cross–team collaboration—be it for product management, sales, or coaching—that have re–energized internal processes and increased overall engagement.\n\n---\n\n## Looking Ahead\n\nCustomers are enthusiastic about future enhancements that will further streamline their operations. They expect:\n• Broader integration with key platforms (e.g., Slack, HubSpot, Salesforce) to embed insights seamlessly across systems. \n• Expanded customizability in report generation and automated workflows. \n• Continued evolution of AI–powered features that not only capture data but also provide predictive analytics and smart recommendations—driving even greater efficiency across the organization.\n\n---\n\n## Conclusion\n\nIn summary, the case study demonstrates that customers see significant value in a tool that efficiently transforms qualitative call data into actionable, well–structured insights. The product's ability to automate routine summarization and documentation tasks, integrate with established workflows, and maintain a brilliant pricing model positions it as a key enabler for growing organizations.\n\n---\n\n## Introduction\n\nThis case study compiles direct customer feedback gathered during sales calls focused on the adoption of an AI–driven product insights platform. Customers detailed their challenges with existing manual and legacy tools and expressed enthusiasm when introduced to a solution that automatically generates high–quality meeting summaries, documents, and insights. The following sections outline direct quotes, paraphrased approvals, detailed use cases, and further insights into the expected benefits and workflow.\n\n---\n\n## Direct Quotes\n\n• \"[Customer claims BuildBetter is the most powerful tool he has ever seen, highlighting its transformative potential.](https://app-local.buildbetter.app/signals/31662)\" \n• \"[Customer praises the product's ability to generate detailed write-ups from calls automatically, calling it a major time–saver.](https://app-local.buildbetter.app/signals/25876)\" \n• \"[Customer emphasizes that meeting summaries have revolutionized his approach to call analysis, reducing manual effort significantly.](https://app-local.buildbetter.app/signals/26974)\" \n• \"[Customer is impressed by the automated document generation feature that creates PRDs effortlessly from non–product–focused meetings.](https://app-local.buildbetter.app/signals/20070)\" \n• \"[Customer appreciates the brilliant pricing model that is not based on per–user costs and provides exceptional value.](https://app-local.buildbetter.app/signals/31870)\"\n\n---\n\n## Similar Approved Quotes\n\n• \"The tool's automation of call summaries has completely changed the way we capture insights—it saves endless hours compared to manual transcription.\" \n• \"I've never seen a solution that turns raw conversation data into polished, actionable reports so seamlessly; it's truly a game changer.\" \n• \"The product is not only powerful but also incredibly cost–effective—its value-to-cost ratio is simply outstanding.\" \n• \"Generating well–crafted PRDs directly from our calls has been a breath of fresh air; it's like having an expert analyst on board at all times.\" \n• \"The integration of all our data sources and the simplicity of the interface have transformed our workflow and boosted our overall efficiency.\"\n\n---\n\n## Use Cases\n\n• **Automated Meeting Summaries:** Customers use the tool to automatically generate accurate meeting summaries, reducing manual note–taking and condensing long calls into key insights. \n• **Document Generation for PRDs:** The platform creates detailed product requirement documents from non–product meetings, facilitating better communication and faster product iteration. \n• **Integrated Workflow Analysis:** By aggregating and tagging call data, organizations streamline internal coaching, sales follow–up, and customer success operations. \n• **Centralized Insights:** Consolidation of unstructured qualitative data into a single dashboard allows efficient retrieval and cross–comparison for strategic decision–making. \n• **Enhanced Collaboration:** Teams leverage the tool's ability to generate narrative–supported reports, making internal alignment across departments simpler.\n\n---\n\n## Expected Value\n\nCustomers predict tangible benefits from adopting the solution:\n• **Efficiency Gains:** A projected 20–30% increase in efficiency through the automation of speech-to–text summarizations and actionable insights extraction. \n• **Cost Reduction:** Reduced reliance on manual data collation methods translates into lower operational costs and improved resource allocation. \n• **Improved Decision–Making:** Immediate access to well–structured insights helps leadership make faster and more informed product decisions. \n• **Scalability and Integration:** The platform's flexibility to integrate with popular tools (such as Slack, HubSpot, and Salesforce) is expected to drive sustained productivity improvements across various organizational dimensions.\n\n---\n\n## Workflow\n\n1. **Data Ingestion:** Call recordings, transcripts, and qualitative feedback are automatically collected from various sources. \n2. **Signal Extraction:** AI processes extract key insights (\"signals\") from the raw data, tagging relevant phrases, themes, and metrics. \n3. **Content Synthesis:** The extracted signals are organized into summaries, PRDs, and document templates. \n4. **Review and Confirmation:** Customers review the generated content ensuring accuracy and consistency with their operational needs. \n5. **Integration and Reporting:** The final outputs are integrated into dashboards and shared via existing collaboration platforms for real–time decision support.\n\n---\n\n## Assumptions and Liberties\n\n• It is assumed that all customer–provided qualitative data is of high quality and representative of typical use–cases. \n• The analysis presumes that the positive sentiment expressed by customers directly translates into quantifiable efficiency improvements. \n• For the purposes of this case study, estimated efficiency gains and cost reductions are inferred based on anecdotal feedback and may require further validation. \n• Some paraphrasing of customer quotes has been used to standardize language while preserving the original sentiments.\n\n---\n\n## Challenges Identified\n\n• **Adoption Curve:** Initial setup and adaptation to AI–driven processes can require a period of adjustment. \n• **Customization Needs:** Organizations may face challenges in configuring integrations and workflows to match their specific operational requirements. \n• **Data Overload and Signal Filtering:** With high volumes of input data, ensuring that only the most relevant insights are surfaced remains an ongoing challenge.\n\n---\n\nThis case study provides a detailed and structured view of the positive customer experiences with an AI–driven insights platform, illustrating its impact on productivity, decision–making, and overall operational efficiency while acknowledging the challenges and assumptions that come with adopting a new technology solution.",
"status": "completed"
},
"execution": {
"started_at": "2025-09-04T17:34:08.689Z",
"completed_at": "2025-09-04T17:35:18.746Z",
"duration_ms": 70057
}
}
```
# Recorder Changelog
Source: https://docs.buildbetter.ai/recorder-changelog
Updates to BuildBetter Recorder — the desktop and mobile recording app for meetings, calls, and dictation.
This page tracks **BuildBetter Recorder** — the desktop and mobile recording apps. For the main BuildBetter web app, see the [BuildBetter Changelog](/changelog). For the `bb` CLI, see the [CLI Changelog](/cli-changelog).
Scope tags below: **\[Shared]** = desktop + mobile · **\[Desktop]** = desktop only · **\[iOS]** = iPhone · **\[Android]** = Android · **\[iOS/Android]** = shared mobile.
### 🐛 Bug Fixes
* **\[Desktop] Safer Screen Capture on macOS:** If screen capture fails, Recorder stops the session with a clear warning and keeps the original audio and camera files. Incomplete video is not treated as a successfully saved recording.
* **\[Desktop] Recording Disk Protection on macOS:** Screen recording checks available space on the selected recording disk before starting and stops safely if space runs low.
* **\[Desktop] Live Transcript Access:** Open the Transcript tab before the first words arrive, with clearer status distinguishing a meeting bot that is joining from one that is recording.
* **\[Desktop] Automatic Slack Huddle Stop:** After you leave a Slack huddle, Recorder finishes and saves the recording instead of leaving it active.
### 🚀 New Features
* **\[Desktop] Refreshed Recorder Interface:** Dialogs, confirmations, notifications, and recording details share consistent layouts and icons in light and dark themes.
* **\[Desktop] Recording Controls Where You Work:** Pause, resume, and stop an active recording directly from its recording page.
* **\[Desktop] Native Zoom Capture:** Record audio and video from a native Zoom call even before its meeting link becomes available.
* **\[Desktop] Google Meet Browser Setup:** On macOS, follow clear prompts to grant browser access for meeting detection, with recovery guidance if permission is denied.
### ✨ Improvements & Enhancements
* **\[Desktop] Clearer Local and Shared Recording States:** See when a shared call has ended while recording continues on your Mac, with separate shared-call timing and a local timer that excludes pauses.
* **\[Desktop] Slack Huddle Detection:** Active Slack huddles are recognized as local calls without instructions to send a meeting bot.
* **\[Desktop] Live Transcription When Needed:** Live transcription runs while the transcript is being viewed, reducing unnecessary background work.
* **\[Desktop] Verified Media Choices:** After a verified upload, choose whether to keep or delete the local media from a clearer confirmation.
* **\[Desktop] Easier Navigation and Recovery:** Dialogs scroll and respond to keyboard navigation more consistently, and the startup recovery screen offers a reload action.
### 🐛 Bug Fixes
* **\[Desktop] Capture Recovery:** Recording recovers after sign-in refreshes and unexpected capture-helper exits, and local capture stays independent of a meeting bot's status.
* **\[Desktop] Safer Dictation Retries:** Stopping dictation updates immediately; retries preserve quiet audio and do not replace a dictation that is still being processed.
* **\[Desktop] Honest Audio Failure Handling:** An audio capture failure stops and saves the recording with a clear error instead of leaving a timer running without sound.
* **\[Desktop] Current Playback and Call Status:** Completed recordings load fresh playback links, and finished shared captures no longer appear active.
### ✨ Improvements & Enhancements
* **\[Desktop] Background-Only Capture Helpers:** Meeting detection and capture helpers stay out of the macOS Dock, app switcher, and Force Quit list, leaving only the main Recorder visible.
* **\[Desktop] Clearer Recording Status:** Upload and processing status is easier to follow, with a warning when requested video capture did not start.
### 🐛 Bug Fixes
* **\[Desktop] Continuous Video Capture:** Active video recordings continue through brief gaps in meeting-detection events.
* **\[Desktop] Reliable Recording Transitions:** Video evidence and processing time are preserved when recording state changes.
### ✨ Improvements & Enhancements
* **\[Desktop] Selected Microphone Stays Selected:** Recorder uses the microphone you chose and makes an unavailable input clear instead of silently switching devices.
* **\[Desktop] macOS 27 Capture Compatibility:** Recorder's updated capture engine supports recording on macOS 27.
### 🐛 Bug Fixes
* **\[Desktop] Reliable Automatic Stop:** Automatically started recordings linked to a hosted bot stop after the bot finishes, following your configured delay.
* **\[Desktop] Back-to-Back Dictation:** Start another dictation reliably after the previous one ends.
* **\[Desktop] Correct Unlinked Titles:** Unlinking a recording from a meeting clears the meeting title it inherited.
* **\[Desktop] No Standby Upload Reservations:** Idle capture checks no longer reserve paid upload capacity.
### 🚀 New Features
* **\[Desktop] Collection Ownership Controls:** Delete Collections you own from Recorder after reviewing a clear confirmation. Access permissions for Personal, Shared, and Workspace Collections remain unchanged.
### ✨ Improvements & Enhancements
* **\[Desktop] Predictable Collection Navigation:** Collections you created appear under Personal by default, show-or-hide choices stay on the current device, and sidebar changes no longer modify BuildBetter favorites.
* **\[Desktop] Reliable Recording Links:** Uploaded recordings open through the correct BuildBetter call link, including recordings whose link is still being prepared.
* **\[Desktop] Safer Screen Sharing:** Public screen-sharing choices reset when you sign in, sign out, or replace an account.
### 🐛 Bug Fixes
* **\[Desktop] No Duplicate Uploads:** Upload progress stays attached to the correct recording, and processing recordings cannot be uploaded twice.
* **\[Desktop] Preserved Recording Details:** Confirmed bot recording labels remain intact while fallback capture and upload recovery complete.
### 🚀 New Features
* **\[Desktop] Redesigned Setup:** Get started with a clearer onboarding flow, more direct permission controls, and System, Dark, and Light appearance options.
* **\[Desktop] Screen Recording Recovery:** Automatically upload saved screen recordings and optionally open them when ready. When cloud capture is unavailable on macOS, use local video capture with an explicit Upload anyway recovery action.
### ✨ Improvements & Enhancements
* **\[Desktop] Collections That Find You:** Collections you created appear automatically in the sidebar, including shared and nested Collections. Existing favorites stay in place, and removals are remembered on each device.
* **\[Desktop] More Reliable Recording Links:** Bot joining and public recording links resolve more consistently, while the workspace you selected remains active across startup.
* **\[Desktop] Actionable Dictation Warnings:** Successful dictation no longer ends with a misleading error, while warnings that still need attention remain visible.
### 🐛 Bug Fixes
* **\[Desktop] Fresh Consecutive Dictations:** Every dictation starts with a fresh audio buffer so words from a previous session cannot carry into the next one.
* **\[Desktop] Stable Collection Choices:** Removing a Collection stays removed on that device, and default Collection updates no longer fail noisily.
### 🚀 New Features
* **\[Desktop] Join Live Calls:** Find calls already in progress in Recents and open them directly from Recorder.
* **\[Desktop] Live Bot Transcripts:** Follow a bot's live transcript from call details even when the current computer is not recording. Late joins replay the transcript history still available from the service.
### ✨ Improvements & Enhancements
* **\[Desktop] Clearer Shared Recording State:** See elapsed time from the shared recording while retaining the current device's recording duration, and group local sessions connected to the same cloud recording.
* **\[Desktop] More Reliable Meeting Detection:** Native Zoom capture preserves the known meeting through screen-sharing and window changes, avoids unnecessary capture restarts, and waits for confirmed meeting-end evidence before stopping automatically.
* **\[Desktop] Updated Meeting Capture:** The updated capture engine adds Zoom Web support on macOS and improves process tracking and Google Meet participant detection.
* **\[Desktop] Safer Dictation Pasting:** Shortcut handling is more reliable, rich clipboard content is restored after pasting, and content copied afterward is preserved.
### 🐛 Bug Fixes
* **\[Desktop] Stable Recording and Dictation:** Standalone dictation no longer shows call controls or interrupts an active recording, and paste and account errors are clearer.
* **\[Desktop] Correct Collection Membership:** Recordings linked through public identifiers retain the correct Collection membership.
* **\[Desktop] Honest Upload Status:** Missing cloud uploads offer manual recovery, empty transcripts are explained, and upload success appears only after completion is confirmed.
### 🚀 New Features
* **\[Desktop] Series Automations:** Send future recordings in a recurring Series to a Collection, Slack channel, or Notion destination. Reopen saved automations, pause delivery, or open the workflow in BuildBetter. Repeated setup avoids duplicates and does not reactivate paused workflows.
### ✨ Improvements & Enhancements
* **\[Desktop] Easier Collection Management:** Open newly created Collections immediately, refresh workspace data without restarting, and add recordings through a clearer picker. Removing a local Collection keeps its recordings and files intact.
* **\[Desktop] Smoother Integration Setup:** Eligible Slack channels load automatically, and Notion setup offers connection or reconnection guidance when needed.
* **\[Desktop] Refreshed Capture Controls:** Recording and dictation bars offer clearer status, transcript access, and recovery actions. The macOS notch presentation includes expandable notes and transcripts.
* **\[Desktop] Windows Audio Processing:** Saved recordings compress to AAC/M4A for upload, including older WAV recordings awaiting processing. Interrupted uploads resume using saved audio, with retry guidance when processing fails.
### 🐛 Bug Fixes
* **\[Desktop] Reliable Live-Call Navigation:** Open the active cloud recording after sign-in or when joining a call. Capture rechecks the meeting to avoid duplicate recordings and handles stopped shared capture more clearly.
* **\[Desktop] Preserved AI Results:** Completed local AI answers remain available after late inference errors, and automatic Whisper language detection no longer produces empty transcripts.
* **\[Desktop] Stable macOS Recording Windows:** Recorder stays visible across built-in and external displays, and a normal early quit no longer triggers startup recovery.
### 🚀 New Features
* **\[Desktop] Pinned Companies and Series:** Pin Companies and recurring Series beside Collections for quick access. Keep the sidebar focused on pinned Collections and reveal unpinned ones when needed.
### ✨ Improvements & Enhancements
* **\[Desktop] Clearer Collection Navigation:** Browse Personal, Shared, and Workspace Collections in a consistent order with a clear nested hierarchy and explanations for unavailable owner-only actions.
* **\[Desktop] Better Slack Setup:** Search and page through eligible channels across connected Slack workspaces. A failure in one workspace no longer hides channels returned by the others.
* **\[Desktop] Faster Dictation:** Streaming dictation pastes faster and can apply optional cleanup in place in supported apps. The microphone indicator turns off while dictation is idle.
* **\[Desktop] Clearer AI Settings:** Sign-in, workspace, plan, and credit problems now offer the recovery action that matches the issue.
### 🐛 Bug Fixes
* **\[Desktop] Reliable Collection Actions:** Renaming, changing access, moving, and creating nested Collections target the selected Collection. Shared Collections show the same recordings as BuildBetter.
* **\[Desktop] Correct Meeting Details:** Bot-captured recordings adopt the meeting title, invite, and participants on the local detail page without overwriting titles you entered yourself.
* **\[Desktop] Cleaner Dictation Text:** Dictation fallbacks no longer paste speaker labels, and the finalization setting is easier to choose.
* **\[Desktop] Screen Recording Playback:** Finished screen recordings no longer remain stuck preparing local playback. Unavailable videos show recovery actions instead of an endless loading state.
### 🚀 New Features
* **\[Desktop] Slack Delivery from Recorder:** Set up a Collection's Slack delivery without leaving Recorder, choose the destination channel, and automatically post each new Collection item.
* **\[Desktop] Complete Collection Management:** Create Collections, add or upload recordings, manage access and location, open integrations, and work across Personal, Shared, Workspace, and local folders from the Recorder workspace.
* **\[Desktop] Pause and Resume Recording:** Pause a local capture when you step away and resume in the same recording, with clear guidance when a separate cloud capture continues.
* **\[Desktop] Contextual Chat Across Recording Lists:** Open chat from Recent, Screen recordings, Snippets, Favorites, or Archive and ask about the recordings, filters, and search results currently in view.
### ✨ Improvements & Enhancements
* **\[Desktop] Rebuilt Recording Workspace:** Home, Recent, Collections, folders, People, Companies, Series, Archive, Favorites, and Screen recordings now share a consistent layout and action model.
* **\[Desktop] Faster Review and Organization:** Sort configurable recording tables, group results by day, page through long lists, apply detailed filters, and take bulk actions across selected recordings.
* **\[Desktop] More Flexible Capture Controls:** End a live recording from the record menu, preserve your preferred recording-window layout, and choose newer transcription options for dictation and live capture.
* **\[Desktop] Clearer Meeting and Navigation States:** Upcoming meetings keep Join, Record, and bot controls visible, while the sidebar and tray provide faster access to recording, search, settings, invitations, and the dashboard.
### 🐛 Bug Fixes
* **\[Desktop] Continuous Meeting Capture:** Browser-based automatic recordings no longer split into short fragments, and quiet cloud captures recover instead of leaving part of a meeting silent.
* **\[Desktop] Reliable Dictation:** Dictation honors the selected BuildBetter transcription model, explains failures, and provides a direct retry action.
* **\[Desktop] Complete Search Results:** Synced recordings show their full details, and type filters apply consistently to Collections, companies, and people.
* **\[Desktop] Stable Lists and Layouts:** Collection pages no longer jump, row actions avoid covering dates, long lists stay reachable behind chat, and narrow or light-mode layouts remain usable.
### 🚀 New Features
* **\[Desktop] Seamless Bot Handoff:** When BuildBetter's meeting bot joins, local capture can continue as a live companion, stream the bot transcript, and link the finished hosted call without interrupting the meeting.
* **\[Desktop] Smarter Automatic Stop:** Automatic recording stops more reliably when a meeting ends and uses a configurable fallback when meeting-state signals are unavailable.
* **\[Desktop] Record Upcoming Meetings:** Start a local recording directly from an upcoming meeting, with persistent retries when automatic start is temporarily blocked.
### ✨ Improvements & Enhancements
* **\[Desktop] Recording Through Network Loss:** Active recordings remain usable through temporary connection problems, with more reliable transcript continuity when connectivity returns.
* **\[Desktop] Clearer Capture Status:** Bot and local recording states reflect the active platform and capture method more accurately throughout a meeting.
* **\[Desktop] Better Collection Browsing:** Collections are grouped into Personal, Workspace, and Shared sections, and a local workspace can be hidden independently on each device.
* **\[Desktop] Faster Search and Transcript Copying:** Search is more precise, and native clipboard support makes copying transcripts into other apps more reliable.
* **\[Shared] Updated Capture Engine:** Plaud and recording support now use capture engine v1.1.0, with clearer onboarding guidance across supported devices.
### 🐛 Bug Fixes
* **\[Desktop] Reliable Meeting Finalization:** Local recording no longer ends unexpectedly when a bot joins, and silent cloud-capture stalls recover more safely.
* **\[Desktop] Accurate Playback and Status:** Playback speed is respected consistently, while bot and local status indicators remain truthful during reconnects and handoffs.
* **\[Desktop] Working Recording Shortcuts:** Notes and Transcript actions open the intended recording, and recent-recording, snippet, upload, focus, contrast, recovery, and update-check edge cases are more reliable.
* **\[Windows] ARM64 Automatic Updates:** Windows ARM64 installations can receive compatible automatic updates.
### 🚀 New Features
* **\[Windows] Windows x64 Release:** BuildBetter Recorder is now available as a signed per-user Windows installer with automatic WebView2 setup and Windows-specific updates.
* **\[Desktop] BuildBetter Workspaces and Collections:** Signed-in users can browse Personal and workspace Collections, manage access, share links, nest and move Collections, and drag recordings into them.
* **\[Desktop] BuildBetter-First Experience:** BuildBetter transcription, BB Agent chat, and BB Agent summaries are now the signed-in defaults while explicit provider choices and local recovery remain available.
* **\[Desktop] Scoped Search and AI Chat:** Search local metadata quickly and keep recording, person, company, or Collection context attached to streamed AI answers.
### ✨ Improvements & Enhancements
* **\[Desktop] Complete Cloud History:** Recorder pages through your permissioned cloud recordings and Collections and retains the last complete catalog when sync is temporarily unavailable.
* **\[Desktop] Reliable Collection Handoffs:** Local recordings upload before hosted Collection membership is created, multipart recordings stay together, and failed moves preserve the source for retry.
* **\[Shared] Safer Account Transitions:** Credentials and hosted metadata stay isolated by account and are cleared safely when you sign out or change workspaces.
### 🐛 Bug Fixes
* **\[Desktop] Stable Workspace Switching:** Concurrent sign-in, sign-out, and workspace changes no longer race and leave cloud content in the wrong state.
* **\[Windows] Reliable Updates:** Windows installs receive only compatible signed Windows update packages.
### 🚀 New Features
* **\[iOS] BuildBetter Workspace:** Browse cloud conversations, People, Companies, Collections, and recurring Series from the iPhone app.
* **\[iOS] Universal Search and Ask:** Search the selected workspace, open complete results, or ask BuildBetter from the same composer.
* **\[iOS] Cloud Conversation Details:** Read summaries, transcripts, and citations, see participants, and ask questions about an individual conversation.
* **\[iOS] Upcoming Meeting Controls:** Review meeting and bot status, open the meeting, or start a local recording when the bot is off.
### ✨ Improvements & Enhancements
* **\[iOS] Faster Workspace Browsing:** Live search, pagination, source filters, Collection sorting, profile images, and direct links make large libraries easier to navigate.
* **\[iOS] Persistent Workspace Selection:** The app remembers the selected workspace for cloud content, search, and AI answers after relaunching.
* **\[iOS] Local-First Recording:** Recording, playback, transcription, recovery, and account-free setup continue to work without connecting BuildBetter.
* **\[iOS] Plaud Workflows Preserved:** Plaud pairing, recording, import, AutoSync, and transcription remain available alongside the workspace experience.
### 🐛 Bug Fixes
* **\[iOS] Complete Cloud Results:** Cloud recordings load from the selected workspace with accurate totals and incremental pagination.
* **\[iOS] Reliable Search and Ask:** Keyboard, scrolling, clearing, complete results, and streamed Markdown answers now behave consistently.
* **\[iOS] Correct Browse Navigation:** Returning from a Collection, Series, Company, or Person goes back to the originating screen.
* **\[iOS] Clear Meeting Actions:** Meetings distinguish BuildBetter bot coverage from local recording actions, including for future meetings.
### 🚀 New Features
* **\[Desktop] Unified Recorder Workspace:** Access Home, Recent recordings, People, Companies, Collections, recurring Series, upcoming meetings, and active recordings from one place.
* **\[Desktop] Workspace Search:** Search across local and cloud recordings, transcripts, people, companies, Collections, and meeting details.
* **\[Desktop] AI Chat Everywhere:** Ask AI about an individual recording or a broader workspace scope, with supporting evidence, chat history, voice dictation, model selection, and streaming answers.
* **\[Desktop] Summary Templates:** Create and use structured summary templates with sections, citations, custom instructions, and locally generated summaries.
* **\[Desktop] Collections and Recurring Series:** Organize recordings in nested Collections, pin favorites to the sidebar, and browse recurring meeting Series with accurately scoped recordings and AI chat.
* **\[Desktop] Cloud Recording Details:** View hosted recordings with playback, transcripts, notes, summaries, participants, tags, Collections, and direct BuildBetter actions.
* **\[Desktop] Enhanced Playback:** A shared audio/video player with seeking, 10-second skips, playback speed controls, hover previews, multi-part media selection, and hosted-video thumbnails.
* **\[Desktop] Menu-Bar Agenda:** See upcoming BuildBetter and Mac Calendar meetings directly from the menu bar.
* **\[Desktop] Local-First Experience:** Use Recent recordings, upcoming Mac Calendar meetings, recording controls, and local AI features even when not signed in.
* **\[Desktop] Configurable Media Retention:** Choose whether uploaded local audio and video is kept, deleted automatically after a verified upload, or reviewed later.
* **\[Desktop] Instant Dictation:** Dictate text with live transcription and quickly paste it into other apps; interrupted or failed dictation can be recovered from Snippets.
* **\[Desktop] Startup Safe Mode:** Recover from launch issues with a simplified mode that lets you check for updates, restart normally, or continue using the full app.
* **\[iOS] Plaud Integration:** Connect compatible Plaud devices, choose Plaud or iPhone recording, import recordings over Bluetooth or Wi‑Fi, and optionally AutoSync new device recordings.
* **\[iOS] Recovery Library:** Access, play, share, and copy transcripts from locally preserved recordings if the main app cannot open normally.
* **\[iOS] Demo Mode:** Explore realistic sample meetings, recordings, transcripts, summaries, uploads, and Plaud workflows without affecting real data.
### ✨ Improvements & Enhancements
* **\[Desktop] More Reliable Uploads:** Upload progress, completion confirmation, retry support, and clearer errors make cloud uploads easier to follow and recover.
* **\[Desktop] Safer Local Cleanup:** Local media can be removed after a confirmed cloud upload while keeping transcripts, notes, summaries, metadata, and chat history available.
* **\[Desktop] Improved AI Guidance:** Clearer setup help for local models, Apple Intelligence, Ollama, cloud providers, and BuildBetter AI.
* **\[Desktop] Smarter AI Answers:** Chat better prioritizes recordings and transcripts relevant to your selected scope, combining local and BuildBetter evidence when available.
* **\[Desktop] Refined Recording Workspace:** The former separate Live Notes window is now a docked recording page that opens with active calls and restores your previous layout afterward.
* **\[Desktop] Better Directories and Profiles:** People and Company profiles now include photos or logos, contact details, relationships, linked recordings, and improved search.
* **\[Desktop] Improved Recording Browsing:** Recent recordings support source filters, pagination, clearer empty states, faster loading, and cached results for large libraries.
* **\[Shared] Improved Accessibility:** Keyboard navigation, visible focus indicators, labels, tooltips, responsive layouts, and scrolling behavior improved throughout the app.
* **\[Shared] More Consistent Design:** Controls, menus, dialogs, tabs, settings, empty states, recording lists, and light/dark themes now have a more unified appearance.
* **\[iOS] Improved Recording Experience:** Onboarding, recording controls, navigation, playback, upload feedback, permissions guidance, and responsive layouts have been refreshed.
* **\[iOS] More Resilient Plaud Transfers:** Device status, connection feedback, import progress, retryable Wi‑Fi transfers, and direct access to imported recordings are improved.
### 🐛 Bug Fixes
* **\[Desktop] Protected Uploads and Recordings:** Fixed issues that could cause corrupted uploads, duplicate cloud recordings, premature local-media deletion, or interrupted upload recovery.
* **\[Desktop] Reliable Back-to-Back Recording:** Stopping one recording no longer closes or navigates away from a newer recording.
* **\[Desktop] Stable AI Streaming:** Fixed cases where responses from multiple AI requests could overlap or mix together.
* **\[Desktop] Better Transcript Browsing:** Live transcripts no longer force you back to the newest text while you're reading earlier content.
* **\[Desktop] Lower Resource Usage:** Reduced unnecessary CPU and memory use during recording, meeting detection, dictation, and visualizer updates.
* **\[Desktop] Corrected macOS Permissions:** System-audio recording now uses the correct permission flow.
* **\[Desktop] Improved Privacy:** Sensitive transcripts, summaries, upload links, and service responses are no longer written to app logs.
* **\[Desktop] Improved Cloud Capture Stability:** Fixed startup crashes, capture restart loops, status flickering, meeting-visibility warnings, screen-sharing issues, and stale transcript warnings.
* **\[iOS] More Reliable Transcription:** Fixed paused-duration calculations, incomplete transcripts, speech-recognition recovery, no-speech messaging, and transcription retry behavior.
* **\[iOS] Improved Playback and Recovery:** Fixed playback for large, saved, and imported recordings, along with crash/force-quit recovery and cleanup of deleted recordings' pending uploads.
* **\[iOS] Fixed Plaud Compatibility Issues:** Resolved newer iOS compatibility problems, pairing and token issues, and unreliable Wi‑Fi transfer retries.
* **\[iOS] Fixed Layout and Navigation Problems:** Addressed scrolling, modal dismissal, swipe-back navigation, header behavior, overflow, banners, and compact-screen layouts.
### 🐛 Bug Fixes
* **\[Desktop] Fixed Crash on Launch:** The app could quit immediately at startup, before its window appeared — most likely with Stage Manager enabled. Because the crash happened before the update check could run, affected installs needed a manual reinstall.
* **\[Desktop] Fixed Misleading "Bring Meeting to Front" Warning:** While cloud capture was still connecting, the app could warn that it couldn't see your meeting even when it was right in front of you. It now stays quiet while connecting and only asks when it genuinely lost sight of a window it was capturing.
* **\[Desktop] More Reliable Cloud Meeting Capture:** Recordings no longer finalize prematurely, Teams Desktop screenshares are captured on macOS, Teams Web meeting titles are cleaner, and several Safari screenshare and black-frame issues are fixed.
* **\[Desktop] Fixed False "Final Transcript Incomplete" Warning:** A transcript error from a previous recording could appear on the recording you just started, even while it was still actively recording. The warning now clears when you switch recordings and never shows over a live capture.
* **\[Desktop] Fixed Cloud Capture Restart Loop:** Cloud meeting capture no longer drops to "Cloud unavailable" and restart-loops on signed builds.
* **\[Desktop] Fixed Cloud Status Flickering:** The cloud capture indicator no longer flips back and forth between **Connecting** and **Local only** during a recording.
### 🚀 New Features
* **\[Desktop] Instant Dictation:** Dictation can now transcribe **while you speak** instead of waiting until you finish, so text appears almost immediately when you release the key.
* **\[Desktop] Streaming Dictation Engines:** Added live streaming support for **Apple Speech**, **BuildBetter**, and **Deepgram**, alongside the on-device engines, with a local engine as a safety net.
* **\[Desktop] Never Lose a Dictation:** Spoken audio is preserved through failures, cancellations, and interruptions — kept in **Snippets** with a clear recovery state so it can be retried instead of lost.
* **\[Desktop] Transcript Quality Panel:** Transcripts show which engine and model produced them, with an at-a-glance quality indicator and a one-click path to upgrade or install speaker labeling.
* **\[Desktop] Summary Quality & Regeneration:** Summaries show the model that generated them and offer a redesigned regenerate menu, so you can switch models and re-run without leaving the page.
* **\[Desktop] Notes Editor Redesign:** Notes gained a proper markdown editor with an **Edit/Preview** switcher, an **Enhance** action, and a clearer layout.
* **\[Desktop] Fragmented Cloud Recording Playback:** Calls captured in the cloud as multiple parts now play back with a part picker, instead of showing only the newest fragment.
* **\[Desktop] Cloud Video Badges:** Recording lists now mark which calls were captured to the cloud.
### ✨ Improvements & Enhancements
* **\[Desktop] Much Faster Dictation:** The microphone, speech engine, and on-device cleanup are prepared ahead of time, cutting the delay between pressing the key, speaking, and text being pasted.
* **\[Desktop] Better Dictation Cleanup:** Cleanup preserves words you actually spoke while removing filler and model artifacts, and no longer pastes an assistant-style preamble.
* **\[Desktop] Redesigned Recording Details:** The recording page was reworked with a clearer header, type label, media thumbnails, a properties list, and refreshed empty states.
* **\[Desktop] Clearer Cloud Meeting Guidance:** Cloud capture explains itself better, with a clear "meeting ended, cloud video saved" state and no more repeated prompts to rejoin after a call is over.
* **\[Desktop] More Reliable Meeting Detection:** Meeting detection no longer oscillates mid-call, won't auto-rejoin a call you deliberately stopped, and ad-hoc recordings stay quietly local when there's no meeting.
* **\[Desktop] Steadier Cloud Transcription:** Fixed a duplicate-send issue that could make cloud transcription unrecoverable, and cloud capture no longer churns through teardown/restart cycles.
* **\[Desktop] Audio Capture Hardening:** Reduced dropouts and choppiness from buffer overflow and mixer starvation during long recordings.
### 🐛 Bug Fixes
* **\[Desktop] Fixed Lost Dictation Audio:** Dictation clips are no longer overwritten or deleted in edge cases, including rapid back-to-back dictations, and snippets record their true duration.
* **\[Desktop] Fixed Dictation Cancellation:** Canceling no longer risks pasting text later by accident or discarding recoverable audio.
* **\[Desktop] Fixed Cloud Video Playback When Signed Out:** Cloud video is shown with a clear "sign in to stream" prompt instead of disappearing when authentication lapses.
* **\[Desktop] Fixed Duplicate Transcript Lines:** Local recordings no longer duplicate speech captured from both microphone and system audio.
* **\[Desktop] Fixed Audio Retention on Fast Stop:** Stopping a recording quickly no longer risks losing its retained audio.
* **\[Desktop] Fixed Large Upload Failures:** Long recordings are compressed before upload so transcription no longer fails on oversized files.
* **\[Desktop] Fixed Unexpected Sign-Outs:** Resolved an authentication caching issue that could log some users out unexpectedly.
### 🚀 New Features
* **\[Desktop] Redesigned Settings:** Settings now open as an integrated in-app page with sidebar navigation and built-in search, instead of a separate popup window.
### 🐛 Bug Fixes
* **\[Desktop] Persistent Update Button:** The "Update" button no longer stays visible when you're already running the latest version.
### 🚀 New Features
* **\[Desktop] Push-to-Talk Dictation:** Added a dedicated dictation experience with faster microphone start, better handling for short phrases like “OK” or “No,” and more reliable final transcription.
* **\[Desktop] Dictation Engine Selection:** You can now choose your preferred dictation engine in Settings, or let the app automatically pick the best available option.
* **\[Desktop] Global Escape to Cancel Dictation:** You can now cancel dictation with **Esc** even while working in another app on macOS.
* **\[Desktop] Retry Failed Dictation:** If a dictation fails but audio was captured, you can now retry transcription later from **Snippets** instead of losing it.
* **\[Desktop] Recording Media Badges:** Call recordings now show whether they were captured as **video** or **audio-only** in recording lists and search results.
* **\[Desktop] Cloud Recording Sign-In Prompts:** Added clearer sign-in prompts when cloud recording or cloud video features aren’t available because you’re signed out.
* **\[Desktop] Dedicated Recordings Pages:** Added separate pages for **Call Recordings, Screen Recordings, Snippets, Favorites, folders, and Archive**, with list/table views, filters, sorting, and bulk actions.
* **\[Desktop] Bottom Playback Bar:** Added a persistent playback bar with play/pause, scrubbing, skip controls, and playback speed.
* **\[Desktop] Cloud Video Playback:** You can now watch or listen to supported cloud recordings directly in the app, with links to open them in BuildBetter when needed.
* **\[Desktop] Global Search and Settings Search:** Added quick search for settings, recordings, notes, and transcripts, including the **⌘K / Ctrl+K** shortcut.
* **\[Desktop] Onboarding Review Step:** Added a setup review screen during onboarding so you can confirm and change key options before finishing.
* **\[Desktop] Appearance Preview in Onboarding:** Onboarding now includes visual previews for theme and window style choices.
* **\[Desktop] Speaker Labeling Setup in Onboarding:** Added guided setup for speaker labeling during onboarding, including model download progress when needed.
* **\[Desktop] More AI Models:** Added support for **OpenAI GPT-5.5** and **Claude Opus 4.8** in the model picker.
* **\[Desktop] Inline Search in Recordings Views:** Added section-specific search within recordings and snippets for faster filtering.
* **\[Desktop] Cloud Video/Audio Meeting Capture:** Added cloud-powered video and audio capture for desktop meeting recordings, alongside local recording.
* **\[Desktop] Playback Refresh for Expired Media:** Added automatic refresh for expired cloud playback links so recordings stay playable longer.
### ✨ Improvements & Enhancements
* **\[Desktop] Faster Dictation Start:** Dictation now feels much more responsive by reducing startup delays and preparing the microphone and speech engine ahead of time.
* **\[Desktop] Better Dictation Accuracy:** Dictation now uses a full-clip transcription pass when you finish speaking, which improves punctuation, preserves short words better, and avoids fragmented results.
* **\[Desktop] Safer Dictation Recovery:** Spoken dictation clips are now preserved in **Snippets** when canceled or when transcription fails, making recovery much easier.
* **\[Desktop] Clearer Dictation Feedback:** Dictation now shows a cleaner listening state, elapsed time, and clearer processing and error feedback.
* **\[Desktop] Better Quiet-Mic Handling:** Dictation is now more reliable for quiet microphones and low-volume speech, with improved detection and microphone visualization.
* **\[Desktop] Faster Dictation Stop:** Stopping dictation now feels quicker, with faster cleanup and faster display of final results.
* **\[Desktop] More Reliable Hotkeys:** Dictation hotkeys now work more consistently on macOS, including while the app itself is focused.
* **\[Desktop] Smarter Cloud Fallbacks:** When cloud transcription or cloud recording isn’t available, the app now more clearly explains what’s happening and falls back to local transcription more gracefully.
* **\[Desktop] Improved Cloud Video Status:** Cloud recordings and previews now show clearer loading, processing, and availability states.
* **\[Desktop] Better Favorites:** Favorites now include all active favorited recordings, including screen recordings, with cleaner sidebar behavior.
* **\[Desktop] Improved Recording Browsing:** Recordings are easier to browse with richer filters, sorting, tags, folders, archive support, and improved metadata display.
* **\[Desktop] Better Playback Experience:** Recording playback now shows clearer “finalizing” or loading states instead of failing too early.
* **\[Desktop] Improved Search Results:** Search now does a better job surfacing matches from titles, notes, and transcripts, with clearer highlighting.
* **\[Desktop] Better Onboarding Guidance:** Onboarding is now more guided, flexible, and personalized, with clearer setup explanations, permission guidance, and next-step recommendations.
* **\[Desktop] Smarter Onboarding Defaults:** Fresh setups now choose more sensible defaults for transcription and related settings based on your account and setup.
* **\[Desktop] More Flexible Setup Choices:** During onboarding, you can more easily choose transcription engine, language, dictation hotkey, AI summaries, and related preferences.
* **\[Desktop] Reduced Interruptions:** The app now shows fewer unnecessary prompts and toasts during onboarding and recording flows.
* **\[Desktop] Improved Calendar Permission Handling:** Calendar access changes are recognized more quickly without needing to restart the app.
* **\[Desktop] Better Meeting Capture Status:** Meeting recording now shows clearer statuses like **Connecting**, **Cloud ready**, **Uploading**, and **Local only**.
* **\[Desktop] Improved Screen Recording Transcript Flow:** Screen recordings now better support delayed transcription and retained audio for later transcript generation.
* **\[Desktop] Better Desktop Responsiveness:** Local transcription uses system resources more efficiently, improving responsiveness during recording, especially on lower-powered machines.
### 🐛 Bug Fixes
* **\[Desktop] Dictation No Longer Drops Short Phrases:** Fixed cases where short but valid responses like “Okay,” “No,” or “you” could be treated as silence and discarded.
* **\[Desktop] Fixed Missed First Words in Dictation:** Dictation is less likely to cut off the beginning of speech after launch or after the mic has been idle.
* **\[Desktop] Fixed Dictation Reliability Issues:** Resolved several cases where dictation could silently fail, get stuck processing, use the wrong microphone, or stop responding correctly.
* **\[Desktop] Fixed Dictation Cancellation Issues:** Canceling dictation no longer risks pasting text later by accident or deleting recoverable audio.
* **\[Desktop] Fixed Dictation Audio Loss:** Prevented saved dictation audio from being overwritten or deleted in edge cases.
* **\[Desktop] Fixed macOS Hotkey Problems:** Resolved issues where dictation hotkeys could miss key presses or releases, get stuck on/off, or stop working until restart.
* **\[Desktop] Fixed Cloud Dictation Model Selection:** Explicitly chosen cloud transcription models are now correctly used instead of falling back unexpectedly.
* **\[Desktop] Fixed Unexpected Sign-Outs:** Fixed an authentication issue that could log some users out unexpectedly.
* **\[Desktop] Fixed Retina Window Alignment:** Corrected subtle window positioning issues on high-DPI displays.
* **\[Desktop] Fixed Cloud Video Playback Loops:** Large cloud videos no longer get stuck endlessly retrying while loading.
* **\[Desktop] Fixed Cloud Recording Preview Failures:** Resolved cases where cloud video previews could fail to appear even after processing completed.
* **\[Desktop] Fixed Sign-In Flow from Floating Bar:** Sign-in actions from the floating bar now open the right place more reliably.
* **\[Desktop] Fixed Favorites Missing Items:** Older or less recent favorited recordings, especially screen recordings, now appear correctly.
* **\[Desktop] Fixed Calendar Refresh Issues:** Meeting and calendar views now recover properly after granting access, without getting stuck in retry loops.
* **\[Desktop] Fixed Duplicate Transcript Lines:** Local recordings no longer duplicate speech when the same audio is captured from both microphone and system audio.
* **\[Desktop] Fixed Long Recording Retranscription Failures:** Large recordings are now more reliable to retranscribe.
* **\[Desktop] Fixed Audio Retention Issues:** Recordings are less likely to lose retained audio when stopped quickly or during finalization.
* **\[Desktop] Fixed Settings Opening Issues:** Opening Settings from onboarding or a freshly opened dashboard now works more reliably.
* **\[Desktop] Fixed Recording Detail View Glitches:** Switching between recordings no longer briefly shows the previous recording’s transcript.
* **\[Desktop] Fixed Screen Thumbnail Generation:** Screen recording previews now generate more reliably.
* **\[Desktop] Fixed Cloud Capture Reliability:** Cloud meeting capture now recovers better from missed events and avoids duplicate uploads.
* **\[Desktop] Fixed Meeting Detection on macOS 26.5:** Improved meeting detection reliability for Zoom and similar apps on newer macOS versions.
* **\[Desktop] Fixed Onboarding Save and Resume Issues:** Onboarding choices now save more reliably and are less likely to be lost across restarts.
* **\[Desktop] Fixed Background Voice Test Cleanup:** Closing onboarding no longer leaves the microphone test running in the background.
* **\[Desktop] Fixed Permission Prompt Edge Cases:** Permission flows during onboarding are less likely to get stuck or show irrelevant prompts.
These updates focus heavily on making setup easier, search and navigation faster, and recording and transcription more dependable on desktop, alongside a round of Plaud device reliability fixes on iPhone. Overall, the app should now feel smoother to start, easier to control, and more reliable during everyday use.
### 🚀 New Features
* **\[Desktop] Guided Onboarding:** First-time setup has been redesigned into a simpler step-by-step flow that helps you get started faster.
* **\[Desktop] Try Before You Finish Setup:** You can now test live transcription during onboarding before completing setup, without saving any recordings or transcripts.
* **\[Desktop] Sign In or Continue Without an Account:** You can now choose whether to sign in right away or start using the app without an account.
* **\[Desktop] Flexible Voice Engine Setup:** Onboarding now lets you choose your transcription engine, language, and dictation hotkey, with in-place model downloads when needed.
* **\[Desktop] Goal-Based Setup:** Setup now adapts to what you want to do, like meetings, dictation, or screen recordings, and only shows the most relevant steps.
* **\[Desktop] Contextual Follow-Up Prompts:** Sign-in, permissions, calendar connection, and camera overlay prompts now appear only when they're actually needed.
* **\[Desktop] Replay Setup Anytime:** You can rerun onboarding later from Settings if you want to change or revisit your setup.
* **\[Desktop] Background Model Upgrades:** The app can now quietly improve downloaded transcription models in the background, with visible progress and cancel support.
* **\[Desktop] Settings Search and Deep Links:** You can now search for settings and jump directly to the exact option you need.
* **\[Desktop] Global Search Overlay:** A new quick search lets you find recordings and snippets across titles, notes, and transcripts using **⌘K / Ctrl+K**.
* **\[Desktop] Pause and Resume Recordings:** Active recordings now support pause and resume without hiding the main recording controls.
* **\[Desktop] Calendar Disconnect Control:** You can now fully disconnect calendar access from inside the app, which also disables calendar-based meeting detection until you reconnect.
* **\[Desktop] Screen Recording Transcript Controls:** You can now choose whether screen recordings should generate transcripts automatically, and generate or regenerate them later from the recording details page.
### ✨ Improvements & Enhancements
* **\[Desktop] More Reliable Onboarding Progress:** Setup progress now saves more reliably, so it's less likely to reset or reappear unexpectedly.
* **\[Desktop] Smoother Onboarding Experience:** Onboarding now includes clearer wording, better visuals, preserved progress when going back, and more polished transitions.
* **\[Desktop] Smarter Permission Requests:** The app now asks for permissions in a more logical order and only for features you actually plan to use.
* **\[Desktop] Better Meeting Setup Defaults:** If you choose a meetings-focused setup, the app can automatically turn on meeting detection and auto-recording for you.
* **\[Desktop] More Resilient Model Downloads:** Downloads are now better at resuming after interruptions, and engine changes happen more safely when the app is idle.
* **\[Desktop] Improved Dictation Responsiveness:** Dictation now finishes faster after you stop speaking or release the hotkey, reducing the delay before text appears.
* **\[Desktop] More Reliable Hotkey Behavior on macOS:** The dictation hotkey now recovers automatically if macOS temporarily disables it.
* **\[Desktop] Safer Cloud Fallback:** If cloud transcription isn't available because you're not signed in or don't have a workspace selected, the app now switches to an available on-device option and lets you know.
* **\[Desktop] Better Engine Recommendations:** Onboarding now gives clearer guidance on which transcription engine is best for speed, English accuracy, or multilingual support.
* **\[Desktop] Improved Recording Uploads:** Desktop uploads are now more reliable for larger files, with better progress reporting and stronger handling of processing delays or failures.
* **\[Desktop] Refreshed Sidebar and Navigation:** The desktop sidebar has been redesigned with cleaner organization, nested folders, hover previews, quick actions, and better collapsed behavior.
* **\[Desktop] Better Search and Organization Tools:** Search results and sidebar actions now make it easier to rename, move, favorite, or delete recordings.
* **\[Desktop] Reduced Loading Flicker:** Several views now feel smoother by avoiding unnecessary loading flashes during fast transitions.
* **\[Desktop] More Reliable Language Handling:** Your selected transcription language is now applied more consistently across live transcription and retranscription.
* **\[Desktop] Improved Summary Reliability:** If one local summary engine fails, the app can now fall back to another available option automatically.
* **\[Desktop] Clearer Screen Recording Transcript Flow:** Screen recordings now show clearer transcript status and make it easier to understand when transcript generation is available.
* **\[Desktop] Retain Audio for Later Transcripts:** Screen recordings can now keep the audio needed to generate a transcript later, even if automatic transcription was turned off.
* **\[Desktop] Better Final Transcript Quality:** After recording stops, the app now performs a final pass using the saved audio to improve transcript completeness and accuracy.
* **\[Desktop] Clearer Processing Status:** The app now does a better job showing when audio or transcript processing is still finishing, including when a final transcript may be incomplete.
* **\[Desktop] More Dependable Meeting Detection Controls:** Meeting detection settings now persist more reliably across restarts, and automatic meeting recording is better at avoiding false starts.
* **\[iOS] Clearer Plaud Setup Errors:** When the Plaud SDK reports a permission, resource, or app-key problem, the app now surfaces it instead of showing "ready" when it isn't.
* **\[iOS] More Reliable Plaud Device Scanning:** Discovered Plaud devices now stay connectable across scans, and scanning stops before connecting for steadier Bluetooth connections.
* **\[iOS] Steadier Plaud Status:** Scanning and connection state are now tracked separately, so routine device updates like battery and storage no longer interrupt an active scan.
* **\[iOS] Plaud Session Token Refresh:** Plaud now refreshes its BuildBetter access token before it expires, avoiding mid-session failures during longer use.
### 🐛 Bug Fixes
* **\[Desktop] Onboarding Replay Fixes:** Restarting onboarding from Settings now properly resets setup state and gives clearer feedback if something goes wrong.
* **\[Desktop] Workspace Selection Fix:** Signed-in setup now saves the correct workspace more reliably, preventing cloud transcription and upload issues.
* **\[Desktop] AI Setup Fixes:** Setup now correctly enables summaries and dictation cleanup when you opt in and a supported AI option is available.
* **\[Desktop] Apple Speech Reliability Fixes:** Live transcription with Apple Speech now recovers faster from stalls and audio errors, retries more effectively, and gives a clearer message if recovery fails.
* **\[Desktop] Faster Apple Speech Recovery:** Stalled Apple Speech sessions now recover much sooner during active speech.
* **\[Desktop] Fewer False Transcription Restarts:** Apple Speech is less likely to restart unnecessarily after long silence, helping avoid cut-off speech when you begin talking again.
* **\[Desktop] Onboarding Cleanup Fix:** Closing onboarding no longer leaves the live voice test running in the background.
* **\[Desktop] Settings Save Error Feedback:** If a setting fails to save, the app now shows a visible error instead of failing silently.
* **\[Desktop] Calendar Disconnect Fix:** Disconnecting calendar access now fully stops calendar-based reading and meeting detection until you reconnect.
* **\[Desktop] Cloud Permission Messaging Fix:** Authentication and permission problems during cloud transcription now show clearer, more accurate messages instead of generic connection failures.
* **\[Desktop] Recording Deletion Fixes:** Deleting a recording now more reliably removes its media files, while also avoiding accidental deletion if the recording itself wasn't successfully removed.
* **\[Desktop] Screen Recording Transcript Timing Fixes:** Transcript generation for screen recordings now waits until audio processing is fully finished, avoiding incomplete or broken transcripts.
* **\[Desktop] Screen Recording Audio Retention Fixes:** Saved screen recording audio now restores and updates correctly, so transcript generation remains available after reloads.
* **\[Desktop] Local AI Reliability Fixes:** Local summary and generation tools are now less likely to hang, timeout, or mishandle prompts and file paths.
* **\[Desktop] Crash Recovery Improvements:** If a desktop window crashes unexpectedly, the app now shows a recovery screen with a reload option instead of leaving you with a blank window.
* **\[Desktop] Favorites and Sidebar Refresh Fixes:** Changes like favoriting, renaming, or deleting recordings now update more reliably across the app.
* **\[Desktop] Layout Overflow Fixes:** Very long calendar event titles no longer push important controls off screen.
* **\[Desktop] Audio Retention Fixes:** Recordings set to discard audio now do so more reliably, while recordings meant to keep audio retain it correctly for transcript processing.
* **\[Desktop] Recording Shutdown Fixes:** Stopping a recording is now more reliable, with fewer cases where shutdown or final processing could hang or start too early.
* **\[Desktop] BuildBetter Reconnect Fixes:** Unexpected cloud transcription disconnects are now detected more reliably, with better recovery and clearer warnings.
* **\[iOS] Plaud Wi-Fi Imports Work on Long Recordings:** Wi-Fi transfers now connect to the correct device hotspot and no longer fail on longer recordings due to a fixed overall time limit; a transfer only fails if it genuinely stalls.
* **\[iOS] Plaud Recording List Reliability:** The device recording list no longer comes back empty when the device responds slowly or sends results in multiple parts.
* **\[iOS] Accurate Plaud Connection State:** Successful app-key verification and in-progress unpairing are no longer misreported as errors.
* **\[iOS] More Stable Plaud Transfers:** Transfer progress and completion are now handled consistently, preventing duplicate or out-of-order import results.
These updates make recording, transcription, and Plaud device support more dependable across desktop and iPhone. The release focuses on making setup easier, reducing confusing states, and improving reliability during real-world use.
### 🚀 New Features
* **\[iOS] Plaud Recorder Support on iPhone:** You can now connect a Plaud device in the iOS app to manage recordings, browse files, and import audio directly into your BuildBetter recordings library.
* **\[iOS] Faster Plaud Imports with Wi‑Fi:** Plaud recordings can now be transferred over Wi‑Fi for quicker imports, alongside the standard import option.
* **\[Desktop] Easier AI Transcription Setup:** AI transcription settings have been redesigned with clearer provider cards and built-in setup flows for on-device transcription, BuildBetter cloud, and your own API key providers.
* **\[Desktop] Meeting Detection Toggle:** You can now turn meeting detection on or off with a setting that stays saved, and the app will respect that choice across desktop setup and settings.
* **\[Desktop] Notion Beta Enabled by Default:** If you haven’t opted out, the new Notion experience is now turned on automatically so it’s available right away.
### ✨ Improvements & Enhancements
* **\[Desktop] More Accurate Auto-Recording:** Automatic recording now waits for stronger meeting signals before starting, helping avoid unwanted recordings.
* **\[Desktop] Safer Auto-Stop Behavior:** The app is better at stopping the correct recording and is less likely to interrupt recordings you started manually.
* **\[Desktop] More Reliable Live Transcription:** Live transcription now stays more responsive during slowdowns by prioritizing recent speech and reducing lag from backed-up audio.
* **\[Desktop] Better End-of-Recording Responsiveness:** Transcription wraps up faster after a recording ends while still allowing a short moment for final transcript updates to arrive.
* **\[Desktop] Improved Notion Settings Reliability:** Notion settings now refresh more reliably, support more connection formats, and offer clearer recovery options if settings fail to load.
* **\[iOS] Refreshed iPhone App Navigation:** The Recordings, Settings, and Upcoming screens now have a more polished native look with updated headers and settings styling.
* **\[iOS] Better Plaud Setup Experience:** Plaud setup is now simpler, with automatic workspace selection when possible, clearer status messages, and better guidance when sign-in or workspace selection is required.
* **\[iOS] Cleaner Plaud Device Management:** Disabling or resetting Plaud now clears connection state more cleanly, reducing stale status messages and confusing scan states.
* **\[iOS] Clearer Plaud Recording Details:** Imported Plaud recordings are now labeled as coming from a Plaud device, and their timestamps are more accurate for sorting.
* **\[Desktop] Clearer Language Diagnostics:** Feedback and Slack summaries now show transcription language details more clearly, including selected and detected language when available, plus guidance that auto-detect may be less reliable for short or noisy audio.
* **\[Desktop] More Reliable Window Style Updates:** Desktop window style changes now apply more consistently across the app, including smoother updates after onboarding or when switching between notch and floating modes.
### 🐛 Bug Fixes
* **\[Desktop] Meeting Detection Fully Respects Off State:** Fixed an issue where meeting detection could continue running even after being turned off.
* **\[Desktop] Active Meeting Status Clears Correctly:** Stopping or disabling meeting detection no longer leaves the app incorrectly showing an active meeting.
* **\[Desktop] Improved Cloud Transcription Recovery:** Fixed issues where stalled live transcription streams could stop updating, replay old audio, or show duplicate and out-of-order transcript text after reconnecting.
* **\[Desktop] BuildBetter Transcription Startup No Longer Hangs:** Fixed a problem where live transcription could get stuck at startup. The app now times out gracefully and shows a clear error so you can retry or switch providers.
* **\[Desktop] Desktop Local AI Models Work More Reliably:** Fixed packaged desktop builds so bundled local AI features no longer depend on missing machine-specific files.
* **\[Desktop] macOS Native Components Load Correctly:** Fixed macOS app packaging issues that could prevent important native components from loading properly.
* **\[iOS] Plaud Bluetooth Fallback Works Again:** Fixed Plaud connection so it can still connect through Bluetooth when a device token isn’t available.
* **\[iOS] Plaud Setup Handles Workspace Changes Properly:** Fixed Plaud initialization and status refresh issues when switching BuildBetter workspaces.
* **\[iOS] Plaud Connection Errors Are Clearer:** Fixed Plaud setup so connection attempts won’t continue before initialization is complete, with clearer error messages when setup is missing required information.
* **\[iOS] BuildBetter Transcription on iPhone Is More Reliable:** Fixed iOS issues where BuildBetter transcription could fail during startup or miss transcript updates because of backend message format differences.
* **\[iOS] Chat Sheet No Longer Overlaps Controls on Mobile:** Fixed the mobile chat view so it appears above floating controls and avoids layout overlap.
* **\[Desktop] Notch and Floating Bar Layout Issues Fixed:** Fixed desktop UI issues where the recorder could show the wrong layout after onboarding or when switching between notch and floating modes.
This update adds more transcription choice across desktop and mobile, especially with OpenAI and on-device iPhone support, while making recording, summaries, and transcript regeneration more reliable. It also smooths out many everyday issues around permissions, device changes, startup stability, and final transcript accuracy.
### 🚀 New Features
* **\[Desktop] OpenAI Speech-to-Text:** Use OpenAI for live transcription and for retranscribing saved recordings, with model selection.
* **\[Desktop] Video Meeting Recording Controls:** Settings include controls for video + audio or audio-only capture, plus clearer availability and setup status.
* **\[iOS] OpenAI Speech-to-Text:** OpenAI live transcription and retranscription on iPhone, with model selection.
* **\[iOS] On-Device Transcription on iPhone:** Parakeet on-device transcription with live + post-recording modes and built-in model download/management.
* **\[Shared] Cloud Model Picker:** Choose between cloud AI model options for supported providers directly in Settings without re-entering your API key.
* **\[Shared] Retranscription Progress Indicator:** Live progress updates while regenerating a transcript.
* **\[Shared] AI Quality Indicator:** Chat and summary screens show an AI quality badge with model details and a shortcut to Settings.
### ✨ Improvements
* **\[Desktop] Clearer Video Meeting Recording Language:** Simpler, friendlier wording in settings and status messages.
* **\[Shared] Better Transcription Setup Guidance:** Setup screens better show when OpenAI or Parakeet is ready and what's missing.
* **\[Desktop] Easier Parakeet Setup:** Clearer model status, download progress, upgrade prompts, supported-model guidance.
* **\[Shared] Smarter Summary Progress Feedback:** Clearer progress and completion states while summaries generate.
* **\[Desktop] Improved Audio Device Handling:** Default mics/speakers marked clearly; system device changes followed reliably during recording.
* **\[Desktop] More Reliable Dictation Behavior:** Dictation waits briefly for trailing speech before stopping, preserving last words.
* **\[Desktop] Improved macOS Permission Flow:** Screen recording and camera permission messaging is clearer and refreshes reliably after grant/deny.
* **\[Desktop] Better macOS Update Guidance:** Warns when the app runs from a location where automatic updates won't work (e.g., outside Applications).
* **\[iOS/Android] Smoother Mobile Startup and Navigation:** More reliable mobile startup, clearer loading/error states, more responsive onboarding and recording.
* **\[iOS] Faster Mobile Recording Response:** Mobile recording feels quicker and less likely to stall on start/stop.
* **\[iOS] More Reliable Saved Recordings:** iPhone recordings preserved more safely, reducing accidental loss from temporary storage.
* **\[Desktop] Improved Local AI Output Formatting:** Local AI responses preserve spacing and formatting (lists, indentation) more accurately.
* **\[Desktop] Clearer Local AI Error Messages:** Local AI requests that are too large get clearer fix guidance.
* **\[Desktop] Better Long Transcript Progress Updates:** Step-by-step progress on long retranscriptions instead of appearing stuck.
* **\[Desktop] Improved Transcript Panel Layout:** Transcript controls behave better on small desktop window sizes.
* **\[Shared] Updated Transcription Quality Ratings:** Clearer 7-level scale for comparing privacy and accuracy tradeoffs between providers.
### 🐛 Bug Fixes
* **\[Shared] More Reliable Final Transcript Capture:** Stopping a recording or dictation is less likely to cut off the last few spoken words.
* **\[Shared] Better Recovery from Cloud Transcription Disconnects:** Cloud transcription recovers more reliably from connection issues and preserves more transcript content.
* **\[Shared] Fixed Empty Summary Results:** Failed summary generation now reports the problem instead of finishing silently with nothing saved.
* **\[iOS] Fixed White Screen and Startup Crashes:** Mobile startup more stable; fixed blank screens, init failures, render crashes.
* **\[iOS] Fixed Recording State Issues:** App stays in sync with actual recording state more reliably during slow starts or failed stops.
* **\[iOS] Fixed Loss of Recordings:** Existing iPhone recordings moved into durable storage more reliably.
* **\[iOS] Fixed Parakeet Final Transcript Loss:** Stopping a Parakeet recording flushes remaining audio more safely so final speech isn't lost.
* **\[Desktop] Fixed Parakeet Retranscription for Saved Recordings:** Regenerating transcripts now works correctly for Parakeet recordings, including long ones that previously could fail or crash.
* **\[Desktop] Fixed Speaker Labels in Retranscription:** Retranscribed recordings with speaker detection keep more of the transcript and apply speaker labels more accurately during fast speaker switches.
* **\[Desktop] Fixed macOS Camera Permission Issues:** Webcam overlay and camera access on macOS request and report permissions more reliably.
* **\[Desktop] Fixed Auto-Update Problems on macOS:** App avoids install attempts from unsupported locations and shows clearer guidance instead of failing silently.
* **\[Shared] Fixed Authentication Refresh Glitches:** Intermittent sign-in failures from overlapping refresh attempts are less likely.
* **\[Desktop] Fixed Local AI Hangs and Broken Characters:** Local AI generation more stable; less likely to freeze or produce malformed text.
* **\[Desktop] Fixed Missing Transcript Panel Controls:** Close and copy buttons in the transcript view remain visible more reliably.
* **\[Desktop] Fixed Popovers Near Screen Edges:** Quality and settings popovers display correctly on small or narrow windows.
* **\[Desktop] Fixed Floating Bar After Switching from Notch:** Switching window style from notch to floating no longer leaves the bar clipped — geometry resets fully without an app restart.
* **\[Desktop] Fixed Notch After Onboarding:** Finishing onboarding with the notch style no longer shows a squashed, upside-down floating bar — the main window switches to the notch UI correctly.
* **\[Desktop] Fixed BuildBetter Transcription Hang:** A stalled credits check or WebSocket handshake no longer blocks live transcription forever — the app gives up after 45 seconds with a clear "session start timed out" error.
* **\[Desktop] Fixed Notarization for Bundled Frameworks:** Release builds with the video meeting recording SDK now sign every nested binary individually with a secure timestamp, so Apple notarization no longer rejects inner GStreamer dylibs.
### 🚀 New Features
* **\[Desktop] Retranscription Progress Updates:** Live status updates in the transcript pane — loading audio, uploading, transcribing, saving.
* **\[Desktop] Cloud Model Picker:** Choose between available cloud AI models in Settings → AI without re-entering API keys.
* **\[Shared] AI Quality Indicators:** Chat, summaries, and transcripts show clearer quality and provider details — which model or transcription engine was used and what to expect.
* **\[iOS] Expanded iOS AI Options:** Choose on-device AI, BuildBetter, or your own OpenAI / Anthropic / Groq keys for summaries and chat on iPhone/iPad.
* **\[iOS] iOS API Key Management:** Add, review, and remove supported AI API keys directly in Settings with secure storage.
* **\[iOS] BuildBetter Transcription on iOS:** iOS supports BuildBetter as a transcription option, including live transcription and cloud retranscription.
* **\[Shared] Back-to-Back Recording Preferences:** Choose how overlapping meetings are handled — prompt, auto-split, or keep as one.
* **\[Desktop] Recording Split, Merge, and Archive Actions:** Supported recordings include user-facing options to split, merge, or archive from Recording Detail.
* **\[Desktop] Archived Recordings:** Archive instead of delete; hidden from the main list, restorable later.
* **\[Desktop] Clear Chat:** Recording chat threads can be cleared from the chat header.
* **\[Desktop] macOS Meeting Notifications:** Notified when a new meeting starts while another recording is in progress.
* **\[Desktop] Speaker Identification Banner:** Transcripts show a clearer in-app prompt when speaker identification is off, with a one-click enable.
* **\[Desktop] Setup Wizard Feedback Button:** Send feedback directly from the setup flow.
* **\[Shared] Post-Call Rating Controls:** Disable rating prompts from Settings or pick "Don't ask me again" in the rating dialog.
* **\[Desktop] macOS Screen Recording:** Record a full display or single window on macOS, with optional mic audio, system audio, and webcam overlay.
* **\[Desktop] Screen Recording Setup Window:** Dedicated setup for sources, audio options, and camera placement.
* **\[Desktop] Screen Recording Library:** Screen recordings have their own library view, separate from audio.
* **\[Desktop] Goal-Based Onboarding:** Onboarding adapts to whether you want meeting recording, voice capture, and/or screen recording.
### ✨ Improvements
* **\[Desktop] Clearer Retranscription Warnings:** Regenerate-transcript dialog explains speaker-identification tradeoffs.
* **\[Desktop] Better Speaker Paragraphs:** Retranscribed transcripts grouped into cleaner speaker paragraphs.
* **\[Desktop] More Accurate Speaker Assignment:** Better labeling around short interjections and overlapping speech.
* **\[Desktop] Improved Long Recording Handling:** Long retranscriptions process more smoothly with better progress updates and fewer backend limits.
* **\[Desktop] Faster Parakeet on Apple Silicon:** Local Parakeet retranscription uses Apple hardware acceleration when available.
* **\[Desktop] More Responsive Transcript Panel:** Controls stay visible at narrower window sizes.
* **\[Shared] Updated Model Names and Defaults:** Names, descriptions, and defaults refreshed to reflect current options and quality.
* **\[Desktop] Smoother Settings Experience:** AI model lists load smoothly and preserve existing API key details when you switch models.
* **\[Desktop] Better Transcript Quality Details:** Transcript status shows which provider, model, and speaker-labeling method were used, with safe fallbacks for older recordings.
* **\[iOS] Streaming AI Responses on iOS:** Cloud AI responses stream live for more responsive chat.
* **\[Shared] Better BuildBetter Reliability:** BuildBetter transcription more resilient to temporary disconnects; recovers automatically in more cases.
* **\[Shared] Credit Exhaustion Alerts:** Clearer warnings when BuildBetter credits run out, with a quick path to switch settings.
* **\[Shared] Automatic BuildBetter Defaults:** Eligible workspace users get BuildBetter selected automatically for transcription and snippet cleaning, preserving manual choices.
* **\[iOS/Android] Improved Mobile Experience:** Classic and Retro themes, theme switcher, better playback controls, mobile retranscription, configurable mic sample rate.
* **\[Desktop] Smarter Recording Actions:** Split/merge/archive include clearer confirmations and hide when they don't apply.
* **\[Desktop] Shorter "Catch Me Up" Recaps:** Concise three-bullet summary.
* **\[Shared] Improved Onboarding Messaging:** Setup explains AI quality, speed, download size, permissions, and speaker-identification tradeoffs more clearly.
* **\[Desktop] Visible Diarization Download Size:** Speaker identification download size shown upfront during setup.
* **\[Shared] Less Disruptive Rating Prompts:** Post-call rating prompts appear after recording review, not immediately at end.
* **\[iOS] Refreshed iOS Onboarding:** Cleaner, more native look with clearer setup steps.
* **\[iOS/Android] Classic Theme by Default:** New mobile installs start with the Classic theme.
* **\[Desktop] Better Screen Recording Workflow:** More consistent behavior from setup through final processing; completed videos used reliably for playback, upload, sharing.
* **\[Desktop] Screen Recordings Get Post-Processing:** Same titles and summaries treatment as audio recordings when transcripts are available.
* **\[Desktop] Improved Folder Management:** Clearer folder handling with a visible main Recordings folder, better filtering, and rename/move support.
* **\[Desktop] More Reliable Dashboard Navigation:** Opening directly to areas like Recordings works more consistently.
### 🐛 Bug Fixes
* **\[Desktop] Full Transcript Preservation:** Retranscription with speaker identification no longer drops text from short segments.
* **\[Desktop] Safer Diarization Fallbacks:** If speaker identification fails, the app keeps the full transcript instead of returning partial.
* **\[Desktop] Fixed Speaker Label Collapsing:** Retranscribed conversations no longer collapse into a single "Speaker 0" block when speaker separation is available.
* **\[Desktop] Parakeet Retranscription Restored:** Parakeet recordings can be retranscribed correctly again.
* **\[Desktop] Long Parakeet Crash Fix:** Long local Parakeet retranscriptions no longer crash the desktop app.
* **\[Desktop] Transcript Controls Visible Again:** Close and Copy buttons in the transcript panel no longer disappear at medium window sizes.
* **\[Desktop] Quality Popover Positioning:** Popovers stay readable instead of being clipped at window edges.
* **\[Desktop] Older Recording Metadata Fallbacks:** Older recordings without saved provider details show safer fallback info instead of misleading labels.
* **\[iOS] iOS Theme Onboarding Fix:** Onboarding always uses the intended appearance, even if a different theme was previously saved.
* **\[iOS] Version Display Fix:** Version and build info correctly match the current release.
* **\[Shared] BuildBetter Speaker Numbering Fix:** Retranscribed speakers now start at Speaker 1 for consistency.
* **\[Desktop] Settings Shortcut Fix:** "Open Settings" from credit warnings works more reliably, even from the recorder window.
* **\[iOS/Android] Mobile Reliability Fixes:** Better onboarding layout on modern iPhones, more reliable feedback submission, improved long-recording stability, better transcript finalization on end.
* **\[Shared] BuildBetter Login Fallback:** Selecting BuildBetter without the required login or workspace falls back safely instead of failing silently.
* **\[Desktop] Auto-Split Timing Fix:** Back-to-back meeting auto-splitting happens at the correct time.
* **\[Desktop] Invalid Split/Merge Protection:** Unsupported split/merge actions blocked safely to prevent broken results.
* **\[Shared] Token Refresh Reliability:** Authentication refreshes more reliably before expiry, reducing intermittent failures.
* **\[Desktop] BuildBetter Retranscription Fix:** Saved recordings use BuildBetter correctly for retranscription instead of falling back to the wrong backend.
* **\[Shared] BuildBetter Transcript Fidelity:** Retranscriptions better preserve speaker labels, timing, and confidence.
* **\[iOS] Calendar Loading Feedback on iOS:** "Show calendars" setting gives clearer loading, retry, and empty-state feedback.
* **\[Shared] Deepgram Language Fixes:** Selected languages and auto-detect work correctly across live and retranscription, improving multilingual accuracy.
* **\[Desktop] Faster "No Transcript Found" Feedback:** Recordings that never produce a transcript surface the result sooner.
* **\[Desktop] Improved Screen Recording Stability:** Crashes, preview issues, shutdown reliability, and recording state sync fixed on macOS.
* **\[Desktop] Smoother Live Cursor Preview:** Mouse cursor smoother during live screen recording previews.
* **\[Desktop] Camera Overlay Position Fix:** Webcam overlays stay correctly positioned in the recorded video.
* **\[Desktop] Long Screen Recording Upload Fix:** Screen recordings with webcam overlay less likely to miss auto-upload after long export times.
* **\[Shared] Key Persistence Fixes:** Sign-in tokens and saved cloud API keys recover more reliably when secure storage is flaky.
* **\[Desktop] Folder Operation Recovery:** Folder moves, renames, and creation behave more reliably if something fails partway through.
This release adds major screen recording capabilities on macOS, expands organization and AI options, and makes onboarding, transcripts, summaries, and navigation much more reliable.
### 🚀 New Features
* **\[Desktop] Screen Recording on macOS:** Record full screen or a single window, with optional mic audio, system audio, and webcam overlay.
* **\[Desktop] Screen Recording Setup Window:** Choose what to record, preview sources live, adjust audio options, and position your camera overlay before you start.
* **\[Desktop] Dedicated Screen Library:** Screen recordings have their own Screen section.
* **\[Desktop] Live Camera Preview:** Floating live camera preview during capture when recording with webcam.
* **\[Desktop] Goal-Based Onboarding:** Setup adapts to your goals — meetings, talk-to-text snippets, or screen recording.
* **\[Desktop] Recording Folders:** Create folders, set a default folder, and move recordings between folders.
* **\[Desktop] Groq AI Provider Support:** Groq available as a cloud AI option for chat, summaries, dictation cleanup, and transcription.
* **\[Desktop] Dictation Finalize Mode:** Pick whether dictation pastes raw transcript immediately or waits for a cleaned-up final version.
* **\[Desktop] Meeting Note Prompt:** Prompt to start taking notes when a meeting starts.
* **\[Desktop] Meeting Trigger Details:** Recordings show why they started (meeting auto-start, dictation trigger).
* **\[Desktop] Mirror Camera Option:** Mirror the webcam overlay in screen recordings.
* **\[iOS] Classic and Retro themes:** iOS theme options with a new theme switcher in Settings.
* **\[iOS] Dedicated playback controls:** Scrub, skip, and playback-speed controls on iOS.
* **\[iOS] Retranscription on iOS:** Existing recordings can be retranscribed from the mobile app.
* **\[iOS] Configurable mic sample rate:** Pick the sample rate used when recording on iOS.
### ✨ Improvements
* **\[Desktop] Smarter Screen Recording Processing:** Auto titles and summaries when usable audio is available.
* **\[Desktop] Better Screen Recording Playback:** Detail pages prioritize the finished video, support inline playback, and still expose the raw camera clip.
* **\[Desktop] Improved Screen Recording Flow:** Starting and stopping returns you to the right screen more consistently.
* **\[Desktop] More Reliable Dashboard Navigation:** Opening directly to tabs like Recordings is more dependable.
* **\[Shared] Clearer Onboarding:** Refreshed across desktop and iOS — clearer wording, better permission guidance, cleaner layouts, step-by-step progress indicator.
* **\[Desktop] Simpler Permission Requests:** Permission prompts explain required vs. optional, especially for microphone, calendar, camera, and screen recording.
* **\[Desktop] Hosted Workflow Setup Improvements:** BuildBetter workspace setup loads earlier and remembers your selected workspace.
* **\[Desktop] Improved Dictation Speed and Reliability:** Finalization faster, more consistent, and better at preserving cleaned text, source app, and tone history.
* **\[Desktop] Richer Transcript Formatting:** Better preservation of speaker labels, punctuation, timing, confidence, and other metadata.
* **\[Desktop] More Reliable Transcript Saving:** Live transcripts continuously saved during recording, improving summary accuracy.
* **\[Desktop] Better Summary Accuracy:** Auto-summaries use the most complete transcript available.
* **\[Desktop] Improved "Catch Me Up":** Catch-up summaries focus on the last five minutes and return three short bullets.
* **\[Desktop] Faster AI Settings Refresh:** Changing cloud AI API keys refreshes available models quickly and reliably.
* **\[Desktop] Improved Feedback Reporting:** Feedback and post-call reports include better diagnostics for faster resolution.
* **\[Desktop] Window Style Preference Persistence:** Desktop window style restores reliably between launches.
* **\[Desktop] Smoother Desktop Startup:** More stable startup, fewer visual glitches, more consistent window behavior.
* **\[Desktop] Better Audio Stability During Calls:** Microphone and system audio handling on macOS more stable during device changes.
* **\[Desktop] Improved Meeting Detection:** Fewer false triggers from background activity; more accurate start/stop detection.
* **\[Desktop] Streamlined Recordings Experience:** Recent recordings and navigation more consistent.
* **\[Desktop] Safer Storage Management:** Settings clearer about where recordings save; storage usage reporting more accurate.
* **\[iOS] Cleaner iOS Default Theme:** New iOS installs default to Classic.
* **\[iOS] Major mobile UI overhaul:** Redesigned recording, playback, and settings.
* **\[iOS] Settings rewrite:** Refreshed layout with clearer sections, better copy, new controls.
* **\[iOS] Recording detail polish:** Inline playback, upgraded transcript viewing, easier sharing.
* **\[iOS] Updated on-device intelligence library:** Better accuracy and stability.
* **\[iOS] Richer transcript view:** Better handling of speaker labels, punctuation, and long-running sessions.
### 🐛 Bug Fixes
* **\[Desktop] Faster "No Transcript Found" Handling:** Recordings that never receive a transcript fail sooner.
* **\[Desktop] More Reliable Screen Recording Startup:** Fixed cases where screen recording appeared stuck, failed to start, or prompted for the wrong permissions.
* **\[Desktop] Improved Screen Recording Stability:** Crashes, corrupted previews, startup failures, unreliable stopping/finalization all fixed.
* **\[Desktop] Camera Overlay Positioning Fixed:** Webcam picture-in-picture overlay on macOS stays in place.
* **\[Desktop] Smoother Cursor Capture:** Mouse movement smoother in macOS screen recordings.
* **\[Desktop] More Reliable Camera Overlay Recording:** Fixed cases where the live camera preview or final exported video could miss the camera feed.
* **\[Desktop] Correct Camera Overlay Layering:** Camera overlay properly appears on top of the screen recording.
* **\[Desktop] Better Long Recording Finalization:** Long screen recordings with camera overlay less likely to fail upload or finish processing late.
* **\[Desktop] System Audio Permission Fix:** Turning off Include system audio properly skips capture and avoids unnecessary prompts.
* **\[Desktop] Unsupported Device Handling:** Devices/macOS versions that don't support screen recording are identified correctly.
* **\[Desktop] Screen Tab Folder View Fix:** Screen recordings remain visible when browsing within a folder.
* **\[Desktop] Recording Routing Fixes:** Fixed cases where recording windows or shortcuts opened the wrong screen.
* **\[Desktop] Summary Refresh Fixes:** Auto-summaries appear reliably in recording details without manual refresh.
* **\[Desktop] Transcript Save/Load Fixes:** Fixed missing, misplaced, incomplete, or wrongly attached transcripts.
* **\[Desktop] Live Transcript Reliability:** Fixed cases where live recordings could end with empty transcripts despite captured speech.
* **\[Desktop] Apple Speech Stability Fixes:** On-device transcription recovers better if it stalls during recording.
* **\[Desktop] Sign-In and API Key Persistence:** Tokens and saved API keys recover reliably when macOS Keychain is flaky.
* **\[Desktop] Window Dragging Restored:** Dashboard title bar can be dragged again without interfering with buttons, links, or search.
* **\[Desktop] Window Style Preference Fix:** Window style no longer unexpectedly switches after upgrading.
* **\[Desktop] Folder Safety Improvements:** Invalid folder names/IDs blocked; folder moves safer mid-save.
* **\[Desktop] Reduced False Meeting Starts:** Webex background activity less likely to trigger accidental prompts.
* **\[iOS] iOS Onboarding Layout Fixes:** Spacing and safe-area issues fixed on iPhones with notches or home indicators.
* **\[iOS] More reliable feedback submission:** iOS feedback batched and submitted more reliably.
* **\[iOS] Mobile capture memory fix:** Memory allocation bug in the mobile capture layer fixed.
* **\[iOS] Live transcript finalization on iOS:** iOS live transcripts preserve captured text more reliably on end.
* **\[Desktop] Dictation Cleanup Fix:** Finalized dictation no longer includes internal system messages in pasted text.
### 🚀 New Features
* **\[Desktop] Recording folders in the sidebar:** Create folders from the sidebar, with a visible `Recordings` folder for everything in the main library, default-folder selection, and folder filtering.
* **\[Desktop] Notion export beta:** Connect Recorder to Notion, choose a default destination, push notes/summaries/transcripts from Recording Detail.
* **\[Desktop] Groq cloud support:** Groq as a cloud provider for AI chat, summarization, snippet cleanup, live transcription, and retranscription.
* **\[Desktop] Meeting-aware recording flow:** Auto-started recordings link to the current calendar event; upcoming meetings open their linked recordings; Recorder can prompt for a fresh recording when meetings overlap.
* **\[Desktop] Meeting relink controls:** Recording Detail can suggest nearby meetings and lets you relink/unlink mis-matched ones.
* **\[Desktop] Take-notes meeting prompt:** Native prompt when a detected meeting starts.
* **\[Desktop] Limited onboarding mode:** Setup continues in reduced-capability mode when permissions or models are still missing.
* **\[Desktop] Custom snippet cleaner instructions:** Give the dictation cleaner extra guidance for your style.
* **\[Desktop] Flexible storage controls:** Choose recording location, set default folders, optionally compress finished local audio.
### ✨ Improvements
* **\[Desktop] Folder management now lives where you use it:** Folder creation pulled out of Settings and into the sidebar.
* **\[Desktop] Better folder settings:** Rename, change save location, optionally move existing recordings.
* **\[Desktop] Faster move-to-folder flow:** Show in Finder and Move to folder combined into one menu.
* **\[Desktop] Better folder filtering and counts:** Browse and search custom folders or main Recordings more reliably.
* **\[Desktop] More flexible Notion defaults:** Remember preferred connection, parent page, and exported sections.
* **\[Desktop] Clearer integrations labeling:** BuildBetter and Notion connections live under `Integrations`.
* **\[Desktop] Richer playback controls:** Scrub, skip back/forward, playback speed changes.
* **\[Desktop] Smarter transcript recovery:** AI chat and transcript actions fall back gracefully when transcript files are missing.
* **\[Desktop] More reliable uploads and feedback flows:** Common media types preserved cleanly; feedback dialogs remember your email.
* **\[Desktop] Clearer AI assistant readiness:** Explains why AI chat is unavailable and points you to the right setup step.
* **\[Desktop] More flexible BuildBetter environment routing:** Desktop auth, uploads, and integrations behave consistently across prod, staging, and local environments.
* **\[Desktop] Better recording provenance details:** Developer Mode shows why a recording or snippet was created.
* **\[Desktop] More control over meeting prompts:** Manage take-notes pop-up from Calendar settings; preview in Developer Mode.
* **\[Desktop] Clearer update guidance:** Update failures from disk-image or translocated paths explained.
* **\[Desktop] Clearer transcription language guidance:** Setup flags English-only Whisper model mismatches and suggests multilingual alternatives.
* **\[Desktop] Faster AI settings refresh after key changes:** Saving/removing a cloud API key refreshes model availability immediately.
* **\[Desktop] Better summary automation organization:** Auto-title and auto-summary controls alongside summary templates.
* **\[Desktop] Clearer snippet browsing:** Long snippet titles and previews wrap cleanly.
* **\[Desktop] Cleaner dictation output:** Cleanup preserves your wording, removes repeated passages, adds natural paragraph breaks.
* **\[Desktop] Smoother live transcript updates:** Long recordings stream transcript updates with less lag and UI churn.
* **\[Shared] More focused catch-up summaries:** Catch-me-up returns three short bullets based on the last five minutes.
* **\[Desktop] More resilient dictation overlays:** Dictation Bar stays compact until speech arrives; Notch recovers reliably if cleanup or stop events delay.
* **\[Desktop] Clearer auto-paste guidance:** Errors explain disk-image, translocated path, or local dev build issues.
* **\[Desktop] More helpful empty states:** Home can start a recording directly when your library is empty.
* **\[Desktop] More reliable macOS packaging:** Cleaner updater archives and more reliable DMGs on newer macOS.
* **\[Desktop] Safer updater artifacts:** Versioned updater bundles reduce cache collisions between releases.
* **\[Shared] Consistent app naming across releases:** macOS keeps `BuildBetter.ai Recorder`, iOS keeps `BB Recorder`.
### 🐛 Bug Fixes
* **\[Desktop] Cleaner recording shutdown timing:** Waits for final audio and transcript output before announcing stop.
* **\[Desktop] Safer folder moves and renames:** Rolls back safely if a file move fails partway through.
* **\[Desktop] More reliable folder creation:** Folder creation, library counts, and default-folder handling more consistent.
* **\[Desktop] More reliable Notion environment handling:** Notion export follows the BuildBetter environment of your sign-in.
* **\[Desktop] Fewer updater install failures:** Update archives strip problematic macOS metadata files.
* **\[Desktop] More robust build environment checks:** Local build scripts catch missing Xcode toolchain earlier.
* **\[Desktop] Safer transcription language validation:** Unsupported codes rejected earlier with clearer errors.
* **\[Desktop] Fewer accidental dictation hotkey triggers:** Fn, Globe, and other modifier hotkeys less likely to start/stop dictation unexpectedly.
* **\[Desktop] Fewer false-positive meeting auto-starts:** Webex background activity less likely to mimic an active meeting.
* **\[Desktop] Safer recording state transitions:** Guards against duplicate starts; keeps more trailing transcript text before finalizing.
* **\[Desktop] Better recovery when capture ends unexpectedly:** Stops and cleans up reliably if audio sources disconnect or transcript streams stall.
* **\[Desktop] More reliable floating window behavior:** Manually opened windows stay visible until dismissed.
### 🚀 New Features
* **Snippets mode for dictation:** Capture quick dictation clips, then browse and copy them from the Snippets view.
* **New Dictation Bar and notch controls:** Faster start/stop with dedicated dictation surfaces.
* **Dictation & Snippets settings page:** Configure hotkeys, auto-paste, always-visible bar, and snippet display preferences in one place.
* **Template-based auto-summarize defaults:** Choose built-in or custom templates as the default auto-summary format.
* **Snippet cleaner provider/model selection:** Pick how cleanup runs before paste — local models, Apple Foundation, OpenAI, Anthropic, BuildBetter, or Ollama. Includes GPT-5 Nano.
* **Parakeet transcription option:** New transcription engine with guided model management.
* **BuildBetter cloud support:** Use BuildBetter-hosted AI for transcription and chat when signed in.
* **Enhanced Notes tab:** Dedicated enhanced-notes view in recording detail.
* **Built-in diagnostics export:** Generate diagnostics and open logs from settings.
### ✨ Improvements
* **More reliable meeting auto-detection:** Better signal handling for start/stop.
* **Smoother dictation hotkey behavior:** More consistent hold, tap, and double-tap flows.
* **Cleaner transcript finalization:** Dictation waits more intelligently for trailing words before cleanup and paste.
* **Faster dictation stop-to-paste flow:** Reduced stop tail and settle windows in Notch and Dictation Bar modes.
* **More stable notch transcript layout:** Less resize jitter and visual flicker while dictating.
* **Clearer setup guidance:** AI setup and settings explain readiness, permissions, and model choices.
* **Consistent templates across settings and recordings:** Same catalog powers template settings, default summary, and recording summaries.
* **Better update visibility:** Install/restart actions and update state clearer.
* **Faster recovery under load:** Transcription streams handle temporary queue pressure better.
### 🐛 Bug Fixes
* **Reduced repeated macOS permission prompts:** Accessibility prompts less repetitive.
* **Action items render correctly as lists:** Bulleted action items format as expected.
* **Safer stop handling:** Stopping when nothing is recording no longer causes confusing states.
* **Cleaner cleanup fallback behavior:** Dictation cleanup rejects meta/model chatter and falls back to cleaned raw text.
* **No duplicate dictation surfaces in notch mode:** Prevents overlapping dictation UI.
* **Clearer sign-in/environment errors:** Auth errors easier to read when environment settings don't match.
* **Meeting auto-start defaults tuned for reliability:** Existing installs use more reliable defaults.
* **Safe fallback when deleting a default template:** Switches safely to Quick Summary if a default template is removed.
* **Launch-at-login toggle stability:** Setting persists correctly.
* **No stale restart prompts:** Restart/update prompts don't appear when already up to date.
* **Calendar deselect-all now sticks:** Empty selections preserved.
* **Auto-stop no longer ends manual recordings/snippets:** Auto-stop applies only where expected.
### 🚀 New Features
* **Comprehensive Transcription Readiness Check:** New `get_transcription_readiness` command shows exactly what's working and what needs setup — checks macOS Speech Recognition (availability + permission), Whisper (installed + active model), and Deepgram (API key). Returns a clear `isReady` boolean with specific `actionNeeded` guidance.
* **Parakeet Transcription Backend** (feature-gated): NVIDIA Parakeet TDT 0.6B via sherpa-onnx — no Python dependency, \~1.93% word error rate, single-model caching (\~3 GB per model).
* **Download Progress Bars:** Model downloads in onboarding show real progress bars with percentage.
### ✨ Improvements
* **Transcription Status Cards:** AI Settings and Setup Wizard show clear status cards — green for ready, amber for needs-setup, gray for unavailable.
* **Enhanced Debug Panel:** "Check Permissions" tests all 6 TCC permissions (Microphone, Screen Recording, Accessibility, Automation/AppleEvents, Calendar, Speech Recognition) and shows transcription readiness.
* **Reset Permissions Updated:** Resets all 6 TCC permissions including Calendar, AppleEvents, SpeechRecognition.
* **Prominent Backend Logging:** Clear `========` banner logs when transcription starts showing which backend is in use.
### 🐛 Bug Fixes
* **Fixed Apple Speech duplicate transcriptions:** Switched from string prefix matching (`lastEmittedText`) to segment-based tracking (`lastEmittedSegmentCount`) — only new segments emitted.
* **Fixed memory leak / infinite tick logs:** WebSocket transcription server loop now exits properly via explicit `None` handling in `tokio::select!`.
* **Fixed CSS @keyframes nesting:** Resolved CSS compilation warnings in classic theme.
### 🔧 Technical
* New `TranscriptionReadiness` and `TranscriptionOptionStatus` types in `commands/apple_intelligence.rs`.
* Segment-based transcription tracking in `AppleIntelligence.swift`.
* Proper `tokio::select!` None handling pattern in `transcription/server.rs`.
* Parakeet module with sherpa-rs `TransducerRecognizer` integration.
### 🚀 New Features
* **Ollama Integration:** Local Ollama models for AI Assistant and Summarization. Auto-detects server at `localhost:11434`, lists all available Ollama models in AI engine dropdowns, available in the onboarding wizard, streaming generation with fallback support.
* **Custom Whisper Model Import:** Import your own `.bin` Whisper models. Copy to app folder or reference external paths. Imported models appear in the dropdown with "(Custom)" badge. GGML files validated before import.
* **NotchBar External Monitor Support:** NotchBar always stays centered on the MacBook's built-in display. Screen observer monitors display configuration changes, uses `CGDisplay.is_builtin()`, auto-repositions when external monitors connect/disconnect.
* **Speaker Diarization** (WIP): Infrastructure for speaker identification in transcripts.
### ✨ Improvements
* **Model Download Validation:** Whisper downloads use a temp `.download` file first, validate file size, auto-detect and re-download corrupted/incomplete files.
* **Better Transcription Error Messages:** Errors include file size for debugging; warns if file is suspiciously small; instructs to delete and re-download.
* **Distil-Whisper Model Priority:** Distil models checked first in discovery (`ggml-distil-small.en.bin`, `ggml-medium-32-2.en.bin`, `ggml-distil-large-v3.bin`).
* **Apple Intelligence Detection:** Clearer messaging — macOS version detection (consumer 15.1+ vs Foundation Models API 26+), "How to verify" expandable guide, "Open System Settings" button.
* **Upload Button Auth Check:** Shows "Login to Upload" when not authenticated; toast directs to Settings.
* **Auth Environment Validation:** Clear error when staging/production are mismatched: "You are logged into staging but trying to use production".
* **Live Changelog Updates:** In-app changelog fetches from server; always up to date regardless of installed app version; falls back to embedded version when offline.
### 🐛 Bug Fixes
* **Auto-stop now works when meeting ends:** Calendar mode requires activity signals (mic/camera/network) for high confidence — when you leave a meeting, signals stop, confidence drops to 0.20, and auto-stop triggers. Confidence scales by participation: Calendar + mic + camera = 0.99, Calendar only (no signals) = 0.20.
* **Calendar selection now syncs:** Toggles emit events; UpcomingView updates immediately without restart.
* **Fixed app crash on startup:** Screen observer uses correct async runtime (`tauri::async_runtime::spawn`).
* **Whisper model not found:** Model discovery includes all model types with detailed search-path logging.
* **Retro NotchBar stop button overlap:** Removed LED indicator and adjusted position.
### 🚀 New Features
* **Custom Whisper Model Import:** Import your own `.bin` Whisper models. Copy to app folder or reference external paths. Imported models appear in the dropdown with "(Custom)" badge.
* **Ollama Integration:** Ollama models for AI Assistant and Summarization. Auto-detects at `localhost:11434`, lists available models in dropdowns, available in onboarding wizard, streaming with fallback.
### 🐛 Bug Fixes
* Fix Apple Intelligence not detected on macOS 26 (dylib bundled in `Frameworks/` but code looked in `Resources/`).
* Fix Whisper model import file picker not opening (AppleScript command fix).
* Fix microphone staying active after recording ends on macOS (CPAL stream explicitly paused before drop).
* Fix Whisper transcript overwriting single line instead of growing (`is_final: false` → `true`).
* Fix stop button not responding on recordings page (`isStopping` state reset in finally block).
* Fix "Show Recorder" tray menu not bringing window to front on macOS (added `activateIgnoringOtherApps`).
### ✨ Improvements
* **Apple Intelligence Detection:** macOS version detection between consumer features (15.1+) and Foundation Models API (26+); "How to verify Apple Intelligence" expandable guide; "Open System Settings" button; improved error messaging when API unavailable.
### 🚀 New Features
* **Hide Dock Icon:** New "Menu Bar Only" mode hides the app from Dock and Cmd+Tab — accessible only via the system tray (macOS).
* **Retranscribe Recordings:** Re-transcribe existing recordings using any backend (Whisper, Deepgram, Apple Speech).
* **Calendar Selection:** Choose which calendars appear in Upcoming Meetings with checkboxes.
* **\[iOS] In-App Feedback:** Submit feedback with star ratings directly from the mobile app.
### 🐛 Bug Fixes
* Fix calendar permission dialog not appearing on macOS 14+ (`requestFullAccessToEventsWithCompletion:`).
* Fix "Invalid Date" display in calendar events (serde camelCase serialization).
* Fix calendar settings button navigating to the wrong tab.
* Fix delete recording button not responding to clicks.
### ✨ Improvements
* Calendar Settings shows selected calendar count and supports select/deselect all.
* System tray menu includes "Toggle Dock Icon" option.
* Added Checkbox UI component for better form controls.
### 📱 Mobile App
* New in-app feedback form with star rating and Slack/API submission.
* Retranscribe recordings via RefreshCw button on detail screen.
* CollapsibleBottomBar styling improvements.
* Recordings and Settings screen refinements.
### 🚀 New Features
* Theme system with Classic and Retro styles.
* Templates tab in Settings with custom summary templates.
* Changelog UI with version history and provider logos.
* Deepgram cloud transcription enhancements.
### 🐛 Bug Fixes
* Fix theme switching — remove global retro styles from index.css.
* Fix speaker diarization display; add dev mode option for rating popup.
* Fix Deepgram interim transcript handling and consolidate transcript views.
* Fix system audio banner not clearing when audio detected.
* Fix NotchBar expand/move issues on button clicks.
* Fix Deepgram duplicate transcriptions by mixing audio before sending.
* Remove broken latency tracking from live transcription.
### ✨ Improvements
* Desktop components theme-aware with CSS variables.
* Reload LLM and transcription backends when live recording starts.
* Simplify NotchBar by removing expand/quick-actions view.
* Color-code transcript bubbles by speaker.
* Redesign templates UI and add template grid to summary view.
### 🚀 New Features
* Theme selection (Classic / Retro) added to the onboarding wizard.
* Classic theme: clean modern look with purple accents.
* Retro theme: terminal-inspired with amber/green and VT323 font.
### 🐛 Bug Fixes
* Fix NotchBar buttons staying in active state after click.
* Fix default theme now correctly set to Classic.
* Fix gray-on-gray text in template section badges.
* Fix onboarding showing retro despite Classic being selected.
* Fix CSS `@import` order warnings for Google Fonts.
### ✨ Improvements
* Streamlined onboarding (removed skip button).
* Theme-aware components using CSS variables.
* Centralized theme defaults to `classic`.
### 🚀 New Features
* Apple Speech improvements with better transcription quality.
* Copy transcript to clipboard functionality.
* LLM token cleanup for better context management.
### ✨ Improvements
* Reload transcription backend when settings change.
* Better speaker color coding in transcripts.
### 🚀 New Features
* **Auto-Titles:** AI automatically generates descriptive titles from transcripts.
* **Markdown Notes:** Edit/preview toggle with full GitHub Flavored Markdown support.
* **Cloud API Keys (BYOK):** Bring your own keys for OpenAI, Anthropic, and Deepgram.
* **Custom Summary Templates:** Create reusable meeting note formats.
* NotchBar shows all 4 quick actions in expanded view.
### 🔧 Technical
* Cloud passthrough commands for OpenAI / Anthropic / Deepgram.
* LLM router supports multiple backends.
* Cleaned up unused legacy components.
* Template storage via plugin-store.
### ✨ Improvements
* Prominent Refresh button on AI Engines settings.
* Toast notifications for model refresh.
* Auto-fallback to Apple Intelligence when active model deleted.
* Refresh button for Apple Intelligence status.
* Apple Intelligence default in onboarding when available.
* Apple Intelligence setup prompt added to the onboarding wizard.
* Apple Intelligence setup guide in AI Settings.
### 🐛 Bug Fixes
* Fix release build hang issue.
### 🔧 Technical
* Bump version and update Apple Intelligence dylib.
### 🚀 New Features
* **AI Engines System:** Separate configuration for different AI providers.
* **LLM Router:** Intelligent routing between local and cloud AI models.
* **Advanced Summarization UI:** Dropdown menu for summary options.
### 🔧 Backend
* Catch-me-up feature (summarize last N minutes).
* Progressive summarization for long transcripts (map-reduce style).
* Enhance notes with transcript context.
* Transcript context limit increased from 8K to 30K chars.
### 🚀 New Features
* All 4 quick actions visible in NotchBar expanded view.
### 🔧 Technical
* Update Apple Intelligence dylib with improvements.
## Earlier Releases
For versions prior to v0.1.42, contact the BuildBetter team — the Recorder repository is private.