Per-team policies
One team records, another runs assist-only, and a team can only ever tighten what the org set.
Different teams operate under different constraints. A team selling into Germany may need assist-only mode while the US team records; a team on shared hardware may need screen-share exclusion disabled by IT policy. Per-team policies let those differ without forking any client configuration.
What a policy controls
| Setting | Effect |
|---|---|
recordingEnabled | Whether call audio may be stored at all |
assistOnlyDefault | Start calls in assist-only mode: suggestions flow, nothing is persisted |
disableScreenShareExclusion | Turn off the HUD's hidden-from-screen-share behaviour org- or team-wide |
defaultLanguage | BCP-47 language for transcription and suggestions |
detectLanguage | Let the provider detect the language instead |
coachAlerts.monologueSeconds | How long a rep may talk uninterrupted before the HUD says so (30–600s, default 90) |
coachAlerts.talkRatioThreshold | Talk-share that triggers an alert (0.3–0.95, default 0.7) |
coachAlerts.silenceSeconds | Dead air after a question before prompting (5–120s, default 12) |
coachAlerts.discoveryGapMinutes | How far into a call before missing discovery is flagged (2–60, default 10) |
coachAlerts.muted | Silence live coach alerts entirely |
Resolution: team → org default → built-in
Edit at Settings → Policies, choosing a team or the org default. The effective policy is the built-in defaults, overlaid with the org default, overlaid with the team's.
The console shows all three layers, so an admin can always see why a value is what it is rather than just what it is.
The resolved policy is what the call-pack endpoint hands the live plane and the desktop client, alongside the team's scorecard rubric and custom vocabulary: one request, one consistent answer, no per-team client code.
The compliance ratchet
A team may make consent stricter. It can never loosen it.
Concretely:
- If the org sets
recordingEnabled: false, a team policy cannot turn recording back on. - If the org sets
assistOnlyDefault: true, a team policy cannot turn it off.
A team-level policy that tries is not rejected. It is applied where it tightens and ignored where it would loosen, and the resolved response flags that it was ratcheted, so the admin can see it happened.
The reasoning is straightforward: compliance posture is set at the organisation, and delegating team configuration must not become a hole in it. A regional manager should be able to be more careful than the company standard without being able to be less.
Jurisdiction rules layer on top of this and are set separately; see Consent & recording policies.
API
GET /v1/policies?teamId= returns the effective policy plus each raw layer. PUT /v1/policies?teamId= updates one layer. GET /v1/policies/for-user/:userId is the call-pack read: effective policy, scorecard rubric and vocabulary, with the team resolved server-side.