Your agency’s AI keys
SalesControl’s AI features (the AI draft of the call note, recording transcription, translating your texts into the five languages) run on your agency’s keys, not ours. No hidden cost in the subscription: you pay the provider directly, for what you use. Until the keys are in place these features are disabled, and the app tells you so.
Where to set them up
Settings › Integrations › AI keys. The card sits at the top of the tab, outside every group and outside every plan gate: the AI features exist on the Free plan too. It has two blocks: Transcription (audio → text) and Text (notes, translations). For each one you pick the provider, paste the key and save: SalesControl checks it right away with a minimal request to the provider and stores it encrypted. You will not see it in clear again: only the last 4 characters remain.
Which provider to choose
Transcription: Deepgram only
Transcription has a single provider, Deepgram: key from console.deepgram.com › API Keys. OpenAI was removed from the list: it accepts files up to 25 MB, and a one-hour call is twice that — it was not an alternative but a trap you discovered once the call was over. OpenAI remains available as a text provider.
Text
- Anthropic (recommended): Claude Sonnet 5.5 recommended, Claude Haiku 4.5 as the economy option, Claude Haiku 5.5 as an even cheaper one, plus Claude Opus 5.5 and Claude Fable 5.1. Key from console.anthropic.com.
- OpenAI: GPT-6.1 Sol recommended, GPT-6 Luna as the economy option, GPT-6 Astra for maximum quality, plus GPT-6 Sol and the GPT-5.6 models.
You can also enter a model id outside the catalogue: it is tested on save and rejected if the provider does not know it. If you had picked a model the provider later removed from the menu, you keep it: the setting accepts any id, the menu only offers models that are still alive.
Two models, one per kind of work
The Text block has two dropdowns, because not every job deserves the same model:
- Model for notes and call analysis — the draft of the follow-up note, the analysis of recorded calls and the next follow-up date. Here the recommended tier pays off: this is comprehension work.
- Model for translations — notification and service texts across the 5 languages. This is mechanical work: the default is your provider’s economy tier (Haiku for Anthropic, Luna for OpenAI), and that is also the advice. Translating 3,000 characters into four languages with the big model costs ten times as much with no readable benefit.
What it costs
The card shows two estimates next to the dropdowns, with the date the price lists were verified — model prices change month to month and you want to know how fresh the number you are reading is. Transcription is billed per minute of audio, so it does not change with the text model; writing the notes depends on the model you pick. These are orders of magnitude: a call dense with numbers, or with several people talking over each other, costs more. Everything is billed by the provider on your own key.
What happens without keys
- In the lead’s follow-up dialog the AI proposes nothing: you get the notice “AI refinement is off: AI keys are missing” with a link to set them up (admins only), and you write the note by hand. With only the transcription key missing the draft is still written, but from the note history and the screenshots, not from the audio.
- “Translate now” in Notifications answers “AI keys missing: add them in Integrations” and the translation cron skips the agency.
- Calls are still recorded and stored, but transcript and notes show as “not run”.
- A banner shows in Settings while either key is missing.
When a translation fails
Translations refresh on their own about 10 minutes after the last edit to the text: the pause is there so it does not re-translate on every letter you type. If the attempt fails — provider unreachable, rate limit, expired key — it retries with a growing wait: after 10 minutes, then 30, then 2 hours, then 6, then 24. On the fifth consecutive failure that row stops and is no longer retried on its own until the text changes: a loop retrying forever on a broken key is billed on every pass.
The Translate now button under Settings › Notifications skips the 10-minute pause, the growing wait and the five-attempt cap alike: it is the way out once you have fixed the key. The first success resets the counter, and from then on the row is left alone until you rewrite the text.
Keys are encrypted on the server with a dedicated key and never pass through the browser after saving. You can verify them (a new test request) or remove them at any time; removing one immediately stops the features that use it.