Saltearse al contenido

Voice and dialer MCP tools

Esta página aún no está disponible en tu idioma.

Use this reference to find a tool and its inputs. Connect an MCP client before calling tools. Tool visibility depends on discovery and permissions.

For actions that send messages, spend credits, delete data, or start execution, review the intended records and confirm the action before proceeding. Obtain IDs from a prior result; do not invent them. A registered tool does not guarantee that its supporting service is available in every organization.

g8_voice_create_dialer_session

Create a parallel-dialer session, or place ONE ad-hoc call. Two modes, chosen by which target you pass: - list_id (or neither): creates a dialer SESSION in PAUSED state for an SDR to work through. Nothing dials until the SDR opens the dialer UI. - to_phone: places ONE call to that number RIGHT NOW with an AI agent - no session, no list, no SDR. The call starts as soon as the request succeeds. Run it with dry_run=True first: the flag is forwarded to the API, which validates the org’s subscription, its concurrent-call cap and ownership of from_phone WITHOUT dialing, and the preview you get back quotes that real pre-flight. Creates a real session bound to the caller’s org and SDR. ALWAYS confirm with the user first. The session starts PAUSED; the SDR must open the dialer UI to begin actual calls. Recommended flow: call with dry_run=True for a confirmation preview, then dry_run=False after the user confirms. Args: name: Session display name (e.g. “Tuesday cold dial - Q4 ICP”). from_phone: Caller-ID number; must be one of the org’s dialer numbers from g8_voice_list_numbers. list_id: Contact list to dial (from g8_get_lists). Optional but recommended - without it the SDR can only manual-dial. list_title: Display title for the list (e.g. “Q4 ICP”). agent_id: Voice agent UUID from g8_voice_list_agents. agent_name: Legacy V1 agent name fallback. Skip if you have agent_id. entity_type: “agent” or “twin”. Skip unless you know. studio_campaign_id: Optional campaign UUID from g8_gtm_list_campaigns. user_timezone: IANA timezone for analytics grouping (e.g. “America/New_York”). Defaults to the SDR’s setting. skip_voicemails: Per-session voicemail-skip override. None = use the SDR’s default. dry_run: When True, return a confirmation preview instead of creating the session. On the one-off branch the flag is forwarded to the API, so the preview reflects a real pre-flight rather than a local echo. to_phone: ONE-OFF CALL. Setting this switches the tool to “dial this single number now” and no session is created (see the one-off section above). Mutually exclusive with list_id. first_name, last_name, email, contact_id: one-off only - context handed to the agent for that call. timezone: one-off only. IANA timezone of the person being called (defaults to America/New_York server-side). This is the callee’s timezone; user_timezone is the SDR’s and applies to sessions. campaign_id: one-off only, for attribution. event_id: one-off only. Appointments event-type id the agent may offer to book. Omit when the call has no booking flow. callback_url: one-off only. Webhook notified with the result.

Inputs

InputRequiredTypeDescription
nameYesstringSee the schema below for constraints and defaults.
from_phoneYesstringSee the schema below for constraints and defaults.
list_idNostring / nullSee the schema below for constraints and defaults.
list_titleNostring / nullSee the schema below for constraints and defaults.
agent_idNostring / nullSee the schema below for constraints and defaults.
agent_nameNostring / nullSee the schema below for constraints and defaults.
entity_typeNostring / nullSee the schema below for constraints and defaults.
studio_campaign_idNostring / nullSee the schema below for constraints and defaults.
user_timezoneNostring / nullSee the schema below for constraints and defaults.
skip_voicemailsNoboolean / nullSee the schema below for constraints and defaults.
dry_runNobooleanSee the schema below for constraints and defaults.
to_phoneNostring / nullSee the schema below for constraints and defaults.
first_nameNostring / nullSee the schema below for constraints and defaults.
last_nameNostring / nullSee the schema below for constraints and defaults.
emailNostring / nullSee the schema below for constraints and defaults.
contact_idNostring / nullSee the schema below for constraints and defaults.
timezoneNostring / nullSee the schema below for constraints and defaults.
campaign_idNostring / nullSee the schema below for constraints and defaults.
event_idNointeger / nullSee the schema below for constraints and defaults.
callback_urlNostring / nullSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"from_phone": {
"title": "From Phone",
"type": "string"
},
"list_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "List Id"
},
"list_title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "List Title"
},
"agent_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Id"
},
"agent_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Name"
},
"entity_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Entity Type"
},
"studio_campaign_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Studio Campaign Id"
},
"user_timezone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "User Timezone"
},
"skip_voicemails": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Skip Voicemails"
},
"dry_run": {
"default": false,
"title": "Dry Run",
"type": "boolean"
},
"to_phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "To Phone"
},
"first_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "First Name"
},
"last_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Last Name"
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Email"
},
"contact_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Contact Id"
},
"timezone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Timezone"
},
"campaign_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Campaign Id"
},
"event_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Event Id"
},
"callback_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Callback Url"
}
},
"required": [
"name",
"from_phone"
],
"title": "create_dialer_sessionArguments",
"type": "object"
}

g8_voice_get_call_grading

Fetch the AI-generated grading for a single dialer call. Returns {status: "pending"} while grading is still computing, else the grading payload plus reviewed / reviewed_at. Polling at ~10s intervals is safe. Args: room_name: The livekit_room_name id from g8_voice_list_dialer_sessions or any call row.

Inputs

InputRequiredTypeDescription
room_nameYesstringSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"room_name": {
"title": "Room Name",
"type": "string"
}
},
"required": [
"room_name"
],
"title": "get_call_gradingArguments",
"type": "object"
}

g8_voice_get_call_transcript

Fetch the full transcript for a single dialer call. Returns status: "ready" with a transcript array of {speaker, content, timestamp} segments plus call metadata (summary, disposition, recording_url, contact_id, duration). Returns status: "empty" with transcript: [] when the call ended without a flushed transcript (rare; summary is still set). A 404 means the call does not exist or belongs to another org. Args: room_name: The livekit_room_name id from g8_voice_list_calls_for_contact or any call row.

Inputs

InputRequiredTypeDescription
room_nameYesstringSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"room_name": {
"title": "Room Name",
"type": "string"
}
},
"required": [
"room_name"
],
"title": "get_call_transcriptArguments",
"type": "object"
}

g8_voice_get_dialer_stats

Get aggregated dialer analytics for the caller’s org. Returns filters, metrics (per-day rows when aggregation=DAILY, one row when TOTAL), and an optional overall summary. Each row includes total_dials, connection_rate, talk time, disposition breakdown, success_rate, redial stats, peak hour, and inbound callback counts. Args: session_id: Restrict to a single dialer session. user_email: Restrict to a single SDR’s calls. date_from: Start date “YYYY-MM-DD”. date_to: End date “YYYY-MM-DD”. aggregation: “DAILY” (default) or “TOTAL”.

Inputs

InputRequiredTypeDescription
session_idNostring / nullSee the schema below for constraints and defaults.
user_emailNostring / nullSee the schema below for constraints and defaults.
date_fromNostring / nullSee the schema below for constraints and defaults.
date_toNostring / nullSee the schema below for constraints and defaults.
aggregationNostringSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"session_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Session Id"
},
"user_email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "User Email"
},
"date_from": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Date From"
},
"date_to": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Date To"
},
"aggregation": {
"default": "DAILY",
"title": "Aggregation",
"type": "string"
}
},
"title": "get_dialer_statsArguments",
"type": "object"
}

g8_voice_list_agents

List voice agents (personas), or read one agent’s full config. Call BEFORE g8_voice_create_dialer_session to pick a real agent. Returns agent_id (UUID) plus name, role, status. Three shapes, one result contract (always {"agents": [...], ...}, so a caller can treat every branch the same): - default: the dialer picker list, capped at 100 agents server-side and unpaged. Best for “which agent should I dial with?”. - full=True (or any of is_template / page / page_size / sort_by / sort_order): the management list, which pages properly and carries total_count, is_template, avatar_url, voice, calendar_event_id and template_id. Use it when the picker’s 100 cap could hide agents, or when you need templates. - agent_id: ONE agent’s complete configuration - persona text and its three 0-1 dials, inbound/outbound instructions, voicemail prompt, pronunciation, identity and knowledge collections. None of that is on either list shape. Returned as a one-entry agents list with agent_name/description hoisted to the top level, so the card grid renders it like any other row; the full nested persona/identity/knowledge objects ride along on that entry. Args: role: Filter by agent role (SDR, AE, Receptionist, CSM, etc.). agent_status: Filter by status (e.g. “active”). entity_type: “agent” or “twin”. Defaults to all. search: Substring match on agent name. agent_id: Read this one agent in full instead of listing. full: Use the paged management list rather than the picker. is_template: true = templates only, false = non-templates only. page: 1-indexed page for the management list. page_size: Rows per page for the management list (max 100). sort_by: created_at | agent_name | role | status. sort_order: asc | desc.

Inputs

InputRequiredTypeDescription
roleNostring / nullSee the schema below for constraints and defaults.
agent_statusNostring / nullSee the schema below for constraints and defaults.
entity_typeNostring / nullSee the schema below for constraints and defaults.
searchNostring / nullSee the schema below for constraints and defaults.
agent_idNostring / nullSee the schema below for constraints and defaults.
fullNobooleanSee the schema below for constraints and defaults.
is_templateNoboolean / nullSee the schema below for constraints and defaults.
pageNointegerSee the schema below for constraints and defaults.
page_sizeNointegerSee the schema below for constraints and defaults.
sort_byNostring / nullSee the schema below for constraints and defaults.
sort_orderNostring / nullSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Role"
},
"agent_status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Status"
},
"entity_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Entity Type"
},
"search": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Search"
},
"agent_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Id"
},
"full": {
"default": false,
"title": "Full",
"type": "boolean"
},
"is_template": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Template"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 20,
"title": "Page Size",
"type": "integer"
},
"sort_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sort By"
},
"sort_order": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sort Order"
}
},
"title": "list_agentsArguments",
"type": "object"
}

g8_voice_list_calls_for_contact

List dialer calls for a specific contact, newest first. Returns summary rows ONLY (no transcript blob). Each row carries room_name (canonical call id), has_transcript, disposition, summary, call_duration, recording_url, parallel_session_id, from_, to, contact_id, created_at. Pass a row’s room_name to g8_voice_get_call_transcript for the full transcript. Args: contact_id: The graph8 contact id (string; pass numeric ids as their string form). limit: Max rows to return (1-100, default 20).

Inputs

InputRequiredTypeDescription
contact_idYesstringSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"contact_id": {
"title": "Contact Id",
"type": "string"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"required": [
"contact_id"
],
"title": "list_calls_for_contactArguments",
"type": "object"
}

g8_voice_list_calls_for_sdr

List dialer calls placed by a specific SDR, newest first. Returns summary rows ONLY (no transcript blob). Each row carries room_name (canonical call id), has_transcript, disposition, summary, call_duration, recording_url, parallel_session_id, contact_id, from_, to (number dialed), created_at. Use room_name with g8_voice_get_call_transcript for the full transcript. For incremental polling, pass the previous page’s max created_at as the next created_after. Args: user_email: SDR email. Returns only dialer rows (those with a parallel_session_id). created_after: Optional ISO-8601 timestamp; returns rows with created_at >= created_after. Use for incremental polling. parallel_session_id: Optional - narrow to one session id (ANDs with user_email). limit: Max rows to return (1-100, default 20).

Inputs

InputRequiredTypeDescription
user_emailYesstringSee the schema below for constraints and defaults.
created_afterNostring / nullSee the schema below for constraints and defaults.
parallel_session_idNostring / nullSee the schema below for constraints and defaults.
limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"user_email": {
"title": "User Email",
"type": "string"
},
"created_after": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Created After"
},
"parallel_session_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Parallel Session Id"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"required": [
"user_email"
],
"title": "list_calls_for_sdrArguments",
"type": "object"
}

g8_voice_list_dialer_sessions

List parallel dialer sessions for the caller’s organization. Each row carries session_id, status, user_email, campaign + list metadata, total_calls, and contact_ids. Pair with g8_voice_get_dialer_stats for “how did dialing go?” answers. Args: page: 1-indexed page number. page_size: Rows per page (1-200). status: Comma-separated session statuses (“ACTIVE,PAUSED”). user_email: Filter by SDR email (substring match). name: Filter by session name (substring match). campaign_id: Filter by campaign id (substring match). list_id: Exact list id. list_name: Filter by list title (substring match). date_from: ISO timestamp - sessions created on/after. date_to: ISO timestamp - sessions created on/before. sort_by: Column name (created_at, updated_at, total_calls…). sort_order: “asc” or “desc”. Defaults to “desc”.

Inputs

InputRequiredTypeDescription
pageNointegerSee the schema below for constraints and defaults.
page_sizeNointegerSee the schema below for constraints and defaults.
statusNostring / nullSee the schema below for constraints and defaults.
user_emailNostring / nullSee the schema below for constraints and defaults.
nameNostring / nullSee the schema below for constraints and defaults.
campaign_idNostring / nullSee the schema below for constraints and defaults.
list_idNostring / nullSee the schema below for constraints and defaults.
list_nameNostring / nullSee the schema below for constraints and defaults.
date_fromNostring / nullSee the schema below for constraints and defaults.
date_toNostring / nullSee the schema below for constraints and defaults.
sort_byNostring / nullSee the schema below for constraints and defaults.
sort_orderNostringSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 50,
"title": "Page Size",
"type": "integer"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"user_email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "User Email"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"campaign_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Campaign Id"
},
"list_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "List Id"
},
"list_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "List Name"
},
"date_from": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Date From"
},
"date_to": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Date To"
},
"sort_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sort By"
},
"sort_order": {
"default": "desc",
"title": "Sort Order",
"type": "string"
}
},
"title": "list_dialer_sessionsArguments",
"type": "object"
}

g8_voice_list_dispositions

List the call outcomes this org can record against a call. Returns system (the fixed vocabulary, each with the is_connected flag that decides whether an outcome counts as a live connection in dialer analytics), custom (this org’s own entries, with id, name, description and color), custom_used and custom_limit. g8_workflow_list_dispositions answers a different question: it gives value/label/category for building workflow-trigger filters, and carries is_connected only on custom entries. Read this one when you need the connection semantics of the SYSTEM outcomes, or the remaining custom slots.

Inputs

InputRequiredTypeDescription
NoneNoNo user-supplied inputs.
Complete input schema
{
"properties": {},
"title": "list_dispositionsArguments",
"type": "object"
}

g8_voice_list_missed_callbacks

Inbound calls the org missed (no SDR pickup), with caller info. Each row links back to the original outbound session via parallel_session_id (did this lead call us back?). Args: limit: Max rows to return (1-200, default 50).

Inputs

InputRequiredTypeDescription
limitNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"title": "list_missed_callbacksArguments",
"type": "object"
}

g8_voice_list_numbers

List the org’s dialer-eligible phone numbers with usage stats. Use before starting a session to pick a healthy number (low connect_rate_7d rows usually need provider-side attention). Args: user_email: Optional - restrict to numbers assigned to one SDR.

Inputs

InputRequiredTypeDescription
user_emailNostring / nullSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"user_email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "User Email"
}
},
"title": "list_dialer_numbersArguments",
"type": "object"
}

g8_voice_pause_session

Pause an active parallel-dialer session. Reversible (call g8_voice_resume_session to flip back to ACTIVE) and idempotent (pausing a PAUSED session is a no-op). Args: session_id: Session UUID from g8_voice_list_dialer_sessions or g8_voice_create_dialer_session.

Inputs

InputRequiredTypeDescription
session_idYesstringSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"session_id": {
"title": "Session Id",
"type": "string"
}
},
"required": [
"session_id"
],
"title": "pause_sessionArguments",
"type": "object"
}

g8_voice_resume_session

Resume a paused parallel-dialer session by dialing the next batch. Flips the session to ACTIVE and places real outbound calls: skips contacts already called this session and dials the next batch (up to 4) from the source list. IMPORTANT: This actually dials phone numbers and consumes telephony capacity. ALWAYS confirm with the user before calling. Not idempotent - each call advances the list cursor. Returns the voice service’s response plus dialed_count (calls actually placed). It can be lower than max_contacts when the list is near exhausted, rows have no usable phone, or candidates were already called. Args: session_id: Session UUID from g8_voice_list_dialer_sessions or g8_voice_create_dialer_session. max_contacts: Contacts to dial in this batch (1-4, capped at 4). Defaults to 4.

Inputs

InputRequiredTypeDescription
session_idYesstringSee the schema below for constraints and defaults.
max_contactsNointegerSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"session_id": {
"title": "Session Id",
"type": "string"
},
"max_contacts": {
"default": 4,
"title": "Max Contacts",
"type": "integer"
}
},
"required": [
"session_id"
],
"title": "resume_sessionArguments",
"type": "object"
}

g8_voice_stop_session

Stop a parallel-dialer session permanently. IMPORTANT: Marks the session COMPLETED. One-way - re-opening is only possible from the dialer UI via manual-dial. ALWAYS confirm with the user first. Recommended flow: call with dry_run=True for a confirmation preview, then dry_run=False after they confirm. Args: session_id: Session UUID. dry_run: When True, return a confirmation preview instead of stopping.

Inputs

InputRequiredTypeDescription
session_idYesstringSee the schema below for constraints and defaults.
dry_runNobooleanSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"session_id": {
"title": "Session Id",
"type": "string"
},
"dry_run": {
"default": false,
"title": "Dry Run",
"type": "boolean"
}
},
"required": [
"session_id"
],
"title": "stop_sessionArguments",
"type": "object"
}

g8_voice_upsert_agent

Create a voice agent, or edit an existing one. Omit agent_id to CREATE (role, agent_name, persona and description are then required). Pass agent_id from g8_voice_list_agents to EDIT that agent; only the fields you pass change. Editing is safe with partial input even though the API replaces persona / identity / knowledge as whole objects: this tool reads the agent first and merges your fields onto its current configuration, so omitting persona does not blank the persona. That read is why an edit needs the agent to exist - a wrong agent_id returns not-found rather than silently creating one. phone must be E.164 (+15551234567); anything else is rejected before the write, because a drifted format makes the number read as unassigned later. Args: role: “SDR”, “AE”, “Receptionist”, “CSM”, … Required on create. agent_name: Display name. Required on create. persona: Personality and behaviour description. Required on create. description: One-line summary of what this agent is for. Required on create. agent_id: Edit this agent instead of creating one. entity_type: “agent” (default) or “twin”. agent_status: active | inactive | archived. formality_level, conciseness_level, assertiveness_level: 0.0-1.0 dials. Default to 0.5 on create; left alone on edit. inbound_instructions, outbound_instructions: extra prompt text per call direction. outbound_voicemail_prompt: what the agent leaves on voicemail. company_name_pronunciation: TTS override for the company name. phone: E.164 caller identity for this agent. voice: Voice id (Cartesia voice_id or OpenAI voice name). calendar_event_id: Appointments event-type id for booking. avatar_url: Avatar image URL. knowledge_collections: Knowledge collection ids (max 4). use_company_knowledge: Also draw on the org knowledge base. is_template: Save as a reusable template rather than a live agent.

Inputs

InputRequiredTypeDescription
roleNostring / nullSee the schema below for constraints and defaults.
agent_nameNostring / nullSee the schema below for constraints and defaults.
personaNostring / nullSee the schema below for constraints and defaults.
descriptionNostring / nullSee the schema below for constraints and defaults.
agent_idNostring / nullSee the schema below for constraints and defaults.
entity_typeNostring / nullSee the schema below for constraints and defaults.
agent_statusNostring / nullSee the schema below for constraints and defaults.
formality_levelNonumber / nullSee the schema below for constraints and defaults.
conciseness_levelNonumber / nullSee the schema below for constraints and defaults.
assertiveness_levelNonumber / nullSee the schema below for constraints and defaults.
inbound_instructionsNostring / nullSee the schema below for constraints and defaults.
outbound_instructionsNostring / nullSee the schema below for constraints and defaults.
outbound_voicemail_promptNostring / nullSee the schema below for constraints and defaults.
company_name_pronunciationNostring / nullSee the schema below for constraints and defaults.
phoneNostring / nullSee the schema below for constraints and defaults.
voiceNostring / nullSee the schema below for constraints and defaults.
calendar_event_idNointeger / nullSee the schema below for constraints and defaults.
avatar_urlNostring / nullSee the schema below for constraints and defaults.
knowledge_collectionsNoarray / nullSee the schema below for constraints and defaults.
use_company_knowledgeNoboolean / nullSee the schema below for constraints and defaults.
is_templateNoboolean / nullSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Role"
},
"agent_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Name"
},
"persona": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Persona"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"agent_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Id"
},
"entity_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Entity Type"
},
"agent_status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Status"
},
"formality_level": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Formality Level"
},
"conciseness_level": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Conciseness Level"
},
"assertiveness_level": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Assertiveness Level"
},
"inbound_instructions": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Inbound Instructions"
},
"outbound_instructions": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Outbound Instructions"
},
"outbound_voicemail_prompt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Outbound Voicemail Prompt"
},
"company_name_pronunciation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Company Name Pronunciation"
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Phone"
},
"voice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Voice"
},
"calendar_event_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Calendar Event Id"
},
"avatar_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Avatar Url"
},
"knowledge_collections": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Knowledge Collections"
},
"use_company_knowledge": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Use Company Knowledge"
},
"is_template": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Template"
}
},
"title": "upsert_agentArguments",
"type": "object"
}

g8_voice_upsert_disposition

Create a custom call outcome, or edit one. Omit disposition_id to CREATE (name, color and is_connected are then required). Pass one from g8_voice_list_dispositions to EDIT; only the fields you pass change. This changes what every rep in the org can pick after a call, so confirm with the user before calling it. Three rules are enforced upstream and surface as errors: at most 10 custom outcomes per org, colors must come from the preset palette, and names must be unique case-insensitively against system AND custom entries. is_connected becomes locked once any call has been recorded against the outcome - editing it then returns a conflict, on purpose, because flipping it would retroactively re-classify calls that already happened. Args: name: Display name, 1-40 chars. Required on create. color: Hex value from the preset palette (e.g. “#10b981”). Required on create. is_connected: Does this outcome count as a live connection in analytics? Required on create. description: Optional helper text, up to 200 chars. disposition_id: Edit this custom outcome instead of creating one.

Inputs

InputRequiredTypeDescription
nameNostring / nullSee the schema below for constraints and defaults.
colorNostring / nullSee the schema below for constraints and defaults.
is_connectedNoboolean / nullSee the schema below for constraints and defaults.
descriptionNostring / nullSee the schema below for constraints and defaults.
disposition_idNointeger / nullSee the schema below for constraints and defaults.
Complete input schema
{
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Color"
},
"is_connected": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Is Connected"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"disposition_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Disposition Id"
}
},
"title": "upsert_dispositionArguments",
"type": "object"
}