AI Services
The AI Services section configures AI providers for two distinct purposes:
- Chat AI (Connect) powers AI features in Thirdlane Connect such as composer rewrite (Improve / tone / length), thread summarization, suggested replies, and translation.
- Recording AI powers post-call analysis on transcribed call recordings (summary, sentiment, categorization, action items, QA score, entity extraction, compliance).
For Text-to-Speech and voice transcription, see Speech Services (next to AI Services in the menu).
Where AI Services are configured
In Configuration Manager, open General Settings & Tools > Services > AI Services. The grid lists the AI service entries that have been provisioned. Adding, editing, and removing entries requires system-preferences permission, so the screen is visible only to platform administrators. Each tenant then selects which of the existing entries to use from its own settings.
The form’s Purpose dropdown offers:
- Recording AI — post-call analysis on call recordings.
- Chat AI (Connect) — in-app AI features in the chat client.
The Provider dropdown offers:
- OpenAI — hosted OpenAI API.
- Google Gemini — hosted Google Gemini API.
- Anthropic (Claude) — hosted Anthropic Claude API.
- OpenAI-compatible — any OpenAI-compatible chat completions endpoint (Azure OpenAI, Groq, OpenRouter, or a self-hosted gateway).
Common fields
- Name — internal identifier for the entry.
- Description — short note for sysadmins.
Recording AI analysis features
For Recording AI services, individual analysis features run automatically after transcription:
- Summary — generates a concise summary of the call.
- Sentiment — analyzes overall sentiment with a confidence score.
- Categorization — classifies the call into a category.
- Action Items — extracts follow-up tasks with assignees and deadlines.
- QA Score — rates call quality on a 5-point scale across communication dimensions.
- Entity Extraction — identifies names, organizations, dates, and other key entities.
- Compliance — checks for required disclosures and flags potential compliance issues.
Chat AI feature toggles
For Chat AI (Connect) services, four feature toggles control which composer features the service powers:
- Enable Composer Rewrite — Improve, tone (Casual / Professional / Confident / Enthusiastic), and length (Make shorter / Make longer).
- Enable Thread Summarize — on-demand summary of a chat or channel.
- Enable Suggested Replies — one-tap reply suggestions from visible context.
- Enable Translate Draft — translate a draft message into a target language.
Disabling a toggle removes the matching control from the chat composer for tenants that pick this service.
Provider configuration
OpenAI
- API Key — the OpenAI secret key. Stored as a password and never echoed back.
- Base URL — defaults to
https://api.openai.com/v1. Leave the default for openai.com. - Organization — optional OpenAI organization ID.
- Model — chat completion model (e.g.
gpt-4o-mini,gpt-4o). Leave blank to use the provider default.
Google Gemini
- API Key — a Google AI Studio API key. Stored as a password.
- Model — e.g.
gemini-2.5-flashorgemini-2.5-pro. Leave blank to use the provider default.
Anthropic (Claude)
- API Key — your Anthropic API key. Stored as a password.
- Model — e.g.
claude-3-5-haiku-latestorclaude-3-5-sonnet-latest. Leave blank to use the provider default.
OpenAI-compatible
For any endpoint that speaks the OpenAI chat completions API:
- API Key — optional; supply only if the endpoint requires it (self-hosted gateways may be keyless).
- Base URL — required. Point at Azure OpenAI, Groq, OpenRouter, or a self-hosted server.
- Model — the model name expected by that endpoint.
All four providers support both Recording AI analysis features and the Chat AI feature toggles.
Service profiles — multiple entries per AI offering
The grid is intentionally a flat list, so sysadmins can create multiple entries with different feature sets. Examples:
| Service Name | Provider | Toggles enabled | Use case |
|---|---|---|---|
| Acme Connect AI Premium | OpenAI | Rewrite + Summarize + Suggest + Translate | Premium tenants |
| Acme Connect AI Basic | Google Gemini | Rewrite + Summarize | Standard tenants |
| Acme Recording AI Full | Anthropic | Summary + Sentiment + Categorization + Action Items + QA + Entities + Compliance | Regulated industries |
| Acme Recording AI Light | OpenAI | Summary + Sentiment | Standard organizations |
Entries can share the same provider and model; they differ only in which feature toggles are enabled. To change what a tenant receives, simply switch their service assignment.
Tenant assignment
In Tenants -> Edit -> Connect AI Service (sysadmins) or Tenant -> Edit -> Connect AI Service (tenant admin), pick the AI Services entry that should serve this tenant’s users. None (or Use default when the platform default is also unset) turns Connect AI off for that organization: Settings, the status pill, voice/dictation, composer rewrite, and related What’s New entries are hidden. Assigning a catalog service turns those features on. Tenants on Use default follow global_defaults(pbx, connect_ai_service).
Per-user override
User Extensions have a Connect AI Access field with three states:
- Inherit from tenant — follow the tenant Connect AI service assignment (on when a service is set, off when it is None).
- Allow — keep AI on for this user when the tenant has a service assigned. Cannot turn AI on if the tenant service is None.
- Deny — hide all Connect AI features for this user even when the tenant has a service assigned.
When the tenant has no Connect AI service, this field is locked to Deny. Assign a service first, then use Allow or Deny to pilot or exclude individual users.
How composer rewrite works
When a Connect user clicks the Improve / tone / length chip in the chat composer, the front-end calls the PBX’s /facade/connect-ai/rewrite endpoint with the draft text and a style identifier (e.g. professional, shorten). The PBX picks the appropriate AI Services entry for the tenant, builds a structured chat-completion request, and returns the rewritten text.
Per-style minimum input length. Each style has a minimum word count:
| Style | Minimum words | Why |
|---|---|---|
| Improve | 1 | Lowest-friction polish; safe even on a single word. |
| Casual / Professional / Confident / Enthusiastic | 3 | Tone shifts on shorter inputs tend to confabulate context. |
| Make longer | 5 | Below this, the model has nothing to expand on without inventing content. |
| Shorten | 8 | Nothing to shorten if the input is already short. |
When the draft is below the threshold, the chip is disabled in the UI with a tooltip (“Add a few more words…”), and the server-side enforces the same threshold defensively (returns rewrite_input_too_short). This prevents the most common small-model failure mode — generating plausible-sounding content that has no basis in the user’s actual draft.
Prompt engineering. Each style ships with a system prompt and one neutral, topic-free few-shot example. The prompts include explicit anti-confabulation rules (“NEVER invent topics, recipients, deadlines…”), anti-leakage rules (“DO NOT copy specific topic, words, names from the example…”), and speaker-direction rules (“You are reformulating the user’s message, NOT replying to it…”). User input is wrapped in a REWRITE: task prefix so smaller models do not interpret a request-shaped draft (“can you send me the report?”) as a chat turn to answer.
Model capability. Composer rewrite is sensitive to model capability — very small models tend to treat the input as a chat turn to answer rather than a string to transform. The hosted cloud models (OpenAI, Gemini, Anthropic) comfortably clear this bar across all rewrite styles. When pointing an OpenAI-compatible endpoint at a self-hosted model, prefer a mid-size instruction-tuned model for reliable rewrites.
Best practices
- Treat API keys as secrets. They authorize billable calls against your provider account; store them only here (they are masked and never echoed back) and rotate them at the provider if exposed.
- Right-size the model to the task. Composer rewrite and chat features are sensitive to model capability - very small models tend to answer the draft instead of transforming it. Use the hosted cloud models, or a mid-size instruction-tuned model on an OpenAI-compatible endpoint, for reliable results.
- Use separate service profiles to tier features (see the table above) rather than toggling features on one shared entry, so you can move a tenant between tiers by switching its assignment.
- Recording AI depends on transcription. Post-call analysis runs on the transcript, so configure Voice Transcription and enable it for the relevant tenants first.
- Pilot with per-user overrides. Assign a Connect AI service on the tenant, then use the User Extension Connect AI Access field to trial features with a small group, or exclude specific roles, before enabling everyone.
See also
- Speech Services (TTS and Voice Transcription) — text-to-speech and voice transcription configuration.
- TTS and Voice Transcription — detailed setup for AWS, Google, Custom, and Thirdlane speech providers.