Skip to content

client.copilot_profiles

Real-time agent copilot configuration. These methods are on client.copilot_profiles, where client is a MoreVoice client (see the Python SDK). On AsyncMoreVoice the same methods are awaited. Each one returns the response object and raises an exception when the API answers with an error.

Create a copilot profile. Returns the new CopilotProfile.

client.copilot_profiles
def create(self, body: _m.CopilotProfileCreateParamsInput | Mapping[str, Any] | Unset = UNSET, *, more_voice_version: str | Unset = UNSET, idempotency_key: str | Unset = UNSET) -> _m.CopilotProfile

client.copilot_profiles.create() · await async_client.copilot_profiles.create() · POST /copilot_profiles · API reference

Field Type Required Description
alerts object[] no —
coaching object no —
company string no Who the agent represents.
compliance object no —
fields object[] no Details the copilot picks out of the conversation.
goal string no What the call should achieve.
kb object no —
language string no The calls’ language (he, en, …).
model object no —
name string no Default: the template’s name.
objections object[] no The objection library.
product string no —
qa_rubric object[] no The QA rubric this profile’s calls are scored against (empty: the organisation’s rubric).
script object no —
stages object[] no The call’s stages, each with a checklist (used when no script flow is set).
template_id "sales-outbound" | "customer-service" no Start from a template (GET /v1/copilot_profiles/templates); the fields you send override it.
tone string no How the agent should sound.

CopilotProfile:

Field Type Description
id string The profile’s ID.
object "copilot_profile" Always copilot_profile.
livemode boolean true in live mode, false in test mode.
name string —
version integer Goes up on every change.
template_id string | null The template it was created from.
goal string What the call should achieve.
tone string How the agent should sound.
company string Who the agent represents.
product string —
language string The calls’ language (he, en, …).
stages object[] The call’s stages, each with a checklist (used when no script flow is set).
objections object[] The objection library.
kb object —
fields object[] Details the copilot picks out of the conversation.
compliance object —
coaching object —
alerts object[] —
qa_rubric object[] The QA rubric this profile’s calls are scored against (empty: the organisation’s rubric).
script object —
model object —
created string An ISO-8601 timestamp in UTC.
updated string An ISO-8601 timestamp in UTC.
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
copilot_profile = client.copilot_profiles.create({
"company": "Acme",
"name": "Outbound sales",
"product": "Acme Cloud PBX",
"template_id": "sales-outbound",
})
print(copilot_profile)

Delete a copilot profile. Deletes the profile. Queues and calls that used it run without a copilot profile.

client.copilot_profiles
def delete(self, id: str, *, more_voice_version: str | Unset = UNSET, idempotency_key: str | Unset = UNSET) -> _m.DeletedCopilotProfile

client.copilot_profiles.delete() · await async_client.copilot_profiles.delete() · DELETE /copilot_profiles/{id} · API reference

Name Type Required Description
id str yes A copilot profile ID (cop_…).

DeletedCopilotProfile:

Field Type Description
id string A copilot profile ID (prefix cop_).
object "copilot_profile" Always copilot_profile.
deleted true —
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
deleted_copilot_profile = client.copilot_profiles.delete("cop_7Hk2Lm9Qp")
print(deleted_copilot_profile)

Duplicate a copilot profile. Returns the new CopilotProfile. Answers 404 with the code resource_missing when nothing has this ID in this organisation and mode.

client.copilot_profiles
def duplicate(self, id: str, body: _m.DuplicateCopilotProfileParamsInput | Mapping[str, Any] | Unset = UNSET, *, more_voice_version: str | Unset = UNSET, idempotency_key: str | Unset = UNSET) -> _m.CopilotProfile

client.copilot_profiles.duplicate() · await async_client.copilot_profiles.duplicate() · POST /copilot_profiles/{id}/duplicate · API reference

Name Type Required Description
id str yes A copilot profile ID (cop_…).
Field Type Required Description
name string no Default: the original’s name with “(copy)”.

CopilotProfile:

Field Type Description
id string The profile’s ID.
object "copilot_profile" Always copilot_profile.
livemode boolean true in live mode, false in test mode.
name string —
version integer Goes up on every change.
template_id string | null The template it was created from.
goal string What the call should achieve.
tone string How the agent should sound.
company string Who the agent represents.
product string —
language string The calls’ language (he, en, …).
stages object[] The call’s stages, each with a checklist (used when no script flow is set).
objections object[] The objection library.
kb object —
fields object[] Details the copilot picks out of the conversation.
compliance object —
coaching object —
alerts object[] —
qa_rubric object[] The QA rubric this profile’s calls are scored against (empty: the organisation’s rubric).
script object —
model object —
created string An ISO-8601 timestamp in UTC.
updated string An ISO-8601 timestamp in UTC.
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
copilot_profile = client.copilot_profiles.duplicate("cop_7Hk2Lm9Qp", {
"name": "Outbound sales B",
})
print(copilot_profile)

List copilot profiles. Returns a page of CopilotProfile objects, newest first. Pass next_cursor as starting_after for the next page; the SDKs iterate every page for you.

client.copilot_profiles
def list(self, *, limit: int | Unset = 20, starting_after: str | Unset = UNSET, ending_before: str | Unset = UNSET, more_voice_version: str | Unset = UNSET) -> AsyncPage[_m.CopilotProfile]

client.copilot_profiles.list() · await async_client.copilot_profiles.list() · GET /copilot_profiles · API reference

Name Type Required Description
limit integer no How many objects to return, 1–100 (default 20).
starting_after string no A cursor (next_cursor) or object ID: return the objects after it (older).
ending_before string no A cursor or object ID: return the objects before it (newer).

A page of results (CopilotProfileList): data, has_more and next_cursor.

from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
for copilot_profile in client.copilot_profiles.list():
print(copilot_profile)

List copilot profile templates. The built-in profiles you can start from (template_id on create).

client.copilot_profiles
def list_templates(self, *, limit: int | Unset = 20, starting_after: str | Unset = UNSET, ending_before: str | Unset = UNSET, more_voice_version: str | Unset = UNSET) -> AsyncPage[_m.CopilotProfileTemplate]

client.copilot_profiles.list_templates() · await async_client.copilot_profiles.list_templates() · GET /copilot_profiles/templates · API reference

Name Type Required Description
limit integer no How many objects to return, 1–100 (default 20).
starting_after string no A cursor (next_cursor) or object ID: return the objects after it (older).
ending_before string no A cursor or object ID: return the objects before it (newer).

A page of results (CopilotProfileTemplateList): data, has_more and next_cursor.

from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
for copilot_profile in client.copilot_profiles.list_templates():
print(copilot_profile)

Retrieve a copilot profile. Returns the CopilotProfile object. Answers 404 with the code resource_missing when nothing has this ID in this organisation and mode.

client.copilot_profiles
def retrieve(self, id: str, *, more_voice_version: str | Unset = UNSET) -> _m.CopilotProfile

client.copilot_profiles.retrieve() · await async_client.copilot_profiles.retrieve() · GET /copilot_profiles/{id} · API reference

Name Type Required Description
id str yes A copilot profile ID (cop_…).

CopilotProfile:

Field Type Description
id string The profile’s ID.
object "copilot_profile" Always copilot_profile.
livemode boolean true in live mode, false in test mode.
name string —
version integer Goes up on every change.
template_id string | null The template it was created from.
goal string What the call should achieve.
tone string How the agent should sound.
company string Who the agent represents.
product string —
language string The calls’ language (he, en, …).
stages object[] The call’s stages, each with a checklist (used when no script flow is set).
objections object[] The objection library.
kb object —
fields object[] Details the copilot picks out of the conversation.
compliance object —
coaching object —
alerts object[] —
qa_rubric object[] The QA rubric this profile’s calls are scored against (empty: the organisation’s rubric).
script object —
model object —
created string An ISO-8601 timestamp in UTC.
updated string An ISO-8601 timestamp in UTC.
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
copilot_profile = client.copilot_profiles.retrieve("cop_7Hk2Lm9Qp")
print(copilot_profile)

Update a copilot profile. Updates the fields you send. Nested objects merge with the stored values; lists (stages, objections, alerts…) replace them. Calls that start afterwards use the new version.

client.copilot_profiles
def update(self, id: str, body: _m.CopilotProfileUpdateParamsInput | Mapping[str, Any] | Unset = UNSET, *, more_voice_version: str | Unset = UNSET) -> _m.CopilotProfile

client.copilot_profiles.update() · await async_client.copilot_profiles.update() · PATCH /copilot_profiles/{id} · API reference

Name Type Required Description
id str yes A copilot profile ID (cop_…).
Field Type Required Description
alerts object[] no —
coaching object no —
company string no Who the agent represents.
compliance object no —
fields object[] no Details the copilot picks out of the conversation.
goal string no What the call should achieve.
kb object no —
language string no The calls’ language (he, en, …).
model object no —
name string no —
objections object[] no The objection library.
product string no —
qa_rubric object[] no The QA rubric this profile’s calls are scored against (empty: the organisation’s rubric).
script object no —
stages object[] no The call’s stages, each with a checklist (used when no script flow is set).
tone string no How the agent should sound.

CopilotProfile:

Field Type Description
id string The profile’s ID.
object "copilot_profile" Always copilot_profile.
livemode boolean true in live mode, false in test mode.
name string —
version integer Goes up on every change.
template_id string | null The template it was created from.
goal string What the call should achieve.
tone string How the agent should sound.
company string Who the agent represents.
product string —
language string The calls’ language (he, en, …).
stages object[] The call’s stages, each with a checklist (used when no script flow is set).
objections object[] The objection library.
kb object —
fields object[] Details the copilot picks out of the conversation.
compliance object —
coaching object —
alerts object[] —
qa_rubric object[] The QA rubric this profile’s calls are scored against (empty: the organisation’s rubric).
script object —
model object —
created string An ISO-8601 timestamp in UTC.
updated string An ISO-8601 timestamp in UTC.
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
copilot_profile = client.copilot_profiles.update("cop_7Hk2Lm9Qp", {
"coaching": {
"talk_ratio_max": 0.6,
},
})
print(copilot_profile)