Data Access
This page provides a detailed breakdown of exactly what data Barvol reads from each connected integration, how long it is stored, and how it is used. Transparency about data access is a core part of how Barvol operates.
Principles
Barvol follows three principles for data access:
- Minimum necessary access — Barvol requests only the permissions required for the features it provides. Read-only access is used unless a write capability is explicitly documented and user-initiated.
- You control the scope — for each integration, you select which accounts, repositories, channels, or pages to authorize. Barvol never accesses resources outside the scope you define.
- No background processing for non-members — Barvol only reads data from accounts and services you have explicitly authorized. It does not infer or access data from third parties who have not consented.
Gmail
OAuth scope: gmail.readonly
What is read: Email metadata (sender, subject, date), email body text for emails from CRM contacts and starred emails only.
What is not read: Spam, newsletters, promotional email, emails from senders not in your CRM, file attachments.
How it's used: CRM contact context, meeting preparation panels, AI chat queries.
Storage: Email text is indexed for search and AI retrieval. Raw email bodies are not stored verbatim — they are processed into embeddings and summaries.
Google Calendar
OAuth scope: calendar.readonly
What is read: Event title, dates/times, attendee names and emails, location, video call links.
What is not read: Event descriptions (unless enabled in settings), private event notes, attached files.
How it's used: Calendar view, meeting context panels, time allocation analysis, AI chat queries.
Storage: Event metadata is stored and synced in real time via webhook.
GitHub
Access method: GitHub App installation (not personal access token)
What is read: Commit messages and metadata, PR titles and descriptions, issue titles and labels, repository names and languages.
What is not read: File contents, secrets, CI/CD configuration, private repository settings.
How it's used: Developer Activity page, goal progress tracking, AI chat queries.
Storage: Synced every 10 minutes; data retained per plan retention policy.
Slack
OAuth scope: channels:history, channels:read (for authorized channels only)
What is read: Message text and timestamps from authorized channels, thread replies, author usernames.
What is not read: Direct messages, private channels, channels not explicitly authorized, file attachments.
How it's used: AI chat context queries, detecting feedback signals in customer-facing channels.
Storage: Recent 30 days of messages from authorized channels are indexed. Older messages are not retained.
Notion
OAuth scope: Page-level access (Notion's integration model)
What is read: Page titles and text content, database row titles and text properties.
What is not read: Page comments, page history, file attachments, pages outside authorized scope.
How it's used: AI context for chat queries and synthesis generation.
Storage: Synced hourly; content stored as embeddings for semantic search.
Linear
OAuth scope: read (issues, projects, cycles)
What is read: Issue titles, descriptions, status, priority, assignee, labels. Project and cycle metadata.
What is not read: Issue comments, private team settings, roadmap configuration.
How it's used: Tasks view (read-only Linear issue overlay), goal progress tracking, AI chat queries.
Storage: Synced every 10 minutes; retained per plan policy.