# Aila Docs > Aila is AI agents for mortgage teams. It manages the origination workflow, from the borrower call to a clean file ready for underwriting, and stops only when a human needs to decide. ## Key facts - Agents: Intake Agent (builds the 1003 in ARIVE or LendingPad from the call, needs list, CRM updates, credit consent audit trail, MISMO 3.4 export), Call Compliance Agent (scores every call; DNC, disclosures, rate quoting), Pre-Approval Agent (checks every doc, calculates qualifying income with the method shown; the LO issues the pre-approval), Ops Prep Agent (runs your SOP before underwriting), Ask Aila (chat with any file; LOS updates with approval), and custom agents. - Plans: Basic $50/user/month (Intake + Call Compliance, self-serve, 7-day free trial). Enterprise $200/user/month (all agents + custom agents, set up with our team). - Capture: dialers/VOIPs, a meeting bot for Zoom, Google Meet, and Microsoft Teams, iPhone/Android (Aila iPhone app; Pocket or upload on Android), Pocket recorders, and Aila for Mac. Teams keep their phone number. - Integrations: 30+, including ARIVE, LendingPad, GoHighLevel, Bonzo, Follow Up Boss, HubSpot, Salesforce, Pipedrive, Gmail, Outlook, ChatGPT, and Claude. - Security: SOC 2 Type 2 audit in progress with Sentry Assurance, monitored by Vanta. AI providers operate under zero data retention for loan data. - Every page below is also available as markdown: add `.md` to its URL (the home page is /index.md). Marketing site: https://www.withaila.com · App: https://app.aila.fyi · Support: support@aila.fyi ## Docs - [Aila Documentation](https://docs.aila.fyi/index.md): Agents; Keep your number; For developers - [Getting Started](https://docs.aila.fyi/getting-started.md): Setup Workflow; 1. Create Your Account; 2. Connect Your Integrations - [Agents](https://docs.aila.fyi/agents.md): How agents start; The agents; Approvals and undo - [Intake Agent](https://docs.aila.fyi/agents/intake.md): What it does; CRM coverage; How it starts - [Call Compliance Agent](https://docs.aila.fyi/agents/compliance.md): What it does; How it starts; Approvals - [Pre-Approval Agent](https://docs.aila.fyi/agents/pre-approval.md): What it does; How it starts; Approvals - [Ops Prep Agent](https://docs.aila.fyi/agents/ops-prep.md): What it does; How it starts; Approvals - [Ask Aila](https://docs.aila.fyi/agents/ask-aila.md): What it does; How it starts; Approvals - [Custom Agents](https://docs.aila.fyi/agents/custom-agents.md): What it does; How it starts; Approvals - [Capture calls: keep your number](https://docs.aila.fyi/capture.md): Other ways in; Recording consent - [Android](https://docs.aila.fyi/capture/android.md): Option 1: Pocket (recommended); Option 2: Native Android call recording; Turn on call recording - [Hey Pocket](https://docs.aila.fyi/capture/pocket.md): What you need; How it works; Connect - [Aila iPhone App](https://docs.aila.fyi/mobile.md): Requirements; Find your way around; Account and settings - [Capturing Calls on iPhone](https://docs.aila.fyi/mobile/capturing-calls.md): Capture a call; Pin Aila to your share sheet; Option 1: Pin the app - [Plaud Hardware](https://docs.aila.fyi/mobile/plaud.md): Connect a Plaud; Syncing recordings; Deleting from the device - [Calls, Playback & Export](https://docs.aila.fyi/mobile/calls-on-mobile.md): Open a call; Ask Aila; Email yourself the MISMO 3.4 file - [Aila for Mac](https://docs.aila.fyi/desktop.md): What you need; Install and sign in; What it captures - [Capturing calls on Mac](https://docs.aila.fyi/desktop/capturing-calls.md): Recording mode; Record a call; Troubleshooting - [Calls](https://docs.aila.fyi/calls.md): Find a call; Review statuses; Open a call - [Managing calls](https://docs.aila.fyi/calls/managing-calls.md): Reassign a call; Download a call; Save a call to the Library - [Call library](https://docs.aila.fyi/calls/library.md): Browse the library; Save a call; Manage folders - [Contacts](https://docs.aila.fyi/calls/contacts.md): Use the contacts list; Open a contact; Ask Aila about a contact - [MISMO 3.4 Export](https://docs.aila.fyi/calls/mismo-export.md): Overview; Exporting a loan file from a call; Step 1: Open the call - [Coaching](https://docs.aila.fyi/coaching.md): Review statuses; Comment types; Related - [Coaching for managers](https://docs.aila.fyi/coaching/team-coaching.md): Give feedback on a call; Follow up on replies; Use the Coaching tab - [Coaching for team members](https://docs.aila.fyi/coaching/my-coaching.md): Review feedback; Reply to a comment; Acknowledge feedback - [Performance](https://docs.aila.fyi/performance.md): Related - [Leaderboard](https://docs.aila.fyi/performance/leaderboard.md): Read the leaderboard; Columns; Open a team member - [Dashboard](https://docs.aila.fyi/performance/dashboard.md): Use the dashboard; Sections; Related - [Speed to Lead](https://docs.aila.fyi/performance/speed-to-lead.md): Read the page; Review an agent; Related - [Voicemail cadence](https://docs.aila.fyi/performance/voicemail-cadence.md): Read the page; Work the queue; Related - [Charts](https://docs.aila.fyi/performance/charts.md): Create a chart; Manage saved charts; Related - [Integrations overview](https://docs.aila.fyi/integrations.md): CRM with built-in calls; Phone & dialers; iPhone/Android - [LeadConnector (GoHighLevel)](https://docs.aila.fyi/integrations/gohighlevel.md): What syncs; What you need; Connect - [Follow Up Boss](https://docs.aila.fyi/integrations/follow-up-boss.md): What syncs; What you need; Why the Chrome extension is required - [Bonzo](https://docs.aila.fyi/integrations/bonzo.md): What syncs; What you need; Connect - [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems.md): What you need; Connect; Platforms - [Quo/OpenPhone](https://docs.aila.fyi/integrations/openphone.md): What you need; Connect; Settings - [Wavv](https://docs.aila.fyi/integrations/wavv.md): What you need; Connect; How calls are matched to your team - [Blink Voice](https://docs.aila.fyi/integrations/blink.md): What you need; Connect; How calls are matched to your team - [Zoom](https://docs.aila.fyi/integrations/zoom.md): What you need; Connect; Settings - [Google Meet](https://docs.aila.fyi/integrations/google-meet.md): What you need; Connect; Settings - [Microsoft Teams](https://docs.aila.fyi/integrations/microsoft-teams.md): What you need; Connect; Settings - [HubSpot Integration](https://docs.aila.fyi/integrations/hubspot.md): Connect; What Aila writes; Match rules - [Salesforce](https://docs.aila.fyi/integrations/salesforce.md): What syncs; What you need; Connect - [Pipedrive](https://docs.aila.fyi/integrations/pipedrive.md): What syncs; What you need; Connect - [monday.com](https://docs.aila.fyi/integrations/monday.md): What syncs; What you need; Connect - [Aila Model Context Protocol (MCP)](https://docs.aila.fyi/integrations/aila-mcp.md): Server capabilities; Installation and client setup; Claude Code - [Settings](https://docs.aila.fyi/settings.md): Related - [Connections settings](https://docs.aila.fyi/settings/connections.md): Integrations; Calendar bot settings; Webhooks - [Business details](https://docs.aila.fyi/settings/business-details.md): Related - [Call setup](https://docs.aila.fyi/settings/call-setup.md): Types; Routing; Defaults - [CRM automation](https://docs.aila.fyi/settings/crm-automation.md): Add a rule; Related - [Call scoring](https://docs.aila.fyi/settings/call-scoring.md): Scorecards; Formula; Targets - [Transcription](https://docs.aila.fyi/settings/transcription.md): Add keyterms; Limits; Related - [Team and billing](https://docs.aila.fyi/settings/team-subscription.md): Roles; Inviting team members; Billing - [My settings](https://docs.aila.fyi/settings/personal.md): Account; Connections; Preferences - [Security & Data](https://docs.aila.fyi/security.md): SOC 2; How we protect your data; What Aila does not do - [API Overview](https://docs.aila.fyi/api-reference.md): Full reference (OpenAPI); Base URL and authentication; Common endpoints - [Authentication](https://docs.aila.fyi/api-reference/authentication.md): Create an API key; Use the key; Permissions - [Batch Call Upload](https://docs.aila.fyi/api-reference/batch-upload.md): Endpoint Specification; Request Body Schema; Example Request - [Webhooks](https://docs.aila.fyi/api-reference/webhooks.md): Events; Add an endpoint; In the app - [Help videos API](https://docs.aila.fyi/api-reference/help-videos.md): GET /api/videos; Response; GET /api/docs/search - [Changelog](https://docs.aila.fyi/changelog.md) ## Help videos - [Call detail, 1003 export, and Library](https://youtu.be/oP651xDHQtE): Walkthrough of a processed call: searchable transcript, AI summary with rapport and follow-ups posted to CRM notes, extracted 1003 fields you can edit, MISMO 3.4 export, emotion heat map, configurable scorecard, talk/listen stats, Ask Aila on the call, and saving the call to Library for training. - [Connect GoHighLevel (Lead Connector) to Aila](https://youtu.be/FdYv0v-qjqA): Walks through connecting GoHighLevel to Aila from Settings > Connections using the Lead Connector option, choosing the correct sub-account during the OAuth flow (leaving the SMS box unchecked), and then configuring the sync settings via the gear icon so call summaries post to Conversations, Notes, or nowhere, plus the optional full-transcript posting. Ends with a reminder to save settings and confirm call recording is on in GoHighLevel if calls are not flowing. - [Custom Transcription Keyterms](https://youtu.be/VsdQsSEi4mU): Shows how Aila's custom transcription works: add organization-specific terms — company names, human names, and custom mortgage or loan-type words — so they transcribe and extract accurately every time. Over 100 standard mortgage terms like DTI and LTV are already built in, and you can add as many of your own terms as you like. - [Record Google Meet, Teams, and Zoom with the Aila Bot](https://youtu.be/i5bdJsFCOPQ): Shows how Aila records Google Meet, Microsoft Teams, and Zoom calls by sending a bot into the meeting. Walks through Connect > Calendar, connecting a Google (or Microsoft) account and approving access, then reviewing the meeting bot settings — Auto Record, skipping meetings where you are not the host, and skipping external meetings — before clicking Done so Aila joins newly scheduled meetings. - [Webhooks, API Keys, and MCP Access in Aila](https://youtu.be/1zbnn3IR5ps): A walkthrough of Aila's developer surfaces: creating outbound webhooks in Settings to fire events like call completed, data extraction ready, tasks, appointments, and MISMO 3.4 ready to a URL such as Zapier; managing signing secrets, test events, and disabling webhooks; browsing the API documentation and creating a scoped, one-time-visible API key; and generating an API key with the right scopes for MCP, which supports both OAuth and API key auth. - [Mortgage Configuration Options: FNMA Email, SSN Redaction, and ARIVE Loan Files](https://youtu.be/qXccpz2-qjA): A walkthrough of the three mortgage-specific configurations Aila offers: attaching a FNMA 3.4 / 1003 file to the post-call summary email so you can upload it straight to your LOS, hard-gating Social Security numbers at the transcription level so no plain-text SSNs exist in the system (with the caveat that this also keeps them out of the application), and automatic ARIVE loan file creation from borrower conversations, which requires the ARIVE enterprise API. - [Connect a Pocket Recording Device to Aila](https://youtu.be/H7iUCKtInMk): Walkthrough of Aila's direct Pocket integration: copy the Aila webhook URL into Pocket's Webhooks section, create a read-only API key under Pocket Developers, paste it back into Aila, and click Connect. After that, recordings upload from Pocket into Aila automatically, get processed, and are emailed to you. No Pocket subscription is required, only the hardware device. - [Supported Platforms: CRMs, Dialers, and Video Calls](https://youtu.be/0Tyz4vrzHhY): A walkthrough of every CRM, dialer, and video platform Aila supports, followed by the general connection pattern: enter an API key, click Connect, and paste the Aila webhook URL into the provider (shown with Quo/OpenPhone). Once the key and webhook are saved, the account is connected and Aila processes calls starting with the next one. - [Team Setup: Org Name, Roles, and Inviting Users](https://youtu.be/I_ePUPnyKYc): A quick walkthrough of team setup in Aila: renaming your organization (which also feeds transcription accuracy), inviting users from your connected CRM with one click, choosing between the owner, admin, manager, and member roles, and the two additional invite methods (bulk CSV/tab-separated paste and one-by-one email invites). ## Full pages ### Aila Documentation url: https://docs.aila.fyi/ # Aila Documentation Aila is AI agents for mortgage teams. It manages the origination workflow, from the borrower call to a clean file ready for underwriting, and stops only when a human needs to decide. Aila moves first. A call ending, a borrower document arriving, or a trigger you set, like a stage change, starts the agents. They do the work in the systems your team already uses (your LOS, CRM, email, and calendar) and hand you only the decisions. ## Agents - **[Intake Agent](https://docs.aila.fyi/agents/intake)**: Transcribes and summarizes every call, updates the CRM, builds the 1003 in ARIVE or LendingPad, builds the needs list, and captures credit consent. - **[Call Compliance Agent](https://docs.aila.fyi/agents/compliance)**: Scores every call on your scorecards. Flags DNC, missed disclosures, and rate quoting. Tracks dials, talk time, and tone. - **[Pre-Approval Agent](https://docs.aila.fyi/agents/pre-approval)**: Labels and checks every document and calculates qualifying income with the method shown. - **[Ops Prep Agent](https://docs.aila.fyi/agents/ops-prep)**: Runs your SOP before underwriting and proposes corrections with before/after values and evidence. - **[Ask Aila](https://docs.aila.fyi/agents/ask-aila)**: Chat about your setup, calls, coaching, and CRM. On Enterprise, chat with any loan file and update the LOS with your approval. - **[Custom agents](https://docs.aila.fyi/agents/custom-agents)**: Built around your team's SOPs. **Basic** ($50/user/month) includes the Intake and Call Compliance Agents and is self-serve. **Enterprise** ($200/user/month) adds every agent and is set up with our team. See [Plans](https://docs.aila.fyi/agents#plans-and-pricing). ## Keep your number Aila hears every call, wherever it happens. See [Capture Calls](https://docs.aila.fyi/capture). - **Dialers/VOIPs**: Recordings sync once connected. See [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems). - **Video calls**: The meeting bot joins Zoom, Google Meet, and Microsoft Teams. - **Your cell phone**: Record calls on your iPhone and share them to the [Aila app](https://docs.aila.fyi/mobile/capturing-calls) in a few taps. On Android, [upload the recording](https://docs.aila.fyi/capture/android) to the Aila web app. Using a [Plaud](https://docs.aila.fyi/mobile/plaud) or [Pocket](https://docs.aila.fyi/capture/pocket) recorder? Connect it once and every call uploads to Aila automatically. - **Your Mac**: [Aila for Mac](https://docs.aila.fyi/desktop) records any call, no bot. ## For developers - **[REST API](https://docs.aila.fyi/api-reference)** and **[outbound webhooks](https://docs.aila.fyi/api-reference/webhooks)**: Stream `call.completed`, extracted fields, and tasks to Zapier, Make, or your own endpoints. - **[Aila MCP server](https://docs.aila.fyi/integrations/aila-mcp)**: Use Aila from ChatGPT, Claude, and other MCP clients. ## Security SOC 2 Type 2 audit in progress with Sentry Assurance, monitored by Vanta. Our AI providers operate under zero data retention for loan data. See [Security & Data](https://docs.aila.fyi/security). ## Next steps - Follow the [Getting Started Guide](https://docs.aila.fyi/getting-started) to set up your organization. - Review the [Changelog](https://docs.aila.fyi/changelog) for recent releases. - Email [support@aila.fyi](mailto:support@aila.fyi) for help. Support is same-day, 7 days a week. --- ### Getting Started url: https://docs.aila.fyi/getting-started # Getting Started Sign up, connect your phone and LOS, and your next call builds the file. This guide sets up the **Basic** plan agents: the [Intake Agent](https://docs.aila.fyi/agents/intake) and the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance). Basic is self-serve with a 7-day free trial. **Enterprise** agents (Pre-Approval, Ops Prep, Ask Aila, and custom agents) are set up with our team on one 1-hour call. See [Plans](https://docs.aila.fyi/agents#plans-and-pricing). ## Setup Workflow 1. **Create Account**: Register your organization. 2. **Connect Integrations**: Link your LOS, CRM, calendar, and dialers. 3. **Capture Calls**: Choose how Aila hears your calls. 4. **Score & Coach**: Set up scorecards for the Call Compliance Agent. --- ## 1. Create Your Account 1. Open [app.aila.fyi/signup](https://app.aila.fyi/signup). 2. Enter your name and email address, then set and confirm a password. 3. Create the account. Aila names your organization after you, for example "Alex's Org". 4. Rename the organization any time in **Settings > Team**. --- ## 2. Connect Your Integrations ### Connect your LOS The Intake Agent builds the 1003 in your LOS after each call. 1. Go to **Settings > Connections**. 2. Connect **ARIVE** or **LendingPad**. Using another LOS? Export a [MISMO 3.4 file](https://docs.aila.fyi/calls/mismo-export) instead. ### Connect a CRM Aila syncs transcripts, extracted metadata, and AI summaries to your CRM. 1. Go to **Settings > Connections**. 2. Select your CRM provider: - **GoHighLevel**: Sync contacts, opportunities, and custom fields. - **HubSpot**: Map Contact and Deal properties; write Notes, Calls, and Tasks. - **Salesforce**: Map leads, contacts, opportunities, and call logs. - **Pipedrive**: Route inbound calls and sync deal activities. - **monday.com**: Match items by phone number and update records. - **Follow Up Boss**: Sync FUB calls and write notes and tasks. Requires the [Aila Chrome extension](https://docs.aila.fyi/integrations/follow-up-boss). - **Bonzo**: Sync tasks, appointments, and contact records. 3. Click **Connect** and authorize your account. ### Connect Your Calendar Connect Google Calendar or Microsoft Outlook so the meeting bot joins your Zoom, Google Meet, and Microsoft Teams calls. 1. Go to **Settings > Connections**. 2. Use **Search connections** to find your calendar, then click **Connect**. 3. Authorize access to your Google or Microsoft account. 4. Aila will automatically send recording bots to scheduled meetings. ### Connect Phone Systems and Dialers Ingest calls automatically from your softphone or dialer: - **Quo / OpenPhone, RingCentral, Dialpad, Zoom Phone**, and 10 more dialers connect with an API key and, for most, a webhook. - See [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems) for the full list and setup. --- ## 3. Capture Your First Call Keep your number. Pick the method that matches how you call today. See [Capture Calls](https://docs.aila.fyi/capture) for the full comparison. ### Dialers/VOIPs Once your dialer is connected (step 2), recordings sync automatically. Make a test call. ### Video calls 1. Schedule a meeting in your connected calendar. 2. Include a Google Meet, Zoom, or Microsoft Teams link. 3. The Aila bot joins the meeting at the scheduled start time. 4. Aila processes the call as soon as it ends. ### Your cell phone (iPhone/Android) - **iPhone**: Turn on native call recording and install the [Aila iPhone app](https://docs.aila.fyi/mobile). It uploads every recorded call. Plaud recorders pair with the app. - **Android**: Use a [Pocket](https://docs.aila.fyi/capture/pocket) recorder with the Pocket app, or record natively and [upload the file](https://docs.aila.fyi/capture/android). ### Your Mac 1. Download and install [Aila for Mac](https://docs.aila.fyi/desktop). 2. Sign in with your Aila credentials. 3. Grant microphone and system audio permissions. 4. Aila for Mac records any call, no bot: phone apps, FaceTime, and video. ### Upload a file 1. Navigate to **Calls**. 2. Click **Upload**. 3. Optionally enter a **Client name**. Aila uses it as the call title and contact name. 4. Select one or more audio files, or drag them in. 5. Wait for the upload to finish, then click **Done**. Aila processes each call automatically. --- ## 4. Set up the Call Compliance Agent Define your scorecards, and the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance) scores every call against them. 1. Navigate to **Settings > Call scoring**. 2. Click **New scorecard**, or **Create with AI** to start from a draft. 3. Add a question for each thing you want checked (e.g., "Confirmed caller identity", "Explained fee structure"). 4. Set each question to **Binary (Pass/Fail)** or **Rated (1-N scale)**, and give it a weight. 5. Save the scorecard, then attach it to a call type in **Settings > Call setup > Routing**. Aila scores every new call of that type. See [Call Scoring](https://docs.aila.fyi/settings/call-scoring) for full scoring details. --- ## 5. Configure call types and fields Extract specific variables from transcripts and sync them to your CRM. 1. Navigate to **Settings > Call setup > Types**. 2. Click **Create call type** (or **Create call type with AI**). 3. Add fields with **Add fields**: a field name and what Aila should extract (e.g., "Loan Amount", "Target Close Date"). 4. Map each field to a CRM field where your CRM supports it. 5. Save the call type. See [Call setup](https://docs.aila.fyi/settings/call-setup) for more. --- ## 6. Invite team members 1. Navigate to **Settings > Team**. 2. Click **Invite team members**. Use **Bulk invite** to add several people at once. 3. Enter the email address. 4. Choose a role: - **Member**: Aila processes their calls. They see their own calls, scores, and coaching. - **Manager**: Everything a Member has, plus review of the team's calls, coaching, and metrics. - **Admin**: Full access, including billing. An Admin seat is free and Aila does not process the Admin's calls. - **Owner**: Everything a Manager has, plus ownership of billing. 5. Click **Send invitation**, or **Copy invite link** to send it yourself. --- ## Next Steps - [Agents](https://docs.aila.fyi/agents): What each agent does and which plan includes it. - [Calls](https://docs.aila.fyi/calls): Search, filter, and review call transcripts. - [Coaching](https://docs.aila.fyi/coaching): Review scored calls and give feedback. - [Performance](https://docs.aila.fyi/performance): View team leaderboards and conversation metrics. - [API Reference](https://docs.aila.fyi/api-reference): Integrate Aila programmatically via REST API and webhooks. --- ### Agents url: https://docs.aila.fyi/agents # Agents Aila is AI agents for mortgage teams. It manages the origination workflow, from the borrower call to a clean file ready for underwriting, and stops only when a human needs to decide. Events start the agents. Each agent does the work, then hands you the one decision it needs, such as "Approve this needs list" or "Send this email." --- ## How agents start - **A call ends.** This starts the Intake and Call Compliance Agents. - **A borrower sends a document.** This starts the Pre-Approval Agent. - **A trigger rule fires.** An admin can start an agent from a stage change, a document landing, a CRM stage change, or an email or text. Rules live in **Settings > Agent triggers**, reached from **Settings > Mortgage config**. - **Someone starts it.** Any agent can be run by hand from the loan file. --- ## The agents | Agent | What it does | Plan | | :--- | :--- | :--- | | **[Intake Agent](https://docs.aila.fyi/agents/intake)** | Transcribes and summarizes every call, updates the CRM, builds the 1003 in ARIVE or LendingPad, builds the needs list, and captures credit consent. | Basic, Enterprise | | **[Call Compliance Agent](https://docs.aila.fyi/agents/compliance)** | Scores every call on your scorecards and flags DNC, missed disclosures, and rate quoting. | Basic, Enterprise | | **[Pre-Approval Agent](https://docs.aila.fyi/agents/pre-approval)** | Labels and checks every document and calculates qualifying income with the method shown. | Enterprise | | **[Ops Prep Agent](https://docs.aila.fyi/agents/ops-prep)** | Runs your SOP on the file before underwriting and proposes corrections with evidence. | Enterprise | | **[Ask Aila](https://docs.aila.fyi/agents/ask-aila)** | Chat about your setup, calls, coaching, and CRM on every plan. On Enterprise, chat with any loan file and update the LOS with your approval. | Basic, Enterprise | | **[Custom agents](https://docs.aila.fyi/agents/custom-agents)** | Agents built around your team's SOPs, such as Credit Review or Operations Intake. | Enterprise | --- ## Approvals and undo Agents propose. People decide. - These wait for your approval: creating a loan in the LOS, applying 1003 changes, sending the needs email, closing a need, and borrower emails and texts. - Adding needs and posting notes do not wait. - Most approved changes can be undone from the same screen. A sent email cannot be unsent, and a few LOS actions have no automatic undo. - Each proposal shows its work: before and after values, the evidence, and the income method. CRM sync after a call runs automatically, because that's the point of hanging up and having the CRM updated. --- ## Plans and pricing | | Basic | Enterprise | | :--- | :--- | :--- | | **Covers** | Calls (voice to 1003) | Calls + docs | | **Intake Agent** | ✓ | ✓ | | **Call Compliance Agent** | ✓ | ✓ | | **Pre-Approval Agent** | | ✓ | | **Ops Prep Agent** | | ✓ | | **Ask Aila** (setup, calls, coaching, CRM chat) | ✓ | ✓ | | **Ask Aila** (loan-file chat) | | ✓ | | **Custom agents** | | ✓ | | **Price** | $50/user/month, or $500/user/year | $200/user/month, or $2,000/user/year | | **Setup** | Self-serve, with a 7-day free trial | One 1-hour setup call with our team | - **Basic** is self-serve: sign up at [app.aila.fyi/signup](https://app.aila.fyi/signup), connect your phone and LOS, and your next call builds the file. - **Enterprise** agents are configured to your team's workflow, needs catalog, and SOPs. Request setup on [withaila.com/pricing](https://www.withaila.com/pricing). One setup call, and you're running within about a business day. --- ### Intake Agent url: https://docs.aila.fyi/agents/intake # Intake Agent **Hang up. The loan file is already built.** The Intake Agent is Aila's core call product. It transcribes and summarizes every borrower and real estate agent call, syncs the results to your CRM, and builds the loan file so the loan officer takes no notes. **Plan:** Basic and Enterprise. --- ## What it does 1. **Transcribes and summarizes** every call, in 100+ languages including Spanish and Portuguese. The file and CRM notes are written in English. 2. **Extracts the data you care about** with call types and fields you define. See [Call setup](https://docs.aila.fyi/settings/call-setup). 3. **Updates your CRM** minutes after the call ends. Depending on your CRM, that includes: - Call summaries - Relationship notes (personal details worth remembering) - Follow-ups and tasks - Pipeline stage moves and tags 4. **Builds the 1003** in ARIVE or LendingPad from the conversation. It checks for a duplicate loan before creating anything. 5. **Builds the needs list** from the call outcome, using your own ARIVE needs catalog. 6. **Captures credit consent.** Aila records whether the borrower gave consent on the call, so the loan officer can see it with the transcript and recording. 7. **Exports a MISMO 3.4 file** for any other LOS. See [MISMO 3.4 Export](https://docs.aila.fyi/calls/mismo-export). ### CRM coverage | CRM | What the Intake Agent writes | | :--- | :--- | | [GoHighLevel / LeadConnector](https://docs.aila.fyi/integrations/gohighlevel) | Notes, tasks, stage, tags, custom fields | | [Bonzo](https://docs.aila.fyi/integrations/bonzo), [Pipedrive](https://docs.aila.fyi/integrations/pipedrive) | Most of the list | | [HubSpot](https://docs.aila.fyi/integrations/hubspot), [Salesforce](https://docs.aila.fyi/integrations/salesforce), [Follow Up Boss](https://docs.aila.fyi/integrations/follow-up-boss), [monday.com](https://docs.aila.fyi/integrations/monday) | See each integration page for what syncs | --- ## How it starts A call ending starts it. Some steps run on their own and some wait for a click or an approval: - **CRM sync** runs automatically after each call. - **Loan file creation** happens when you click **Create loan in ARIVE** from the dropdown next to **Export MISMO** on the call page. To create it after every Borrower / 1003 Conversation call with no click, turn on **Create ARIVE loans from 1003 conversations** in **Settings > Mortgage config**. It creates a loan only when ARIVE has no exact borrower match. - **Agent-built files:** a call-type routing rule or an [agent trigger](https://docs.aila.fyi/agents#how-agents-start) can start the Intake Agent on a call. It reads the call, proposes the loan and 1003, and stages the needs. --- ## Approvals When the Intake Agent builds the loan as an agent task, these wait for your approval: - Creating the ARIVE loan - Applying 1003 changes - Sending the needs email to the borrower (ARIVE sends it) Adding needs and posting notes do not wait. Most approved changes can be undone, but a sent email cannot be unsent. See [Approvals and undo](https://docs.aila.fyi/agents#approvals-and-undo). --- ## Set it up 1. **Capture your calls.** Pick the method that matches how you call today. See [Capture Calls](https://docs.aila.fyi/capture). 2. **Connect your LOS.** In **Settings > Connections**, connect ARIVE or LendingPad. For agent-built files in ARIVE, an admin also connects the ARIVE portal in **Settings > Mortgage config**. 3. **Connect your CRM.** In **Settings > Connections**, connect your CRM. See [Integrations](https://docs.aila.fyi/integrations). 4. **Map the fields you care about.** In **Settings > Call setup > Types**, add fields to a call type and map them to CRM fields. 5. **Make a call.** When it ends, the CRM updates within a few minutes. --- ## Related - [Calls](https://docs.aila.fyi/calls): review the call, transcript, and extracted data. - [Contacts](https://docs.aila.fyi/calls/contacts): every conversation with a borrower in one place. - [MISMO 3.4 Export](https://docs.aila.fyi/calls/mismo-export) --- ### Call Compliance Agent url: https://docs.aila.fyi/agents/compliance # Call Compliance Agent **You don't have time to listen to every call. Your Call Compliance Agent does.** The Call Compliance Agent scores every call against your scorecards, flags compliance problems, and tracks rep performance. Leaders see only the calls that need attention. **Plan:** Basic and Enterprise. It's included with the Intake Agent, not an add-on. --- ## What it does - **Scores every call** against your scorecards. Each question is scored pass/fail or on a rating scale, with the transcript text it matched. - **Flags non-compliance:** - **DNC:** built in. Aila flags calls where the caller asks to stop being called. - **Missed disclosures, recording notice, credit consent, and rate quoting:** set up as questions in your scorecard, with the point in the call where each happened. - **Tracks performance:** dials, time on the phone, and emotion and tone, including the emotional arc of each speaker across the call. - **Writes coaching notes:** what went well and what to do differently next time. - **Surfaces what matters:** leaders see the calls that need attention, not every call. --- ## How it starts A call ending starts it. Aila scores the call against the scorecard attached to its call type. Calls with no matching scorecard are not scored. --- ## Approvals None. Scoring only reads the call. Managers review scores and give feedback in [Coaching](https://docs.aila.fyi/coaching). --- ## Set it up 1. Connect a capture method. See [Capture Calls](https://docs.aila.fyi/capture). 2. Create a scorecard in **Settings > Call scoring**. Click **New scorecard** (or **Create with AI**), then add a question for each disclosure you require and for rate quoting. 3. Attach scorecards to call types in **Settings > Call setup > Routing** so each call type is scored against the right scorecard. 4. Invite managers in **Settings > Team**. They see team scores in [Team Coaching](https://docs.aila.fyi/coaching/team-coaching). --- ## Related | Task | Page | | :--- | :--- | | Build scorecards and questions | [Call Scoring](https://docs.aila.fyi/settings/call-scoring) | | Route each call type to the right scorecard | [Call setup > Routing](https://docs.aila.fyi/settings/call-setup#routing) | | Review scores and give feedback | [Coaching](https://docs.aila.fyi/coaching) | | Track dials, talk time, and leaderboards | [Performance](https://docs.aila.fyi/performance) | --- ### Pre-Approval Agent url: https://docs.aila.fyi/agents/pre-approval # Pre-Approval Agent **Every doc checked and income calculated, with the math shown.** The Pre-Approval Agent works the borrower's documents as they arrive. It gets the docs and income ready so the loan officer can issue a pre-approval. > The Pre-Approval Agent does **not** issue pre-approvals. The loan officer does, in your LOS and pricing tools. **Plan:** Enterprise. --- ## What it does - **Labels and extracts every document** the borrower uploads. - **Reviews each document** and marks it clean, has an issue, or missing. - **Calculates qualifying income** with agency-standard (MGIC-based) methods, and shows which method it used. It cross-checks the pay stub against the W-2 before settling on a number. You can download the MGIC income worksheet. - **Reconciles assets** and flags every large deposit over the threshold. - **Flags issues:** stale pay stubs, missing docs, unreadable images, expired IDs, and new needs such as a VOE or a letter of explanation. - **Lists the open items** holding the file back, in order. - **Drafts borrower emails in the loan officer's voice**, learned from their past sent emails, so the borrower knows exactly what to send and why. --- ## How it starts A borrower document arriving starts it, and it runs again as new documents land. A loan officer can also run it from the loan file. Documents are picked up wherever borrowers send them: your ARIVE or LendingPad portal, email, WhatsApp, or text. Borrowers don't change how they upload. --- ## Approvals These wait for your approval: - Every borrower email or text - Closing a need in ARIVE that the review proved is met - Every other write to the LOS Most approved changes can be undone. A sent email cannot be unsent. See [Approvals and undo](https://docs.aila.fyi/agents#approvals-and-undo). --- ## Set it up 1. Connect your LOS in **Settings > Connections**. 2. Connect Gmail or Outlook in **Settings > Connections** so drafts match the loan officer's own email. Gmail drafts can be sent from the loan officer's inbox. For Outlook, Aila writes the draft and the loan officer sends it from Outlook. --- ## Related - [Intake Agent](https://docs.aila.fyi/agents/intake): builds the file this agent works. - [Ops Prep Agent](https://docs.aila.fyi/agents/ops-prep): checks the file against your SOP. - [Approvals and undo](https://docs.aila.fyi/agents#approvals-and-undo) --- ### Ops Prep Agent url: https://docs.aila.fyi/agents/ops-prep # Ops Prep Agent **A clean file before underwriting.** The Ops Prep Agent (also called the pre-underwriting agent) checks the file against your SOP before it goes to underwriting and proposes every fix with evidence. **Plan:** Enterprise. --- ## What it does - **Reads the 1003 and every document** in the file. - **Runs your SOP, in your words, check by check.** Give us your SOP and we set it up for you, or start from Aila's standard 1003 scrub. - **Looks up the county tax bill** and saves it to the file. - **Proposes each correction** with the before value, the after value, and the evidence. - **Adds a need** for each outstanding document. - **Flags high-risk changes**, such as removing a job or an asset, so a person looks first. - **Reports what it can't write.** Anything it can't change in the LOS stays in the report. It tells you instead of guessing. It works in ARIVE. --- ## How it starts You start it from the loan file, or an admin sets a trigger rule so it starts on an event, such as a stage change. Teams typically run it once there's a purchase contract. --- ## Approvals Review the proposed corrections, then approve them one at a time or all at once. Approved corrections are written to the LOS. Most can be reverted from the same screen, but a sent email cannot be unsent. --- ## Set it up 1. Connect ARIVE in **Settings > Connections**, and have an admin connect the ARIVE portal in **Settings > Mortgage config**. 2. Send us your SOP on your setup call. We configure the checks with you. 3. Optional: an admin sets a trigger rule in **Settings > Agent triggers** (reached from **Mortgage config**). --- ## Related - [Pre-Approval Agent](https://docs.aila.fyi/agents/pre-approval): gets the documents and income ready first. - [Custom agents](https://docs.aila.fyi/agents/custom-agents) - [Approvals and undo](https://docs.aila.fyi/agents#approvals-and-undo) --- ### Ask Aila url: https://docs.aila.fyi/agents/ask-aila # Ask Aila **An agent that knows every file.** Ask Aila is a chat agent. On every plan it answers questions about your setup, calls, coaching, and CRM data. On Enterprise it also has the full context of every loan file and borrower conversation. **Plan:** Chat about setup, calls, coaching, and CRM: Basic and Enterprise. Loan-file chat: Enterprise. --- ## What it does - **Answers questions** about your calls, contacts, scorecards, and settings. - **Helps configure Aila.** Ask it to set up routing or call types. - **On Enterprise, answers questions about any loan file** and any borrower conversation, and gives simple next steps. - **On Enterprise, updates the file in your LOS, with your approval.** It can write the loan status, key dates, notes, and documents in ARIVE, and push the MISMO file or write conditions in LendingPad. - **On Enterprise, recalculates income** with a different method and shows both totals first. - **On Enterprise, remembers your preferences as rules.** It previews a rule before saving it. Rule saving is turned on per account. - **Asks when a request is unclear** instead of guessing. --- ## How it starts You open **Ask Aila** in the sidebar, or the Ask Aila panel on a loan file, and type. --- ## Approvals Writes need your confirmation. Borrower messages are drafted first, approved, then sent. Nothing sends without an approved draft. --- ## Set it up Nothing to set up. Connect your CRM and capture calls so it has data to answer from. ### Use it from ChatGPT or Claude The [Aila MCP server](https://docs.aila.fyi/integrations/aila-mcp) gives ChatGPT, Claude, and other MCP clients the same access to your calls, contacts, and settings. Writes still require approval in Aila. --- ## Related - [Aila MCP server](https://docs.aila.fyi/integrations/aila-mcp) - [Approvals and undo](https://docs.aila.fyi/agents#approvals-and-undo) --- ### Custom Agents url: https://docs.aila.fyi/agents/custom-agents # Custom Agents **An agent for your own workflow.** Custom agents follow your team's SOPs. We build them with you, and admins can also create and edit agents in the app. **Plan:** Enterprise. --- ## What it does Examples: - **Credit Review Agent:** reads the credit report, the 1003, and bank statements, and reports derogatory marks, qualifying score, and debts missing from the 1003. It makes no changes. - **Operations Intake Agent:** custom document labeling and storage for a specific lender portal or folder SOP. We build this per customer. --- ## How it starts Custom agents follow the same rules as the named agents. They start from events you choose or when someone starts them on a file. --- ## Approvals Custom agents show their work and wait for approval before writing to the LOS or the borrower. See [Approvals and undo](https://docs.aila.fyi/agents#approvals-and-undo). --- ## Set it up - **In the app:** an admin opens **Settings > Mortgage config > Loan agents**, clicks **New agent** or **Duplicate** on an existing agent, then edits the prompt and tools. - **With us:** click **Request custom agent** on [withaila.com](https://www.withaila.com), tell us what the agent should do, and we'll scope it with you on a call. Enterprise customers can also raise it during their setup call. --- ## Related - [Ops Prep Agent](https://docs.aila.fyi/agents/ops-prep) - [Agents overview](https://docs.aila.fyi/agents) --- ### Capture calls: keep your number url: https://docs.aila.fyi/capture # Capture calls: keep your number Aila is AI agents for mortgage teams. Aila is not a phone system, so your loan officers keep their number and the way they already call. Aila picks up the recording from wherever the call happens. Each captured call goes to the [Intake Agent](https://docs.aila.fyi/agents/intake), which builds the file and updates your CRM, and to the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance), which scores the call. | How you call | How Aila gets the recording | Setup | | :--- | :--- | :--- | | **Dialers/VOIPs** | Recordings sync to Aila automatically once connected. | [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems) | | **Video calls** | Aila's meeting bot joins Zoom, Google Meet, and Microsoft Teams calls from your calendar. | [Zoom](https://docs.aila.fyi/integrations/zoom), [Google Meet](https://docs.aila.fyi/integrations/google-meet), [Microsoft Teams](https://docs.aila.fyi/integrations/microsoft-teams) | | **Your cell phone: iPhone** | Record calls on your iPhone and share them to the Aila app in a few taps. The app is available by invite. | [Aila iPhone App](https://docs.aila.fyi/mobile) | | **Your cell phone: Android** | Upload the recording to the Aila web app. There is no Aila Android app. | [Android](https://docs.aila.fyi/capture/android) | | **Plaud or Pocket recorder** | Connect it once and every call uploads to Aila automatically. Plaud connects through the Aila iPhone app; Pocket needs no Aila app. | [Plaud](https://docs.aila.fyi/mobile/plaud), [Pocket](https://docs.aila.fyi/capture/pocket) | | **Your Mac** | The Aila desktop app records calls on your Mac, with no bot. | [Aila for Mac](https://docs.aila.fyi/desktop) | | **CRM with built-in calls** | Calls made in GoHighLevel or Bonzo sync from the CRM. Follow Up Boss calls sync through the Aila Chrome extension. | [Integrations](https://docs.aila.fyi/integrations) | You can combine methods. For example, a loan officer can use the dialer at the desk, the iPhone app on the road, and the meeting bot for video calls. --- ## Other ways in - **Upload a file:** On the **Calls** page, click **Upload**, optionally enter a client name, and select one or more audio files. Processing starts after the upload. - **Batch API:** Send recordings programmatically. See [Batch Call Upload](https://docs.aila.fyi/api-reference/batch-upload). - **Chrome extension on a PC:** The Aila Chrome extension exists mainly for [Follow Up Boss](https://docs.aila.fyi/integrations/follow-up-boss). It can also record a call in a browser tab on a PC: open the extension and click **Turn on call capture**. On a Mac, use [Aila for Mac](https://docs.aila.fyi/desktop) instead. Install the extension from [withaila.com/download/chrome](https://www.withaila.com/download/chrome). --- ## Recording consent Recording rules vary by state, and some states require every party's consent. iPhone and Android both announce native recordings to the other party. Follow your state's rules and your compliance team's guidance. --- ### Android url: https://docs.aila.fyi/capture/android # Android There is no Aila Android app. Android users have two options. | Option | Best for | Uploads to Aila | | :--- | :--- | :--- | | **Pocket** (recommended) | Loan officers who want every call captured automatically | Automatic | | **Native Android call recording** | Occasional calls, or trying Aila before buying hardware | Manual upload | --- ## Option 1: Pocket (recommended) A Pocket recorder captures your calls, and the Pocket app on your phone receives each recording. Aila connects to your Pocket account, so recordings flow into Aila automatically. 1. Get a [Pocket recorder](https://heypocket.com/). 2. Install the Pocket app from the [Google Play Store](https://play.google.com/store/search?q=pocket%20ai%20recorder&c=apps) and pair your device. 3. Connect Pocket to Aila. See [Pocket](https://docs.aila.fyi/capture/pocket). Each recording that moves from the device into the Pocket app is sent to Aila and processed. --- ## Option 2: Native Android call recording Many Android phones can record calls in the Phone app. Availability depends on your phone, your carrier, and your country. Both parties hear a notice that the call is being recorded. ### Turn on call recording Follow Google's guide: [Record a phone call](https://support.google.com/phoneapp/answer/9803950). In short: 1. Open the **Phone** app (Phone by Google). 2. Tap **More > Settings > Call recording**. 3. Choose to always record certain calls, or tap **Record** during a call. ### Get the recording into Aila Native recordings stay on the phone, so upload each one: 1. In the Phone app, open **Recents** and tap the recorded call. 2. Tap the recording, then **Share** to save the audio file to your phone or email it to yourself. 3. In Aila on the web, open **Calls** and click **Upload**. 4. Optionally enter the **Client name**, then select the audio file. Processing starts after the upload. After upload, the call is processed like any other: the [Intake Agent](https://docs.aila.fyi/agents/intake) builds the file and updates the CRM, and the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance) scores it. --- ### Hey Pocket url: https://docs.aila.fyi/capture/pocket # Hey Pocket Aila connects directly to Pocket (Hey Pocket), a pocket-sized call and meeting recorder. Use it on iPhone or Android. Recordings feed the [Intake Agent](https://docs.aila.fyi/agents/intake) and the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance). --- ## What you need - A Pocket device, paired with the Pocket app on your phone (iOS or Android). - A Pocket account where you can create an API key and a webhook. - No Aila app is needed. Aila connects to your Pocket account on the backend. Pocket is a personal connection. Each person connects their own Pocket account, and Aila files that person's recordings under their name. --- ## How it works 1. You record a call on the Pocket device. 2. The recording moves from the device to the Pocket app on your phone. 3. Pocket sends Aila a webhook for the new recording. 4. Aila downloads the audio with your API key and processes the call. --- ## Connect 1. In Aila, go to **My settings > Connections** and find **Phone recording**. Admins can also use **Settings > Connections > Integrations > Connect** and search for **Hey Pocket**. 2. In the Pocket app or at [app.heypocket.com](https://app.heypocket.com), open **Settings**, then **Developers**. 3. Click **API Keys**, then **+ Create Key**, name it `Aila`, and copy the key. 4. In Aila, copy the **Webhook URL**. Aila shows it before you connect. 5. In Pocket, click **Webhooks**, then **+ Create Webhook**, and paste the URL. Subscribe to `recording.created` and `transcription.completed`. Aila doesn't need the webhook secret. 6. Paste the API key into Aila and click **Connect**. 7. In Pocket, click **Test** on the new webhook to confirm it works. As soon as a recording uploads into Pocket, it's sent to Aila and processed. --- ## Replacing a lost device Pair the new device with the same Pocket account. The connection is on the account, so recordings keep flowing to Aila. See the [Record calls FAQ](https://docs.aila.fyi/faq/record-calls). --- ## Related - [Android](https://docs.aila.fyi/capture/android) - [Capture calls](https://docs.aila.fyi/capture) - [HeyPocket support and FAQ](https://guide.heypocket.com/) for help with the Pocket device or app --- ### Aila iPhone App url: https://docs.aila.fyi/mobile # Aila iPhone App The Aila iPhone app captures calls on your iPhone, syncs Plaud recorders, and lets you review calls, contacts, and loan data on the go. The Aila app is iPhone only. On Android, use a [Pocket](https://docs.aila.fyi/capture/pocket) recorder or [upload native recordings](https://docs.aila.fyi/capture/android). --- ## Requirements - **iPhone** on iOS 15.1 or later. Native call recording needs iOS 18.1 or later (see [Apple's guide](https://support.apple.com/guide/iphone/record-and-transcribe-a-call-iph57c6590e9/ios)). - **An Aila account** in your organization. - **Optional:** a Plaud Note, Note Pro, or NotePin recorder. --- ## Find your way around | Where | What's there | | :--- | :--- | | **Home > Calls** | Your processed calls. Tap one for the recording, summary, and loan data. | | **Home > Contacts** | Every conversation with a borrower, plus Ask Aila. | | **Capture button** (bottom dock) | **Start recording** (with a connected Plaud) or **Import call recording** (from Notes). | | **Settings > How to use Aila** | Walkthroughs in three groups: **Native Apple Recording** (capture a call, pin Aila), **Plaud Devices** (connect, switch from the Plaud app), and **Pocket Devices**. Links to Apple, Plaud, and HeyPocket support. | --- ## Account and settings Everything below is in the **Settings** tab. - **Create an account:** New users can tap **Create an account** on the login screen. A first-session guide walks you through your first call; replay it with **Show onboarding again**. - **Billing:** Shows **App Store billing** if you subscribed in the app, or **Manage subscription** if you pay by card. - **Email notifications:** One master switch plus a switch for each email type. - **Export defaults:** Choose what **Email me MISMO 3.4** sends by default. - **Integrations** and **Plaud** device rows, **Dark mode**, **Contact support**, and **Send logs to support**. - **Sign out** and **Delete account**. --- ## Next steps - [Capturing Calls on iPhone](https://docs.aila.fyi/mobile/capturing-calls): Record a call and send it to Aila. Pin Aila to your share sheet. - [Plaud Hardware](https://docs.aila.fyi/mobile/plaud): Connect a Plaud, sync, and switch from the Plaud app. - [Calls, Playback & Export](https://docs.aila.fyi/mobile/calls-on-mobile): Review calls and email yourself the MISMO 3.4 file. --- ### Capturing Calls on iPhone url: https://docs.aila.fyi/mobile/capturing-calls # Capturing Calls on iPhone Record a call with iPhone's built-in call recording, then share it to Aila. These steps match **Settings > How to use Aila > Native Apple Recording** in the app. Native call recording needs iOS 18.1 or later and isn't available in every region. See [Apple's call recording guide](https://support.apple.com/guide/iphone/record-and-transcribe-a-call-iph57c6590e9/ios). --- ## Capture a call 1. On the call, tap **More**. 2. Tap **Call Recording**. iPhone announces the recording to both sides. 3. A timer runs while you talk. Tap the red square to stop early, or just hang up. 4. Right after the call, a **Notes** notification pops up. Tap it. 5. Your recording is saved in Notes. Tap the **Share** button in the top right. 6. Pick **Aila** in the share sheet. 7. Tap **Upload**. 8. Open Aila to watch the transcript arrive. Missed the notification? In Aila, tap the capture button, then **Import call recording > Open my Notes**, and share the recording from there. --- ## Pin Aila to your share sheet Pin Aila so it's always one tap away. You only need one of these two options. ### Option 1: Pin the app 1. In the share sheet, scroll the app row to the far right and tap **More**. 2. On the Apps page, tap **Edit** in the top right. 3. Tap the green **+** next to Aila. Keep its toggle on. 4. Aila moves into **Favorites**. Tap the checkmark to save. Aila now always appears in the app row. ### Option 2: Pin the action 1. In the share sheet, tap **View More** on the second row. 2. Tap **Edit Actions** at the bottom. 3. Switch **Save to Aila** on, tap the green **+**, then tap the checkmark. **Save to Aila** now sits in your actions row. --- ## Import other audio Any audio file you can share (Voice Memos, Files, an email attachment) can go to Aila the same way: tap **Share**, then pick **Aila** or **Save to Aila**. --- ## Related - [Plaud Hardware](https://docs.aila.fyi/mobile/plaud): Hands-free recording with a Plaud. - [Calls, Playback & Export](https://docs.aila.fyi/mobile/calls-on-mobile): Review calls on your iPhone. - [Capture Calls](https://docs.aila.fyi/capture): Every other way to get calls into Aila. --- ### Plaud Hardware url: https://docs.aila.fyi/mobile/plaud # Plaud Hardware Aila connects directly to Plaud recorders (Plaud Note, Plaud Note Pro, Plaud NotePin) over Bluetooth. Recordings sync into Aila without the Plaud app. These steps match **Settings > How to use Aila > Plaud Devices** in the app. --- ## Connect a Plaud 1. On **Home**, tap **Connect Plaud** in the top left. 2. Select the Plaud recorder you have. 3. Press and hold the record button until the white light flashes. On a NotePin, press the center firmly. Aila keeps searching nearby. 4. When Aila finds your Plaud, tap **Connect**. After pairing, the device page shows battery, storage, firmware, and sync controls. Back on **Home**, the Connect Plaud button becomes a radio icon. A green dot means your Plaud is connected; an orange dot means it's pairing or not ready. Tap the icon to open the device page. Used your Plaud with the Plaud app before? Release it there first. See [Switch from the Plaud app](#switch-from-the-plaud-app). --- ## Syncing recordings - **Automatic:** Recordings move from your Plaud to Aila while Aila is open and connected. Aila doesn't need to be on screen, but don't swipe it closed. - **Sync:** On the device page, tap **Sync** to pull everything on the recorder. Sync keeps running if you leave the screen or switch apps. - **Fast sync:** On Plaud models with Wi-Fi, tap **Fast sync** for very long recordings or dozens at once. It transfers over the Plaud's Wi-Fi, about 10x faster. Keep Aila open, don't lock your iPhone, and tap **Join** if iPhone asks. Fast sync needs Location and Local Network access. If Location is off, Aila uses Bluetooth sync instead. ### Deleting from the device - Aila removes a recording from the recorder only after it's safely in Aila. - To delete a recording without syncing it (only unsynced recordings show this option), touch and hold it under **Recordings on device** and tap **Delete from device**. An unsynced recording is gone for good. ### Firmware updates Firmware updates can erase recordings. Sync all recordings and wait until none remain on your Plaud before you update. Install updates from the **Firmware** section of the device page, and keep the Plaud nearby and charging until it reconnects. --- ## Switch from the Plaud app A Plaud connects to one app at a time. If it was linked to the Plaud app, release it there first. > **Sync anything you want to keep first.** Unsynced recordings on the recorder are erased. 1. Open the **Plaud app** and tap the device icon in the top left. 2. Tap your Plaud. 3. On the device page, scroll all the way down. 4. Tap **Disconnect or remove device**. 5. Tap **Erase & remove**. (**Disconnect** only ends the session, and the recorder stays linked.) 6. The screen says **Device removed**. Open Aila and tap **Connect Plaud**. If the recorder isn't connected in the Plaud app, tap **Remove device**, then **Erase & remove**, then pair it in Aila. --- ## Troubleshooting - **Aila can't find the Plaud:** Charge it, press and hold the record button until the white light flashes, and make sure no other phone or app is connected to it. - **A call is missing:** Recordings sync only while Aila is open in the background and connected. Open Aila and tap **Sync** on the device page. - **Still stuck:** See [Plaud support & FAQ](https://support.plaud.ai/hc/en-us) or email [support@aila.fyi](mailto:support@aila.fyi). --- ### Calls, Playback & Export url: https://docs.aila.fyi/mobile/calls-on-mobile # Calls, Playback & Export Review processed calls, ask questions, and get the loan file out of the iPhone app. Search calls from the search icon on **Home > Calls**. --- ## Open a call On **Home > Calls**, tap any call. The call has two tabs: | Tab | What's there | | :--- | :--- | | **Recording** | Play the call audio and read the transcript. | | **Notes** | Switch between **Summary** (the call recap and next steps) and **Loan data** (the borrower, employment, income, asset, and loan fields Aila extracted). | --- ## Ask Aila - **About one call:** Open a completed call, go to the **Notes** tab, and use **Ask Aila about this call** at the bottom. - **About a borrower:** On **Home > Contacts**, open a contact and use **Ask Aila about** followed by the contact's first name to ask across every conversation, for example "What follow-ups did we promise?" --- ## Email yourself the MISMO 3.4 file 1. Open the call and go to **Notes > Loan data**. 2. Tap **Email me MISMO 3.4**. 3. Choose what to export: **This call only**, or **Full loan file** (every call linked to the borrower). 4. Import the 1003 file (MISMO format) from your email into your LOS. To check the fields first, open the call's **⋯** menu and tap **Review MISMO**. The review sheet marks fields as **Low confidence — verify before export**, lets you edit them, and has its own **Email me the MISMO 3.4** button. From a contact, **Email me the 1003** sends the borrower's full loan file. Set your default in **Settings > Export defaults**: **Ask every time**, **This call only**, or **Full loan file**. With ARIVE or LendingPad connected, the [Intake Agent](https://docs.aila.fyi/agents/intake) builds the file in your LOS automatically, so you don't need this step. --- ## Related - [Capturing Calls on iPhone](https://docs.aila.fyi/mobile/capturing-calls) - [MISMO 3.4 Export](https://docs.aila.fyi/calls/mismo-export): the web export workflow. --- ### Aila for Mac url: https://docs.aila.fyi/desktop # Aila for Mac Aila Desktop is a menu bar app that records calls on your Mac. There is no bot in the call. It captures your microphone and the other side of the call on separate channels, so Aila knows who said what. Recordings feed the [Intake Agent](https://docs.aila.fyi/agents/intake), which builds the file and updates your CRM, and the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance), which scores the call. --- ## What you need - A Mac with Apple silicon, running macOS 14.4 or later. - An Aila account. Sign-in goes through the Aila web app. - Permission for the app to use your microphone and capture call audio. See [Install and sign in](#install-and-sign-in). --- ## Install and sign in 1. Download the app from [withaila.com/download/mac](https://www.withaila.com/download/mac). Open the `.dmg` and drag **Aila Desktop** to your **Applications** folder. 2. Open Aila Desktop. The setup screen, **Unlock the full experience**, lists the permissions to enable. 3. Click **Enable** next to **Capture what you say** (microphone) and **Capture what others say** (system audio from calls and meetings). Approve each macOS prompt. 4. Click **Enable** next to **Connect your Aila account**. A browser tab opens on the Aila web app showing **Connect Aila Desktop**. 5. Click **Approve & Open Desktop**. Aila Desktop signs in. 6. Choose whether to **Open Aila when you log in**, and whether you want call notifications. If macOS later asks for call-detection or screen-recording access, approve it in **Preferences**. The **Recording check** in **Preferences** shows the status of **Microphone**, **Call audio access**, **Screen recording**, and **Call detection**, and each row has an **Open** button that jumps to the right macOS setting. --- ## What it captures - **Two-channel audio:** your microphone is channel 1 and system audio (the other side of the call) is channel 2. Aila transcribes the channels separately. - **Call detection:** Aila watches which apps are using your microphone. It recognizes the Phone app (iPhone calls relayed to your Mac), FaceTime, Zoom, Microsoft Teams, Webex, RingCentral, Dialpad, Aircall, GoTo, Slack huddles, Discord, WhatsApp, and calls in a web browser (Chrome, Safari, Arc, Brave, Firefox, and Edge). Nothing is recorded until a recording starts. - **Automatic upload:** recordings upload to your Aila workspace for transcription, scoring, and CRM sync. --- ## Related - [Capturing calls on Mac](https://docs.aila.fyi/desktop/capturing-calls): start a recording, choose a recording mode, and fix problems - [Capture calls](https://docs.aila.fyi/capture) - Open **Calls** in the web app to review processed desktop recordings. --- ### Capturing calls on Mac url: https://docs.aila.fyi/desktop/capturing-calls # Capturing calls on Mac Aila Desktop lives in the macOS menu bar. This page covers recording a call, the recording modes, and fixing problems. For setup, see [Aila for Mac](https://docs.aila.fyi/desktop). --- ## Recording mode Open **Preferences** from the menu bar icon and choose a **Recording mode**: | Mode | What happens | | :--- | :--- | | **Notify me (Recommended)** | Aila alerts you when a call starts. Click once to record. Recording stops when the call ends. | | **Automatic** | Recording starts and stops with your calls. No prompt. | | **Manual** | Recording starts and stops only when you press the button. | Tell everyone on the call it is being recorded, whatever mode you use. --- ## Record a call 1. Start or join your call in the Phone app, FaceTime, Zoom, Teams, or another call app. 2. Click the **Aila** icon in the menu bar to open the panel. In **Notify me** mode, the panel shows **Call detected**. 3. Click **Record call**. In **Manual** mode, click **Start recording**. 4. While recording, the menu bar icon shows a timer. Use **Pause** to pause and **Stop** when the conversation ends. In **Notify me** mode, the recording stops when the call ends. 5. Aila Desktop uploads the recording to your workspace. Open **Calls** in the Aila web app to review it. **Recent recordings** in the panel lists your latest recordings. Right-click the menu bar icon for **Open Aila**, **Recording Recovery…**, **Preferences…**, and **Quit Aila Desktop**. --- ## Troubleshooting - **Aila can't hear the whole call:** open **Preferences** and run **Check my sound**. It listens for 8 seconds, and nothing from the check is uploaded. The **Recording check** shows which permission is missing. - **Recording is disabled:** open **macOS System Settings > Privacy & Security** and confirm microphone, call audio, and screen recording access for Aila Desktop. - **An upload didn't finish:** recordings are saved on your Mac and retried automatically, including after a restart. Choose **Recording Recovery…** from the menu bar icon to see which recordings are waiting to upload. - **Echo or the other side on your mic channel:** play the call in headphones. Without headphones, the far side can bleed into your microphone. Aila falls back to speaker labels when it detects this. --- ## Related - [Aila for Mac](https://docs.aila.fyi/desktop) - [Capture calls](https://docs.aila.fyi/capture) --- ### Calls url: https://docs.aila.fyi/calls # Calls The Calls page lists every call the [Intake Agent](https://docs.aila.fyi/agents/intake) has processed. Open a call to read the transcript and summary, check the score, and leave feedback. **Who can use it:** Owners, Admins, and Managers see every call. Members see their own calls. ## Find a call Open **Calls** in the sidebar. Use the filter bar to narrow the list. Filters include: - **Date** range, call duration, and the person on the call (**Filter by caller**). - **Review status**, processing state, overall call score, and agent acknowledgment. - **Call type**, tags, and disposition. - Contact status (Open, Won, Lost), phone number, and calls not matched to a CRM contact. - Do Not Call flag, unread comments, and hide voicemails or calls that were too short or silent. Choose 10, 25, or 100 calls per page. Use the column picker to show or hide columns, such as **Status**, **Review**, **Participants**, **Source**, **Score**, **Duration**, **Date**, **Tags**, **Disposition**, **Emotion**, and **Call type**. You can also upload a call, import data, and export calls from this page. ## Review statuses The **Review** column shows where a call is in the coaching flow: | Status | Meaning | | :--- | :--- | | **Not Reviewed** | No manager feedback yet. | | **Pending Review** | A manager left feedback. | | **Agent Question** | The agent replied to a comment. | | **Complete** | The agent acknowledged the feedback. | | **Cleared by Manager** | A manager cleared the item from the queue. | ## Open a call Click a call to open it. The call page includes: 1. An audio player with playback speeds from 0.5x to 2x. 2. A searchable, speaker-labeled transcript. 3. A summary and the fields the Intake Agent extracted. 4. The scorecard result, emotion, and call stats. 5. A comments panel for timestamped feedback. See [Coaching](https://docs.aila.fyi/coaching). 6. **Ask Aila**, a chat assistant for questions about the call. Open the **Actions** menu for **Download call**, **Report an issue**, **Library**, **Reassign Call**, and **Sync to CRM**. See [Managing calls](https://docs.aila.fyi/calls/managing-calls). ## Related - [Managing calls](https://docs.aila.fyi/calls/managing-calls) - [Contacts](https://docs.aila.fyi/calls/contacts) - [Call library](https://docs.aila.fyi/calls/library) - [MISMO 3.4 export](https://docs.aila.fyi/calls/mismo-export) --- ### Managing calls url: https://docs.aila.fyi/calls/managing-calls # Managing calls Use the **Actions** menu on a call to download it, reassign it, save it to the Library, or push it to your CRM. **Who can use it:** Reassign Call and Library are for Owners, Admins, and Managers. Download call is available to anyone who can open the call. ## Reassign a call 1. Open the call. 2. Click **Actions**, then **Reassign Call**. If the call has no agent, the item reads **Assign Agent**. 3. Pick the team member and confirm. ## Download a call 1. Open the call. 2. Click **Actions**, then **Download call**. ## Save a call to the Library 1. Open the call and click **Actions**, then **Library**. 2. In **Save Call To Library**, enter a **Name** and **Description**. 3. Pick a **Folder**, or leave it as **None**. 4. Save. See [Call library](https://docs.aila.fyi/calls/library). ## Sync a call to your CRM **Sync to CRM** appears in the **Actions** menu when the call has not synced and you have a connected CRM. If you have only Salesforce connected, the item reads **Sync to Salesforce**. To set up automatic syncing, see [Integrations](https://docs.aila.fyi/integrations). ## Fix a contact name Click the contact or caller name at the top of the call to edit it. ## Report a problem with a call Click **Actions**, then **Report an issue** to flag a problem with the call. ## Related - [Calls](https://docs.aila.fyi/calls) - [Call library](https://docs.aila.fyi/calls/library) - [Integrations](https://docs.aila.fyi/integrations) - [API reference](https://docs.aila.fyi/api-reference) --- ### Call library url: https://docs.aila.fyi/calls/library # Call library The Call Library holds the calls your managers saved as examples for the team. Calls are organized in folders. **Who can use it:** Everyone can browse the Library. Owners, Admins, and Managers can save calls and manage folders. ## Browse the library 1. Open **Library** in the sidebar. 2. Pick a folder tab to see that folder's calls. 3. Use **Search by call name…** to find a call. 4. Play a call inline, or open it for the full transcript. ## Save a call 1. Open a call from **Calls**. 2. Click **Actions**, then **Library**. 3. In **Save Call To Library**, enter a **Name** and **Description**. 4. Pick a **Folder** or leave **None**. 5. Save. ## Manage folders Create, rename, and delete folders from the folder tabs at the top of the Library. Deleting a folder asks you to confirm. ## Related - [Calls](https://docs.aila.fyi/calls) - [Coaching](https://docs.aila.fyi/coaching) - [Call scoring](https://docs.aila.fyi/settings/call-scoring) --- ### Contacts url: https://docs.aila.fyi/calls/contacts # Contacts A contact groups every call with the same borrower, so you see the whole conversation history in one place. **Who can use it:** Owners, Admins, and Managers. ## Use the contacts list 1. Open **Contacts** in the sidebar. 2. Choose **All contacts** or **Needs attention**. **Needs attention** can filter to **Salesforce issues** or **Risky calls**. 3. Search by name, phone, or email with **Search contacts…**. 4. Filter by pipeline stage or contact type. 5. Click **Export CSV** to download the current list. The list shows **Contact**, **Calls**, and **Last call**. Speed to Lead appears when your organization tracks it. Salesforce columns (**Identified**, **Written**, **Sync Issues**, **Last Sync**, **Assigned LO**) appear for organizations with Salesforce connected. ## Open a contact Click a contact, or click a contact name on any call. Tabs on the contact page: - **Timeline**: every call and message with this contact. - **Data sets**: extracted values from all calls. See [Call setup](https://docs.aila.fyi/settings/call-setup). - **Scorecard**: scores across the contact's calls. - **Mortgage app**: shown when your organization uses mortgage applications. - **Salesforce**: shown when Salesforce is connected. The header links to the matching GoHighLevel record when one exists. ## Ask Aila about a contact Click **Ask Aila** on the contact page to ask questions across the contact's calls, such as "What follow-ups did we promise this borrower?" ## Related - [Calls](https://docs.aila.fyi/calls) - [Integrations](https://docs.aila.fyi/integrations) - [Call setup](https://docs.aila.fyi/settings/call-setup) --- ### MISMO 3.4 Export url: https://docs.aila.fyi/calls/mismo-export # MISMO 3.4 Export The [Intake Agent](https://docs.aila.fyi/agents/intake) builds the 1003 in ARIVE or LendingPad. For any other LOS, export the same loan data from the call as a MISMO 3.4 XML file (Form 1003). **Available to:** mortgage organizations. --- ## Overview During mortgage intake and pre-qualification calls, Aila extracts borrower profile data, employment history, liabilities, assets, and loan terms into a standard loan-file package. You review the data, then export it as MISMO 3.4 XML. --- ## Exporting a loan file from a call ### Step 1: Open the call Open a completed borrower intake call. The **Export MISMO** button is in the call header. ### Step 2: Review extracted loan data Click **Export MISMO** to open the preview. It shows the fields extracted from the conversation: - **Borrower information**: Name, Social Security number, contact details, marital status, dependent count. - **Current and target residence**: Address, housing status (Own/Rent), monthly payment. - **Employment and income**: Employer name, job title, years on job, base monthly salary, bonus/commission income. - **Assets and liabilities**: Bank balances, real estate owned, monthly debt payments. - **Loan parameters**: Target loan amount, purchase price, property type, occupancy intent (Primary, Secondary, Investment). Use **Filter by MISMO field** to find a field, and **Hide empty** or **Show empty** to focus on what Aila captured. ### Step 3: Edit or fill in fields Click any field to edit it or add data from borrower documentation. Before it exports, Aila checks the file and lists any required MISMO fields that are missing. ### Step 4: Export Download the `.xml` file and import it into your LOS. The Social Security number is included in the file in full. If you turn on **Redact Social Security numbers** in **Settings > Mortgage config**, spoken SSNs are redacted from new transcripts and may not be available for the export. --- ## Other ways to get the file - **Mobile:** In the [Aila iPhone app](https://docs.aila.fyi/mobile), tap **Email me MISMO 3.4** to send the reviewed file to your own email address. - **Call summary emails:** Turn on **Attach FNMA MISMO 3.4 XML** in **Settings > Mortgage config** to attach the file to eligible call summary emails. - **ARIVE:** If ARIVE is connected, open the dropdown next to **Export MISMO** and choose **Create loan in ARIVE** to create the loan directly. --- ## How it works - **Extraction:** Uses the same loan-file extraction as the Intake Agent. - **Validation:** Aila checks required fields against the transcript and your edits before generating the file. --- ## Related documentation - [Calls Overview](https://docs.aila.fyi/calls): Call management workflow. - [Settings > Connections](https://docs.aila.fyi/settings/connections): Connect ARIVE and other LOS or CRM systems. - [Mobile App](https://docs.aila.fyi/mobile): Email MISMO files from the iPhone app. --- ### Coaching url: https://docs.aila.fyi/coaching # Coaching Coaching is part of the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance). Managers leave timestamped comments on calls, and team members reply and acknowledge them. **Who can use it:** Everyone. Owners, Admins, and Managers see the team view. Members see their own coaching. Open **Coaching** in the sidebar. The page changes with your role: - Managers see two tabs: **Coaching** and **AI suggestions**. See [Coaching for managers](https://docs.aila.fyi/coaching/team-coaching). - Members see their pending feedback, replies, and history. See [Coaching for team members](https://docs.aila.fyi/coaching/my-coaching). ## Review statuses Each call carries a review status that moves as feedback is exchanged: | Status | Meaning | | :--- | :--- | | **Not Reviewed** | No manager feedback yet. | | **Pending Review** | A manager left a comment. | | **Agent Question** | The agent replied to a comment. | | **Complete** | The agent acknowledged the feedback. | | **Cleared by Manager** | A manager cleared the item from the queue. | Filter the [Calls](https://docs.aila.fyi/calls) list by **Review** status to find calls at each stage. ## Comment types Comments carry a type. The defaults are **Praise**, **Coaching**, **Question**, **Warning**, and **General**. Admins can change them in **Settings > Call scoring > Comments**. See [Call scoring](https://docs.aila.fyi/settings/call-scoring). ## Related - [Coaching for managers](https://docs.aila.fyi/coaching/team-coaching) - [Coaching for team members](https://docs.aila.fyi/coaching/my-coaching) - [Call scoring](https://docs.aila.fyi/settings/call-scoring) - [Performance](https://docs.aila.fyi/performance) --- ### Coaching for managers url: https://docs.aila.fyi/coaching/team-coaching # Coaching for managers Leave timestamped feedback on calls, follow up on agent replies, and approve coaching suggestions from the **Coaching** page. **Who can use it:** Owners, Admins, and Managers. ## Give feedback on a call 1. Open a call from **Calls** or from the **Coaching** page. 2. In the transcript, click the comment icon on a line to comment on that moment. The comment keeps its timestamp (**MM:SS**), and you can edit or remove it. 3. Choose a **Comment type**. 4. Type your feedback under **Add your feedback…** and send it. The call moves to **Pending Review**. ## Follow up on replies When an agent replies to a comment, the call moves to **Agent Question** and the **Coaching** tab shows the status **Agent replied**. Open the call from the list to read the reply and respond. ## Use the Coaching tab The **Coaching** tab shows every comment your managers left, with: - **Status** (**Open** and **Completed**), **By type**, and **Weekly activity** charts. Click a chart segment to filter. - A table with **Agent**, **Contact**, **Call type**, **Comment**, **Type**, **Status**, **Manager**, and **Date**. - Filters for all, open, or completed, plus **All agents**, **All managers**, and **All types**, and a search box. - **Export CSV** and **Refresh**. Click **Clear old items** to clear comments older than 1.5 months. Cleared items stay visible with a **Cleared** status but leave the active queue. ## Review AI suggestions When automated coaching is on, the **AI suggestions** tab lists suggested comments from your coaching questions. 1. Filter by agent, question, category, priority, or date. 2. Click **Jump to this moment in the call** to hear the context. 3. Click **Approve** to post the suggestion as a comment, **Edit & Approve** to change it first, or **Dismiss** to drop it. Turn automated coaching on and tune it in **Settings > Call scoring > Coaching**. See [Call scoring](https://docs.aila.fyi/settings/call-scoring#coaching). ## Related - [Coaching overview](https://docs.aila.fyi/coaching) - [Coaching for team members](https://docs.aila.fyi/coaching/my-coaching) - [Call scoring](https://docs.aila.fyi/settings/call-scoring) - [Performance](https://docs.aila.fyi/performance) --- ### Coaching for team members url: https://docs.aila.fyi/coaching/my-coaching # Coaching for team members See feedback from your manager, reply to comments, and acknowledge them from the **Coaching** page. **Who can use it:** Everyone. Managers use the [manager view](https://docs.aila.fyi/coaching/team-coaching). ## Review feedback 1. Open **Coaching** in the sidebar. The badge shows how many items need your attention. 2. The page shows your feedback with a **By type** chart and a table of **Contact**, **Feedback**, **Type**, **Status**, **Manager**, and **Date**. Filter by type or status. 3. Open a call to read the full comment. Click a timestamped comment to jump to that moment in the audio and transcript. ## Reply to a comment Type under **Reply to feedback…** and click **Send reply**. The call moves to **Agent Question** so your manager sees it. ## Acknowledge feedback When you have read everything, click **Acknowledge feedback** on the call, or click **Acknowledge** on the row in the **Coaching** table. The call moves to **Complete**. ## Related - [Coaching overview](https://docs.aila.fyi/coaching) - [Coaching for managers](https://docs.aila.fyi/coaching/team-coaching) - [Calls](https://docs.aila.fyi/calls) --- ### Performance url: https://docs.aila.fyi/performance # Performance Performance pages show how your team is doing on calls. They are part of the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance). Open **Performance** in the sidebar to see them. | Page | What it shows | Who can use it | | :--- | :--- | :--- | | [Leaderboard](https://docs.aila.fyi/performance/leaderboard) | Team members side by side on calls, talk time, and scores. | Everyone. Members see a limited view. | | [Dashboard](https://docs.aila.fyi/performance/dashboard) | Call activity, quality, outcomes, and coverage for the team. | Everyone | | [Speed to Lead](https://docs.aila.fyi/performance/speed-to-lead) | How fast agents contact new leads. | Owners, Admins, and Managers | | [Voicemail cadence](https://docs.aila.fyi/performance/voicemail-cadence) | Whether open contacts are getting voicemails on schedule. | Owners, Admins, and Managers | | [Charts](https://docs.aila.fyi/performance/charts) | Charts you saved from Ask Aila. | Owners, Admins, and Managers | Scores on these pages come from your [scorecards](https://docs.aila.fyi/settings/call-scoring). Turn what you see into feedback in [Coaching](https://docs.aila.fyi/coaching). ## Related - [Call scoring](https://docs.aila.fyi/settings/call-scoring) - [Coaching](https://docs.aila.fyi/coaching) - [Call Compliance Agent](https://docs.aila.fyi/agents/compliance) --- ### Leaderboard url: https://docs.aila.fyi/performance/leaderboard # Leaderboard The Leaderboard compares team members over a time window. **Who can use it:** Everyone. Members see activity but not other people's scores or outcomes. Owners, Admins, and Managers see everything. ## Read the leaderboard 1. Open **Performance > Leaderboard**. 2. Pick a time window: 7, 30, or 90 days. The default is 30 days. 3. Pick team members to compare, or clear the selection to see everyone. ## Columns Columns include **Conversations**, **Dials**, **Talk time**, **Contacts**, **First convos**, **Median length**, **Talk share**, **Questions**, **Median score**, **Pass rate**, **Under 30**, **Own contacts**, **Follow-up 7d**, **Advanced**, and **Closed**. Hover a column header for its definition. Click a header to sort. Score columns depend on your [call scoring](https://docs.aila.fyi/settings/call-scoring) setup. ## Open a team member Click a name to open that person's performance page for the same time window. ## Export Click **Export CSV** to download the table. ## Related - [Dashboard](https://docs.aila.fyi/performance/dashboard) - [Call scoring](https://docs.aila.fyi/settings/call-scoring) - [Coaching](https://docs.aila.fyi/coaching/team-coaching) --- ### Dashboard url: https://docs.aila.fyi/performance/dashboard # Dashboard The Dashboard summarizes call activity and quality for your team. **Who can use it:** Everyone. ## Use the dashboard 1. Open **Performance > Dashboard**. 2. Pick a window: **Last 7 days**, **Last 30 days**, or **Last 90 days**. 3. Managers can narrow the view to one person. The default is **Everyone**. ## Sections The page is grouped into: - **On the phone**: call volume and time on calls, such as **Avg call time**. - **Short calls**: calls too short to analyze. - **Quality**: scores from your [scorecards](https://docs.aila.fyi/settings/call-scoring), **Customer sentiment**, and **Needs review**. Click an agent in **Team rankings** to filter the page. - **Salesforce**: shown when Salesforce is connected. - **Outcomes** and **Coverage and compliance**, including **DNC requests**. - **Recent activity**: **Recent calls**, **Recent coaching**, and **Call disposition**. ## Related - [Leaderboard](https://docs.aila.fyi/performance/leaderboard) - [Speed to Lead](https://docs.aila.fyi/performance/speed-to-lead) - [Coaching](https://docs.aila.fyi/coaching) --- ### Speed to Lead url: https://docs.aila.fyi/performance/speed-to-lead # Speed to Lead Speed to Lead measures how long it takes an agent to contact a new lead. The target is 5 minutes and is not configurable. **Who can use it:** Owners, Admins, and Managers. ## Read the page 1. Open **Performance > Speed to Lead**. 2. Pick **All agents** or one agent, and a window: **Last 7 days**, **Last 30 days**, **Last 90 days**, or **Custom range**. 3. Read the summary cards: **Avg response time**, **Median response time**, **SLA rate** (leads contacted in under 5 minutes), and **Open leads**. 4. Check **Response time trend** for changes over time. ## Review an agent **Agent performance** lists each agent with **Avg (min)**, **Median (min)**, **SLA Rate**, **Leads**, and **Last contact**. Click an agent to open a side panel with each lead: **Created**, **First contact**, **Customer timezone**, **Event type**, and **Time to Contact**. Filter leads by event type (such as **Outbound call**) and status (**Complete**, **Open**, **No opportunity**, and others). Search with **Search leads…**. ## Related - [Dashboard](https://docs.aila.fyi/performance/dashboard) - [Leaderboard](https://docs.aila.fyi/performance/leaderboard) - [Voicemail cadence](https://docs.aila.fyi/performance/voicemail-cadence) --- ### Voicemail cadence url: https://docs.aila.fyi/performance/voicemail-cadence # Voicemail cadence Voicemail cadence tracks whether open contacts are getting voicemail coverage on attempt 1 and every other business day. **Who can use it:** Owners, Admins, and Managers. ## Read the page 1. Open **Performance > Voicemail cadence**. 2. Filter by **Owner**, **Window** (**Last 7 days**, **Last 30 days**, or **Last 90 days**), and **Status**. Use **Search** to find a contact. 3. Read the summary cards: **Open contacts**, **Overdue**, **Due today**, **On track**, **Paused**, and **Compliance**. ## Work the queue The **Cadence queue** lists each contact with **Status**, **Attempts**, **Voicemails**, **Last voicemail**, **Next due**, and an **Action**. Statuses are **Overdue**, **Due today**, **On track**, and **Paused**. Choose **Actionable** to see only contacts that need a voicemail now. ## Related - [Speed to Lead](https://docs.aila.fyi/performance/speed-to-lead) - [Dashboard](https://docs.aila.fyi/performance/dashboard) - [Contacts](https://docs.aila.fyi/calls/contacts) --- ### Charts url: https://docs.aila.fyi/performance/charts # Charts Charts holds analytics you saved from Ask Aila, such as calls per week or calls by team member. **Who can use it:** Owners, Admins, and Managers. ## Create a chart 1. Open **Performance > Charts**. 2. Click **Ask Aila to create a chart**. 3. Ask for what you want, for example "How many calls per week?" or "Show calls by team member". 4. Save the chart. ## Manage saved charts Saved charts appear on the **Chart dashboard**. Rename a chart with the rename icon, or delete it with the delete icon. ## Related - [Dashboard](https://docs.aila.fyi/performance/dashboard) - [Ask Aila](https://docs.aila.fyi/agents/ask-aila) --- ### Integrations overview url: https://docs.aila.fyi/integrations # Integrations overview Aila is AI agents for mortgage teams. It connects to 30+ phones, dialers, meeting tools, email providers, CRMs, LOSs, and AI assistants, so the [Intake Agent](https://docs.aila.fyi/agents/intake) and the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance) work from your real calls. Connect, configure, or disconnect any integration in **Settings > Connections > Integrations**. Click **Connect** and search for the platform. The groups below follow the **Connect** menu. --- ## CRM with built-in calls Aila reads the call and writes the notes, tasks, and stage back to the CRM. - **[GoHighLevel / LeadConnector](https://docs.aila.fyi/integrations/gohighlevel)** - **Bonzo** - **[Follow Up Boss](https://docs.aila.fyi/integrations/follow-up-boss)** (requires the Aila Chrome extension) ## Phone & dialers Keep your number. Recordings sync to Aila once connected. See the [Phone & Dialers guide](https://docs.aila.fyi/integrations/phone-systems) for what each platform needs. - **[Quo/OpenPhone](https://docs.aila.fyi/integrations/openphone)**, RingCentral, Dialpad, Zoom Phone, Call Tools, Aloware, Intermedia Unite, Kixie, **[Hey Pocket](https://docs.aila.fyi/capture/pocket)**, **[Wavv](https://docs.aila.fyi/integrations/wavv)**, Wave, Cube ACR, **[Blink Voice](https://docs.aila.fyi/integrations/blink)**, ViciDial ## iPhone/Android Record calls on your cell phone, or in person with a recorder. See [Capture calls](https://docs.aila.fyi/capture). - **iPhone**: native call recording with the [Aila iPhone app](https://docs.aila.fyi/mobile), available by invite - **[Plaud](https://docs.aila.fyi/mobile/plaud)**: pairs with the Aila iPhone app - **Android**: [Pocket or native recording](https://docs.aila.fyi/capture/android) - **Your Mac**: [Aila for Mac](https://docs.aila.fyi/desktop) records calls with no bot ## Video meetings and recordings Aila's meeting bot joins and captures the call. Connect your calendar in **Settings > Connections > Integrations > Connect > My Calendar**. - **[Zoom](https://docs.aila.fyi/integrations/zoom)** - **[Google Meet](https://docs.aila.fyi/integrations/google-meet)** - **[Microsoft Teams](https://docs.aila.fyi/integrations/microsoft-teams)** - **Roam**: connect with a Roam API key and webhook signing secret, and Aila subscribes to `recording.saved` ## Email Aila drafts borrower emails in your voice and saves them to your own mailbox as drafts. Connect under **My settings > Connections**. - **Gmail** - **Outlook** ## CRM Summaries, follow-ups, and pipeline updates land where your team works. - **[HubSpot](https://docs.aila.fyi/integrations/hubspot)** - **[Salesforce](https://docs.aila.fyi/integrations/salesforce)** - **[Pipedrive](https://docs.aila.fyi/integrations/pipedrive)** - **[monday.com](https://docs.aila.fyi/integrations/monday)** ## LOS Aila builds and updates the loan file directly. - **ARIVE** - **LendingPad** For any other LOS, export a [MISMO 3.4 file](https://docs.aila.fyi/calls/mismo-export). ## AI assistants Ask about your files from ChatGPT or Claude. - **ChatGPT** and **Claude**, through the [Aila MCP server](https://docs.aila.fyi/integrations/aila-mcp) --- ## Don't see your platform? Custom integrations are available on Enterprise. Click **Request Integration** on [withaila.com/integrations](https://www.withaila.com/integrations), or send recordings from any system with the [Batch Call Upload API](https://docs.aila.fyi/api-reference/batch-upload). --- ## For developers - **[Outbound Webhooks](https://docs.aila.fyi/api-reference/webhooks)**: Stream `call.completed`, `task.created`, and `mismo.ready` events to your own endpoints. - **[Batch Call Upload](https://docs.aila.fyi/api-reference/batch-upload)**: Send recordings from any system. --- ### LeadConnector (GoHighLevel) url: https://docs.aila.fyi/integrations/gohighlevel # LeadConnector (GoHighLevel) Aila reads calls made in LeadConnector (GoHighLevel, GHL) and writes the results back to the contact. The writes are part of the [Intake Agent](https://docs.aila.fyi/agents/intake). --- ## What syncs | Direction | What | | :--- | :--- | | LeadConnector to Aila | Call recordings and call details for calls made in your location. Opportunity stage and status changes, so Aila shows each contact's pipeline and stage. | | Aila to LeadConnector | Call summary as a note or a conversation message. Full transcript, if you turn it on. Contact and opportunity custom fields. Tasks, appointments, tags, and stage moves from your CRM Automation rules. | If you map opportunity fields and the contact has no opportunity, Aila creates one in your first pipeline's first stage. If the call has no matching contact, Aila searches by email or name and creates the contact. --- ## What you need - A LeadConnector user who can approve an app install for the location. - An Aila user with the same email as each LeadConnector user whose calls you want captured. Aila matches calls to people by email. - To reconnect, if you connected before calendar support shipped. Appointments need calendar permissions that older connections don't have. --- ## Connect 1. In Aila, go to **Settings > Connections** and click **Connect**. 2. Select **LeadConnector**. 3. Sign in to LeadConnector, choose the location (sub-account), and approve the requested permissions. They cover contacts, opportunities, conversations, custom fields, tasks, users, and calendars. 4. Return to Aila. The connection shows the location ID. Agency installs from the GoHighLevel marketplace create one Aila organization per sub-account you select. --- ## Settings Open the connection's settings in **Settings > Connections**. | Setting | Options | Default | What it does | | :--- | :--- | :--- | :--- | | **Call summary location** | Conversation, Notes, Off | Notes | Where Aila posts the call summary. | | **Post transcript** | Off, Conversation, Notes | Off | Where Aila posts the full transcript. Shown only on connections that support it. | | **Default calendar** | Any calendar in the location | None | The calendar Aila uses when it creates appointments. | --- ## Field mapping Map extracted data to LeadConnector contact and opportunity custom fields in [Call setup](https://docs.aila.fyi/settings/call-setup). You can import your location's fields instead of typing them. Aila can also propose a mapping for you to review. --- ## How calls are matched 1. LeadConnector sends Aila a webhook for each call in the location, including the contact ID. 2. Aila matches the LeadConnector user on the call to an Aila user by email. 3. Aila writes to that contact. If the contact has several opportunities, Aila picks the best match from the call. --- ## Troubleshooting - **A call made in LeadConnector isn't in Aila:** Check that the caller's email is the same in LeadConnector and Aila. - **No appointments are created:** Reconnect so Aila gets calendar permissions, then choose a **Default calendar**. - **Opportunity fields stay empty:** Confirm the field is mapped and the location has at least one pipeline. --- ## Related - [Intake Agent](https://docs.aila.fyi/agents/intake) - [Call setup](https://docs.aila.fyi/settings/call-setup) - [Connections](https://docs.aila.fyi/settings/connections) --- ### Follow Up Boss url: https://docs.aila.fyi/integrations/follow-up-boss # Follow Up Boss Aila syncs calls made in Follow Up Boss (FUB), then writes call summaries, tasks, and custom-field updates back to the FUB person and deal. The writes are part of the [Intake Agent](https://docs.aila.fyi/agents/intake). Setup has two required parts: connect your FUB API key, and install the Aila Chrome extension. --- ## What syncs | Direction | What | | :--- | :--- | | FUB to Aila | Each call made or taken in FUB, with its recording. | | Aila to FUB | Call summary as a note on the person. A task for each action item. Person and deal custom fields. | --- ## What you need - A FUB API key. Create or copy one in FUB at **Admin > API**. - Google Chrome, with the Aila extension installed and signed in to FUB in the same Chrome profile. - Chrome open on at least one computer, so the extension can collect recordings. --- ## Why the Chrome extension is required FUB's public API tells Aila when a call happens, but it never returns the recording audio. The extension fetches each recording from your signed-in FUB web session and uploads it to Aila. 1. You make or take a call in FUB. 2. FUB sends Aila a `callsCreated` webhook. Aila creates the call in a **pending recording** state. 3. The extension checks for pending recordings every 5 minutes, downloads the audio from FUB, and uploads it to Aila. 4. Aila processes the call and writes the results back to FUB. Pending calls wait up to 30 days. Calls shorter than 2 seconds have no recording in FUB and are skipped. --- ## Connect 1. In Aila, go to **Settings > Connections**, click **Connect**, and select **Follow Up Boss**. 2. Paste your API key and click **Connect**. Aila registers its FUB webhooks for you. Use an API key that belongs to a FUB account owner, because FUB only lets owners register webhooks. 3. Install the extension from [withaila.com/download/chrome](https://www.withaila.com/download/chrome). 4. Click the **Aila** icon in the Chrome toolbar and click **Connect Aila**. 5. Sign in to Follow Up Boss in the same Chrome profile. The extension runs in the background. You don't need to open it again. --- ## Settings Open the connection's settings in **Settings > Connections**. | Setting | Options | Default | What it does | | :--- | :--- | :--- | :--- | | **Call summary** | In Notes, Off | In Notes | Adds a note to the FUB person with the call summary. | | **Action items** | As Tasks, Off | As Tasks | Creates a FUB task for each action item. Each task is due the day after the call and assigned to the person's assignee in FUB. | --- ## Field mapping Aila updates mapped person and deal custom fields. Map fields in [Call setup](https://docs.aila.fyi/settings/call-setup). If a mapped deal field has no deal to write to, Aila skips it. --- ## How calls are matched FUB's webhook identifies the person and the FUB user on each call. Aila writes to that person and attaches the call to the Aila user for the FUB user. --- ## Troubleshooting - **Calls show as pending recording:** Open Chrome, check that the Aila extension is connected to your Aila account, and sign in to FUB. Pending calls upload on the next 5-minute check. - **The extension asks you to sign in to Follow Up Boss:** Sign in on followupboss.com. Imports resume on their own. - **A call never arrives:** Check that call recording is turned on in FUB for that call. Calls under 2 seconds are skipped. --- ## Using the extension without FUB The extension can also record calls in a browser tab on a PC. It works on these sites: Cube (myccmortgage.com), Salesforce, RingCentral, and Google Voice. Open the call's tab, click the **Aila** icon, and click **Turn on call capture**. Click **Stop call capture** when you're done. On a Mac, [Aila for Mac](https://docs.aila.fyi/desktop) records any call without a bot. --- ## Related - [Intake Agent](https://docs.aila.fyi/agents/intake) - [Call setup](https://docs.aila.fyi/settings/call-setup) - [Connections](https://docs.aila.fyi/settings/connections) --- ### Bonzo url: https://docs.aila.fyi/integrations/bonzo # Bonzo Aila reads calls made in Bonzo and writes notes, tasks, stage moves, and tags back to the prospect. The writes are part of the [Intake Agent](https://docs.aila.fyi/agents/intake). --- ## What syncs | Direction | What | | :--- | :--- | | Bonzo to Aila | Call messages and their recordings, sent by Bonzo event hooks. | | Aila to Bonzo | Call summary as a note. Full transcript as a note, if you turn it on. A follow-up task. Custom field values. Pipeline stage moves. Prospect tags. Appointments from your appointment rules. | --- ## What you need - A Bonzo API key. Create it in Bonzo with these permissions: Messaging, Conversations, Prospects, Public access, and Authenticated access. - Access to **Settings > Integrations > Event Hooks** in Bonzo. --- ## Connect 1. In Aila, go to **Settings > Connections** and click **Connect**. 2. Select **Bonzo**. 3. Paste your **Bonzo API Key** and click **Connect**. 4. Open the connection's settings and copy the **Webhook URL**. 5. In Bonzo, go to **Settings > Integrations > Event Hooks** and click **New event hook**. Paste the URL and subscribe to: Messages incoming, Messages outgoing, Messages outgoing updated, Task created, Task updated, Prospect notes created, Prospect notes updated, and Prospect notes deleted. --- ## Settings | Setting | Options | Default | What it does | | :--- | :--- | :--- | :--- | | **Call Summary** | In Notes, Off | In Notes | Posts the call summary as a Bonzo note. | | **Post Transcript** | Off, In Notes | Off | Posts the full transcript as a note. | | **Create Follow-up Task** | On, Off | Off | Creates one follow-up task after each processed call. | --- ## Field mapping - **Custom Field Mapping** maps extracted data to Bonzo custom fields. - **Pipeline stage rules** move the prospect to a stage when an extracted value matches your rule. - **Tag rules** add a tag when an extracted value matches your rule. --- ## How calls are matched Bonzo includes the prospect and the Bonzo user on each call event. Aila links the call to that prospect and to the Aila user with the same email as the Bonzo user. --- ## Troubleshooting - **No calls arrive:** Check that the event hook uses the exact **Webhook URL** from the connection and subscribes to all eight events above. - **The connection fails:** Check that the API key has the five permissions listed above. --- ## Related - [Intake Agent](https://docs.aila.fyi/agents/intake) - [Call setup](https://docs.aila.fyi/settings/call-setup) - [Connections](https://docs.aila.fyi/settings/connections) --- ### Phone & Dialers url: https://docs.aila.fyi/integrations/phone-systems # Phone & Dialers Keep your number. Once your dialer or VOIP is connected, its call recordings sync to Aila automatically. Each recording goes to the [Intake Agent](https://docs.aila.fyi/agents/intake), which builds the file and updates your CRM, and to the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance), which scores the call. --- ## What you need - Admin or owner access in Aila. - Call recording turned on in your phone system. - Whatever credentials your platform needs. See the table below. --- ## Connect 1. In Aila, go to **Settings > Connections > Integrations** and click **Connect**. 2. Search for your platform, such as **Quo/OpenPhone** or **Wavv**, and select it. 3. Enter what the table below lists in the **What you enter** column, then click **Connect**. 4. If the platform needs a webhook, Aila shows a **Webhook URL** after you connect. Click **Copy**, click **Done**, then paste it where the **What you paste** column says. 5. Make a test call and confirm it appears on the **Calls** page. Some platforms are set up from the other side. For Blink Voice, you send Aila's URL to Blink first. For ViciDial, your administrator posts the recordings. --- ## Platforms | Platform | What you enter | What you paste, and where | Notes | | :--- | :--- | :--- | :--- | | **[Quo/OpenPhone](https://docs.aila.fyi/integrations/openphone)** | **OpenPhone API Key** (Quo **Settings > API Keys**) | **OpenPhone Webhook URL** in Quo **Settings > Webhooks**, event `call.recording.completed` | Optional number and direction filters. | | **RingCentral** | **Client ID**, **Client Secret**, and **JWT Credential** from a RingCentral REST API app that uses JWT auth | Nothing. Aila subscribes for you. | Works for every user on the account. Enable these app permissions: ReadAccounts, ReadCallLog, ReadCallRecording, SubscriptionWebhook, ReadPresence, CallControl. Has **Process Inbound Calls** and **Process Outbound Calls** switches. | | **Dialpad** | **API Key** from your Dialpad account | Nothing. Aila creates the webhook and subscription. | | | **Zoom Phone** | **Account ID**, **Client ID**, **Client Secret**, and **Secret Token** from a Zoom Server-to-Server OAuth app | **Zoom Phone Webhook URL** in the Zoom app's event subscriptions, event `phone.recording_completed` | The Secret Token is on the app's **Feature** page. Has **Process Inbound Calls** and **Process Outbound Calls** switches. | | **Call Tools** | **Call Tools API Token** (a REST API token) | Usually nothing, because Aila creates the REST hook. If it can't, Aila shows a URL to add in Call Tools for Call create events. | Optional **CRM ID Contact Field** setting. | | **Aloware** | Nothing | **Aloware Webhook URL**: in Aloware, open **Integrations > Webhooks**, create a webhook, set the event to **Recording saved**, and add the URL. | | | **Intermedia Unite** | **Client ID** and **Client Secret** from HostPilot > Unite Extend API | Nothing. | | | **Kixie** | **Kixie API Key** (Kixie **Admin > API Keys**) | **Kixie Webhook URL** in Kixie **Manage > Automations > Webhooks**, event **End Call** | | | **[Hey Pocket](https://docs.aila.fyi/capture/pocket)** | **Hey Pocket API Key** (Pocket **Developers > API Keys**) | **Webhook URL** in Pocket **Developers > Webhooks**, events `recording.created` and `transcription.completed` | A personal connection. See [Hey Pocket](https://docs.aila.fyi/capture/pocket). | | **[Wavv](https://docs.aila.fyi/integrations/wavv)** | **WAVV API Key** (starts with `wavv_`) and an optional **WAVV Webhook Signing Secret (optional)** | **WAVV Webhook URL** in WAVV **Integrations > Webhooks**, events `call.ended` and `call.recorded` | | | **Wave** | **Wave API token** with sessions:read, transcripts:read, media:read, account:read, and webhooks:manage scopes, plus **Aila user email** | Nothing. Aila registers the webhook for `session.completed`. | Use one connection per team member so calls are attributed correctly. | | **Cube ACR** | Nothing | **Webhook URL**. Post each recording from a Zapier or Make flow, for example a new file in a Drive or Dropbox folder. | The JSON body needs `audioUrl`. Optional fields are `filename`, `recordedAt`, `contactNumber`, `contactName`, `direction`, `externalId`, and `sizeBytes`. | | **[Blink Voice](https://docs.aila.fyi/integrations/blink)** | After Blink registers your URL: **Blink API key** and **Blink webhook subscription ID** | Send the **Blink webhook URL** to Blink Voice. | Calls are processed only for Blink extensions that map to an Aila teammate. | | **ViciDial** | Nothing | Give the **ViciDial Webhook URL** to your ViciDial administrator. They configure ViciDial to POST JSON when a call completes. | The JSON must include the recording URL and the rep's email. Only calls whose rep email matches an Aila teammate are processed. If recording URLs are IP-restricted, allowlist Aila's static egress IPs. | Calls made inside GoHighLevel and Bonzo sync through the CRM connection. Follow Up Boss calls sync through the Aila Chrome extension. See [Integrations](https://docs.aila.fyi/integrations). --- ## Not listed? - Send recordings from any system with the [Batch Call Upload API](https://docs.aila.fyi/api-reference/batch-upload). Create a key under **Settings > Connections > API Keys**. - Click **Request Integration** on [withaila.com/integrations](https://www.withaila.com/integrations). --- ## Troubleshooting - **No calls arrive:** for platforms that need a webhook, calls don't flow until you paste the URL into the platform. Check that step first. - **Some teammates' calls are missing:** for Quo/OpenPhone, Blink Voice, and ViciDial, calls from a user who doesn't match an Aila teammate aren't processed. Make sure each person has an Aila account with the same email. --- ## Related - [Capture calls](https://docs.aila.fyi/capture) - [Connections settings](https://docs.aila.fyi/settings/connections) --- ### Quo/OpenPhone url: https://docs.aila.fyi/integrations/openphone # Quo/OpenPhone Connect Quo (formerly OpenPhone) so call recordings flow into Aila automatically. Each recording goes to the [Intake Agent](https://docs.aila.fyi/agents/intake), which builds the file and updates your CRM, and to the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance), which scores the call. --- ## What you need - A Quo (OpenPhone) workspace with call recording turned on. - A Quo API key. Create it in Quo under **Settings > API Keys**. - Admin or owner access in Aila. --- ## Connect 1. In Aila, go to **Settings > Connections > Integrations** and click **Connect**. 2. Search for **Quo/OpenPhone** and select it. 3. Paste your **OpenPhone API Key** and click **Connect**. 4. Click **Copy** next to the **OpenPhone Webhook URL**, then click **Done**. 5. In Quo, go to **Settings > Webhooks** and create a new webhook with that URL. 6. Subscribe the webhook to the `call.recording.completed` event. 7. Make a test call and confirm it appears on the **Calls** page. Aila accepts both Quo webhook payload versions (v3 and v4). It processes only `call.recording.completed` events and acknowledges the rest. --- ## Settings Open the connection's settings from its row in **Settings > Connections > Integrations**. The dialog is **OpenPhone Preferences**. | Setting | What it does | | :--- | :--- | | **Phone numbers to process (optional)** | Process calls only on the Quo numbers you list. Leave it blank to process all your Quo numbers. | | **Process inbound calls** | Turn off to skip inbound calls. | | **Process outbound calls** | Turn off to skip outbound calls. | | **Provider email alias (optional)** | The email the connection owner uses in Quo, if it differs from their Aila email. | --- ## How calls are matched to your team Quo's recording webhook carries a Quo user ID but no email. Aila looks up the Quo user with your API key and matches them to the Aila teammate with the same email. Calls from Quo users who don't have an approved Aila account are ignored until their account is approved. --- ## Troubleshooting - **A call doesn't appear:** confirm the webhook uses the `call.recording.completed` event and that the call was recorded in Quo. Events without a recording are skipped. - **Calls from one teammate are missing:** confirm they have an Aila account with the same email as their Quo user, or set a **Provider email alias**. --- ## Related - [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems) - [Capture calls](https://docs.aila.fyi/capture) --- ### Wavv url: https://docs.aila.fyi/integrations/wavv # Wavv Connect your WAVV dialer so completed calls and their recordings flow into Aila automatically. Each recording goes to the [Intake Agent](https://docs.aila.fyi/agents/intake), which builds the file and updates your CRM, and to the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance), which scores the call. --- ## What you need - A WAVV account with access to **Integrations > Webhooks**. - A WAVV Public API v3 key, which starts with `wavv_`. Aila uses it to fetch recordings from WAVV. Legacy GoHighLevel recordings keys also work. - Optional: the `whsec_` webhook signing secret from WAVV, to verify each delivery. - Admin or owner access in Aila. --- ## Connect 1. In Aila, go to **Settings > Connections > Integrations** and click **Connect**. 2. Search for **Wavv** and select it. 3. Enter your **WAVV API Key**. Optionally enter the **WAVV Webhook Signing Secret (optional)**. 4. Click **Connect**. 5. Click **Copy** next to the **WAVV Webhook URL**, then click **Done**. 6. In WAVV, go to **Integrations > Webhooks** and paste the URL. Subscribe to `call.ended` and `call.recorded`. 7. Make a test call and confirm it appears on the **Calls** page. --- ## How calls are matched to your team When WAVV sends a user ID, Aila maps it to an Aila teammate through your GoHighLevel user list, which matches people by email. When the webhook has no user ID, or the ID doesn't match a teammate, Aila attributes the call to the organization owner. --- ## Troubleshooting - **Recordings are missing:** the `wavv_` API key lets Aila download the recording when the webhook doesn't include one. Without a key, Aila can only ingest the webhook and can't fetch audio. - **Calls land on the owner:** connect GoHighLevel and make sure each WAVV user has an Aila account with the same email. --- ## Related - [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems) - [LeadConnector (GoHighLevel)](https://docs.aila.fyi/integrations/gohighlevel) --- ### Blink Voice url: https://docs.aila.fyi/integrations/blink # Blink Voice Connect Blink Voice so completed call recordings flow into Aila automatically. Each recording goes to the [Intake Agent](https://docs.aila.fyi/agents/intake), which builds the file and updates your CRM, and to the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance), which scores the call. Blink registers the webhook for you, so you start in Aila, hand Blink a URL, and finish after Blink sends back credentials. --- ## What you need - A Blink Voice account and a contact at Blink to register your webhook. - Admin or owner access in Aila. --- ## Connect 1. In Aila, go to **Settings > Connections > Integrations** and click **Connect**. 2. Search for **Blink Voice** and select it. 3. Copy the **Blink webhook URL** and send it to Blink Voice for your organization's webhook registration. 4. Blink gives you an API key and a subscription ID. The key needs the `recordings:read` and `users:read` scopes. 5. Open the connection's settings. The dialog is **Blink Voice configuration**. 6. Enter the **Blink API key** and the **Blink webhook subscription ID**, then click **Save and verify**. 7. Make a test call and confirm it appears on the **Calls** page. Aila accepts an event only when its `X-Correlation-ID` header matches the subscription ID. --- ## How calls are matched to your team Saving the connection loads your Blink user directory, and Aila refreshes it every day at 6:00 AM Eastern Time. Aila processes a call only when the Blink extension maps to a billable, non-admin Aila user. A call with an unknown extension, an unknown email, or an admin mapping isn't processed. --- ## Troubleshooting - **Calls aren't processed:** check that the caller's Blink extension maps to a teammate with an Aila account, then click **Save and verify** to reload the directory. - **Nothing arrives after setup:** confirm Blink registered the URL and that the subscription ID in Aila matches the one Blink gave you. --- ## Related - [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems) --- ### Zoom url: https://docs.aila.fyi/integrations/zoom # Zoom Aila's meeting bot joins your Zoom meetings from your calendar and records them. Each recording goes to the [Intake Agent](https://docs.aila.fyi/agents/intake), which builds the file and updates your CRM, and to the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance), which scores the call. --- ## What you need - A Google Calendar or Microsoft Outlook calendar that holds your Zoom meetings. - Meeting links on the calendar events you want recorded. --- ## Connect 1. In Aila, go to **Settings > Connections > Integrations**, click **Connect**, and select **My Calendar**. You can also go to **My settings > Connections** and use the **Calendar** row. 2. In **Connect your calendar**, choose the **Calendar platform**: **Google Calendar** or **Microsoft Outlook**. 3. Click **Continue** and approve access to your calendar. 4. Add Zoom meeting links to your scheduled events. The bot joins at the scheduled time, and Zoom may ask the host to allow recording. One calendar connection covers Zoom, Google Meet, and Microsoft Teams links. Aila's meeting bot, named **Aila Notetaker**, joins your scheduled meetings automatically. --- ## Settings Open the calendar's row and choose **Recording preferences** to control which meetings the bot joins. | Setting | What it does | | :--- | :--- | | **Auto-record enabled** | Turns auto-recording on or off for this calendar. | | **Record when not host** | Record meetings where you aren't the host. | | **Record recurring meetings** | Include recurring meetings. | | **Record external meetings** | Record meetings with attendees outside your organization. | | **Record internal meetings** | Record meetings with only internal attendees. | | **Confirmed only** | Record only confirmed events, not tentative ones. | | **Add bot to calendar invite** | Google Calendar only. Adds the notetaker to the event, which removes the "potential risks" warning in Google Meet. | --- ## Related - [Meetings and calendar FAQ](https://docs.aila.fyi/faq/meetings-and-calendar) - [Capture calls](https://docs.aila.fyi/capture) - To record without a bot, use [Aila for Mac](https://docs.aila.fyi/desktop). --- ### Google Meet url: https://docs.aila.fyi/integrations/google-meet # Google Meet Aila's meeting bot joins your Google Meet calls from your calendar and records them. Each recording goes to the [Intake Agent](https://docs.aila.fyi/agents/intake), which builds the file and updates your CRM, and to the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance), which scores the call. --- ## What you need - A Google Calendar (Google Workspace) calendar that holds your Meet meetings. - Meeting links on the calendar events you want recorded. --- ## Connect 1. In Aila, go to **Settings > Connections > Integrations**, click **Connect**, and select **My Calendar**. You can also go to **My settings > Connections** and use the **Calendar** row. 2. In **Connect your calendar**, choose the **Calendar platform**: **Google Calendar** or **Microsoft Outlook**. 3. Click **Continue** and approve access to your calendar. 4. Schedule meetings with Google Meet links. The bot joins automatically at the start of the meeting. One calendar connection covers Zoom, Google Meet, and Microsoft Teams links. Aila's meeting bot, named **Aila Notetaker**, joins your scheduled meetings automatically. --- ## Settings Open the calendar's row and choose **Recording preferences** to control which meetings the bot joins. | Setting | What it does | | :--- | :--- | | **Auto-record enabled** | Turns auto-recording on or off for this calendar. | | **Record when not host** | Record meetings where you aren't the host. | | **Record recurring meetings** | Include recurring meetings. | | **Record external meetings** | Record meetings with attendees outside your organization. | | **Record internal meetings** | Record meetings with only internal attendees. | | **Confirmed only** | Record only confirmed events, not tentative ones. | | **Add bot to calendar invite** | Google Calendar only. Adds the notetaker to the event, which removes the "potential risks" warning in Google Meet. | --- ## Related - [Meetings and calendar FAQ](https://docs.aila.fyi/faq/meetings-and-calendar) - [Capture calls](https://docs.aila.fyi/capture) - To record without a bot, use [Aila for Mac](https://docs.aila.fyi/desktop). --- ### Microsoft Teams url: https://docs.aila.fyi/integrations/microsoft-teams # Microsoft Teams Aila's meeting bot joins your Microsoft Teams meetings from your calendar and records them. Each recording goes to the [Intake Agent](https://docs.aila.fyi/agents/intake), which builds the file and updates your CRM, and to the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance), which scores the call. --- ## What you need - A Microsoft Outlook (Microsoft 365) calendar that holds your Teams meetings. - Meeting links on the calendar events you want recorded. --- ## Connect 1. In Aila, go to **Settings > Connections > Integrations**, click **Connect**, and select **My Calendar**. You can also go to **My settings > Connections** and use the **Calendar** row. 2. In **Connect your calendar**, choose the **Calendar platform**: **Google Calendar** or **Microsoft Outlook**. 3. Click **Continue** and approve access to your calendar. 4. Include Teams meeting links in your calendar invites. The bot joins the meeting and records it. One calendar connection covers Zoom, Google Meet, and Microsoft Teams links. Aila's meeting bot, named **Aila Notetaker**, joins your scheduled meetings automatically. --- ## Settings Open the calendar's row and choose **Recording preferences** to control which meetings the bot joins. | Setting | What it does | | :--- | :--- | | **Auto-record enabled** | Turns auto-recording on or off for this calendar. | | **Record when not host** | Record meetings where you aren't the host. | | **Record recurring meetings** | Include recurring meetings. | | **Record external meetings** | Record meetings with attendees outside your organization. | | **Record internal meetings** | Record meetings with only internal attendees. | | **Confirmed only** | Record only confirmed events, not tentative ones. | | **Add bot to calendar invite** | Google Calendar only. Adds the notetaker to the event, which removes the "potential risks" warning in Google Meet. | --- ## Related - [Meetings and calendar FAQ](https://docs.aila.fyi/faq/meetings-and-calendar) - [Capture calls](https://docs.aila.fyi/capture) - To record without a bot, use [Aila for Mac](https://docs.aila.fyi/desktop). --- ### HubSpot Integration url: https://docs.aila.fyi/integrations/hubspot # HubSpot Integration Aila sends call recaps and mapped mortgage fields into HubSpot. Aila extracts the fields in this schema from the call. HubSpot receives only the objects below, plus the properties that you map. Create each HubSpot property in your portal first. Aila does not create HubSpot properties. --- ## Connect 1. Open **Settings → Connections → HubSpot**. 2. Click **Connect**. 3. Sign in to HubSpot and allow Aila. 4. Aila needs a HubSpot owner: the Aila user’s HubSpot user, or the Contact’s owner if the Aila user has no HubSpot owner. If neither exists, Aila writes nothing. 5. Open **Settings → Custom Datasets**. Map Aila fields to HubSpot Contact and Deal properties that already exist in your portal. Reconnect if Aila asks. New scopes are required for Deal, Task, and Call writes. --- ## What Aila writes | HubSpot object | When | What | | --- | --- | --- | | Contact | Every matched or created destination | Create uses `email`, `firstname`, `lastname`, and `hubspot_owner_id`. Create does not set `phone`. Updates use mapped `contact.*` properties only. | | Deal | When mapping includes `deal.*` and Aila selects one Deal | Mapped Deal properties. Aila does not create a Deal. | | Note | Create Summary = In Notes (default) | Call summary, rapport, follow-ups, and fields marked include-in-summary. Reprocess can add a second Note. | | Call | Log Calls = As Call engagements | Completed call: time, duration in milliseconds when known, body, Aila URL, and owner. Associated to Contact and Deal. Idempotent. | | Task | Create Action Items = As Tasks | One Task per follow-up line. Associated to Contact and Deal. Idempotent. | Aila sets Aila contact status from `hs_is_closed` / `hs_is_closed_won` on the selected Deal. Aila does not change Deal stage. Call, Task, and Note may associate to a Deal. That is HubSpot-specific. Salesforce Tasks attach to the person only. The call summary Note can include a Social Security number if the model put it in the summary text. Mapped `ssn` properties are still blocked. --- ## Match rules Phone path (match only; does not create): 1. Last 10 digits of HubSpot `phone` or `mobilephone`. Email/name path (creates if missing): 2. Exact Contact `email`. 3. Name search, then create Contact (`email` / `firstname` / `lastname` / `hubspot_owner_id`). Owner: 4. Prefer the Aila user’s HubSpot owner. Else use the Contact owner. If neither exists, Aila writes nothing. Deal selection: page all associated Deals. Exactly one Deal → use it (even if closed). Else pick one open Deal (`hs_is_closed` is not true), newest `hs_lastmodifieddate`. If two or more open Deals remain, Aila skips Deal property writes and still writes Contact, Note, Call, and Task. The call shows that skip. Aila does not use an LLM to pick among Deals. --- ## Mapping rules - **Overwrite**: replace the HubSpot value. - **Skip if exists**: write only when the HubSpot property is empty. - **Append**: add a timestamped line to text properties. Empty Aila values do not clear HubSpot properties. Map Aila paths to `contact.{internalName}` or `deal.{internalName}` (for example `contact.firstname`, `deal.amount`). The HubSpot internal name must already exist. Standard Contact fields you may map without a custom property: `firstname`, `lastname`, `email`, `phone`, `mobilephone`, `address`, `city`, `state`, `zip`. --- ## Fields Aila will not map These Aila paths never write to HubSpot, even if a mapping exists: - `client_details.ssn` - `co_borrower_details.ssn` - `demographics.ethnicity` - `demographics.race` - `demographics.gender` - `demographics.co_borrower_ethnicity` - `demographics.co_borrower_race` - `demographics.co_borrower_gender` Keep Social Security numbers and HMDA demographics in Aila / MISMO export. Money values in this catalog are often `$X,XXX` strings. Aila strips currency punctuation before a HubSpot number property. Enums use Aila labels; HubSpot option internals must match or that one field is skipped. --- ## Source schema (Aila mortgage dataset) HubSpot gets a property only when you map that path to `contact.{property}` or `deal.{property}`. Optional groups (`call_disposition`, `investor_details`, `pipeline_state`, `base.send_application`) appear only on the matching prompt variant. ### `base` (Info) | Path | Type | | --- | --- | | `base.summary` | text | | `base.contact_name` | text | | `base.rapport_building` | array (text property only) | | `base.follow_ups` | array (text property only) | | `base.is_voicemail` | boolean | | `base.counterparty_type` | text | | `base.send_application` | boolean (optional prompt flag) | There is no `base.disposition`. Disposition is `call_disposition.call_disposition`. ### `client_details` `name`, `phone`, `email`, `ssn` (blocked), `dob`, `citizenship_status`, `working_with_realtor`. ### `client_address` `street_address`, `address_line_2`, `unit_type`, `unit_identifier`, `city`, `state`, `zip_code`, `county`, `months_at_address`, `residency_basis`. ### `property_address` `street_address`, `address_line_2`, `unit_type`, `unit_identifier`, `city`, `state`, `zip_code`, `county`. ### `purchase_details` `property_use_type`, `property_type`, `property_price`, `min_purchase`, `max_purchase`, `annual_property_tax`, `annual_insurance`, `monthly_hoa`, `year_built`, `fha_section_of_act`, `financed_unit_count`, `property_mixed_use`, `property_existing_clean_energy_lien`, `property_estate_type`, `move_in_timeline`. ### `proposed_loan_details` `purpose`, `type`, `down_payment`, `amount`, `rate`, `term_years`, `desired_term`, `desired_monthly_payment`, `interest_in_impound`, `cashout_amount`, `cashout_percent`, `has_balloon_payment`, `is_interest_only`, `has_prepayment_penalty`, `has_temporary_buydown`, `has_below_market_subordinate`, `is_energy_related`, `is_renovation_loan`, `lender_credit_amount`, `seller_credit_amount`, `gift_amount`, `employer_assistance_amount`, `estimated_closing_date`, `va_first_time_use`, `va_funding_fee_exempt`, `va_case_number`, `closing_cost_points_discount`, `cash_out_purpose_primary`, `rate_watch_set`, `rate_watch_trigger_rate`, `competing_offer_rate`. ### `qualification_details` `credit_score`, `credit_consent_received`, `monthly_rent`, `employer`, `employment_status`, `employment_reporting`, `employment_start_date`, `is_first_time_home_buyer`, `is_veteran`, `had_bankruptcy`, `had_foreclosure`, `marital_status`, `dependent_count`, `dependent_ages`, `currently_owned_financed_properties_count`, `has_collection_or_charge_off`, `collection_amount`, `collection_creditor_name`, `collection_status_description`, `outstanding_judgments`, `party_to_lawsuit`, `presently_delinquent_federal_debt`, `prior_deed_in_lieu`, `prior_short_sale`, `proposed_clean_energy_lien`, `undisclosed_borrowed_funds`, `undisclosed_comaker_of_note`, `undisclosed_credit_application`, `undisclosed_mortgage_application`, `special_borrower_seller_relationship`, `pay_frequency`, `bankruptcy_must_wait_until`, `secondary_employment_status`. ### `employer_details` `position_description`, `address_line`, `city`, `state`, `zip_code`, `months_at_employer`. ### `previous_employer_details` `employer`, `employment_status`, `position_description`, `employment_start_date`, `employment_end_date`, `monthly_income`, `address_line`, `city`, `state`, `zip_code`. ### `income_details` `base`, `commission`, `stock_compensation`, `bonuses`, `overtime`, `social_security`, `pension`, `pension_2`, `disability`, `retirement`, `rental_income`, `other_income`, `other_income_description`, `has_social_security_income`, `has_pension_income`, `has_retirement_distribution_income`, `secondary_gross_monthly_income`. ### `asset_details` `property_value`, `property_equity`, `business_value`, `business_equity`, `liquid_value`, `checking_balance`, `savings_balance`, `money_market_balance`, `stock_brokerage_balance`, `retirement_account_balance`, `primary_bank_name`, `cash_on_hand_earnest_money`. ### `debt_details` `total_credit_card_debt`, `monthly_mortgage_payments`, `monthly_car_payments`, `monthly_tax_and_insurance_payments`, `monthly_credit_card_payments`, `monthly_student_loan_payments`, `monthly_personal_loan_payments`, `monthly_other_payments`, `monthly_child_support`, `monthly_alimony`, `monthly_separate_maintenance`, `remaining_mortgage_terms`, `remaining_personal_loan_terms`, `mortgage_creditor_name`, `auto_creditor_name`, `student_loan_servicer_name`, `credit_card_issuer_names`, `personal_loan_creditor_name`, `mortgage_unpaid_balance`, `mortgage_payment_includes_taxes_insurance`, `auto_loan_unpaid_balance`, `student_loan_unpaid_balance`, `personal_loan_unpaid_balance`, `remaining_car_terms`, `remaining_student_loan_terms`, `remaining_other_terms`, `loan_type_original`. ### `demographics` (blocked) `ethnicity`, `race`, `gender`, `co_borrower_ethnicity`, `co_borrower_race`, `co_borrower_gender`. Never write to HubSpot. ### `co_borrower_details` Not the same shape as borrower groups. Income is inline (`base_income`). `ssn` is blocked. `name`, `phone`, `email`, `ssn` (blocked), `dob`, `credit_consent_received`, `citizenship_status`, `marital_status`, `employer`, `employment_status`, `employment_start_date`, `base_income`, `commission`, `bonuses`, `overtime`, `social_security`, `pension`, `pension_2`, `disability`, `retirement`, `rental_income`, `is_veteran`, `had_bankruptcy`, `had_foreclosure`, `dependent_count`, `dependent_ages`, `outstanding_judgments`, `party_to_lawsuit`, `presently_delinquent_federal_debt`, `prior_deed_in_lieu`, `prior_short_sale`, `proposed_clean_energy_lien`, `undisclosed_borrowed_funds`, `undisclosed_comaker_of_note`, `undisclosed_credit_application`, `undisclosed_mortgage_application`, `special_borrower_seller_relationship`. ### `co_borrower_address` `street_address`, `address_line_2`, `unit_type`, `unit_identifier`, `city`, `state`, `zip_code`, `county`, `months_at_address`. No `residency_basis`. ### `co_borrower_employer_details` / `co_borrower_previous_employer_details` Same keys as `employer_details` / `previous_employer_details`. ### `existing_property_details` `disposition`, `street_address`, `city`, `state`, `zip_code`, `estimated_value`, `unpaid_mortgage_balance`, `monthly_rental_income`, `estimated_net_proceeds`. ### `owned_properties` / `additional_employers` Arrays of objects: `owned_properties.properties`, `additional_employers.employers`. Map the whole array to a HubSpot text property. Indexed first-record paths: `owned_properties.properties.0.disposition` and `additional_employers.employers.0.employer`. There is no `owned_properties.street_address`. Owned-property object keys: `disposition`, `street_address`, `unit_designator_type`, `unit_identifier`, `city`, `state`, `zip_code`, `property_current_usage_type`, `estimated_value`, `unpaid_mortgage_balance`, `monthly_mortgage_payment`, `monthly_hoa_expense`, `monthly_tax_insurance_expense`, `monthly_maintenance_expense`, `monthly_rental_income`, `monthly_net_rental_income`, `estimated_net_proceeds`. Additional-employer object keys: `borrower_role`, `status_type`, `employer`, `employment_status`, `position_description`, `employment_start_date`, `employment_end_date`, `monthly_income`, `address_line`, `city`, `state`, `zip_code`. ### `pipeline_state` (post-application calls) `uw_status`, `conditional_approval_date`, `clear_to_close_date`, `condition_count`, `conditions_outstanding` (array), `file_suspended`, `esign_status`, `missing_documents` (array), `doc_chase_urgency`, `appraisal_status`, `appraisal_value`, `appraisal_gap`, `repairs_required`, `reinspection_date`, `title_status`, `title_commitment_received`, `title_objections_resolved`, `title_company_name`, `homeowners_insurance_bound`, `flood_zone_required`, `flood_insurance_bound`, `insurance_premium_confirmed`, `signing_appointment_datetime`, `signing_method`, `closing_location`, `closing_coordinator_name`, `closing_coordinator_phone`, `notary_confirmed`, `borrower_id_requirement_met`, `wire_instructions_sent`, `wire_instructions_verified`, `wire_amount`, `wire_fraud_verification_call_completed`, `cashier_check_alternative`, `rate_lock_status`, `rate_lock_expiration_date`, `rate_lock_extension_needed`, `final_cash_to_close`, `final_apr`, `final_monthly_payment`, `cd_amended_or_original`. ### Optional groups (prompt variants) - `call_disposition.call_disposition` - `investor_details.rehab_budget`, `current_rental_income`, `expected_rental_income`, `expected_value` ### Org-specific datasets CliffCo Past Client Check-In is not part of the default HubSpot schema. That org’s custom prompt adds `past_client_check_in.call_purpose`, `in_market_intent`, `servicing_topic`, `next_step`, `handoff_to_loan_officer`. Those paths map the same way when that prompt is on the call. --- ## Settings | Setting | Values | Default | | --- | --- | --- | | Create Summary (`create_summary`) | Off, In Notes | In Notes | | Log Calls (`log_calls`) | Off, As Call engagements (`as_calls`) | Off | | Create Action Items (`create_action_items`) | Off, As Tasks | Off | --- ## Troubleshooting - **No write**: no HubSpot owner on the Aila user and none on the Contact. - **Deal fields empty**: no associated Deal, or more than one open Deal (see the skip on the call). - **Mapped field empty**: the call did not extract that path, the HubSpot property internal name does not match, the property is read-only, or an enum option did not match. - **Reconnect prompt**: grant the new Deal / Task / Call / schema scopes. - **Two Notes for one call**: Notes are not idempotent. Calls and Tasks are. --- ## Next Steps - [Call setup](https://docs.aila.fyi/settings/call-setup) — Map Aila paths to HubSpot properties - [Settings > Connections](https://docs.aila.fyi/settings/connections) — Connect or reconnect HubSpot --- ### Salesforce url: https://docs.aila.fyi/integrations/salesforce # Salesforce Aila writes call summaries, tasks, and mapped field values to Salesforce Leads, Contacts, and Opportunities. The writes are part of the [Intake Agent](https://docs.aila.fyi/agents/intake). --- ## What syncs | Aila writes | Where in Salesforce | | :--- | :--- | | Call summary | A ContentNote on the Lead or Contact. | | Follow-ups | Tasks, assigned to the Salesforce user whose email matches the Aila user. | | Call log | A completed Task with subtype Call on the activity timeline. | | Mapped fields | Lead, Contact, or Opportunity fields, plus an optional custom object. | --- ## What you need - A Salesforce user who can authorize an app with API access. - The same email on the Salesforce user and the Aila user, so tasks go to the right owner. --- ## Connect 1. In Aila, go to **Settings > Connections** and click **Connect**. 2. Select **Salesforce**. 3. Sign in to Salesforce and allow Aila API access. Aila requests the `api` and `refresh_token` scopes. --- ## Settings | Setting | Options | Default | What it does | | :--- | :--- | :--- | :--- | | **Create Summary** | Off, As ContentNote | As ContentNote | Posts the call summary as a ContentNote. | | **Create Tasks** | Off, As Tasks | Off | Creates a Task for each follow-up from the call. | | **Log Calls** | Off, As Completed Call Tasks | Off | Logs each synced call as a completed Call Task. | | **Default Object Type** | Contact, Lead | Contact | Whether Aila syncs calls to Contacts or Leads by default. | --- ## Field mapping Map extracted data to Salesforce fields in [Call setup](https://docs.aila.fyi/settings/call-setup). You can import your org's fields instead of typing them. --- ## How calls are matched Aila finds the Lead or Contact for the call, then follows your **Default Object Type**. Aila writes mapped fields to the matched Lead or Contact. If that Contact has several Opportunities, Aila picks the best match from the call. --- ## Troubleshooting - **Aila asks you to reconnect:** The Salesforce authorization expired or was revoked. Reconnect from **Settings > Connections**. - **Tasks have no owner:** Aila couldn't match the Aila user's email to a Salesforce user. --- ## Related - [Intake Agent](https://docs.aila.fyi/agents/intake) - [Call setup](https://docs.aila.fyi/settings/call-setup) - [Connections](https://docs.aila.fyi/settings/connections) --- ### Pipedrive url: https://docs.aila.fyi/integrations/pipedrive # Pipedrive Aila reads call activities from Pipedrive and logs the results on the person and deal. The writes are part of the [Intake Agent](https://docs.aila.fyi/agents/intake). --- ## What syncs | Direction | What | | :--- | :--- | | Pipedrive to Aila | Call activities with their attached recordings. | | Aila to Pipedrive | A call log on the person and deal, with the summary. The call recording, so it plays on the call log. The full transcript, if you turn it on. Person and deal custom fields. Deal stage moves. Follow-up tasks and meetings from your CRM Automation rules. | If the person has no open deal, Aila creates one for borrower-style call types, such as lead intake, pre-approval, application, and purchase or refinance. Partner, agent, lender, referral, and voicemail calls never create a deal. --- ## What you need - A Pipedrive personal API token. - A default pipeline and stage, so Aila can create deals. --- ## Connect 1. In Pipedrive, go to **Settings > Personal preferences > API** and copy your API token. 2. In Aila, go to **Settings > Connections** and click **Connect**. 3. Select **Pipedrive**. 4. Paste the token and click **Connect**. Aila sets up the Pipedrive webhook for you. If that fails, the connection shows a webhook URL to add in Pipedrive. --- ## Settings | Setting | Options | Default | What it does | | :--- | :--- | :--- | :--- | | **Call log** | On, Off | On | Creates a call log on the matched person and deal. | | **Transcript** | Off, In Call Log Note | Off | Adds the full transcript to the call log note. | | **Recording** | On, Off | On | Uploads the recording so it plays on the call log. | --- ## Field mapping In the connection's settings, use **Custom field mappings** to map extracted data to person or deal fields. Use **Deal stage rules** to move a deal to a stage when an extracted value matches your rule. --- ## How calls are matched Aila matches the call to a Pipedrive person by phone number. It writes to that person's most recently updated open deal. If a call log can't link to the source activity, Aila creates a new one. --- ## Troubleshooting - **The connection is rejected:** Copy the token again. It must belong to a real Pipedrive account. - **No deal is created:** The call type isn't a borrower-style call type, or no default pipeline and stage is set. --- ## Related - [Intake Agent](https://docs.aila.fyi/agents/intake) - [Call setup](https://docs.aila.fyi/settings/call-setup) - [Connections](https://docs.aila.fyi/settings/connections) --- ### monday.com url: https://docs.aila.fyi/integrations/monday # monday.com Aila matches callers to items on a monday.com board and posts the call summary as an item update. The writes are part of the [Intake Agent](https://docs.aila.fyi/agents/intake). --- ## What syncs Aila posts one update per call on the matched item, with the call summary and a link to the call in Aila. Aila doesn't change item columns or statuses. --- ## What you need - A monday.com board with your contacts as items. - A phone column on that board. --- ## Connect 1. In Aila, go to **Settings > Connections** and click **Connect**. 2. Select **monday.com**. 3. Authorize the Aila app in monday.com. Aila requests read access to boards and read and write access to updates. 4. In the connection's settings, choose the **Board** and the **Phone column**. --- ## Settings | Setting | Options | Default | What it does | | :--- | :--- | :--- | :--- | | **Board** | Your boards | None | The board that holds your contacts. | | **Phone column** | Phone columns on that board | None | The column Aila matches caller numbers against. | | **Transcript** | Off, Include transcript | Off | Adds the full transcript after the summary. | --- ## How calls are matched Aila matches the caller's phone number to the **Phone column** on the chosen board and posts to the matched item. Each call posts once, so reprocessing a call doesn't create a duplicate update. --- ## Troubleshooting - **Aila asks you to reconnect:** The monday.com authorization expired or was revoked. Reconnect from **Settings > Connections**. - **No update appears:** Check that the item's phone number is in the **Phone column** you chose. --- ## Related - [Intake Agent](https://docs.aila.fyi/agents/intake) - [Connections](https://docs.aila.fyi/settings/connections) --- ### Aila Model Context Protocol (MCP) url: https://docs.aila.fyi/integrations/aila-mcp # Aila Model Context Protocol (MCP) Connect Claude, ChatGPT, Codex, Cursor, and other MCP clients to Aila. The remote server uses **streamable HTTP** and **OAuth 2.1** (PKCE and Dynamic Client Registration). Remote URL (POST only): ```text https://app.aila.fyi/api/mcp ``` Do not open this URL in a browser as a page. A GET request returns HTTP 405. That response is expected. The server accepts streamable HTTP POST. There is no SSE route. `https://app.aila.fyi/api/mcp/sse` returns HTTP 404. > Do not open this URL in a browser as a page. A GET request returns HTTP 405. That response is expected. The server accepts streamable HTTP POST. There is no SSE route. --- ## Server capabilities The remote MCP server covers **calls** and **configuration**. If your organization has loan files turned on, it also covers **loan-file and LOA workflows**. Without loan files, those tools aren't offered. Call and contact tools: | Tool | What it does | | :--- | :--- | | `list_calls` | Lists recent calls. | | `search_calls` | Searches calls. | | `get_call_details` | Returns a call's summary and extracted data. | | `get_call_transcript` | Returns a call's transcript. | | `lookup_contact` | Finds a contact by phone or other details. | | `search_contacts` | Searches contacts. | | `get_team_performance` | Returns team call metrics. | The server also exposes account-configuration tools (datasets, scorecards, routing, task triggers) that propose changes and wait for your approval, and the loan-file tools when enabled. The connected client lists the live tools. Treat that list as the source of truth. Aila gives each connection the access its role allows. Owners, admins, and managers can approve configuration changes. Other members get call and loan-file access only. OAuth discovery (for store reviewers and client implementers): - Protected resource: `https://app.aila.fyi/.well-known/oauth-protected-resource` - Authorization server: `https://app.aila.fyi/.well-known/oauth-authorization-server` --- ## Installation and client setup ### Claude Desktop Add Aila as a **custom connector**. Use streamable HTTP. Then complete OAuth in the browser. Follow these steps: 1. Open Claude Desktop. Go to **Settings > Connectors**. 2. Click **Add custom connector**. 3. Set **Name** to `Aila`. 4. Set **URL** to `https://app.aila.fyi/api/mcp`. 5. Save the connector. Click **Connect**. 6. Sign in to Aila in the browser popup and approve access. Do not select SSE. Do not use `/api/mcp/sse`. . 4. Set **URL** to . 5. Save the connector. Click **Connect**. 6. Sign in to Aila in the browser popup and approve access. Do not select SSE. Do not use ### ChatGPT / Codex Add Aila as an HTTP MCP server. Complete OAuth when the client prompts you. **ChatGPT** 1. Open ChatGPT settings for connectors / MCP apps (name varies by ChatGPT surface). 2. Add a custom MCP server. 3. Set the server URL to `https://app.aila.fyi/api/mcp`. 4. Complete the OAuth sign-in for Aila. **Codex** Add a streamable HTTP server, then complete OAuth: ```bash codex mcp add aila --url https://app.aila.fyi/api/mcp codex mcp login aila ``` Do not use an SSE URL. ### Cursor Add Aila as an HTTP MCP server. Cursor then runs OAuth. 1. Open Cursor **Settings > MCP**. 2. Add a new MCP server (or edit `mcp.json`). 3. Use type **HTTP** / **streamable HTTP**, not SSE. 4. Set the URL to `https://app.aila.fyi/api/mcp`. 5. Complete the Aila OAuth sign-in. Example `mcp.json` entry: ```json { "mcpServers": { "aila": { "url": "https://app.aila.fyi/api/mcp" } } } ``` ### Claude Code Add the remote HTTP server, then complete OAuth: ```bash claude mcp add --transport http aila https://app.aila.fyi/api/mcp ``` Confirm the server is listed: ```bash claude mcp list ``` Do not pass `https://app.aila.fyi/api/mcp/sse`. ### Local stdio (`@withaila/mcp-server`) For local development, run the npm stdio package. This package is **`@withaila/mcp-server`**. It is not `@aila/mcp`. There is no `--org` flag. Set environment variables: - `AILA_API_KEY` (required). Create the key in **Settings > Connections**. - `AILA_BASE_URL` (optional). Default: `https://app.aila.fyi`. Run: ```bash npx -y @withaila/mcp-server ``` Example Cursor / Claude Desktop stdio config: ```json { "mcpServers": { "aila": { "command": "npx", "args": ["-y", "@withaila/mcp-server"], "env": { "AILA_API_KEY": "", "AILA_BASE_URL": "https://app.aila.fyi" } } } } ``` The local stdio server is a smaller call subset: `list_calls`, `get_call_transcript`, `search_calls`, `get_call_details`, `lookup_contact`, and `get_team_performance`. Use the remote HTTP server for loan-file / LOA workflows and governed configuration. --- ## Connect with an API key instead of OAuth Clients that can't run OAuth can send an Aila API key as a Bearer token to the same URL. This is the setup the in-app card on the **Agent** page shows. 1. Go to **Settings > Connections > API keys** and create a key. For loan-file tools, give it the **Read loan files** and **Write loan files** permissions. Copy it when it's shown. It appears only once. 2. Add the server in your client: ```bash claude mcp add --transport http aila https://app.aila.fyi/api/mcp --header "Authorization: Bearer YOUR_API_KEY" ``` ```json { "mcpServers": { "aila": { "url": "https://app.aila.fyi/api/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } } ``` OAuth access tokens last 30 days. After that, reconnect from your client. --- ## Recommended first prompt (remote) After the remote connector is authorized: ```text Use the Aila MCP. First follow the in-app connector guidance and any skill/setup tools the server exposes. Inspect current call and loan-file context, then propose configuration or workflow actions. Wait for my explicit approval before any write, send, or LOS action. ``` --- ## Related documentation - [Integrations Overview](https://docs.aila.fyi/integrations): Overview of supported connections. - [API Reference > Authentication](https://docs.aila.fyi/api-reference/authentication): API keys for the local stdio package. - [API Reference > Webhooks](https://docs.aila.fyi/api-reference/webhooks): Real-time event streaming. - [Call setup](https://docs.aila.fyi/settings/call-setup): Manage AI extraction fields in the web app. --- ### Settings url: https://docs.aila.fyi/settings # Settings Settings control how Aila connects to your tools, processes calls, scores them, and manages your team. Open **Settings** in the sidebar. The tabs below appear in this order. **Who can use it:** Owners, Admins, and Managers see every tab except Billing, which is for Owners and Admins. Members see **My settings** and their own task rules in **CRM automation**. | Tab | What it does | | :--- | :--- | | [Connections](https://docs.aila.fyi/settings/connections) | Connect your CRM, LOS, phone systems, and calendars. Also holds **Webhooks** and **API Keys**. | | [Business details](https://docs.aila.fyi/settings/business-details) | Describe your company so Aila's answers fit it. | | [Call setup](https://docs.aila.fyi/settings/call-setup) | **Types**, **Routing**, **Defaults**, and **Processing** for calls. | | [CRM automation](https://docs.aila.fyi/settings/crm-automation) | Rules for tags, stages, and tasks Aila applies after calls. | | [Call scoring](https://docs.aila.fyi/settings/call-scoring) | **Scorecards**, **Formula**, **Targets**, **Comments**, and **Coaching**. | | [Transcription](https://docs.aila.fyi/settings/transcription) | Keyterms for names and product words. | | Mortgage config and Loan agents | Appear for mortgage organizations. | | [Team and billing](https://docs.aila.fyi/settings/team-subscription) | Invite people, set roles, and manage the plan. | | [My settings](https://docs.aila.fyi/settings/personal) | Your account, connections, and preferences. | ## Related - [Intake Agent](https://docs.aila.fyi/agents/intake) - [Call Compliance Agent](https://docs.aila.fyi/agents/compliance) --- ### Connections settings url: https://docs.aila.fyi/settings/connections # Connections settings Connect the phones, dialers, calendars, CRMs, and loan systems your team already uses, and manage the keys and webhooks that go with them. What you connect here feeds the [Intake Agent](https://docs.aila.fyi/agents/intake) and the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance). Open **Settings > Connections**. This tab is for admins and owners. It has three sub-tabs: **Integrations**, **Webhooks**, and **API Keys**. --- ## Integrations **Integrations** is one list of everything connected. Each row shows the platform, who owns the connection, and its health. Use the filters at the top to narrow the list, and use a row's settings or disconnect actions to change it. Click **Connect MCP** to set up the [Aila MCP server](https://docs.aila.fyi/integrations/aila-mcp). Click **Connect** and search. The picker groups platforms like this: | Group | What's in it | | :--- | :--- | | **CRM with built-in calls** | GoHighLevel / LeadConnector, Bonzo, and Follow Up Boss. Follow Up Boss also needs the [Aila Chrome extension](https://docs.aila.fyi/integrations/follow-up-boss). | | **Phone calls** | Dialers and VOIPs, including Quo/OpenPhone, RingCentral, Dialpad, Zoom Phone, Wavv, Wave, Blink Voice, and Hey Pocket. See [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems). | | **Video recordings** | **My Calendar**, which connects Google Calendar or Microsoft Outlook so Aila's meeting bot joins Zoom, Google Meet, and Microsoft Teams calls. Also Roam. | | **Communication** | Gmail and Outlook. Aila writes borrower drafts to your mailbox. | | **Loan origination** | ARIVE and LendingPad, so the Intake Agent can build the 1003. | | **CRM** | HubSpot, Salesforce, Pipedrive, and monday.com. | | **AI** | ChatGPT/Codex, for Ask Aila. | Most platforms connect the same way: pick the platform, enter its credentials, click **Connect**, and, if Aila shows a **Webhook URL**, copy it, click **Done**, and paste it into the platform. Each platform's needs are in [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems) and its own page. ### Calendar bot settings Open a calendar's row and choose **Recording preferences**: | Setting | What it does | | :--- | :--- | | **Auto-record enabled** | Turns auto-recording on or off for this calendar. | | **Record when not host** | Record meetings where you aren't the host. | | **Record recurring meetings** | Include recurring meetings. | | **Record external meetings** | Record meetings with attendees outside your organization. | | **Record internal meetings** | Record meetings with only internal attendees. | | **Confirmed only** | Record only confirmed events, not tentative ones. | | **Add bot to calendar invite** | Google Calendar only. Adds the notetaker to the event. | --- ## Webhooks Register HTTPS endpoints to receive real-time event notifications such as `call.completed`, `task.created`, and `mismo.ready`. See [Outbound Webhooks](https://docs.aila.fyi/api-reference/webhooks). --- ## API Keys Create API keys for programmatic access, such as the [Batch Call Upload API](https://docs.aila.fyi/api-reference/batch-upload), which needs a key with the `calls:write` permission. --- ## Personal connections Some connections belong to one person, not the whole workspace. Each person sets these up in **My settings > Connections**: - **Calendar**: Google Calendar or Outlook, so the meeting bot joins your meetings. - **Email**: Gmail or Outlook, so borrower drafts land in your own mailbox. - **Phone recording**: Hey Pocket, so your cell phone calls are filed under your name. See [Hey Pocket](https://docs.aila.fyi/capture/pocket). --- ## Related - [Integrations overview](https://docs.aila.fyi/integrations) - [Capture calls](https://docs.aila.fyi/capture) - [Aila for Mac](https://docs.aila.fyi/desktop) --- ### Business details url: https://docs.aila.fyi/settings/business-details # Business details Business details tells Aila how your company talks and sells. It sharpens chat answers, coaching, call scoring, and call types. **Who can use it:** Owners, Admins, and Managers. 1. Go to **Settings > Business details**. 2. Fill in the guided fields about your company. Each field shows when it is **Filled in**. 3. Save your changes. Keep answers specific to how your team works. Aila reads them whenever it answers questions, scores calls, or suggests coaching. ## Related - [Call scoring](https://docs.aila.fyi/settings/call-scoring) - [Call setup](https://docs.aila.fyi/settings/call-setup) - [Ask Aila](https://docs.aila.fyi/agents/ask-aila) --- ### Call setup url: https://docs.aila.fyi/settings/call-setup # Call setup Call setup tells the [Intake Agent](https://docs.aila.fyi/agents/intake) what to pull from each call, how to sort calls into call types, and when to skip a call. **Who can use it:** Owners, Admins, and Managers. Open **Settings > Call setup**. It has four sections: **Types**, **Routing**, **Defaults**, and **Processing**. ## Types A call type is a kind of call you take, such as "Rate Lock Consultation". Each call type has the fields Aila extracts from those calls. 1. Go to **Settings > Call setup > Types**. 2. Click **Add a call type** to describe the call and let AI build the type, or open an existing type and click **Edit fields**. 3. For each field, set a name and what to extract. Field values are text, number, true/false, or a list. 4. To send a field to your CRM, map it to a CRM field. Destinations are Salesforce, HubSpot, and GoHighLevel. For GoHighLevel and Salesforce you can import your existing CRM fields. 5. Save. For HubSpot, map to `contact.{internalName}` or `deal.{internalName}` (for example `contact.firstname`). Create the HubSpot property first. See [HubSpot](https://docs.aila.fyi/integrations/hubspot). The types list shows each type's saved fields and CRM destination. Filter it by **All**, **Default**, **Routed**, or **Unused**. Extracted values appear on the call and on the contact's **Data sets** tab. ## Routing Routing rules decide which call type and scorecard each call gets. Aila reads the call and classifies it using your rule descriptions. 1. Go to **Settings > Call setup > Routing**. 2. Click to create a rule. The dialog is **Create routing rule**. 3. Fill in the rule: - **Routing Rule Name** and **Description**. Describe the call so the AI can classify it. - **Call Type**, built-in or custom. - **Scorecard Template (Optional)**. Calls routed by this rule are scored with this scorecard. - **Agent to start (Optional)**, if you use [custom agents](https://docs.aila.fyi/agents/custom-agents). - **Classification Criteria (Optional)** and **Examples (Optional)** to sharpen the match. - **Min duration** and **Max duration** in seconds. Leave both empty to match any length. - **Applies to**: pick users, or leave empty to apply to everyone. - **Priority**. Higher priority rules win when several could match. - **Use as default fallback if classification fails**. 4. Click **Create**. The rules table shows **Routing rule**, **Call type**, **Scorecard**, **Duration**, **Applies to**, and **Status**. Deleting a rule stops it matching calls right away. ## Defaults **Settings > Call setup > Defaults** applies to every call: - **Summary guidance**: instructions that shape the summary Aila writes. - **Disposition options**: the dispositions Aila can assign to a call, with guidance. ## Processing **Settings > Call setup > Processing** controls which calls get analyzed: - **Minimum call duration to process (seconds)**: 0 to 300. Shorter calls are tracked but not analyzed. Set 0 to process every call. - **Score spoken voicemails**: runs the Voicemail Compliance scorecard when an agent leaves a voicemail. Greeting-only voicemails stay skipped. - **Process all manual uploads**: ignores the minimum duration for uploaded files. Click **Save changes**, or **Reset to default**. ## Related - [Call scoring](https://docs.aila.fyi/settings/call-scoring) - [Intake Agent](https://docs.aila.fyi/agents/intake) - [Contacts](https://docs.aila.fyi/calls/contacts) --- ### CRM automation url: https://docs.aila.fyi/settings/crm-automation # CRM automation CRM automation sets what Aila changes in your CRM after each call, using rules written as sentences. **Who can use it:** Owners, Admins, and Managers set up all rules. Other members see only their own task rules. You need a connected GoHighLevel account first. See [Connections](https://docs.aila.fyi/settings/connections). Without it, the page asks you to connect GoHighLevel. ## Add a rule 1. Go to **Settings > CRM automation**. 2. Click **Add a rule**. 3. Choose the rule type: **Tag**, **Stage**, or **Task**. 4. Finish the sentence, for example which tag to add or which pipeline stage to move the contact to, and when the rule is true. 5. Save. A rule that is on runs on new calls. Edit a rule's sentence in place. It saves when you press Enter or click away. Delete a rule from its row. ## Related - [Connections](https://docs.aila.fyi/settings/connections) - [Call setup](https://docs.aila.fyi/settings/call-setup) - [Integrations](https://docs.aila.fyi/integrations) --- ### Call scoring url: https://docs.aila.fyi/settings/call-scoring # Call scoring Call scoring decides how the [Call Compliance Agent](https://docs.aila.fyi/agents/compliance) grades calls. You build scorecards, set how scores roll up, and configure coaching. **Who can use it:** Owners, Admins, and Managers. Open **Settings > Call scoring**. It has five sections: **Scorecards**, **Formula**, **Targets**, **Comments**, and **Coaching**. ## Scorecards A scorecard is a set of questions Aila answers from the call transcript. 1. Go to **Settings > Call scoring > Scorecards**. 2. Click **New scorecard**, or **Create with AI** to build one from sample call data. A mortgage starter scorecard is available with **Use starter scorecard**. 3. Enter a **Template name** and **Description**. Add **Evaluation context** to give Aila standards that apply to the whole scorecard. Keep **Active** on. 4. Open the scorecard and click **Add question**. Each question has: - **Question description**: a short name. - **Scorecard question**: what Aila checks, ideally with examples of passing phrasing. - **Evaluation Context (Optional)**: standards for this question only. - **Weight**: higher weight has more impact on the score. - **Can be N/A**, with guidance for when Aila should mark it not applicable. - **Scoring Type**: **Binary (Pass/Fail)**, or **Rated (1-N Scale)** with a rating scale of 3, 5, or 10 and a label for each score. Drag questions to reorder them. You can copy a question to another scorecard. Attach a scorecard to a call type in [Call setup > Routing](https://docs.aila.fyi/settings/call-setup#routing). Calls without a matching scorecard are not scored. ## Formula **Formula** sets how the overall call score is built. Set weights for **Scorecard**, **Talk/listen**, **Questions asked**, and **Duration**. The weights must total 100%. Set targets for talk/listen (%), questions asked, and duration (min). ## Targets **Targets** holds activity targets that are not part of the call score: **Client questions target**, **Daily connected calls target**, and **Daily total calls target**. ## Comments **Comments** sets the comment types managers use when giving feedback. The defaults are **Praise**, **Coaching**, **Question**, **Warning**, and **General**. Add or edit types with an ID and a label. ## Coaching **Coaching** turns on automated coaching questions. Aila checks calls against your coaching questions and sends suggestions to the **AI suggestions** tab in [Coaching](https://docs.aila.fyi/coaching/team-coaching). 1. Turn on **Automated coaching questions**. 2. Under **Coaching questions**, switch questions on or off, edit them in Ask Aila, or delete them. 3. Under **Settings**, tune: - **Min call score threshold (%)**: only calls scoring below this are flagged. 100 flags all calls. - **Min confidence to surface (0-1)**. - **Max suggestions per call**. - **Auto-dismiss (days)**. ## Related - [Call setup](https://docs.aila.fyi/settings/call-setup) - [Coaching](https://docs.aila.fyi/coaching) - [Performance](https://docs.aila.fyi/performance) --- ### Transcription url: https://docs.aila.fyi/settings/transcription # Transcription Add keywords so Aila spells your names, products, and industry terms correctly in transcripts. **Who can use it:** Owners, Admins, and Managers. ## Add keyterms 1. Go to **Settings > Transcription**. The **Keyword boosters** card shows your count out of 200. 2. Type a term in **Add a keyterm** and press Enter. 3. To add many at once, click **Import** and paste one term per line, or comma-separated. Duplicates and terms over 6 words are skipped. 4. Use **Search keyterms** to find a term. Click the remove icon on a term to delete it. 5. Click **Save**. ## Limits - 200 terms per organization. - 6 words per term. "Aila" is always boosted. Mortgage organizations also get a built-in list of mortgage terms. Those fill the remaining room under the 200-term cap, so your own terms always take priority. Aila transcribes with automatic language detection. ## Related - [Call setup](https://docs.aila.fyi/settings/call-setup) - [Calls](https://docs.aila.fyi/calls) --- ### Team and billing url: https://docs.aila.fyi/settings/team-subscription # Team and billing Manage organization seats, user permissions, and billing subscriptions in the **Team** and **Billing** tabs of Settings. **Access**: Team is for Owners, Admins, and Managers. Billing is for Owners and Admins. --- ## Roles | Role | Permissions | | :--- | :--- | | **Owner** | Everything a Manager has, plus ownership of billing. Only Owners can delete the organization. | | **Admin** | Full access to settings, users, and billing. Admin seats are free, and Aila does not process an Admin's calls. | | **Manager** | Everything a Member has, plus review of the team's calls, coaching dashboards, scorecards, and metrics. | | **Member** | Aila processes their calls. Access to personal calls, personal coaching, and mobile apps. | --- ## Inviting team members 1. Navigate to **Settings > Team**. 2. Click **Invite team members**. Use **Bulk invite** to add several people at once. 3. Enter the email address and select a role (**Member**, **Manager**, **Owner**, or **Admin**). 4. Click **Send invitation**, or **Copy invite link** to send it yourself. Invitations expire after 7 days. --- ## Billing Open **Settings > Billing**. - **Seat management**: Add or remove user licenses. - **Plans**: - **Basic**: $50/user/month, or $500/user/year. Intake Agent + Call Compliance Agent. Self-serve with a 7-day free trial. - **Enterprise**: $200/user/month, or $2,000/user/year. All agents plus custom agents. Set up with our team. - **Annual billing**: Annual plans include two months free compared to monthly. See [Plans](https://docs.aila.fyi/agents#plans-and-pricing). - **Invoices**: Review past billing invoices. --- ### My settings url: https://docs.aila.fyi/settings/personal # My settings My settings holds your own account, connections, and email preferences. Only you can see this page. **Who can use it:** Everyone. Open **Settings > My settings**. ## Account Edit your name, sign-in email, and password. Each has its own edit button. ## Connections Connect your own calendar, email, and Hey Pocket recorder. The card shows how many are still to connect. Organization-wide connections are in **Settings > Connections**. See [Connections](https://docs.aila.fyi/settings/connections). ## Preferences - **Dark mode**: applies to this browser only. - **CC email**: an address that gets a copy of Aila notifications. - **Product news**: occasional email about new features. Turn it off to unsubscribe. ## Related - [Connections](https://docs.aila.fyi/settings/connections) - [Capture calls](https://docs.aila.fyi/capture) --- ### Security & Data url: https://docs.aila.fyi/security # Security & Data Customer data is handled in private, encrypted, access-controlled workflows and used only to provide Aila's services. Aila does not use customer data to train public models. For the full overview, see [withaila.com/security](https://www.withaila.com/security) and the [Aila Trust Center](https://app.vanta.com/withaila.com/trust/fr2cvd2ozs1pw5wxvyqlki). --- ## SOC 2 Aila's **SOC 2 Type 2 audit is in progress** with [Sentry Assurance](https://www.sentryassurance.com/). Controls are monitored continuously with Vanta. See current posture in the [Trust Center](https://app.vanta.com/withaila.com/trust/fr2cvd2ozs1pw5wxvyqlki). SOC 2 is an independent audit standard from the AICPA. A Type 2 report tests whether controls actually worked over a period of months, not just at one point in time. --- ## How we protect your data | Area | What Aila does | | :--- | :--- | | **Private AI processing** | AI processing runs through business API providers, never consumer chat products. Our AI providers operate under zero data retention for loan data. | | **Data protection** | Customer data is encrypted in transit and at rest. Records are isolated by organization. | | **Access control** | Role-based permissions limit account access (see [Team and billing](https://docs.aila.fyi/settings/team-subscription)). Stored files are opened only through signed links that expire. | | **Deletion & retention** | Aila retains customer data to run the service and permanently deletes it on verified request, subject to legal and compliance retention. Custom retention rules are available on request. | ## What Aila does not do - Sell your data - Use your data to train general-purpose AI models - Let our AI providers keep your data - Share your records with other Aila customers A sub-processor list is available on request. --- ## Product-level controls - **Approvals:** Agent writes to your LOS and borrower emails wait for approval, and approved changes can be undone. See [Approvals and undo](https://docs.aila.fyi/agents#approvals-and-undo). - **Sensitive fields:** MISMO 3.4 exports contain the borrower's full Social Security number, because the LOS needs it. Send them only to people and systems that should see it. - **API keys:** Created only by Owners and Admins, with the permissions you choose, an optional expiration, and deletion at any time. See [Authentication](https://docs.aila.fyi/api-reference/authentication). --- ## Contact - Security questions: [support@aila.fyi](mailto:support@aila.fyi) - Privacy requests: [privacy@aila.fyi](mailto:privacy@aila.fyi) - [Privacy Policy](https://www.withaila.com/privacy) · [Terms of Service](https://www.withaila.com/tos) --- ### API Overview url: https://docs.aila.fyi/api-reference # API Overview The Aila REST API gives you programmatic access to calls, transcripts, contacts, compliance results, metrics, and MISMO 3.4 loan files. Use it with [outbound webhooks](https://docs.aila.fyi/api-reference/webhooks) to react to events as they happen. --- ## Full reference (OpenAPI) The complete, always-current endpoint reference is generated from the app: - **Interactive reference:** [app.aila.fyi/api-docs](https://app.aila.fyi/api-docs) - **OpenAPI spec (JSON):** [app.aila.fyi/api/openapi](https://app.aila.fyi/api/openapi) The tables below cover the most-used endpoints. --- ## Base URL and authentication ``` https://app.aila.fyi/api/v1 ``` Send an API key as a Bearer token: ```http Authorization: Bearer ak_<64 hex characters> ``` Each key carries explicit permissions. Grant each integration only the permissions listed for the endpoints it uses. See [Authentication](https://docs.aila.fyi/api-reference/authentication). Most list endpoints are scoped to your organization: `/organizations/{organizationId}/...`. Call `GET /auth/verify` or `GET /users/me` to confirm your key and look up your organization ID. --- ## Common endpoints ### Calls | Method & path | Description | Permission to grant | | :--- | :--- | :--- | | `GET /organizations/{organizationId}/calls` | List calls with filters and pagination. | `calls:read` | | `GET /calls/{callId}` | Call details, stats, and AI summary. | `calls:read` | | `GET /calls/{callId}/transcript` | Speaker-labeled transcript. | `calls:read` | | `PATCH /calls/{callId}` · `DELETE /calls/{callId}` | Update or delete a call. | `calls:write` | | `GET /organizations/{organizationId}/calls/{callId}/analysis` | AI analysis of the call. | `calls:read` | | `GET /organizations/{organizationId}/calls/{callId}/compliance` | Scorecard (Call Compliance Agent) results. | `calls:read` | | `POST /calls/upload/batch` | Upload 1–100 recordings by URL. See [Batch Call Upload](https://docs.aila.fyi/api-reference/batch-upload). | `calls:write` | | `GET /batches/{batchId}` | Batch upload status. | `calls:write` | ### Contacts and loan files | Method & path | Description | Permission to grant | | :--- | :--- | :--- | | `GET /organizations/{organizationId}/contacts` | List contacts. | `contacts:read` | | `POST /organizations/{organizationId}/contacts` | Create a contact. | `contacts:write` | | `GET /contacts/{contactId}` | Contact details (add `includeCalls` for their calls). | `contacts:read` | | `GET /organizations/{organizationId}/contacts/{contactId}/mortgage-application/export/fnma` | Export the borrower's loan file as MISMO 3.4 XML. | `loan-files:read` | ### Metrics, insights, and webhooks | Method & path | Description | Permission to grant | | :--- | :--- | :--- | | `GET /organizations/{organizationId}/metrics/summary` | Team call volume, duration, and speed-to-lead summary. | `metrics:read` | | `GET /organizations/{organizationId}/insights` | Questions and objections across calls. | `insights:read` | | `GET` · `POST /organizations/{organizationId}/webhooks` | List or create webhook endpoints. See [Webhooks](https://docs.aila.fyi/api-reference/webhooks). | Any key | Check the [OpenAPI spec](https://app.aila.fyi/api/openapi) for request parameters and response schemas. --- ## Responses and errors Successful responses use `{ "success": true, "data": ... }`. Every response includes an `x-request-id` header; include it when you contact support. | Status | `code` | Meaning | | :--- | :--- | :--- | | `400` | `VALIDATION_ERROR` | The request body or query failed validation. | | `401` | `UNAUTHORIZED` / `INVALID_API_KEY` | Missing, invalid, deleted, or expired key. | | `403` | `INSUFFICIENT_PERMISSIONS` / `FORBIDDEN` | The key lacks the scope, or the resource belongs to another organization. | | `404` | `NOT_FOUND` | The resource doesn't exist. | | `429` | `RATE_LIMITED` | Too many requests. Back off and retry. | | `500` | `INTERNAL_ERROR` | Something failed on our side. Retry, then contact support with the request ID. | --- ## Rate limits Each key can make about **500 requests per minute**. Over the limit, the API returns `429 RATE_LIMITED`. There are no rate-limit headers, so retry with exponential backoff. Need more? Email [support@aila.fyi](mailto:support@aila.fyi). --- ## Related - [Authentication](https://docs.aila.fyi/api-reference/authentication): Create keys and choose scopes. - [Batch Call Upload](https://docs.aila.fyi/api-reference/batch-upload): Send recordings from any system. - [Webhooks](https://docs.aila.fyi/api-reference/webhooks): Real-time events. - [Aila MCP server](https://docs.aila.fyi/integrations/aila-mcp): Use Aila from ChatGPT, Claude, and other AI clients. --- ### Authentication url: https://docs.aila.fyi/api-reference/authentication # Authentication Every Aila API request needs an organization API key, sent as a Bearer token. Each key has explicit permissions (scopes) that you choose when you create it. --- ## Create an API key Only organization **Owners** and **Admins** can create and manage keys. 1. In Aila, go to **Settings > Connections** and open **API Keys**. 2. Click **Create API key**. 3. Enter a name (for example, `Production Integration`). 4. Select at least one permission (see below). 5. Optionally set an expiration date. 6. Copy the key. Aila shows the full key only once. Keys look like `ak_` followed by 64 hex characters. --- ## Use the key ```bash curl https://app.aila.fyi/api/v1/auth/verify \ -H "Authorization: Bearer ak_your_key_here" ``` `GET /auth/verify` returns the key's ID and permissions, so it's a good first call. --- ## Permissions | Permission (UI) | Scope | Allows | | :--- | :--- | :--- | | Read Calls | `calls:read` | List calls, read details and transcripts. | | Write Calls | `calls:write` | Upload (batch), update, and delete calls. | | Read Contacts | `contacts:read` | List and read contacts. | | Write Contacts | `contacts:write` | Create and update contacts. | | Read Loan Files | `loan-files:read` | Read loan files and export MISMO 3.4. | | Write Loan Files | `loan-files:write` | Update loan files. | | Read Insights | `insights:read` | Read call insights. | | Read Metrics | `metrics:read` | Read team metrics. | | Read Organization | `organizations:read` | Read organization details. | Give each integration only the scopes it needs. --- ## Delete a key In **Settings > Connections > API Keys**, click **Delete** next to the key. Requests with that key start failing within about a minute. --- ## Errors | Status | `code` | Fix | | :--- | :--- | :--- | | `401` | `UNAUTHORIZED` / `INVALID_API_KEY` | Check the header format and that the key exists and hasn't expired. | | `403` | `INSUFFICIENT_PERMISSIONS` | Create a key with the required scope. | | `429` | `RATE_LIMITED` | Slow down. See [Rate limits](https://docs.aila.fyi/api-reference#rate-limits). | --- ### Batch Call Upload url: https://docs.aila.fyi/api-reference/batch-upload # Batch Call Upload Upload 1 to 100 call recordings to Aila in one asynchronous request. Use it to send calls from a system Aila doesn't connect to directly, or to backfill history. **Before you start:** - Your API key needs the `calls:write` scope. See [Authentication](https://docs.aila.fyi/api-reference/authentication). - Your organization needs the API upload connection enabled. If the request returns `404 Upload connection not found`, email [support@aila.fyi](mailto:support@aila.fyi). --- ## Endpoint Specification ```http POST https://app.aila.fyi/api/v1/calls/upload/batch Authorization: Bearer Content-Type: application/json ``` ### Request Body Schema | Field | Type | Required | Description | | :--- | :--- | :--- | :--- | | `calls` | Array | Yes | Array of 1 to 100 call objects. | | `calls[].audio_url` | String (URL) | Yes | URL Aila can download the audio from. Aila copies the file into its own storage. | | `calls[].recorded_at` | String (ISO 8601) | Yes | Timestamp when the call occurred. | | `calls[].agent_name` | String | Yes | Name of the team member on the call. | | `calls[].agent_email` | String (Email) | Yes | Email of the team member. If no Aila user has this email, Aila creates one as a **Member** and adds them to your organization. | | `calls[].contact_name` | String | No | Customer or lead name. | | `calls[].contact_phone` | String | No | Customer phone number in E.164 format. | | `calls[].duration` | Integer | No | Call length in seconds. | | `calls[].external_id` | String | No | ID from your dialer or telephony system. | | `calls[].tags` | `Array ` | No | Up to 10 metadata tags. | | `calls[].metadata` | Object | No | Key-value dictionary of custom metadata. | ### Example Request ```json { "calls": [ { "audio_url": "https://storage.example.com/recordings/call_001.mp3", "recorded_at": "2026-08-24T14:30:00Z", "agent_name": "Sarah Connor", "agent_email": "sarah@company.com", "contact_name": "John Smith", "contact_phone": "+15551234567", "external_id": "dialer_rec_987" } ] } ``` ### Response The API returns `202 Accepted`: ```json { "success": true, "data": { "batch_id": "ai_call_batch_...", "total_calls": 2, "status": "queued", "calls": [ { "call_id": "ai_call_...", "external_id": "dialer_rec_987", "status": "queued" }, { "call_id": null, "external_id": "dialer_rec_988", "status": "failed", "error": "..." } ], "status_url": "https://app.aila.fyi/api/v1/batches/ai_call_batch_..." } } ``` A batch can partly succeed. Check each call's `status`; failed calls have `call_id: null` and an `error`. --- ## Polling Batch Status Query batch progress using the status URL: ```http GET https://app.aila.fyi/api/v1/batches/{batch_id} Authorization: Bearer ``` ### Batch Status Response ```json { "success": true, "data": { "batch_id": "batch_abc123", "total_calls": 10, "processed": 8, "failed": 0, "in_progress": 2, "status": "processing", "progress_percentage": 80, "calls": [ { "call_id": "ai_call_...", "external_id": "dialer_rec_987", "status": "complete" } ], "created_at": "2026-09-30T14:30:00.000Z", "estimated_completion": "2026-09-30T14:40:00.000Z" } } ``` Batch `status` is `queued`, `processing`, `completed`, or `failed`. Each call's `status` is `queued`, `processing`, `complete`, or `failed`. Subscribe to the [`call.completed` webhook](https://docs.aila.fyi/api-reference/webhooks) instead of polling if you need to act on each call. --- ### Webhooks url: https://docs.aila.fyi/api-reference/webhooks # Webhooks Aila sends signed HTTPS `POST` requests to your endpoint when calls finish processing, data is extracted, tasks and appointments are created, or a MISMO 3.4 file is ready. --- ## Events | Category | Event | Sent when | | :--- | :--- | :--- | | **Calls** | `call.completed` | A call finishes processing. The payload is lightweight (IDs, time, duration, contact); fetch details with the [API](https://docs.aila.fyi/api-reference). | | **Calls** | `call.data.extracted` | Structured data from your [Call setup](https://docs.aila.fyi/settings/call-setup) is ready. | | **Tasks** | `task.created` | Aila creates a follow-up task from a call. | | **Tasks** | `task.synced` | A task syncs to your CRM. | | **Appointments** | `appointment.created` | Aila creates an appointment from a call. | | **Appointments** | `appointment.synced` | An appointment syncs to your CRM calendar. | | **Loan files** | `mismo.ready` | A MISMO 3.4 file is generated for a call or contact. | | **Testing** | `test.ping` | Only when you click **Send test event**. | `call.completed` and `call.data.extracted` are sent once per call. --- ## Add an endpoint ### In the app 1. Go to **Settings > Connections** and open **Outgoing webhooks**. 2. Click **New webhook**. 3. Enter a **Name** and the **URL**. The URL must be HTTPS and publicly reachable (no localhost or private IPs). 4. Select the events to send. 5. Save, then copy the **signing secret**. It's shown only once. 6. Click **Send test event** to check your endpoint. Each endpoint's **Recent deliveries** shows the event, status, number of attempts, and time. ### With the API ```bash curl -X POST https://app.aila.fyi/api/v1/organizations/{organizationId}/webhooks \ -H "Authorization: Bearer ak_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "name": "Internal CRM ingest", "url": "https://api.yourdomain.com/webhooks/aila", "eventTypes": ["call.completed", "call.data.extracted"] }' ``` The response includes the signing secret. The API also supports listing, updating, deleting, sending a test event, rotating the secret, and listing deliveries. See the [OpenAPI spec](https://app.aila.fyi/api/openapi). --- ## Payload ```json { "id": "evt_...", "type": "call.completed", "createdAt": "2026-09-30T14:30:00.000Z", "organizationId": "org_...", "data": { "callId": "...", "organizationId": "org_...", "recordedAt": "2026-09-30T14:02:11.000Z", "durationSeconds": 642, "contactId": "...", "contactName": "Dana Brooks", "contactPhone": "+19195550123" } } ``` ### Headers | Header | Value | | :--- | :--- | | `X-Aila-Event` | The event type, for example `call.completed`. | | `X-Aila-Delivery-Id` | Unique per delivery. Use it to ignore duplicates. | | `X-Aila-Webhook-Endpoint-Id` | The endpoint that received it. | | `X-Aila-Signature` | `t= ,v1= ` | --- ## Verify the signature The signature is an HMAC-SHA256 of ` . ` using your signing secret. Reject requests older than 5 minutes. ```javascript import crypto from 'crypto' function verifyAilaWebhook(rawBody, signatureHeader, secret, toleranceSeconds = 300) { const parts = Object.fromEntries(signatureHeader.split(',').map((kv) => kv.split('='))) const timestamp = Number(parts.t) if (!timestamp || !parts.v1) return false if (Math.abs(Date.now() - timestamp) / 1000 > toleranceSeconds) return false const expected = crypto .createHmac('sha256', secret) .update(`${timestamp}.${rawBody}`) .digest('hex') const a = Buffer.from(expected, 'hex') const b = Buffer.from(parts.v1, 'hex') return a.length === b.length && crypto.timingSafeEqual(a, b) } ``` Use the raw request body exactly as received, before parsing JSON. To rotate the secret, click **Rotate signing secret** on the endpoint. The old secret stops working immediately. --- ## Delivery and retries - **Success:** any `2xx` response within **15 seconds**. Redirects count as failures. - **Retries:** up to **5 attempts in total**, with exponential backoff starting at 30 seconds (up to 1 hour between attempts, 7 hours overall). - **Auto-disable:** an endpoint is disabled after **20 consecutive failed deliveries**. Fix the endpoint, then re-enable it in settings. --- ### Help videos API url: https://docs.aila.fyi/api-reference/help-videos # Help videos API The docs site (docs.aila.fyi) exposes public feeds for help videos and docs search, plus the docs Ask Aila assistant. This is separate from the [Aila product API](https://docs.aila.fyi/api-reference): it has its own base URL, and the feeds need no API key. Base URL: ``` https://docs.aila.fyi ``` --- ## GET /api/videos Return the public help-video catalog. The response does not include transcripts. The catalog is CORS-open. Cache it for one hour. ```bash curl https://docs.aila.fyi/api/videos ``` ### Response ```json { "videos": [ { "id": "connect-ghl", "title": "Connect GoHighLevel", "status": "published", "youtubeId": "xxxx", "durationSec": 98, "audience": ["Admin"], "docPages": ["/integrations/gohighlevel"], "faqPage": "crm-sync", "summary": "Connect LeadConnector and set summary options.", "keywords": ["GoHighLevel", "LeadConnector"], "chapters": [ { "id": "connect-ghl.1", "startSec": 0, "endSec": 38, "label": "Connect LeadConnector", "summary": "Open Settings, click LeadConnector, pick a sub-account.", "questions": ["How do I connect LeadConnector?"] } ] } ] } ``` Draft videos are omitted until a YouTube id is set. Use `startSec` as an integer. Build a watch URL like this: ``` https://youtu.be/YOUTUBE_ID?t=START_SEC ``` --- ## GET /api/docs/search Lexical search over the full docs corpus. No LLM call. CORS-open. Cache it for one hour. ```bash curl 'https://docs.aila.fyi/api/docs/search?q=gohighlevel+inbound' ``` Pass `all=1` for a full dump of section chunks. Each hit is `{ slug, title, section, snippet, url, policy? }`. A matching per-slug policy may include `doNotLinkFor`. --- ## GET /api/videos/:id/transcript Return timestamped transcript segments for one published video. ```bash curl https://docs.aila.fyi/api/videos/connect-ghl/transcript ``` --- ## POST /api/ask Ask a product question. The model answers from written docs and the video catalog. The server resolves timestamps. The model cannot invent a start time. ### Auth Send one of: - `Origin` header on the allow list (docs widget) - `Authorization: Bearer ASK_AILA_SERVICE_KEY` (MCP and eval) ### Body | Field | Type | Notes | | :--- | :--- | :--- | | `messages` | array | Required. Each item has `role` (`user` or `assistant`) and string `content`. Replay text only. Max 8 user turns. Max 1000 characters per message. | | `page` | string | Optional current docs path. This goes in the user message. | | `stream` | boolean | Default `true`. Set `false` for MCP and eval. | Do not send `tool_use` or `tool_result` blocks in history. ### JSON mode ```bash curl -X POST https://docs.aila.fyi/api/ask \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ASK_AILA_SERVICE_KEY" \ -d '{"stream":false,"messages":[{"role":"user","content":"How do I connect GoHighLevel?"}]}' ``` Response: ```json { "answer": "Open Settings → Connections. Click LeadConnector.", "citations": [ { "videoId": "connect-ghl", "chapterId": "connect-ghl.1", "title": "Connect GoHighLevel", "label": "Connect LeadConnector", "startSec": 0, "endSec": 38, "youtubeId": "xxxx", "url": "https://youtu.be/xxxx?t=0", "embedUrl": "https://www.youtube-nocookie.com/embed/xxxx?start=0&end=38&rel=0", "docPages": ["/integrations/gohighlevel"], "faqPage": "crm-sync", "summary": "Open Settings, click LeadConnector, pick a sub-account.", "reason": "Shows the Connect button and sub-account picker." } ], "usage": { "input_tokens": 0, "output_tokens": 0 } } ``` ### Stream mode `Content-Type: text/event-stream` Events: | Event | Data | | :--- | :--- | | `text` | JSON object with a `text` string | | `citations` | JSON object with a `citations` array | | `done` | JSON object with a `usage` object | | `error` | JSON object with an `error` string | ```bash curl -N -X POST https://docs.aila.fyi/api/ask \ -H "Content-Type: application/json" \ -H "Origin: https://docs.aila.fyi" \ -d '{"messages":[{"role":"user","content":"How do I connect GoHighLevel?"}]}' ``` ### Errors | Status | Reason | | :--- | :--- | | 403 | Missing Origin, or Origin is not on the allow list. | | 413 | A message is longer than 1000 characters. | | 429 | Rate limit. Read `Retry-After`. | | 400 | Bad body, too many turns, or tool blocks in history. | Limits: 20 requests / 10 minutes / IP, and 300 requests / hour globally. --- ### FAQ & Videos url: https://docs.aila.fyi/faq # FAQ & Videos Use this section to find a short answer and the matching how-to clip. Each page groups customer questions. A clip plays the exact seconds that show the steps. You can also click **Ask Aila** in the header. Ask Aila answers from these docs and points to the same clips. ## Topics - [Get started](https://docs.aila.fyi/faq/get-started) - [Record calls](https://docs.aila.fyi/faq/record-calls) - [Meetings and calendar](https://docs.aila.fyi/faq/meetings-and-calendar) - [Review a call](https://docs.aila.fyi/faq/review-a-call) - [Contacts](https://docs.aila.fyi/faq/contacts) - [CRM sync](https://docs.aila.fyi/faq/crm-sync) - [Phone systems](https://docs.aila.fyi/faq/phone-systems) - [Call setup and scorecards](https://docs.aila.fyi/faq/call-setup-and-scorecards) - [Coaching and performance](https://docs.aila.fyi/faq/coaching-and-performance) - [Loan files and MISMO](https://docs.aila.fyi/faq/loan-files-and-mismo) - [Ask Aila and MCP](https://docs.aila.fyi/faq/ask-aila-and-mcp) - [Team and billing](https://docs.aila.fyi/faq/team-and-billing) - [Fix common problems](https://docs.aila.fyi/faq/fix-common-problems) --- ### Get started url: https://docs.aila.fyi/faq/get-started # Get started Create your account. Open Calls. Choose how you capture audio. ## Where do I log in? Where are my calls? ## What do I connect first? ## I call from a cell, a dialer, or Zoom. What do I use? --- ### Record calls url: https://docs.aila.fyi/faq/record-calls # Record calls Choose a capture method: a dialer, the meeting bot, your iPhone or Android, Hey Pocket, or your Mac. See [Capture calls](https://docs.aila.fyi/capture). ## I lost my Hey Pocket. How do I add the new one? ## Where do I paste the Hey Pocket webhook? --- ### Meetings and calendar url: https://docs.aila.fyi/faq/meetings-and-calendar # Meetings and calendar Connect your Google Calendar or Microsoft Outlook calendar in **Settings > Connections > Integrations > Connect > My Calendar**, or in **My settings > Connections**. Aila's meeting bot then joins Meet, Zoom, and Teams. Choose which meetings it joins in **Recording preferences**. See [Zoom](https://docs.aila.fyi/integrations/zoom). ## How do I get a bot on Meet, Zoom, and Teams? gmeet-teams-zoom ## How do Meet links get a bot? gmeet-teams-zoom ## I do not want a bot on every meeting gmeet-teams-zoom --- ### Review a call url: https://docs.aila.fyi/faq/review-a-call # Review a call Open a processed call. Read the transcript and summary. Edit extracted fields. Export a 3.4. Save the call to Library. ## What does Aila generate after a call? call-detail-library call-detail-library.1 ## How do I search the transcript? call-detail-library call-detail-library.2 ## Where is the 1003 data from this call? call-detail-library call-detail-library.3 ## Was the borrower upset? call-detail-library call-detail-library.4 ## How do I save a good call? call-detail-library call-detail-library.5 --- ### Contacts url: https://docs.aila.fyi/faq/contacts # Contacts One contact holds every call with a borrower. ## I want one record per borrower, not one row per call --- ### CRM sync url: https://docs.aila.fyi/faq/crm-sync # CRM sync Connect LeadConnector (GoHighLevel) and your other CRMs. Choose what Aila writes after a call. Each CRM has its own page under [Integrations](https://docs.aila.fyi/integrations). ## How do I connect LeadConnector? ## I called in GHL. Why is it not in Aila? ## How do I send the full transcript to GHL? --- ### Phone systems url: https://docs.aila.fyi/faq/phone-systems # Phone systems Connect a dialer in **Settings > Connections > Integrations > Connect**. Some platforms need an API key, some need a webhook URL, and some need both. See [Phone & Dialers](https://docs.aila.fyi/integrations/phone-systems) for each one. Then make a test call. ## We call on Dialpad. How do calls land in Aila? supported-platforms ## How do I add Quo without a recording beep? supported-platforms ## Where do I paste the Aila URL for OpenPhone / Quo? supported-platforms --- ### Call setup and scorecards url: https://docs.aila.fyi/faq/call-setup-and-scorecards # Call setup and scorecards Set up [call types and routing](https://docs.aila.fyi/settings/call-setup), build [scorecards](https://docs.aila.fyi/settings/call-scoring), and add [transcription keyterms](https://docs.aila.fyi/settings/transcription). ## Names and product words come out wrong custom-transcription ## Do we already boost LO and borrower names? custom-transcription --- ### Coaching and performance url: https://docs.aila.fyi/faq/coaching-and-performance # Coaching and performance Leave timestamped comments. Track team scores. Open the leaderboard. ## How does a manager leave timestamped feedback? ## Can I see top 3 and bottom 3 LOs? --- ### Loan files and MISMO url: https://docs.aila.fyi/faq/loan-files-and-mismo # Loan files and MISMO Export a 3.4. Create a loan in ARIVE. Redact SSN in transcripts if you need that. ## After a phone app, how do I get a 3.4 into ARIVE? mortgage-config ## What is Create in ARIVE vs download XML? mortgage-config ## XML on the email after the call mortgage-config ## Hide SSN mortgage-config --- ### Ask Aila and MCP url: https://docs.aila.fyi/faq/ask-aila-and-mcp # Ask Aila and MCP Create API keys. Add outbound webhooks. Connect ChatGPT, Claude, and Cursor with OAuth or a Bearer API key. See [Aila MCP](https://docs.aila.fyi/integrations/aila-mcp). ## I do not see the + to add Aila in ChatGPT mcp-api-keys ## Where do I make an API key for Airtable or Zapier? mcp-api-keys ## Add custom connector URL mcp-api-keys ## Zapier / Make / custom URL mcp-api-keys ## Bearer API key mcp-api-keys --- ### Team and billing url: https://docs.aila.fyi/faq/team-and-billing # Team and billing Invite teammates. Pick a role. Rename the organization. ## Do I share a login or send an invite? ## Owner vs Admin vs Manager vs Member ## Visibility by role ## Change the org name --- ### Fix common problems url: https://docs.aila.fyi/faq/fix-common-problems # Fix common problems These clips show the switch to click. They are not root-cause analyses. ## Reconnect OAuth ## Match or create the contact ## Practice Mode is gone Practice Mode is retired. To coach your team, leave timestamped comments on real calls. See [Coaching](https://docs.aila.fyi/coaching). --- ### Changelog url: https://docs.aila.fyi/changelog title: 'Changelog', description: 'Release history and feature updates for Aila.', } # Changelog Share Aila, earn credit. Teams with 1–5 seats can invite another team from Settings → Billing. The new customer gets $50 off their first paid invoice; you get $50 in Stripe credit after they pay. } improvements={[ 'Give a Month, Get a Month: Share a referral link from Settings → Billing. Referred teams get $50 off their first paid invoice; referrers receive $50 in Stripe credit after that invoice clears. Available for organizations with 1–5 seats.', 'OpenPhone / Quo v4 Webhooks: Aila now accepts Quo\'s v4 call.recording.completed webhooks (recordings[] + participants) alongside the existing v3 format, so recordings land even when your OpenPhone account emits the newer payload.', 'WAVV Public API v3: Connect WAVV with wavv_… API keys validated against the v3 API. Native webhooks support call.ended and call.recorded with optional signature verification. Calls without a dialer user ID are attributed to the GoHighLevel contact assignee when available.', 'Blink Voice Dialer: New dialer integration in Settings → Connections — connect with your Blink API key and webhook URL for automatic call ingest.', 'Hey Pocket Delayed Audio: Aila waits for late-arriving Hey Pocket recordings instead of failing the call when audio is not ready immediately.', 'Rescheduled Recall Bots: Calendar bots that get rescheduled in Recall now update correctly when a new bot replaces a finished one with the same scheduled ID.', 'Calls List Page Sizes: Choose 10, 25, or 100 calls per page on the Calls list.', 'Retired Per-Minute Credit Billing: Subscription and marketplace billing are now the supported paths. The per-minute credit billing UI and purchase flows have been removed.', 'Practice Mode Retired: AI Practice Mode has been disabled. Practice pages, API routes, and LiveKit agent paths are no longer active.', ]} /> Record any Mac call. Aila Desktop sits in your menu bar, captures two-way audio from FaceTime, Zoom, Teams, and phone apps, and sends it through the same Aila pipeline as web and mobile captures. } improvements={[ 'Aila Desktop for Mac: Menu-bar recorder with automatic updates. Pair once with your Aila account, grant microphone and system-audio access, and recordings upload for transcription and analysis.', 'Dual-Channel Desktop Capture: Native two-channel audio capture on desktop for clearer speaker separation in transcripts.', 'ViciDial Integration: Webhook-based dialer ingest for ViciDial call centers with improved recording download reliability.', 'WAVV Native Webhooks: Direct WAVV webhook ingest with API-based recording download, replacing Zapier-only setups for many teams.', 'Voicemail Compliance Scoring: Organizations can score spoken voicemails against compliance checklists, not just live conversations.', 'Non-Analyzable Recordings: Calls that cannot be analyzed (missing audio, too short, etc.) now appear on the dashboard with a clear gray status instead of looking like failures.', 'Automatic CRM Sync Control: Organization setting to enable or disable automatic CRM sync after call processing.', 'Reset Failed Call Processing: Reprocess calls that failed during transcription or analysis directly from the call page.', 'Home & Today Performance: Faster load times on the Home and Today pages for large organizations.', ]} /> Ask Aila in your pocket. The iOS app now supports streaming, multi-turn Ask Aila conversations scoped to a contact — with in-app call audio playback. } improvements={[ 'Mobile Ask Aila: Streaming responses and multi-turn chat history on iOS, scoped to individual contacts.', 'In-App Call Playback: Stream call audio inside the iOS app without leaving Aila.', 'iOS App Store Compliance: Self-serve signup and account deletion flows for App Store review requirements.', 'All Members Mobile Access: Every organization member can use the mobile app, not just admins.', 'Pipedrive CRM: Inbound call integration with deal-aware sync, manual sync, and field normalization.', 'monday.com CRM: OAuth destination that matches existing items by phone column and posts call updates.', 'Follow Up Boss Destination: Route dialer and phone-system calls to Follow Up Boss as a CRM destination.', 'Salesforce Call Activity Logging: Automatic call activity logging to Salesforce Leads and Contacts.', 'Annual Billing: $500/seat/year (two months free vs monthly). Shared billing accounts let related organizations share a single Stripe subscription.', 'Mortgage Keyterms: Built-in mortgage industry keyterms (LO and borrower names) boost AssemblyAI transcription accuracy for lending teams.', 'Ask Aila Chat UX: Single-pass streaming, activity disclosure, and cleaner chat chrome on the web workbench.', 'Custom Summary to CRM: Custom Summary Instructions recaps post to connected CRMs without the default summary shell.', 'Dual-Channel Transcription for Desktop: Backend support for dual-channel desktop recordings with improved speaker attribution.', ]} /> Connect your dialer. Aila now ingests calls from a growing list of phone systems and dialers through webhooks, with unified CRM routing so the right contact record gets updated every time. } improvements={[ 'Hey Pocket Integration: Webhook and API-key dialer ingest for Hey Pocket recordings.', 'Kixie, Intermedia, Roam & Call Tools: New dialer and phone-system integrations via webhooks.', 'Outbound Webhooks: Register HTTP endpoints in Settings to receive call.completed, call.data.extracted, task.created, task.synced, and mismo.ready events — with HMAC signature verification and delivery logs.', 'Auto-Create Appointments: Configure triggers to automatically create appointments in GoHighLevel or Bonzo from call transcripts.', 'Call Types Library Redesign: Redesigned Call Types settings with improved navigation and management.', 'Call Type Filter on Calls List: Filter the Calls list by call type.', 'Self-Serve Onboarding: Setup Guide with trial rewards for faster time-to-first-call.', 'Dialpad CRM Routing: Unified CRM destination resolution for Dialpad webhooks with contact metadata sync.', 'OpenPhone Contact Matching: Persist OpenPhone contact phone and name on calls; match CRM contacts by phone number.', 'Chrome Extension Improvements: Set-and-forget popup, renamed to Aila Extension, clickable brand logo opens the app.', ]} /> Capture calls from your pocket. Record a call on iOS 18, tap the Notes pop-up, share to Aila — or pair a Plaud recorder once and let recordings flow in automatically the moment you stop recording. } improvements={[ 'iPhone call recording pipeline: share a native iOS 18 call recording (or any audio file) to the Save to Aila share extension; Open Aila jumps straight to the transcript.', 'Plaud hardware: one-time Bluetooth pairing with automatic reconnect on launch, battery and storage readouts, per-file or sync-all transfers, and auto-sync when a recording ends while connected.', 'Safe device storage: recordings are deleted from the Plaud only after Aila confirms the upload; touch and hold to delete an unsynced recording; failed uploads stay on the device with a retry.', 'Calls on the go: searchable call list with live processing status, call detail with summary, extracted data, transcript, Ask Aila, and in-app audio playback.', 'MISMO on mobile: review extracted call data and export FNMA files, with email-to-yourself as the fast path into your LOS.', 'Built-in screenshot walkthroughs: capturing a call, pinning Aila in the share sheet, connecting Plaud hardware, and switching a device over from the Plaud app.', ]} /> Beyond two speakers. Group calls, team meetings, and multi-party conversations are now fully supported with accurate speaker attribution across all participants. } improvements={[ 'Multi-Participant Meetings: Full support for 3+ speakers with structured participant tracking across all call processing workflows.', 'Calendar-Based Scorecard Routing: Automatically select the right scorecard template based on Google Calendar event title patterns.', ]} fixes={[ 'Fixed Temporal nondeterminism errors affecting 7 stuck workflows.', 'Fixed replay safety for calendar event title lookups in existing workflows.', ]} /> Partly retired. Practice progress was removed with Practice Mode in August 2026. The leaderboard and coaching insights are still available. } summary="Redesigned agent leaderboard with profile views and richer coaching insights on the member dashboard." highlights={ See your team clearly. Agent profiles now show performance trends, coaching history, and practice progress all in one place. } improvements={[ 'Agent Profile Leaderboard: Enhanced leaderboard with individual agent profile views, improved sorting, and richer performance metrics.', 'Member Dashboard Coaching Insights: Redesigned member detail pages with coaching history, question tracking, and performance trends.', 'Accurate Dial Tracking: Unanswered and short calls now count toward dial metrics via GHL webhook receipt reconciliation.', 'Keyword Transcription Booster: Improved transcription accuracy for industry-specific terminology.', ]} /> Coaching on autopilot. Aila now generates targeted coaching questions from every call and lets you customize exactly what your AI summaries focus on. } improvements={[ 'Automated QA Coaching: AI-generated coaching questions based on call content with manager review and approval workflow.', 'Custom Summary Instructions: Add org-specific instructions to control what the AI summary focuses on via Settings > Custom Datasets.', 'Editable Summaries: Edit AI-generated call summaries directly after they are created.', 'Temporal Failure Reasons: Workflow failure details are now surfaced in the UI for easier debugging.', ]} /> Retired August 2026. Practice Mode was disabled in v0.29.2. Pages, API routes, and the LiveKit agent have been removed. Use scorecards and coaching comments instead. } highlights={ Practice makes perfect. Run realistic AI practice calls with real-time voice powered by OpenAI Realtime, score against your checklists, and track pass/fail across the team. } improvements={[ 'Real-Time Voice Practice: AI-powered practice sessions with low-latency voice using OpenAI Realtime and per-persona voice selection.', 'Scenario Import: Create practice scenarios directly from real calls in your library, with section focus to target specific parts of a call.', 'Checklist-Based Scoring: Practice sessions are scored against your existing scorecards with pass/fail thresholds.', 'Manager Assignments: Assign practice sessions to team members and track completion and scores.', 'Role-Based Views: Separate manager and agent views for practice with team-wide progress tracking.', ]} /> Your AI analyst. Ask questions across all your calls with transcript search, contact analytics, and deal charting tools built right into the workbench. } improvements={[ 'Workbench Tools: Transcript search across calls, contact analytics, and deal charting tools for data-driven insights.', 'Chat Artifacts Panel: View and interact with structured outputs like charts and tables generated by the workbench.', 'Background Chat Streams: Run multiple concurrent chat conversations in the background with streamed reasoning.', 'Thinking Block Collapse: AI reasoning blocks are collapsed by default for a cleaner chat experience.', 'Leave Confirmation: Modal prompt when navigating away from an active chat stream.', ]} /> Your pipeline, your way. Aila now syncs your GoHighLevel pipeline stages directly and shows call disposition flow through a visual funnel. } improvements={[ 'GHL Pipeline Stage Sync: Automatically import and display your GoHighLevel pipeline stages instead of generic open/lost/won statuses.', 'Disposition Funnel: Visual funnel showing how calls flow through disposition categories with short call extraction.', 'GHL Opportunity Stage Backfill: Retroactively sync pipeline stages for existing opportunities.', ]} fixes={[ 'Fixed GHL custom fields not loading when cache was empty.', 'Improved connect dialog UX with better OAuth error messages.', ]} /> A cleaner scorecard experience. The scorecard tab has been completely redesigned with a Linear-inspired interface for faster review and better readability. } improvements={[ 'Scorecard Redesign: Completely rebuilt scorecard tab with Linear-style UX for cleaner navigation and faster review.', 'Native Desktop Capture: Backend support for native audio capture from desktop apps without requiring a browser extension.', 'Desktop Auth Flow: Seamless authentication handoff between the web app and desktop recorder.', 'Bot Image Support: Calendar-scheduled bots now display a profile image in the meeting.', 'Password Visibility Toggle: Eye icon on password fields for easier credential entry.', ]} fixes={[ 'Fixed native capture sessions stuck in uploading state.', 'Fixed setup completion navigation flow.', 'Fixed no-audio calls retrying transcription indefinitely instead of completing immediately.', 'Fixed CRM destination sync errors causing stuck workflows.', 'Reduced monitor alert noise with flap suppression.', ]} /> Contact Scorecards & Funnel Charts March 31, 2026 See cumulative scorecard performance at the contact level and visualize call flow through funnel charts in analytics. Contact-Level Scorecards: Cumulative scorecard view on contact detail pages showing performance trends across all calls with a contact. Funnel Charts: New funnel chart type in analytics with multi-stage counting for visualizing call disposition flow. Onboarding Exit Path: Users can skip onboarding setup and return to it later, with setup conversations preserved in the workbench. 10x faster for large teams. Calls page load times dropped from 10+ seconds to under 1 second for organizations with 20,000+ calls. } improvements={[ 'Call Dispositions: Org-level disposition configuration with automatic AI classification and paginated backfill workflow.', 'Contact Detail Redesign: Cleaner contact pages with disposition history and cumulative insights.', 'Configurable Recall API Region: Choose your preferred region for meeting bot infrastructure.', 'One-Click Coaching Acknowledge: Reps can acknowledge coaching feedback directly from the email notification.', ]} fixes={[ 'Fixed calls page 10s+ load times for large orgs by eliminating unnecessary joins and optimizing queries.', 'Fixed pagination and sorting on the calls list.', 'Fixed Google Meet bot calendar invite warnings with a toggle control.', ]} /> Ask questions, get charts. The AI workbench now generates analytics charts, extraction previews, and search results directly from your call data. } improvements={[ 'AI Analytics Charts: Generate charts and extraction previews from call data directly in the workbench.', 'CRM-Aware Field Types: Custom dataset fields now support CRM-specific types with an allowed values editor and AI assistant panel.', 'MCP Analytics Tools: Analytics tools added to the MCP server with role-based scoping per user.', 'Setup Skip & Exemption: New users can skip onboarding setup, and existing users are exempt from the setup flow.', ]} fixes={[ 'Fixed Zoom recording permissions not applied to scheduled bots.', 'Fixed STL overnight leads counting raw hours instead of business hours.', 'Fixed GHL OAuth code reuse errors and disabled guided tour.', 'Fixed soft-delete of invitations when removing org members.', 'Fixed Bonzo API scope instructions and Temporal Date serialization.', ]} /> Measure what matters. Monitor lead response times with detailed metrics showing how fast your team contacts new prospects—a critical factor in conversion rates. } improvements={[ 'Speed-to-Lead Dashboard: Comprehensive metrics tracking time from lead creation to first contact.', 'Event enrichment for accurate response time calculations.', 'Visual analytics showing team performance and trends.', 'Short call processing and display improvements.', ]} /> Stay organized. Create custom folders to organize your call library, and let AI automatically extract and create tasks from your calls. } improvements={[ 'Library Folder Organization: Create custom folders to organize starred calls with filtering, tab navigation, and easy call management.', 'Move calls between folders with drag-and-drop interface.', 'Folder filtering for quick access to specific call collections.', 'Automatic Task Creation: Configure triggers to automatically create tasks in GoHighLevel when calls complete.', 'AI extraction of task details from call transcripts.', 'Task automation settings in account preferences.', ]} fixes={[ 'Fixed calendar dropdown clipping in date range selector.', ]} /> Salesforce is here. Full-featured Salesforce support with Lead & Contact management, custom field mapping, and seamless bidirectional sync. } improvements={[ 'Salesforce OAuth Authentication: Secure connection setup with automatic token refresh.', 'Lead & Contact Support: Full support for Salesforce Lead, Contact, and Opportunity objects.', 'Custom Field Mapping: Import and map Salesforce fields to custom datasets with AI-generated extraction prompts.', 'Automatic Sync: Call data, transcripts, and insights sync to Salesforce automatically.', 'Manual Sync with ID Support: Manually sync calls using Salesforce Lead, Contact, or Opportunity IDs.', 'Task Creation: Automatically create tasks in Salesforce for call follow-ups.', 'Dataset Creation from Salesforce Fields: AI-powered dataset generation using your Salesforce custom fields.', 'Custom Field Updates: Update custom fields on Leads, Contacts, and Opportunities.', ]} fixes={[ 'Improved Salesforce OAuth error handling with better token refresh logic.', 'Enhanced error parsing for multiple Salesforce API response formats.', 'Added fallback dataset generation when AI parsing fails.', ]} /> Call Management Enhancements February 3, 2026 Improved call management with editable caller names, enhanced filter handling, and better scorecard template organization. Editable Caller Names: Edit caller names directly from call headers with drag-and-drop support. Enhanced filter state management with proper reset handling. Improved scorecard template UI with better sorting and management. Call reassignment API and UI for reassigning calls to different users. Fixed call filters getting stuck after resets. Fixed call pagination and filter persistence when navigating between calls. Fixed scorecard success rate calculation for binary questions. Fixed calls being hidden when email delivery fails during post-processing. 70% confident.', 'Non-blocking workflow that doesn\'t prevent call processing if identification fails.', ]} /> Ask Aila about contacts. Get instant AI insights across a contact's entire conversation history with streaming responses and persistent chat history. } improvements={[ 'Ask Aila Contact Feature: AI-powered Q&A interface analyzing all calls for a specific contact with streaming responses and conversation history.', 'Added OpenPhone integration.', 'Personal Calendar Connections: Team members can now connect their own calendars for meeting bot access.', 'Contact Information Display: Enhanced Call Scoring page to show contact details for better context.', 'OpenPhone Webhook Enhancement: Added phone number and OpenPhone-specific IDs to webhook events for improved tracking.', 'Standardized purple gradient styling for Ask Aila button across all pages.', 'Added detailed console logging to track and debug AI prompts sent to the gateway.', ]} fixes={[ 'Fixed contact information display on Call Scoring page.', ]} /> Coaching System Enhancements December 8-14, 2025 Centralized coaching query architecture with improved state management and enhanced review experience. Centralized React Query keys and mutations for coaching features. Added tooltips to resolve action buttons for better UX. Enhanced agent response filtering to include acknowledged items. Improved coaching review panel with optimistic UI updates. Built for the GHL marketplace. Seamless installation flow with automatic billing and user management for GoHighLevel marketplace apps. } improvements={[ 'External OAuth flow for marketplace installs with embed/revoke endpoints.', 'Wallet-based billing with trial handling and automatic charge blocking.', 'Monthly reconciliation workflow with Slack summaries and audit logging.', 'Short-lived JWT tokens for secure embedded portal access.', 'Typed pipeline/opportunity models with failure surfacing.', 'Enhanced Recall calendar bot handling with fallback connection logic.', ]} /> Multi-platform recording. Join and record meetings across Google Meet, Zoom, and Microsoft Teams from a single interface. } improvements={[ 'Unified browser extension endpoint supporting all three platforms.', 'Calendar meeting lookup for Teams integration.', 'Comprehensive webhook logging for debugging bot failures.', ]} fixes={[ 'Fixed integration ID bug that mislabeled all recordings as Zoom.', ]} /> Partly retired. 5-star ratings and action items are no longer part of coaching. Coaching now uses scorecards and typed comments. See Coaching . } summary="Launched complete call scoring and coaching and agent development platform with structured scorecards, inline commenting, action items, and coaching workflows." highlights={ Quality assurance redefined. Full-featured coaching system with 5-star ratings, timestamped comments, action items, and acknowledgment workflows. } improvements={[ 'Structured scorecard reviews with 5-star ratings and typed comments (praise, coaching, question, warning).', 'Inline transcript commenting with precise timestamps.', 'Action items with due dates and tracking.', 'Manager Coaching Inbox showing all agents needing attention.', 'Agent My Coaching Dashboard with score trends.', 'Feedback request system with email notifications.', 'Review acknowledgment workflow.', ]} /> Smart field mapping. Automatically create opportunities when needed and protect existing data with skip-if-exists rules. } improvements={[ 'Map AI-extracted call data to custom fields in GoHighLevel CRM for both contacts and opportunities.', 'Auto-create opportunities when contacts don\'t have one.', 'Skip-if-exists behavior preserves original values in CRM fields (e.g., first contact date).', 'Added opportunities.write OAuth scope for full CRM integration.', 'Inbound calls automatically route to organization owner.', 'Token refresh tooling with manual and automatic verification.', ]} fixes={[ 'Fixed contact names not appearing on calls (required both first AND last name).', 'Fixed metadata overwrite where opportunity data was clearing contact info.', 'Fixed opportunity retrieval API using wrong parameter format (snake_case vs camelCase).', 'Fixed opportunity field mapping filtering out valid falsy values.', 'Fixed createdAt type error when selecting organization owner for inbound calls.', 'Fixed Temporal workflow Date serialization for field mapping.', ]} /> Transcribe in any language. AssemblyAI automatically detects and transcribes calls in 100+ languages. } improvements={[ 'Automatic language detection for all transcription requests.', 'Support for Spanish and other non-English language calls.', 'Detected language codes logged for monitoring and analytics.', ]} /> GoHighLevel User Management November 17, 2025 View and invite GoHighLevel users directly from organization settings. Collapsible user list shows non-invited users with one-click invitations or shareable invite links. GoHighLevel Users accordion in organization settings. One-click invite or copy shareable link for GHL users. Manual invite link copy available when email send fails. Reuses pending invites instead of creating duplicates. Shows current membership and pending invite status for each user. AI-powered prompt design. Get intelligent suggestions for your custom prompts while maintaining full control over the final structure. } improvements={[ 'AI-aware editing that merges suggestions into your existing structure.', 'Sidebar navigation with accordion sections for quick field access.', 'Base fields CRM mapping with per-field visibility controls.', 'Track which fields were updated by AI with visual indicators.', 'Larger dialog layout for better editing experience.', 'Improved database connection handling with timeout mitigations.', ]} /> Lightning fast. Database queries reduced from 310M to under 10K per day, and Call Scoring dashboard loads 55% faster. } improvements={[ 'N+1 Query Fix: Eliminated N+1 patterns in insight generation. Processing 100 calls improved from 4s to 40ms (100x speedup).', 'Call Scoring Dashboard: Reduced page load from 884ms to 350-400ms (55-60% faster).', 'Admin Impersonation: Optimized queries from 10+ seconds to milliseconds.', 'Global Admin Model Configuration: Comprehensive panel for per-organization AI model settings.', 'Bulk Organization Settings: Select and update multiple orgs at once.', 'Mixpanel Analytics: Comprehensive tracking for user lifecycle, errors, revenue, and product usage.', ]} fixes={[ 'Fixed database connection timeouts and PostgresError in listTags query.', 'Fixed Stripe schema mismatch causing new user signup errors.', 'Fixed listTags query performance with optimized SQL.', 'Fixed JSON parse error handling for empty AI responses.', 'Fixed contact timestamp normalization.', 'Fixed empty yarn file breaking Docker deployments.', ]} /> 5min.', 'Contact metadata syncs even for short calls, voicemails, or empty calls.', 'Improved action items UX with AI-powered suggestions.', 'Compact call table status display with split Processing Status and Review columns.', 'DeepSeek v3.1 as default model for all new account creation.', 'Claude models enabled for insights generation.', 'Added reasoning model detection for o-series models.', 'Model logging to call data generation for better tracking.', ]} /> Import at scale. Upload up to 100 calls at once with automatic user/contact creation and real-time progress monitoring. } improvements={[ 'Batch upload API supporting 1-100 calls per request.', 'Intelligent S3 file handling that auto-detects bucket location.', 'Automatic user and contact creation during import.', 'Batch status tracking with individual call error handling.', 'Real-time progress monitoring via status endpoint.', 'Partial batch success support.', ]} /> Smart routing. Calls automatically classified and evaluated against the right checklist template using AI-powered routing rules. } improvements={[ 'AI-assisted routing criteria generation.', 'Bulk rule creation capabilities.', 'Custom prompt selection per routing rule.', 'Automatic checklist template selection based on call classification.', 'Organization-level prompt forking for customization.', 'Visual management interface showing active prompts.', ]} fixes={[ 'Fixed checklist template selection to use routing rules instead of always using org default.', ]} /> FNMA Loan Export and Call Quality Enhancements October 16-18, 2025 Implemented comprehensive FNMA (Fannie Mae) loan data export functionality and enhanced call quality dashboard features. FNMA loan data export with detailed calculations (monthly payments, MI premiums, closing costs). Property details export (county, year built). Split liquid assets (checking/savings) with enhanced liability structure. Timestamp seeking functionality using word-level timestamps. Advocate terminology option for healthcare and senior living organizations. Optimized payload sizes with word timestamps interface. 90% cost reduction. Monthly Fly.io costs reduced from ~$83 to ~$8.47 through infrastructure optimization. } improvements={[ 'Deleted unused 128GB volumes and shrunk active volume to 20GB.', 'Optimized Temporal worker from 2×2GB machines to 1×1GB.', 'Fixed Vercel AI Gateway authentication on Fly.io deployments.', 'Adaptive video processing timeout based on file size.', 'Parallel video processing reducing worker blocking from 35+ to 8-10 minutes.', 'Created snapshots for rollback safety.', ]} fixes={[ 'Fixed FFmpeg error 255 by using curl pipe for S3 signed URLs.', 'Fixed GHL webhook validation to prevent 422 errors.', 'Fixed speaker diarization for mono audio files.', ]} /> October UX and Platform Improvements October 16-30, 2025 Various UX enhancements including CC email for summaries, filter improvements, subscription management, and platform optimizations. CC email functionality for call summaries. Voicemail filter with default exclusion. Call summary location control for GHL connections. Hide short calls as default filter. Notification toggle state sync with app state. Filter deleted calls from API responses. Settings UI consistency with table-based layouts. Coupon code support for subscription signup. Direct Stripe billing portal link for subscription renewal. Stripe seats now reserved when invitations created. Removed Anthropic API key dependency (migrated to Vercel AI Gateway). Fixed ESLint and TypeScript configuration. Fixed dialog modal overflow issues. Team visibility. Managers can now drill into individual team members to see detailed statistics, call history, and compliance scores. } improvements={[ 'Team performance metrics and leaderboards.', 'Individual team member analytics with performance charts.', 'Call quality breakdown integration.', 'Tabbed navigation for metrics organization.', 'Slack tracking for manager dashboard interactions.', 'Slack notifications for user invitations and acceptances.', ]} /> Quality at scale. Define custom quality checklists and automatically score every call with AI-powered evaluation. } improvements={[ 'AI-powered call quality checklist evaluation.', 'Custom quality criteria definition.', 'Automated compliance scoring.', 'JSON response validation with multiple extraction strategies.', 'Detailed QA data logging.', 'Missed checklist processing for historical calls.', 'Manual reprocessing with user feedback.', 'Robust participant identification.', 'Enhanced JSON response handling.', 'Custom prompt for high-ticket coaching sales.', 'Standardized terminology (compliance → checklist score).', ]} fixes={[ 'Fixed leaderboard production errors (malformed returns, null checks).', 'Fixed robust participant handling in checklists.', 'Enhanced email contact name display (firstName OR lastName).', ]} /> Enterprise ready. White-label partner branding, custom field mapping, and comprehensive quality monitoring for enterprise deployments. } improvements={[ 'Calendar integrations for automatic call sync.', 'HubSpot CRM integration (POC).', 'GoHighLevel agency support for multi-location management.', 'Call Quality Monitoring dashboard with risk assessment and compliance tracking.', 'Multiple call upload with automatic caller name extraction.', 'Custom field mapping with configurable prompts and GHL sync.', 'White-label partner branding capabilities.', 'Contacts (Beta) for tracking people associated with calls.', 'Enhanced settings with account name updates and org selector.', 'Subscription ended banner for renewal guidance.', 'Improved call summaries with optional URL inclusion.', 'Timestamps on transcripts for better navigation.', 'Call tagging system for organization.', 'Temporal workflow IDs on calls for debugging.', 'Slack notifications for Temporal failures and new field mappings.', ]} fixes={[ 'Fixed Stripe subscription add/remove logic.', 'Fixed general prompt defaults.', 'Fixed template multi-select issues.', ]} /> Data-driven insights. New analytics dashboard with Questions Asked, Call Scores, Talk/Listen Ratio, and detailed visualizations. } improvements={[ 'Insights and Analytics Dashboard with multiple metrics and charts.', 'Call Library for saving and organizing important calls.', 'AssemblyAI integration for improved transcription.', 'Zoom integration (POC) for video call analysis.', 'Call tagging system.', 'Enhanced call details view with new card layout.', 'GoHighLevel connection improvements with better error handling.', 'Mobile signup optimization.', 'Metrics display updates (outbound → total).', 'Temporal workflow IDs for better debugging.', 'Location ID display in GHL settings.', 'Slack notifications for temporal failures.', ]} fixes={[ 'Fixed caller filter database query issues.', 'Fixed expired invitations display.', ]} /> Platform Enhancements July 21 - September 23, 2024 Platform stability improvements and integration enhancements. Password reset functionality with secure email-based verification. Enhanced source and destination configuration for CRM integrations. Improved authentication settings with platform-specific options. Foundation built. Modern authentication, team invitations, subscription management, and in-app audio playback launched. } improvements={[ 'Audio playback for call recordings with in-app player.', 'Redesigned authentication with modern UI and mobile responsiveness.', 'Advanced call filtering with date range, caller/user, and duration filters.', 'Team invitation and signup flow with automatic onboarding.', 'Subscription management UI with per-seat pricing.', 'User management for organization owners (delete members).', 'Call feedback system with Slack integration.', 'Enhanced call list with Uploaded By column and status badges.', 'Updated logo and branding.', 'Removed dashboard (users land on calls page).', 'Improved paywall logic for call limits.', ]} fixes={[ 'Fixed local timezone display for call timestamps.', 'Fixed Terms of Service and Privacy Policy links.', 'Fixed Follow Up Boss CRM integration.', ]} /> ---