# Home (/docs) Welcome to **Optiverse Academy**, your central resource for everything Optiverse. Whether you're just getting started, looking to set up integrations, or exploring advanced automation workflows, you'll find step-by-step guides and best practices here. ## Where to Start [#where-to-start] Get your first AI-powered meeting summary in under 5 minutes. Understand the assistant, the recording page, and sharing. Create custom summary templates tailored to your meeting types. Live transcription, universal speech-to-text, and in-meeting task management. Record meetings and dictate notes on the go. Your AI assistant for querying meetings and generating insights. Manage members, roles, organization settings, and licenses. Connect Optiverse to your CRM, communication tools, and automation platforms. Canonical security, privacy, and compliance information for Optiverse. # AI-Generated Tasks (/docs/boards-and-task-management/ai-generated-tasks) Optiverse listens for commitments, assignments, and action items during your meetings and automatically surfaces them as tasks. No manual note-taking required. The AI understands who agreed to do what and when. ## How Action Item Detection Works [#how-action-item-detection-works] After a meeting is processed, Optiverse analyzes the transcript for: * Explicit commitments ("I'll send the proposal by Friday") * Assignments ("Mario has to follow up with the client") * Agreed-upon next steps ("Let's schedule a review for next week") * Implied tasks from decisions ("We decided to migrate, someone needs to create the plan") These appear as **action items** on the recording page with checkboxes. \[Screenshot: Recording page showing a list of detected action items with checkboxes] ## From Action Item to Full Task [#from-action-item-to-full-task] Click any action item to expand it: 1. **AI generates a full task description**, context-aware, pulling relevant details from the conversation 2. **Responsible person is identified**, based on who volunteered or was assigned during the discussion 3. **Deadline is extracted**, if a timeframe was mentioned in the conversation The AI understands natural conversation patterns. Even without perfect speaker labels, it recognizes phrases like "I will do X" or "Can you handle Y?" to correctly assign responsibility. \[Screenshot: Expanded action item showing AI-generated description, assignee, and deadline] ## Pushing Tasks to Your Tools [#pushing-tasks-to-your-tools] Once an action item is expanded, push it to: * **Optiverse Boards**, your built-in Kanban task management * **Microsoft Planner**, for teams using the Microsoft ecosystem * **Connected task management tools**, via integrations and webhooks Select the destination, confirm the details, and the task is created with a link back to the source meeting. \[Screenshot: Task push dialog showing destination options: Boards, Planner, and other connected tools] ## Managing Tasks on the Recording Page [#managing-tasks-on-the-recording-page] You can manage action items directly on the recording page: * **Check off completed tasks**, mark items as done without leaving the page * **Edit descriptions**, refine the AI-generated text if needed * **Reassign**, change the responsible person * **Skip items**, not every detected action item needs to become a formal task ## Task Properties [#task-properties] Each AI-generated task includes: | Property | Source | | ------------------ | ---------------------------------------------------------------------- | | Description | AI-generated from meeting context | | Responsible person | Detected from conversation ("I'll do it" / "Mario should handle this") | | Deadline | Extracted if mentioned ("by Friday", "next sprint", "end of month") | | Source meeting | Automatic link to the originating recording | ## Consolidated Task Views via Knowledge Hub [#consolidated-task-views-via-knowledge-hub] Use the Knowledge Hub to get a bird's-eye view of tasks across all your meetings: * "What are all my open action items from this week's meetings?" * "What did I commit to in yesterday's calls?" * "List all tasks assigned to \[person] from the last 30 days" * "Are there any overdue action items from the project kickoff?" The Knowledge Hub query works across all your meetings, giving you a consolidated view of commitments and tasks without manually checking each recording. \[Screenshot: Knowledge Hub response showing consolidated action items from multiple meetings] ## Tips for Better Task Detection [#tips-for-better-task-detection] * Speak clearly when assigning tasks ("John, can you take care of the proposal?") * Mention deadlines explicitly ("We need this by next Wednesday") * Summarize action items at the end of meetings. The AI picks these up with high accuracy. * Use names when assigning to help the AI attribute correctly # Getting Started with Boards (/docs/boards-and-task-management/getting-started-with-boards) Boards bring Kanban-style task management directly into Optiverse. Every task traces back to the meeting conversation where it originated, giving you a built-in system for tracking follow-ups without switching tools. ## Creating a Board [#creating-a-board] 1. Navigate to the **Boards** page from the sidebar 2. Click **New Board** 3. Give it a descriptive name (e.g., "Sales Follow-ups", "Project Alpha", "Engineering Tasks") 4. Your board is ready with default columns \[Screenshot: Boards page showing the New Board button and existing boards] ## Board Structure [#board-structure] Each board uses a Kanban layout with customizable columns: | Default Column | Purpose | | -------------- | ------------------------------- | | To Do | Tasks that haven't been started | | In Progress | Tasks currently being worked on | | Done | Completed tasks | You can customize columns to match your team's workflow (e.g., add "Blocked", "In Review", or "Waiting"). \[Screenshot: A board with multiple columns and task cards] ## Adding Tasks from Meetings [#adding-tasks-from-meetings] The core advantage of Boards is the direct connection between tasks and meetings: 1. Open any recording page 2. Find an action item in the meeting output 3. Click the action item 4. Optiverse generates an **AI-powered task description** automatically 5. Assign the task to a board 6. Assign it to a team member 7. The task is created with a link back to the source meeting Tasks created from meetings maintain a permanent link to their source conversation. You always know the exact context behind any task. Just click through to the original meeting. \[Screenshot: Action item on a recording page being expanded into a task with board assignment] ## Task Properties [#task-properties] Each task includes: * **Description**, AI-generated from the meeting context, editable * **Assignee**, a team member in your workspace * **Due date**, set manually or extracted from the conversation * **Status**, determined by which column the task is in * **Source meeting**, linked reference to the originating recording ## Sharing and Collaboration [#sharing-and-collaboration] Share boards with specific colleagues in your workspace for collaborative tracking: * Team members can view and move tasks * Everyone sees the same real-time board state * Tasks assigned to someone appear on their view regardless of who created them \[Screenshot: Board sharing dialog showing team member selection] ## When to Use Boards vs. External Tools [#when-to-use-boards-vs-external-tools] **Use Optiverse Boards when:** * You don't have a separate task management tool * You want tasks directly connected to meeting context * Your team prefers a lightweight, integrated solution **Use external integrations when:** * You already use Jira, Asana, Monday.com, or similar tools * Your project management workflows are complex and established * You need features beyond basic Kanban (sprints, epics, dependencies) If you use an external task management tool, you can connect it via integrations or API to push action items there instead of using Boards. ## What's Coming [#whats-coming] * **Desktop app integration**, create tasks from anywhere with a single click, without needing to open the full Optiverse app # Boards & Task Management (/docs/boards-and-task-management) Optiverse Boards is a built-in task management system that uses AI to automatically mine action items from your meetings and place them into Kanban-style boards. Set up your first board and see AI-generated tasks. How Optiverse automatically extracts action items. # Manual Task Management (/docs/boards-and-task-management/manual-task-management) Beyond AI-generated tasks, you can manually create, assign, and organize tasks within your boards. Content for this page is being written. Check back soon for the complete guide. # Replacing External Tools with Boards (/docs/boards-and-task-management/replacing-external-tools) For teams whose tasks primarily come from meetings, Optiverse Boards can replace external tools like Trello or Asana with a tighter meeting-to-task loop. Content for this page is being written. Check back soon for the complete guide. # Capture: Transcribe Meetings Without a Bot or Recording (/docs/desktop-app/capture) Most meeting transcription tools require a bot to join your call. Participants see the bot in the attendee list, get notified it's recording, and the dynamic of the conversation shifts. **Optiverse Capture** takes a completely different approach. Capture transcribes meetings **at the operating system level** — listening to your device's audio output directly. No bot joins. No one is notified. No audio or video file is stored. You get a full, high-accuracy transcript without changing the meeting experience for anyone. **Beta Access** — Optiverse Desktop (including Capture) is currently in beta for both macOS and Windows. Request early access at [optiverse.app](https://optiverse.app) to be among the first to try it. Optiverse Desktop dynamic island navigation showing Capture, Flow, and Task — one click away Capture is one of three features accessible from the Desktop App's floating navigation island. Switch between **Capture**, **Flow**, and **Tasks** with a single click — all your meeting intelligence tools are always one tap away. *** ## Why Transcribe Without a Bot? [#why-transcribe-without-a-bot] Adding a recording bot to a meeting creates friction: * **Participants behave differently** when they know they're being recorded * **Sensitive conversations** (1:1s, performance reviews, negotiations) feel intrusive with a bot present * **External stakeholders** may refuse to proceed when they see an unfamiliar participant * **Ad hoc calls** that aren't on the calendar can't be auto-joined by a bot * **Compliance policies** in some organizations prohibit third-party participants Capture eliminates all of these problems. The meeting happens naturally, and you still get every word transcribed. *** ## How Capture Works [#how-capture-works] 1. Open Optiverse Desktop and start Capture before or during your meeting 2. The app listens to audio playing on your device — works with **any platform**: Zoom, Teams, Google Meet, Webex, phone calls routed through your computer, or any other audio source 3. As participants speak, the transcript appears **live** in the app 4. When the meeting ends, stop Capture 5. Optiverse processes the transcript and generates your [recording page](/docs/how-recording-works/meeting-recording-page) with a full AI summary, action items, and OptiAgent access Capture live transcription view showing speaker-attributed messages with timestamps and the Stop button to end the session The live transcription view shows each speaker's words in real time, color-coded and attributed to participants. Use the **Stop** button when the meeting ends to finalize processing. *** ## Capture vs. Traditional Meeting Bots [#capture-vs-traditional-meeting-bots] | | Bot-based transcription | Optiverse Capture | | -------------------------------- | ------------------------- | --------------------------------- | | **Joins the meeting** | Yes (visible participant) | No (runs locally on your device) | | **Participants notified** | Yes (recording alerts) | No (completely invisible) | | **Video recording** | Optional | Not available | | **Audio file preserved** | Yes | No (transcript only) | | **Requires calendar connection** | Yes (or manual invite) | No (captures any audio on device) | | **Platform support** | Specific platforms only | Any platform (OS-level capture) | | **Works for impromptu calls** | No (needs to be invited) | Yes (start anytime) | *** ## Use Cases: When to Use Capture [#use-cases-when-to-use-capture] ### Transcribe calls without anyone knowing you're taking notes [#transcribe-calls-without-anyone-knowing-youre-taking-notes] Perfect for sensitive 1:1 conversations, client calls, or internal discussions where a visible bot would change the dynamic. ### Get meeting notes from platforms that bots don't support [#get-meeting-notes-from-platforms-that-bots-dont-support] Capture works with any audio playing on your device — including niche conferencing tools, webinars, phone calls, and browser-based meeting platforms that traditional bots can't join. ### Transcribe impromptu or unscheduled meetings [#transcribe-impromptu-or-unscheduled-meetings] A colleague calls unexpectedly? A quick huddle starts on Slack or Discord? Start Capture instantly — no need to invite a bot or have the meeting on your calendar. ### Record follow-ups and action items without recording the meeting [#record-follow-ups-and-action-items-without-recording-the-meeting] Many teams want the transcript and AI-generated action items but don't need (or aren't allowed to keep) an audio/video recording. Capture gives you the intelligence without the file. ### Stay compliant in regulated industries [#stay-compliant-in-regulated-industries] In industries where adding third-party participants to calls requires legal clearance, Capture lets you transcribe without introducing another entity into the meeting room. *** ## Transcription Quality [#transcription-quality] Capture uses the same AI transcription engine powering all of Optiverse: * **45+ languages and dialects** with automatic detection * **Speaker diarization** to attribute speech to individual participants * **Custom Dictionary** support — add industry terms, product names, and jargon at [Settings → Custom Dictionary](https://app.optiverse.ai/settings/org-profile) to improve accuracy * Same post-processing pipeline that produces summaries, action items, and OptiAgent-ready content *** ## What You Get After a Capture Session [#what-you-get-after-a-capture-session] Every Capture session produces the same rich output as a bot-recorded meeting: * Full transcript on your [recording page](/docs/how-recording-works/meeting-recording-page) * AI-generated summary based on your active [protocol](/docs/protocols-and-summaries/what-are-protocols) * Extracted action items and decisions * Full [OptiAgent](/docs/optiagent-and-knowledge-hub/what-is-optiagent) access to query the meeting * Sharing with team members and push to integrations The only difference: there's no audio/video player on the recording page since no media file is captured. *** ## Q\&A [#qa] **Q: Is it legal to transcribe meetings without a bot?** **A:** Yes. Capture is **live transcription, not recording**. This is a critical distinction. No audio or video file is ever created, stored, or transmitted. Capture simply converts spoken words into text in real time — the same way a human taking handwritten notes during a meeting would. Since there is no recording being made, the legal frameworks that govern "recording consent" (such as two-party consent laws) do not apply in the same way. You're taking notes — just faster and more accurately than you could by hand. That said, transcription policies vary by organization. Always ensure you comply with your company's internal meeting documentation guidelines. *** **Q: Does Capture work with headphones?** **A:** Yes. Capture listens to the system audio output, which includes audio routed to headphones, speakers, or any other output device. It doesn't matter how you're listening to the meeting — Capture picks it up. *** **Q: Can I use Capture and the note-taker bot at the same time?** **A:** Yes. They operate independently. You might use the bot when you want video recording and Capture as a lightweight backup, or use Capture alone when a bot would feel intrusive. Both produce the same rich output (transcripts, summaries, action items, OptiAgent access). *** **Q: Does Capture drain my battery?** **A:** Capture is optimized for low resource usage. It runs lightweight processing locally while leveraging cloud AI for the final transcript processing, keeping CPU and battery impact minimal. You won't notice it running. *** **Q: What happens if my internet drops mid-meeting?** **A:** Capture continues processing audio locally. The transcript is synced and processed by Optiverse once connectivity is restored. *** **Q: Does Capture work with phone calls?** **A:** Yes — as long as the call audio plays through your computer (e.g., via a softphone app, Bluetooth routing, or speakerphone picked up by your mic), Capture transcribes it like any other meeting. *** ## Get Early Access [#get-early-access] Optiverse Desktop is currently in **beta** for both macOS and Windows. Capture, along with [Flow](/docs/desktop-app/flow) and [Tasks](/docs/desktop-app/tasks), is available to early access users. Join the waitlist to get Optiverse Desktop on your Mac or Windows machine. Be the first to transcribe meetings without a bot. # Flow: Speech-to-Text Anywhere on Your Computer (/docs/desktop-app/flow) Flow is a universal **voice-to-text layer** for your entire computer. Press a shortcut, speak naturally, and your words appear as typed text in whatever application is focused. Email, CRM, documents, chat, spreadsheets — Flow works everywhere. **Beta Access** — Optiverse Desktop (including Flow) is currently in beta for both macOS and Windows. Request early access at [optiverse.app](https://optiverse.app) to be among the first to try it. *** ## How Flow Works [#how-flow-works] 1. Press the Flow keyboard shortcut (configurable in app settings) 2. Start speaking naturally in any language 3. Your words are transcribed and inserted as typed text at the cursor position in the active app 4. Press the shortcut again (or pause speaking) to deactivate Flow active — the floating waveform shows your voice being captured in real time When Flow is active, a minimal floating indicator shows a live waveform as you speak. It stays out of the way while confirming your voice is being captured. Flow works with **any application** on your device: email clients, browsers, document editors, chat tools, CRM fields, spreadsheets, IDEs, or any other text input. *** ## Why Voice-to-Text Matters [#why-voice-to-text-matters] | Metric | Typing | Speaking with Flow | | ---------------------- | --------------------------------- | ------------------------ | | Average speed | \~40 words/min | \~130 words/min | | Cognitive load | High (spelling, formatting) | Low (natural expression) | | Repetitive strain risk | Higher | Minimal | | Context switching | Frequent (think → type → correct) | Minimal (think → speak) | Flow lets you work at the speed of thought, reducing friction in every text-based task throughout your day. *** ## Use Cases [#use-cases] | Scenario | Example | | --------------------- | ------------------------------------------------------------------------------------------ | | **Drafting emails** | Speak your entire email response in Outlook, Gmail, or any mail client | | **Writing documents** | Dictate reports, proposals, or meeting notes into Word, Google Docs, Notion, or any editor | | **Chat messages** | Quickly respond in Slack, Teams, or WhatsApp by voice | | **CRM updates** | Speak deal notes directly into HubSpot, Salesforce, or Pipedrive fields | | **Form filling** | Voice-enter data into project management tools, spreadsheets, or internal systems | | **Code comments** | Dictate documentation or comments into your IDE | | **Quick notes** | Capture thoughts and ideas anywhere without switching applications | *** ## Language Support [#language-support] Flow supports the same **45+ languages** available in Optiverse's transcription engine, with automatic language detection. You can switch languages mid-sentence if needed. *** ## Flow is Not Limited to Meetings [#flow-is-not-limited-to-meetings] Flow is not a meeting tool — it's a productivity layer for your entire workday. Use it anytime, in any app, for any purpose. Think of it as having a personal stenographer available at the press of a button. *** ## Get Early Access [#get-early-access] Optiverse Desktop is currently in **beta** for both macOS and Windows. Flow, along with [Capture](/docs/desktop-app/capture) and [Tasks](/docs/desktop-app/tasks), is available to early access users. Join the waitlist to get Optiverse Desktop on your Mac or Windows machine. Dictate text anywhere on your computer at 3x typing speed. # Optiverse Desktop App (/docs/desktop-app) **Optiverse Desktop** is a native application for Windows and macOS that brings Optiverse's intelligence directly to your computer. Its tagline says it all: **Your Voice Runs the Show**. While the cloud-based note-taker joins your meetings as a participant, the Desktop App works at the operating system level — giving you three powerful capabilities that don't require a bot in the call. **Beta Access** — Optiverse Desktop is currently in beta for both macOS and Windows. Request early access at [optiverse.app](https://optiverse.app) to be among the first to try it. *** ## Three Features, One App [#three-features-one-app] Transcribe meetings without a bot or recording. Invisible, OS-level live transcription that works with any platform. Speech-to-text anywhere on your computer. Dictate into any app at 3x typing speed. AI-powered Kanban board that captures action items the moment they're discussed in meetings. *** ## How They Work Together [#how-they-work-together] The real power of Optiverse Desktop emerges when you combine all three features: 1. **Capture** transcribes your meeting in real time (invisible to other participants) 2. **Tasks** automatically suggests action items as they're discussed — you confirm with one click 3. After the meeting, **Flow** lets you dictate follow-up emails or CRM updates into any application This creates a seamless workflow from conversation to documentation to action, all from a single native app on your desktop. *** ## Platform Support [#platform-support] | Platform | Status | | ----------- | ------ | | **macOS** | Beta | | **Windows** | Beta | The Desktop App works alongside (not instead of) the cloud-based note-taker. You can use both depending on the situation, or pick the one that fits your meeting context best. *** ## Get Early Access [#get-early-access] Join the waitlist to get Optiverse Desktop on your Mac or Windows machine. Be among the first to experience meeting transcription without a bot, universal dictation, and real-time task management. # Tasks: AI-Powered Kanban for Meeting Action Items (/docs/desktop-app/tasks) Most action items are forgotten within minutes of being discussed. Studies show up to 80% of meeting information fades within 24 hours. **Optiverse Tasks** solves this by giving you a Kanban board built directly into the Desktop App that captures commitments **the moment they're made**. **Beta Access** — Optiverse Desktop (including Tasks) is currently in beta for both macOS and Windows. Request early access at [optiverse.app](https://optiverse.app) to be among the first to try it. *** ## How Tasks Works [#how-tasks-works] * Open Tasks during or after any meeting * Add tasks manually as they come up in conversation * When [Capture](/docs/desktop-app/capture) is running, the AI **automatically suggests tasks** based on what's being discussed * Organize tasks by status: To Do, In Progress, Done * Assign owners and deadlines on the spot * Tasks sync with [Optiverse Boards](https://app.optiverse.ai) and can be pushed to external tools *** ## Quick Add: Ctrl+Space to Create a Task Instantly [#quick-add-ctrlspace-to-create-a-task-instantly] Press **Ctrl+Space** anywhere and the quick-add panel appears: Tasks quick-add panel — type or dictate what needs to be done, add notes, subtasks, and priority From here you can set a title, add a note, break it into subtasks, and assign a priority (P1–P4) — all without leaving your current workflow. ### Dictate Tasks with Flow for Automatic Subtask Parsing [#dictate-tasks-with-flow-for-automatic-subtask-parsing] Here's where it gets powerful: combine Tasks with [Flow](/docs/desktop-app/flow). Instead of typing, **activate Flow and speak your task naturally**. The AI parses your dictation and automatically structures it: * Speak: *"Prepare the client proposal — include the pricing table, add case studies from last quarter, and get sign-off from marketing by Friday"* * Tasks creates the main task **"Prepare the client proposal"** and automatically generates three subtasks: 1. Include the pricing table 2. Add case studies from last quarter 3. Get sign-off from marketing by Friday No manual splitting required. Just speak your mind, and Tasks structures it for you. *** ## AI-Powered Task Generation [#ai-powered-task-generation] Tasks leverages the same intelligence behind Optiverse's action item extraction: 1. During a meeting (when Capture is active), the AI listens to the conversation 2. It identifies action items, commitments, and next steps as they're discussed 3. Suggested tasks appear in your board with titles and descriptions pre-filled 4. You verify and confirm each task with one click (human-in-the-loop ensures accuracy) 5. Confirmed tasks are added to your Kanban board instantly *** ## Manual and Static Modes [#manual-and-static-modes] Tasks is also a fully capable standalone task manager: * Add, edit, reorder, and delete tasks manually * Use it as a traditional Kanban board without any AI features * Organize tasks from any source (not just meetings) * Track personal to-do items alongside meeting-generated tasks *** ## Integration with Optiverse Boards [#integration-with-optiverse-boards] Tasks created in the Desktop App sync with Optiverse Boards in the web app. From there, they can be: * Synced to external tools (Notion, Jira, Asana, Linear, and more via 5000+ integrations) * Shared with team members * Linked back to the meeting where they originated * Tracked across projects and deadlines *** ## The Full Workflow: Capture + Tasks [#the-full-workflow-capture--tasks] The real power emerges when Capture and Tasks work together: 1. **Capture** transcribes your meeting in real time (invisible to other participants) 2. **Tasks** automatically suggests action items as they're discussed 3. You confirm with one click — building your task board live during the meeting 4. After the meeting, use [Flow](/docs/desktop-app/flow) to dictate follow-up emails or CRM updates No more writing a list after the meeting trying to remember what was agreed. *** ## Get Early Access [#get-early-access] Optiverse Desktop is currently in **beta** for both macOS and Windows. Tasks, along with [Capture](/docs/desktop-app/capture) and [Flow](/docs/desktop-app/flow), is available to early access users. Join the waitlist to get Optiverse Desktop on your Mac or Windows machine. Never lose an action item from a meeting again. # Admin Approval & Sign-Up Troubleshooting (/docs/getting-started/admin-approval) If you see a block or permission error when trying to sign up with **"Continue with Google"** or **"Continue with Microsoft"**, this usually means your organization's IT administrator has restricted third-party app access. This is common in enterprise environments and is easy to resolve. Below is an example of the Microsoft "Need admin approval" screen you may encounter: Microsoft Need admin approval screen showing Optiverse AG requesting permission A similar screen may appear when using Google Workspace, depending on your organization's configuration. ## Why Am I Blocked? [#why-am-i-blocked] Many organizations require admin consent before employees can connect their work accounts to new applications. When you click **Continue with Google** or **Continue with Microsoft**, your identity provider (Google Workspace or Microsoft Entra ID) checks whether Optiverse is approved. If it isn't, you'll see a message saying you need admin approval or that the app is not authorized. This is **not an issue with your account**. It simply means your IT team needs to approve Optiverse as a trusted application. ## What You Can Do [#what-you-can-do] ### Option 1: Request Approval from Your IT Admin [#option-1-request-approval-from-your-it-admin] 1. Contact your IT administrator or helpdesk 2. Let them know you need access to **Optiverse** (app.optiverse.ai) 3. Share the [Optiverse Trust Center](https://trust.optiverse.ai/) to speed up the process Sharing the Trust Center directly with your IT team often resolves concerns quickly. It contains the latest Optiverse security, privacy, and compliance information in one place. ### Option 2: Let Us Help You Navigate Internal Approval [#option-2-let-us-help-you-navigate-internal-approval] We understand that navigating internal IT processes can be challenging. Our team has experience helping organizations through the approval workflow, and we're happy to: * Join a short call with you and your IT admin to answer technical questions * Provide a security questionnaire or compliance documentation * Walk your admin through the exact permissions Optiverse requests * Explain the data flow and storage architecture in detail **Reach out to our team** for help with admin approval: [support@optiverse.ai](mailto:support@optiverse.ai) ### Option 3: Pilot with a Personal Account [#option-3-pilot-with-a-personal-account] If internal approval will take time, you can start exploring Optiverse with a personal Google or Microsoft account. Keep in mind that this will give you a **limited exposure** to the product, as your work calendar will not be connected. The assistant cannot automatically join your work meetings in this case. However, you can still use Optiverse in the following ways: * **[Join Live Meeting](/docs/how-recording-works/how-the-assistant-works#sending-the-assistant-manually)**: Manually send the assistant to any meeting by pasting the Teams, Zoom, or Google Meet link from the [Calendar page](https://app.optiverse.ai/meetings-calendar) * **[Mobile app](/docs/mobile-app)**: Record in-person meetings or voice memos directly from your phone * **[Upload recordings](https://app.optiverse.ai/meetings-calendar)**: Upload any existing audio or video file for transcription and summarization If you don't mind the extra manual step of sending the assistant via a meeting link each time, this is already enough to grasp the value Optiverse delivers. Once your organization grants approval, we are happy to help you migrate your account and data to your work identity so nothing is lost. ## What IT Admins Need to Know [#what-it-admins-need-to-know] No configuration is needed on the Optiverse side. Optiverse uses **Microsoft OAuth** or **Google OAuth** for authentication, which means SSO is already built in through your existing Microsoft 365 or Google Workspace accounts. No separate SAML setup is required. | Permission | Purpose | | -------------------------- | ---------------------------------------------------- | | Calendar read access | To see upcoming meetings and join them automatically | | User profile (email, name) | To create the account and identify participants | That's it. Optiverse does **not** request access to your emails, files, drives, or any other data. The scope is intentionally minimal: only your calendar events and basic profile information. ### Granting Access: Microsoft Entra ID [#granting-access-microsoft-entra-id] There are two ways to approve Optiverse for your Microsoft organization: #### Option A: Admin Consent (Recommended) [#option-a-admin-consent-recommended] This is the fastest approach. One admin action grants access to everyone in your tenant. It takes less than 2 minutes. **Go to [optiverse.ai](https://optiverse.ai) and click Get Started**
Optiverse website homepage with Get Started button
**Choose Continue with Microsoft**
Optiverse login page showing Continue with Google and Continue with Microsoft options
**Choose an Admin Account** Select an account that has admin privileges in your Microsoft tenant.
Microsoft Pick an account screen showing multiple signed-in accounts
**Check "Consent on behalf of your organization"** This is the key step. Ticking this checkbox means all users in your organization will be able to sign in without being individually prompted for consent.
Microsoft Permissions requested dialog showing Consent on behalf of your organization checkbox unchecked
**Click Accept** Once the checkbox is checked, click Accept. That's it. All users in your Microsoft tenant can now access Optiverse with their Microsoft credentials.
Microsoft Permissions requested dialog with Consent on behalf of your organization checked and Accept button highlighted
No further configuration is needed after this. This approval covers signing in to Optiverse. Integrations like Dynamics 365, Microsoft Teams, and Microsoft Planner are separate Entra applications and need their own approval. [Microsoft Integration Approval](/docs/integrations-and-workflows/microsoft-admin-consent) generates a direct approval link for each of them, including one for the Optiverse platform app if your admin prefers a link over the sign-in flow above. #### Option B: Controlled Access via Entra ID [#option-b-controlled-access-via-entra-id] If you want to restrict access to specific users rather than the entire tenant: 1. Go to **Azure Portal** > **Entra ID** > **Enterprise Applications** > **Optiverse** 2. Create a security group (e.g., "Optiverse Users") in Entra ID 3. Add the designated users to this group 4. In the Optiverse enterprise app settings, assign this group access 5. Enable **"User assignment required"** to restrict access to only assigned users/groups This way, only members of your designated group can sign in to Optiverse using their Microsoft credentials. To **remove access** later, simply remove the user from the security group or revoke the enterprise application assignment. Since all login goes through Microsoft SSO, there is no way to bypass this restriction. ### Granting Access: Google Workspace [#granting-access-google-workspace] For Google Workspace organizations: 1. Have a Google Workspace admin sign in to [app.optiverse.ai](https://app.optiverse.ai) with their Google account 2. When Google prompts for consent, approve the requested scopes (calendar read access and user profile) 3. Once approved, users in your Google Workspace can access Optiverse with their Google credentials If your organization restricts third-party apps, the admin can also approve Optiverse from **Google Admin Console** > **Security** > **API Controls** > **Third-party app access**. Both Microsoft and Google approval take less than 5 minutes to complete. If you need help, reach out to [support@optiverse.ai](mailto:support@optiverse.ai) and we'll guide you through it. ## Still Stuck? [#still-stuck] If you've tried the steps above and are still unable to sign up: 1. **Email us** at [support@optiverse.ai](mailto:support@optiverse.ai) with your organization name and the error message you see 2. **[Book a call](https://www.optiverse.ai/meeting?utm_source=academy\&utm_medium=cta)** with our team, and we can walk your IT admin through the approval process directly 3. Most admin approvals are resolved within 24 to 48 hours once IT has reviewed the documentation We're here to make that process as smooth as possible. Don't hesitate to reach out. # Getting Started (/docs/getting-started) Get your first AI-powered meeting summary in just a few minutes. This section covers setup and troubleshooting access. Your first meeting summary in 5 minutes. Blocked during sign-up? Get help with IT approval. # Quick Start Guide (/docs/getting-started/quick-start) Get from sign-up to your first AI meeting summary in under 5 minutes. Optiverse works across Microsoft Teams, Zoom, and Google Meet. ## Prerequisites [#prerequisites] * A Google or Microsoft account * An upcoming meeting on Teams, Zoom, or Google Meet * For Zoom meetings: a [one-time Zoom integration](/docs/how-recording-works/how-the-assistant-works#zoom-one-time-integration-required) is required ## Three Ways to Capture Meetings [#three-ways-to-capture-meetings] Before you start, it helps to know that Optiverse offers three capture modes: 1. **Online meeting bot**, an AI assistant joins your virtual meetings as a participant and records automatically. You can also [send it to any meeting manually](/docs/how-recording-works/how-the-assistant-works#sending-the-assistant-manually) via Join Live Meeting. 2. **Desktop app**, live transcription without recording the call (GDPR compliant) 3. **[Mobile app](/docs/mobile-app)**, record in-person meetings, voice memos, or upload audio/video files You can also **upload any audio or video file** directly from the [Calendar page](https://app.optiverse.ai/meetings-calendar) for transcription and summarization. *** ## Setup [#setup] ### Create your account and connect your calendar [#create-your-account-and-connect-your-calendar] Go to [app.optiverse.ai](https://app.optiverse.ai) and sign up with your **Google** or **Microsoft** account. During sign-up, you will be asked to connect your calendar (Outlook or Google Calendar). This is a required step that allows Optiverse to see your upcoming meetings.
Sign-up page showing Continue with Google and Continue with Microsoft
If you see a permission error or are asked for admin approval, your organization may need to authorize Optiverse first. See [Admin Approval & Troubleshooting](/docs/getting-started/admin-approval) for step-by-step instructions on resolving this.
### Configure agent join settings [#configure-agent-join-settings] Choose when Optiverse should automatically join your meetings: * **All meetings**, joins every event on your calendar * **Only meetings you organize**, only meetings where you're the organizer * **Only internal meetings**, skips meetings with external participants * **On invitation only**, only joins when you explicitly enable it per meeting, or when you invite **[optiagent@optiverse.ai](mailto:optiagent@optiverse.ai)** to the event You can change this setting at any time from [Meeting Preferences](https://app.optiverse.ai/settings/meeting-prefs). See [How the Assistant Works](/docs/how-recording-works/how-the-assistant-works#agent-join-settings) for detailed options including per-meeting overrides and email invitations. ### Admit the assistant into your meeting [#admit-the-assistant-into-your-meeting] The assistant arrives **3 minutes before** your meeting starts and waits in the **lobby**. You (or the meeting host) must admit it. It appears as an external guest named **"\[YourName]'s assistant by Optiverse"**. If the assistant is not admitted within 10 minutes, it will leave. You can always resend it from the [Calendar page](https://app.optiverse.ai/meetings-calendar).
Optiverse Notetaker waiting in the Teams lobby to be admitted
For a full explanation of joining behavior, timing, and silence detection, see [How the Assistant Works](/docs/how-recording-works/how-the-assistant-works).
### Get your summary [#get-your-summary] Within **\~15 minutes** after the meeting ends, you'll receive: * A full transcript of the conversation * An AI-generated summary with key points and action items * An email recap delivered to your inbox
Meeting summary page showing transcript and AI summary
*** ## What's Next [#whats-next] * [How the Assistant Works](/docs/how-recording-works/how-the-assistant-works) for detailed behavior, timing, and troubleshooting * [Join Live Meeting](/docs/how-recording-works/how-the-assistant-works#sending-the-assistant-manually) to send the assistant to any meeting on demand * [Set up the mobile app](/docs/mobile-app) to capture in-person meetings * [Upload a recording](https://app.optiverse.ai/meetings-calendar) to transcribe and summarize existing audio/video files * [Team & Workspace setup](/docs/team-and-workspace) to invite colleagues and configure organization settings # Access & Sharing (/docs/how-recording-works/access-and-sharing) Optiverse gives you full control over who can access your meeting recordings, transcripts, and summaries. The most important concept to understand is the distinction between **public** and **private** meetings. *** ## Who Gets Access by Default [#who-gets-access-by-default] When the Optiverse assistant records a meeting, the following people automatically receive access to the recording: * **All calendar attendees**: everyone whose email appears on the calendar invite, regardless of whether they accepted, declined, or didn't respond * **The meeting owner**: the person whose Optiverse account triggered the recording This is the baseline. From here, access can be extended through manual sharing, auto-sharing rules, or public links. The original attendee list also determines **recording ownership**, which controls who can permanently delete a recording for all users. See [Deleting Recordings](/docs/how-recording-works/deleting-recordings) for details. At the top of any recording page, you can see profile icons representing everyone who currently has access. Click the **Share** button to view the full list of emails with access.
Profile icons at the top of a recording page showing initials of people who have access
*** ## Public vs Private Meetings [#public-vs-private-meetings] This is the core distinction that determines how access works for people outside the default attendee list. ### Public meetings (default) [#public-meetings-default] By default, Optiverse enables **public sharing links**. When a meeting has a public link enabled: * **Anyone with the link** can view the recording as a guest — no Optiverse account required * Guests can see the **video** and the **AI-generated summary** * Guests **cannot** access AI features (OptiAgent), download the full transcript, or use advanced tools * The public link can be copied from the Share dialog on the recording page This is the most common setup and makes it easy to share meeting content with external participants or stakeholders who don't use Optiverse. ### Private meetings [#private-meetings] A meeting is private when its public sharing link is **disabled**. In this case, two conditions must be met for someone to access the recording: 1. They must have an **Optiverse account** 2. They must be **on the sharing list** (either as an original attendee or manually added) If either condition is not met, the person cannot view the recording — even if they have the link. ### Toggling between public and private [#toggling-between-public-and-private] You can toggle the public sharing link on or off for any individual meeting from the **Share** dialog on the recording page.
Public Sharing section in the Share dialog showing the toggle enabled and Copy Link button
*** ## Organization-Level Default [#organization-level-default] Organization admins can change the default sharing behavior for all meetings in the workspace: | Setting | Effect | | ------------------------------------ | ------------------------------------------------ | | **Public sharing enabled** (default) | All new recordings have a public link by default | | **Public sharing disabled** | All new recordings are private by default | Even when the organization disables public sharing by default, individual meeting owners can still override this and enable a public link for specific meetings. Configure this from [**Settings → Organization → Profile**](https://app.optiverse.ai/settings/org-profile).
Guest Access setting at the organization level showing Control public link sharing toggle with Enabled status
*** ## Manually Sharing a Recording [#manually-sharing-a-recording] Beyond the default attendee list, the meeting owner can share a recording with additional people: 1. Open the recording page 2. Click the **Share** button 3. Enter the email address of the person you want to add 4. Click **Share** The added person will appear in the "Shared With" list and gain access to the recording based on the public/private rules described above.
Share dialog showing email input field, Shared With list with permission levels, and public sharing toggle
*** ## Auto-Sharing [#auto-sharing] Auto-sharing lets you automatically extend access to recordings for specific people **within your organization**, without needing to manually share each time. You can configure separate rules for: * **Internal meetings**: meetings where all attendees are from your company's domain * **External meetings**: meetings where at least two different email domains are present For each type, choose one of: | Option | Effect | | -------------------- | --------------------------------------------------------- | | **No extra sharing** | No automatic sharing beyond the default attendees | | **Organization** | Automatically share with everyone in your organization | | **Select users** | Automatically share with specific team members you choose | For example, you might auto-share all external meetings with your sales manager, or all internal meetings with your entire organization.
Auto-Share Settings showing radio buttons for internal meetings (No extra sharing, Organization, Select users) and external meetings (same options)
Auto-sharing only works for members of your own organization. You cannot auto-share with external contacts. *** ## Email Recaps [#email-recaps] After every meeting, Optiverse sends an **email recap** — a notification containing an AI summary and a link to the full recording. ### Who receives the email [#who-receives-the-email] The email recipient list is controlled by a separate setting: | Option | Recipients | | ---------------- | ---------------------------------------------------------------- | | **All invitees** | Everyone on the calendar invite, including external participants | | **Me + my team** | Only members from your organization who were on the invite | | **Only me** | Only you (the meeting owner) receive the email recap | Configure this from [**Settings → Meeting Preferences**](https://app.optiverse.ai/settings/meeting-prefs).
Email summary recipient dropdown showing All invitees, Me + my team, and Only me options
Admins can set a default email recap rule for the entire organization and lock it so individual users cannot change it. See [Team & Workspace](/docs/team-and-workspace#email-recap-policy) for details. ### Email does not equal access [#email-does-not-equal-access] Receiving the email recap does **not** automatically grant access to the recording. The link in the email only works if the recipient has proper access based on the public/private rules: * If the meeting is **public**: the link works for anyone (guest view) * If the meeting is **private**: the link only works if the recipient has an Optiverse account and is on the sharing list *** ## Edge Case: Future Users [#edge-case-future-users] There is one additional setting that matters in a specific scenario: a meeting is private, and an attendee did not have an Optiverse account at the time of recording. The **Future Users** setting controls what happens when that person later creates an Optiverse account: | Setting | Behavior | | --------------------- | ----------------------------------------------------------------------------------------- | | **Enabled** (default) | The new user gains access to past recordings where their email was on the invite | | **Disabled** | The new user does **not** gain retroactive access, even if they were an original attendee | This only applies when all of the following are true: * The meeting is private (no public link) * The person did not have an Optiverse account at the time of recording * They later sign up with the same email that was on the invite In most setups (where public sharing is enabled), this setting has no practical effect since the public link already allows guest access. Configure this from [**Settings → Organization → Profile**](https://app.optiverse.ai/settings/org-profile). *** ## Summary Templates and Access [#summary-templates-and-access] Having access to a meeting does **not** mean you see the same summary as the meeting owner. Summaries are generated per-user based on their own protocol templates. * You can only view summaries generated with **your own templates** * If you and the owner both have the same template applied, you'll see the same summary output * Otherwise, you'll see the meeting content through whichever template you select from your own library For more on creating and managing templates, see [Protocols & Summaries](/docs/protocols-and-summaries). *** ## Quick Reference [#quick-reference] | Scenario | Can they access? | | --------------------------------------------------------------------------- | -------------------------------------- | | Meeting is public, person has the link | Yes (guest view: video + summary only) | | Meeting is public, person has Optiverse account + is on invite list | Yes (full access) | | Meeting is private, person has Optiverse account + is on sharing list | Yes (full access) | | Meeting is private, person has Optiverse account but is NOT on sharing list | No | | Meeting is private, person does NOT have an Optiverse account | No | # Deleting Recordings (/docs/how-recording-works/deleting-recordings) Optiverse provides two ways to delete a meeting recording: **delete for me** (removes it from your view only) and **delete for everyone** (permanently removes it for all users). The option available to you depends on whether you are an **owner** of the recording. *** ## Recording Ownership [#recording-ownership] Ownership determines who has the right to permanently delete a recording for all users. The owners of a recording are the people who were on the **original attendee list** of the meeting invite. This design is intentional: the original attendees are the people who consented to being recorded in the first place, so they are the ones who hold deletion rights over the recording. If you were added to a recording via manual sharing after the meeting took place, you have access but you are **not** an owner. You can only delete the recording for yourself. *** ## Delete for Me vs Delete for Everyone [#delete-for-me-vs-delete-for-everyone] When you delete a recording, a confirmation dialog presents one or both options depending on your ownership status: | Option | Who can use it | What it does | | ----------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | **Delete for me** | Anyone with access | Removes the recording from your personal recordings list. Other users who have access will still see and access the recording normally. | | **Delete for everyone** | Owners only (original attendees) | Permanently deletes the recording for all users. No one will be able to access it after this action. |
Confirm deletion dialog showing Delete for everyone and Delete for me buttons
Deleting for everyone is irreversible. Once confirmed, textual data is deleted within 24 hours, video recordings may remain recoverable for up to 30 days, and then the data is permanently erased. For the latest security and compliance policy details, see the [Optiverse Trust Center](https://trust.optiverse.ai/). *** ## How to Delete a Single Recording [#how-to-delete-a-single-recording] There are two ways to initiate deletion of an individual recording: ### From the recording page (trash icon) [#from-the-recording-page-trash-icon] On the recording page itself, click the **trash icon** in the top bar, next to the Share button.
Top bar of the recording page showing the Share button and trash icon for deletion
### From the recordings list (three-dots menu) [#from-the-recordings-list-three-dots-menu] On the recordings list page, click the **three-dots menu** on any recording card, then select **Delete record**.
Three-dots menu on a recording card showing the Delete record option
Both methods open the same confirmation dialog where you choose between **Delete for everyone** and **Delete for me**. *** ## Bulk Deletion [#bulk-deletion] If you need to delete multiple recordings at once, you can use the bulk selection feature on the recordings list page. ### How to bulk delete [#how-to-bulk-delete] 1. Click the **Select** button in the toolbar to enter selection mode 2. Check the boxes next to the recordings you want to delete (or use **Deselect All** / select all) 3. Click the red **Delete** button that appears in the toolbar
Recordings list in selection mode with 30 recordings selected and the red Delete button visible in the toolbar
### Bulk deletion is always "Delete for me" [#bulk-deletion-is-always-delete-for-me] When you bulk delete recordings, the action is always **Delete for me only**. You cannot delete for everyone in bulk. This is a safety measure to prevent accidental mass deletion that would affect other users.
Bulk deletion confirmation dialog showing Delete for me option only
If you need to permanently delete specific recordings for everyone, you must do so one at a time using the individual deletion methods described above. *** ## Quick Reference [#quick-reference] | Scenario | Available options | | -------------------------------------- | ---------------------------------- | | Single recording, you are an owner | Delete for me, Delete for everyone | | Single recording, you are NOT an owner | Delete for me only | | Bulk deletion (multiple recordings) | Delete for me only | *** ## Need Help with Deletion? [#need-help-with-deletion] If you need assistance with custom deletion policies, bulk deletion across older meetings, or any other deletion-related request, the Optiverse team can help. This is available as a **Business plan** feature. Reach out directly at [contact@optiverse.ai](mailto:contact@optiverse.ai). *** ## Related [#related] * [Optiverse Trust Center](https://trust.optiverse.ai/) for the latest security, privacy, and compliance documentation * [Access & Sharing](/docs/how-recording-works/access-and-sharing) for how access and ownership relate * [The Meeting Recording Page](/docs/how-recording-works/meeting-recording-page) for an overview of all recording page features # How the Assistant Works (/docs/how-recording-works/how-the-assistant-works) The Optiverse assistant (also called the "bot" or "note-taker") is an **external participant** that joins your online meetings to record and transcribe them. This page explains exactly how it behaves, when it joins, and what causes it to leave. ## The Assistant is a Guest [#the-assistant-is-a-guest] Meeting platforms (Microsoft Teams, Zoom, Google Meet) treat the Optiverse assistant as a **guest participant**. This means: * It appears in the participant list like any external attendee * It is displayed with the name **"\[YourName]'s assistant by Optiverse"** ([customizable](https://app.optiverse.ai/settings/meeting-prefs)) * In most organizations, it must be **admitted from the lobby** before it can join The only exception is if your Microsoft Workplace settings allow guests to enter meetings directly without lobby approval. This is uncommon in enterprise environments. If the assistant joins some Microsoft Teams meetings but not others, the issue is often caused by Teams admin policy settings rather than meeting-level options. See [Troubleshoot Microsoft Teams Join Issues](/docs/integrations-and-workflows/communication/teams-join-troubleshooting). ## Platform Connections [#platform-connections] The assistant knows about your meetings because Optiverse reads your connected calendar and extracts the meeting links from your events. This is how it determines which meetings to join and where to find them. ### Microsoft Teams and Google Meet [#microsoft-teams-and-google-meet] These platforms work **out of the box**. Once you connect your calendar during sign-up (Google Calendar or Outlook), Optiverse can read your meeting links and join your Teams or Google Meet calls directly. No additional setup is needed. ### Zoom (One-Time Integration Required) [#zoom-one-time-integration-required] Due to a recent Zoom SDK update, Zoom meetings require a **one-time authentication step**. You need to connect your Zoom account from within Optiverse so the assistant can join your Zoom calls. To set this up: 1. Go to [Settings → Integrations → Zoom](https://app.optiverse.ai/settings/integrations?integration=zoom) 2. Click **Connect** 3. Sign in with your Zoom account and authorize Optiverse
Zoom integration page in Optiverse settings showing the Connect button
This is a one-time step. Once connected, the assistant will be able to join your Zoom meetings just like it joins Teams and Google Meet calls. If you skip the Zoom integration, the assistant will not be able to join your Zoom meetings even if they appear on your calendar. Teams and Google Meet will still work normally. ## Joining Timing [#joining-timing] The assistant arrives **3 minutes before** the scheduled meeting start time. It will then wait in the lobby for a total of **10 minutes** to be admitted. | Event | Timing | | --------------------------------- | ------------------------------ | | Assistant requests entry | 3 minutes before meeting start | | Maximum wait in lobby | 10 minutes total | | If not admitted within 10 minutes | Assistant gives up and leaves | This means if your meeting starts at 10:00, the assistant will appear in the lobby at 9:57 and will stop waiting at 10:07 if nobody lets it in. ### What if you missed the window? [#what-if-you-missed-the-window] If the assistant left because it wasn't admitted in time, you can resend it: 1. Go to the [**Calendar** page](https://app.optiverse.ai/meetings-calendar) in Optiverse 2. Find the meeting and click **"Send Agent"** 3. The assistant will re-request entry within approximately 30 seconds You can also send the assistant late on purpose. For example, if you want to have informal small talk first and only start recording when the agenda begins.
Optiverse Calendar page showing the Send Agent button next to an upcoming meeting
## Silence Detection [#silence-detection] The assistant has a **10-minute silence threshold**. If it detects no audio activity for 10 consecutive minutes, it automatically leaves the meeting. This behavior exists to prevent the assistant from recording empty or inactive calls. However, it means you should be aware of the following scenarios: ### Scenarios where the assistant will leave [#scenarios-where-the-assistant-will-leave] | Scenario | What happens | | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | | Microphones not turned on | Assistant hears no audio. After 10 minutes of silence, it leaves. | | Extended break during a meeting | If the group takes a break longer than 10 minutes without pausing or ending the call, the assistant leaves. | | In-person meeting on Teams with muted mics | If you opened a Teams call for recording but forgot to unmute, the assistant hears nothing and leaves after 10 minutes. | If you are running a hybrid meeting (in-person with a Teams/Zoom link open for recording), make sure at least one microphone is active so the assistant picks up audio. Otherwise it will interpret the silence as an empty meeting and leave. ### How to prevent unintended departures [#how-to-prevent-unintended-departures] * Ensure at least one participant's microphone is on and picking up room audio * If you need a break longer than 10 minutes, consider ending the recording and starting a new one after the break * For in-person meetings recorded via a virtual meeting link, use a conference room microphone or place a laptop with an active mic near the speakers ## Admitting the Assistant [#admitting-the-assistant] When the assistant joins the lobby, the meeting organizer (or host) receives a notification to admit it. Below is how this looks on each platform. ### Microsoft Teams [#microsoft-teams] The organizer sees the assistant listed under "Waiting in lobby" in the Participants panel. Click the green checkmark to admit it. If the assistant never reaches the lobby for certain organizers, check [Troubleshoot Microsoft Teams Join Issues](/docs/integrations-and-workflows/communication/teams-join-troubleshooting) for the admin policy checklist.
Optiverse Notetaker waiting in the Teams lobby with admit and deny buttons
Once admitted, the assistant posts a message in the meeting chat announcing that it is transcribing and summarizing the meeting. This serves as a transparency notice for all participants.
Chat announcement from Optiverse Notetaker in Teams confirming it is recording
### Google Meet [#google-meet] In Google Meet, the organizer sees the assistant under "Waiting to join" with an **Admit entry** option.
Optiverse Notetaker waiting to join in Google Meet with Admit entry button
Once admitted, the assistant sends a chat message announcing that it is transcribing and summarizing the meeting.
Chat announcement from Optiverse in Google Meet confirming it is recording
### Zoom [#zoom] The behavior on Zoom is identical. The assistant appears in the **Waiting Room** and the host receives a notification to admit it. Once admitted, it announces itself in the meeting chat with the same transparency message. The experience mirrors what you see above for Teams and Google Meet. ## Removing the Assistant (Stopping the Recording) [#removing-the-assistant-stopping-the-recording] Participants with organizer rights are always in control. As long as the assistant is present in the meeting, it is recording. The moment you remove it, recording stops and Optiverse begins processing the meeting. To stop recording, simply kick the assistant from the participant list like any other attendee. ### Microsoft Teams [#microsoft-teams-1] Click the three dots (**...**) next to the assistant's name in the participant list and select **"Remove from meeting"**.
Teams participant menu showing the Remove from meeting option for the Optiverse assistant
### Google Meet [#google-meet-1] Click on the assistant in the participant list and select the remove option. ### Zoom [#zoom-1] Click on the assistant's name in the participant list, then select **Remove**. The same behavior applies: recording stops immediately and processing begins. Removing the assistant is not an error or a problem. It simply ends the recording at that point. Optiverse will process whatever was recorded up to the moment of removal and deliver a summary as usual. ## Agent Join Settings [#agent-join-settings] Configure when Optiverse should automatically send the assistant to your meetings. You can manage these from [Meeting Preferences](https://app.optiverse.ai/settings/meeting-prefs). | Setting | Behavior | | ------------------------------ | ------------------------------------------------------------------------------ | | **All meetings** | Joins every calendar event with a meeting link | | **Only meetings you organize** | Joins only meetings where you are the organizer | | **Only internal meetings** | Skips meetings that include external participants | | **On invitation only** | Only joins when you manually toggle it on per meeting or when invited by email | These settings can be configured per user, or set organization-wide by an admin. Admins can see and override any user's join setting from the [Team page](https://app.optiverse.ai/settings/people). If someone reports unexpected bot behavior, the admin can immediately check their setting and correct it. ### Inviting the assistant by email [#inviting-the-assistant-by-email] When using the **"On invitation only"** setting, you can also invite the assistant directly from your calendar by adding **[optiagent@optiverse.ai](mailto:optiagent@optiverse.ai)** as a participant to your meeting event. The assistant will then automatically join that meeting without needing to toggle it on in the Optiverse Calendar page. This is useful if you want to stay in your normal calendar workflow (Outlook, Google Calendar) without needing to open Optiverse.
Adding optiagent@optiverse.ai as a participant in a Teams meeting invite
### Per-meeting overrides [#per-meeting-overrides] Regardless of your default setting, you have full control over individual meetings from the [Calendar page](https://app.optiverse.ai/meetings-calendar): * **Turn off** the assistant for a specific meeting by clicking the toggle on the Calendar page * **Turn on** the assistant for a meeting that wouldn't normally be covered by your settings The green indicator next to each meeting confirms whether the assistant will join.
Upcoming meetings list showing per-meeting toggle switches to enable or disable the assistant
## Sending the Assistant Manually [#sending-the-assistant-manually] If a meeting isn't in your calendar (e.g., an ad-hoc call, or you're using a personal account without a calendar connection), you can send the assistant on demand using **Join Live Meeting**: 1. Go to the [**Calendar** page](https://app.optiverse.ai/meetings-calendar) 2. Click **Join Live Meeting** 3. Paste the Teams, Zoom, or Google Meet meeting link 4. Click **Send Agent** 5. The assistant will request entry to the meeting within approximately 30 seconds, then appear in the lobby to be admitted
Optiverse Calendar page highlighting the Join Live Meeting button
Even when sent manually, the assistant still enters the lobby and needs to be admitted. It will never auto-join without approval. ## What Gets Recorded [#what-gets-recorded] * **Audio + Video** by default. The assistant captures both audio and the video feed. * **Audio only** if your admin has set the meeting recording output to Audio from [Organization Profile](https://app.optiverse.ai/settings/org-profile). When video is disabled, the meeting page in Optiverse shows the audio waveform and transcript without a video player. ## Recording Awareness and Consent [#recording-awareness-and-consent] The assistant takes transparency seriously: * It **announces itself in the meeting chat** when it joins, informing participants that the meeting is being recorded * Participants can see the assistant listed in the attendees panel ### Framing consent with external participants [#framing-consent-with-external-participants] When meeting with people outside your organization, ask for consent by framing value rather than just requesting permission: > "Is it okay if I let this AI meeting assistant record and take notes for us so we can fully focus on this conversation? I can share the summary with you afterwards." This approach offers clear value (shared notes, full focus) rather than just asking for permission, and achieves a near-universal acceptance rate. Always get verbal consent before the assistant starts recording in external meetings. Even though the assistant announces itself in the meeting chat, a verbal heads-up is professional courtesy and may be legally required depending on your jurisdiction. ## Customizing the Assistant Name [#customizing-the-assistant-name] To change how the assistant appears in meetings: 1. Go to [**Settings → Meeting Preferences**](https://app.optiverse.ai/settings/meeting-prefs) 2. Edit the **My Agent Name** field 3. Save. The new name applies to all future meetings.
Meeting Preferences showing the My Agent Name field for customizing the assistant display name
## Email Summary Settings [#email-summary-settings] Configure who receives the post-meeting email recap: * **All invitees**, summary sent to everyone in the meeting, including external participants * **My organization members**, summary sent only to organization members who were in the meeting * **Only participants with an Optiverse account**, summary sent only to attendees with an Optiverse account
Email summary dropdown showing All invitees, My organization members, and Only participants with an Optiverse account options
Adjust these settings from [**Settings → Meeting Preferences**](https://app.optiverse.ai/settings/meeting-prefs). Admins can also set and lock this at the organization level. See [Team & Workspace](/docs/team-and-workspace#email-recap-policy) and [Access & Sharing](/docs/how-recording-works/access-and-sharing) for more details. # How Recording Works (/docs/how-recording-works) Learn how the Optiverse meeting assistant joins your calls, what gets captured, and how to navigate the recording page. Understand how the bot joins, when it records, and how to control it. Explore the video player, transcript, summaries, and action items. Who sees what, guest links, and auto-sharing rules. # The Meeting Recording Page (/docs/how-recording-works/meeting-recording-page) After the assistant finishes recording a meeting, Optiverse processes it and creates a dedicated **recording page**. This is where all the intelligence from your meeting lives: the video or audio, the full transcript, speaker statistics, AI-generated summaries, action items, and your personal OptiAgent assistant.
Complete meeting recording page showing video player, transcript, speaker statistics, OptiAgent, and summary panel
*** ## Video and Audio Playback [#video-and-audio-playback] The center of the recording page features the meeting playback. What you see here depends on how the meeting was captured: | Capture method | What you see | | --------------------------------------------------------- | ------------------------------------------------------ | | **Note-taker with video enabled** | Full video player with speaker faces and screen shares | | **Note-taker with video disabled** | Audio waveform player (no visual video) | | **[Desktop app](/docs/desktop-app) (live transcription)** | Transcript only (no audio or video preserved) | | **Mobile app recording** | Audio waveform player only | | **Desktop upload (audio file)** | Audio waveform player only | | **Desktop upload (video file)** | Full video player |
Meeting recording page with the video player area highlighted
You can: * Play, pause, and scrub through the recording * Click on any sentence in the transcript to **jump to that exact moment** in the video * Adjust playback speed * Use the video controls to take screenshots, toggle captions, or enter full screen *** ## Transcript [#transcript] Below the video, the full conversation transcript appears with each speaker turn timestamped and color-coded. A search bar at the top lets you find specific words or phrases instantly. ### When to edit the transcript [#when-to-edit-the-transcript] In most cases, **you don't need to edit the transcript at all**. The AI assistants understand context and can answer questions, generate summaries, and extract action items regardless of whether speaker labels are perfectly accurate. However, editing becomes valuable when you need to generate: * **Official protocol documentation** with correct assignment of who said what * **Decision logs** where it matters exactly who committed to a specific action * **Compliance records** that require precise speaker attribution * **Custom summaries** using protocols that assign tasks based on speaker identity In these cases, correctly labeled speakers guarantee that the AI model doesn't misinterpret anything, because it's clearly fed the information of who said what. ### Editing transcript text [#editing-transcript-text] You can edit the actual transcribed text directly. This is useful when the AI misheard a word, a proper noun, or industry jargon. **Method 1: Right-click to edit** Hover over any sentence in the transcript and right-click. A context menu appears with two options: * **Edit Speaker** (Rename): Change who said this segment * **Edit Sentence** (Inline): Correct the text itself
Right-click context menu on transcript showing Edit Speaker and Edit Sentence options
**Method 2: Editing mode** For bulk edits, click the **editing mode icon** in the transcript toolbar. This activates a full editing view where you can click on any sentence to edit it directly, without needing to right-click each time.
Transcript in editing mode showing editable sentences highlighted with an Exit Edit Mode button
A banner at the top confirms you're in editing mode ("Editing mode, click a sentence to edit"). Click **Done** or the edit icon again to exit. ### Labeling speakers [#labeling-speakers] The AI automatically detects different speakers, but may not always know their names. To rename a speaker, click on their name in the transcript. A **Speaker Label Edition** dialog opens where you can: * Type the correct name * Apply the change to **All occurrences** (renames this speaker everywhere in the transcript) * Apply to **Only this occurrence** (useful if the AI merged two people into one speaker) * **Revert all speakers edits** if you want to start over
Speaker Label Edition dialog showing name input field, All occurrences and Only this occurrence buttons, and Revert all speakers edits option
Once speakers are correctly labeled, all downstream features (summaries, action items, OptiAgent answers) will use the correct names. Add frequently used terms to your organization's [Custom Dictionary](https://app.optiverse.ai/settings/org-profile) to reduce recurring transcription errors across all future meetings. This prevents you from needing to manually fix the same words repeatedly. *** ## Speaker Statistics [#speaker-statistics] On the left panel, below the meeting description, you'll find **Speaker Statistics** showing:
Speaker Statistics panel showing a donut chart with speaking time per participant
* A donut chart with speaking time per participant * Each speaker's name and their corresponding color This is valuable for coaching, sales call reviews, and understanding meeting dynamics (e.g., was one person dominating the conversation?). *** ## OptiAgent [#optiagent] Every recording page has an **OptiAgent** chat interface in the left panel. This is your personal AI assistant that lives directly on the meeting page. It can answer questions about the recording, but it's far more powerful than a simple Q\&A bot.
OptiAgent chat interface on the left panel of the recording page
OptiAgent suggests quick actions based on the meeting content (such as "Bullet point summary," "Send demo follow-up email," or "Create next-Tue 10:00 reminder"), and you can also ask anything in natural language using the chat input. ### Fast and Smart modes [#fast-and-smart-modes] OptiAgent offers two thinking modes, which you can toggle at the bottom of the chat:
Fast and Smart mode toggle in OptiAgent
| Mode | Best for | | --------- | -------------------------------------------------------------------------------------------------------------------------- | | **Fast** | Working with the single meeting in front of you. Quick answers, summaries, email drafts based on this recording's content. | | **Smart** | Complex tasks involving multiple meetings, attachments, deep research, or combining knowledge across recordings. | Use Fast mode for everyday questions and single-meeting tasks. Switch to Smart mode when you need cross-meeting analysis, detailed research, or multi-step workflows. ### Agent tools [#agent-tools] OptiAgent has access to a comprehensive set of tools, organized by category:
OptiAgent tools panel showing Search, Precise Analysis, and Edit tool categories
**Search tools:** * **List Meetings**: Browse all your meetings to find specific topics * **Search Transcripts**: Search across transcripts of other recordings * **Browse Topics**: Explore topics discussed across your meeting library **Precise Analysis tools:** * **Get Current Transcript**: Load the full transcript of the current meeting for detailed analysis * **Load Meeting**: Load another meeting's data to combine with the current one * **Meeting Analysis**: Perform deep analysis on meeting content * **Protocol Summaries**: Generate or reference protocol-based summaries **Edit tools:** * **Draft Email**: Generate tailored follow-up emails ready to send directly to Gmail * **Edit Summary**: Modify the meeting summary on the page directly * **Generate Diagram**: Create visual diagrams based on meeting content ### What you can do with OptiAgent [#what-you-can-do-with-optiagent] Because of these tools, OptiAgent goes well beyond answering questions about the current recording: * **Answer questions**: "What did the client say about the timeline?" * **Generate follow-up emails**: "Draft a follow-up email summarizing the next steps" (sends directly to Gmail with one button) * **Search across meetings**: "Find all meetings where we discussed the Q3 budget" * **Combine knowledge**: Load data from multiple meetings and synthesize it into a single summary or action plan * **Create visuals**: Generate diagrams to illustrate meeting content or decisions * **Edit the summary directly**: Ask OptiAgent to rewrite or restructure the meeting summary on the page * **Deep research**: Ask complex questions that require analyzing multiple recordings together For a full overview of OptiAgent capabilities, see [What is OptiAgent](/docs/optiagent-and-knowledge-hub/what-is-optiagent). *** ## Topics and Summary [#topics-and-summary] The right panel of the recording page contains two tabs: **Topics** and **Protocols**. ### Topics [#topics]
Topics tab on the right panel showing topic analysis with speaker participation and time spent
Every meeting, regardless of which summary template is selected, is always analyzed in a topic analysis view. This provides: * **Extracted topics**: The main subjects discussed during the meeting * **Action points per topic**: Key takeaways derived from each topic * **Contributing speakers**: Which participants spoke on each topic, shown with their avatar * **Time spent**: Approximate duration spent on each topic Everything in the topic analysis is **linked back to the video and transcript**. Click on any topic to jump to the relevant section, making it easy to trace where the data comes from. Topic analysis is always generated automatically for every meeting. It works independently of your protocol/template selection and gives you a structured overview regardless of your summary format. ### Protocols (Meeting Summary) [#protocols-meeting-summary] Toggle from Topics to **Protocols** to see the AI-generated meeting summary based on your selected template.
Protocols tab showing a meeting summary with Outcome and Main Topics Discussed sections, using an Intro Call template
The summary structure depends entirely on which [protocol](/docs/protocols-and-summaries) is applied. In this example, an "Intro Call" protocol produces an **Outcome** section and a **Main Topics Discussed** section. Other protocols will produce completely different structures (e.g., a sales call protocol might extract BANT criteria, while a board meeting protocol might produce formal minutes). At the top of the summary, you'll find action buttons to **regenerate**, **copy**, or **download** the summary. #### Switching protocols [#switching-protocols] Click the protocol name in the top right corner (e.g., "Intro Call") to open the protocol selector. From here you can: * **Search** across all your available protocols * **Create New** protocols directly from the recording page * **Upload PDF template** to generate a protocol from an existing document
Protocol selector dropdown showing a search field, Create New and Upload PDF template buttons, and a list of available protocols
#### Uploading a PDF to create a protocol [#uploading-a-pdf-to-create-a-protocol] If you don't have a protocol template in Optiverse yet, you can upload a PDF directly from the recording page. This can be a template with your desired agenda, a complete example of minutes from a previous meeting, or any reference document. OptiAgent will reproduce the format from the transcript and generate a protocol template based on that document, all at once.
Upload PDF dialog showing a drag-and-drop area for protocol templates, previous meeting examples, or any reference document
#### Editing the summary [#editing-the-summary] The summary is a **live text editor**. You can directly modify any part of it on the page: fix wording, add missing details, restructure sections, or remove irrelevant content. Changes are saved automatically. If you'd rather not edit manually, you can ask **OptiAgent** to modify the summary for you. Because OptiAgent has the "Edit Summary" tool, it can rewrite, expand, or restructure the summary based on your instructions (e.g., "Add the budget numbers to the outcome section" or "Rewrite this in a more formal tone"). For a deep dive into creating and managing protocols, see [Protocols & Summaries](/docs/protocols-and-summaries). *** ## Action Items [#action-items] Below the summary on the right panel, Optiverse automatically extracts **Action Items** from the conversation. Each action item includes: * **Task description**: A clear statement of what needs to be done * **Assigned person**: The responsible party, based on speaker attribution during the meeting * **Priority level**: Marked as High, Medium, or Low based on the urgency conveyed in the conversation
Action Items panel showing extracted tasks with priority levels and assigned persons
The status icon on the left of each action item indicates its current state. You can click the dropdown to change the status (e.g., mark an item as completed or in progress). Action items are fully editable: you can modify the description, reassign the responsible person, change the priority, or remove items entirely. You can also manually add new action items that weren't automatically detected. Once finalized, action items can be pushed to connected tools like [task boards](/docs/boards-and-task-management), your CRM, or automation workflows. The quality of action item extraction improves when speakers are correctly labeled. If a participant commits to something during the meeting, the AI will attribute the task to them by name. *** ## Sharing and Export [#sharing-and-export] From the recording page, you can share the meeting with others and export the content. ### Sharing a recording [#sharing-a-recording] Click the **Share** button in the top-right corner of the recording page to open the sharing dialog. From here you can: * **Share with specific people**: Enter email addresses in the input field and click Share. Recipients will receive access to the full recording, transcript, and summary. * **View current access**: The "Shared With" section shows all users who currently have access, along with their permission level (e.g., Owner). * **Remove access**: Click the **×** next to any user to revoke their access. * **Enable public sharing**: Toggle the public link switch to allow anyone with the link to view the meeting. Click **Copy Link** to copy the shareable URL to your clipboard.
Sharing dialog showing email input, shared users with permission levels, and public link toggle
When public sharing is enabled, **anyone with the link can see the meeting**. Use this carefully for sensitive or internal meetings. You can disable it at any time by toggling the switch off. ### Export options [#export-options] You can also: * **Export** the summary as PDF or Word * **Push** to connected integrations (CRM, task tools, n8n workflows) For full details on who can access recordings and how sharing works, see [Access & Sharing](/docs/how-recording-works/access-and-sharing). *** ## Additional Actions [#additional-actions] | Action | How | | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Rename** the recording | Click the title at the top of the page | | **Reprocess** with a different protocol | Select a new protocol from the Protocols tab | | **Delete** the recording | Trash icon on the recording page or three-dots menu in the list. See [Deleting Recordings](/docs/how-recording-works/deleting-recordings) for details on ownership and deletion options. | | **Push to integration** | Send the summary to a connected tool (see [Integrations](/docs/integrations-and-workflows)) | | **Download transcript** | Click the download icon in the transcript toolbar | | **Copy transcript** | Click the copy icon in the transcript toolbar | # Integrations (/docs/integrations-and-workflows) Optiverse integrates with 5000+ tools via native connections, Zapier, API/webhooks, and n8n workflows. This section covers every integration path. HubSpot, Salesforce, Dynamics 365, Pipedrive, Attio. Push meeting data into your pipeline. Microsoft Teams, Slack, Gmail & Outlook, Aircall. How the Model Context Protocol powers tool access, and how to connect custom MCP servers. Zapier and n8n for event-driven custom workflows. Build custom integrations with the Optiverse API. Ready-to-use automation templates you can deploy in minutes. # Microsoft Integration Approval (/docs/integrations-and-workflows/microsoft-admin-consent) Some companies do not let employees approve external apps. Connecting a Microsoft integration then fails until an admin approves Optiverse once for the whole organization. This page builds the link you send to your admin. Each Microsoft app is approved separately. The generator below covers both: the **Optiverse platform** app, used for signing in and reading your calendar, and one app per integration. For the full sign-up walkthrough your admin can follow, see [Admin Approval & Sign-Up Troubleshooting](/docs/getting-started/admin-approval). ## When You Need This [#when-you-need-this] While signing in to Optiverse, or while connecting Dynamics 365, Microsoft Teams, or Microsoft Planner: * Microsoft shows **Need admin approval** * An error mentions `AADSTS65001` or "has not consented" * You sign in with Microsoft and land back on Optiverse still disconnected Microsoft Need admin approval screen shown when your organization has not approved Optiverse yet The approval is granted once per organization, not once per person. ## Get Your Approval Link [#get-your-approval-link] Enter the domain from your work email address. If your email is `you@yourcompany.com`, the domain is `yourcompany.com`. The first link is the Optiverse platform app itself. It asks only for calendar read access and basic profile information, and it is what unblocks signing in. The other links each cover a single integration. The links hold no private data, only your domain and the public ID of the Optiverse app, so they are safe to send by email or chat. ## What Your Admin Does [#what-your-admin-does] Your admin opens the link, signs in, and accepts the permissions. Only a Global Administrator, Privileged Role Administrator, or Cloud Application Administrator can do this — anyone else is told they do not have permission. After accepting, your admin lands back on Optiverse. If that page shows an error, the approval still went through. Confirm it in **Microsoft Entra ID > Enterprise applications**, where Optiverse now appears with its permissions granted. ## After The Approval [#after-the-approval] 1. Go to [**Settings > Integrations**](https://app.optiverse.ai/settings/integrations) 2. Click **Connect**, or **Reconnect** if it was connected before 3. Pick your Microsoft account Reconnect even if the integration already looks connected. An older connection keeps the permissions it was granted before the approval, so only a fresh connect picks up the new ones. For the platform approval there is nothing to reconnect. Sign in to [app.optiverse.ai](https://app.optiverse.ai) again and the block is gone. ## If It Still Fails [#if-it-still-fails] | What you see | What it usually means | | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | Still **Need admin approval** | The approval was granted in a different Microsoft organization. Check that the domain matches the account you sign in with. | | Approval granted, connect still fails | You signed in with a personal Microsoft account instead of your work account. | | Connected, but lists come back empty | The approval worked. This is a permissions issue inside the tool itself, for example a missing Dynamics security role. | | Admin sees "you do not have permission" | Whoever opened the link cannot grant consent for the organization. | A Conditional Access policy can also block Optiverse after the approval, for example a rule that only allows managed devices. Your admin can confirm this in the Entra sign-in logs. Still stuck? Email [support@optiverse.ai](mailto:support@optiverse.ai) or [book a call](https://www.optiverse.ai/meeting?utm_source=academy\&utm_medium=cta). ## Related Pages [#related-pages] * [Dynamics 365 Integration](/docs/integrations-and-workflows/crm/dynamics-365) * [Microsoft Teams Integration](/docs/integrations-and-workflows/communication/microsoft-teams) # Mobile App (/docs/mobile-app) The Optiverse mobile app brings all the power of Optiverse's transcription and summarization capabilities to your pocket. Capture in-person meetings, record voice memos, and upload existing audio files, all processed with the same AI as your online meetings.
Three states of the Optiverse mobile app: home screen with upcoming meetings, active recording with timer and controls, and Send to Optiverse confirmation dialog
## Installation [#installation] ### Download the app [#download-the-app] * **iOS**: Download from the [App Store](https://apps.apple.com/ch/app/optiverse/id6743003995) * **Android**: Download from [Google Play](https://play.google.com/store/apps/details?id=com.optiverse.OptiApp\&hl=en) Or scan the QR codes below:
QR codes for downloading the Optiverse mobile app from App Store and Google Play
### Log in [#log-in] Sign in with the **same email** you use on the Optiverse website (Google or Microsoft). Your recordings will sync to your Optiverse workspace. The mobile app is available only to users who are already registered on the Optiverse platform. If you haven't signed up yet, create your account at [app.optiverse.ai](https://app.optiverse.ai) first. *** ## Recording In-Person Meetings [#recording-in-person-meetings] ### Start a recording [#start-a-recording] Tap the **Record** button, place your phone nearby, and let Optiverse do the heavy lifting. The app captures the conversation clearly, even while running in the background, so you can stay focused on the discussion. ### Link to a calendar event (optional) [#link-to-a-calendar-event-optional] Before recording, you can **select an existing calendar event** from the list. This attaches metadata like the meeting title and participant list to your recording. You can also skip this and just start recording without selecting an event. ### Pause and resume [#pause-and-resume] Unlike the Optiverse meeting assistant that joins virtual calls, the mobile app lets you **pause** and **resume** recordings anytime. This gives you more control and flexibility during live interactions. If you receive a phone call during recording, the app **automatically pauses** and resumes after the call ends. ### End and upload [#end-and-upload] When the meeting is done: 1. Tap the **checkmark** to stop recording 2. A confirmation dialog asks "Do you want to send this recording to Optiverse?" — tap **Yes, Send** 3. The file uploads and you'll see a green success confirmation Within minutes, you'll receive a detailed **email summary** along with a link to the processed audio and meeting notes, just like you do for your virtual meetings. Processing takes approximately 10 to 15 minutes after upload, just like online meetings. You'll receive a notification when your summary is ready. *** ## Use Cases [#use-cases] The mobile app expands what Optiverse can do beyond virtual meetings: * **Voice dictation after meetings**: Just had an important on-site visit or client meeting? Pull out the app on your drive back and dictate the most important points while they're still fresh. This is far better than trying to recall details hours later. * **In-person interviews**: Capture for later analysis and action item generation * **Spontaneous discussions**: Document conversations that happen outside scheduled calls * **Team syncs and huddles**: Record quick standups without needing a laptop * **Field conversations**: Capture customer visits, on-site meetings, or partner discussions * **Brainstorming sessions**: Record informal ideation in any setting Studies show that **80% of information** from an in-person discussion or meeting is lost within 24 hours. Right after a conversation, the details are still fresh. Even if you couldn't record the entire meeting, a quick voice dictation of the key points gives Optiverse enough to generate a structured summary with action items. *** ## Offline Recording [#offline-recording] The app works **offline for recording**. Files are stored locally within the app (not in your phone's general file system). * If you have no internet when finishing a recording, the file is saved locally * You can upload it later when you're back online * Previously saved recordings can be re-uploaded from the app at any time ### Local Recordings [#local-recordings] All recordings are stored in the **Recordings** tab. You can see a list of all locally stored recordings with their dates. * If you have no internet when finishing a recording, the file is saved locally * You can upload it later when you're back online * Previously saved recordings can be re-uploaded from the app at any time ### Resending a recording [#resending-a-recording] To resend a recording to Optiverse (for example, if the initial upload failed or you want to reprocess it), tap on any recording and select **"Resend to Optiverse"**. This is useful when: * The initial upload failed due to connectivity * You want to reprocess a recording with updated settings * You need to share the recording to a different workspace *** ## Uploading Existing Audio Files [#uploading-existing-audio-files] You can upload audio or video files already on your phone: 1. Open the app 2. Select the **upload** option 3. Choose an MP3, video, or other audio file from your phone's library 4. The file is sent to Optiverse for processing *** ## Speaker Identification [#speaker-identification] Recordings from the mobile app won't have speaker names automatically assigned. You'll need to **label speakers** in the web interface before generating summaries for accurate attribution. Go to the recording in the web app, open the transcript, and assign names to each detected speaker voice. *** ## Tips for Better Audio Quality [#tips-for-better-audio-quality] * **Small groups (2 to 5 people)**: Place your phone on the table near the center * **Larger groups (10+ people)**: Elevate the phone slightly, place it on top of a cup, book, or similar object for better pickup * **Minimize background noise**: Close windows and doors when possible * **Keep the phone stationary**: Avoid moving it during the recording # Multi-Meeting Search (/docs/optiagent-and-knowledge-hub/cross-meeting-search) Multi-Meeting Search lives on the Optiverse homepage. It's the same deep thinking AI that powers OptiAgent on recording pages, but with access to a broader set of tools, including your full meeting history, CRM data, internet research, document generation, and MCP integrations. Ask any question, and it will search across all your meetings to surface insights, draft content, and help you take action.
Optiverse Multi-Meeting Search interface on the homepage
*** ## How It Works [#how-it-works] When you ask a question on the homepage, the AI: 1. Searches across all relevant meetings (even thousands) 2. Identifies the most relevant passages and conversations 3. Synthesizes information into a clear answer with source references 4. Optionally pulls in data from connected integrations (CRM, email, project tools) You can also manually select specific meetings to add as context, or let the agent search automatically. *** ## What You Can Do [#what-you-can-do] ### Ask About Optiverse Itself [#ask-about-optiverse-itself] Multi-Meeting Search is not limited to your meeting data. It also understands Optiverse as a product. You can ask it questions about how features work, where to find specific settings, or how to accomplish something on the platform. The assistant will guide you directly to the right page or explain the steps in natural language. Examples: * "How do I change my default protocol?" * "Where can I manage my team members?" * "How do I connect my CRM?" * "What's the difference between Fast and Smart mode?" This makes the assistant a live help system. Instead of searching documentation or navigating menus, just ask. *** ### Prepare for Any Meeting [#prepare-for-any-meeting] Drag and drop an upcoming meeting into the search, and Optiverse will automatically fetch all previous context with that person or team. You get a full briefing with open action items, past decisions, and talking points, so you walk in fully prepared.
Drag and drop a meeting into Optiverse for a full briefing
Drag an upcoming calendar event into the search to get an instant preparation briefing: previous interactions, CRM status, open items, and suggested talking points. ### Run Reports and Analysis [#run-reports-and-analysis] Need a summary of everything discussed with a client over the past quarter? Want to know which topics keep coming up? Multi-Meeting Search turns your conversations into structured reports and actionable insights.
Cross-Meeting Insights Report with categories, key topics, and trends
### Generate Documents Instantly [#generate-documents-instantly] From meeting summaries to project briefs, Optiverse generates polished documents grounded in what was actually said. Outputs include PDF reports, Word documents, and structured overviews with timelines.
Optiverse generates an Executive Summary from meeting discussions
### Draft Emails in Seconds [#draft-emails-in-seconds] Ask Optiverse to write follow-up emails based on what was discussed. It pulls the right context from your meetings, so every email is accurate, professional, and ready to send.
Optiverse drafts a follow-up email ready to send
*** ## Example Queries [#example-queries] | Category | Examples | | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | | **Meeting Prep** | "I have a meeting with \[person] in 5 minutes, give me everything I need" / "What's open with \[company] since our last call?" | | **Reports** | "Make a progress report on Project X" / "Summarize all client meetings this month" | | **Client Intelligence** | "What did we discuss with \[company] over the last 6 months?" / "List all objections raised about \[product] and how they were handled" | | **Sales & CRM** | "Which deals discussed this quarter haven't been updated in the CRM?" / "Summarize all discovery calls from last month" | | **Follow-ups** | "Draft a follow-up to today's call" / "Write an email to \[person] confirming next steps" | | **Patterns** | "Track how our pricing discussion evolved over the last 3 months" / "What decisions have we made about \[topic] across all team meetings?" | | **Platform Help** | "How do I connect my CRM?" / "Where can I change my default protocol?" / "How do I invite team members?" | *** ## Tools Available on the Homepage [#tools-available-on-the-homepage] Multi-Meeting Search has access to a broader tool set than the recording page agent: | Tool | What it does | | ----------------------- | ------------------------------------------------------------------------------------ | | **Search All Meetings** | Full-text and semantic search across your entire meeting library | | **CRM Lookup** | Query Salesforce or HubSpot for deal stages, contacts, and pipeline data | | **Deep Research** | Search the public internet for company info, contact backgrounds, and market context | | **Document Generation** | Compile findings into downloadable PDF/Word reports | | **Visual Analysis** | Create timelines, charts, and structured graphics | | **Draft Email** | Generate follow-up emails grounded in multi-meeting context | | **MCP Integrations** | Pull data from Slack, Notion, Jira, Linear, and other connected tools | *** ## Connected Integrations (MCP) [#connected-integrations-mcp] When connected to external tools via MCP, Multi-Meeting Search doesn't just fetch data from those tools in isolation. It combines everything into a single, unified response. When you ask a question, the AI pulls from your meeting transcripts, your CRM records, your project boards, your Slack messages, and your documentation simultaneously. The result is one coherent answer that weaves together information from all sources. For example, if you ask "What's the status of the Acme deal?", the AI might combine: * What was discussed in your last three meetings with Acme * The current deal stage and pipeline value from HubSpot or Salesforce * Recent Slack messages mentioning the deal * Open tickets in Jira or Linear related to their requests All of this appears in a single response, with sources clearly attributed so you know where each piece of information came from.
Optiverse MCP Integrations connecting to HubSpot, Salesforce, Slack, Teams, Notion, Jira, Linear, n8n, and more
Supported integrations include: * **CRM**: Salesforce, HubSpot. Deal stages, contact info, pipeline data. * **Communication**: Slack, Microsoft Teams. Channel messages, threads. * **Documentation**: Notion. Pages, databases, wikis. * **Project Management**: Jira, Linear. Tickets, sprints, roadmaps. * **Automation**: n8n. Custom workflow triggers. See [MCP Connections](/docs/integrations-and-workflows/mcp-connections) for setup instructions. *** ## Performance [#performance] | Query Type | Expected Time | | -------------------------------------------- | ----------------------- | | Simple factual question | A few seconds | | Multi-meeting search | 30 seconds to 2 minutes | | Deep analysis (many meetings + integrations) | 2 to 5 minutes | For complex, multi-meeting analysis tasks, let the AI run to completion. These queries may take several minutes. The result will be comprehensive. *** ## Chat History [#chat-history] All conversations are **saved and searchable**. You can return to previous research sessions, search past chats by topic, and continue where you left off. # OptiAgent & Meeting Search (/docs/optiagent-and-knowledge-hub) Optiverse is powered by a single deep thinking AI model that understands every word of every meeting. This AI appears in two places, each optimized for a different workflow: | | Multi-Meeting Search | OptiAgent (Recording Page) | | ------------ | --------------------------------------------------------- | ----------------------------------------------------------------- | | **Where** | Optiverse homepage | Left panel on any recording page | | **Focus** | All your meetings at once | The meeting in front of you | | **Strength** | Research, reports, preparation, cross-meeting analysis | Quick answers, editing, follow-ups on a specific recording | | **Tools** | Full tool set: CRM, internet, documents, MCP integrations | Focused tool set: transcript, edit summary, draft email, diagrams | Both surfaces share the same underlying intelligence, the same understanding of your transcripts, and the same ability to reason across multiple meetings. The difference is scope and context: Multi-Meeting Search starts broad and pulls from everything; OptiAgent on the recording page starts with the meeting you're looking at and reaches out when needed. The full-power homepage agent. Search, analyze, and act across your entire meeting history. Your contextual assistant for a specific meeting. Questions, edits, emails, and diagrams. Get better results from both surfaces with clear prompting and smart mode choices. # Tips & Best Practices (/docs/optiagent-and-knowledge-hub/prompting-optiagent) These tips apply to both [Multi-Meeting Search](/docs/optiagent-and-knowledge-hub/cross-meeting-search) (homepage) and [OptiAgent](/docs/optiagent-and-knowledge-hub/what-is-optiagent) (recording page). The underlying AI is the same. Better prompts get better results everywhere. *** ## Be Specific [#be-specific] The more specific your question, the better the answer. | Instead of... | Try... | | --------------------------- | --------------------------------------------------------------- | | "What happened?" | "What did we agree on regarding the deadline for the proposal?" | | "Tell me about the meeting" | "What were the three main action items?" | | "What did they say?" | "What feedback did Sarah give about the pricing model?" | *** ## Name People Explicitly [#name-people-explicitly] The AI identifies speakers in the transcript. Use names or email addresses for precise results: * "What did Thomas say about the timeline?" * "Summarize Maria's concerns from the last two meetings" * "What has [john@company.com](mailto:john@company.com) committed to delivering?" If there's ambiguity (e.g., multiple people named "Albert" in your meetings), the AI will ask you to clarify. *** ## Specify Time Ranges [#specify-time-ranges] Help narrow results by adding time context: * "In the last month" * "Since January" * "From Q1 this year" * "In the last 3 meetings with \[company]" *** ## Tell It What to Do [#tell-it-what-to-do] For faster, more targeted results, specify the action or tool you want: * "**Search the internet** for recent news about \[company]" * "**Check our CRM** for the current deal stage with \[company]" * "**Look at the last 5 meetings** with this client" * "**Draft an email** to \[person] confirming next steps" * "**Generate a report** on all client interactions this quarter" *** ## Choose the Right Mode [#choose-the-right-mode] | Mode | Use when... | | --------- | ------------------------------------------------------------------------------------------ | | **Fast** | Quick factual lookups, simple questions, single-meeting tasks | | **Smart** | Complex analysis, multi-step tasks, cross-meeting research, structured data (CSVs, tables) | When working with structured data (CSVs, tables, spreadsheets), always use Smart mode. Fast mode is not designed for complex data processing. *** ## Chain Multiple Actions [#chain-multiple-actions] You can ask for multiple things in a single prompt: ``` Search all meetings with [company] from this quarter, summarize the key decisions, and draft an email to their team proposing a quarterly review meeting. ``` The AI will execute each step in sequence. *** ## Let It Finish [#let-it-finish] Deep analysis across many meetings may take 2 to 5 minutes. Don't interrupt long-running queries. The AI will deliver a complete answer. This is especially relevant for Multi-Meeting Search queries that span dozens of meetings or pull from multiple integrations. *** ## Limitations to Keep in Mind [#limitations-to-keep-in-mind] * **Transcript-based**: The AI processes spoken content, not chat messages or emoji reactions * **Shared screen content**: Lower weight than spoken words. If something was only shown on screen (not spoken aloud), results may be less reliable * **PDF/image attachments**: Processed via image models. OCR inaccuracies are possible for handwritten or low-quality documents # Use Cases by Role (/docs/optiagent-and-knowledge-hub/use-cases-by-role) Every role uses meetings differently. These guides show how each team gets value from the Optiverse assistant with specific workflows and ready-to-use prompts. Automate meeting prep, send follow-ups instantly, and keep your CRM accurate. Monitor client health and prepare for renewals with full conversation history. Aggregate feature requests and track how decisions evolved across meetings. Get instant briefings and cross-team visibility without attending every call. Extract action items automatically and generate progress reports. Aggregate interview feedback, track 1:1 themes, and prepare for reviews. Switch between clients instantly and generate proposals from discovery calls. Mine customer language and gather competitive intelligence from sales calls. # OptiAgent on the Recording Page (/docs/optiagent-and-knowledge-hub/what-is-optiagent) OptiAgent is the chat panel on every [recording page](/docs/how-recording-works/meeting-recording-page). It's the same deep thinking AI as [Multi-Meeting Search](/docs/optiagent-and-knowledge-hub/cross-meeting-search), but scoped to the meeting you're looking at. It prioritizes the current transcript while still being able to reach into other meetings, compare content, and pull context from your meeting library. Think of it as a shortcut: Multi-Meeting Search starts broad; OptiAgent starts with the recording in front of you.
OptiAgent chat interface on the left panel of the recording page
*** ## Fast and Smart Modes [#fast-and-smart-modes] OptiAgent offers two thinking modes, toggled at the bottom of the chat input:
Fast and Smart mode toggle in OptiAgent
| Mode | Best for | | --------- | ----------------------------------------------------------------------- | | **Fast** | Quick factual answers, simple lookups, single-meeting tasks | | **Smart** | Complex analysis, cross-meeting research, multi-step tasks, attachments | Use Fast mode for everyday questions. Switch to Smart mode when your request involves multiple meetings, requires deeper reasoning, or includes structured data (CSVs, tables). *** ## Tools [#tools] OptiAgent has a focused tool set designed for working with a specific recording:
OptiAgent tools panel showing Search, Precise Analysis, and Edit categories with toggles
### Search [#search] | Tool | What it does | | ---------------------- | ------------------------------------------------------------------- | | **List Meetings** | Browse all your meetings to find specific topics or conversations | | **Search Transcripts** | Search across transcripts of other recordings by keyword or concept | | **Browse Topics** | Explore topics discussed across your entire meeting library | ### Precise Analysis [#precise-analysis] | Tool | What it does | | -------------------------- | ------------------------------------------------------------------- | | **Get Current Transcript** | Load the full transcript for detailed, line-by-line analysis | | **Load Meeting** | Load another meeting's data to compare or combine | | **Meeting Analysis** | Deep analysis on meeting content (sentiment, dynamics, key moments) | | **Protocol Summaries** | Generate or reference protocol-based summaries | ### Edit [#edit] | Tool | What it does | | -------------------- | ------------------------------------------------------------ | | **Draft Email** | Generate follow-up emails that can be sent directly to Gmail | | **Edit Summary** | Modify the meeting summary on the recording page directly | | **Generate Diagram** | Create visual diagrams based on meeting content | You can enable or disable individual tools from the tools panel. All tools are enabled by default. *** ## What You Can Do [#what-you-can-do] ### Ask questions about the meeting [#ask-questions-about-the-meeting] Every answer includes a **clickable source reference** that jumps to the exact timestamp in the transcript or recording. * "What did we agree on regarding pricing?" * "What was the deadline mentioned for the proposal?" * "Summarize the first 10 minutes" * "What objections did the client raise?" ### Draft follow-up emails [#draft-follow-up-emails] The generated email can be **sent directly to Gmail** with one button. Recipient, subject line, and body are pre-filled. * "Draft a follow-up email to Sarah confirming next steps" * "Write an email to the client summarizing what we agreed on" * "Send a recap email to the team with action items" ### Edit the summary [#edit-the-summary] OptiAgent can modify the meeting summary live on the page. This is powerful with [custom protocols](/docs/protocols-and-summaries). You can restructure a summary to match a specific template. * "Update the action items to include the deadline we discussed" * "Add the budget figure to the key decisions section" * "Rewrite the summary to focus on technical decisions" ### Create tasks and reminders [#create-tasks-and-reminders] * "Create a reminder for next Tuesday at 10:00" * "Extract all action items with owners and deadlines" * "Generate a task list from the decisions made" ### Generate visuals [#generate-visuals] * Decision trees discussed in the meeting * Process flows that were described * Timeline visualizations ### Reach into other meetings [#reach-into-other-meetings] OptiAgent can use its search tools to pull context from your full meeting library without leaving the recording page: * "What did we discuss with this client last time?" * "Compare what they said today with their position last month" * "Combine the action items from the last three project meetings" When working cross-meeting, use **Smart mode** for best results. *** ## Suggested Actions [#suggested-actions] OptiAgent proactively suggests actions based on the meeting content. You'll see quick-action buttons like "Bullet point summary," "Send demo follow-up email," or "Create next-Tue 10:00 reminder" that you can trigger with a single click. *** ## Architecture: Tools, Not Prompts [#architecture-tools-not-prompts] OptiAgent is built on a tools-based architecture. Rather than predicting text from a prompt, it actively decides which tools to invoke based on your request. This means it can: * Retrieve specific data from meetings (rather than guessing) * Perform calculations and analysis on real numbers * Take actions (send emails, edit summaries) with your confirmation * Chain multiple tools together for complex workflows # Changelog (/docs/product-updates/changelog) ## Latest Updates [#latest-updates] The changelog will be populated as new features are released. Check back soon. # Product Updates (/docs/product-updates) Stay up to date with the latest Optiverse features, improvements, and fixes. See what's new in the latest releases. # Creating Custom Protocols (/docs/protocols-and-summaries/creating-custom-protocols) Optiverse provides multiple ways to create protocol templates, from fully AI assisted generation to complete manual control. Choose the method that matches your comfort level and how well defined your requirements are. ## Getting Started [#getting-started] 1. Go to the [**Protocols** page](https://app.optiverse.ai/protocols) in Optiverse 2. Click **Create New Protocol** The Create New Protocol button on the Protocols page 3. Choose your creation method Creation options: Ask AI to Generate, Create from Scratch, Create from Template, or Upload Document Template *** ## Method 1: AI Powered Generation [#method-1-ai-powered-generation] Describe in natural language what type of meeting the protocol is for and what output you need. The AI assistant generates a complete template structure with sections, instructions, and appropriate output data types. **Example prompt:** > I need a protocol for client onboarding calls. I want to capture the client's main goals, the agreed timeline, a table of deliverables with owners and deadlines, and any open questions that need follow up. AI assistant chat where a user describes what they need in their protocol template ### Attaching Reference Documents [#attaching-reference-documents] You can attach **PDFs** to provide additional context to the AI. This is particularly useful when: * You have an existing meeting template or form you want to replicate in Optiverse * You have a CRM structure or documentation standard the output needs to match * You want to provide examples of what good output looks like The AI reads the attachment and uses it to understand your structure, terminology, and requirements, then builds the protocol accordingly. The AI assistant may ask clarifying questions before generating the template. Answering them produces a more accurate result on the first try. ### After Generation [#after-generation] The AI generated protocol is a starting point. You can (and should) review each section and refine the instructions, adjust output types, add or remove sections, and tweak the global description. Most protocols reach their ideal state after 2–3 rounds of testing and refinement. The Protocol Template Editor showing a generated protocol with sections, instructions, and output type selectors. The AI assistant remains available on the right side for further modifications using natural language. You can also continue modifying the protocol template inside the editor using natural language with the AI assistant on the right side of the screen. Simply describe what you'd like to change and the assistant will update the template accordingly. *** ## Method 2: Manual Build [#method-2-manual-build] Build your protocol section by section with full control over every aspect. Add sections one by one, defining the title, AI instructions, and output data type for each. This method is ideal when you know exactly what structure you want and prefer to control every detail from the start. ### Section Structure [#section-structure] Each section has three components: | Component | What It Does | | ------------------- | --------------------------------------------------------------------- | | **Title** | The heading that appears in the generated output | | **AI Instructions** | The prompt telling the AI what to extract or analyze | | **Output Format** | The data type for this section's output (text, list, number, options) | A section in the Protocol Editor showing the Section Title, Section Question (instructions), and Answer type selector with Text, Number, Bullet Point, and List of Options ### Output Data Types [#output-data-types] For each section, you choose an output format. This controls both what the user sees on the recording page and what data structure is sent to integrations. **Text.** Free form text response. The AI writes a paragraph or short text answering your prompt. Best for meeting summaries, context descriptions, and decisions explained in prose. **Number.** A single numeric value extracted from the meeting. Best for budget amounts, headcount figures, scores, or ratings. When you push protocol output to a CRM or external system, a numeric field requires a numeric value, not a sentence containing a number. The Number type ensures the data matches the expected input format. **Bullet Point (List).** A structured list where each item is a discrete data point extracted from the meeting. Best for action items, key takeaways, discussion topics, and decisions. Each item includes an embedded link to its source in the transcript and video, so you can click any item to jump to the exact moment it was discussed. **List of Options (Predefined).** A value selected from a list of options you define in advance, similar to a dropdown. Best for deal stage classifications, meeting sentiment, follow up priority, or any Yes/No/Maybe type output. If your CRM or task management tool has a dropdown field with specific allowed values, this type ensures the protocol output matches exactly, with no free text variations that would fail to map. ### Global Description [#global-description] The **Description** field at the top of the protocol applies instructions across ALL sections. Use it for rules that should be consistent throughout the entire summary. The Protocol Template Editor header showing the protocol title and description fields **Examples of global instructions:** * *"Always normalize company names to their official spelling."* * *"Use formal tone throughout. Output in English regardless of meeting language."* * *"When referencing people, use their full name on first mention and last name only thereafter."* Instructions in the **global description** apply to every section. Instructions within a **section** apply only to that section. Use both levels strategically for maximum precision. *** ## Method 3: Template Library [#method-3-template-library] Browse ready made protocol templates in the **Protocol Gallery** and add them to your workspace with one click. Each template is designed for a specific meeting type or use case. After adding a template from the library, you can customize it to match your exact needs. Adjust sections, rewrite instructions, change output types, or add new sections. This is the fastest path to a working protocol when a template exists for your use case. [Browse the Protocol Gallery →](/docs/protocols-and-summaries/protocol-gallery) *** ## Choosing Simple vs. Deep Analysis [#choosing-simple-vs-deep-analysis] When creating a protocol, you choose between two processing modes: The Deep Protocol toggle and More settings button in the Protocol Editor | | Simple (Normal) | Deep Analysis | | --------------------- | -------------------------------------- | ------------------------------------------ | | **Processing time** | Seconds | 1–2 minutes | | **Best for** | Quick overviews, high level extraction | Detailed analysis, complex data extraction | | **Output formats** | Text, lists, numbers, options | All of the above + tables, formatted text | | **Instruction depth** | Concise prompts | Extensive, detailed prompts | | **Recommended for** | All users | Experienced prompt engineers | Start with a **Simple protocol** while iterating on your structure. Once you're satisfied with the sections and instructions, switch to Deep Analysis if you need richer output. This saves processing time during the refinement phase. *** ## Configuring Your Protocol [#configuring-your-protocol] ### Output Language [#output-language] * **Meeting language** (default). The summary matches whatever language was spoken. * **Fixed language.** Force output in a specific language regardless of meeting language. ### Duplicating Protocols [#duplicating-protocols] Use the **Duplicate** button to create variants. For example, duplicate a protocol and change only the output language to create a French version of your English template. ### Testing Your Protocol [#testing-your-protocol] 1. Go to any existing recording 2. Select your new protocol from the dropdown 3. Click **Generate** to test it The Protocols tab on a recording page showing a generated protocol summary If the output isn't what you expected, go back to the editor, adjust instructions, and regenerate. Iteration is normal, and most protocols reach their final form after 2–3 rounds. *** ## Tips for Better Protocols [#tips-for-better-protocols] * **Be specific in your instructions.** Instead of "summarize the meeting," write "extract the top 3 decisions made, including who made them and the reasoning discussed." * **Match output types to your integration needs.** If a CRM field expects a dropdown value, use the predefined options type. If it expects a number, use the number type. * **Test on diverse meetings.** A protocol that works for one meeting may need adjustment when applied to meetings with different participants, topics, or lengths. * **Use global instructions for consistency.** Tone, language, naming conventions, and formatting rules belong in the global description. *** ## Protocol Examples [#protocol-examples] ### Quick Standup Protocol (Simple) [#quick-standup-protocol-simple] | Section | Output Type | Instruction | | ---------- | ------------ | ------------------------------------------------------------------------------ | | Updates | Bullet Point | Extract what each person shared as their update or progress since last meeting | | Blockers | Bullet Point | List any blockers or issues raised by team members | | Next Steps | Bullet Point | Capture action items with the person responsible | ### Sales Call Summary (Simple) [#sales-call-summary-simple] | Section | Output Type | Instruction | | ----------------- | --------------- | ------------------------------------------------------------------ | | Prospect Need | Text | Summarize the main need or pain point expressed by the prospect | | Deal Stage | List of Options | Classify the deal stage: Discovery / Demo / Proposal / Negotiation | | Budget Mentioned | Number | Extract the budget figure if one was mentioned, otherwise output 0 | | Next Steps | Bullet Point | List agreed next steps with owners | | Overall Sentiment | List of Options | Classify the overall tone: Positive / Neutral / Negative | ### Client Meeting (Deep Analysis) [#client-meeting-deep-analysis] | Section | Output Type | Instruction | | ------------------- | --------------- | ----------------------------------------------------------------------- | | Executive Summary | Text | Comprehensive overview of the meeting with context, outcomes, and tone | | Topics & Decisions | Table | Columns: Topic, Discussion Summary, Decision Made, Owner, Deadline | | Risk Factors | Bullet Point | Identify risks, concerns, or red flags raised, explicitly or implicitly | | Relationship Health | List of Options | Classify: Strong / Stable / At Risk / Critical | | Detailed Next Steps | Table | Columns: Action, Responsible Party, Deadline, Priority, Dependencies | # Deep Analysis Protocols (/docs/protocols-and-summaries/deep-analysis-protocols) Deep Analysis protocols use a multi agent approach under the hood to produce detailed, structured summaries that go far beyond surface level extraction. They take longer to process (typically 1–2 minutes) but deliver significantly richer output. To enable Deep Analysis on any protocol, toggle the **Deep Protocol** switch in the Protocol Template Editor. The Deep Protocol toggle enabled in the Protocol Template Editor ## When to Use Deep Analysis [#when-to-use-deep-analysis] Deep Analysis protocols are designed for situations where: * You need **tables** as part of the output (e.g., topics with owners, deadlines, and status columns) * The analysis requires **multiple reasoning passes** over the data * You want **extensive, multi paragraph text** with detailed findings per section * Your instructions per section are **complex and nuanced**, requiring the AI to follow intricate logic * You need **formatted output** that goes beyond simple text and lists ### Ideal Meeting Types [#ideal-meeting-types] * Complex client meetings with many topics, stakeholders, and follow ups * Strategy sessions requiring analysis of discussed options with pros and cons * Detailed interview scorecards with multiple evaluation criteria * Management reviews with department level breakdowns * Project retrospectives with categorized findings * Any meeting where depth and structure matter more than speed *** ## How Deep Analysis Works [#how-deep-analysis-works] Unlike Simple protocols that use a single model pass, Deep Analysis protocols use a **multi agent architecture**. Multiple AI models work together: 1. One agent analyzes the transcript structure and context 2. Another agent processes each section with deeper reasoning 3. The results are synthesized into a coherent, formatted output This multi step approach allows for more nuanced extraction, cross referencing between different parts of the conversation, and richer formatting in the output. Deep Analysis protocol processing, showing steps: Reading transcript and protocol configuration (complete), Analyzing key topics and participants (in progress) *** ## Additional Output Capabilities [#additional-output-capabilities] Deep Analysis protocols support everything Simple protocols offer (text, lists, numbers, predefined options) plus: ### Tables [#tables] Structured tabular output with multiple columns. Define the columns you want and the AI populates rows based on the meeting content. **Use cases:** * Topics discussed with owner, status, and deadline per row * Evaluation criteria with scores and justifications * Comparison of options discussed with pros and cons * Participant contributions with topic and action item columns ### Formatted Extended Text [#formatted-extended-text] Longer, more detailed text output with internal structure (headers, emphasis, structured reasoning). Unlike Simple protocol text which tends to be concise paragraphs, Deep Analysis text can include layered analysis. **Use cases:** * Detailed executive summaries with multiple sub topics * Analysis sections that weigh different viewpoints discussed * Comprehensive meeting narratives with context ### Built in Text Editor [#built-in-text-editor] Deep Analysis protocols come with a full text editor directly on the recording page. Once the protocol finishes processing, you can edit the output, adjust formatting, correct any details, or restructure content before exporting. This gives you full control over the final document that gets shared or downloaded. A Deep Analysis protocol result opened in the full screen text editor, showing formatted sections with a table of action items including Owner, Action, Deadline, and Description columns *** ## Writing Instructions for Deep Analysis [#writing-instructions-for-deep-analysis] Because Deep Analysis can handle more complex reasoning, your per section instructions can be significantly more detailed than in Simple protocols. ### Simple Protocol Instruction (concise): [#simple-protocol-instruction-concise] > List the action items discussed in the meeting with owners. ### Deep Analysis Instruction (extensive): [#deep-analysis-instruction-extensive] > Analyze the full conversation and extract every commitment, task, or follow up action mentioned, whether explicitly stated as an action item or implied through agreement. For each item, determine: (1) the specific task, (2) who is responsible based on context, (3) any deadline mentioned or implied, (4) the priority level based on how much discussion time it received and the tone of urgency. If responsibility is ambiguous, note it as "TBD" and include the context that makes it unclear. Exclude items that were discussed but explicitly rejected or deferred indefinitely. Deep Analysis can follow this level of nuance because its multi agent architecture allows for more reasoning depth per section. *** ## Who Should Use Deep Analysis [#who-should-use-deep-analysis] **Deep Analysis is recommended for experienced prompt engineers.** People who are comfortable writing detailed, specific instructions and iterating on prompt quality. The richer the instructions, the better the output. ### For Beginners [#for-beginners] If you're new to prompt engineering or protocol creation, we recommend: 1. **Start with the AI assistant.** Describe what you need and let it generate the protocol structure. 2. **Use Simple protocols first.** Get familiar with how sections, instructions, and output types work. 3. **Graduate to Deep Analysis** once you're comfortable refining prompts and understand what level of detail produces the best results. 4. **Upload a Document Template.** If you already have a meeting template, minutes format, or any reference document, you can upload it and the Optiverse team will help you build your protocol inside the software. 5. **Contact our team at [support@optiverse.ai](mailto:support@optiverse.ai).** We can help you build optimized Deep Analysis templates for your specific use case. Upload Document Template option: Import your existing document and convert it to a protocol ### For Experienced Users [#for-experienced-users] If you're comfortable with prompt engineering: * Write detailed, multi sentence instructions per section * Specify edge cases and how to handle ambiguity * Define the reasoning logic you want the AI to follow * Use the global description to set overarching analytical standards * Iterate by testing on diverse meetings and refining based on results *** ## Processing Time and Credits [#processing-time-and-credits] | Aspect | Simple Protocol | Deep Analysis | | --------------- | -------------------------- | ---------------------------------- | | Processing time | Seconds | 1–2 minutes | | AI credit usage | Standard | Higher (multi agent processing) | | Iteration speed | Fast, regenerate instantly | Slower, wait 1–2 min per iteration | **Iteration tip:** Build and refine your protocol structure using Simple mode first. Once you're satisfied with the sections and their basic output, switch to Deep Analysis for the final version. This avoids burning time and credits during the experimentation phase. *** ## Deep Analysis + Integrations [#deep-analysis--integrations] Deep Analysis protocols work with integrations just like Simple protocols. The structured output feeds into your connected systems. However, keep in mind: * **Tables** are best suited for display on the recording page and PDF/Word export. Some CRM integrations may flatten table data. * **Extended text** works well for rich notes fields in CRM systems but may need to be truncated for short text fields. * For integration critical fields (dropdowns, numbers), the data type behavior is identical to Simple protocols. *** ## Example: Client Meeting Deep Analysis Protocol [#example-client-meeting-deep-analysis-protocol] | Section | Output Type | Instruction Summary | | ------------------- | ------------- | ----------------------------------------------------------------------- | | Executive Summary | Extended Text | Comprehensive overview of the meeting with context, outcomes, and tone | | Topics & Decisions | Table | Columns: Topic, Discussion Summary, Decision Made, Owner, Deadline | | Risk Factors | List | Identify risks, concerns, or red flags raised, explicitly or implicitly | | Relationship Health | Options | Classify: Strong / Stable / At Risk / Critical | | Detailed Next Steps | Table | Columns: Action, Responsible Party, Deadline, Priority, Dependencies | | Open Questions | List | Unresolved questions that need follow up before next meeting | # Verifying AI Accuracy (/docs/protocols-and-summaries/hallucination-elimination) AI generated summaries are powerful but not infallible. Optiverse provides tools to verify accuracy and correct issues before sharing externally. ## Source Verification [#source-verification] Every data point in a protocol summary **links back to its source** in the transcript. Click any reference to jump to the exact moment in the recording where that information was stated. This makes it straightforward to verify any claim, action item, or decision before acting on it. ## Accuracy Considerations [#accuracy-considerations] **Non deterministic output.** Regenerating the same protocol on the same transcript may produce slightly different wording. The substance should remain consistent, but phrasing can vary. **Speaker attribution.** If transcript speaker labels are wrong (e.g., Person A's statements attributed to Person B), the protocol will inherit those errors. Fix speaker labels in the transcript first, then regenerate the protocol. **Transcription quality.** Transcript accuracy is affected by audio quality, overlapping speech, accents, and domain specific terminology. Even with 80% transcript accuracy, protocol output is usually solid. The AI model understands context well enough to produce meaningful summaries and can often infer correct meaning from imperfect transcriptions. Use the **Custom Dictionary** to fix recurring misrecognitions of industry terms, company names, or jargon. The dictionary trains the transcription model to recognize your specific vocabulary. ## Verification Tools [#verification-tools] **Editable output.** Every protocol summary is fully editable. Correct any errors directly in the output before sharing or exporting. **OptiAgent chat.** The AI chat on each meeting page lets you ask verification questions like *"Did we agree on a June deadline?"* or *"Who said they'd handle the follow up?"*. OptiAgent will find and cite the exact moment in the recording. **Source links.** Click through to verify numbers, dates, and commitments directly against the recording. ## Best Practices [#best-practices] 1. Always review before external sharing, especially action items with deadlines and responsible parties 2. Fix speaker labels early. Correct attribution upstream prevents errors downstream 3. Add terms to the Custom Dictionary to reduce recurring transcription issues 4. Use source links for critical data points Speaker confusion is more likely when people talk over each other. In these cases, verify attribution of important action items using the source links before distributing notes. # Protocols & Summaries (/docs/protocols-and-summaries) Protocols are customizable summary templates that define what data to extract from your meetings and how to format it. They turn raw transcripts into structured, actionable output that can feed directly into your CRM, task management tools, or team communication channels. Protocol Templates page in Optiverse **Not sure if you need protocols?** If you have generalist workflows without fine grained structure, don't need to track specific data at scale across meetings, and aren't tied to templated documentation processes, you can skip protocols entirely and use the [OptiAgent on the home page](/docs/optiagent-and-knowledge-hub/what-is-optiagent) to find anything you need from your meetings on demand. ## Who Benefits Most from Protocols [#who-benefits-most-from-protocols] * Teams that follow repeatable meeting structures (e.g., sales calls, standups, client reviews) * Organizations that need to push standardized data into external systems (CRM fields, project boards) * Managers tracking specific metrics, decisions, or action items at scale across many meetings * Anyone bound by documentation processes or compliance requirements ## Section Overview [#section-overview] Understand what protocol templates are, why they exist, and whether you need them. Build protocols using AI generation, PDF attachments, or manual section by section editing. Multi agent processing for detailed, formatted analysis with tables and extended outputs. Browse ready made templates for common meeting types and industries. # Protocol Gallery (/docs/protocols-and-summaries/protocol-gallery) The Protocol Gallery (also called the Protocol Marketplace) is a library of ready made templates for common meeting types. Browse by category, preview the structure of any template, and add it to your workspace to start using it immediately or customize it further. Protocol Marketplace showing available templates organized by category: All, Sales, Operations, Recruitment, Leadership, Other ## How to Use the Gallery [#how-to-use-the-gallery] 1. Open the **Protocol Gallery** from the Protocols page or from the creation options when you click "Create from Template" 2. Browse templates by category (Sales, Operations, Recruitment, Leadership, Other) 3. Click on any template to preview its sections and structure 4. Click **Add to my protocols** at the bottom of the preview to add it to your workspace Add to my protocols button at the bottom of a template preview Once added, the template becomes fully editable in your workspace. You can adjust sections, rewrite instructions, change output types, or rename it to match your conventions. *** ## Available Templates [#available-templates] ### Deep Analysis Protocols [#deep-analysis-protocols] These templates use multi agent processing and produce richer, more detailed output: **Action Decision Extraction Protocol.** Extracts structured action items and decisions from any meeting. We recommend adapting it to your needs and saving it locally for best results. **Team Update / Check In Protocol.** Ideal for team meetings. Produces a summary per participant of their update, blockers, and contributions. ### Sales & Client Meeting Frameworks [#sales--client-meeting-frameworks] **MEDDIC for Sales.** Built around the MEDDIC qualification methodology. Extracts Metrics, Economic Buyer, Decision Criteria, Decision Process, Identify Pain, and Champion from sales calls. **BANT for Sales.** Qualification protocol based on the BANT framework. Extracts Budget, Authority, Need, and Timeline. **SPICED Framework.** For customer meetings. Extracts Situation, Pain, Impact, Critical Event, and Decision criteria. **Intro Call.** Works for first time introduction meetings of any kind. Captures participant descriptions, outcomes, and main topics discussed. ### Operations & Leadership [#operations--leadership] **Board Meeting.** Structured for formal board meetings with agenda tracking, approval of previous minutes, and transcript analysis. **General Meeting Summary.** Works for any meeting type. Produces a detailed overview, main mentioned topics, and key action items. ### Customer Research & Interviews [#customer-research--interviews] **Gabor Granger Pricing Protocol.** Designed for customer interviews focused on evaluating pricing sensitivity, product feedback, perceived value, and willingness to pay. ### Recruitment [#recruitment] **Job Interview.** Ideal for hiring. Covers introduction, candidate background, technical skills and knowledge, and additional evaluation areas. *** ## Customizing Gallery Templates [#customizing-gallery-templates] All gallery templates are starting points. After adding a template to your workspace: * Edit instructions to match your specific terminology and requirements * Add or remove sections as needed * Change output data types to match your integration needs * Toggle Deep Analysis on or off depending on the level of detail you need *** ## When to Use Gallery Templates vs. AI Generation [#when-to-use-gallery-templates-vs-ai-generation] The gallery is useful when you want a quick starting point for a common meeting type. However, in most cases, **prompting the AI assistant directly will produce better templates** that fit your specific needs more deeply. The AI assistant can tailor every section, instruction, and output type to your exact workflow, terminology, and integration requirements. Gallery templates are generic by design. AI generated templates are personalized from the start. **Our recommendation:** * Use gallery templates when you need something working in 30 seconds and plan to customize later * Use AI generation when you want the best fit for your specific use case from the start * Combine both: start from a gallery template, then ask the AI assistant to refine it based on your needs # What Are Protocols? (/docs/protocols-and-summaries/what-are-protocols) ## Why Protocols Exist [#why-protocols-exist] Every meeting produces information. Decisions, action items, metrics, next steps. But without structure, that information stays buried in recordings and transcripts, requiring manual effort to extract and distribute. Protocols solve this by letting you define **what** you want to extract and **how** it should be formatted, once. From that point on, every meeting of that type is automatically summarized into a consistent, structured output that can be shared, exported, or pushed to external systems. ### When Protocols Are the Right Tool [#when-protocols-are-the-right-tool] Protocols are designed for teams and individuals who: * Run repeatable meeting types where the same kind of information needs to be captured each time * Need to track specific data points at scale (qualification criteria across sales calls, action items across project meetings) * Push meeting data into external systems (CRM fields, project boards, task managers) where consistency matters * Follow documentation or compliance processes that require templated outputs ### When You Can Skip Protocols Entirely [#when-you-can-skip-protocols-entirely] If your workflow is generalist, meaning you don't follow rigid meeting structures, you don't need to track specific metrics at scale, and you're not feeding data into external systems, you may not need protocols at all. In that case, the [OptiAgent on the home page](/docs/optiagent-and-knowledge-hub/what-is-optiagent) is likely all you need. It lets you search across all your meetings, ask questions, and get answers on demand without any template setup. *** ## What Is a Protocol Template? [#what-is-a-protocol-template] A protocol template is the skeleton, or recipe, behind what you want to extract from a given meeting. You define the structure once, and the AI fills it in after every meeting that uses that protocol. Each template consists of one or more **sections** (sometimes called paragraphs or blocks). For each section, you define: * **Title.** The heading that appears in the output. * **Instructions.** A prompt telling the AI what to extract or analyze for this section. * **Output data type.** How the result should be formatted (text, list, number, options, table). The combination of sections, instructions, and output types creates a reusable recipe that produces consistent, predictable output regardless of which meeting it's applied to. *** ## Two Types of Protocols [#two-types-of-protocols] Optiverse offers two types of protocol templates, each suited to different use cases and complexity levels: ### Simple (Normal) Protocols [#simple-normal-protocols] Fast, surface level extraction equivalent to OptiAgent's short/fast mode. Processes in seconds. Best for quick overviews and high level meeting summaries where you want an easy to read output without deep complexity. [Learn more about Creating Protocols →](/docs/protocols-and-summaries/creating-custom-protocols) ### Deep Analysis Protocols [#deep-analysis-protocols] Multi agent processing that produces detailed, formatted analysis with tables, extensive text, and granular data extraction. Takes 1–2 minutes. Recommended for complex use cases and experienced prompt engineers. [Learn more about Deep Analysis Protocols →](/docs/protocols-and-summaries/deep-analysis-protocols) *** ## Protocols as the Foundation for Integrations [#protocols-as-the-foundation-for-integrations] Protocol output isn't just for reading. It's the structured data layer that powers your integrations. When a protocol generates a summary, that structured output (with its defined data types per section) can be: * Pushed to a **CRM system** (e.g., HubSpot, Salesforce) to update deal fields, log activities, or create contacts * Sent to **task management software** (e.g., Jira, Asana) to create tasks with owners and deadlines * Delivered to **communication tools** (e.g., Microsoft Teams, Slack) as formatted messages * Exported as **PDF or Word documents** for archival or external sharing The data types you define in your protocol sections (text, number, list, predefined options) ensure the output maps cleanly to the input fields expected by your external systems. **How this works in practice:** 1. Meeting is recorded and transcribed 2. Your protocol processes the transcript 3. Each section produces output in its defined data type 4. That structured output is available to push to integrations Your output data types map directly to the field types in your external systems. A "Deal Stage" section with predefined options maps to a dropdown in your CRM. A "Budget" section with number output maps to a numeric field. A "Next Steps" section with bullet points maps to a task list. This is how protocols bridge the gap between unstructured meeting conversations and structured business systems. *** ## Key Capabilities [#key-capabilities] * **Source linking.** Every data point in the output links back to its source in the transcript and video. Click any reference to jump to the exact moment. * **Editable output.** Correct anything in the generated summary before sharing or exporting. * **Language control.** Set a protocol to always output in a specific language, or let it follow the meeting language. * **Multiple protocols per meeting.** Apply several protocols to the same recording (e.g., one for CRM logging, another for internal debrief). * **Personal or shared.** Keep protocols private or share them across your organization. * **Reprocessing.** Apply any protocol to any past recording at any time. See [Switching Between Protocols](#switching-between-protocols-on-a-recording) below. *** ## Common Use Cases [#common-use-cases] | Meeting Type | Protocol Approach | | -------------------------- | ----------------------------------------------------- | | Sales calls (MEDDIC, BANT) | Simple or Deep Analysis with CRM integration | | Team standups | Simple protocol with bullet point output | | Client meetings | Deep Analysis with table of topics, owners, deadlines | | Interviews & scorecards | Deep Analysis with predefined scoring options | | Management reviews | Deep Analysis with department level summaries | | Quick daily syncs | Simple protocol with short text output | You can apply any protocol to any past recording at any time, not just new meetings. *** ## Setting Your Default Protocol [#setting-your-default-protocol] Set a default protocol so Optiverse automatically generates a summary after every meeting, no manual action needed. 1. Go to the **Protocols** page 2. Find the protocol you want as your default 3. Click the **star/default icon** on that protocol The **Default** badge indicates which protocol currently runs automatically after each meeting. ### Overriding the Default Per Meeting [#overriding-the-default-per-meeting] You can override the default for specific upcoming meetings: 1. Go to the **Calendar** page 2. Each upcoming meeting shows which protocol will be used 3. Click the protocol name to change it for that specific meeting **Example:** Your default is "Daily Brief Summary" for most meetings, but for client calls you switch to "Salesforce Contact Report" before the meeting starts. Per meeting overrides only apply to that single meeting. All other meetings continue using the default. ### Organization Wide Defaults [#organization-wide-defaults] Admins can set an organization wide default protocol that applies to all users in the workspace. Individual users can still override this on their own level unless the admin locks the setting. | Setting Level | Who Controls It | Can Be Overridden? | | -------------------- | --------------- | ------------------- | | Organization default | Admin | Yes (unless locked) | | User default | Individual user | Yes, per meeting | | Per meeting override | Individual user | N/A | *** ## Switching Between Protocols on a Recording [#switching-between-protocols-on-a-recording] The default protocol generates automatically, but any user can load different protocols on the same meeting at any time: 1. Open the **protocol dropdown** (top of the summary area) 2. Browse all available protocols in your workspace 3. Select a different protocol 4. Click **Generate** to produce a new summary using that protocol Multiple protocol summaries can coexist on the same recording without affecting anyone else's view. This also means you can apply any protocol to any past recording, not just new meetings. Common reasons to reprocess: * You created a better template and want to re summarize older meetings with it * A colleague shares a meeting and you want your preferred summary format applied * You need both a brief overview and a detailed analysis of the same meeting The protocol currently **displayed** on the recording page is the one that can be pushed to integrations (Teams, task management, CRM) and the one available for export. If you want to send or download a different protocol's output, switch to it first. **Fix speaker labels before regenerating.** If speaker attribution is wrong in the transcript, correct the labels first. Otherwise the protocol will attribute actions and decisions to the wrong people. Don't just edit the summary, fix the source and regenerate. Each protocol generation counts toward your AI credit usage quota, whether it's a first generation or a reprocess. *** ## Exporting and Sharing Protocol Summaries [#exporting-and-sharing-protocol-summaries] The generated protocol summary on any recording page can be exported: * **PDF.** Download a formatted PDF of the full protocol output for sharing or archival. * **Word (.docx).** Download as an editable Word document. Download dropdown showing Download PDF and Download DOC options Protocol output can also be pushed directly to connected tools: * **Microsoft Teams.** Send the summary to a Teams channel. * **Task management.** Push action items to Jira, Asana, or other connected tools. * **CRM.** Log structured data to HubSpot, Salesforce, or other CRM systems. See the [Integrations](/docs/integrations-and-workflows) section for setup instructions. # Resources (/docs/resources) In-depth guides, comparisons, and real-world case studies to help you get the most from Optiverse. Optiverse for Sales, CS, PMs, and Executives. See how Optiverse compares to alternatives. Real results from real teams. Best practices for meetings and workflows. # Data Hosting & Infrastructure (/docs/security-and-compliance/data-hosting) Optiverse hosts all customer data within the European Union, specifically in **Switzerland (Zurich)** and **Germany (Frankfurt)**. Your meeting data, recordings, transcripts, and AI-generated outputs remain within these regions at all times. ## Infrastructure [#infrastructure] Optiverse runs on a combination of **Microsoft Azure** (Zurich) for AI processing, **AWS** (Zurich, Frankfurt) for general infrastructure, and **Supabase** (EU regions) for database services. | Component | Location | | ------------------------- | -------------------------------------------------------------- | | AI model inference (LLMs) | **Microsoft Azure, Zurich, Switzerland** | | Data storage | AWS Zurich, Switzerland / AWS Frankfurt, Germany | | Database | Supabase EU (HIPAA-compliant) | | Processing & compute | AWS EC2 instances (Zurich / Frankfurt) | | Transcription services | Internal EC2 instances within Optiverse-controlled environment | ## Swiss-Based AI Processing [#swiss-based-ai-processing] All AI models (LLMs) used by Optiverse run on **Microsoft Azure's Swiss data centers in Zurich**. This means: * Your meeting data is **never sent to the US** for AI processing * LLM inference happens locally in Zurich * We do not use US-hosted API endpoints for AI model calls This is the same Azure infrastructure used by major Swiss financial institutions. Your data stays in Switzerland for all AI processing. ## What This Means for Your Organization [#what-this-means-for-your-organization] * **Data residency**: All data is stored exclusively in Switzerland or Germany * **No US routing**: Your data is not routed to US servers or US-hosted API endpoints * **Regulatory compliance**: Meets Swiss FADP, GDPR, and supports HIPAA-compliant workflows via Supabase * **Internal processing**: Transcription and compilation services run on EC2 instances within the Optiverse-controlled environment ## Security Measures [#security-measures] Optiverse maintains comprehensive technical and organizational security measures: * **Encryption in transit**: TLS 1.3 * **Encryption at rest**: AES-256 * **Authentication**: Short-lived, signed JWT tokens * **Access control**: Role-based access control (RBAC) and Supabase Row-Level Security (RLS) * **Video access**: Pre-signed URLs with limited validity * **Backups**: Daily backups with geo-redundant storage * **Key rotation**: Every 90 days via AWS Key Management Service (KMS) * **CI/CD security**: Pipeline security validation, including daily RLS policy checks ## Data Deletion [#data-deletion] | Data type | Deletion timeline | | ------------------------------------- | -------------------------------------------------------------------------- | | Textual data (transcripts, summaries) | Within 24 hours of account or meeting deletion | | Video recordings | Retained up to 30 days post-deletion for recovery, then permanently erased | | Access credentials and tokens | Revoked immediately | | Audit logs | Anonymized logs may be retained for compliance | ## Compliance and Certifications [#compliance-and-certifications] * **GDPR-compliant** and aligned with Swiss FADP * **ISO 27001** certification (in progress, expected Q2 2026) * Supabase is **HIPAA-compliant** * Security practices are regularly reviewed and updated to reflect legal and industry requirements \[Screenshot: Architecture diagram showing data flow within Swiss and German infrastructure] ## Enterprise Documentation [#enterprise-documentation] Enterprise customers can request additional documentation, including: * Detailed architecture diagrams * Full Security Overview document * Data Processing Agreement (DPA) * Subprocessor list Contact [security@optiverse.ai](mailto:security@optiverse.ai) or your account manager to request these materials. # Data Retention & Deletion (/docs/security-and-compliance/data-retention) Optiverse gives you full control over how long your meeting data is retained. By default, data is stored indefinitely until you choose to delete it, because your recordings form the knowledge base that powers cross-meeting queries and insights. ## Default Retention [#default-retention] Recordings and transcripts are stored **indefinitely by default**. This is intentional: the majority of customers keep their data because it forms the foundation of OptiAgent's cross-meeting intelligence. The more meeting history you retain, the more powerful cross-meeting queries become. OptiAgent can reference past conversations, track decisions over time, and identify patterns across hundreds of meetings. ## Manual Deletion [#manual-deletion] Users can delete individual recordings at any time. Optiverse offers two deletion scopes: * **Delete for me**: removes the recording from your view only. Other users with access are unaffected. * **Delete for everyone**: permanently deletes the recording for all users. Only available to recording owners (original meeting attendees). Bulk deletion is also available from the recordings list, though bulk actions are limited to "Delete for me" only. For a full guide on how deletion works, ownership rights, and step-by-step instructions, see [Deleting Recordings](/docs/how-recording-works/deleting-recordings). \[Screenshot: Delete button on a recording page] ## Auto-Deletion Policies [#auto-deletion-policies] Organization admins can configure automatic deletion policies to remove recordings older than a specified period: * 6 months * 12 months * 18 months * Custom periods (enterprise) Once configured, recordings that exceed the retention period are automatically queued for deletion. \[Screenshot: Auto-deletion policy settings in admin panel] ## What Happens After Deletion [#what-happens-after-deletion] Deletion timelines depend on the data type: | Data type | Deletion timeline | | -------------------------------------------- | ------------------------------------------------------------ | | Textual data (transcripts, summaries, notes) | Within 24 hours | | Video recordings | Retained up to 30 days for recovery, then permanently erased | | Access credentials and tokens | Revoked immediately | After the retention period, data is permanently and irreversibly deleted from all systems. Only anonymized audit logs may be retained for compliance purposes. Once the archive period expires, data cannot be recovered. Make sure your deletion policies align with your organization's compliance requirements. ## Bulk Deletion [#bulk-deletion] You can select multiple recordings from the recordings list and delete them in one action. Bulk deletion always applies as "Delete for me" only, meaning other users retain access. For permanent deletion, recordings must be deleted individually by an owner. For step-by-step instructions on bulk deletion, see [Deleting Recordings](/docs/how-recording-works/deleting-recordings#bulk-deletion). Organizations that prefer periodic bulk cleanups rather than automated policies can also contact support for large-scale deletions. ## Disabling Video Storage [#disabling-video-storage] Organizations can **disable video recording** entirely at the org level. When disabled: * Only audio transcripts are stored * Significantly reduces storage usage * Fewer privacy concerns for participants * All AI features (summaries, search, OptiAgent) still work from the transcript ## What's Covered by Retention Policies [#whats-covered-by-retention-policies] All content types follow the same retention and deletion policies: * Meeting recordings (audio/video) * Transcripts * AI-generated summaries and action items * Uploaded files (PDFs, voice memos) * OptiAgent chat history for that recording ## Enterprise Custom Policies [#enterprise-custom-policies] Enterprise customers can request custom retention configurations, including: * Different retention periods per team or department * Compliance holds (prevent deletion during legal review) * Custom archive periods * Automated exports before deletion Contact your account manager to discuss custom retention needs. # Encryption (/docs/security-and-compliance/encryption) All data in Optiverse is protected with AES 256 encryption at rest and TLS 1.3 encryption in transit. Content for this page is being written. Check back soon for the complete guide. # Enterprise Security FAQ (/docs/security-and-compliance/enterprise-faq) Answers to the most common security questions we receive from enterprise buyers and their security teams. Content for this page is being written. Check back soon for the complete guide. # FADP (Swiss Federal Act) (/docs/security-and-compliance/fadp) As a Swiss company, Optiverse complies with the FADP (Bundesgesetz über den Datenschutz), providing one of the strongest data protection frameworks globally. Content for this page is being written. Check back soon for the complete guide. # GDPR & Privacy Compliance (/docs/security-and-compliance/gdpr) Optiverse is designed to be fully compliant with GDPR and Swiss data protection regulations. This page explains how consent works, what data is collected, and how participants' rights are respected. ## Two Recording Methods, Two Consent Models [#two-recording-methods-two-consent-models] Optiverse offers two ways to capture meeting content, each with different privacy implications: ### 1. Bot/Assistant Recording [#1-botassistant-recording] When the Optiverse bot joins a meeting, it acts as a visible participant and requires consent. **How consent is obtained:** * The bot appears as a **named participant** in the meeting (visible to everyone) * It sends a **chat message** announcing that the meeting is being recorded * Participants can see the bot and are aware recording is active For external meetings, a simple verbal confirmation is sufficient: "Is it okay if our note-taker joins? It will create minutes for both of us." This counts as valid consent. **If someone objects:** Simply remove the bot from the meeting (kick the participant). The recording stops immediately. ### 2. Desktop App Live Transcription [#2-desktop-app-live-transcription] The desktop app's live transcription feature is **GDPR-compliant without explicit consent**. This is legally equivalent to someone taking notes by hand during a meeting. * No audio recording is stored * Only the text transcript is generated and saved * No bot joins the meeting. It runs locally on your device. ## Data Protection Principles [#data-protection-principles] | Principle | How Optiverse Complies | | ------------------ | ------------------------------------------------------------- | | Purpose limitation | Data is used only for meeting documentation and AI assistance | | Data minimization | Only meeting audio/video and generated transcripts are stored | | No AI training | User data is **never** used to train AI models | | Right to erasure | Users can delete recordings at any time | | Storage limitation | Auto-deletion policies available (6/12/18 months) | ## Data Deletion [#data-deletion] * Users can **delete individual recordings** at any time, either for themselves or for everyone (if they are a recording owner) * **Auto-deletion policies** can be configured by organization admins (e.g., delete everything older than 6, 12, or 18 months) * Textual data (transcripts, summaries) is deleted within **24 hours** * Video recordings are retained for up to **30 days** post-deletion (recoverable in case of accidental deletion), then permanently removed For a detailed guide on deletion options and recording ownership, see [Deleting Recordings](/docs/how-recording-works/deleting-recordings). MCP integrations (Salesforce, HubSpot, etc.) cannot delete data in external systems. This is blocked by design to prevent accidental data loss in connected platforms. ## Consent Best Practices [#consent-best-practices] **Internal meetings:** * Bot recording: The bot's presence and chat announcement serve as notification * Desktop transcription: No consent needed **External meetings:** * Announce verbally at the start: "We have a note-taker that will create minutes for both of us, is that okay?" * If anyone objects, remove the bot immediately * For desktop transcription: No announcement needed (equivalent to taking notes) ## Data Subject Rights [#data-subject-rights] Optiverse supports all GDPR data subject rights: * **Right to access**: Users can view and export their meeting data * **Right to erasure**: Delete recordings and transcripts at any time * **Right to restriction**: Pause processing by removing the bot * **Right to object**: Participants can request bot removal during meetings ## No AI Training on Your Data [#no-ai-training-on-your-data] Your meeting recordings, transcripts, and interactions with OptiAgent are never used to train or fine-tune AI models. Your data remains yours. # Trust Center (/docs/security-and-compliance) Optiverse security and compliance documentation now lives in the [Optiverse Trust Center](https://trust.optiverse.ai/). Use the Trust Center as the canonical source for security, privacy, compliance, and vendor documentation. ## What Moved [#what-moved] * Security and privacy overview * Certifications and audit posture * Data handling and retention details * Subprocessor and vendor information * Security contact and review materials ## Visit the Trust Center [#visit-the-trust-center] Open the live Trust Center here: [trust.optiverse.ai](https://trust.optiverse.ai/). If your procurement or IT team needs additional help, contact your Optiverse account team or reach out via [optiverse.ai/contact](https://optiverse.ai/contact). # ISO 27001 (/docs/security-and-compliance/iso-27001) ISO 27001 is the international standard for information security management systems (ISMS). Optiverse is currently pursuing ISO 27001 certification, expected by Q2 2026. ## What ISO 27001 Means [#what-iso-27001-means] ISO 27001 certification demonstrates that an organization has implemented a systematic approach to managing sensitive information, including: * Risk assessment and treatment processes * Security policies and procedures * Access control and authentication * Incident management * Business continuity planning * Regular internal audits ## Current Security Practices [#current-security-practices] Even ahead of formal certification, Optiverse already implements security practices aligned with ISO 27001 requirements: | Area | Practice | | --------------- | ----------------------------------------------------------- | | Encryption | TLS 1.3 in transit, AES-256 at rest | | Access control | RBAC, Row-Level Security, short-lived JWT tokens | | Key management | 90-day rotation via AWS KMS | | Infrastructure | AWS Zurich/Frankfurt, Supabase EU | | Monitoring | CI/CD pipeline security validation, daily RLS policy checks | | Backups | Daily, geo-redundant storage | | Data protection | GDPR and Swiss FADP alignment | | Personnel | Binding confidentiality obligations, need-to-know access | ## Audit Logs [#audit-logs] Optiverse maintains and protects audit logs as follows: | Log type | Retention | | -------------------------------- | --------- | | Authentication and security logs | 6 months | | Access, usage, and system logs | 3 months | | Administrative actions | 6 months | All logs are encrypted at rest. Access is restricted to authorized security personnel. ## Certification Timeline [#certification-timeline] Optiverse is actively working toward ISO 27001 certification with an expected completion date of **Q2 2026**. Upon certification, audit reports and certificates will be available to enterprise customers upon request. ## Request Documentation [#request-documentation] For detailed security documentation, including our full Security Overview, contact [security@optiverse.ai](mailto:security@optiverse.ai). # Responsible Disclosure (/docs/security-and-compliance/responsible-disclosure) If you discover a security vulnerability, please report it responsibly following our disclosure guidelines. Content for this page is being written. Check back soon for the complete guide. # Subprocessors (/docs/security-and-compliance/subprocessors) A complete list of third-party services that process data on behalf of Optiverse. Content for this page is being written. Check back soon for the complete guide. # Zero AI Training Policy (/docs/security-and-compliance/zero-ai-training) Your meeting data is yours. Optiverse has a strict zero AI training policy. Your transcripts, summaries, and recordings are never used to train or fine-tune any AI models. Content for this page is being written. Check back soon for the complete guide. # Team & Workspace Setup (/docs/team-and-workspace) A workspace is your organization's shared Optiverse environment. It's where team members collaborate, share recordings, and benefit from unified settings and pooled resources. ## Creating a Workspace [#creating-a-workspace] The **first person** to sign up from your organization creates the workspace. After that, others can join via: * **Invitation**: An admin sends them an email invite from the team page * **Domain auto-join**: Anyone with a matching email domain joins automatically when they create an account * **Shared link**: During onboarding, share the workspace link and users sign in to join directly Users are never forced into a workspace. They have to proactively create an account and join. Adding someone to the SSO group in Microsoft or Google does not send them a notification. *** ## Inviting Team Members [#inviting-team-members] To invite colleagues to your workspace: 1. Go to [**Settings → Organization → Team**](https://app.optiverse.ai/settings/people) 2. Enter their email addresses (you can add multiple, separated by commas) 3. Click **Invite** 4. They'll receive an invitation to join your workspace
Invite your Team members input field with Invite button
You can invite people with different email domains (e.g., contractors or agency partners). They don't need to be on the same domain. ### Domain auto-join [#domain-auto-join] If you want anyone with your company email domain to join the workspace automatically without needing an invitation, enable the **"Allow domain members to join workspace"** toggle from [Settings → Organization → Profile](https://app.optiverse.ai/settings/org-profile).
Accessibility setting showing Allow domain members to join workspace toggle enabled
When enabled, any user who signs up with a matching email domain (e.g., @yourcompany.com) is automatically added to your workspace. *** ## Roles [#roles] | Role | Capabilities | | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | **Owner** | Full control over the workspace, billing admin, can transfer ownership. Multiple owners allowed. | | **Admin** | Everything a member can do, plus: manage licenses, set org-wide settings, manage integrations, invite/remove users, view all usage statistics | | **Member** | Use Optiverse, manage own settings, record and share meetings, view own usage | *** ## Admin Team View [#admin-team-view] From the [Team page](https://app.optiverse.ai/settings/people), admins and owners can see a table of all workspace members with their current settings. The columns visible per user are: | Column | What it shows | | -------------- | ------------------------------------------------------------------------------------------ | | **Role** | Member, Admin, or Owner | | **Join rule** | How the bot joins meetings on behalf of this user (All Meetings, Explicitly Invited, etc.) | | **Email rule** | Who receives the email summary after this user's meetings (All Attendees, User Only, etc.) | | **Status** | Whether the user is Active |
Admin team view showing role, join rule, email rule, and status columns for each workspace member
### Overriding individual settings [#overriding-individual-settings] Admins can **modify any user's settings** directly from this table at any time. This is useful when: * A user has an unexpected setting and is confused about bot behavior * You need to troubleshoot why an email was sent to the wrong people * You want to quickly audit the entire team's configuration If someone reports unexpected behavior (e.g., "the bot joined a meeting it shouldn't have" or "the email went to the wrong people"), go to the Team page, find their row, and check their join rule and email rule. This will immediately explain what happened. *** ## Organization-Wide Settings [#organization-wide-settings] Admins can configure defaults that apply to all workspace members from [Settings → Organization → Profile](https://app.optiverse.ai/settings/org-profile). Organization-wide settings **always override** personal user settings. When an admin locks a setting, individual users cannot change it and will see "This is managed by your admin" on their settings page. ### Email recap policy [#email-recap-policy] Set who receives email summaries for the entire organization: * **All invitees**: Everyone in the meeting receives the email summary, including external participants * **My organization members**: Only members from your organization who were in the meeting receive it * **Only participants with an Optiverse account**: Only attendees who have an Optiverse account receive it
Email recap policy dropdown showing All invitees, My organization members, and Only participants with an Optiverse account options, with lock toggle
You can also **lock this setting** (toggle the lock icon) so individual users cannot change it. ### Organization agent name [#organization-agent-name] Define a bot name that applies to all users in your workspace (e.g., "YourCompany AI assistant"). If set, this overrides all individual user names. If you leave this empty, each user can customize their own agent name from their personal settings. The field will show "Individual agent names are currently used."
Organization Agent Name setting with PRO badge, showing input field and note that individual agent names are currently used
### Guest link access [#guest-link-access] Controls whether non-Optiverse users can view recordings via a shared link (public link sharing): * **Enabled**: Anyone with the meeting link (from the email) can view the recording without needing an Optiverse account * **Disabled**: Only users with Optiverse accounts can access recordings
Guest Access setting with PRO badge showing Control public link sharing toggle set to Enabled
This setting works at both the **organization level** (default for all meetings) and the **per-meeting level** (override for individual recordings). When guest access is enabled, the link in the email uses an access token. It's not a fully public URL, but anyone who receives the link can view the recording without logging in. ### Custom dictionary [#custom-dictionary] Add terms to improve transcription accuracy. Include industry-specific words, product names, abbreviations, or acronyms that the AI might not recognize correctly.
Custom Dictionary setting with PRO badge showing Add terms to improve transcription accuracy, with example terms and Apply button
Type each term and press Enter to add it. Click **Apply** to save your changes. ### Meeting recording output [#meeting-recording-output] Admins can choose what internal meetings capture: **Video** or **Audio** only.
Meeting Recording Output setting with BUSINESS badge showing Video and Audio toggle options for internal meetings
When set to Audio: * Only audio is captured in all meetings * Meeting pages show audio playback without video * This cannot be overridden by individual users *** ## SSO and Access Control [#sso-and-access-control] All login goes through Microsoft or Google SSO. There is no way to bypass this with a manual email entry. This means: * **Removing access** is as simple as revoking the app in your Azure/Google enterprise console * **Group access** is fully supported on the Microsoft side, including nested groups * No separate user management needed on the Optiverse side for access control *** ## License Management [#license-management] ### Pooled resources [#pooled-resources] Licenses and meeting minutes are **pooled across the entire workspace**, not limited per user. For example: * 10 users × 15,000 minutes each = **150,000 minutes shared** across all 10 users * If one user is more active and another is less active, the balance evens out naturally This is similar to Microsoft cloud storage pooling. No individual user hits a limit as long as the workspace has capacity. ### Available licenses and upgrading [#available-licenses-and-upgrading] At the top of the [Team page](https://app.optiverse.ai/settings/people), admins can see how many licenses are available and manage them.
Available licenses indicator showing 0/7 and Manage Licenses button
Click **Manage Licenses** to upgrade your plan or add more licenses. See the [Pricing page](https://app.optiverse.ai/PRICING) for available plans. ### Assigning and unassigning licenses [#assigning-and-unassigning-licenses] Licenses are **not attached to specific users**. If someone leaves your organization or no longer needs Optiverse, you can reassign their license immediately. To unassign a license, click the **three dots (⋯)** next to the user's profile on the Team page:
Dropdown menu showing Unassign License and Remove from organization options
* **Unassign License**: Frees up the license for another team member * **Remove from organization**: Removes the user entirely from your workspace ### License types [#license-types] | License | Features | | ------------------------------------------------ | ----------------------------------------------------------- | | **Free** | Limited recordings and features | | **[Pro](https://app.optiverse.ai/PRICING)** | Full access to all core features | | **[Business](https://app.optiverse.ai/PRICING)** | Pro features + Salesforce integration and advanced controls | ### What happens when you reach your limits? [#what-happens-when-you-reach-your-limits] If your workspace reaches its storage or minutes limit, you have several options: 1. **Bulk delete meetings**: It's easy to select and delete multiple recordings at once to free up space. See [Deleting Recordings](/docs/how-recording-works/deleting-recordings#bulk-deletion) for how to use bulk selection. 2. **Auto-delete policies**: Organizations can set meetings to be automatically deleted after 6, 12, or 18 months 3. **Assisted cleanup**: Our team can help you bulk delete recordings using smart keyword search across meeting titles. Reach out to [support@optiverse.ai](mailto:support@optiverse.ai) 4. **Pay-as-you-go**: If you want to preserve all your meeting knowledge and keep recordings accessible, you can activate pay-as-you-go usage beyond your plan limits You're never locked out or forced into an upgrade. These are simply options to manage your workspace the way that works best for your team. *** ## Usage Statistics [#usage-statistics] ### For admins [#for-admins] Admins can see workspace-wide usage from [Settings → Organization → Usage](https://app.optiverse.ai/settings/org-usage), with summary cards at the top and a per-person breakdown below:
Organization Usage dashboard showing total minutes, AI credits, and storage at the top, per-user breakdown table, and Activity Over Time charts
The dashboard shows: | Metric | What it tracks | | -------------- | -------------------------------------------------- | | **Minutes** | Total meeting minutes processed per user | | **AI credits** | AI processing usage (summaries, OptiAgent queries) | | **Storage** | Storage consumed by each user's recordings | The right panel shows **Activity Over Time** with charts for meeting minutes per day and meetings recorded per day, helping admins spot trends and plan capacity. Admins can also see the **Organization Storage** total in the top-right corner. ### For individual users [#for-individual-users] Each user can see their own consumption from [Settings → Usage](https://app.optiverse.ai/settings/usage), showing percentage gauges for Meeting Minutes, AI Credits, and Storage, along with historical usage over time.
Individual usage dashboard showing Meeting Minutes, AI Credits, and Storage gauges with percentage and actual values, plus Historical Usage chart with time range filters
Individual users cannot see other users' statistics. # API Reference (/docs/integrations-and-workflows/api-and-webhooks/api-reference) This page documents all available endpoints, parameters, response formats, and error codes for the Optiverse User API. **For tooling & automation:** Download the OpenAPI 3.1 specification to import into Postman, generate typed SDKs, or use with any OpenAPI-compatible tool. ## Base URL [#base-url] ``` https://api.optiverse.ai/external-api ``` All endpoints are relative to this base URL. ## Quick Start [#quick-start] Get your first transcript in three steps: 1. [Create an API key](/api-reference/authentication) in your profile settings. 2. Call `GET /v1/list-records` to find your meetings. 3. Call `GET /v1/transcript/:recordId` with a record ID from step 2. *** ## List Meeting Records [#list-meeting-records] Retrieve a paginated list of meeting records accessible to your API key. ``` GET /v1/list-records ``` ### Query Parameters [#query-parameters] | Parameter | Type | Required | Default | Description | | ---------- | ------- | -------- | ------- | ----------------------------------------- | | `limit` | integer | No | 50 | Number of records to return (max: 100) | | `offset` | integer | No | 0 | Number of records to skip for pagination | | `dateFrom` | string | No | none | Filter records from this date (ISO 8601) | | `dateTo` | string | No | none | Filter records until this date (ISO 8601) | ### Response [#response] ```json { "success": true, "data": [ { "recordId": "54e7e4e4-4417-4662-90db-18456f71ecbb", "role": "owner", "ownerEmail": "user@example.ai", "meetingTitle": "Team Standup", "startDate": "2025-01-14T10:00:00Z", "endDate": "2025-01-14T10:30:00Z", "attendees": [ { "name": "John Doe", "email": "john@example.ai" } ], "createdAt": "2025-01-14T10:00:00Z" } ], "pagination": { "total": 150, "limit": 50, "offset": 0, "hasMore": true } } ``` ### Code Examples [#code-examples] #### cURL [#curl] ```bash curl -X GET "https://api.optiverse.ai/external-api/v1/list-records?limit=10&dateFrom=2025-01-01T00:00:00Z" \ -H "Authorization: Bearer optiuser_v1_your_key_here" ``` #### JavaScript [#javascript] ```javascript const API_KEY = process.env.OPTIVERSE_API_KEY; const BASE_URL = "https://api.optiverse.ai/external-api"; const response = await fetch( `${BASE_URL}/v1/list-records?limit=10&offset=0&dateFrom=2025-01-01T00:00:00Z`, { headers: { "Authorization": `Bearer ${API_KEY}` } } ); const { data, pagination } = await response.json(); console.log(`Found ${pagination.total} records`); ``` #### Python [#python] ```python import os import requests API_KEY = os.environ["OPTIVERSE_API_KEY"] BASE_URL = "https://api.optiverse.ai/external-api" response = requests.get( f"{BASE_URL}/v1/list-records", headers={"Authorization": f"Bearer {API_KEY}"}, params={"limit": 10, "dateFrom": "2025-01-01T00:00:00Z"} ) data = response.json() print(f"Found {data['pagination']['total']} records") ``` *** ## Get Meeting Transcript [#get-meeting-transcript] Retrieve the full transcript for a specific meeting record. ``` GET /v1/transcript/:recordId ``` ### Path Parameters [#path-parameters] | Parameter | Type | Required | Description | | ---------- | ---- | -------- | ------------------------------------------- | | `recordId` | UUID | Yes | The unique identifier of the meeting record | ### Response [#response-1] ```json { "success": true, "data": { "recordId": "54e7e4e4-4417-4662-90db-18456f71ecbb", "metadata": { "meetingTitle": "Team Standup", "startDate": "2025-01-14T10:00:00Z", "endDate": "2025-01-14T10:30:00Z", "attendees": [ { "name": "John Doe", "email": "john@example.ai" } ] }, "transcript": "[John Doe]:\nHello everyone, let's start our standup meeting...\n\n[Jane Smith]:\nGood morning! Yesterday I completed..." } } ``` ### Code Examples [#code-examples-1] #### cURL [#curl-1] ```bash curl -X GET "https://api.optiverse.ai/external-api/v1/transcript/54e7e4e4-4417-4662-90db-18456f71ecbb" \ -H "Authorization: Bearer optiuser_v1_your_key_here" ``` #### JavaScript [#javascript-1] ```javascript const API_KEY = process.env.OPTIVERSE_API_KEY; const BASE_URL = "https://api.optiverse.ai/external-api"; async function getTranscript(recordId) { const response = await fetch(`${BASE_URL}/v1/transcript/${recordId}`, { headers: { "Authorization": `Bearer ${API_KEY}` } }); if (!response.ok) { if (response.status === 404) { console.error("Record not found or access denied"); } else if (response.status === 400) { console.error("Invalid record ID format"); } return null; } const { data } = await response.json(); console.log(`Meeting: ${data.metadata.meetingTitle}`); return data; } ``` #### Python [#python-1] ```python import os import requests API_KEY = os.environ["OPTIVERSE_API_KEY"] BASE_URL = "https://api.optiverse.ai/external-api" def get_transcript(record_id): response = requests.get( f"{BASE_URL}/v1/transcript/{record_id}", headers={"Authorization": f"Bearer {API_KEY}"} ) if response.status_code == 404: print("Record not found or access denied") return None data = response.json()["data"] print(f"Meeting: {data['metadata']['meetingTitle']}") return data ``` *** ## List Protocol Templates [#list-protocol-templates] Retrieve all protocol templates available on your account. Each template produces either **structured** (JSON) or **unstructured** (Markdown) summaries. ``` GET /v1/protocol-templates ``` ### Response [#response-2] ```json { "success": true, "data": [ { "protocolId": "b7c4c322-2fd4-474b-8937-b46ff465e0af", "title": "Meeting Minutes", "description": "Extracts action items and decisions", "summaryType": "structured", "managedBy": "optiverse", "createdAt": "2025-03-01T12:00:00Z" }, { "protocolId": "eefc041d-58ea-4f8f-9119-fd4e9315ff0e", "title": "Executive Summary", "description": "Free-form markdown summary", "summaryType": "unstructured", "managedBy": "user", "createdAt": "2025-06-15T09:00:00Z" } ] } ``` ### Key Fields [#key-fields] | Field | Description | | ------------- | ---------------------------------------------------------------------------------------------------- | | `protocolId` | Use this ID when fetching summaries | | `summaryType` | `"structured"` → use `/v1/summaries/structured`. `"unstructured"` → use `/v1/summaries/unstructured` | | `managedBy` | `"optiverse"` for built-in templates, `"user"` for custom ones | ### Code Examples [#code-examples-2] #### cURL [#curl-2] ```bash curl -X GET "https://api.optiverse.ai/external-api/v1/protocol-templates" \ -H "Authorization: Bearer optiuser_v1_your_key_here" ``` #### JavaScript [#javascript-2] ```javascript const response = await fetch(`${BASE_URL}/v1/protocol-templates`, { headers: { "Authorization": `Bearer ${API_KEY}` } }); const { data } = await response.json(); data.forEach(t => console.log(`${t.title} → ${t.summaryType}`)); ``` *** ## Get Structured Summaries [#get-structured-summaries] Fetch JSON summaries (Q\&A sections) generated by a **structured** protocol template. Use this endpoint when the template has `summaryType: "structured"`. ``` GET /v1/summaries/structured ``` ### Query Parameters [#query-parameters-1] | Parameter | Type | Required | Default | Description | | ------------ | ------- | -------- | ------- | --------------------------------- | | `protocolId` | UUID | Yes | — | Protocol template ID | | `recordId` | UUID | No | none | Filter to a specific meeting | | `dateFrom` | string | No | none | Filter from this date (ISO 8601) | | `dateTo` | string | No | none | Filter until this date (ISO 8601) | | `limit` | integer | No | 20 | Max results (max: 50) | | `offset` | integer | No | 0 | Skip results for pagination | ### Response [#response-3] ```json { "success": true, "data": [ { "recordId": "bd435e76-0eb1-432f-91a8-b4fed18744aa", "createdAt": "2026-04-10T14:30:00Z", "sections": [ { "title": "Action Items", "question": "What are the action items from this meeting?", "answerType": "text", "answers": [ { "answer": "John will prepare the Q2 report by Friday", "referenceIds": [12, 45] } ] } ] } ], "pagination": { "total": 8, "limit": 20, "offset": 0 } } ``` ### Code Examples [#code-examples-3] #### cURL [#curl-3] ```bash curl -X GET "https://api.optiverse.ai/external-api/v1/summaries/structured?protocolId=b7c4c322-2fd4-474b-8937-b46ff465e0af&limit=10" \ -H "Authorization: Bearer optiuser_v1_your_key_here" ``` #### JavaScript [#javascript-3] ```javascript const response = await fetch( `${BASE_URL}/v1/summaries/structured?protocolId=${protocolId}&limit=10`, { headers: { "Authorization": `Bearer ${API_KEY}` } } ); const { data, pagination } = await response.json(); console.log(`${pagination.total} summaries found`); ``` *** ## Get Unstructured Summaries [#get-unstructured-summaries] Fetch Markdown summaries generated by an **unstructured** protocol template. Use this endpoint when the template has `summaryType: "unstructured"`. ``` GET /v1/summaries/unstructured ``` ### Query Parameters [#query-parameters-2] | Parameter | Type | Required | Default | Description | | ------------ | ------- | -------- | ------- | --------------------------------- | | `protocolId` | UUID | Yes | — | Protocol template ID | | `recordId` | UUID | No | none | Filter to a specific meeting | | `dateFrom` | string | No | none | Filter from this date (ISO 8601) | | `dateTo` | string | No | none | Filter until this date (ISO 8601) | | `limit` | integer | No | 20 | Max results (max: 50) | | `offset` | integer | No | 0 | Skip results for pagination | ### Response [#response-4] ```json { "success": true, "data": [ { "recordId": "bd435e76-0eb1-432f-91a8-b4fed18744aa", "createdAt": "2026-04-10T14:30:00Z", "summary": "## Meeting Summary\n\nThe team discussed the Q2 roadmap...\n\n### Next Steps\n- John: prepare hiring plan\n- Sarah: finalize designs" } ], "pagination": { "total": 3, "limit": 20, "offset": 0 } } ``` ### Code Examples [#code-examples-4] #### cURL [#curl-4] ```bash curl -X GET "https://api.optiverse.ai/external-api/v1/summaries/unstructured?protocolId=eefc041d-58ea-4f8f-9119-fd4e9315ff0e" \ -H "Authorization: Bearer optiuser_v1_your_key_here" ``` #### Python [#python-2] ```python response = requests.get( f"{BASE_URL}/v1/summaries/unstructured", headers={"Authorization": f"Bearer {API_KEY}"}, params={"protocolId": "eefc041d-58ea-4f8f-9119-fd4e9315ff0e", "limit": 5} ) for item in response.json()["data"]: print(f"Meeting {item['recordId']}:") print(item["summary"]) ``` *** ## Get Topics [#get-topics] Retrieve topics discussed in meetings, grouped by meeting. ``` GET /v1/topics ``` ### Query Parameters [#query-parameters-3] | Parameter | Type | Required | Default | Description | | ---------- | ------- | -------- | ------- | --------------------------------- | | `recordId` | UUID | No | none | Filter to a specific meeting | | `dateFrom` | string | No | none | Filter by meeting date (ISO 8601) | | `dateTo` | string | No | none | Filter by meeting date (ISO 8601) | | `limit` | integer | No | 300 | Max meetings to return (max: 300) | ### Response [#response-5] ```json { "success": true, "data": [ { "recordId": "bd435e76-0eb1-432f-91a8-b4fed18744aa", "meetingTitle": "Q2 Planning", "meetingDate": "2026-04-10T14:00:00Z", "attendees": [{ "name": "John Doe", "email": "john@example.ai" }], "topics": [ { "topic": "Q2 Roadmap", "description": "Discussion about priorities and timeline" }, { "topic": "Hiring Plan", "description": null } ] } ], "pagination": { "totalMeetings": 12, "totalTopics": 47 } } ``` ### Code Examples [#code-examples-5] #### cURL [#curl-5] ```bash curl -X GET "https://api.optiverse.ai/external-api/v1/topics?dateFrom=2026-01-01T00:00:00Z&limit=10" \ -H "Authorization: Bearer optiuser_v1_your_key_here" ``` #### JavaScript [#javascript-4] ```javascript const response = await fetch( `${BASE_URL}/v1/topics?recordId=${recordId}`, { headers: { "Authorization": `Bearer ${API_KEY}` } } ); const { data } = await response.json(); data.forEach(meeting => { console.log(`${meeting.meetingTitle}: ${meeting.topics.length} topics`); }); ``` *** ## Search Transcripts [#search-transcripts] Full-text keyword search (BM25) across all meeting transcripts you have access to. Returns matching sentences with speaker attribution. ``` GET /v1/search ``` ### Query Parameters [#query-parameters-4] | Parameter | Type | Required | Default | Description | | ---------- | ------- | -------- | ------- | --------------------------------- | | `query` | string | Yes | — | Search keyword or phrase | | `dateFrom` | string | No | none | Filter by meeting date (ISO 8601) | | `dateTo` | string | No | none | Filter by meeting date (ISO 8601) | | `limit` | integer | No | 20 | Max results (max: 50) | ### Response [#response-6] ```json { "success": true, "data": [ { "recordId": "bd435e76-0eb1-432f-91a8-b4fed18744aa", "speakerLabel": "John Doe", "sentence": "We should migrate the electron app to a web-based architecture", "sentenceIndex": 42 } ], "pagination": { "total": 2, "limit": 20 } } ``` ### Code Examples [#code-examples-6] #### cURL [#curl-6] ```bash curl -X GET "https://api.optiverse.ai/external-api/v1/search?query=budget&limit=10" \ -H "Authorization: Bearer optiuser_v1_your_key_here" ``` #### Python [#python-3] ```python response = requests.get( f"{BASE_URL}/v1/search", headers={"Authorization": f"Bearer {API_KEY}"}, params={"query": "deadline", "dateFrom": "2026-01-01T00:00:00Z", "limit": 25} ) results = response.json() print(f"Found {results['pagination']['total']} matches") for r in results["data"]: print(f" [{r['speakerLabel']}] {r['sentence']}") ``` *** ## OpenAPI Specification [#openapi-specification] A machine-readable OpenAPI 3.1 spec is available for download: ``` https://api.optiverse.ai/external-api/openapi.json ``` You can use this to auto-generate typed client SDKs, import into Postman/Insomnia, or integrate with any OpenAPI-compatible tooling. *** ## Error Codes [#error-codes] The API uses a simplified error code system. Each error response follows this format: ```json { "error": { "code": "AUTH001", "message": "Missing authorization header" } } ``` ### Reference Table [#reference-table] | Code | HTTP Status | Meaning | | --------- | ----------- | ---------------------------------------------- | | `AUTH001` | 401 | Missing `Authorization` header | | `AUTH002` | 401 | Authentication failed (invalid or expired key) | | `KEY001` | 409 | API key already exists for this user | | `VAL001` | 400 | Validation failed (check your parameters) | | `PERM001` | 404 | Resource not found or access denied | | `SRV500` | 500 | Internal server error | `PERM001` returns a 404 (not 403) by design. This prevents exposing whether a record exists when you don't have access to it. *** ## Rate Limits [#rate-limits] We recommend keeping polling frequency to **one request per 2 minutes** or less. If you need higher throughput, contact [support@optiverse.ai](mailto:support@optiverse.ai). Consider using [webhooks](/docs/integrations-and-workflows/api-and-webhooks/webhook-events) instead of polling to receive meeting data automatically when processing completes. *** ## Pagination [#pagination] For endpoints that return lists, use `limit` and `offset` to paginate: ```javascript let offset = 0; const limit = 50; let hasMore = true; while (hasMore) { const response = await fetch( `${BASE_URL}/v1/list-records?limit=${limit}&offset=${offset}`, { headers: { "Authorization": `Bearer ${API_KEY}` } } ); const { data, pagination } = await response.json(); // Process records data.forEach(record => console.log(record.meetingTitle)); hasMore = pagination.hasMore; offset += limit; } ``` *** ## Changelog [#changelog] ### v1.1.0 (May 2026) [#v110-may-2026] * `GET /v1/protocol-templates` endpoint * `GET /v1/summaries/structured` endpoint * `GET /v1/summaries/unstructured` endpoint * `GET /v1/topics` endpoint * `GET /v1/search` endpoint * OpenAPI 3.1 specification available at `/openapi.json` ### v1.0.0 (January 2025) [#v100-january-2025] * Initial release with user-level API keys * `GET /v1/list-records` endpoint * `GET /v1/transcript/:recordId` endpoint # Overview (/docs/integrations-and-workflows/api-and-webhooks) The Optiverse User API gives you programmatic access to your meeting records, transcripts, summaries, and more. Full API documentation: authentication, endpoints, parameters, response formats, and code examples. Real-time notifications when meetings are processed. Coming soon. # Webhook Events (/docs/integrations-and-workflows/api-and-webhooks/webhook-events) Optiverse can send meeting data to your own HTTP endpoints (webhooks) whenever a meeting finishes processing. This is ideal for connecting Optiverse to workflow automation tools like **n8n**, **Make**, or **Zapier**, or for pushing data directly to your own backend. ## How It Works [#how-it-works] 1. You create one or more webhook configurations in **Settings → Integrations → n8n Webhooks**. 2. Each webhook points to an HTTPS endpoint (e.g. your n8n webhook URL). 3. When a meeting ends and processing completes, Optiverse sends a `POST` request to your URL with the meeting data you selected. You can configure multiple webhooks with different data selections, protocols, and custom metadata — each fires independently. *** ## Trigger Modes [#trigger-modes] Each webhook supports two trigger modes: | Mode | Description | | ------------- | ---------------------------------------------------------------------------------------------------------- | | **Automatic** | Fires automatically after every meeting finishes processing. No manual action required. | | **Manual** | Only fires when you explicitly trigger it from the meeting summary screen. Useful for selective workflows. | You can always trigger any webhook manually, regardless of the automatic setting. *** ## Payload Format [#payload-format] Webhooks deliver a `POST` request with a JSON body. The exact fields included depend on your webhook configuration. ### Full Payload Example [#full-payload-example] ```json { "timestamp": "2026-05-19T14:30:00.000Z", "userId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "recordId": "54e7e4e4-4417-4662-90db-18456f71ecbb", "meetingTitle": "Q2 Planning Session", "eventStart": "2026-05-19T14:00:00.000Z", "participants": ["john@example.ai", "jane@example.ai"], "organizer": "john@example.ai", "message": "The team discussed the Q2 roadmap and assigned action items...", "summary": { "sections": [ { "question": "What are the action items?", "answers": ["John will prepare the Q2 report by Friday", "Jane will finalize the designs"] } ] }, "transcript": "[John Doe]:\nLet's start with the roadmap discussion...\n\n[Jane Smith]:\nI think we should prioritize...", "shareUrl": "https://app.optiverse.ai/share/abc123", "phoneNumber": "+4930123456" } ``` ### Configurable Data Fields [#configurable-data-fields] You choose which fields to include for each webhook: | Field | Key | Description | | ------------- | -------------------- | ------------------------------------------------------------ | | Meeting Title | `meetingTitle` | The calendar event title | | Date & Time | `eventStart` | When the meeting occurred (ISO 8601) | | Attendees | `participants` | Array of participant email addresses | | Organizer | `organizer` | Email of the meeting organizer | | Summary | `message`, `summary` | AI-generated summary (plain text and/or structured sections) | | Transcript | `transcript` | Full meeting transcript | | Phone Number | `phoneNumber` | For Aircall recordings only | Fields that are always included regardless of configuration: * `timestamp` — when the webhook was sent * `userId` — your user ID * `recordId` — unique meeting record identifier * `shareUrl` — sharing link (if available) *** ## Custom Properties [#custom-properties] You can attach static key-value pairs to any webhook. These are merged into the payload, which is useful for: * Routing logic in n8n (e.g. `"team": "sales"`) * Identifying the source in multi-tenant setups * Passing metadata your workflow needs ```json { "timestamp": "2026-05-19T14:30:00.000Z", "recordId": "...", "meetingTitle": "...", "team": "sales", "priority": "high" } ``` *** ## Custom HTTP Headers [#custom-http-headers] You can add custom HTTP headers to each webhook request. This is useful for: * Authentication tokens expected by your endpoint * Routing headers for API gateways * Custom identifiers For security, certain headers are blocked (e.g. `Authorization`, `Cookie`, `Host`, proxy headers). The `Content-Type: application/json` header is always set automatically. *** ## Summary Protocol Override [#summary-protocol-override] By default, webhooks include the summary generated by the meeting's default protocol. You can optionally select a specific protocol template per webhook — for example, using a "CRM Update" protocol that extracts just the fields your CRM needs. This means you can have multiple webhooks for the same meeting, each delivering a differently structured summary. *** ## URL Requirements [#url-requirements] Webhook URLs must currently follow the n8n webhook URL pattern: ``` https://your-instance.app.n8n.cloud/webhook/your-webhook-id https://your-instance.app.n8n.cloud/webhook-test/your-webhook-id ``` Self-hosted n8n instances are supported as long as the URL matches the pattern `https:///webhook/` or `https:///webhook-test/`. Webhook support is currently limited to n8n-compatible URLs. Support for arbitrary HTTPS endpoints (Make, Zapier, custom backends) is on the roadmap. *** ## Setting Up a Webhook [#setting-up-a-webhook] 1. Go to **Settings → Integrations** in Optiverse. 2. In the **n8n Webhooks** section, click **Add Webhook**. 3. Enter a name, your n8n webhook URL, and optionally a description. 4. Choose whether to trigger automatically or manually. 5. Expand **Data to Include** to select which fields to send. 6. Optionally configure a custom summary protocol, custom properties, or HTTP headers. 7. Click **Save**. Your webhook is now active and will fire based on your trigger configuration. *** ## Example: n8n Workflow [#example-n8n-workflow] A typical n8n workflow connected to Optiverse: 1. **Webhook trigger node** — receives the POST from Optiverse 2. **IF node** — filters by meeting title or attendees 3. **Action nodes** — send to Slack, update a CRM, create a task in Notion, etc. ``` Optiverse Meeting → Webhook POST → n8n → Slack / CRM / Email / Notion ``` *** ## Execution Status [#execution-status] Each webhook tracks its last execution status, which you can see in the integrations dashboard: * **Last triggered at** — timestamp of the most recent delivery * **Last meeting** — title of the meeting that triggered it * **Status** — `Success` or `Error` with the error message *** ## Next Steps [#next-steps] * [API Reference](/api-reference) — use the REST API alongside webhooks for a complete integration # Automation Platforms (/docs/integrations-and-workflows/automation-platforms) Go beyond native integrations. Build powerful custom workflows that trigger based on meeting events. Connect Optiverse to 5000+ apps with no code. Build advanced agentic workflows with downloadable templates. # n8n Integration (/docs/integrations-and-workflows/automation-platforms/n8n) Connect your Optiverse meetings to n8n to automate everything that happens after a call. Push summaries to your CRM, draft follow-up emails, create tasks, sync with Slack, or anything else n8n can reach. This guide walks you through every screen on both sides. ## What You'll Build [#what-youll-build] By the end of this guide you'll have: * A **webhook trigger workflow** in n8n that's ready to receive meeting data * A **connected webhook** in Optiverse that fires automatically after every meeting (or manually, on demand) * A **secure handshake** between the two so only your Optiverse instance can trigger your workflow * The **n8n quick-access shortcut** pinned to every meeting view so you can push to any workflow in one click ## Before You Start [#before-you-start] You'll need three things: 1. An Optiverse account with permission to manage integrations ([Settings → Integrations](https://app.optiverse.ai/settings/integrations)) 2. An n8n instance, either [n8n Cloud](https://n8n.io) (sign up in two minutes) or a self-hosted instance. The setup is identical for both. 3. About 10 minutes *** ## Part 1: Set Up the Webhook in n8n [#part-1-set-up-the-webhook-in-n8n] We start on the n8n side because Optiverse needs a destination URL to send meeting data to. You'll create a workflow that listens for that data. ### Step 1.1: Create a new workflow [#step-11-create-a-new-workflow] Open your n8n instance and create a new workflow. You'll see an empty canvas with an **Add first step...** button in the middle.
Empty n8n workflow canvas with Add first step button
### Step 1.2: Add a Webhook trigger [#step-12-add-a-webhook-trigger] Click **Add first step...** and search for "webhook" in the trigger picker. Pick the very first result: **Webhook** ("Starts the workflow when a webhook is called"). Don't pick Webflow, Webmetic, or Respond to Webhook. They look similar but do different things. You want the plain **Webhook** trigger.
n8n trigger picker showing webhook search results
### Step 1.3: Configure the webhook node [#step-13-configure-the-webhook-node] The Webhook node opens with two tabs at the top: **Test URL** and **Production URL**. Switch to **Production URL**. This is the one you'll paste into Optiverse. A few things to notice on this screen: | Setting | What to do | | ------------------ | -------------------------------------------------------------------------------------------------------------------------- | | **HTTP Method** | Leave as POST for Optiverse (Optiverse always sends POST) | | **Path** | n8n auto-generates a 32-character random path. Keep it as-is. We'll explain why in the security section below. | | **Authentication** | Leave as None. We'll add a custom-property check from the Optiverse side instead, which is simpler and works the same way. | | **Respond** | Immediately is fine. Optiverse doesn't wait for a response. | **Copy the Production URL** at the top. You'll paste it into Optiverse in Part 2. Make sure you copy the **Production URL**, not the Test URL. The Production URL only works once the workflow is published.
n8n Webhook node configuration showing Production URL, HTTP Method, Path, and Authentication settings
### Step 1.4: Publish the workflow [#step-14-publish-the-workflow] Click **Publish** in the top-right corner. n8n auto-fills a version name (e.g., Version 20c22867). You can leave it as-is or add a description like "Initial Optiverse webhook listener." The Production URL only receives traffic once the workflow is published. If you skip this step, Optiverse will send data to a URL that nothing's listening on.
n8n Publish workflow dialog with version name and Publish button
That's it for the n8n side. You now have a live endpoint waiting for meeting data. Time to point Optiverse at it. *** ## Part 2: Connect Optiverse to n8n [#part-2-connect-optiverse-to-n8n] ### Step 2.1: Navigate to Integrations [#step-21-navigate-to-integrations] 1. Go to [app.optiverse.ai](https://app.optiverse.ai) and log in 2. In the left sidebar, click **Settings** (the gear icon) 3. Under User Settings, click **Integrations** 4. Scroll down to the **Webhooks & Automation** section 5. Click the **Webhooks** card A panel slides in from the right showing the current Webhooks status, any existing webhooks you've created, and an **+ Add** button.
Optiverse Integrations page showing all integration categories with Webhooks selected and panel open
### Step 2.2: Enable the meeting quick-access shortcut (recommended) [#step-22-enable-the-meeting-quick-access-shortcut-recommended] At the top of the Webhooks panel you'll see a toggle: **Show in quick access**. This puts a small n8n icon at the top of every meeting recording, so you can fire any of your webhook workflows on demand without leaving the meeting view. Here's what that looks like inside a meeting once enabled. Notice the small n8n icon near the top-right of the meeting toolbar:
Optiverse meeting recording page showing the full interface with n8n icon in the toolbar
Clicking that icon opens the **Push to n8n** modal, where you can pick which workflow(s) to trigger and preview the exact summary that will be sent:
Push to n8n modal showing workflow picker, summary preview editor, and Trigger webhook button
### Step 2.3: Add a new webhook [#step-23-add-a-new-webhook] In the Webhooks panel, click **+ Add**. The Create Webhook dialog opens. #### Webhook URL [#webhook-url] Paste the **Production URL** you copied from n8n in Step 1.3. It'll look something like: ``` https://your-instance.n8n.cloud/webhook/b82254a9-338d-4a65-ad61-bebaedb8b572 ``` Keep n8n's default 32-character random path. Do not replace it with something readable like `/webhook/meeting-summarizer`. The random path acts as a shared secret. Anything readable is easy to guess, exposed to the internet, and can be abused. #### Trigger automatically after meetings [#trigger-automatically-after-meetings] A toggle that controls when Optiverse fires this webhook: | Setting | Behavior | | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | **On** | Fires automatically every time a meeting ends. Use for "always-on" automations like syncing every meeting to your CRM. | | **Off** | Fires only when you click the n8n icon from inside a meeting (the quick-access flow). Use for selective actions where you want to review first. | You can always fire an auto-trigger webhook manually from the quick-access menu too. The toggle only controls the automatic side. #### Data to Include [#data-to-include] Seven toggles control what's in the payload sent to n8n: | Field | Description | | ----------------- | ------------------------------------- | | **Meeting Title** | The name of the meeting | | **Date & Time** | When the meeting occurred | | **Attendees** | List of participants | | **Organizer** | Who organized the meeting | | **Summary** | The AI-generated meeting summary | | **Transcript** | The full conversation transcript | | **Phone Number** | Phone numbers detected in the meeting | All seven are on by default. Disable any you don't need to keep payloads small (e.g., turn off Transcript if your workflow only uses the summary).
Create Webhook dialog showing description, trigger toggle, and data fields with toggles
#### Summary Protocol [#summary-protocol] By default, the webhook ships the meeting's default summary. If you have custom summary protocols defined in Optiverse, toggle **Use custom protocol** and pick the specific one you want for this webhook. Useful when one workflow wants a sales-style summary and another wants a support-style one. #### Custom Properties (recommended for security) [#custom-properties-recommended-for-security] This is where you add a shared secret so your n8n workflow can verify that requests really came from Optiverse. 1. Click **+ Add Property** 2. Set the **Key** to something like `key`, `secret`, or `x-optiverse-token` 3. Set the **Value** to a long random string. Generate one however you like (1Password, a CLI, or `openssl rand -hex 32`). Treat this exactly like a password. Then, in your n8n workflow, add an **IF node** right after the Webhook trigger that checks whether `{{$json.body.key}}` matches your secret. Reject anything that doesn't match.
Create Webhook dialog showing Custom Properties with a key-value pair for security verification
#### HTTP Headers (optional, advanced) [#http-headers-optional-advanced] Same idea as Custom Properties, but the values go in the HTTP request headers instead of the body. Useful if your n8n instance is behind a reverse proxy that filters by header. Most users can skip this. #### Save [#save] Click **Save** at the bottom. The webhook is now live. *** ## Part 3: Test It End-to-End [#part-3-test-it-end-to-end] ### From a meeting (quick-access flow) [#from-a-meeting-quick-access-flow] 1. Open any meeting recording 2. Click the small **n8n icon** in the top action bar 3. In the Push to n8n modal, check the webhook(s) you want to fire 4. (Optional) Edit the summary preview before sending 5. Click **Trigger N webhook(s)** The modal also shows the last time each webhook was triggered, so you can see at a glance whether your automation is healthy. ### From an automatic trigger [#from-an-automatic-trigger] If you left **Trigger automatically after meetings** on, just end a meeting. The webhook fires within a few seconds. Open your n8n workflow's **Executions** tab to confirm the payload arrived and inspect what was sent. *** ## Security Best Practices [#security-best-practices] | Practice | Why | | -------------------------------------------- | ------------------------------------------------------------------------------- | | Keep n8n's default 32-character path | Don't simplify it to something memorable. It acts as a first layer of security. | | Add a Custom Property as a shared secret | Verify it with an IF node in n8n. This is the single most important step. | | Rotate the secret if you suspect it leaked | Update both sides (Optiverse and n8n) in lockstep. | | Disable unused webhooks rather than deleting | You'll keep the execution history for debugging. | | Don't put secrets in the URL itself | URLs end up in n8n logs, browser histories, and proxy access logs. | *** ## Troubleshooting [#troubleshooting] ### Nothing happens when I end a meeting [#nothing-happens-when-i-end-a-meeting] Make sure the workflow is **published** in n8n (Step 1.4) and that **Trigger automatically after meetings** is on in Optiverse. Check the Executions tab in n8n. If there's nothing there, Optiverse isn't reaching n8n (double-check the URL). ### n8n receives the request but my IF node rejects it [#n8n-receives-the-request-but-my-if-node-rejects-it] The key name in your Custom Property must match exactly what your IF node checks. Custom Properties land in `$json.body.`. Open the execution in n8n and inspect the actual payload to confirm the path. ### The summary is missing fields I expected [#the-summary-is-missing-fields-i-expected] Go back to Settings → Integrations → Webhooks → your webhook and check the **Data to Include** toggles. Save again after changing them. Existing meetings won't backfill, but new meetings will use the new config. ### My self-hosted n8n isn't receiving anything [#my-self-hosted-n8n-isnt-receiving-anything] Optiverse needs a publicly reachable URL. If you're running n8n on localhost or a private network, you'll need a tunnel (Cloudflare Tunnel, ngrok, Tailscale Funnel) or a proper public deployment. *** ## What to Build Next [#what-to-build-next] A few starter workflows that use the same webhook trigger you just built: * **Auto-update CRM deals**: Push meeting summary, action items, and next steps onto the matching deal record * **Auto-draft personalized follow-up**: Generate a tailored follow-up email in Gmail or Outlook, ready for you to review and send * **Slack digest**: Post a structured summary to a team channel after every external meeting * **Task creator**: Turn action items into Asana, Linear, or Jira tickets assigned to the right person Each of these only requires different downstream nodes in n8n. The webhook trigger stays the same. # Zapier Integration (/docs/integrations-and-workflows/automation-platforms/zapier) Optiverse has a native Zapier integration that fires a trigger every time a meeting ends. This lets you route meeting data (summaries, transcripts, action items, attendees) into any of Zapier's 8,000+ connected apps without writing code. ## How the Integration Works [#how-the-integration-works] Unlike generic webhook setups, Optiverse appears as a dedicated app inside Zapier's trigger picker. The connection is authenticated with an API key you generate in Optiverse. Once connected, Zapier receives a payload from Optiverse each time a meeting finishes processing, and you build whatever action steps you need on the Zapier side. The flow is straightforward: 1. A meeting ends and Optiverse processes the recording 2. Optiverse fires the trigger event to Zapier with the meeting data 3. Zapier runs your configured action steps (send email, update CRM, post to Slack, create task, etc.) Because Optiverse sends structured data fields (title, date, attendees, summary, transcript), you can map each field directly to inputs in downstream Zapier actions. No parsing or formatting needed. ## Setting Up the Connection [#setting-up-the-connection] ### Step 1: Generate Your API Key in Optiverse [#step-1-generate-your-api-key-in-optiverse] 1. Go to [Settings > Integrations > Zapier](https://app.optiverse.ai/settings/integrations?integration=zapier) 2. Click **Generate API Key** 3. Copy the key. You'll paste it into Zapier in the next step.
Optiverse Zapier integration page showing the API Key generation area
Treat the API key like a password. Anyone with it can receive your meeting data. If you suspect it's been compromised, generate a new one (which invalidates the old key). ### Step 2: Connect Optiverse in Zapier [#step-2-connect-optiverse-in-zapier] 1. Log in to [Zapier](https://zapier.com) and create a new Zap 2. For the trigger, search for **Optiverse** in the app picker 3. Select the trigger event (meeting ended) 4. When prompted to connect your Optiverse account, paste the API key you generated 5. Test the trigger. Zapier will pull in a sample meeting payload so you can see the available fields. If Optiverse doesn't appear in the Zapier app picker, use the Zapier invite link shown on your [Optiverse integration page](https://app.optiverse.ai/settings/integrations?integration=zapier) to add Optiverse to your available triggers. ### Step 3: Build Your Action Steps [#step-3-build-your-action-steps] Once the trigger test succeeds, add one or more action steps. You have access to all the fields Optiverse sends: | Field | What It Contains | | ----------------- | --------------------------------------------------------------- | | **Meeting Title** | The name of the meeting from your calendar | | **Date & Time** | When the meeting took place | | **Attendees** | List of participants | | **Organizer** | Who scheduled the meeting | | **Summary** | The AI-generated meeting summary (follows your active protocol) | | **Transcript** | The full conversation transcript | | **Action Items** | Tasks and follow-ups detected during the meeting | Map these fields to inputs in your downstream actions. For example, map "Summary" to the body of a Gmail draft, or "Action Items" to a task description in Asana. ## What You Can Automate [#what-you-can-automate] Here are practical workflows teams commonly build: | Workflow | Trigger → Action | | -------------------------- | ------------------------------------------------------------- | | Auto-send summary to email | Meeting ends → Gmail sends summary to attendees | | CRM deal update | Meeting ends → HubSpot/Salesforce updates deal notes | | Slack digest | Meeting ends → Slack posts summary in a team channel | | Task creation | Meeting ends → Asana/Jira creates tasks from action items | | Spreadsheet logging | Meeting ends → Google Sheets adds a row with meeting metadata | | Document generation | Meeting ends → Google Docs creates a formatted meeting report | ## Combining with Protocols [#combining-with-protocols] The summary field Zapier receives follows whichever [protocol](/docs/protocols-and-summaries/what-are-protocols) is active for that meeting. This means you can control exactly what data reaches your automations by configuring the right protocol. For example, if you use a sales discovery protocol (like MEDDIC), the summary field will contain structured fields like budget, timeline, decision criteria, and next steps. Your Zapier actions can then map those directly into CRM fields. ## Zapier vs. n8n [#zapier-vs-n8n] Both platforms receive Optiverse meeting data and automate downstream actions. Choose based on your needs: | | Zapier | n8n | | ----------------- | ------------------------------------------- | -------------------------------------- | | **Best for** | Quick no-code automations | Complex multi-step logic, self-hosted | | **Setup** | API key, works in minutes | Webhook URL, slightly more config | | **Pricing** | Free tier (limited tasks), paid plans scale | Free self-hosted, paid cloud option | | **Custom logic** | Paths and filters | Full code nodes, branching, loops | | **App ecosystem** | 8,000+ apps | 400+ nodes plus HTTP/code for anything | You can use both simultaneously. For example, use Zapier for simple "send summary to Slack" automations and n8n for complex workflows that require conditional logic or self-hosting. ## Availability [#availability] The Zapier integration is available on the **Pro plan** and above. Check [Pricing](https://app.optiverse.ai/PRICING) for details. # Aircall Integration (/docs/integrations-and-workflows/communication/aircall) Optiverse connects to Aircall to bring the same AI transcription, structured summaries, and CRM automation to your phone calls that you already get for video meetings. Every call recorded through Aircall is automatically sent to Optiverse, transcribed, and processed with your chosen protocol template. The result is a fully structured summary following your custom format, ready to push to your CRM. This turns every sales call, support conversation, and client check-in into searchable, structured data, even when there's no video involved. *** ## How It Works [#how-it-works] When you connect Aircall to Optiverse, the flow is fully automatic: 1. **A call is recorded** on Aircall (inbound or outbound) 2. **The audio is sent** to Optiverse automatically 3. **Optiverse transcribes** the call and identifies speakers 4. **Your chosen protocol** generates a structured summary 5. **The summary appears** in Optiverse as a recording (audio only, no video) 6. **CRM automations fire** just like they would for a video meeting From this point, the recording behaves exactly like any other meeting in Optiverse: you can view the transcript, see the protocol summary, push notes to your CRM, ask OptiAgent questions about it, or include it in multi-meeting searches. *** ## Connecting Aircall [#connecting-aircall] 1. Go to **Settings > Integrations** 2. Find **Aircall** under the VoIP category 3. Click **Connect** 4. Authenticate with your Aircall account Aircall on the integrations page under VoIP *** ## Integration Settings [#integration-settings] After connecting, you configure three options: Aircall connected settings showing protocol selection and automatic sync ### Show in Quick Access [#show-in-quick-access] Enables the Aircall icon on recording pages that originated from Aircall, giving you quick visual identification of which recordings came from phone calls versus video meetings. ### Default Protocol [#default-protocol] Choose which protocol template Optiverse should use when processing Aircall recordings. This is a dedicated protocol selector for calls coming from Aircall, independent from your general default protocol. This means you can use a different summary structure for phone calls than for video meetings. For example: * Video meetings might use a "Team Standup" or "Client Discovery" protocol * Aircall recordings might use a "BANT for Sales" or "Call Outcome Summary" protocol tailored to short phone conversations The protocol you select here is applied automatically to every call that comes in from Aircall. You can still switch protocols on individual recordings afterward if needed. ### Automatic Call Sync [#automatic-call-sync] When enabled, every recorded call from Aircall is automatically pushed to Optiverse without any manual action. Turn this off if you only want to import specific calls manually. ### Manual Call Upload [#manual-call-upload] If automatic sync is disabled, or if you have older recordings you want to import, use the **Upload** button to manually send specific Aircall recordings to Optiverse for processing. *** ## What You Get from Aircall Recordings [#what-you-get-from-aircall-recordings] Aircall recordings are processed like any other meeting in Optiverse, with one difference: there's no video, only audio. Everything else works the same: | Feature | Available | | --------------------------------------------------- | --------- | | Full transcript with speaker labels | Yes | | Protocol-based structured summary | Yes | | OptiAgent Q\&A on the recording | Yes | | Push to CRM (HubSpot, Salesforce, Pipedrive, Attio) | Yes | | Include in multi-meeting search | Yes | | Export as PDF/Word | Yes | | Share with teammates | Yes | | Action items extraction | Yes | | Speaker statistics | Yes | *** ## Filtering Aircall Recordings [#filtering-aircall-recordings] You can filter your meeting library to show only recordings that originated from Aircall. This is useful when you want to review phone call performance separately from video meetings, or when building reports specifically about your calling activity. *** ## Aircall + CRM: The Dual Integration [#aircall--crm-the-dual-integration] The Aircall integration becomes especially powerful when paired with a CRM integration. This section explains how the combination works to solve a problem that most standalone tools cannot. ### The Phone Number Challenge [#the-phone-number-challenge] With video meetings, Optiverse matches attendees to CRM records using **email addresses** from calendar invites. This works seamlessly because emails are the universal identifier across meeting platforms and CRMs. Phone calls are different. Aircall provides a **phone number**, not an email address. Without a bridge, there's no way to automatically associate a call recording with the right CRM contact. ### How Optiverse Solves It [#how-optiverse-solves-it] Optiverse acts as the intelligent middle layer between Aircall and your CRM. When a call comes in from Aircall: 1. **Aircall sends the recording** to Optiverse along with the associated phone number 2. **Optiverse looks up the phone number** in your connected CRM (e.g., HubSpot) 3. **The matching contact is found**, along with their associated deals and companies 4. **The structured summary** (following your chosen protocol) is pushed to the right CRM records This means your Aircall phone calls end up logged under the correct contacts, deals, and companies in your CRM, with a properly structured summary, not just a raw audio link. ### Aircall + HubSpot [#aircall--hubspot] When both Aircall and HubSpot are connected to Optiverse: * Phone calls are automatically transcribed and summarized with your Aircall protocol * The phone number from the call is matched to HubSpot contacts * The structured summary is pushed to the matched contact, their associated deals, and their companies * All HubSpot automation settings apply (push to contacts, push to deals, push to companies) * New contacts can be created if the phone number matches no existing record This gives sales teams a complete CRM logging workflow for their phone activity. No more manually writing up call notes or copy-pasting into HubSpot after every dial. **The same principle applies to Salesforce, Pipedrive, and Attio.** Any CRM integration you have connected will receive Aircall recording data through the same phone-number-to-CRM-record matching. The phone number association works automatically. Optiverse searches your connected CRM for the phone number that Aircall provides. If a match is found, all your existing CRM automation preferences apply to the call recording. *** ## Use Cases [#use-cases] ### Sales Teams Running Outbound Calls [#sales-teams-running-outbound-calls] Every outbound dial through Aircall gets transcribed, summarized with your sales protocol (BANT, MEDDPICC, or any custom template), and pushed to the right deal in your CRM. Reps never need to write up call notes manually. ### Customer Success Check-ins [#customer-success-check-ins] Short phone check-ins with customers get the same structured documentation as full meetings. Customer sentiment, open issues, and next steps are captured and logged to the account record automatically. ### Support Escalations [#support-escalations] When a support call needs to be escalated or reviewed, having a full transcript with a structured summary (issue, resolution steps, outcome) makes handoffs seamless. The summary lives in the CRM for full team visibility. ### Inside Sales Qualifying Calls [#inside-sales-qualifying-calls] High-volume dialing teams can process every call through a qualification protocol. Budget, authority, need, and timeline get extracted automatically and flow into CRM fields for reporting and pipeline management. ### Account Executives Doing Discovery [#account-executives-doing-discovery] Discovery calls often happen over the phone. With Aircall connected, every piece of qualification data discussed is captured, summarized per your protocol structure, and associated with the right opportunity. *** ## Example Workflows [#example-workflows] | Scenario | What happens automatically | | -------------------------------- | ----------------------------------------------------------------------------------------------------------------- | | Outbound cold call via Aircall | Call recorded > transcribed > BANT protocol applied > pushed to HubSpot lead | | Inbound customer support call | Call recorded > transcribed > Support Summary protocol applied > logged under contact and company | | Account check-in call | Call recorded > transcribed > default protocol applied > pushed to deal with latest updates | | Discovery call with new prospect | Call recorded > transcribed > MEDDPICC protocol applied > new contact created in CRM > summary pushed to new deal | *** ## Troubleshooting [#troubleshooting] | Issue | Solution | | -------------------------------------- | ------------------------------------------------------------------------------------------------- | | Calls not appearing in Optiverse | Check that **Automatic Call Sync** is enabled in the Aircall integration settings | | Wrong protocol being applied | Verify the **Default Protocol** selector in the Aircall settings is set to your desired template | | CRM not receiving call summaries | Ensure your CRM integration is connected and automation preferences are enabled | | Phone number not matching CRM contacts | Verify the phone number format in your CRM matches what Aircall provides (including country code) | | Older calls missing | Use the **Manual Call Upload** button to import historical Aircall recordings | Phone number matching depends on consistent formatting. If your CRM stores numbers as "+41791234567" but Aircall provides "0791234567", the match may fail. Standardize phone number formats in your CRM for best results. # Gmail & Outlook (/docs/integrations-and-workflows/communication/gmail-outlook) Configure automatic email summaries sent to meeting participants, and use OptiAgent to draft follow-up emails. Content for this page is being written. Check back soon for the complete guide. # Communication Integrations (/docs/integrations-and-workflows/communication) Send meeting recaps via email, push summaries to Slack channels, and integrate with VOIP platforms. Join Teams meetings, push summaries to channels, and troubleshoot common join restrictions. Automatic email recaps and draft follow-ups. Post meeting summaries to Slack channels. Transcribe and summarize phone calls with custom protocols, and automatically push structured notes to your CRM via phone number matching. # Microsoft Teams Integration (/docs/integrations-and-workflows/communication/microsoft-teams) Optiverse integrates with Microsoft Teams in three distinct ways: meeting joining, output pushing, and data access through MCP. Each serves a different purpose and can be configured independently. If the assistant joins some Teams meetings but fails on others, the cause is often a Teams admin policy difference between organizers. See [Troubleshoot Microsoft Teams Join Issues](/docs/integrations-and-workflows/communication/teams-join-troubleshooting). ## Three Integration Layers [#three-integration-layers] | Layer | Purpose | Setup Required | | ------------------------ | ---------------------------------- | ------------------------------------ | | Calendar/Meeting joining | Optiverse bot joins Teams meetings | None (works via calendar connection) | | Output integration | Push summaries to Teams channels | Connect in Settings | | MCP integration | OptiAgent reads channel data | Enable in MCP settings | ## 1. Calendar and Meeting Joining [#1-calendar-and-meeting-joining] Optiverse joins your Teams meetings automatically through your calendar connection. No additional Teams-specific setup is needed. When the bot joins a Teams meeting: * It appears as a participant in the meeting * It announces itself in the Teams meeting chat * It records and transcribes the conversation Meeting joining works by default once you've connected your calendar. The bot reads your calendar events and joins scheduled Teams meetings automatically. ### When Meeting Joining Fails For Only Some Users [#when-meeting-joining-fails-for-only-some-users] If one organizer can use the assistant successfully while another cannot, the issue is usually not the calendar connection. It is more often caused by Teams admin settings that differ across users or meeting policies. The most common fix is for your IT admin to verify that **Anonymous users can join a meeting unverified** is enabled at the global level and on any custom meeting policy assigned to affected organizers. Privacy-sensitive teams can still keep the assistant in the lobby until it is admitted. See [Troubleshoot Microsoft Teams Join Issues](/docs/integrations-and-workflows/communication/teams-join-troubleshooting) for the full checklist. \[Screenshot: Optiverse bot announcement in a Teams meeting chat] ## 2. Pushing Summaries to Teams Channels [#2-pushing-summaries-to-teams-channels] Send meeting summaries and protocols directly to any Teams channel your account has access to. ### How to Push a Summary [#how-to-push-a-summary] 1. Open the recording page for a processed meeting 2. Click the **Teams icon** 3. Browse or search your available channels 4. Select the target channel 5. Click **Push** The integration fetches all channels from your Teams workspace, letting you choose exactly where each summary should go. \[Screenshot: Teams channel selection dialog on the recording page] You can push the same meeting summary to multiple channels by repeating the push process. ## 3. MCP Integration (Knowledge Hub) [#3-mcp-integration-knowledge-hub] When enabled, the Teams MCP integration gives OptiAgent read access to Teams channel data. This allows OptiAgent to combine channel messages with your meeting data for richer, more contextual answers. ### What OptiAgent Can Access [#what-optiagent-can-access] * **Channel messages**, public channel conversations in your Teams workspace * **Channel files**, shared content within channels ### What OptiAgent Cannot Access [#what-optiagent-cannot-access] * Private individual chats * Group chats * Direct messages The Teams MCP integration is limited to **channels only**. Private and group chats are never accessible to OptiAgent, ensuring personal conversations remain private. ### Example Queries [#example-queries] * "What was discussed in the #sales channel this week?" * "Combine my meeting notes with the latest channel updates on Project X" * "Are there any messages in the engineering channel about the API changes we discussed?" \[Screenshot: OptiAgent answering a query that combines Teams channel data with meeting insights] ## Setup [#setup] ### Output Integration [#output-integration] 1. Go to **Settings > Integrations > Microsoft Teams** 2. Click **Connect** 3. Authenticate with your Microsoft account 4. Grant the necessary permissions for channel access Teams asks for permissions that many companies reserve for admins. If sign-in shows **Need admin approval**, or you land back on Optiverse still disconnected, see [Microsoft Admin Approval](/docs/integrations-and-workflows/microsoft-admin-consent) to generate the link your admin needs. ### MCP Integration [#mcp-integration] 1. Go to **Settings > MCP / Knowledge Hub** 2. Find Microsoft Teams in the available integrations 3. Toggle it on 4. Select which tools to enable (read channel messages, list channels, etc.) \[Screenshot: MCP settings page showing Teams integration toggles] # Slack Integration (/docs/integrations-and-workflows/communication/slack) Keep your team informed by automatically posting meeting recaps to designated Slack channels. Content for this page is being written. Check back soon for the complete guide. # Troubleshoot Microsoft Teams Join Issues (/docs/integrations-and-workflows/communication/teams-join-troubleshooting) If the Optiverse assistant joins some Microsoft Teams meetings successfully but fails on others, the issue is usually caused by Teams admin policy settings, not by an Optiverse outage. This guide explains why that happens, how to preserve lobby-based approval for privacy, and what your IT admin should check to restore normal joining behavior. ## When This Guide Applies [#when-this-guide-applies] Use this guide if any of the following are true: * The assistant joins one organizer's Teams meetings but not another's * The assistant appears to hit a sign-in or anonymous access restriction * Meeting options look correct, but the assistant still cannot join * The issue started after a Microsoft change, policy rollout, or admin update If you need a general explanation of how the assistant behaves in meetings, see [How the Assistant Works](/docs/how-recording-works/how-the-assistant-works). ## Short Answer [#short-answer] Microsoft Teams controls meeting access at more than one level. * **Tenant-wide admin settings** define the organization default * **Per-user meeting policies** can override the default for specific organizers * **Per-meeting options** only work within the limits set by the admin policy That means a meeting organizer can set options that look correct, but the assistant may still be blocked if the assigned Teams policy does not allow anonymous participants to join. ## Why It Works For Some Meetings But Not Others [#why-it-works-for-some-meetings-but-not-others] This pattern usually means different organizers in your company are using different Teams meeting policies. For example: * Organizer A uses the global default policy, which allows anonymous users to join unverified * Organizer B has a custom policy that blocks anonymous users * Result: the Optiverse assistant can join Organizer A's meetings, but fails on Organizer B's meetings This is why the issue can feel random even though the root cause is policy-based and consistent. ## Privacy: You Do Not Need To Bypass The Lobby [#privacy-you-do-not-need-to-bypass-the-lobby] Many teams worry that fixing this issue means letting the assistant enter meetings automatically. That is not required. You can keep the assistant waiting in the Teams lobby until someone admits it. The assistant does not need lobby bypass permission in order to work. A common enterprise setup is to allow anonymous users to join unverified while keeping "Who can bypass the lobby" restricted to people in your organization. This setup preserves control for the meeting host while still allowing the assistant to request entry successfully. ## The Setting That Usually Fixes The Issue [#the-setting-that-usually-fixes-the-issue] Your IT admin should check whether **"Anonymous users can join a meeting unverified"** is enabled: * At the **global Teams meeting settings** level * On any **custom meeting policy** assigned to affected organizers If this setting is off in either place, the assistant may be blocked before it can wait in the lobby. ## IT Admin Checklist [#it-admin-checklist] ### 1. Check The Global Meeting Setting [#1-check-the-global-meeting-setting] Go to the Microsoft Teams Admin Center and review the organization-wide meeting settings: 1. Open `https://admin.teams.microsoft.com/one-policy/settings/meeting` 2. Find the **Meeting join & lobby** section 3. Confirm that **Anonymous users can join a meeting unverified** is turned **On** This is the default behavior used unless a custom meeting policy overrides it. ### 2. Check The Policy Assigned To Affected Organizers [#2-check-the-policy-assigned-to-affected-organizers] Then confirm whether affected users have a custom policy: 1. Open **Teams Admin Center** 2. Go to **Users** 3. Select **Manage users** 4. Open the affected meeting organizer 5. Click the **Policies** tab 6. Review the **Meeting policy** row If the organizer is assigned a custom meeting policy instead of **Global (Org-wide default)**, that custom policy must also have **Anonymous users can join a meeting unverified** turned **On**. ### 3. Keep Lobby Approval If Needed [#3-keep-lobby-approval-if-needed] If your team wants full control over when the assistant enters, you can usually keep: * **Who can bypass the lobby** = **People in my org** With this setup, the assistant can reach the lobby and wait there until someone admits it. ## Why Per-Meeting Settings Are Not Enough [#why-per-meeting-settings-are-not-enough] Teams meeting options shown to the organizer are not the highest level of control. If the organizer changes a meeting option but the admin-level policy blocks anonymous participants, the policy wins. From the organizer's point of view, it can look like the assistant is broken even though Teams is enforcing a higher-level rule. This is the main reason support teams see statements like: * "It worked before" * "We changed the meeting options and it still did not work" * "Only some users are affected" ## How To Test After Changing The Settings [#how-to-test-after-changing-the-settings] After your admin updates the relevant Teams settings: 1. Ask an affected organizer to schedule or reopen a Teams meeting 2. Send the assistant to the meeting 3. Confirm it appears in the lobby 4. Admit it manually 5. Verify that the assistant joins and posts its transparency message in the chat If you miss the first attempt, you can resend the assistant from the [Calendar page](https://app.optiverse.ai/meetings-calendar). More detail is available in [How the Assistant Works](/docs/how-recording-works/how-the-assistant-works#what-if-you-missed-the-window). ## Common Misunderstandings [#common-misunderstandings] ### "We must allow the assistant to bypass the lobby" [#we-must-allow-the-assistant-to-bypass-the-lobby] No. The assistant can work while still waiting for approval in the lobby. ### "The organizer already changed the meeting settings, so Teams is configured correctly" [#the-organizer-already-changed-the-meeting-settings-so-teams-is-configured-correctly] Not necessarily. Tenant settings and assigned meeting policies can override what the organizer sees at the meeting level. ### "If some meetings work, Optiverse must be unstable" [#if-some-meetings-work-optiverse-must-be-unstable] Usually not. Mixed success across organizers often points to different Teams policies assigned to different users. ### "It started after a Microsoft change, so Optiverse must have changed something" [#it-started-after-a-microsoft-change-so-optiverse-must-have-changed-something] Not always. Teams behavior can change after Microsoft updates, admin policy edits, or policy reassignment. Rechecking the meeting policy is a good first step. ## When To Contact Optiverse Support [#when-to-contact-optiverse-support] Contact support if: * The required Teams settings are confirmed and the assistant still cannot reach the lobby * The assistant joins but fails after being admitted * You want help validating the Teams configuration with your IT admin When contacting support, include: * The affected organizer's email address * Whether the issue affects all organizers or only some * Whether the assistant reaches the lobby, shows a sign-in prompt, or never appears * The exact Teams policy assigned to the affected user, if known ## Related Pages [#related-pages] * [Microsoft Teams Integration](/docs/integrations-and-workflows/communication/microsoft-teams) * [How the Assistant Works](/docs/how-recording-works/how-the-assistant-works) # Attio Integration (/docs/integrations-and-workflows/crm/attio) Optiverse integrates with Attio to automatically log meeting summaries to your contacts, deals, and people records, with the added flexibility of mapping structured protocol data directly to Attio's custom object structure. Combined with a powerful 31-tool MCP integration, Optiverse gives you bilateral access to your entire Attio workspace through natural conversation. Attio's flexible, data-model-first approach to CRM pairs naturally with Optiverse's protocol system. Where other CRMs have rigid object structures, Attio lets you build custom objects and attributes. Optiverse's field-by-field mapping feeds structured meeting intelligence directly into those custom structures after every call. *** ## Part 1: Native Attio Integration [#part-1-native-attio-integration] The native integration handles automatic data flow from Optiverse into Attio. Meeting summaries, new contacts, and structured protocol data push to your Attio records without manual work. ### Connecting Attio [#connecting-attio] 1. Go to **Settings > Integrations** 2. Find **Attio** under the CRM category 3. Click **Connect** 4. Authenticate with your Attio workspace in the popup window 5. Once connected, the status changes to **Connected and ready** Attio integration page showing the Connect button and available automations Each user connects their own Attio account. The integration respects Attio workspace permissions, so it only accesses records the authenticated user can view and edit. *** ### Automation Settings [#automation-settings] After connecting, you configure four automation preferences that control what happens after every meeting. Attio connected settings showing automation preferences #### Show in Quick Access [#show-in-quick-access] Enables the Attio icon on every Meeting Recording page, next to the **Share** button. This lets you manually push the currently displayed meeting notes to any Attio deal at any time. #### Add New Contacts to Attio from Optiverse [#add-new-contacts-to-attio-from-optiverse] Optiverse reads attendee email addresses from your calendar invites. When this setting is enabled, if a meeting attendee does not already exist as a contact in Attio, Optiverse automatically creates a new person record for them. #### Automatically Push Summaries to Associated Attio Contacts [#automatically-push-summaries-to-associated-attio-contacts] After every meeting, Optiverse pushes the meeting summary as a note under the matched contact records in Attio. Matching is based on attendee email addresses from the calendar invite. #### Automatically Push Summaries to Associated Attio Deals [#automatically-push-summaries-to-associated-attio-deals] The meeting summary is also pushed to any open deals associated with the matched contacts. This keeps your deal timeline current with every customer conversation. #### Automatically Map and Push Summaries to People [#automatically-map-and-push-summaries-to-people] This option takes the integration a step further. Instead of just logging a note, Optiverse maps your protocol's structured output directly to attributes on the person record in Attio. Each section of your protocol can map to a specific Attio attribute, turning unstructured meeting conversations into structured data on your people records. *** ### Which Summary Gets Pushed? [#which-summary-gets-pushed] The note that is automatically pushed to Attio is the output of your **default protocol**. Each user selects one protocol as their default on the [Protocols page](https://app.optiverse.ai/protocols), and that protocol generates the meeting summary that flows into Attio after every call. If you want a different protocol's output pushed to a specific deal, use the manual push via the Attio Quick Access icon after switching to the desired protocol on the recording page. *** ### Custom Object and Attribute Mapping [#custom-object-and-attribute-mapping] Attio's strength is its flexible data model. You define your own objects, attributes, and relationships. Optiverse maps directly into that structure. When you enable the mapping options, each section of your protocol template can push its output to a specific Attio attribute on any object type: * Protocol sections with **text** output map to text attributes * Protocol sections with **number** output map to number attributes * Protocol sections with **list** output map to multi-select or text attributes * Protocol sections with **predefined options** map to select attributes This means your meeting data doesn't just land as a blob of text in an activity note. It arrives as structured, queryable, reportable data inside Attio's native object model. Attio's custom objects give you full flexibility. If you've built custom objects for tracking deal qualifications, customer health scores, or project milestones, Optiverse can push structured data directly into those objects after every meeting. *** ### How Auto-Matching Works [#how-auto-matching-works] The integration uses a straightforward matching process: 1. **Optiverse reads attendee emails** from your calendar invite 2. **Emails are matched** against existing Attio person records 3. **Associations are followed** from people to their linked deals and companies 4. **Summaries are pushed** as notes and/or mapped attributes to all matched records For the best matching accuracy, ensure your Attio people records have email addresses that match what attendees use in their calendar invitations. *** ### Manual Push from the Recording Page [#manual-push-from-the-recording-page] When **Show in Quick Access** is enabled, the Attio icon appears at the top of every Meeting Recording page. Attio quick access icon on the meeting recording page Click the icon to open the push dialog: 1. A **deal selector** lets you choose which deal to push the notes to 2. A **summary preview** shows the protocol output that will be pushed (formatted, with word count) 3. Click **Push to Attio** to send the notes Push to Attio dialog showing deal selection and formatted summary preview #### When Manual Push Is Essential [#when-manual-push-is-essential] Automatic matching relies on attendee email addresses from calendar invites. Manual push fills the gap for situations where that matching cannot happen: * **On-site visits** documented afterward using the [Optiverse mobile app](/docs/mobile-app) * **Voice memos** recorded on the go to capture client conversations * **In-person meetings** without a calendar event containing attendee emails * **Meetings with attendees** whose emails aren't yet in Attio In all these cases, you can still push with one click by selecting the right deal manually. You can also ask the AI assistant on the homepage to push it for you via the MCP integration. For quick dictations captured on the go with the [mobile app](/docs/mobile-app), record your thoughts after the meeting. Then push the resulting notes to the right Attio deal either manually or by asking the AI assistant. *** ## Part 2: MCP Integration (Bilateral Access) [#part-2-mcp-integration-bilateral-access] The native integration pushes data from meetings to Attio. The MCP integration opens the reverse direction: the Optiverse AI assistant can search, read, create, update, and manage your entire Attio workspace through natural language. With 31 available tools, the Attio MCP integration is the most comprehensive CRM connection Optiverse offers. It covers records, lists, notes, tasks, and custom objects. ### Connecting the MCP Integration [#connecting-the-mcp-integration] 1. On the Optiverse **homepage**, click the **MCPs** tab in the top left MCP button on the Optiverse homepage 2. In the MCP Integrations popup, search for **Attio** and click **Connect** MCP Integrations popup showing Attio option 3. The connection re-uses your OAuth tokens from the native integration (no separate authentication required) 4. Once linked, you'll see all 31 available tools and permission controls Attio MCP integration showing 31 tools and permissions The MCP connection is authenticated via your existing integration settings. A short-lived access token is generated server-side each session for security. ### Available Tools (31 Total) [#available-tools-31-total] The Attio MCP integration gives the AI assistant the broadest access of any CRM connection: | Tool | What it does | | -------------------- | ------------------------------------------------------ | | **Search Records** | Find any record across all object types | | **Get Record** | Retrieve full details on a specific record | | **Create Record** | Create new people, companies, deals, or custom objects | | **Update Record** | Modify attributes on any record | | **Delete Record** | Remove records (with permission controls) | | **List Records** | Browse records in any object or list | | **Search Notes** | Find notes across your workspace | | **Create Note** | Add notes to any record | | **List Tasks** | View tasks across deals and people | | **Create Task** | Create new tasks with deadlines and assignees | | **Update Task** | Modify task status, deadline, or assignment | | **List Lists** | View all custom lists in your workspace | | **Get List Entries** | Browse entries in a specific list | ### Permission Modes [#permission-modes] You control how much autonomy the AI assistant has when interacting with Attio: | Mode | Behavior | | ----------------------- | -------------------------------------------------------------------------------------------------------------------------- | | **Auto-run** | The assistant executes any tool without asking. Best for power users who trust the workflow. | | **Ask on writes** | The assistant reads freely but asks permission before creating, updating, or deleting records. Recommended for most users. | | **Ask on every action** | The assistant requests consent at every step, including read operations. Most conservative. | *** ## Use Cases for Modern Sales Teams [#use-cases-for-modern-sales-teams] Attio users tend to value flexibility and data structure. The combination of Optiverse's protocol system and Attio's custom objects creates workflows that are far more powerful than basic meeting note logging. ### Cross-Reference Deals with Recent Meetings [#cross-reference-deals-with-recent-meetings] Validate that your Attio deals reflect the reality of what was discussed in recent customer conversations. **Example prompt:** > "Can you list my last three deals in Attio and check if I have met these clients in the last week?" Assistant querying Attio deals and cross-referencing with meeting data The assistant loads your recent deals from Attio, identifies the associated people, searches for meetings with those contacts in the specified timeframe, and reports back with a clear picture of which deals have had recent engagement and which haven't. *** ### Build Structured Deal Qualification Data [#build-structured-deal-qualification-data] Attio's custom attributes are designed to hold structured data. Optiverse's protocol system extracts that data from conversations. Together, they create an automated qualification engine. After every discovery call, your MEDDPICC or BANT protocol extracts qualification criteria. The mapping pushes each criterion to the corresponding attribute on the deal in Attio. Over time, this builds a complete qualification picture without any manual CRM entry. **Example prompts:** * "For my deals in the 'Discovery' stage, which ones are missing key qualification data?" * "Show me all deals where the economic buyer hasn't been identified yet." * "Which deals have complete MEDDPICC data based on our meeting notes?" *** ### Keep Pipeline Stages Aligned with Conversations [#keep-pipeline-stages-aligned-with-conversations] Deal stages should reflect what's actually happening with the customer. Use meeting intelligence to verify Attio pipeline data. **Example prompts:** * "Based on my last ten client meetings, are all deal stages in Attio still accurate?" * "Which deals should have progressed based on what was discussed this month?" * "Flag any deals where the stage hasn't changed in two weeks but we've had active meetings." *** ### Prepare for Calls with Full CRM Context [#prepare-for-calls-with-full-crm-context] Drag and drop an upcoming meeting into the Optiverse homepage chat. With the Attio MCP connected, the briefing includes live deal data, people attributes, and notes from Attio alongside your meeting history.
Drag and drop a meeting into Optiverse for a full briefing with Attio context
**Example prompts:** * "I have a call with \[company] in 10 minutes. Pull their Attio deal details, last meeting notes, and open tasks." * "What attributes do we have on the \[company] deal? What did we last discuss and what should I focus on?" * "Show me all people associated with \[company] and our recent interactions with each." *** ### Populate Custom Objects from Meeting Data [#populate-custom-objects-from-meeting-data] If you've built custom objects in Attio for use cases like customer health tracking, competitive intelligence, or project milestones, Optiverse can populate them directly from meeting discussions. **Example prompts:** * "After today's call, update the customer health score for \[company] in Attio based on the sentiment of our discussion." * "Create a new entry in my 'Competitive Mentions' list for the competitor discussed in today's meeting." * "Add a milestone to the \[company] deal based on the commitment they made today." *** ### Automate Contact Enrichment [#automate-contact-enrichment] Attio thrives on rich contact data. Optiverse captures details about people during meetings (their role, priorities, concerns, communication style) that can flow into Attio as structured attributes. **Example prompts:** * "Which meeting attendees from this month don't have a person record in Attio yet? List them." * "Update the contact notes for \[person] based on what they said in today's call about their priorities." * "For all new contacts created this week, add notes about their role and what they care about based on our meetings." *** ### Manage Tasks and Follow-ups from Conversations [#manage-tasks-and-follow-ups-from-conversations] Every meeting generates next steps. Use the MCP to create tasks directly in Attio from what was discussed. **Example prompts:** * "Create tasks in Attio for all action items from today's client meetings." * "What open tasks do I have in Attio for \[company]? Have any been addressed in our recent meetings?" * "Schedule a follow-up task for \[person] based on the timeline they mentioned in our call." *** ### Generate Pipeline Intelligence Reports [#generate-pipeline-intelligence-reports] Combine meeting insights with Attio data to create reports that capture what's truly happening in your pipeline. **Example prompts:** * "Give me a pipeline review: for each deal in 'Negotiation', show the last meeting date and what was discussed." * "Which deals closing this month have had positive recent meetings? Which seem at risk?" * "Summarize all client conversations from this week and which Attio deals they relate to." *** ### Audit Data Completeness Across Objects [#audit-data-completeness-across-objects] Attio's flexibility means there are often many attributes to keep current. Use Optiverse to identify gaps between what was discussed in meetings and what's actually recorded. **Example prompts:** * "Which people records are missing attributes that were discussed in recent meetings? (role, budget authority, timeline)" * "For deals in my pipeline, which ones have empty fields that should be filled based on our conversations?" * "Compare what we know from meetings about \[company] versus what's currently in their Attio record." *** ## Example Prompt Library [#example-prompt-library] | Category | Prompt | | ------------------------- | ------------------------------------------------------------------------------------------------------------------------ | | **Deal Validation** | "List my last three deals in Attio and check if I have met these clients in the last week." | | **Pipeline Review** | "For each deal in 'Proposal' stage, show the last meeting summary and next steps from Attio and meetings." | | **Meeting Prep** | "I'm meeting with \[company] tomorrow. Pull their Attio deal info, people records, and my last meeting notes." | | **Task Creation** | "Create follow-up tasks in Attio for all action items from today's calls." | | **Contact Enrichment** | "Which meeting attendees from this month don't exist in Attio yet? Add them with their role and company." | | **Custom Object Updates** | "Update the health score for \[company] in Attio based on today's conversation." | | **Stage Accuracy** | "Based on recent meetings, which deal stages in Attio need to be updated?" | | **Forecasting** | "Which deals closing this quarter have had recent positive meetings? Which are at risk based on conversation sentiment?" | | **Activity Gaps** | "Which deals haven't had a logged meeting in over two weeks? List them with their current stage." | | **Competitive Intel** | "Which competitors were mentioned across my client meetings this month? Map them to the relevant Attio deals." | *** ## Troubleshooting [#troubleshooting] | Issue | Solution | | --------------------------------- | ------------------------------------------------------------------------------------------------- | | Integration not syncing | Click **Reconnect** in Settings > Integrations > Attio to refresh authentication | | Contacts not matching | Verify that attendee emails in calendar invites match the email attribute on Attio people records | | Notes not appearing on deals | Ensure the person is properly associated with the deal in Attio | | Mapping not populating attributes | Check that the protocol section data types match the expected Attio attribute types | | MCP not finding records | Check that your Attio user has access to the objects and lists you're querying | If you disconnect and reconnect the integration, your automation preferences and attribute mappings will reset to defaults. Reconfigure them after reconnecting. # Dynamics 365 Integration (/docs/integrations-and-workflows/crm/dynamics-365) Optiverse pushes structured meeting data into Microsoft Dynamics 365 after every call. This page covers how to connect, how to choose your Dataverse environment, and what to do when records fail to load. *** ## Connecting Dynamics 365 [#connecting-dynamics-365] 1. Go to [**Settings > Integrations**](https://app.optiverse.ai/settings/integrations?integration=dynamics%20365) 2. Find **Dynamics 365** under the CRM category 3. Click **Connect** 4. Pick the Microsoft account you use for Dynamics 5. Once connected, the status changes to **Connected and ready** Dynamics 365 selected in the Integrations page with the Connect button in the side panel Each user connects their own Microsoft account. Optiverse only reads and writes records that account is allowed to access in Dynamics. *** ## Your environment URL [#your-environment-url] Dynamics stores your data in one **Dataverse environment**, the Dynamics 365 instance your company works in. Optiverse reads and writes in that environment only. It looks like this: ``` https://contoso.crm.dynamics.com ``` Keep the `https://` at the front. Optiverse will not accept the address without it. Stop at `.dynamics.com` and drop anything after it. Many companies have more than one environment, for example production, sandbox, and trial. Optiverse checks the environment before saving it. If verification fails, your previously selected environment is unchanged. ### When you connect [#when-you-connect] After you sign in: * **One ready environment:** Optiverse selects and verifies it for you. You will see its name and URL in the integration panel. * **Several ready environments:** choose the one you work in and click **Verify & save**. An environment marked **Not ready** cannot be selected. * **No environment found:** enter the Dataverse URL manually and click **Verify & save**. Connected Dynamics 365 panel showing the selected environment name, its URL, and Change environment Dynamics 365 environment picker with ready and not ready environments, Enter URL manually, and Verify & save ### Where to find your environment URL [#where-to-find-your-environment-url] If you need to check or enter it yourself: 1. Go to the [Power Platform admin center](https://admin.powerplatform.microsoft.com) 2. Click **Environments** 3. Click the environment holding your CRM data 4. Copy the value shown under **Environment URL** Power Platform admin center environment details with the Environment URL highlighted You can also read it from your browser. Open Dynamics as you normally would and look at the address bar. Keep everything from `https://` up to `.dynamics.com`, and drop the rest. ### Change the environment later [#change-the-environment-later] The selected environment name and URL stay visible after you connect. Click **Change environment**, pick another environment or enter a URL, then click **Verify & save**. If an environment is already saved, confirm the change with **Switch environment**. Switch environment confirmation, with the warning that saved settings should be reviewed Your opportunity settings, actions, and field mappings stay saved. Review them afterwards, because the new environment may use different fields. A wrong environment usually looks like a permissions problem. You get errors saying your user has no roles, because your account exists in that environment but has never been used there. Check the environment before asking an admin to change your permissions. *** ## Defining actions [#defining-actions] Actions decide what happens automatically after every meeting. Click **Add New Action** to add one. You can add as many as you need. | Action Type | What it does | | ------------------------- | -------------------------------------------------------------------- | | **Add New Contacts** | Creates a contact when a meeting attendee is not already in Dynamics | | **Push to Contacts** | Pushes the meeting summary to matched contact records | | **Push to Leads** | Pushes the meeting summary to matched lead records | | **Push to Opportunities** | Pushes the meeting summary to matched opportunity records | | **Push to Accounts** | Pushes the meeting summary to matched account records | Configured Dynamics 365 actions with the Add New Action button below them For each push action you choose which protocol's output gets pushed. Different actions can use different protocols, and they all run after every qualifying meeting. *** ## Field mapping [#field-mapping] By default the summary lands as a note on the record. If you want the data in specific Dynamics fields instead, click **Create Mapping** on any push action. Dynamics 365 action with the Create Mapping button You then pick a protocol and choose which Dynamics field each of its sections writes to. Mapping works on contacts, leads, accounts, and opportunities. This turns each meeting into data you can report on, rather than a block of text nobody can filter. Map sections to text fields. Optiverse writes the section text as it is, so a field expecting a number, a date, or a set of options will reject the value and that field stays empty. *** ## Troubleshooting [#troubleshooting] Missing or revoked Microsoft permissions show a **Needs attention** banner and a **Reconnect** action. Reconnecting refreshes Microsoft authorization. It does not delete or replace saved Dynamics actions. Your automations stay saved and run again once the connection is fixed. Needs attention banner with a Dynamics 365 connection error and the Reconnect action | What you see | Why | What to do | | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | "Your Microsoft session for Dynamics 365 has expired. Reconnect to continue." | Password change, sign-out everywhere, or the session aged out. | Click **Reconnect**. | | "Optiverse no longer has permission to access Dynamics 365. Reconnect, or ask your Microsoft admin to grant consent." | App consent was removed, or your organization requires admin consent. | Click **Reconnect**. If it keeps failing, ask your Microsoft admin to grant consent to Optiverse. See [Microsoft Admin Approval](/docs/integrations-and-workflows/microsoft-admin-consent). | | "Your Microsoft account doesn't have access to this environment." | You are not a user of that environment, or you have no security role there. | Ask your Dynamics admin for a security role, for example Salesperson, or choose another environment. | | "We couldn't reach this environment. It may have been deleted or disabled." | The environment was deleted or disabled, or the URL is wrong. | Check the URL in the Power Platform admin center, or choose another environment. | | "This environment belongs to a different Microsoft organisation than the account you connected." | The URL is from another tenant than the account you connected. | Connect with an account from that organisation, or choose another environment. | | "We didn't find a Dataverse environment for this Microsoft account." | Your tenant has no Dataverse database yet. This is common for new or trial tenants. | Create one in the Power Platform admin center, or start a Dynamics 365 Sales trial, then enter its URL. | | "Enter a URL like `https://yourorg.crm.dynamics.com`." | The URL is not a Dynamics 365 environment address. It must start with `https://` and end in `.dynamics.com`. | Copy the Environment URL from the Power Platform admin center. | | "Microsoft didn't respond. Try again in a moment." | Temporary Microsoft outage or network issue. | Click **Try again**. Your selected environment is unchanged. | | "User has not been assigned any roles" | No security role, or the wrong environment. | Check the environment first, then the role. | | Empty contact and account lists | The account has Basic User instead of Salesperson, so it only sees its own records. | Ask your admin for the Salesperson role. See below. | | "Need admin approval" when you sign in | Your company does not let users approve apps themselves. An admin approves Optiverse once for everyone. | See [Microsoft Admin Approval](/docs/integrations-and-workflows/microsoft-admin-consent) to get the link to send them. | | Records load but pushes do nothing | The role allows reading but not writing. | Ask your admin to add write permissions. | ### Assigning a security role [#assigning-a-security-role] Do this when Dynamics says the user has no roles, or when your lists come back empty. Check the environment URL first. A wrong URL causes the same error, and no role will fix it. 1. Go to the [Power Platform admin center](https://admin.powerplatform.microsoft.com) 2. Click **Environments**, then your environment 3. Click **Settings**, then **Users + permissions**, then **Users** 4. Find the user and click **Manage security roles** 5. Tick **Salesperson**, then click **Save** Pick **Salesperson** rather than Basic User. Basic User only shows records the user created themselves, so your lists come back empty and it still looks broken. You need Dynamics admin rights to do this. If you do not have them, send these steps to whoever manages your Dynamics. Still stuck? Email [support@optiverse.ai](mailto:support@optiverse.ai) or [book a call](https://www.optiverse.ai/meeting?utm_source=academy\&utm_medium=cta). # HubSpot Integration (/docs/integrations-and-workflows/crm/hubspot) Optiverse connects to HubSpot in two powerful ways: a native integration that automatically pushes meeting summaries to your CRM records, and an MCP integration that lets the AI assistant read, search, and update HubSpot data through natural conversation. Together, they eliminate the manual data entry that drains sales teams and ensure every customer interaction is captured in HubSpot without lifting a finger. *** ## Part 1: Native HubSpot Integration [#part-1-native-hubspot-integration] The native integration handles the automatic flow of meeting data from Optiverse into HubSpot. Once connected, your meeting summaries, contacts, and activity logs push to HubSpot without any manual work. ### Connecting HubSpot [#connecting-hubspot] 1. Go to [**Settings > Integrations**](https://app.optiverse.ai/settings/integrations?integration=hubspot) 2. Find **HubSpot** under the CRM category 3. Click **Connect** 4. Authenticate with your HubSpot account in the popup window 5. Once connected, the status changes to **Connected and ready** HubSpot integration page showing the Connect button Any user in your workspace can connect their own HubSpot account. Each connection uses that user's HubSpot permissions, so the integration only accesses records they have permission to view and edit. *** ### Automation Settings [#automation-settings] After connecting, you can configure four automation preferences that control how Optiverse interacts with your HubSpot data. HubSpot connected settings showing automation preferences #### Show in Quick Access [#show-in-quick-access] Enables the HubSpot icon on every Meeting Recording page, next to the **Share** button. This lets you manually push the currently displayed meeting notes to HubSpot at any time, choosing exactly which deal, contact, or company to send them to. #### Add New Contacts to HubSpot from Optiverse [#add-new-contacts-to-hubspot-from-optiverse] Optiverse reads attendee email addresses from your calendar invites. When this setting is enabled, if a meeting attendee does not already exist as a contact in HubSpot, Optiverse automatically creates a new contact record for them. #### Automatically Push Summaries to Associated Contacts [#automatically-push-summaries-to-associated-contacts] After every meeting, Optiverse pushes the meeting summary as a note under the matched contact records in HubSpot. The matching is based on attendee email addresses from the calendar invite. #### Automatically Push Summaries to Associated Deals [#automatically-push-summaries-to-associated-deals] Same as above, but the summary is also pushed to any open deals associated with the matched contacts. This keeps your deal timeline current with every customer conversation. #### Automatically Push Summaries to Associated Companies [#automatically-push-summaries-to-associated-companies] Pushes the meeting summary to the company records associated with the matched contacts. Useful for account level visibility across your entire organization. #### Which Summary Gets Pushed? [#which-summary-gets-pushed] The note that is automatically pushed to HubSpot is the output of your **default protocol**. Each user selects one protocol as their default on the [Protocols page](https://app.optiverse.ai/protocols), and that protocol generates the meeting summary that flows into HubSpot after every call. If you want a different protocol's output pushed to a specific record, use the manual push via the HubSpot Quick Access icon and switch to the desired protocol on the recording page first. *** ### How Auto-Matching Works [#how-auto-matching-works] The integration uses a straightforward matching process to connect meeting participants to HubSpot records: 1. **Optiverse reads attendee emails** from your calendar invite 2. **Emails are matched** against existing HubSpot contact records 3. **Associations are followed** from contacts to their linked companies and deals 4. **Summaries are pushed** as notes/activities to all matched records (contacts, deals, companies) This means every meeting is logged in HubSpot under the right records without anyone on your team needing to open HubSpot manually. For the best matching accuracy, ensure your HubSpot contacts have email addresses that match what attendees use in their calendar invitations. *** ### Manually Pushing Notes from a Recording [#manually-pushing-notes-from-a-recording] When **Show in Quick Access** is enabled, a HubSpot icon appears at the top of every Meeting Recording page. This gives you manual control over what gets pushed and where. HubSpot icon in quick access on the meeting recording page Click the HubSpot icon to open the push dialog: 1. A **summary preview** shows the current meeting notes that will be pushed (in HTML format) 2. A **destination selector** lets you choose which deal, contact, or company to push to 3. Click **Push** to send the notes Push to HubSpot dialog showing summary preview and deal selection This is useful when you want to: * Push notes to a specific deal that wasn't automatically matched * Re-push updated notes after editing the summary * Send a specific protocol's output to HubSpot (switch protocols first, then push) * Log a dictation or voice memo recorded via the mobile app #### Mobile Dictations and Recordings Without Attendees [#mobile-dictations-and-recordings-without-attendees] When you record a note or voice memo through the [Optiverse mobile app](/docs/mobile-app), there are no calendar attendees associated with the recording. This means automatic matching cannot work, since there are no email addresses to look up in HubSpot. In these cases, you have two options: 1. **Manual push.** Open the recording in Optiverse, click the HubSpot icon, and manually select the deal, contact, or company where the note should be logged. 2. **Ask the assistant.** Go to the Optiverse homepage and tell the AI to push the recording for you. For example: "Push my latest voice memo to the Acme Corp deal in HubSpot." The MCP integration handles the rest, finding the right record and logging the note without you needing to navigate HubSpot at all. The assistant approach is especially convenient for quick dictations captured on the go. Record your thoughts after a meeting, and let the AI file them in the right place. *** ## Part 2: MCP Integration (Bilateral Access) [#part-2-mcp-integration-bilateral-access] The native integration pushes data **from** Optiverse **to** HubSpot. The MCP integration adds the reverse direction: it gives the Optiverse AI assistant the ability to **read, search, and update** your HubSpot data directly. This transforms Optiverse from a one-way sync tool into a bilateral CRM assistant that can query your pipeline, validate deal data, cross-reference meeting discussions with CRM records, and take actions in HubSpot on your behalf. ### Connecting the MCP Integration [#connecting-the-mcp-integration] 1. On the Optiverse **homepage**, click the **MCPs** tab in the top left MCP button on the Optiverse homepage 2. In the MCP Integrations popup, search for **HubSpot** and click **Connect** MCP Integrations popup showing HubSpot CRM option 3. The connection re-uses your OAuth tokens from the native integration (no separate authentication required) 4. Once linked, you'll see all 21 available tools and permission controls HubSpot MCP integration showing tools and permissions The MCP connection is authenticated via your existing integration settings. A short-lived access token is generated server-side each session for security. ### Available Tools (21 Total) [#available-tools-21-total] The HubSpot MCP integration exposes a comprehensive set of tools to the AI assistant: | Tool | What it does | | ------------------------ | ----------------------------------------------- | | **List Objects** | Browse contacts, deals, companies, tickets | | **Search Objects** | Find specific records using filters and queries | | **Batch Read Objects** | Retrieve multiple records at once | | **Batch Create Objects** | Create multiple new records | | **Batch Update Objects** | Update fields on multiple records | | **Get Schemas** | Understand your HubSpot data structure | | **List Properties** | See all available fields on an object type | | **Get Property** | Retrieve details about a specific field | | **List Owners** | See all HubSpot users/owners in your account | | **List Pipelines** | View deal pipelines and their stages | | **Get Pipeline** | Get details on a specific pipeline | ### Permission Modes [#permission-modes] You control how much autonomy the AI assistant has when interacting with HubSpot: | Mode | Behavior | | ----------------------- | --------------------------------------------------------------------------------------------------------------- | | **Auto-run** | The assistant runs any tool without asking. Best for power users who trust the workflow. | | **Ask on writes** | The assistant reads freely but asks permission before creating or updating records. Recommended for most users. | | **Ask on every action** | The assistant requests consent at every step, including read operations. Most conservative. | *** ## Use Cases for Sales Teams [#use-cases-for-sales-teams] The real power of the HubSpot integration emerges when you combine meeting intelligence with CRM data. Below are practical workflows that solve common pains for sales teams. ### Keep Deals Updated Without Manual Entry [#keep-deals-updated-without-manual-entry] The number one complaint from sales leaders: reps don't update HubSpot. With Optiverse, every customer call automatically updates the relevant deal with what was discussed, decisions made, and next steps agreed upon. **What happens automatically:** * Meeting summary is logged under the deal as a timestamped note * Key information from qualification frameworks (MEDDIC, BANT, SPIN) is captured via protocols * Action items and commitments are visible on the deal timeline **Example prompt (MCP):** > "Look at my last ten client meetings and validate that all deal information in HubSpot is up to date." Optiverse AI validating HubSpot deals against recent meetings The assistant will search your recent meetings, cross-reference them with HubSpot deals, and flag any discrepancies: deals that should have moved stages, missing notes, or outdated information. AI searching and validating HubSpot deals in real-time *** ### Audit Pipeline Health from Meeting Data [#audit-pipeline-health-from-meeting-data] Sales leaders need to verify that pipeline data reflects reality, not just what reps entered weeks ago. Optiverse can compare what was actually said in meetings against what's recorded in HubSpot. **Example prompts:** * "Which deals in my pipeline haven't had a meeting in the last 30 days?" * "Compare the deal stages in HubSpot with what was discussed in recent meetings. Are any deals stuck?" * "List all deals where the decision maker hasn't been identified in any meeting yet." *** ### Prepare for Calls with Full CRM Context [#prepare-for-calls-with-full-crm-context] Before any customer call, drag and drop the upcoming meeting from your calendar directly into the Optiverse homepage chat. The assistant will automatically pull together everything you need: past meeting discussions with those attendees, current HubSpot deal status, open action items, contact history, and suggested talking points.
Drag and drop a meeting into Optiverse for a full briefing with HubSpot context
With the HubSpot MCP connected, the briefing automatically includes CRM data: deal stage, pipeline value, associated contacts, and recent activities logged in HubSpot. You get a complete picture in seconds. **Example prompts:** * "I have a call with Acme Corp in 10 minutes. Show me the HubSpot deal status, last three meeting summaries, and any open action items." * "What's the current deal value and stage for the Acme opportunity? What did we discuss last time?" * "Pull up all contacts associated with Acme and summarize our interaction history." *** ### Auto-Create Contacts After Discovery Calls [#auto-create-contacts-after-discovery-calls] When you take a first meeting with a new prospect, Optiverse detects attendee emails that don't exist in HubSpot and creates contact records automatically. No more losing leads because someone forgot to add them to the CRM after an intro call. *** ### Cross-Reference Meeting Commitments with Deal Progress [#cross-reference-meeting-commitments-with-deal-progress] One of the most painful gaps in sales: a rep promises something on a call, but it never gets logged or followed up. Optiverse captures every commitment from every meeting and can validate whether those commitments are reflected in HubSpot. **Example prompts:** * "In my last five sales calls, what next steps did I commit to? Have those been reflected in HubSpot?" * "Show me all action items from client meetings this week that haven't been logged in a deal." * "Which prospects mentioned a timeline or deadline in our conversations? Are those deadlines captured in the HubSpot deal properties?" *** ### Generate Weekly Pipeline Reports from Meetings [#generate-weekly-pipeline-reports-from-meetings] Instead of manually reviewing calls and CRM entries separately, ask Optiverse to generate a unified pipeline report that combines both sources. **Example prompts:** * "Generate a pipeline review report combining meeting notes and HubSpot deal data for this week." * "Summarize all deal progression this month based on what was discussed in meetings." * "Create an exec summary of pipeline changes: deals that advanced, deals at risk, and new opportunities from this week's conversations." *** ### Identify Deals at Risk Early [#identify-deals-at-risk-early] Catch at-risk deals before they slip by analyzing meeting sentiment, buyer engagement, and CRM data together. **Example prompts:** * "Which deals haven't moved stage in over two weeks despite having recent meetings?" * "In my discovery calls this month, which prospects raised objections that haven't been addressed?" * "Flag any deals where the meeting discussions suggest a lower likelihood of closing than the current HubSpot forecast." *** ### Automate Post-Meeting CRM Hygiene [#automate-post-meeting-crm-hygiene] After every call, the combination of native push and MCP gives you complete CRM hygiene without manual work: 1. **Native integration** automatically pushes the meeting summary to the right contact, deal, and company 2. **MCP integration** lets you ask the AI to verify the data was pushed correctly, update deal stages, or add missing information **Example prompts:** * "After today's calls, check that all meeting notes were pushed to the right deals in HubSpot." * "Update the deal stage for Acme Corp to 'Proposal Sent' based on today's conversation." * "Create a new contact for the CFO I met today and associate them with the Acme deal." *** ## Example Prompt Library [#example-prompt-library] Here's a collection of high-value prompts for sales teams using the HubSpot MCP integration: | Category | Prompt | | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | **Pipeline Review** | "Give me a full pipeline review. For each deal in 'Negotiation' stage, show last meeting date, key discussion points, and next steps." | | **Deal Validation** | "Look at my last ten client meetings and validate that all the information in HubSpot deals is up to date." | | **Meeting Prep** | "I'm meeting with \[company] tomorrow. Pull their HubSpot deal info, last three meeting summaries, and any open action items." | | **Contact Enrichment** | "Which meeting attendees from this month don't have a contact record in HubSpot? List them with their email and company." | | **Forecast Support** | "Based on my meetings this quarter, which deals are likely to close and which are at risk? Cross-reference with HubSpot stages." | | **Activity Gaps** | "Which deals in my pipeline haven't had a logged meeting in over three weeks?" | | **Competitive Intel** | "In all my sales meetings this month, which competitors were mentioned? Map them to the relevant HubSpot deals." | | **Stakeholder Mapping** | "For the \[company] deal, list all people I've met with, their roles, and what each cares about most based on our conversations." | | **Follow-up Drafting** | "Draft a follow-up email to \[person] at \[company] summarizing our last meeting and confirming the next steps we agreed on." | | **Quarterly Review** | "Summarize all client meetings from Q1 and compare the outcomes against HubSpot deal stages. Where are the gaps?" | *** ## Troubleshooting [#troubleshooting] | Issue | Solution | | ---------------------------- | ----------------------------------------------------------------------------------------- | | Integration not syncing | Click **Reconnect** in Settings > Integrations > HubSpot to refresh authentication | | Contacts not matching | Verify that attendee emails in calendar invites match the email field in HubSpot contacts | | Notes not appearing on deals | Ensure the contact is properly associated with the deal in HubSpot | | MCP not finding records | Check that your HubSpot user has read access to the objects you're querying | | Permission errors on writes | Switch MCP permission mode to "Ask on writes" to see which action is being blocked | If you disconnect and reconnect the integration, your automation preferences will reset to defaults. Reconfigure them after reconnecting. # CRM Integrations (/docs/integrations-and-workflows/crm) Automatically sync meeting summaries, action items, and deal insights into your CRM after every call. Native auto-push integration + bilateral MCP access for querying and updating deals with natural language. Field-by-field mapping, multi-action workflows, and bilateral MCP access for querying opportunities with natural language. Push meeting summaries to contacts, leads, opportunities, and accounts, with field mapping and control over which Dataverse environment you connect to. Auto-push meeting notes to deals and contacts, plus bilateral MCP access for managing your pipeline with natural language. Custom object mapping, auto-push to contacts and deals, plus 31-tool MCP access for managing your flexible CRM with natural language. # Pipedrive Integration (/docs/integrations-and-workflows/crm/pipedrive) Optiverse connects to Pipedrive to keep your sales pipeline up to date after every customer conversation. Meeting summaries flow directly into your deals and contacts, new contacts are created automatically from meeting attendees, and the MCP integration lets you manage your entire Pipedrive instance through natural language on the Optiverse homepage. *** ## Part 1: Native Pipedrive Integration [#part-1-native-pipedrive-integration] The native integration handles automatic data flow from Optiverse into Pipedrive. Every meeting that involves a Pipedrive contact gets its summary logged to the right records without any manual work. ### Connecting Pipedrive [#connecting-pipedrive] 1. Go to **Settings > Integrations** 2. Find **Pipedrive** under the CRM category 3. Click **Connect** 4. Authenticate with your Pipedrive account in the popup window 5. Once connected, the status changes to **Connected and ready** Pipedrive integration page showing the Connect button and available automations Each user connects their own Pipedrive account. The integration respects Pipedrive permissions, so it only accesses deals and contacts the authenticated user can view and edit. *** ### Automation Settings [#automation-settings] After connecting, you configure three automation preferences that control what happens after every meeting. Pipedrive connected settings showing automation preferences #### Show in Quick Access [#show-in-quick-access] Enables the Pipedrive icon on every Meeting Recording page, next to the **Share** button. This lets you manually push the currently displayed meeting notes to Pipedrive deals at any time. #### Add New Contacts to Pipedrive from Optiverse [#add-new-contacts-to-pipedrive-from-optiverse] Optiverse reads attendee email addresses from your calendar invites. When this setting is enabled, if a meeting attendee does not already exist as a contact (person) in Pipedrive, Optiverse automatically creates a new contact record for them. This ensures you never lose a prospect because someone forgot to add them to the CRM after a call. #### Automatically Push Summaries to Associated Contacts [#automatically-push-summaries-to-associated-contacts] After every meeting, Optiverse pushes the meeting summary as a note under the matched contact records in Pipedrive. Matching is based on attendee email addresses from the calendar invite. #### Automatically Push Summaries to Associated Deals [#automatically-push-summaries-to-associated-deals] The meeting summary is also pushed to any open deals associated with the matched contacts. This keeps your deal timeline current with every customer interaction, building a complete activity history without manual logging. *** ### Which Summary Gets Pushed? [#which-summary-gets-pushed] The note that is automatically pushed to Pipedrive is the output of your **default protocol**. Each user selects one protocol as their default on the [Protocols page](https://app.optiverse.ai/protocols), and that protocol generates the meeting summary that flows into Pipedrive after every call. If you want a different protocol's output pushed to a specific deal, use the manual push via the Pipedrive Quick Access icon after switching to the desired protocol on the recording page. *** ### How Auto-Matching Works [#how-auto-matching-works] The integration uses a straightforward matching process: 1. **Optiverse reads attendee emails** from your calendar invite 2. **Emails are matched** against existing Pipedrive contact (person) records 3. **Associations are followed** from contacts to their linked deals and organizations 4. **Summaries are pushed** as notes to all matched records (contacts and deals) This means every qualifying meeting is logged in Pipedrive under the right records automatically. For the best matching accuracy, ensure your Pipedrive contacts have email addresses that match what attendees use in their calendar invitations. *** ### Manual Push from the Recording Page [#manual-push-from-the-recording-page] When **Show in Quick Access** is enabled, the Pipedrive icon appears at the top of every Meeting Recording page. Pipedrive quick access icon on the meeting recording page Click the icon to open the push dialog: 1. A **deal selector** lets you choose which deal to push the notes to 2. A **summary preview** shows the protocol output that will be pushed (in HTML format, with word count) 3. Click **Push to Pipedrive** to send the notes Push to Pipedrive dialog showing deal selection and summary preview #### When Manual Push Is Essential [#when-manual-push-is-essential] Automatic matching relies on attendee email addresses from calendar invites. Manual push fills the gap for situations where that matching cannot happen: * **On-site visits** documented afterward using the [Optiverse mobile app](/docs/mobile-app) * **Voice memos** recorded on the go to capture client conversations * **In-person meetings** without a calendar event containing attendee emails * **Meetings with attendees** whose emails aren't yet in Pipedrive In all these cases, you can still push with one click by selecting the right deal manually. You can also ask the AI assistant on the homepage to push it for you via the MCP integration. For quick voice memos and dictations captured on the go with the [mobile app](/docs/mobile-app), just record your thoughts after the meeting. Then push the resulting notes to the right Pipedrive deal either manually or by asking the AI assistant. *** ## Part 2: MCP Integration (Bilateral Access) [#part-2-mcp-integration-bilateral-access] The native integration pushes data from meetings to Pipedrive. The MCP integration opens the reverse direction: the Optiverse AI assistant can read, search, create, and update Pipedrive records directly through conversation. This turns Optiverse into a hands-free Pipedrive manager. Ask questions about your pipeline, create records from meeting context, or validate deal data, all without opening Pipedrive. ### Connecting the MCP Integration [#connecting-the-mcp-integration] 1. On the Optiverse **homepage**, click the **MCPs** tab in the top left MCP button on the Optiverse homepage 2. In the MCP Integrations popup, search for **Pipedrive** and click **Connect** MCP Integrations popup showing Pipedrive option 3. The connection re-uses your OAuth tokens from the native integration (no separate authentication required) 4. Once linked, you'll see all 22 available tools and permission controls Pipedrive MCP integration showing 22 tools and permissions The MCP connection is authenticated via your existing integration settings. A short-lived access token is generated server-side each session for security. ### Available Tools (22 Total) [#available-tools-22-total] The Pipedrive MCP integration gives the AI assistant comprehensive access to your pipeline: | Tool | What it does | | ----------------------- | ---------------------------------------- | | **List Deals** | Browse deals in your pipeline | | **Get Deal** | Retrieve details on a specific deal | | **Create Deal** | Create a new deal with custom fields | | **Update Deal** | Modify deal stage, value, or any field | | **Delete Deal** | Remove a deal (with permission controls) | | **List Persons** | Browse contacts in Pipedrive | | **Get Person** | Retrieve contact details | | **Create Person** | Create a new contact | | **Update Person** | Modify contact fields | | **List Organizations** | Browse organizations | | **Create Organization** | Create a new organization | | **Update Organization** | Modify organization fields | | **List Activities** | View activities and tasks | | **Create Activity** | Schedule new activities | | **List Pipelines** | View all pipeline configurations | | **List Stages** | See stages within pipelines | ### Permission Modes [#permission-modes] You control how much autonomy the AI assistant has when interacting with Pipedrive: | Mode | Behavior | | ----------------------- | -------------------------------------------------------------------------------------------------------------------------- | | **Auto-run** | The assistant executes any tool without asking. Best for power users who trust the workflow. | | **Ask on writes** | The assistant reads freely but asks permission before creating, updating, or deleting records. Recommended for most users. | | **Ask on every action** | The assistant requests consent at every step, including read operations. Most conservative. | *** ## Use Cases for Sales Teams [#use-cases-for-sales-teams] The combination of automatic meeting logging and MCP access creates workflows that eliminate the manual CRM data entry that drains sales productivity. ### Bulk-Create Records from Recent Meetings [#bulk-create-records-from-recent-meetings] After a busy week of client calls, use the MCP to create all the necessary Pipedrive records at once, including organizations, contacts, and deals, based on what was discussed. **Example prompt:** > "I need you to create a deal, contact, and account on Pipedrive for the last 3 clients I met with." Asking the assistant to create Pipedrive records from recent meetings The assistant identifies your recent client meetings, extracts the relevant information (company names, contact details, deal context), and creates all records in Pipedrive with proper associations between them. Assistant creating organizations, contacts, and deals in Pipedrive In this example, the assistant created 9 records total: 3 organizations, 3 contacts linked to those organizations, and 3 deals linked to both, all in under 2 seconds. *** ### Keep Your Pipeline Current Without Opening Pipedrive [#keep-your-pipeline-current-without-opening-pipedrive] The most common complaint from sales managers: reps don't update their CRM. With Optiverse, deal data stays current because meeting summaries are automatically pushed after every call. But the MCP takes it further by letting you validate and update pipeline data through conversation. **Example prompts:** * "Which deals in my pipeline haven't had a meeting logged in the last two weeks?" * "Move the \[company] deal to the 'Proposal Sent' stage based on today's call." * "Update the deal value for \[company] to the budget they mentioned in our meeting." *** ### Prepare for Calls with Full Pipeline Context [#prepare-for-calls-with-full-pipeline-context] Drag and drop an upcoming meeting into the Optiverse homepage chat. With the Pipedrive MCP connected, the briefing includes live deal data alongside your meeting history.
Drag and drop a meeting into Optiverse for a full briefing with Pipedrive context
**Example prompts:** * "I have a call with \[company] in 10 minutes. Show me the Pipedrive deal status, last meeting notes, and any open action items." * "What stage is the \[company] deal in? What did we last discuss and what should I bring up?" * "Pull up all contacts at \[organization] and summarize our recent interactions." *** ### Auto-Create Contacts After Every New Meeting [#auto-create-contacts-after-every-new-meeting] When you meet someone for the first time, Optiverse checks if they exist in Pipedrive. If they don't, a new contact is created automatically with their name and email. No more forgetting to log new prospects after intro calls. *** ### Validate Deal Stages Against Meeting Reality [#validate-deal-stages-against-meeting-reality] Pipeline data should reflect what's actually happening in customer conversations. Optiverse can cross-reference both sources and flag inconsistencies. **Example prompts:** * "Based on my recent meetings, are all deal stages in Pipedrive accurate?" * "Which deals should have progressed based on what was discussed this month?" * "Flag any deals where the last meeting outcome suggests the stage should be different." *** ### Generate Pipeline Reports from Meeting Data [#generate-pipeline-reports-from-meeting-data] Combine meeting intelligence with Pipedrive data to produce reports that capture what's really happening in your pipeline. **Example prompts:** * "Give me a pipeline review: for each deal in the 'Qualified' stage, show the last meeting date and key discussion points." * "Summarize all client meetings from this week and which Pipedrive deals they relate to." * "Which deals closing this month actually had positive last meetings? Which are at risk?" *** ### Track Action Items and Follow-ups [#track-action-items-and-follow-ups] Every meeting produces next steps. Optiverse captures them automatically, and the MCP lets you verify they're reflected in Pipedrive activities. **Example prompts:** * "What action items did I commit to in client meetings this week? Create activities in Pipedrive for each one." * "Check if the next steps from yesterday's calls have been logged as activities." * "Schedule follow-up activities in Pipedrive for all deals that had meetings today." *** ### Competitive Intelligence from Conversations [#competitive-intelligence-from-conversations] When competitors come up in sales calls, that context gets captured by your meeting protocols. Use the MCP to connect those insights back to specific deals. **Example prompts:** * "In my sales calls this month, which competitors were mentioned? Which deals are they affecting?" * "Summarize what prospects said about \[competitor] across all my recent meetings." * "For deals in the 'Negotiation' stage, has any competitor been discussed?" *** ### Clean Up Stale Pipeline Data [#clean-up-stale-pipeline-data] Pipelines accumulate dead deals and outdated contacts over time. Use meeting data as the source of truth to identify what should be cleaned up. **Example prompts:** * "Which deals in my pipeline haven't had any meeting in over a month? Should any be moved to lost?" * "List contacts I haven't spoken with in the last quarter who still have open deals." * "Are there any deals where the associated contact hasn't responded to outreach based on our meetings?" *** ## Example Prompt Library [#example-prompt-library] | Category | Prompt | | ------------------------ | ------------------------------------------------------------------------------------------------------- | | **Bulk Record Creation** | "Create a deal, contact, and organization in Pipedrive for the last 3 clients I met with." | | **Pipeline Review** | "For each deal in 'Proposal Sent' stage, show the last meeting summary and next steps." | | **Stage Updates** | "Based on today's meetings, which deals should move to a new stage? Update them." | | **Meeting Prep** | "I'm meeting with \[company] in 5 minutes. Pull their Pipedrive deal info and my last 3 meeting notes." | | **Activity Tracking** | "Create follow-up activities in Pipedrive for all action items from today's client calls." | | **Contact Gaps** | "Which meeting attendees from this month don't have a Pipedrive contact record yet?" | | **Forecasting** | "Based on recent meetings, which deals closing this month are genuinely on track?" | | **Win/Loss Analysis** | "Summarize the meeting discussions for deals I closed this quarter. What patterns led to wins?" | | **Pipeline Hygiene** | "Which deals haven't had a logged meeting in over three weeks? List them with their current stage." | | **Competitive Intel** | "Which competitors were mentioned in sales calls this month? Map them to the relevant deals." | *** ## Troubleshooting [#troubleshooting] | Issue | Solution | | ------------------------------ | ------------------------------------------------------------------------------------------- | | Integration not syncing | Click **Reconnect** in Settings > Integrations > Pipedrive to refresh authentication | | Contacts not matching | Verify that attendee emails in calendar invites match the email field on Pipedrive persons | | Notes not appearing on deals | Ensure the contact is properly linked to the deal in Pipedrive | | New contacts not being created | Check that "Add new contacts to Pipedrive from Optiverse" is enabled in automation settings | | MCP not finding records | Check that your Pipedrive user has access to the deals and contacts you're querying | If you disconnect and reconnect the integration, your automation preferences will reset to defaults. Reconfigure them after reconnecting. # Salesforce Integration (/docs/integrations-and-workflows/crm/salesforce) Optiverse integrates with Salesforce at a depth that goes far beyond logging a text note after a meeting. You get full control over what data gets pushed, where it goes, and how it maps to your Salesforce fields. Combined with the MCP integration for bilateral access, Optiverse becomes the missing link between your customer conversations and your Salesforce data. *** ## Part 1: Native Salesforce Integration [#part-1-native-salesforce-integration] The native integration handles the automatic flow of structured meeting data from Optiverse into Salesforce. Unlike basic notetakers that dump unformatted text into activity logs, Optiverse lets you define exactly which protocol outputs push to which Salesforce objects, with field-by-field precision. ### Connecting Salesforce [#connecting-salesforce] 1. Go to [**Settings > Integrations**](https://app.optiverse.ai/settings/integrations?integration=salesforce) 2. Find **Salesforce** under the CRM category 3. Click **Connect** 4. Authenticate with your Salesforce credentials in the popup window 5. Once connected, the status changes to **Connected and ready** Salesforce integration page showing the Connect button and available automations Each user connects their own Salesforce account. The integration respects Salesforce permissions, so it only accesses records the authenticated user can view and edit. *** ### Defining Actions [#defining-actions] After connecting, you configure **actions** that define what happens automatically after every meeting. There is no limit on how many actions you can define. Each action specifies a destination and which protocol template to use. Salesforce connected settings showing multiple configured actions #### Available Action Types [#available-action-types] Click **Add New Action** to see the full list of available action types: Action type dropdown showing all available options | Action Type | What it does | | ------------------------- | --------------------------------------------------------------------------------- | | **Add New Contacts** | Creates a new contact in Salesforce if the meeting attendee doesn't already exist | | **Push to Contacts** | Pushes the meeting summary to matched contact records | | **Push to Leads** | Pushes the meeting summary to matched lead records | | **Push to Opportunities** | Pushes the meeting summary to matched opportunity records | | **Push to Accounts** | Pushes the meeting summary to matched account records | #### Choosing a Protocol Per Action [#choosing-a-protocol-per-action] For every push action, you select which protocol template's output will be pushed. This is configured directly on the action row. You can have multiple actions pushing different protocols to different destinations simultaneously. For example: * **Action 1:** Push your "BANT for Sales" protocol to Leads * **Action 2:** Push your "MEDDPICC Client Interaction Summary" to Opportunities * **Action 3:** Push a general meeting summary to Accounts using the meeting's default protocol All of these execute automatically after every qualifying meeting. You can also select "Use meeting's protocol" to push whatever protocol was active for that specific meeting, rather than a fixed template. *** ### Field-by-Field Mapping [#field-by-field-mapping] This is where the Salesforce integration delivers something most meeting notetakers cannot: granular, structured data flowing into specific Salesforce fields, not just a blob of text in an activity note. For any push action, click **Create Mapping** to define how each section of your protocol maps to Salesforce fields. Action row with Create Mapping button for field-by-field configuration Clicking **Create Mapping** opens a configuration panel where you map each protocol section to a specific Salesforce field: Field Mapping popup showing protocol sections mapped to Salesforce opportunity fields #### How It Works [#how-it-works] Each section of your protocol template has a defined data type (text, bullet list, number, predefined options, table). These data types map directly to Salesforce field types: | Protocol Section Type | Maps to Salesforce Field Type | | --------------------- | ------------------------------------- | | Text | Text, Long Text Area | | Bullet/List | Long Text Area, Multi-Select Picklist | | Number | Number, Currency | | Predefined Options | Picklist, Dropdown | | Table | Long Text Area (formatted) | #### Why This Matters for RevOps [#why-this-matters-for-revops] Most meeting recording tools push an unformatted text note or HTML blob into Salesforce. This creates a data problem: the information exists in Salesforce, but it's unstructured and cannot be used for reporting, pipeline analysis, or automation rules. With Optiverse's field-by-field mapping: * **Deal stages** extracted from conversation flow into the Stage picklist * **Budget figures** mentioned in calls populate the Amount field * **Decision criteria** captured by the protocol map to custom fields you've built for your sales process * **Next steps** push directly into activity fields that trigger workflow rules This turns every meeting into structured, reportable, automatable Salesforce data. #### Mapping Across Object Types [#mapping-across-object-types] Field mapping is not limited to Opportunities. You can create mappings for: * **Opportunities** (deal data, qualification criteria, next steps) * **Accounts** (company-level insights, relationship notes) * **Contacts** (individual preferences, communication notes) * **Leads** (qualification scores, discovery insights) Each object type can use a different protocol template with its own mapping. Everything runs simultaneously after every meeting. *** ### Show in Quick Access [#show-in-quick-access] Enable this toggle to display Salesforce icons on every Meeting Recording page, next to the **Share** button. Two icons appear: 1. **Sync status icon** (shows auto-push feedback) 2. **Manual push icon** (lets you push on demand) *** ### Auto-Sync Status and Feedback [#auto-sync-status-and-feedback] The sync status icon gives you direct, per-meeting feedback on what happened with the Salesforce integration after each recording. Salesforce auto-sync status showing push results for each action For every meeting, you can see: * Which actions were executed successfully * Which actions were skipped and why * Timestamps for each push attempt Common reasons for a skipped push: * No matching contact found (attendee email doesn't exist in Salesforce) * No associated lead or opportunity for the matched contact * The "Add New Contacts" action is disabled, so unrecognized attendees are ignored * Multiple ambiguous matches (e.g., contact is linked to several open opportunities) This transparency makes troubleshooting straightforward. You never have to wonder if your meeting data made it to Salesforce. *** ### Manual Push [#manual-push] When auto-push cannot work, or when you want to send notes to a specific record manually, click the Salesforce cloud icon on the recording page. Push to Salesforce dialog with tabs for Accounts, Contacts, Leads, and Opportunities The manual push dialog gives you full control: * **Destination tabs:** Choose between Accounts, Contacts, Leads, or Opportunities * **Record selector:** Search and pick the exact record to push to * **Push mode:** Send the summary **As a Note** (full text) or **Per Section** (field-by-field mapping) This means even with the manual push, you still get structured field mapping, not just a text dump. #### When Manual Push Is Essential [#when-manual-push-is-essential] The automatic matching relies on attendee email addresses from calendar invites. Manual push fills the gap for situations where that matching cannot happen: * **On-site visits** where you dictate notes through the [Optiverse mobile app](/docs/mobile-app) afterward * **In-person meetings** without a calendar event containing attendee emails * **Voice memos** recorded on the go to document a client conversation * **Meetings with external participants** whose emails aren't in Salesforce yet * **Internal debriefs** that should be logged against a specific opportunity In all these cases, you can still push with one click, selecting the right destination and getting the full benefit of protocol-based structured output. For quick voice memos captured on the go, the [Optiverse mobile app](/docs/mobile-app) records and transcribes immediately. Then you can push the resulting notes to the right Salesforce record either manually from the recording page or by asking the AI assistant on the homepage. *** ## Part 2: MCP Integration (Bilateral Access) [#part-2-mcp-integration-bilateral-access] The native integration moves data in one direction: from meetings to Salesforce. The MCP integration opens the reverse channel, giving the Optiverse AI assistant the ability to query, search, and update Salesforce records directly through conversation. ### Connecting the MCP Integration [#connecting-the-mcp-integration] 1. On the Optiverse **homepage**, click the **MCPs** tab in the top left MCP button on the Optiverse homepage 2. In the MCP Integrations popup, search for **Salesforce** and click **Connect** MCP Integrations popup showing Salesforce CRM option 3. The connection re-uses your OAuth tokens from the native integration (no separate authentication required) 4. Once linked, you'll see all 20 available tools and permission controls Salesforce MCP integration showing 20 tools and permissions The MCP connection is authenticated via your existing integration settings. A short-lived access token is generated server-side each session for security. ### Available Tools (20 Total) [#available-tools-20-total] The Salesforce MCP integration gives the AI assistant comprehensive access to your Salesforce data: | Tool | What it does | | ------------------- | --------------------------------------------------- | | **SOQL Query** | Run any SOQL query against your Salesforce data | | **Describe Object** | Understand the schema of any Salesforce object | | **List Objects** | Browse available Salesforce objects | | **Get Record** | Retrieve a specific record by ID | | **Create Record** | Create new contacts, leads, opportunities, accounts | | **Update Record** | Modify fields on existing records | | **Delete Record** | Remove records (with permission controls) | | **Search** | Full-text search across all Salesforce data | ### Permission Modes [#permission-modes] You control how much autonomy the AI assistant has: | Mode | Behavior | | ----------------------- | -------------------------------------------------------------------------------------------------------------------------- | | **Auto-run** | The assistant executes any tool without asking. Best for experienced users who trust the workflow. | | **Ask on writes** | The assistant reads freely but asks permission before creating, updating, or deleting records. Recommended for most users. | | **Ask on every action** | The assistant requests consent at every step, including read operations. Most conservative. | *** ## Use Cases for Sales and Revenue Teams [#use-cases-for-sales-and-revenue-teams] The combination of meeting intelligence and live Salesforce access opens up workflows that were previously impossible without hours of manual CRM work.