@graph8/sdk 0.245.0 → 0.260.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -5
- package/dist/cli.js +216 -0
- package/dist/index.d.mts +283 -12
- package/dist/index.d.ts +283 -12
- package/dist/index.js +88 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +88 -2
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +274 -12
- package/dist/react.d.ts +274 -12
- package/dist/react.js +106 -10
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +97 -11
- package/dist/react.mjs.map +1 -1
- package/dist/types/README.md +7 -0
- package/dist/types/agency.d.ts +20 -0
- package/dist/types/agentSetup.d.ts +57 -0
- package/dist/types/api.d.ts +127 -0
- package/dist/types/appClient.d.ts +99 -0
- package/dist/types/appPlatform.d.ts +269 -0
- package/dist/types/appTokens.d.ts +125 -0
- package/dist/types/apps.d.ts +130 -0
- package/dist/types/audiences.d.ts +88 -0
- package/dist/types/calendar.d.ts +55 -0
- package/dist/types/campaigns.d.ts +61 -0
- package/dist/types/chat.d.ts +35 -0
- package/dist/types/cli.d.ts +14 -0
- package/dist/types/companies.d.ts +123 -0
- package/dist/types/contacts.d.ts +200 -0
- package/dist/types/copilot.d.ts +31 -0
- package/dist/types/core.d.ts +1052 -0
- package/dist/types/deals.d.ts +215 -0
- package/dist/types/enrich.d.ts +51 -0
- package/dist/types/fields.d.ts +84 -0
- package/dist/types/forms.d.ts +16 -0
- package/dist/types/http.d.ts +141 -0
- package/dist/types/inbox.d.ts +123 -0
- package/dist/types/index.d.ts +63 -0
- package/dist/types/intent.d.ts +196 -0
- package/dist/types/lists.d.ts +44 -0
- package/dist/types/mailboxes.d.ts +240 -0
- package/dist/types/marketplace.d.ts +62 -0
- package/dist/types/meetings.d.ts +70 -0
- package/dist/types/newsletter.d.ts +212 -0
- package/dist/types/notes.d.ts +57 -0
- package/dist/types/objects.d.ts +281 -0
- package/dist/types/pipelines.d.ts +135 -0
- package/dist/types/quotes.d.ts +143 -0
- package/dist/types/react.d.ts +978 -0
- package/dist/types/search.d.ts +99 -0
- package/dist/types/sequences.d.ts +255 -0
- package/dist/types/signals.d.ts +28 -0
- package/dist/types/skills.d.ts +176 -0
- package/dist/types/snippet.d.ts +24 -0
- package/dist/types/studio.d.ts +161 -0
- package/dist/types/tasks.d.ts +101 -0
- package/dist/types/types.d.ts +45 -0
- package/dist/types/utils.d.ts +21 -0
- package/dist/types/version.d.ts +10 -0
- package/dist/types/visitors.d.ts +29 -0
- package/dist/types/voice.d.ts +304 -0
- package/dist/types/webhooks.d.ts +71 -0
- package/dist/types/workflows.d.ts +229 -0
- package/docs/agents.md +748 -0
- package/docs/api/README.md +165 -0
- package/docs/api/accounts.d.ts +396 -0
- package/docs/api/accounts.md +644 -0
- package/docs/api/adCampaigns.d.ts +707 -0
- package/docs/api/adCampaigns.md +1091 -0
- package/docs/api/adCreatives.d.ts +996 -0
- package/docs/api/adCreatives.md +1708 -0
- package/docs/api/agency.d.ts +556 -0
- package/docs/api/agency.md +845 -0
- package/docs/api/agent.d.ts +330 -0
- package/docs/api/agent.md +514 -0
- package/docs/api/agents.d.ts +1622 -0
- package/docs/api/agents.md +2860 -0
- package/docs/api/aiInbox.d.ts +1984 -0
- package/docs/api/aiInbox.md +3490 -0
- package/docs/api/analytics.d.ts +1273 -0
- package/docs/api/analytics.md +2095 -0
- package/docs/api/apiKeys.d.ts +252 -0
- package/docs/api/apiKeys.md +318 -0
- package/docs/api/appDeployments.d.ts +236 -0
- package/docs/api/appDeployments.md +471 -0
- package/docs/api/appDomains.d.ts +171 -0
- package/docs/api/appDomains.md +281 -0
- package/docs/api/appLogs.d.ts +120 -0
- package/docs/api/appLogs.md +159 -0
- package/docs/api/appObjects.d.ts +415 -0
- package/docs/api/appObjects.md +568 -0
- package/docs/api/appPages.d.ts +557 -0
- package/docs/api/appPages.md +796 -0
- package/docs/api/appPlatformTokens.d.ts +123 -0
- package/docs/api/appPlatformTokens.md +172 -0
- package/docs/api/appointments.d.ts +2361 -0
- package/docs/api/appointments.md +3917 -0
- package/docs/api/apps.d.ts +822 -0
- package/docs/api/apps.md +1342 -0
- package/docs/api/assertUpsert.d.ts +286 -0
- package/docs/api/assertUpsert.md +370 -0
- package/docs/api/audienceSyncs.d.ts +259 -0
- package/docs/api/audienceSyncs.md +395 -0
- package/docs/api/brandKit.d.ts +686 -0
- package/docs/api/brandKit.md +1133 -0
- package/docs/api/bugReports.d.ts +181 -0
- package/docs/api/bugReports.md +268 -0
- package/docs/api/by-path.md +3260 -0
- package/docs/api/calendarInvites.d.ts +117 -0
- package/docs/api/calendarInvites.md +148 -0
- package/docs/api/campaignWorkflows.d.ts +152 -0
- package/docs/api/campaignWorkflows.md +200 -0
- package/docs/api/campaigns.d.ts +721 -0
- package/docs/api/campaigns.md +1236 -0
- package/docs/api/channels.d.ts +171 -0
- package/docs/api/channels.md +235 -0
- package/docs/api/cliCampaigns.d.ts +205 -0
- package/docs/api/cliCampaigns.md +256 -0
- package/docs/api/cliPipelines.d.ts +324 -0
- package/docs/api/cliPipelines.md +562 -0
- package/docs/api/clickHouse.d.ts +115 -0
- package/docs/api/clickHouse.md +138 -0
- package/docs/api/companies.d.ts +1636 -0
- package/docs/api/companies.md +2211 -0
- package/docs/api/companyIntelligence.d.ts +299 -0
- package/docs/api/companyIntelligence.md +488 -0
- package/docs/api/contacts.d.ts +2173 -0
- package/docs/api/contacts.md +3143 -0
- package/docs/api/content.d.ts +968 -0
- package/docs/api/content.md +1667 -0
- package/docs/api/contentGridSkills.d.ts +177 -0
- package/docs/api/contentGridSkills.md +271 -0
- package/docs/api/copilot.d.ts +1017 -0
- package/docs/api/copilot.md +1765 -0
- package/docs/api/crmSyncs.d.ts +215 -0
- package/docs/api/crmSyncs.md +301 -0
- package/docs/api/customerSuccess.d.ts +491 -0
- package/docs/api/customerSuccess.md +776 -0
- package/docs/api/deals.d.ts +1696 -0
- package/docs/api/deals.md +2432 -0
- package/docs/api/deliverability.d.ts +418 -0
- package/docs/api/deliverability.md +677 -0
- package/docs/api/desk.d.ts +1765 -0
- package/docs/api/desk.md +3007 -0
- package/docs/api/dialer.d.ts +1185 -0
- package/docs/api/dialer.md +2166 -0
- package/docs/api/dialerAnalytics.d.ts +187 -0
- package/docs/api/dialerAnalytics.md +257 -0
- package/docs/api/documents.d.ts +895 -0
- package/docs/api/documents.md +1440 -0
- package/docs/api/duplicates.d.ts +195 -0
- package/docs/api/duplicates.md +315 -0
- package/docs/api/eSign.d.ts +38 -0
- package/docs/api/eSign.md +54 -0
- package/docs/api/eSignature.d.ts +242 -0
- package/docs/api/eSignature.md +341 -0
- package/docs/api/enrichment.d.ts +3207 -0
- package/docs/api/enrichment.md +5225 -0
- package/docs/api/events.d.ts +115 -0
- package/docs/api/events.md +105 -0
- package/docs/api/fields.d.ts +482 -0
- package/docs/api/fields.md +566 -0
- package/docs/api/forms.d.ts +1012 -0
- package/docs/api/forms.md +1542 -0
- package/docs/api/gtmCampaigns.d.ts +662 -0
- package/docs/api/gtmCampaigns.md +1044 -0
- package/docs/api/gtmContext.d.ts +1187 -0
- package/docs/api/gtmContext.md +2112 -0
- package/docs/api/gtmDeliverability.d.ts +60 -0
- package/docs/api/gtmDeliverability.md +63 -0
- package/docs/api/gtmKnowledgeBase.d.ts +76 -0
- package/docs/api/gtmKnowledgeBase.md +91 -0
- package/docs/api/gtmLaunchHelpers.d.ts +123 -0
- package/docs/api/gtmLaunchHelpers.md +148 -0
- package/docs/api/gtmLibrary.d.ts +448 -0
- package/docs/api/gtmLibrary.md +780 -0
- package/docs/api/health.d.ts +39 -0
- package/docs/api/health.md +58 -0
- package/docs/api/imageLibrary.d.ts +341 -0
- package/docs/api/imageLibrary.md +569 -0
- package/docs/api/imports.d.ts +157 -0
- package/docs/api/imports.md +174 -0
- package/docs/api/inbox.d.ts +709 -0
- package/docs/api/inbox.md +1067 -0
- package/docs/api/install.d.ts +213 -0
- package/docs/api/install.md +317 -0
- package/docs/api/installedApps.d.ts +131 -0
- package/docs/api/installedApps.md +241 -0
- package/docs/api/integrationStatus.d.ts +142 -0
- package/docs/api/integrationStatus.md +205 -0
- package/docs/api/integrations.d.ts +2327 -0
- package/docs/api/integrations.md +3791 -0
- package/docs/api/intent.d.ts +482 -0
- package/docs/api/intent.md +858 -0
- package/docs/api/knowledge.d.ts +501 -0
- package/docs/api/knowledge.md +843 -0
- package/docs/api/knowledgeBase.d.ts +84 -0
- package/docs/api/knowledgeBase.md +96 -0
- package/docs/api/landingPages.d.ts +1411 -0
- package/docs/api/landingPages.md +2488 -0
- package/docs/api/leads.d.ts +133 -0
- package/docs/api/leads.md +180 -0
- package/docs/api/library.d.ts +217 -0
- package/docs/api/library.md +338 -0
- package/docs/api/linkedIn.d.ts +227 -0
- package/docs/api/linkedIn.md +289 -0
- package/docs/api/linkedInOutreach.d.ts +727 -0
- package/docs/api/linkedInOutreach.md +990 -0
- package/docs/api/lists.d.ts +1106 -0
- package/docs/api/lists.md +1609 -0
- package/docs/api/logs.d.ts +71 -0
- package/docs/api/logs.md +70 -0
- package/docs/api/mailboxes.d.ts +1050 -0
- package/docs/api/mailboxes.md +1690 -0
- package/docs/api/marketingIntelligence.d.ts +256 -0
- package/docs/api/marketingIntelligence.md +454 -0
- package/docs/api/marketplace.d.ts +3173 -0
- package/docs/api/marketplace.md +5953 -0
- package/docs/api/mcp.d.ts +69 -0
- package/docs/api/mcp.md +69 -0
- package/docs/api/me.d.ts +54 -0
- package/docs/api/me.md +56 -0
- package/docs/api/meetings.d.ts +539 -0
- package/docs/api/meetings.md +747 -0
- package/docs/api/newsletter.d.ts +1613 -0
- package/docs/api/newsletter.md +2746 -0
- package/docs/api/notes.d.ts +517 -0
- package/docs/api/notes.md +888 -0
- package/docs/api/notifications.d.ts +94 -0
- package/docs/api/notifications.md +105 -0
- package/docs/api/objects.d.ts +621 -0
- package/docs/api/objects.md +1098 -0
- package/docs/api/openSearch.d.ts +234 -0
- package/docs/api/openSearch.md +297 -0
- package/docs/api/ops.d.ts +299 -0
- package/docs/api/ops.md +339 -0
- package/docs/api/orgGovernance.d.ts +393 -0
- package/docs/api/orgGovernance.md +623 -0
- package/docs/api/orgVideos.d.ts +184 -0
- package/docs/api/orgVideos.md +252 -0
- package/docs/api/organizationSettings.d.ts +626 -0
- package/docs/api/organizationSettings.md +911 -0
- package/docs/api/phoneNumbers.d.ts +484 -0
- package/docs/api/phoneNumbers.md +777 -0
- package/docs/api/profile.d.ts +329 -0
- package/docs/api/profile.md +540 -0
- package/docs/api/programmaticPages.d.ts +400 -0
- package/docs/api/programmaticPages.md +626 -0
- package/docs/api/providerDomains.d.ts +866 -0
- package/docs/api/providerDomains.md +1446 -0
- package/docs/api/providerUsage.d.ts +129 -0
- package/docs/api/providerUsage.md +186 -0
- package/docs/api/public.d.ts +69 -0
- package/docs/api/public.md +78 -0
- package/docs/api/publicCopilot.d.ts +67 -0
- package/docs/api/publicCopilot.md +80 -0
- package/docs/api/publicSignals.d.ts +66 -0
- package/docs/api/publicSignals.md +71 -0
- package/docs/api/publicVisitors.d.ts +97 -0
- package/docs/api/publicVisitors.md +118 -0
- package/docs/api/quotes.d.ts +1564 -0
- package/docs/api/quotes.md +2553 -0
- package/docs/api/radar.d.ts +808 -0
- package/docs/api/radar.md +1431 -0
- package/docs/api/radarReports.d.ts +208 -0
- package/docs/api/radarReports.md +306 -0
- package/docs/api/recordRoles.d.ts +143 -0
- package/docs/api/recordRoles.md +175 -0
- package/docs/api/repos.d.ts +146 -0
- package/docs/api/repos.md +211 -0
- package/docs/api/research.d.ts +295 -0
- package/docs/api/research.md +534 -0
- package/docs/api/revenue.d.ts +402 -0
- package/docs/api/revenue.md +608 -0
- package/docs/api/revenueAnalytics.d.ts +147 -0
- package/docs/api/revenueAnalytics.md +212 -0
- package/docs/api/revenueLifecycle.d.ts +207 -0
- package/docs/api/revenueLifecycle.md +274 -0
- package/docs/api/revenueRecords.d.ts +372 -0
- package/docs/api/revenueRecords.md +563 -0
- package/docs/api/roles.d.ts +431 -0
- package/docs/api/roles.md +812 -0
- package/docs/api/salesCoach.d.ts +877 -0
- package/docs/api/salesCoach.md +1540 -0
- package/docs/api/sandbox.d.ts +210 -0
- package/docs/api/sandbox.md +380 -0
- package/docs/api/scans.d.ts +104 -0
- package/docs/api/scans.md +136 -0
- package/docs/api/scheduleBuy.d.ts +293 -0
- package/docs/api/scheduleBuy.md +431 -0
- package/docs/api/scraping.d.ts +266 -0
- package/docs/api/scraping.md +383 -0
- package/docs/api/sdrAnalytics.d.ts +138 -0
- package/docs/api/sdrAnalytics.md +246 -0
- package/docs/api/search.d.ts +598 -0
- package/docs/api/search.md +866 -0
- package/docs/api/seo.d.ts +447 -0
- package/docs/api/seo.md +660 -0
- package/docs/api/sequenceLifecycle.d.ts +439 -0
- package/docs/api/sequenceLifecycle.md +513 -0
- package/docs/api/sequences.d.ts +1936 -0
- package/docs/api/sequences.md +3232 -0
- package/docs/api/settings.d.ts +448 -0
- package/docs/api/settings.md +731 -0
- package/docs/api/signals.d.ts +1441 -0
- package/docs/api/signals.md +2526 -0
- package/docs/api/signatures.d.ts +719 -0
- package/docs/api/signatures.md +1247 -0
- package/docs/api/skills.d.ts +230 -0
- package/docs/api/skills.md +466 -0
- package/docs/api/snippet.d.ts +85 -0
- package/docs/api/snippet.md +106 -0
- package/docs/api/socialPublishing.d.ts +824 -0
- package/docs/api/socialPublishing.md +1245 -0
- package/docs/api/studioDocuments.d.ts +244 -0
- package/docs/api/studioDocuments.md +348 -0
- package/docs/api/support.d.ts +90 -0
- package/docs/api/support.md +76 -0
- package/docs/api/suppressions.d.ts +241 -0
- package/docs/api/suppressions.md +343 -0
- package/docs/api/surveys.d.ts +847 -0
- package/docs/api/surveys.md +1223 -0
- package/docs/api/tasks.d.ts +813 -0
- package/docs/api/tasks.md +1344 -0
- package/docs/api/teamMembers.d.ts +668 -0
- package/docs/api/teamMembers.md +1040 -0
- package/docs/api/teams.d.ts +784 -0
- package/docs/api/teams.md +1395 -0
- package/docs/api/usage.d.ts +277 -0
- package/docs/api/usage.md +389 -0
- package/docs/api/visitors.d.ts +690 -0
- package/docs/api/visitors.md +1075 -0
- package/docs/api/voice.d.ts +4661 -0
- package/docs/api/voice.md +7905 -0
- package/docs/api/webAnalytics.d.ts +964 -0
- package/docs/api/webAnalytics.md +1452 -0
- package/docs/api/webChat.d.ts +1704 -0
- package/docs/api/webChat.md +2048 -0
- package/docs/api/webhooks.d.ts +251 -0
- package/docs/api/webhooks.md +386 -0
- package/docs/api/websiteEditor.d.ts +324 -0
- package/docs/api/websiteEditor.md +517 -0
- package/docs/api/work.d.ts +2298 -0
- package/docs/api/work.md +3096 -0
- package/docs/api/workbench.d.ts +2962 -0
- package/docs/api/workbench.md +4884 -0
- package/docs/api/workflows.d.ts +1218 -0
- package/docs/api/workflows.md +2302 -0
- package/docs/sdk-clients.md +4339 -0
- package/package.json +10 -3
|
@@ -0,0 +1,4661 @@
|
|
|
1
|
+
/* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Types for `g8.api.voice` (Voice): 187 operations.
|
|
5
|
+
*
|
|
6
|
+
* For reading. In code, import from the package instead:
|
|
7
|
+
* import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
|
|
8
|
+
* type In = ApiInput<"attach_skills_to_agent_voice_agents__agent_id__skills_post">;
|
|
9
|
+
*
|
|
10
|
+
* Reference with examples: voice.md
|
|
11
|
+
*/
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
|
|
14
|
+
/** `g8.api.voice.<member>` -> the operationId it calls. */
|
|
15
|
+
export interface VoiceMembers {
|
|
16
|
+
attachSkillsToAgent: "attach_skills_to_agent_voice_agents__agent_id__skills_post";
|
|
17
|
+
batchEmailAgent: "batch_email_agent_voice_email_agent_batch_post";
|
|
18
|
+
bulkDeleteVideoRecordings: "bulk_delete_video_recordings_voice_video_recordings_delete";
|
|
19
|
+
calculateWorksheet: "calculate_worksheet_voice_worksheets_calculate_post";
|
|
20
|
+
checkCollectionFileExists: "check_collection_file_exists_voice_collections__collection_id__files_exists_get";
|
|
21
|
+
claimInboundCall: "claim_inbound_call_voice_inbound_calls__room_name__claim_post";
|
|
22
|
+
classifyTopics: "classify_topics_voice_topics_classify_post";
|
|
23
|
+
clearCollectionVectors: "clear_collection_vectors_voice_collections__collection_id__vectors_delete";
|
|
24
|
+
cloneAgent: "clone_agent_voice_agents_clone_post";
|
|
25
|
+
cloneVoice: "clone_voice_voice_voice_library_voices_post";
|
|
26
|
+
composeEmail: "compose_email_voice_email_agent_compose_post";
|
|
27
|
+
createAgentTestCase: "create_agent_test_case_voice_agents__agent_id__test_cases_post";
|
|
28
|
+
createCollection: "create_collection_voice_collections_post";
|
|
29
|
+
createCollectionFolder: "create_collection_folder_voice_collections__collection_id__folders_post";
|
|
30
|
+
createCompanyKnowledge: "create_company_knowledge_voice_company_knowledge_post";
|
|
31
|
+
createDialerSession: "create_dialer_session_voice_dialer_sessions_post";
|
|
32
|
+
createInboundRoute: "create_inbound_route_voice_inbound_routing_rules_post";
|
|
33
|
+
createMcpServer: "create_mcp_server_voice_mcp_servers_post";
|
|
34
|
+
createOnboardingThread: "create_onboarding_thread_voice_campaigns_onboarding_threads_post";
|
|
35
|
+
createPhoneDirectoryEntry: "create_phone_directory_entry_voice_phone_directory_post";
|
|
36
|
+
createScrapeSource: "create_scrape_source_voice_collections__collection_id__scrape_sources_post";
|
|
37
|
+
createTwin: "create_twin_voice_twins_post";
|
|
38
|
+
createVoiceAgent: "create_voice_agent_voice_agents_post";
|
|
39
|
+
createVoiceDisposition: "create_voice_disposition_voice_dispositions_post";
|
|
40
|
+
declineDialerInboundCall: "decline_dialer_inbound_call_voice_inbound_calls_dialer__call_id__decline_post";
|
|
41
|
+
declineInboundCall: "decline_inbound_call_voice_inbound_calls_decline_post";
|
|
42
|
+
deleteAgentDocument: "delete_agent_document_voice_agent_documents__document_id__delete";
|
|
43
|
+
deleteAgentTestCase: "delete_agent_test_case_voice_agents__agent_id__test_cases__test_case_id__delete";
|
|
44
|
+
deleteAllCollectionFiles: "delete_all_collection_files_voice_collections__collection_id__files_all_delete";
|
|
45
|
+
deleteBusinessHours: "delete_business_hours_voice_inbound_routing_business_hours_delete";
|
|
46
|
+
deleteChatAgentConversation: "delete_chat_agent_conversation_voice_chat_agent_conversations__chat_id__delete";
|
|
47
|
+
deleteCollection: "delete_collection_voice_collections__collection_id__delete";
|
|
48
|
+
deleteCollectionFile: "delete_collection_file_voice_collections__collection_id__files_delete";
|
|
49
|
+
deleteCollectionFolder: "delete_collection_folder_voice_collections__collection_id__folders_delete";
|
|
50
|
+
deleteInboundRoute: "delete_inbound_route_voice_inbound_routing_rules__route_id__delete";
|
|
51
|
+
deleteJob: "delete_job_voice_jobs__job_id__delete";
|
|
52
|
+
deleteKnowledgeBaseFile: "delete_knowledge_base_file_voice_knowledge_base_files_delete";
|
|
53
|
+
deleteMcpServer: "delete_mcp_server_voice_mcp_servers__mcp_server_id__delete";
|
|
54
|
+
deleteOnboardingThread: "delete_onboarding_thread_voice_campaigns_onboarding_threads_delete";
|
|
55
|
+
deletePhoneDirectoryEntry: "delete_phone_directory_entry_voice_phone_directory__entry_id__delete";
|
|
56
|
+
deleteScrapeSource: "delete_scrape_source_voice_collections__collection_id__scrape_sources__source_id__delete";
|
|
57
|
+
deleteTwin: "delete_twin_voice_twins__agent_id__delete";
|
|
58
|
+
deleteVideoRecording: "delete_video_recording_voice_video_recordings__video_id__delete";
|
|
59
|
+
deleteVoiceAgent: "delete_voice_agent_voice_agents__agent_id__delete";
|
|
60
|
+
detachSkillFromAgent: "detach_skill_from_agent_voice_agents__agent_id__skills__action_id__delete";
|
|
61
|
+
downloadCallRecording: "download_call_recording_voice_calls__call_id__recording_get";
|
|
62
|
+
downloadHistoricalCallRecording: "download_historical_call_recording_voice_calls__call_id__historical_recording_get";
|
|
63
|
+
downloadKnowledgeBaseFile: "download_knowledge_base_file_voice_knowledge_base_files_download_get";
|
|
64
|
+
downloadTwinFile: "download_twin_file_voice_twins_files_download_get";
|
|
65
|
+
draftEmailReply: "draft_email_reply_voice_email_agent_draft_reply_post";
|
|
66
|
+
enhanceCampaignEmail: "enhance_campaign_email_voice_campaigns_email_enhancements_post";
|
|
67
|
+
ensureReceptionistAgent: "ensure_receptionist_agent_voice_agents_receptionist_post";
|
|
68
|
+
estimateCampaignEmail: "estimate_campaign_email_voice_campaigns_email_estimate_post";
|
|
69
|
+
exportDialerReport: "export_dialer_report_dialer_parallel_calls_analytics_dialer_report_export_get";
|
|
70
|
+
extractTwinLinkedinProfile: "extract_twin_linkedin_profile_voice_twins_extract_linkedin_post";
|
|
71
|
+
generateCallScript: "generate_call_script_voice_call_scripts_generate_post";
|
|
72
|
+
generateCampaignCallScript: "generate_campaign_call_script_voice_campaigns_call_scripts_post";
|
|
73
|
+
generateCampaignCallScripts: "generate_campaign_call_scripts_voice_campaigns_call_scripts_get";
|
|
74
|
+
generateCampaignEmail: "generate_campaign_email_voice_campaigns_emails_post";
|
|
75
|
+
generateCampaignEmails: "generate_campaign_emails_voice_campaigns_email_templates_get";
|
|
76
|
+
generateCampaignTemplate: "generate_campaign_template_voice_campaigns_templates_get";
|
|
77
|
+
generateEmailSpintax: "generate_email_spintax_voice_campaigns_email_spintax_post";
|
|
78
|
+
generateIcpQueries: "generate_icp_queries_voice_icp_queries_post";
|
|
79
|
+
generateLinkedinMessage: "generate_linkedin_message_voice_campaigns_linkedin_messages_post";
|
|
80
|
+
generatePersonalisedVoicemail: "generate_personalised_voicemail_voice_campaigns_voicemails_post";
|
|
81
|
+
getAgentActivity: "get_agent_activity_voice_agents__agent_id__activity_get";
|
|
82
|
+
getAgentDefaults: "get_agent_defaults_voice_agents_defaults_get";
|
|
83
|
+
getAgentGlobalSettings: "get_agent_global_settings_voice_agents_global_settings_get";
|
|
84
|
+
getAgentSkillStats: "get_agent_skill_stats_voice_agents__agent_id__skill_stats_get";
|
|
85
|
+
getAgentTestSuiteStatus: "get_agent_test_suite_status_voice_agents__agent_id__test_suite_status_get";
|
|
86
|
+
getBusinessHours: "get_business_hours_voice_inbound_routing_business_hours_get";
|
|
87
|
+
getCachedMcpTools: "get_cached_mcp_tools_voice_mcp_servers__mcp_server_id__tools_cached_get";
|
|
88
|
+
getCallArtifacts: "get_call_artifacts_voice_calls__call_id__artifacts_get";
|
|
89
|
+
getCallGrading: "get_call_grading_voice_dialer_calls__room_name__grading_get";
|
|
90
|
+
getCallTranscript: "get_call_transcript_voice_dialer_calls__room_name__transcript_get";
|
|
91
|
+
getChatAgentHistory: "get_chat_agent_history_voice_chat_agent_history_post";
|
|
92
|
+
getCollection: "get_collection_voice_collections__collection_id__get";
|
|
93
|
+
getCollectionFileDownloadUrl: "get_collection_file_download_url_voice_collections__collection_id__files_download_url_get";
|
|
94
|
+
getCollectionStats: "get_collection_stats_voice_collections__collection_id__stats_get";
|
|
95
|
+
getCollectionVectorStatus: "get_collection_vector_status_voice_collections__collection_id__vector_status_get";
|
|
96
|
+
getCompanyKnowledge: "get_company_knowledge_voice_company_knowledge_get";
|
|
97
|
+
getDialerSession: "get_dialer_session_dialer_sessions__session_id__get";
|
|
98
|
+
getDialerSettings: "get_dialer_settings_dialer_settings__user_email__get";
|
|
99
|
+
getDialerStats: "get_dialer_stats_voice_dialer_stats_get";
|
|
100
|
+
getDispositionUsage: "get_disposition_usage_dialer_dispositions__disposition_id__usage_get";
|
|
101
|
+
getFormattedCompanyKnowledge: "get_formatted_company_knowledge_voice_company_knowledge_formatted_get";
|
|
102
|
+
getJob: "get_job_voice_jobs__job_id__get";
|
|
103
|
+
getOnboardingThread: "get_onboarding_thread_voice_campaigns_onboarding_threads__thread_id__get";
|
|
104
|
+
getPastConversation: "get_past_conversation_voice_campaigns_past_conversation_get";
|
|
105
|
+
getTwin: "get_twin_voice_twins__agent_id__get";
|
|
106
|
+
getVideoRecording: "get_video_recording_voice_video_recordings__video_id__get";
|
|
107
|
+
getVideoRecordingUrl: "get_video_recording_url_voice_video_recordings__video_id__url_get";
|
|
108
|
+
getVoiceAgent: "get_voice_agent_voice_agents__agent_id__get";
|
|
109
|
+
listAgentDocuments: "list_agent_documents_voice_agents__agent_id__documents_get";
|
|
110
|
+
listAgentPhoneNumbers: "list_agent_phone_numbers_voice_agent_phone_numbers_get";
|
|
111
|
+
listAgentSkills: "list_agent_skills_voice_agents__agent_id__skills_get";
|
|
112
|
+
listAgentTemplates: "list_agent_templates_voice_agent_templates_get";
|
|
113
|
+
listAgentTestCases: "list_agent_test_cases_voice_agents__agent_id__test_cases_get";
|
|
114
|
+
listAgentTestRuns: "list_agent_test_runs_voice_agents__agent_id__test_runs_get";
|
|
115
|
+
listAllCollectionFiles: "list_all_collection_files_voice_collections_files_get";
|
|
116
|
+
listCallResultCampaigns: "list_call_result_campaigns_voice_call_results_campaigns_get";
|
|
117
|
+
listCallsForContact: "list_calls_for_contact_voice_dialer_calls_get";
|
|
118
|
+
listCampaignEmailModels: "list_campaign_email_models_voice_campaigns_email_models_get";
|
|
119
|
+
listChatAgentConversations: "list_chat_agent_conversations_voice_chat_agent_conversations_post";
|
|
120
|
+
listClonedVoices: "list_cloned_voices_voice_voice_library_voices_get";
|
|
121
|
+
listCollections: "list_collections_voice_collections_get";
|
|
122
|
+
listDepartmentColleagues: "list_department_colleagues_voice_phone_directory_departments__department__get";
|
|
123
|
+
listDialerAgents: "list_dialer_agents_voice_dialer_agents_get";
|
|
124
|
+
listDialerNumbers: "list_dialer_numbers_voice_dialer_numbers_get";
|
|
125
|
+
listDialerSessions: "list_dialer_sessions_voice_dialer_sessions_get";
|
|
126
|
+
listInboundCallResults: "list_inbound_call_results_voice_call_results_inbound_get";
|
|
127
|
+
listInboundRoutes: "list_inbound_routes_voice_inbound_routing_rules_get";
|
|
128
|
+
listKnowledgeBaseFiles: "list_knowledge_base_files_voice_knowledge_base_files_get";
|
|
129
|
+
listMcpServerTools: "list_mcp_server_tools_voice_mcp_servers__mcp_server_id__tools_get";
|
|
130
|
+
listMissedCallbacks: "list_missed_callbacks_voice_dialer_missed_callbacks_get";
|
|
131
|
+
listOnboardingThreads: "list_onboarding_threads_voice_campaigns_onboarding_threads_get";
|
|
132
|
+
listPastConversations: "list_past_conversations_voice_campaigns_past_conversations_get";
|
|
133
|
+
listPendingInboundCalls: "list_pending_inbound_calls_voice_inbound_calls_pending_get";
|
|
134
|
+
listPhoneDirectory: "list_phone_directory_voice_phone_directory_get";
|
|
135
|
+
listPresetVoices: "list_preset_voices_voice_voice_library_presets_get";
|
|
136
|
+
listReachableColleagues: "list_reachable_colleagues_voice_phone_directory_reachable_get";
|
|
137
|
+
listScrapeSources: "list_scrape_sources_voice_collections__collection_id__scrape_sources_get";
|
|
138
|
+
listTwins: "list_twins_voice_twins_get";
|
|
139
|
+
listVideoRecordings: "list_video_recordings_voice_video_recordings_get";
|
|
140
|
+
listVoiceAgents: "list_voice_agents_voice_agents_get";
|
|
141
|
+
listVoiceDispositions: "list_voice_dispositions_voice_dispositions_get";
|
|
142
|
+
listVoicemails: "list_voicemails_voice_voicemails_get";
|
|
143
|
+
lookupSessionCalls: "lookup_session_calls_dialer_parallel_calls_sessions__session_id__calls_post";
|
|
144
|
+
markAllVoicemailsRead: "mark_all_voicemails_read_voice_voicemails_read_all_patch";
|
|
145
|
+
markVoicemailRead: "mark_voicemail_read_voice_voicemails__voicemail_id__read_patch";
|
|
146
|
+
pasteTextIntoCollection: "paste_text_into_collection_voice_collections__collection_id__files_paste_text_post";
|
|
147
|
+
pauseDialerSession: "pause_dialer_session_dialer_sessions__session_id__pause_post";
|
|
148
|
+
reindexCollection: "reindex_collection_voice_collections__collection_id__reindex_post";
|
|
149
|
+
renameChatAgentConversation: "rename_chat_agent_conversation_voice_chat_agent_conversations__chat_id__name_put";
|
|
150
|
+
renameCollectionFile: "rename_collection_file_voice_collections__collection_id__files_rename_put";
|
|
151
|
+
renameKnowledgeBaseFile: "rename_knowledge_base_file_voice_knowledge_base_files_rename_put";
|
|
152
|
+
researchBusinessData: "research_business_data_voice_research_business_data_get";
|
|
153
|
+
researchCompany: "research_company_voice_research_company_post";
|
|
154
|
+
researchCompetitors: "research_competitors_voice_research_competitors_get";
|
|
155
|
+
researchFaq: "research_faq_voice_research_faq_get";
|
|
156
|
+
researchKeywords: "research_keywords_voice_research_keywords_get";
|
|
157
|
+
researchOrgChart: "research_org_chart_voice_research_org_chart_post";
|
|
158
|
+
researchProspectCompany: "research_prospect_company_voice_research_prospect_company_get";
|
|
159
|
+
researchProspectData: "research_prospect_data_voice_research_prospect_data_post";
|
|
160
|
+
researchProspectProfile: "research_prospect_profile_voice_research_prospect_profile_post";
|
|
161
|
+
resumeDialerSession: "resume_dialer_session_voice_dialer_sessions__session_id__resume_post";
|
|
162
|
+
runAgentTest: "run_agent_test_voice_agents__agent_id__test_post";
|
|
163
|
+
runAllAgentTests: "run_all_agent_tests_voice_agents__agent_id__test_run_all_post";
|
|
164
|
+
runOnboardingThreadAction: "run_onboarding_thread_action_voice_campaigns_onboarding_threads_actions_post";
|
|
165
|
+
runScrapeSource: "run_scrape_source_voice_collections__collection_id__scrape_sources__source_id__run_post";
|
|
166
|
+
saveAgentAsTemplate: "save_agent_as_template_voice_agents__agent_id__save_as_template_post";
|
|
167
|
+
searchAgentDocuments: "search_agent_documents_voice_agents__agent_id__documents_search_post";
|
|
168
|
+
searchCallResults: "search_call_results_voice_call_results_search_post";
|
|
169
|
+
searchChats: "search_chats_voice_chats_search_post";
|
|
170
|
+
searchCollections: "search_collections_voice_collections_search_post";
|
|
171
|
+
sendChatAgentMessage: "send_chat_agent_message_voice_chat_agent_messages_post";
|
|
172
|
+
sendOnboardingMessage: "send_onboarding_message_voice_campaigns_onboarding_messages_post";
|
|
173
|
+
sendReceptionistMessage: "send_receptionist_message_voice_receptionist_messages_post";
|
|
174
|
+
setAgentGlobalSettings: "set_agent_global_settings_voice_agents_global_settings_post";
|
|
175
|
+
setOnboardingVoice: "set_onboarding_voice_voice_voice_library_onboarding_voice_post";
|
|
176
|
+
startVoiceCall: "start_voice_call_voice_calls_post";
|
|
177
|
+
stopDialerSession: "stop_dialer_session_dialer_sessions__session_id__stop_post";
|
|
178
|
+
storeCampaignMemory: "store_campaign_memory_voice_campaigns_memory_post";
|
|
179
|
+
syncCollection: "sync_collection_voice_collections__collection_id__sync_post";
|
|
180
|
+
testMcpServer: "test_mcp_server_voice_mcp_servers__mcp_server_id__test_post";
|
|
181
|
+
toggleReceptionistAgent: "toggle_receptionist_agent_voice_agents_receptionist_patch";
|
|
182
|
+
transcribeCallFlowExample: "transcribe_call_flow_example_voice_call_flow_examples_transcribe_post";
|
|
183
|
+
transferChatAgentConversation: "transfer_chat_agent_conversation_voice_chat_agent_conversations__chat_id__transfer_to_human_post";
|
|
184
|
+
updateAgentMemory: "update_agent_memory_voice_agents__agent_id__memory_post";
|
|
185
|
+
updateAgentTestCase: "update_agent_test_case_voice_agents__agent_id__test_cases__test_case_id__put";
|
|
186
|
+
updateCollection: "update_collection_voice_collections__collection_id__put";
|
|
187
|
+
updateCompanyKnowledge: "update_company_knowledge_voice_company_knowledge_put";
|
|
188
|
+
updateDialerSessionStatus: "update_dialer_session_status_voice_dialer_sessions__session_id__status_patch";
|
|
189
|
+
updateDialerSettings: "update_dialer_settings_dialer_settings_put";
|
|
190
|
+
updateInboundRoute: "update_inbound_route_voice_inbound_routing_rules__route_id__patch";
|
|
191
|
+
updateMcpServer: "update_mcp_server_voice_mcp_servers__mcp_server_id__put";
|
|
192
|
+
updatePhoneDirectoryEntry: "update_phone_directory_entry_voice_phone_directory__entry_id__put";
|
|
193
|
+
updateScrapeSource: "update_scrape_source_voice_collections__collection_id__scrape_sources__source_id__patch";
|
|
194
|
+
updateTwin: "update_twin_voice_twins__agent_id__put";
|
|
195
|
+
updateVoiceAgent: "update_voice_agent_voice_agents__agent_id__put";
|
|
196
|
+
updateVoiceDisposition: "update_voice_disposition_voice_dispositions__disposition_id__patch";
|
|
197
|
+
uploadAgentDocuments: "upload_agent_documents_voice_agents__agent_id__documents_upload_post";
|
|
198
|
+
uploadCollectionFile: "upload_collection_file_voice_collections__collection_id__files_upload_post";
|
|
199
|
+
uploadCollectionFiles: "upload_collection_files_voice_collections__collection_id__files_upload_multiple_post";
|
|
200
|
+
uploadKnowledgeBaseFile: "upload_knowledge_base_file_voice_knowledge_base_files_upload_post";
|
|
201
|
+
uploadVideoRecording: "upload_video_recording_voice_video_recordings_upload_post";
|
|
202
|
+
upsertBusinessHours: "upsert_business_hours_voice_inbound_routing_business_hours_put";
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/** Input and output of every `g8.api.voice` operation, keyed by operationId. */
|
|
206
|
+
export interface VoiceOperations {
|
|
207
|
+
/**
|
|
208
|
+
* POST /voice/agents/{agent_id}/skills
|
|
209
|
+
* Give an agent skills it can use
|
|
210
|
+
* tier: write · scope: voice:write
|
|
211
|
+
*/
|
|
212
|
+
attach_skills_to_agent_voice_agents__agent_id__skills_post: {
|
|
213
|
+
input: {
|
|
214
|
+
path: {
|
|
215
|
+
/** The agent to equip. */
|
|
216
|
+
agent_id: string;
|
|
217
|
+
};
|
|
218
|
+
headers?: {
|
|
219
|
+
"X-Target-Org-Id"?: string | null;
|
|
220
|
+
};
|
|
221
|
+
body: Body_attach_skills_to_agent_voice_agents__agent_id__skills_post;
|
|
222
|
+
};
|
|
223
|
+
output: ApiResponse_VoicePayload_;
|
|
224
|
+
};
|
|
225
|
+
/**
|
|
226
|
+
* POST /voice/email-agent/batch
|
|
227
|
+
* Draft many emails in one call
|
|
228
|
+
* tier: billable · scope: voice:run
|
|
229
|
+
*/
|
|
230
|
+
batch_email_agent_voice_email_agent_batch_post: {
|
|
231
|
+
input: {
|
|
232
|
+
headers?: {
|
|
233
|
+
"X-Target-Org-Id"?: string | null;
|
|
234
|
+
};
|
|
235
|
+
body: BatchEmailProcessing;
|
|
236
|
+
};
|
|
237
|
+
output: ApiResponse_VoicePayload_;
|
|
238
|
+
};
|
|
239
|
+
/**
|
|
240
|
+
* DELETE /voice/video-recordings
|
|
241
|
+
* Delete every recording for one subject
|
|
242
|
+
* tier: destructive · scope: voice:delete
|
|
243
|
+
*/
|
|
244
|
+
bulk_delete_video_recordings_voice_video_recordings_delete: {
|
|
245
|
+
input: {
|
|
246
|
+
query: {
|
|
247
|
+
/** Whose recordings to delete. REQUIRED - there is no org-wide delete by omission. */
|
|
248
|
+
user_id: string;
|
|
249
|
+
};
|
|
250
|
+
headers?: {
|
|
251
|
+
"X-Target-Org-Id"?: string | null;
|
|
252
|
+
};
|
|
253
|
+
};
|
|
254
|
+
output: ApiResponse_VoicePayload_;
|
|
255
|
+
};
|
|
256
|
+
/**
|
|
257
|
+
* POST /voice/worksheets/calculate
|
|
258
|
+
* Fill worksheet cells with AI answers
|
|
259
|
+
* tier: billable · scope: voice:run
|
|
260
|
+
*/
|
|
261
|
+
calculate_worksheet_voice_worksheets_calculate_post: {
|
|
262
|
+
input: {
|
|
263
|
+
query?: {
|
|
264
|
+
/** True returns a job id immediately (202) instead of waiting. Poll `GET /voice/jobs/{job_id}` for the result. */
|
|
265
|
+
run_async?: boolean;
|
|
266
|
+
};
|
|
267
|
+
headers?: {
|
|
268
|
+
"X-Target-Org-Id"?: string | null;
|
|
269
|
+
};
|
|
270
|
+
body: Record<string, unknown>;
|
|
271
|
+
};
|
|
272
|
+
output: ApiResponse_VoicePayload_;
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* GET /voice/collections/{collection_id}/files/exists
|
|
276
|
+
* Check whether a file is already in a collection
|
|
277
|
+
* tier: read · scope: voice:read
|
|
278
|
+
*/
|
|
279
|
+
check_collection_file_exists_voice_collections__collection_id__files_exists_get: {
|
|
280
|
+
input: {
|
|
281
|
+
path: {
|
|
282
|
+
/** Collection id. */
|
|
283
|
+
collection_id: number;
|
|
284
|
+
};
|
|
285
|
+
query: {
|
|
286
|
+
/** File name to look for. */
|
|
287
|
+
filename: string;
|
|
288
|
+
/** Folder inside the collection. */
|
|
289
|
+
folder_path?: string;
|
|
290
|
+
};
|
|
291
|
+
headers?: {
|
|
292
|
+
"X-Target-Org-Id"?: string | null;
|
|
293
|
+
};
|
|
294
|
+
};
|
|
295
|
+
output: ApiResponse_VoicePayload_;
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* POST /voice/inbound-calls/{room_name}/claim
|
|
299
|
+
* Claim a ringing inbound call for one rep
|
|
300
|
+
* tier: external · scope: voice:run
|
|
301
|
+
*/
|
|
302
|
+
claim_inbound_call_voice_inbound_calls__room_name__claim_post: {
|
|
303
|
+
input: {
|
|
304
|
+
path: {
|
|
305
|
+
/** The ringing call's room name. */
|
|
306
|
+
room_name: string;
|
|
307
|
+
};
|
|
308
|
+
query: {
|
|
309
|
+
/** The rep taking it. */
|
|
310
|
+
sdr_email: string;
|
|
311
|
+
};
|
|
312
|
+
headers?: {
|
|
313
|
+
"X-Target-Org-Id"?: string | null;
|
|
314
|
+
};
|
|
315
|
+
};
|
|
316
|
+
output: ApiResponse_VoicePayload_;
|
|
317
|
+
};
|
|
318
|
+
/**
|
|
319
|
+
* POST /voice/topics/classify
|
|
320
|
+
* Classify URLs into intent topics
|
|
321
|
+
* tier: billable · scope: voice:run
|
|
322
|
+
*/
|
|
323
|
+
classify_topics_voice_topics_classify_post: {
|
|
324
|
+
input: {
|
|
325
|
+
query?: {
|
|
326
|
+
/** Defaults TRUE here, matching voice: a batch of URLs is slow enough that a synchronous call usually times out. Poll `GET /voice/jobs/{job_id}`. */
|
|
327
|
+
run_async?: boolean;
|
|
328
|
+
};
|
|
329
|
+
headers?: {
|
|
330
|
+
"X-Target-Org-Id"?: string | null;
|
|
331
|
+
};
|
|
332
|
+
body: Record<string, unknown>;
|
|
333
|
+
};
|
|
334
|
+
output: ApiResponse_VoicePayload_;
|
|
335
|
+
};
|
|
336
|
+
/**
|
|
337
|
+
* DELETE /voice/collections/{collection_id}/vectors
|
|
338
|
+
* Clear a collection's vectors, keeping the files
|
|
339
|
+
* tier: destructive · scope: voice:delete
|
|
340
|
+
*/
|
|
341
|
+
clear_collection_vectors_voice_collections__collection_id__vectors_delete: {
|
|
342
|
+
input: {
|
|
343
|
+
path: {
|
|
344
|
+
/** Collection id. */
|
|
345
|
+
collection_id: number;
|
|
346
|
+
};
|
|
347
|
+
headers?: {
|
|
348
|
+
"X-Target-Org-Id"?: string | null;
|
|
349
|
+
};
|
|
350
|
+
};
|
|
351
|
+
output: ApiResponse_VoicePayload_;
|
|
352
|
+
};
|
|
353
|
+
/**
|
|
354
|
+
* POST /voice/agents/clone
|
|
355
|
+
* Clone an agent, or instantiate one from a template
|
|
356
|
+
* tier: write · scope: voice:write
|
|
357
|
+
*/
|
|
358
|
+
clone_agent_voice_agents_clone_post: {
|
|
359
|
+
input: {
|
|
360
|
+
headers?: {
|
|
361
|
+
"X-Target-Org-Id"?: string | null;
|
|
362
|
+
};
|
|
363
|
+
body: Body_clone_agent_voice_agents_clone_post;
|
|
364
|
+
};
|
|
365
|
+
output: ApiResponse_VoicePayload_;
|
|
366
|
+
};
|
|
367
|
+
/**
|
|
368
|
+
* POST /voice/voice-library/voices
|
|
369
|
+
* Clone a voice from a short audio sample
|
|
370
|
+
* tier: billable · scope: voice:run
|
|
371
|
+
*/
|
|
372
|
+
clone_voice_voice_voice_library_voices_post: {
|
|
373
|
+
input: {
|
|
374
|
+
headers?: {
|
|
375
|
+
"X-Target-Org-Id"?: string | null;
|
|
376
|
+
};
|
|
377
|
+
};
|
|
378
|
+
output: ApiResponse_VoicePayload_;
|
|
379
|
+
};
|
|
380
|
+
/**
|
|
381
|
+
* POST /voice/email-agent/compose
|
|
382
|
+
* Compose an email with the email agent
|
|
383
|
+
* tier: billable · scope: voice:run
|
|
384
|
+
*/
|
|
385
|
+
compose_email_voice_email_agent_compose_post: {
|
|
386
|
+
input: {
|
|
387
|
+
headers?: {
|
|
388
|
+
"X-Target-Org-Id"?: string | null;
|
|
389
|
+
};
|
|
390
|
+
body: Record<string, unknown>;
|
|
391
|
+
};
|
|
392
|
+
output: ApiResponse_VoicePayload_;
|
|
393
|
+
};
|
|
394
|
+
/**
|
|
395
|
+
* POST /voice/agents/{agent_id}/test-cases
|
|
396
|
+
* Save an evaluation case for an agent
|
|
397
|
+
* tier: write · scope: voice:write
|
|
398
|
+
*/
|
|
399
|
+
create_agent_test_case_voice_agents__agent_id__test_cases_post: {
|
|
400
|
+
input: {
|
|
401
|
+
path: {
|
|
402
|
+
/** Voice agent id. */
|
|
403
|
+
agent_id: string;
|
|
404
|
+
};
|
|
405
|
+
headers?: {
|
|
406
|
+
"X-Target-Org-Id"?: string | null;
|
|
407
|
+
};
|
|
408
|
+
body: AgentTestCaseCreate;
|
|
409
|
+
};
|
|
410
|
+
output: ApiResponse_VoicePayload_;
|
|
411
|
+
};
|
|
412
|
+
/**
|
|
413
|
+
* POST /voice/collections
|
|
414
|
+
* Create a knowledge collection
|
|
415
|
+
* tier: write · scope: voice:write
|
|
416
|
+
*/
|
|
417
|
+
create_collection_voice_collections_post: {
|
|
418
|
+
input: {
|
|
419
|
+
headers?: {
|
|
420
|
+
"X-Target-Org-Id"?: string | null;
|
|
421
|
+
};
|
|
422
|
+
body: CollectionCreateRequest;
|
|
423
|
+
};
|
|
424
|
+
output: ApiResponse_VoicePayload_;
|
|
425
|
+
};
|
|
426
|
+
/**
|
|
427
|
+
* POST /voice/collections/{collection_id}/folders
|
|
428
|
+
* Create a folder in a collection
|
|
429
|
+
* tier: write · scope: voice:write
|
|
430
|
+
*/
|
|
431
|
+
create_collection_folder_voice_collections__collection_id__folders_post: {
|
|
432
|
+
input: {
|
|
433
|
+
path: {
|
|
434
|
+
/** Collection id. */
|
|
435
|
+
collection_id: number;
|
|
436
|
+
};
|
|
437
|
+
headers?: {
|
|
438
|
+
"X-Target-Org-Id"?: string | null;
|
|
439
|
+
};
|
|
440
|
+
body: CollectionFolder;
|
|
441
|
+
};
|
|
442
|
+
output: ApiResponse_VoicePayload_;
|
|
443
|
+
};
|
|
444
|
+
/**
|
|
445
|
+
* POST /voice/company-knowledge
|
|
446
|
+
* Create the organisation's company knowledge
|
|
447
|
+
* tier: write · scope: voice:write
|
|
448
|
+
*/
|
|
449
|
+
create_company_knowledge_voice_company_knowledge_post: {
|
|
450
|
+
input: {
|
|
451
|
+
headers?: {
|
|
452
|
+
"X-Target-Org-Id"?: string | null;
|
|
453
|
+
};
|
|
454
|
+
body: Record<string, unknown>;
|
|
455
|
+
};
|
|
456
|
+
output: ApiResponse_VoicePayload_;
|
|
457
|
+
};
|
|
458
|
+
/**
|
|
459
|
+
* POST /voice/dialer/sessions
|
|
460
|
+
* Create a parallel-dialer session in PAUSED state
|
|
461
|
+
* tier: external · scope: voice:run
|
|
462
|
+
*/
|
|
463
|
+
create_dialer_session_voice_dialer_sessions_post: {
|
|
464
|
+
input: {
|
|
465
|
+
headers?: {
|
|
466
|
+
"X-Target-Org-Id"?: string | null;
|
|
467
|
+
};
|
|
468
|
+
body: DialerSessionCreateRequest;
|
|
469
|
+
};
|
|
470
|
+
output: ApiResponse_DialerSessionCreateResponse_;
|
|
471
|
+
};
|
|
472
|
+
/**
|
|
473
|
+
* POST /voice/inbound-routing/rules
|
|
474
|
+
* Create an inbound routing rule
|
|
475
|
+
* tier: write · scope: voice:write
|
|
476
|
+
*/
|
|
477
|
+
create_inbound_route_voice_inbound_routing_rules_post: {
|
|
478
|
+
input: {
|
|
479
|
+
headers?: {
|
|
480
|
+
"X-Target-Org-Id"?: string | null;
|
|
481
|
+
};
|
|
482
|
+
body: InboundRouteCreateRequest;
|
|
483
|
+
};
|
|
484
|
+
output: ApiResponse_VoicePayload_;
|
|
485
|
+
};
|
|
486
|
+
/**
|
|
487
|
+
* POST /voice/mcp-servers
|
|
488
|
+
* Connect an MCP server
|
|
489
|
+
* tier: write · scope: voice:write
|
|
490
|
+
*/
|
|
491
|
+
create_mcp_server_voice_mcp_servers_post: {
|
|
492
|
+
input: {
|
|
493
|
+
headers?: {
|
|
494
|
+
"X-Target-Org-Id"?: string | null;
|
|
495
|
+
};
|
|
496
|
+
body: McpServerCreateRequest;
|
|
497
|
+
};
|
|
498
|
+
output: ApiResponse_VoicePayload_;
|
|
499
|
+
};
|
|
500
|
+
/**
|
|
501
|
+
* POST /voice/campaigns/onboarding/threads
|
|
502
|
+
* Start an onboarding conversation thread
|
|
503
|
+
* tier: write · scope: voice:write
|
|
504
|
+
*/
|
|
505
|
+
create_onboarding_thread_voice_campaigns_onboarding_threads_post: {
|
|
506
|
+
input: {
|
|
507
|
+
headers?: {
|
|
508
|
+
"X-Target-Org-Id"?: string | null;
|
|
509
|
+
};
|
|
510
|
+
body?: Record<string, unknown>;
|
|
511
|
+
};
|
|
512
|
+
output: ApiResponse_VoicePayload_;
|
|
513
|
+
};
|
|
514
|
+
/**
|
|
515
|
+
* POST /voice/phone-directory
|
|
516
|
+
* Add a colleague to the directory
|
|
517
|
+
* tier: write · scope: voice:write
|
|
518
|
+
*/
|
|
519
|
+
create_phone_directory_entry_voice_phone_directory_post: {
|
|
520
|
+
input: {
|
|
521
|
+
headers?: {
|
|
522
|
+
"X-Target-Org-Id"?: string | null;
|
|
523
|
+
};
|
|
524
|
+
body: PhoneDirectoryEntryCreate;
|
|
525
|
+
};
|
|
526
|
+
output: ApiResponse_VoicePayload_;
|
|
527
|
+
};
|
|
528
|
+
/**
|
|
529
|
+
* POST /voice/collections/{collection_id}/scrape-sources
|
|
530
|
+
* Attach a web source and crawl it now
|
|
531
|
+
* tier: billable · scope: voice:run
|
|
532
|
+
*/
|
|
533
|
+
create_scrape_source_voice_collections__collection_id__scrape_sources_post: {
|
|
534
|
+
input: {
|
|
535
|
+
path: {
|
|
536
|
+
/** Collection id. */
|
|
537
|
+
collection_id: number;
|
|
538
|
+
};
|
|
539
|
+
headers?: {
|
|
540
|
+
"X-Target-Org-Id"?: string | null;
|
|
541
|
+
};
|
|
542
|
+
body: ScrapeSourceCreateRequest;
|
|
543
|
+
};
|
|
544
|
+
output: ApiResponse_VoicePayload_;
|
|
545
|
+
};
|
|
546
|
+
/**
|
|
547
|
+
* POST /voice/twins
|
|
548
|
+
* Create a twin
|
|
549
|
+
* tier: billable · scope: voice:run
|
|
550
|
+
*/
|
|
551
|
+
create_twin_voice_twins_post: {
|
|
552
|
+
input: {
|
|
553
|
+
headers?: {
|
|
554
|
+
"X-Target-Org-Id"?: string | null;
|
|
555
|
+
};
|
|
556
|
+
};
|
|
557
|
+
output: ApiResponse_VoicePayload_;
|
|
558
|
+
};
|
|
559
|
+
/**
|
|
560
|
+
* POST /voice/agents
|
|
561
|
+
* Create a voice agent or twin
|
|
562
|
+
* tier: write · scope: voice:write
|
|
563
|
+
*/
|
|
564
|
+
create_voice_agent_voice_agents_post: {
|
|
565
|
+
input: {
|
|
566
|
+
headers?: {
|
|
567
|
+
"X-Target-Org-Id"?: string | null;
|
|
568
|
+
};
|
|
569
|
+
body: VoiceAgentCreateRequest;
|
|
570
|
+
};
|
|
571
|
+
output: ApiResponse_VoiceAgentResponse_;
|
|
572
|
+
};
|
|
573
|
+
/**
|
|
574
|
+
* POST /voice/dispositions
|
|
575
|
+
* Create a custom call disposition
|
|
576
|
+
* tier: external · scope: voice:run
|
|
577
|
+
*/
|
|
578
|
+
create_voice_disposition_voice_dispositions_post: {
|
|
579
|
+
input: {
|
|
580
|
+
headers?: {
|
|
581
|
+
"X-Target-Org-Id"?: string | null;
|
|
582
|
+
};
|
|
583
|
+
body: VoiceCustomDispositionCreateRequest;
|
|
584
|
+
};
|
|
585
|
+
output: ApiResponse_VoiceCustomDispositionItem_;
|
|
586
|
+
};
|
|
587
|
+
/**
|
|
588
|
+
* POST /voice/inbound-calls/dialer/{call_id}/decline
|
|
589
|
+
* Decline an inbound call arriving during a dialer session
|
|
590
|
+
* tier: external · scope: voice:run
|
|
591
|
+
*/
|
|
592
|
+
decline_dialer_inbound_call_voice_inbound_calls_dialer__call_id__decline_post: {
|
|
593
|
+
input: {
|
|
594
|
+
path: {
|
|
595
|
+
/** Dialer call id. */
|
|
596
|
+
call_id: string;
|
|
597
|
+
};
|
|
598
|
+
headers?: {
|
|
599
|
+
"X-Target-Org-Id"?: string | null;
|
|
600
|
+
};
|
|
601
|
+
};
|
|
602
|
+
output: ApiResponse_VoicePayload_;
|
|
603
|
+
};
|
|
604
|
+
/**
|
|
605
|
+
* POST /voice/inbound-calls/decline
|
|
606
|
+
* Decline or hang up a ringing inbound call
|
|
607
|
+
* tier: external · scope: voice:run
|
|
608
|
+
*/
|
|
609
|
+
decline_inbound_call_voice_inbound_calls_decline_post: {
|
|
610
|
+
input: {
|
|
611
|
+
headers?: {
|
|
612
|
+
"X-Target-Org-Id"?: string | null;
|
|
613
|
+
};
|
|
614
|
+
body: Body_decline_inbound_call_voice_inbound_calls_decline_post;
|
|
615
|
+
};
|
|
616
|
+
output: ApiResponse_VoicePayload_;
|
|
617
|
+
};
|
|
618
|
+
/**
|
|
619
|
+
* DELETE /voice/agent-documents/{document_id}
|
|
620
|
+
* Delete a document from an agent's own store
|
|
621
|
+
* tier: destructive · scope: voice:delete
|
|
622
|
+
*/
|
|
623
|
+
delete_agent_document_voice_agent_documents__document_id__delete: {
|
|
624
|
+
input: {
|
|
625
|
+
path: {
|
|
626
|
+
/** Document id. */
|
|
627
|
+
document_id: number;
|
|
628
|
+
};
|
|
629
|
+
query: {
|
|
630
|
+
/** The agent the document belongs to. Required: document ids are scoped per agent. */
|
|
631
|
+
agent_id: string;
|
|
632
|
+
};
|
|
633
|
+
headers?: {
|
|
634
|
+
"X-Target-Org-Id"?: string | null;
|
|
635
|
+
};
|
|
636
|
+
};
|
|
637
|
+
output: ApiResponse_VoicePayload_;
|
|
638
|
+
};
|
|
639
|
+
/**
|
|
640
|
+
* DELETE /voice/agents/{agent_id}/test-cases/{test_case_id}
|
|
641
|
+
* Delete a saved case
|
|
642
|
+
* tier: destructive · scope: voice:delete
|
|
643
|
+
*/
|
|
644
|
+
delete_agent_test_case_voice_agents__agent_id__test_cases__test_case_id__delete: {
|
|
645
|
+
input: {
|
|
646
|
+
path: {
|
|
647
|
+
/** Voice agent id. */
|
|
648
|
+
agent_id: string;
|
|
649
|
+
/** Saved test case id. */
|
|
650
|
+
test_case_id: string;
|
|
651
|
+
};
|
|
652
|
+
headers?: {
|
|
653
|
+
"X-Target-Org-Id"?: string | null;
|
|
654
|
+
};
|
|
655
|
+
};
|
|
656
|
+
output: ApiResponse_VoicePayload_;
|
|
657
|
+
};
|
|
658
|
+
/**
|
|
659
|
+
* DELETE /voice/collections/{collection_id}/files/all
|
|
660
|
+
* Delete every file in a collection
|
|
661
|
+
* tier: destructive · scope: voice:delete
|
|
662
|
+
*/
|
|
663
|
+
delete_all_collection_files_voice_collections__collection_id__files_all_delete: {
|
|
664
|
+
input: {
|
|
665
|
+
path: {
|
|
666
|
+
/** Collection id. */
|
|
667
|
+
collection_id: number;
|
|
668
|
+
};
|
|
669
|
+
headers?: {
|
|
670
|
+
"X-Target-Org-Id"?: string | null;
|
|
671
|
+
};
|
|
672
|
+
};
|
|
673
|
+
output: ApiResponse_VoicePayload_;
|
|
674
|
+
};
|
|
675
|
+
/**
|
|
676
|
+
* DELETE /voice/inbound-routing/business-hours
|
|
677
|
+
* Remove the business-hours schedule for a number
|
|
678
|
+
* tier: destructive · scope: voice:delete
|
|
679
|
+
*/
|
|
680
|
+
delete_business_hours_voice_inbound_routing_business_hours_delete: {
|
|
681
|
+
input: {
|
|
682
|
+
query: {
|
|
683
|
+
/** The number to clear. */
|
|
684
|
+
phone_number: string;
|
|
685
|
+
};
|
|
686
|
+
headers?: {
|
|
687
|
+
"X-Target-Org-Id"?: string | null;
|
|
688
|
+
};
|
|
689
|
+
};
|
|
690
|
+
output: ApiResponse_VoicePayload_;
|
|
691
|
+
};
|
|
692
|
+
/**
|
|
693
|
+
* DELETE /voice/chat-agent/conversations/{chat_id}
|
|
694
|
+
* Delete a chat agent conversation
|
|
695
|
+
* tier: destructive · scope: voice:delete
|
|
696
|
+
*/
|
|
697
|
+
delete_chat_agent_conversation_voice_chat_agent_conversations__chat_id__delete: {
|
|
698
|
+
input: {
|
|
699
|
+
path: {
|
|
700
|
+
/** Conversation id. */
|
|
701
|
+
chat_id: string;
|
|
702
|
+
};
|
|
703
|
+
query: {
|
|
704
|
+
/** The agent that owns it. */
|
|
705
|
+
agent_id: string;
|
|
706
|
+
};
|
|
707
|
+
headers?: {
|
|
708
|
+
"X-Target-Org-Id"?: string | null;
|
|
709
|
+
};
|
|
710
|
+
};
|
|
711
|
+
output: ApiResponse_VoicePayload_;
|
|
712
|
+
};
|
|
713
|
+
/**
|
|
714
|
+
* DELETE /voice/collections/{collection_id}
|
|
715
|
+
* Delete a collection and everything in it
|
|
716
|
+
* tier: destructive · scope: voice:delete
|
|
717
|
+
*/
|
|
718
|
+
delete_collection_voice_collections__collection_id__delete: {
|
|
719
|
+
input: {
|
|
720
|
+
path: {
|
|
721
|
+
/** Collection id. */
|
|
722
|
+
collection_id: number;
|
|
723
|
+
};
|
|
724
|
+
headers?: {
|
|
725
|
+
"X-Target-Org-Id"?: string | null;
|
|
726
|
+
};
|
|
727
|
+
};
|
|
728
|
+
output: ApiResponse_VoicePayload_;
|
|
729
|
+
};
|
|
730
|
+
/**
|
|
731
|
+
* DELETE /voice/collections/{collection_id}/files
|
|
732
|
+
* Delete one file from a collection
|
|
733
|
+
* tier: destructive · scope: voice:delete
|
|
734
|
+
*/
|
|
735
|
+
delete_collection_file_voice_collections__collection_id__files_delete: {
|
|
736
|
+
input: {
|
|
737
|
+
path: {
|
|
738
|
+
/** Collection id. */
|
|
739
|
+
collection_id: number;
|
|
740
|
+
};
|
|
741
|
+
query: {
|
|
742
|
+
/** The file to remove. REQUIRED - there is no 'delete everything' by omission. */
|
|
743
|
+
filename: string;
|
|
744
|
+
/** Folder inside the collection. */
|
|
745
|
+
folder_path?: string;
|
|
746
|
+
};
|
|
747
|
+
headers?: {
|
|
748
|
+
"X-Target-Org-Id"?: string | null;
|
|
749
|
+
};
|
|
750
|
+
};
|
|
751
|
+
output: ApiResponse_VoicePayload_;
|
|
752
|
+
};
|
|
753
|
+
/**
|
|
754
|
+
* DELETE /voice/collections/{collection_id}/folders
|
|
755
|
+
* Delete a folder and everything in it
|
|
756
|
+
* tier: destructive · scope: voice:delete
|
|
757
|
+
*/
|
|
758
|
+
delete_collection_folder_voice_collections__collection_id__folders_delete: {
|
|
759
|
+
input: {
|
|
760
|
+
path: {
|
|
761
|
+
/** Collection id. */
|
|
762
|
+
collection_id: number;
|
|
763
|
+
};
|
|
764
|
+
query: {
|
|
765
|
+
/** The folder; subfolders go too. */
|
|
766
|
+
folder_path: string;
|
|
767
|
+
};
|
|
768
|
+
headers?: {
|
|
769
|
+
"X-Target-Org-Id"?: string | null;
|
|
770
|
+
};
|
|
771
|
+
};
|
|
772
|
+
output: ApiResponse_VoicePayload_;
|
|
773
|
+
};
|
|
774
|
+
/**
|
|
775
|
+
* DELETE /voice/inbound-routing/rules/{route_id}
|
|
776
|
+
* Delete an inbound routing rule
|
|
777
|
+
* tier: destructive · scope: voice:delete
|
|
778
|
+
*/
|
|
779
|
+
delete_inbound_route_voice_inbound_routing_rules__route_id__delete: {
|
|
780
|
+
input: {
|
|
781
|
+
path: {
|
|
782
|
+
/** Rule id. */
|
|
783
|
+
route_id: number;
|
|
784
|
+
};
|
|
785
|
+
headers?: {
|
|
786
|
+
"X-Target-Org-Id"?: string | null;
|
|
787
|
+
};
|
|
788
|
+
};
|
|
789
|
+
output: ApiResponse_VoicePayload_;
|
|
790
|
+
};
|
|
791
|
+
/**
|
|
792
|
+
* DELETE /voice/jobs/{job_id}
|
|
793
|
+
* Cancel an async job
|
|
794
|
+
* tier: destructive · scope: voice:delete
|
|
795
|
+
*/
|
|
796
|
+
delete_job_voice_jobs__job_id__delete: {
|
|
797
|
+
input: {
|
|
798
|
+
path: {
|
|
799
|
+
/** Job id. */
|
|
800
|
+
job_id: string;
|
|
801
|
+
};
|
|
802
|
+
query?: {
|
|
803
|
+
/** Which queue the job was placed on. */
|
|
804
|
+
queue?: string;
|
|
805
|
+
};
|
|
806
|
+
headers?: {
|
|
807
|
+
"X-Target-Org-Id"?: string | null;
|
|
808
|
+
};
|
|
809
|
+
};
|
|
810
|
+
output: ApiResponse_VoicePayload_;
|
|
811
|
+
};
|
|
812
|
+
/**
|
|
813
|
+
* DELETE /voice/knowledge-base/files
|
|
814
|
+
* Delete a knowledge-base file
|
|
815
|
+
* tier: destructive · scope: voice:delete
|
|
816
|
+
*/
|
|
817
|
+
delete_knowledge_base_file_voice_knowledge_base_files_delete: {
|
|
818
|
+
input: {
|
|
819
|
+
query: {
|
|
820
|
+
/** The file to remove. */
|
|
821
|
+
filename: string;
|
|
822
|
+
};
|
|
823
|
+
headers?: {
|
|
824
|
+
"X-Target-Org-Id"?: string | null;
|
|
825
|
+
};
|
|
826
|
+
};
|
|
827
|
+
output: ApiResponse_VoicePayload_;
|
|
828
|
+
};
|
|
829
|
+
/**
|
|
830
|
+
* DELETE /voice/mcp-servers/{mcp_server_id}
|
|
831
|
+
* Disconnect an MCP server
|
|
832
|
+
* tier: destructive · scope: voice:delete
|
|
833
|
+
*/
|
|
834
|
+
delete_mcp_server_voice_mcp_servers__mcp_server_id__delete: {
|
|
835
|
+
input: {
|
|
836
|
+
path: {
|
|
837
|
+
/** MCP server id. */
|
|
838
|
+
mcp_server_id: string;
|
|
839
|
+
};
|
|
840
|
+
headers?: {
|
|
841
|
+
"X-Target-Org-Id"?: string | null;
|
|
842
|
+
};
|
|
843
|
+
};
|
|
844
|
+
output: ApiResponse_VoicePayload_;
|
|
845
|
+
};
|
|
846
|
+
/**
|
|
847
|
+
* DELETE /voice/campaigns/onboarding/threads
|
|
848
|
+
* Delete an onboarding thread
|
|
849
|
+
* tier: destructive · scope: voice:delete
|
|
850
|
+
*/
|
|
851
|
+
delete_onboarding_thread_voice_campaigns_onboarding_threads_delete: {
|
|
852
|
+
input: {
|
|
853
|
+
query: {
|
|
854
|
+
/** The thread to delete. */
|
|
855
|
+
thread_id: string;
|
|
856
|
+
};
|
|
857
|
+
headers?: {
|
|
858
|
+
"X-Target-Org-Id"?: string | null;
|
|
859
|
+
};
|
|
860
|
+
};
|
|
861
|
+
output: ApiResponse_VoicePayload_;
|
|
862
|
+
};
|
|
863
|
+
/**
|
|
864
|
+
* DELETE /voice/phone-directory/{entry_id}
|
|
865
|
+
* Remove a directory entry
|
|
866
|
+
* tier: destructive · scope: voice:delete
|
|
867
|
+
*/
|
|
868
|
+
delete_phone_directory_entry_voice_phone_directory__entry_id__delete: {
|
|
869
|
+
input: {
|
|
870
|
+
path: {
|
|
871
|
+
/** Directory entry id. */
|
|
872
|
+
entry_id: number;
|
|
873
|
+
};
|
|
874
|
+
headers?: {
|
|
875
|
+
"X-Target-Org-Id"?: string | null;
|
|
876
|
+
};
|
|
877
|
+
};
|
|
878
|
+
output: ApiResponse_VoicePayload_;
|
|
879
|
+
};
|
|
880
|
+
/**
|
|
881
|
+
* DELETE /voice/collections/{collection_id}/scrape-sources/{source_id}
|
|
882
|
+
* Remove a web source and the file it maintained
|
|
883
|
+
* tier: destructive · scope: voice:delete
|
|
884
|
+
*/
|
|
885
|
+
delete_scrape_source_voice_collections__collection_id__scrape_sources__source_id__delete: {
|
|
886
|
+
input: {
|
|
887
|
+
path: {
|
|
888
|
+
/** Collection id. */
|
|
889
|
+
collection_id: number;
|
|
890
|
+
/** Scrape source id. */
|
|
891
|
+
source_id: number;
|
|
892
|
+
};
|
|
893
|
+
headers?: {
|
|
894
|
+
"X-Target-Org-Id"?: string | null;
|
|
895
|
+
};
|
|
896
|
+
};
|
|
897
|
+
output: ApiResponse_VoicePayload_;
|
|
898
|
+
};
|
|
899
|
+
/**
|
|
900
|
+
* DELETE /voice/twins/{agent_id}
|
|
901
|
+
* Delete a digital twin
|
|
902
|
+
* tier: destructive · scope: voice:delete
|
|
903
|
+
*/
|
|
904
|
+
delete_twin_voice_twins__agent_id__delete: {
|
|
905
|
+
input: {
|
|
906
|
+
path: {
|
|
907
|
+
/** Twin id. */
|
|
908
|
+
agent_id: string;
|
|
909
|
+
};
|
|
910
|
+
headers?: {
|
|
911
|
+
"X-Target-Org-Id"?: string | null;
|
|
912
|
+
};
|
|
913
|
+
};
|
|
914
|
+
output: ApiResponse_VoicePayload_;
|
|
915
|
+
};
|
|
916
|
+
/**
|
|
917
|
+
* DELETE /voice/video-recordings/{video_id}
|
|
918
|
+
* Delete one video recording
|
|
919
|
+
* tier: destructive · scope: voice:delete
|
|
920
|
+
*/
|
|
921
|
+
delete_video_recording_voice_video_recordings__video_id__delete: {
|
|
922
|
+
input: {
|
|
923
|
+
path: {
|
|
924
|
+
/** Recording id. */
|
|
925
|
+
video_id: string;
|
|
926
|
+
};
|
|
927
|
+
headers?: {
|
|
928
|
+
"X-Target-Org-Id"?: string | null;
|
|
929
|
+
};
|
|
930
|
+
};
|
|
931
|
+
output: ApiResponse_VoicePayload_;
|
|
932
|
+
};
|
|
933
|
+
/**
|
|
934
|
+
* DELETE /voice/agents/{agent_id}
|
|
935
|
+
* Delete a voice agent or twin
|
|
936
|
+
* tier: destructive · scope: voice:write
|
|
937
|
+
*/
|
|
938
|
+
delete_voice_agent_voice_agents__agent_id__delete: {
|
|
939
|
+
input: {
|
|
940
|
+
path: {
|
|
941
|
+
/** Agent UUID. */
|
|
942
|
+
agent_id: string;
|
|
943
|
+
};
|
|
944
|
+
headers?: {
|
|
945
|
+
"X-Target-Org-Id"?: string | null;
|
|
946
|
+
};
|
|
947
|
+
};
|
|
948
|
+
output: ApiResponse_VoiceAgentResponse_;
|
|
949
|
+
};
|
|
950
|
+
/**
|
|
951
|
+
* DELETE /voice/agents/{agent_id}/skills/{action_id}
|
|
952
|
+
* Take a skill away from an agent
|
|
953
|
+
* tier: destructive · scope: voice:delete
|
|
954
|
+
*/
|
|
955
|
+
detach_skill_from_agent_voice_agents__agent_id__skills__action_id__delete: {
|
|
956
|
+
input: {
|
|
957
|
+
path: {
|
|
958
|
+
/** The agent. */
|
|
959
|
+
agent_id: string;
|
|
960
|
+
/** The skill to remove. */
|
|
961
|
+
action_id: string;
|
|
962
|
+
};
|
|
963
|
+
headers?: {
|
|
964
|
+
"X-Target-Org-Id"?: string | null;
|
|
965
|
+
};
|
|
966
|
+
};
|
|
967
|
+
output: ApiResponse_VoicePayload_;
|
|
968
|
+
};
|
|
969
|
+
/**
|
|
970
|
+
* GET /voice/calls/{call_id}/recording
|
|
971
|
+
* Stream a call's recording
|
|
972
|
+
* tier: read · scope: voice:read
|
|
973
|
+
*/
|
|
974
|
+
download_call_recording_voice_calls__call_id__recording_get: {
|
|
975
|
+
input: {
|
|
976
|
+
path: {
|
|
977
|
+
/** Call id. */
|
|
978
|
+
call_id: string;
|
|
979
|
+
};
|
|
980
|
+
headers?: {
|
|
981
|
+
"X-Target-Org-Id"?: string | null;
|
|
982
|
+
};
|
|
983
|
+
};
|
|
984
|
+
output: void;
|
|
985
|
+
};
|
|
986
|
+
/**
|
|
987
|
+
* GET /voice/calls/{call_id}/historical-recording
|
|
988
|
+
* Recover an old recording by its activity
|
|
989
|
+
* tier: read · scope: voice:read
|
|
990
|
+
*/
|
|
991
|
+
download_historical_call_recording_voice_calls__call_id__historical_recording_get: {
|
|
992
|
+
input: {
|
|
993
|
+
path: {
|
|
994
|
+
/** Call id. */
|
|
995
|
+
call_id: string;
|
|
996
|
+
};
|
|
997
|
+
query: {
|
|
998
|
+
/** The activity that proves the recording belongs to this call. */
|
|
999
|
+
activity_id: string;
|
|
1000
|
+
};
|
|
1001
|
+
headers?: {
|
|
1002
|
+
"X-Target-Org-Id"?: string | null;
|
|
1003
|
+
};
|
|
1004
|
+
};
|
|
1005
|
+
output: void;
|
|
1006
|
+
};
|
|
1007
|
+
/**
|
|
1008
|
+
* GET /voice/knowledge-base/files/download
|
|
1009
|
+
* Download a knowledge-base file
|
|
1010
|
+
* tier: read · scope: voice:read
|
|
1011
|
+
*/
|
|
1012
|
+
download_knowledge_base_file_voice_knowledge_base_files_download_get: {
|
|
1013
|
+
input: {
|
|
1014
|
+
query: {
|
|
1015
|
+
/** The stored name, as listed. */
|
|
1016
|
+
filename: string;
|
|
1017
|
+
};
|
|
1018
|
+
headers?: {
|
|
1019
|
+
"X-Target-Org-Id"?: string | null;
|
|
1020
|
+
};
|
|
1021
|
+
};
|
|
1022
|
+
output: void;
|
|
1023
|
+
};
|
|
1024
|
+
/**
|
|
1025
|
+
* GET /voice/twins/files/download
|
|
1026
|
+
* Download a twin's stored file
|
|
1027
|
+
* tier: read · scope: voice:read
|
|
1028
|
+
*/
|
|
1029
|
+
download_twin_file_voice_twins_files_download_get: {
|
|
1030
|
+
input: {
|
|
1031
|
+
query: {
|
|
1032
|
+
/** The stored key, as returned on the twin. */
|
|
1033
|
+
s3_key: string;
|
|
1034
|
+
};
|
|
1035
|
+
headers?: {
|
|
1036
|
+
"X-Target-Org-Id"?: string | null;
|
|
1037
|
+
};
|
|
1038
|
+
};
|
|
1039
|
+
output: void;
|
|
1040
|
+
};
|
|
1041
|
+
/**
|
|
1042
|
+
* POST /voice/email-agent/draft-reply
|
|
1043
|
+
* Draft a reply to an email
|
|
1044
|
+
* tier: billable · scope: voice:run
|
|
1045
|
+
*/
|
|
1046
|
+
draft_email_reply_voice_email_agent_draft_reply_post: {
|
|
1047
|
+
input: {
|
|
1048
|
+
headers?: {
|
|
1049
|
+
"X-Target-Org-Id"?: string | null;
|
|
1050
|
+
};
|
|
1051
|
+
body: Record<string, unknown>;
|
|
1052
|
+
};
|
|
1053
|
+
output: ApiResponse_VoicePayload_;
|
|
1054
|
+
};
|
|
1055
|
+
/**
|
|
1056
|
+
* POST /voice/campaigns/email-enhancements
|
|
1057
|
+
* Rewrite a generated email against an instruction
|
|
1058
|
+
* tier: billable · scope: voice:run
|
|
1059
|
+
*/
|
|
1060
|
+
enhance_campaign_email_voice_campaigns_email_enhancements_post: {
|
|
1061
|
+
input: {
|
|
1062
|
+
headers?: {
|
|
1063
|
+
"X-Target-Org-Id"?: string | null;
|
|
1064
|
+
};
|
|
1065
|
+
body: Record<string, unknown>;
|
|
1066
|
+
};
|
|
1067
|
+
output: ApiResponse_VoicePayload_;
|
|
1068
|
+
};
|
|
1069
|
+
/**
|
|
1070
|
+
* POST /voice/agents/receptionist
|
|
1071
|
+
* Get the org's receptionist, creating it if absent
|
|
1072
|
+
* tier: write · scope: voice:write
|
|
1073
|
+
*/
|
|
1074
|
+
ensure_receptionist_agent_voice_agents_receptionist_post: {
|
|
1075
|
+
input: {
|
|
1076
|
+
headers?: {
|
|
1077
|
+
"X-Target-Org-Id"?: string | null;
|
|
1078
|
+
};
|
|
1079
|
+
};
|
|
1080
|
+
output: ApiResponse_VoicePayload_;
|
|
1081
|
+
};
|
|
1082
|
+
/**
|
|
1083
|
+
* POST /voice/campaigns/email-estimate
|
|
1084
|
+
* Estimate what generating an email would cost
|
|
1085
|
+
* tier: read · scope: voice:read
|
|
1086
|
+
*/
|
|
1087
|
+
estimate_campaign_email_voice_campaigns_email_estimate_post: {
|
|
1088
|
+
input: {
|
|
1089
|
+
headers?: {
|
|
1090
|
+
"X-Target-Org-Id"?: string | null;
|
|
1091
|
+
};
|
|
1092
|
+
body: Record<string, unknown>;
|
|
1093
|
+
};
|
|
1094
|
+
output: ApiResponse_VoicePayload_;
|
|
1095
|
+
};
|
|
1096
|
+
/**
|
|
1097
|
+
* GET /dialer/parallel-calls/analytics/dialer-report/export
|
|
1098
|
+
* Download the dialer report as a spreadsheet
|
|
1099
|
+
* tier: read · scope: voice:read
|
|
1100
|
+
*/
|
|
1101
|
+
export_dialer_report_dialer_parallel_calls_analytics_dialer_report_export_get: {
|
|
1102
|
+
input: {
|
|
1103
|
+
query?: {
|
|
1104
|
+
/** One session only. */
|
|
1105
|
+
session_id?: string | null;
|
|
1106
|
+
/** One rep only. */
|
|
1107
|
+
user_email?: string | null;
|
|
1108
|
+
/** YYYY-MM-DD. */
|
|
1109
|
+
date_from?: string | null;
|
|
1110
|
+
/** YYYY-MM-DD. */
|
|
1111
|
+
date_to?: string | null;
|
|
1112
|
+
/** Per-day rows, or one summary. */
|
|
1113
|
+
aggregation?: "daily" | "total";
|
|
1114
|
+
};
|
|
1115
|
+
headers?: {
|
|
1116
|
+
"X-Target-Org-Id"?: string | null;
|
|
1117
|
+
};
|
|
1118
|
+
};
|
|
1119
|
+
output: void;
|
|
1120
|
+
};
|
|
1121
|
+
/**
|
|
1122
|
+
* POST /voice/twins/extract-linkedin
|
|
1123
|
+
* Extract a LinkedIn profile to seed a twin
|
|
1124
|
+
* tier: billable · scope: voice:run
|
|
1125
|
+
*/
|
|
1126
|
+
extract_twin_linkedin_profile_voice_twins_extract_linkedin_post: {
|
|
1127
|
+
input: {
|
|
1128
|
+
headers?: {
|
|
1129
|
+
"X-Target-Org-Id"?: string | null;
|
|
1130
|
+
};
|
|
1131
|
+
body: TwinLinkedInExtract;
|
|
1132
|
+
};
|
|
1133
|
+
output: ApiResponse_VoicePayload_;
|
|
1134
|
+
};
|
|
1135
|
+
/**
|
|
1136
|
+
* POST /voice/call-scripts/generate
|
|
1137
|
+
* Generate a call script for one contact
|
|
1138
|
+
* tier: billable · scope: voice:run
|
|
1139
|
+
*/
|
|
1140
|
+
generate_call_script_voice_call_scripts_generate_post: {
|
|
1141
|
+
input: {
|
|
1142
|
+
headers?: {
|
|
1143
|
+
"X-Target-Org-Id"?: string | null;
|
|
1144
|
+
};
|
|
1145
|
+
body: CallScriptGenerate;
|
|
1146
|
+
};
|
|
1147
|
+
output: ApiResponse_VoicePayload_;
|
|
1148
|
+
};
|
|
1149
|
+
/**
|
|
1150
|
+
* POST /voice/campaigns/call-scripts
|
|
1151
|
+
* Generate one personalised call script
|
|
1152
|
+
* tier: billable · scope: voice:run
|
|
1153
|
+
*/
|
|
1154
|
+
generate_campaign_call_script_voice_campaigns_call_scripts_post: {
|
|
1155
|
+
input: {
|
|
1156
|
+
headers?: {
|
|
1157
|
+
"X-Target-Org-Id"?: string | null;
|
|
1158
|
+
};
|
|
1159
|
+
body: Record<string, unknown>;
|
|
1160
|
+
};
|
|
1161
|
+
output: ApiResponse_VoicePayload_;
|
|
1162
|
+
};
|
|
1163
|
+
/**
|
|
1164
|
+
* GET /voice/campaigns/call-scripts
|
|
1165
|
+
* Generate campaign call scripts
|
|
1166
|
+
* tier: billable · scope: voice:run
|
|
1167
|
+
*/
|
|
1168
|
+
generate_campaign_call_scripts_voice_campaigns_call_scripts_get: {
|
|
1169
|
+
input: {
|
|
1170
|
+
query?: {
|
|
1171
|
+
/** Whose voice to write in. */
|
|
1172
|
+
agent_name?: string;
|
|
1173
|
+
};
|
|
1174
|
+
headers?: {
|
|
1175
|
+
"X-Target-Org-Id"?: string | null;
|
|
1176
|
+
};
|
|
1177
|
+
};
|
|
1178
|
+
output: ApiResponse_VoicePayload_;
|
|
1179
|
+
};
|
|
1180
|
+
/**
|
|
1181
|
+
* POST /voice/campaigns/emails
|
|
1182
|
+
* Generate one personalised email
|
|
1183
|
+
* tier: billable · scope: voice:run
|
|
1184
|
+
*/
|
|
1185
|
+
generate_campaign_email_voice_campaigns_emails_post: {
|
|
1186
|
+
input: {
|
|
1187
|
+
headers?: {
|
|
1188
|
+
"X-Target-Org-Id"?: string | null;
|
|
1189
|
+
};
|
|
1190
|
+
body: Record<string, unknown>;
|
|
1191
|
+
};
|
|
1192
|
+
output: ApiResponse_VoicePayload_;
|
|
1193
|
+
};
|
|
1194
|
+
/**
|
|
1195
|
+
* GET /voice/campaigns/email-templates
|
|
1196
|
+
* Generate campaign email templates
|
|
1197
|
+
* tier: billable · scope: voice:run
|
|
1198
|
+
*/
|
|
1199
|
+
generate_campaign_emails_voice_campaigns_email_templates_get: {
|
|
1200
|
+
input: {
|
|
1201
|
+
query?: {
|
|
1202
|
+
/** Whose voice to write in. */
|
|
1203
|
+
agent_name?: string;
|
|
1204
|
+
};
|
|
1205
|
+
headers?: {
|
|
1206
|
+
"X-Target-Org-Id"?: string | null;
|
|
1207
|
+
};
|
|
1208
|
+
};
|
|
1209
|
+
output: ApiResponse_VoicePayload_;
|
|
1210
|
+
};
|
|
1211
|
+
/**
|
|
1212
|
+
* GET /voice/campaigns/templates
|
|
1213
|
+
* Generate a campaign template for a company
|
|
1214
|
+
* tier: billable · scope: voice:run
|
|
1215
|
+
*/
|
|
1216
|
+
generate_campaign_template_voice_campaigns_templates_get: {
|
|
1217
|
+
input: {
|
|
1218
|
+
query: {
|
|
1219
|
+
/** The company website to work from. */
|
|
1220
|
+
customer_url: string;
|
|
1221
|
+
/** Which campaign shape to build. */
|
|
1222
|
+
type_campaign?: string;
|
|
1223
|
+
/** True returns a job id immediately (202) instead of waiting. Poll `GET /voice/jobs/{job_id}` for the result. */
|
|
1224
|
+
run_async?: boolean;
|
|
1225
|
+
};
|
|
1226
|
+
headers?: {
|
|
1227
|
+
"X-Target-Org-Id"?: string | null;
|
|
1228
|
+
};
|
|
1229
|
+
};
|
|
1230
|
+
output: ApiResponse_VoicePayload_;
|
|
1231
|
+
};
|
|
1232
|
+
/**
|
|
1233
|
+
* POST /voice/campaigns/email-spintax
|
|
1234
|
+
* Turn an email into spintax
|
|
1235
|
+
* tier: billable · scope: voice:run
|
|
1236
|
+
*/
|
|
1237
|
+
generate_email_spintax_voice_campaigns_email_spintax_post: {
|
|
1238
|
+
input: {
|
|
1239
|
+
headers?: {
|
|
1240
|
+
"X-Target-Org-Id"?: string | null;
|
|
1241
|
+
};
|
|
1242
|
+
body: Record<string, unknown>;
|
|
1243
|
+
};
|
|
1244
|
+
output: ApiResponse_VoicePayload_;
|
|
1245
|
+
};
|
|
1246
|
+
/**
|
|
1247
|
+
* POST /voice/icp/queries
|
|
1248
|
+
* Generate ICP and TAM query definitions from a website
|
|
1249
|
+
* tier: billable · scope: voice:run
|
|
1250
|
+
*/
|
|
1251
|
+
generate_icp_queries_voice_icp_queries_post: {
|
|
1252
|
+
input: {
|
|
1253
|
+
query: {
|
|
1254
|
+
/** The company to build an ICP for. */
|
|
1255
|
+
customer_url: string;
|
|
1256
|
+
/** True returns a job id immediately (202) instead of waiting. Poll `GET /voice/jobs/{job_id}` for the result. */
|
|
1257
|
+
run_async?: boolean;
|
|
1258
|
+
/** True stores the generated ICP against the org. False returns it only. */
|
|
1259
|
+
persist?: boolean;
|
|
1260
|
+
};
|
|
1261
|
+
headers?: {
|
|
1262
|
+
"X-Target-Org-Id"?: string | null;
|
|
1263
|
+
};
|
|
1264
|
+
};
|
|
1265
|
+
output: ApiResponse_VoicePayload_;
|
|
1266
|
+
};
|
|
1267
|
+
/**
|
|
1268
|
+
* POST /voice/campaigns/linkedin-messages
|
|
1269
|
+
* Generate a LinkedIn message
|
|
1270
|
+
* tier: billable · scope: voice:run
|
|
1271
|
+
*/
|
|
1272
|
+
generate_linkedin_message_voice_campaigns_linkedin_messages_post: {
|
|
1273
|
+
input: {
|
|
1274
|
+
headers?: {
|
|
1275
|
+
"X-Target-Org-Id"?: string | null;
|
|
1276
|
+
};
|
|
1277
|
+
body: Record<string, unknown>;
|
|
1278
|
+
};
|
|
1279
|
+
output: ApiResponse_VoicePayload_;
|
|
1280
|
+
};
|
|
1281
|
+
/**
|
|
1282
|
+
* POST /voice/campaigns/voicemails
|
|
1283
|
+
* Generate a personalised voicemail script
|
|
1284
|
+
* tier: billable · scope: voice:run
|
|
1285
|
+
*/
|
|
1286
|
+
generate_personalised_voicemail_voice_campaigns_voicemails_post: {
|
|
1287
|
+
input: {
|
|
1288
|
+
query?: {
|
|
1289
|
+
/** Which campaign shape to write for. */
|
|
1290
|
+
campaign_type?: string;
|
|
1291
|
+
};
|
|
1292
|
+
headers?: {
|
|
1293
|
+
"X-Target-Org-Id"?: string | null;
|
|
1294
|
+
};
|
|
1295
|
+
body: Record<string, unknown>;
|
|
1296
|
+
};
|
|
1297
|
+
output: ApiResponse_VoicePayload_;
|
|
1298
|
+
};
|
|
1299
|
+
/**
|
|
1300
|
+
* GET /voice/agents/{agent_id}/activity
|
|
1301
|
+
* An agent's activity feed
|
|
1302
|
+
* tier: read · scope: voice:read
|
|
1303
|
+
*/
|
|
1304
|
+
get_agent_activity_voice_agents__agent_id__activity_get: {
|
|
1305
|
+
input: {
|
|
1306
|
+
path: {
|
|
1307
|
+
/** Voice agent id. */
|
|
1308
|
+
agent_id: string;
|
|
1309
|
+
};
|
|
1310
|
+
query?: {
|
|
1311
|
+
/** Maximum rows per activity type. */
|
|
1312
|
+
limit?: number;
|
|
1313
|
+
/** Look-back window in days. */
|
|
1314
|
+
days?: number;
|
|
1315
|
+
};
|
|
1316
|
+
headers?: {
|
|
1317
|
+
"X-Target-Org-Id"?: string | null;
|
|
1318
|
+
};
|
|
1319
|
+
};
|
|
1320
|
+
output: ApiResponse_VoicePayload_;
|
|
1321
|
+
};
|
|
1322
|
+
/**
|
|
1323
|
+
* GET /voice/agents/defaults
|
|
1324
|
+
* The organisation's default agent profile
|
|
1325
|
+
* tier: read · scope: voice:read
|
|
1326
|
+
*/
|
|
1327
|
+
get_agent_defaults_voice_agents_defaults_get: {
|
|
1328
|
+
input: {
|
|
1329
|
+
headers?: {
|
|
1330
|
+
"X-Target-Org-Id"?: string | null;
|
|
1331
|
+
};
|
|
1332
|
+
};
|
|
1333
|
+
output: ApiResponse_VoicePayload_;
|
|
1334
|
+
};
|
|
1335
|
+
/**
|
|
1336
|
+
* GET /voice/agents/global-settings
|
|
1337
|
+
* Org-wide inbound call defaults
|
|
1338
|
+
* tier: read · scope: voice:read
|
|
1339
|
+
*/
|
|
1340
|
+
get_agent_global_settings_voice_agents_global_settings_get: {
|
|
1341
|
+
input: {
|
|
1342
|
+
headers?: {
|
|
1343
|
+
"X-Target-Org-Id"?: string | null;
|
|
1344
|
+
};
|
|
1345
|
+
};
|
|
1346
|
+
output: ApiResponse_VoicePayload_;
|
|
1347
|
+
};
|
|
1348
|
+
/**
|
|
1349
|
+
* GET /voice/agents/{agent_id}/skill-stats
|
|
1350
|
+
* Run statistics for an agent's skills
|
|
1351
|
+
* tier: read · scope: voice:read
|
|
1352
|
+
*/
|
|
1353
|
+
get_agent_skill_stats_voice_agents__agent_id__skill_stats_get: {
|
|
1354
|
+
input: {
|
|
1355
|
+
path: {
|
|
1356
|
+
/** Voice agent id. */
|
|
1357
|
+
agent_id: string;
|
|
1358
|
+
};
|
|
1359
|
+
query?: {
|
|
1360
|
+
/** Look-back window in days. */
|
|
1361
|
+
days?: number;
|
|
1362
|
+
};
|
|
1363
|
+
headers?: {
|
|
1364
|
+
"X-Target-Org-Id"?: string | null;
|
|
1365
|
+
};
|
|
1366
|
+
};
|
|
1367
|
+
output: ApiResponse_VoicePayload_;
|
|
1368
|
+
};
|
|
1369
|
+
/**
|
|
1370
|
+
* GET /voice/agents/{agent_id}/test-suite-status
|
|
1371
|
+
* The activation gate: does the saved suite vouch for this config?
|
|
1372
|
+
* tier: read · scope: voice:read
|
|
1373
|
+
*/
|
|
1374
|
+
get_agent_test_suite_status_voice_agents__agent_id__test_suite_status_get: {
|
|
1375
|
+
input: {
|
|
1376
|
+
path: {
|
|
1377
|
+
/** Voice agent id. */
|
|
1378
|
+
agent_id: string;
|
|
1379
|
+
};
|
|
1380
|
+
headers?: {
|
|
1381
|
+
"X-Target-Org-Id"?: string | null;
|
|
1382
|
+
};
|
|
1383
|
+
};
|
|
1384
|
+
output: ApiResponse_VoicePayload_;
|
|
1385
|
+
};
|
|
1386
|
+
/**
|
|
1387
|
+
* GET /voice/inbound-routing/business-hours
|
|
1388
|
+
* Read the business-hours schedule for a number
|
|
1389
|
+
* tier: read · scope: voice:read
|
|
1390
|
+
*/
|
|
1391
|
+
get_business_hours_voice_inbound_routing_business_hours_get: {
|
|
1392
|
+
input: {
|
|
1393
|
+
query: {
|
|
1394
|
+
/** The number to read. */
|
|
1395
|
+
phone_number: string;
|
|
1396
|
+
};
|
|
1397
|
+
headers?: {
|
|
1398
|
+
"X-Target-Org-Id"?: string | null;
|
|
1399
|
+
};
|
|
1400
|
+
};
|
|
1401
|
+
output: ApiResponse_VoicePayload_;
|
|
1402
|
+
};
|
|
1403
|
+
/**
|
|
1404
|
+
* GET /voice/mcp-servers/{mcp_server_id}/tools/cached
|
|
1405
|
+
* Last known tool list for an MCP server
|
|
1406
|
+
* tier: read · scope: voice:read
|
|
1407
|
+
*/
|
|
1408
|
+
get_cached_mcp_tools_voice_mcp_servers__mcp_server_id__tools_cached_get: {
|
|
1409
|
+
input: {
|
|
1410
|
+
path: {
|
|
1411
|
+
/** MCP server id. */
|
|
1412
|
+
mcp_server_id: string;
|
|
1413
|
+
};
|
|
1414
|
+
headers?: {
|
|
1415
|
+
"X-Target-Org-Id"?: string | null;
|
|
1416
|
+
};
|
|
1417
|
+
};
|
|
1418
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1419
|
+
};
|
|
1420
|
+
/**
|
|
1421
|
+
* GET /voice/calls/{call_id}/artifacts
|
|
1422
|
+
* Whether a call's transcript and recording are ready
|
|
1423
|
+
* tier: read · scope: voice:read
|
|
1424
|
+
*/
|
|
1425
|
+
get_call_artifacts_voice_calls__call_id__artifacts_get: {
|
|
1426
|
+
input: {
|
|
1427
|
+
path: {
|
|
1428
|
+
/** Call id. */
|
|
1429
|
+
call_id: string;
|
|
1430
|
+
};
|
|
1431
|
+
headers?: {
|
|
1432
|
+
"X-Target-Org-Id"?: string | null;
|
|
1433
|
+
};
|
|
1434
|
+
};
|
|
1435
|
+
output: ApiResponse_VoicePayload_;
|
|
1436
|
+
};
|
|
1437
|
+
/**
|
|
1438
|
+
* GET /voice/dialer/calls/{room_name}/grading
|
|
1439
|
+
* Get AI call grading for a single dialer call
|
|
1440
|
+
* tier: read · scope: voice:read
|
|
1441
|
+
*/
|
|
1442
|
+
get_call_grading_voice_dialer_calls__room_name__grading_get: {
|
|
1443
|
+
input: {
|
|
1444
|
+
path: {
|
|
1445
|
+
/** LiveKit room / call identifier (`livekit_room_name`). */
|
|
1446
|
+
room_name: string;
|
|
1447
|
+
};
|
|
1448
|
+
headers?: {
|
|
1449
|
+
"X-Target-Org-Id"?: string | null;
|
|
1450
|
+
};
|
|
1451
|
+
};
|
|
1452
|
+
output: ApiResponse_CallGradingResponse_;
|
|
1453
|
+
};
|
|
1454
|
+
/**
|
|
1455
|
+
* GET /voice/dialer/calls/{room_name}/transcript
|
|
1456
|
+
* Get the persisted transcript for a single dialer call
|
|
1457
|
+
* tier: read · scope: voice:read
|
|
1458
|
+
*/
|
|
1459
|
+
get_call_transcript_voice_dialer_calls__room_name__transcript_get: {
|
|
1460
|
+
input: {
|
|
1461
|
+
path: {
|
|
1462
|
+
/** LiveKit room / call identifier (`livekit_room_name`). */
|
|
1463
|
+
room_name: string;
|
|
1464
|
+
};
|
|
1465
|
+
headers?: {
|
|
1466
|
+
"X-Target-Org-Id"?: string | null;
|
|
1467
|
+
};
|
|
1468
|
+
};
|
|
1469
|
+
output: ApiResponse_CallTranscriptResponse_;
|
|
1470
|
+
};
|
|
1471
|
+
/**
|
|
1472
|
+
* POST /voice/chat-agent/history
|
|
1473
|
+
* Read a chat agent conversation
|
|
1474
|
+
* tier: read · scope: voice:read
|
|
1475
|
+
*/
|
|
1476
|
+
get_chat_agent_history_voice_chat_agent_history_post: {
|
|
1477
|
+
input: {
|
|
1478
|
+
headers?: {
|
|
1479
|
+
"X-Target-Org-Id"?: string | null;
|
|
1480
|
+
};
|
|
1481
|
+
body: Record<string, unknown>;
|
|
1482
|
+
};
|
|
1483
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1484
|
+
};
|
|
1485
|
+
/**
|
|
1486
|
+
* GET /voice/collections/{collection_id}
|
|
1487
|
+
* Get one collection
|
|
1488
|
+
* tier: read · scope: voice:read
|
|
1489
|
+
*/
|
|
1490
|
+
get_collection_voice_collections__collection_id__get: {
|
|
1491
|
+
input: {
|
|
1492
|
+
path: {
|
|
1493
|
+
/** Collection id. */
|
|
1494
|
+
collection_id: number;
|
|
1495
|
+
};
|
|
1496
|
+
headers?: {
|
|
1497
|
+
"X-Target-Org-Id"?: string | null;
|
|
1498
|
+
};
|
|
1499
|
+
};
|
|
1500
|
+
output: ApiResponse_VoicePayload_;
|
|
1501
|
+
};
|
|
1502
|
+
/**
|
|
1503
|
+
* GET /voice/collections/{collection_id}/files/download-url
|
|
1504
|
+
* Get a temporary download URL for one file
|
|
1505
|
+
* tier: read · scope: voice:read
|
|
1506
|
+
*/
|
|
1507
|
+
get_collection_file_download_url_voice_collections__collection_id__files_download_url_get: {
|
|
1508
|
+
input: {
|
|
1509
|
+
path: {
|
|
1510
|
+
/** Collection id. */
|
|
1511
|
+
collection_id: number;
|
|
1512
|
+
};
|
|
1513
|
+
query: {
|
|
1514
|
+
/** File name within the collection. */
|
|
1515
|
+
filename: string;
|
|
1516
|
+
/** Folder inside the collection. Empty is the root. */
|
|
1517
|
+
folder_path?: string;
|
|
1518
|
+
/** How long the URL stays valid, in seconds. */
|
|
1519
|
+
expiration?: number;
|
|
1520
|
+
};
|
|
1521
|
+
headers?: {
|
|
1522
|
+
"X-Target-Org-Id"?: string | null;
|
|
1523
|
+
};
|
|
1524
|
+
};
|
|
1525
|
+
output: ApiResponse_VoicePayload_;
|
|
1526
|
+
};
|
|
1527
|
+
/**
|
|
1528
|
+
* GET /voice/collections/{collection_id}/stats
|
|
1529
|
+
* File statistics for a collection
|
|
1530
|
+
* tier: read · scope: voice:read
|
|
1531
|
+
*/
|
|
1532
|
+
get_collection_stats_voice_collections__collection_id__stats_get: {
|
|
1533
|
+
input: {
|
|
1534
|
+
path: {
|
|
1535
|
+
/** Collection id. */
|
|
1536
|
+
collection_id: number;
|
|
1537
|
+
};
|
|
1538
|
+
headers?: {
|
|
1539
|
+
"X-Target-Org-Id"?: string | null;
|
|
1540
|
+
};
|
|
1541
|
+
};
|
|
1542
|
+
output: ApiResponse_VoicePayload_;
|
|
1543
|
+
};
|
|
1544
|
+
/**
|
|
1545
|
+
* GET /voice/collections/{collection_id}/vector-status
|
|
1546
|
+
* Indexing status for a collection
|
|
1547
|
+
* tier: read · scope: voice:read
|
|
1548
|
+
*/
|
|
1549
|
+
get_collection_vector_status_voice_collections__collection_id__vector_status_get: {
|
|
1550
|
+
input: {
|
|
1551
|
+
path: {
|
|
1552
|
+
/** Collection id. */
|
|
1553
|
+
collection_id: number;
|
|
1554
|
+
};
|
|
1555
|
+
headers?: {
|
|
1556
|
+
"X-Target-Org-Id"?: string | null;
|
|
1557
|
+
};
|
|
1558
|
+
};
|
|
1559
|
+
output: ApiResponse_VoicePayload_;
|
|
1560
|
+
};
|
|
1561
|
+
/**
|
|
1562
|
+
* GET /voice/company-knowledge
|
|
1563
|
+
* Get the organisation's company knowledge
|
|
1564
|
+
* tier: read · scope: voice:read
|
|
1565
|
+
*/
|
|
1566
|
+
get_company_knowledge_voice_company_knowledge_get: {
|
|
1567
|
+
input: {
|
|
1568
|
+
query?: {
|
|
1569
|
+
/** False forces a fresh read. The cache is short-lived; prefer the default. */
|
|
1570
|
+
use_cache?: boolean;
|
|
1571
|
+
};
|
|
1572
|
+
headers?: {
|
|
1573
|
+
"X-Target-Org-Id"?: string | null;
|
|
1574
|
+
};
|
|
1575
|
+
};
|
|
1576
|
+
output: ApiResponse_VoicePayload_;
|
|
1577
|
+
};
|
|
1578
|
+
/**
|
|
1579
|
+
* GET /dialer/sessions/{session_id}
|
|
1580
|
+
* One dialer session
|
|
1581
|
+
* tier: read · scope: voice:read
|
|
1582
|
+
*/
|
|
1583
|
+
get_dialer_session_dialer_sessions__session_id__get: {
|
|
1584
|
+
input: {
|
|
1585
|
+
path: {
|
|
1586
|
+
/** Dialer session id. */
|
|
1587
|
+
session_id: string;
|
|
1588
|
+
};
|
|
1589
|
+
headers?: {
|
|
1590
|
+
"X-Target-Org-Id"?: string | null;
|
|
1591
|
+
};
|
|
1592
|
+
};
|
|
1593
|
+
output: ApiResponse_VoicePayload_;
|
|
1594
|
+
};
|
|
1595
|
+
/**
|
|
1596
|
+
* GET /dialer/settings/{user_email}
|
|
1597
|
+
* A rep's dialer settings
|
|
1598
|
+
* tier: read · scope: voice:read
|
|
1599
|
+
*/
|
|
1600
|
+
get_dialer_settings_dialer_settings__user_email__get: {
|
|
1601
|
+
input: {
|
|
1602
|
+
path: {
|
|
1603
|
+
/** The rep. */
|
|
1604
|
+
user_email: string;
|
|
1605
|
+
};
|
|
1606
|
+
headers?: {
|
|
1607
|
+
"X-Target-Org-Id"?: string | null;
|
|
1608
|
+
};
|
|
1609
|
+
};
|
|
1610
|
+
output: ApiResponse_VoicePayload_;
|
|
1611
|
+
};
|
|
1612
|
+
/**
|
|
1613
|
+
* GET /voice/dialer/stats
|
|
1614
|
+
* Parallel dialer analytics report
|
|
1615
|
+
* tier: read · scope: voice:read
|
|
1616
|
+
*/
|
|
1617
|
+
get_dialer_stats_voice_dialer_stats_get: {
|
|
1618
|
+
input: {
|
|
1619
|
+
query?: {
|
|
1620
|
+
/** Filter to a single session. */
|
|
1621
|
+
session_id?: string | null;
|
|
1622
|
+
/** Filter to one SDR's calls. */
|
|
1623
|
+
user_email?: string | null;
|
|
1624
|
+
/** Start date "YYYY-MM-DD". */
|
|
1625
|
+
date_from?: string | null;
|
|
1626
|
+
/** End date "YYYY-MM-DD". */
|
|
1627
|
+
date_to?: string | null;
|
|
1628
|
+
/** "DAILY" for per-day rows, "TOTAL" for one summary row. */
|
|
1629
|
+
aggregation?: string;
|
|
1630
|
+
};
|
|
1631
|
+
headers?: {
|
|
1632
|
+
"X-Target-Org-Id"?: string | null;
|
|
1633
|
+
};
|
|
1634
|
+
};
|
|
1635
|
+
output: ApiResponse_DialerStatsResponse_;
|
|
1636
|
+
};
|
|
1637
|
+
/**
|
|
1638
|
+
* GET /dialer/dispositions/{disposition_id}/usage
|
|
1639
|
+
* Whether a custom disposition is in use
|
|
1640
|
+
* tier: read · scope: voice:read
|
|
1641
|
+
*/
|
|
1642
|
+
get_disposition_usage_dialer_dispositions__disposition_id__usage_get: {
|
|
1643
|
+
input: {
|
|
1644
|
+
path: {
|
|
1645
|
+
/** Custom disposition id. */
|
|
1646
|
+
disposition_id: number;
|
|
1647
|
+
};
|
|
1648
|
+
headers?: {
|
|
1649
|
+
"X-Target-Org-Id"?: string | null;
|
|
1650
|
+
};
|
|
1651
|
+
};
|
|
1652
|
+
output: ApiResponse_VoicePayload_;
|
|
1653
|
+
};
|
|
1654
|
+
/**
|
|
1655
|
+
* GET /voice/company-knowledge/formatted
|
|
1656
|
+
* Get company knowledge as the agent prompt sees it
|
|
1657
|
+
* tier: read · scope: voice:read
|
|
1658
|
+
*/
|
|
1659
|
+
get_formatted_company_knowledge_voice_company_knowledge_formatted_get: {
|
|
1660
|
+
input: {
|
|
1661
|
+
headers?: {
|
|
1662
|
+
"X-Target-Org-Id"?: string | null;
|
|
1663
|
+
};
|
|
1664
|
+
};
|
|
1665
|
+
output: ApiResponse_VoicePayload_;
|
|
1666
|
+
};
|
|
1667
|
+
/**
|
|
1668
|
+
* GET /voice/jobs/{job_id}
|
|
1669
|
+
* Poll an async job
|
|
1670
|
+
* tier: read · scope: voice:read
|
|
1671
|
+
*/
|
|
1672
|
+
get_job_voice_jobs__job_id__get: {
|
|
1673
|
+
input: {
|
|
1674
|
+
path: {
|
|
1675
|
+
/** Job id from a 202 response. */
|
|
1676
|
+
job_id: string;
|
|
1677
|
+
};
|
|
1678
|
+
query?: {
|
|
1679
|
+
/** Which queue the job was placed on. */
|
|
1680
|
+
queue?: string;
|
|
1681
|
+
};
|
|
1682
|
+
headers?: {
|
|
1683
|
+
"X-Target-Org-Id"?: string | null;
|
|
1684
|
+
};
|
|
1685
|
+
};
|
|
1686
|
+
output: ApiResponse_VoicePayload_;
|
|
1687
|
+
};
|
|
1688
|
+
/**
|
|
1689
|
+
* GET /voice/campaigns/onboarding/threads/{thread_id}
|
|
1690
|
+
* Read an onboarding thread's messages
|
|
1691
|
+
* tier: read · scope: voice:read
|
|
1692
|
+
*/
|
|
1693
|
+
get_onboarding_thread_voice_campaigns_onboarding_threads__thread_id__get: {
|
|
1694
|
+
input: {
|
|
1695
|
+
path: {
|
|
1696
|
+
/** Thread id. */
|
|
1697
|
+
thread_id: string;
|
|
1698
|
+
};
|
|
1699
|
+
headers?: {
|
|
1700
|
+
"X-Target-Org-Id"?: string | null;
|
|
1701
|
+
};
|
|
1702
|
+
};
|
|
1703
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1704
|
+
};
|
|
1705
|
+
/**
|
|
1706
|
+
* GET /voice/campaigns/past-conversation
|
|
1707
|
+
* Summary of prior conversation with one contact
|
|
1708
|
+
* tier: read · scope: voice:read
|
|
1709
|
+
*/
|
|
1710
|
+
get_past_conversation_voice_campaigns_past_conversation_get: {
|
|
1711
|
+
input: {
|
|
1712
|
+
query: {
|
|
1713
|
+
/** Contact id. */
|
|
1714
|
+
contact_id: string;
|
|
1715
|
+
};
|
|
1716
|
+
headers?: {
|
|
1717
|
+
"X-Target-Org-Id"?: string | null;
|
|
1718
|
+
};
|
|
1719
|
+
};
|
|
1720
|
+
output: ApiResponse_VoicePayload_;
|
|
1721
|
+
};
|
|
1722
|
+
/**
|
|
1723
|
+
* GET /voice/twins/{agent_id}
|
|
1724
|
+
* Get a digital twin
|
|
1725
|
+
* tier: read · scope: voice:read
|
|
1726
|
+
*/
|
|
1727
|
+
get_twin_voice_twins__agent_id__get: {
|
|
1728
|
+
input: {
|
|
1729
|
+
path: {
|
|
1730
|
+
/** Twin id. */
|
|
1731
|
+
agent_id: string;
|
|
1732
|
+
};
|
|
1733
|
+
headers?: {
|
|
1734
|
+
"X-Target-Org-Id"?: string | null;
|
|
1735
|
+
};
|
|
1736
|
+
};
|
|
1737
|
+
output: ApiResponse_VoicePayload_;
|
|
1738
|
+
};
|
|
1739
|
+
/**
|
|
1740
|
+
* GET /voice/video-recordings/{video_id}
|
|
1741
|
+
* Get a video recording with its transcript
|
|
1742
|
+
* tier: read · scope: voice:read
|
|
1743
|
+
*/
|
|
1744
|
+
get_video_recording_voice_video_recordings__video_id__get: {
|
|
1745
|
+
input: {
|
|
1746
|
+
path: {
|
|
1747
|
+
/** Recording id. */
|
|
1748
|
+
video_id: string;
|
|
1749
|
+
};
|
|
1750
|
+
headers?: {
|
|
1751
|
+
"X-Target-Org-Id"?: string | null;
|
|
1752
|
+
};
|
|
1753
|
+
};
|
|
1754
|
+
output: ApiResponse_VoicePayload_;
|
|
1755
|
+
};
|
|
1756
|
+
/**
|
|
1757
|
+
* GET /voice/video-recordings/{video_id}/url
|
|
1758
|
+
* Get a temporary playback URL for a recording
|
|
1759
|
+
* tier: read · scope: voice:read
|
|
1760
|
+
*/
|
|
1761
|
+
get_video_recording_url_voice_video_recordings__video_id__url_get: {
|
|
1762
|
+
input: {
|
|
1763
|
+
path: {
|
|
1764
|
+
/** Recording id. */
|
|
1765
|
+
video_id: string;
|
|
1766
|
+
};
|
|
1767
|
+
query?: {
|
|
1768
|
+
/** How long the URL stays valid, in seconds. */
|
|
1769
|
+
expiration?: number;
|
|
1770
|
+
};
|
|
1771
|
+
headers?: {
|
|
1772
|
+
"X-Target-Org-Id"?: string | null;
|
|
1773
|
+
};
|
|
1774
|
+
};
|
|
1775
|
+
output: ApiResponse_VoicePayload_;
|
|
1776
|
+
};
|
|
1777
|
+
/**
|
|
1778
|
+
* GET /voice/agents/{agent_id}
|
|
1779
|
+
* Get a voice agent or twin by id
|
|
1780
|
+
* tier: read · scope: voice:read
|
|
1781
|
+
*/
|
|
1782
|
+
get_voice_agent_voice_agents__agent_id__get: {
|
|
1783
|
+
input: {
|
|
1784
|
+
path: {
|
|
1785
|
+
/** Agent UUID. */
|
|
1786
|
+
agent_id: string;
|
|
1787
|
+
};
|
|
1788
|
+
headers?: {
|
|
1789
|
+
"X-Target-Org-Id"?: string | null;
|
|
1790
|
+
};
|
|
1791
|
+
};
|
|
1792
|
+
output: ApiResponse_VoiceAgentResponse_;
|
|
1793
|
+
};
|
|
1794
|
+
/**
|
|
1795
|
+
* GET /voice/agents/{agent_id}/documents
|
|
1796
|
+
* An agent's documents
|
|
1797
|
+
* tier: read · scope: voice:read
|
|
1798
|
+
*/
|
|
1799
|
+
list_agent_documents_voice_agents__agent_id__documents_get: {
|
|
1800
|
+
input: {
|
|
1801
|
+
path: {
|
|
1802
|
+
/** Voice agent id. */
|
|
1803
|
+
agent_id: string;
|
|
1804
|
+
};
|
|
1805
|
+
headers?: {
|
|
1806
|
+
"X-Target-Org-Id"?: string | null;
|
|
1807
|
+
};
|
|
1808
|
+
};
|
|
1809
|
+
output: ApiResponse_VoicePayload_;
|
|
1810
|
+
};
|
|
1811
|
+
/**
|
|
1812
|
+
* GET /voice/agent-phone-numbers
|
|
1813
|
+
* Numbers free to give an agent, and numbers already given
|
|
1814
|
+
* tier: read · scope: voice:read
|
|
1815
|
+
*/
|
|
1816
|
+
list_agent_phone_numbers_voice_agent_phone_numbers_get: {
|
|
1817
|
+
input: {
|
|
1818
|
+
headers?: {
|
|
1819
|
+
"X-Target-Org-Id"?: string | null;
|
|
1820
|
+
};
|
|
1821
|
+
};
|
|
1822
|
+
output: ApiResponse_VoicePayload_;
|
|
1823
|
+
};
|
|
1824
|
+
/**
|
|
1825
|
+
* GET /voice/agents/{agent_id}/skills
|
|
1826
|
+
* An agent's skills
|
|
1827
|
+
* tier: read · scope: voice:read
|
|
1828
|
+
*/
|
|
1829
|
+
list_agent_skills_voice_agents__agent_id__skills_get: {
|
|
1830
|
+
input: {
|
|
1831
|
+
path: {
|
|
1832
|
+
/** Voice agent id. */
|
|
1833
|
+
agent_id: string;
|
|
1834
|
+
};
|
|
1835
|
+
headers?: {
|
|
1836
|
+
"X-Target-Org-Id"?: string | null;
|
|
1837
|
+
};
|
|
1838
|
+
};
|
|
1839
|
+
output: ApiResponse_VoicePayload_;
|
|
1840
|
+
};
|
|
1841
|
+
/**
|
|
1842
|
+
* GET /voice/agent-templates
|
|
1843
|
+
* Agent templates
|
|
1844
|
+
* tier: read · scope: voice:read
|
|
1845
|
+
*/
|
|
1846
|
+
list_agent_templates_voice_agent_templates_get: {
|
|
1847
|
+
input: {
|
|
1848
|
+
query?: {
|
|
1849
|
+
/** Only agents, or only twins. */
|
|
1850
|
+
entity_type?: ("agent" | "twin") | null;
|
|
1851
|
+
/** Include graph8's own templates. */
|
|
1852
|
+
include_system_templates?: boolean;
|
|
1853
|
+
};
|
|
1854
|
+
headers?: {
|
|
1855
|
+
"X-Target-Org-Id"?: string | null;
|
|
1856
|
+
};
|
|
1857
|
+
};
|
|
1858
|
+
output: ApiResponse_VoicePayload_;
|
|
1859
|
+
};
|
|
1860
|
+
/**
|
|
1861
|
+
* GET /voice/agents/{agent_id}/test-cases
|
|
1862
|
+
* The agent's saved evaluation cases
|
|
1863
|
+
* tier: read · scope: voice:read
|
|
1864
|
+
*/
|
|
1865
|
+
list_agent_test_cases_voice_agents__agent_id__test_cases_get: {
|
|
1866
|
+
input: {
|
|
1867
|
+
path: {
|
|
1868
|
+
/** Voice agent id. */
|
|
1869
|
+
agent_id: string;
|
|
1870
|
+
};
|
|
1871
|
+
headers?: {
|
|
1872
|
+
"X-Target-Org-Id"?: string | null;
|
|
1873
|
+
};
|
|
1874
|
+
};
|
|
1875
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1876
|
+
};
|
|
1877
|
+
/**
|
|
1878
|
+
* GET /voice/agents/{agent_id}/test-runs
|
|
1879
|
+
* Run history, newest first
|
|
1880
|
+
* tier: read · scope: voice:read
|
|
1881
|
+
*/
|
|
1882
|
+
list_agent_test_runs_voice_agents__agent_id__test_runs_get: {
|
|
1883
|
+
input: {
|
|
1884
|
+
path: {
|
|
1885
|
+
/** Voice agent id. */
|
|
1886
|
+
agent_id: string;
|
|
1887
|
+
};
|
|
1888
|
+
query?: {
|
|
1889
|
+
/** Only runs of this saved case. */
|
|
1890
|
+
test_case_id?: string | null;
|
|
1891
|
+
limit?: number;
|
|
1892
|
+
/** Include the stored previews (heavier). */
|
|
1893
|
+
include_output?: boolean;
|
|
1894
|
+
};
|
|
1895
|
+
headers?: {
|
|
1896
|
+
"X-Target-Org-Id"?: string | null;
|
|
1897
|
+
};
|
|
1898
|
+
};
|
|
1899
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1900
|
+
};
|
|
1901
|
+
/**
|
|
1902
|
+
* GET /voice/collections/files
|
|
1903
|
+
* List every file across every collection
|
|
1904
|
+
* tier: read · scope: voice:read
|
|
1905
|
+
*/
|
|
1906
|
+
list_all_collection_files_voice_collections_files_get: {
|
|
1907
|
+
input: {
|
|
1908
|
+
headers?: {
|
|
1909
|
+
"X-Target-Org-Id"?: string | null;
|
|
1910
|
+
};
|
|
1911
|
+
};
|
|
1912
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1913
|
+
};
|
|
1914
|
+
/**
|
|
1915
|
+
* GET /voice/call-results/campaigns
|
|
1916
|
+
* Campaign ids that have at least one call
|
|
1917
|
+
* tier: read · scope: voice:read
|
|
1918
|
+
*/
|
|
1919
|
+
list_call_result_campaigns_voice_call_results_campaigns_get: {
|
|
1920
|
+
input: {
|
|
1921
|
+
headers?: {
|
|
1922
|
+
"X-Target-Org-Id"?: string | null;
|
|
1923
|
+
};
|
|
1924
|
+
};
|
|
1925
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1926
|
+
};
|
|
1927
|
+
/**
|
|
1928
|
+
* GET /voice/dialer/calls
|
|
1929
|
+
* List dialer calls (filter by contact, SDR, or session)
|
|
1930
|
+
* tier: read · scope: voice:read
|
|
1931
|
+
*/
|
|
1932
|
+
list_calls_for_contact_voice_dialer_calls_get: {
|
|
1933
|
+
input: {
|
|
1934
|
+
query?: {
|
|
1935
|
+
/** CDP contact id (string form of mashup_contacts.id). If you only have a CRM-overlay id (cb_contact_extensions.id), resolve it via the contacts endpoint first. Optional - supply at least one of contact_id, user_email, or parallel_session_id. */
|
|
1936
|
+
contact_id?: string | null;
|
|
1937
|
+
/** SDR email. Returns dialer calls where the parent ParallelDialSession.user_email matches. Use for incremental ingestion of one SDR's call history. */
|
|
1938
|
+
user_email?: string | null;
|
|
1939
|
+
/** Filter to a single ParallelDialSession.session_id. */
|
|
1940
|
+
parallel_session_id?: string | null;
|
|
1941
|
+
/** ISO-8601 timestamp. Only return calls with created_at >= this value. Use for incremental polling (pass the max created_at from the previous page on the next call). */
|
|
1942
|
+
created_after?: string | null;
|
|
1943
|
+
/** Max calls to return, newest first. Capped at 100. */
|
|
1944
|
+
limit?: number;
|
|
1945
|
+
};
|
|
1946
|
+
headers?: {
|
|
1947
|
+
"X-Target-Org-Id"?: string | null;
|
|
1948
|
+
};
|
|
1949
|
+
};
|
|
1950
|
+
output: ApiResponse_CallsListResponse_;
|
|
1951
|
+
};
|
|
1952
|
+
/**
|
|
1953
|
+
* GET /voice/campaigns/email-models
|
|
1954
|
+
* Models available for email generation
|
|
1955
|
+
* tier: read · scope: voice:read
|
|
1956
|
+
*/
|
|
1957
|
+
list_campaign_email_models_voice_campaigns_email_models_get: {
|
|
1958
|
+
input: {
|
|
1959
|
+
headers?: {
|
|
1960
|
+
"X-Target-Org-Id"?: string | null;
|
|
1961
|
+
};
|
|
1962
|
+
};
|
|
1963
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1964
|
+
};
|
|
1965
|
+
/**
|
|
1966
|
+
* POST /voice/chat-agent/conversations
|
|
1967
|
+
* List chat agent conversations
|
|
1968
|
+
* tier: read · scope: voice:read
|
|
1969
|
+
*/
|
|
1970
|
+
list_chat_agent_conversations_voice_chat_agent_conversations_post: {
|
|
1971
|
+
input: {
|
|
1972
|
+
headers?: {
|
|
1973
|
+
"X-Target-Org-Id"?: string | null;
|
|
1974
|
+
};
|
|
1975
|
+
body?: Record<string, unknown>;
|
|
1976
|
+
};
|
|
1977
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1978
|
+
};
|
|
1979
|
+
/**
|
|
1980
|
+
* GET /voice/voice-library/voices
|
|
1981
|
+
* The voices this organisation has cloned
|
|
1982
|
+
* tier: read · scope: voice:read
|
|
1983
|
+
*/
|
|
1984
|
+
list_cloned_voices_voice_voice_library_voices_get: {
|
|
1985
|
+
input: {
|
|
1986
|
+
query?: {
|
|
1987
|
+
/** Only voices cloned by this user. */
|
|
1988
|
+
created_by_email?: string | null;
|
|
1989
|
+
limit?: number;
|
|
1990
|
+
offset?: number;
|
|
1991
|
+
};
|
|
1992
|
+
headers?: {
|
|
1993
|
+
"X-Target-Org-Id"?: string | null;
|
|
1994
|
+
};
|
|
1995
|
+
};
|
|
1996
|
+
output: ApiResponse_VoiceListPayload_;
|
|
1997
|
+
};
|
|
1998
|
+
/**
|
|
1999
|
+
* GET /voice/collections
|
|
2000
|
+
* List knowledge collections
|
|
2001
|
+
* tier: read · scope: voice:read
|
|
2002
|
+
*/
|
|
2003
|
+
list_collections_voice_collections_get: {
|
|
2004
|
+
input: {
|
|
2005
|
+
headers?: {
|
|
2006
|
+
"X-Target-Org-Id"?: string | null;
|
|
2007
|
+
};
|
|
2008
|
+
};
|
|
2009
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2010
|
+
};
|
|
2011
|
+
/**
|
|
2012
|
+
* GET /voice/phone-directory/departments/{department}
|
|
2013
|
+
* One department's reachable members
|
|
2014
|
+
* tier: read · scope: voice:read
|
|
2015
|
+
*/
|
|
2016
|
+
list_department_colleagues_voice_phone_directory_departments__department__get: {
|
|
2017
|
+
input: {
|
|
2018
|
+
path: {
|
|
2019
|
+
/** Department name; matched case-insensitively. */
|
|
2020
|
+
department: string;
|
|
2021
|
+
};
|
|
2022
|
+
headers?: {
|
|
2023
|
+
"X-Target-Org-Id"?: string | null;
|
|
2024
|
+
};
|
|
2025
|
+
};
|
|
2026
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2027
|
+
};
|
|
2028
|
+
/**
|
|
2029
|
+
* GET /voice/dialer/agents
|
|
2030
|
+
* List voice agents available for a dialer session
|
|
2031
|
+
* tier: read · scope: voice:read
|
|
2032
|
+
*/
|
|
2033
|
+
list_dialer_agents_voice_dialer_agents_get: {
|
|
2034
|
+
input: {
|
|
2035
|
+
query?: {
|
|
2036
|
+
/** Filter by agent role (e.g. "SDR", "AE", "Receptionist", "CSM"). */
|
|
2037
|
+
role?: string | null;
|
|
2038
|
+
/** Filter by status (e.g. "active"). Defaults to all. */
|
|
2039
|
+
agent_status?: string | null;
|
|
2040
|
+
/** "agent" or "twin". Defaults to all. */
|
|
2041
|
+
entity_type?: string | null;
|
|
2042
|
+
/** Substring match on agent name. */
|
|
2043
|
+
search?: string | null;
|
|
2044
|
+
};
|
|
2045
|
+
headers?: {
|
|
2046
|
+
"X-Target-Org-Id"?: string | null;
|
|
2047
|
+
};
|
|
2048
|
+
};
|
|
2049
|
+
output: ApiResponse_DialerAgentsListResponse_;
|
|
2050
|
+
};
|
|
2051
|
+
/**
|
|
2052
|
+
* GET /voice/dialer/numbers
|
|
2053
|
+
* List dialer-eligible phone numbers
|
|
2054
|
+
* tier: read · scope: voice:read
|
|
2055
|
+
*/
|
|
2056
|
+
list_dialer_numbers_voice_dialer_numbers_get: {
|
|
2057
|
+
input: {
|
|
2058
|
+
query?: {
|
|
2059
|
+
/** Optional - restrict to numbers assigned to a specific SDR. */
|
|
2060
|
+
user_email?: string | null;
|
|
2061
|
+
};
|
|
2062
|
+
headers?: {
|
|
2063
|
+
"X-Target-Org-Id"?: string | null;
|
|
2064
|
+
};
|
|
2065
|
+
};
|
|
2066
|
+
output: ApiResponse_DialerNumbersListResponse_;
|
|
2067
|
+
};
|
|
2068
|
+
/**
|
|
2069
|
+
* GET /voice/dialer/sessions
|
|
2070
|
+
* List parallel dialer sessions
|
|
2071
|
+
* tier: read · scope: voice:read
|
|
2072
|
+
*/
|
|
2073
|
+
list_dialer_sessions_voice_dialer_sessions_get: {
|
|
2074
|
+
input: {
|
|
2075
|
+
query?: {
|
|
2076
|
+
/** Page number (1-indexed). */
|
|
2077
|
+
page?: number;
|
|
2078
|
+
/** Sessions per page (max 200). */
|
|
2079
|
+
page_size?: number;
|
|
2080
|
+
/** Comma-separated session statuses (e.g. "ACTIVE,PAUSED"). */
|
|
2081
|
+
status?: string | null;
|
|
2082
|
+
/** Filter by SDR email (substring). */
|
|
2083
|
+
user_email?: string | null;
|
|
2084
|
+
/** Filter by session name (substring). */
|
|
2085
|
+
name?: string | null;
|
|
2086
|
+
/** Filter by campaign id (substring). */
|
|
2087
|
+
campaign_id?: string | null;
|
|
2088
|
+
/** Filter by list id stored in session metadata. */
|
|
2089
|
+
list_id?: string | null;
|
|
2090
|
+
/** Filter by list title (substring). */
|
|
2091
|
+
list_name?: string | null;
|
|
2092
|
+
/** ISO timestamp - sessions created on/after. */
|
|
2093
|
+
date_from?: string | null;
|
|
2094
|
+
/** ISO timestamp - sessions created on/before. */
|
|
2095
|
+
date_to?: string | null;
|
|
2096
|
+
/** Column to sort on (e.g. "created_at", "updated_at", "total_calls"). */
|
|
2097
|
+
sort_by?: string | null;
|
|
2098
|
+
/** "asc" or "desc". Defaults to desc. */
|
|
2099
|
+
sort_order?: string;
|
|
2100
|
+
};
|
|
2101
|
+
headers?: {
|
|
2102
|
+
"X-Target-Org-Id"?: string | null;
|
|
2103
|
+
};
|
|
2104
|
+
};
|
|
2105
|
+
output: ApiResponse_DialerSessionsListResponse_;
|
|
2106
|
+
};
|
|
2107
|
+
/**
|
|
2108
|
+
* GET /voice/call-results/inbound
|
|
2109
|
+
* Inbound call results
|
|
2110
|
+
* tier: read · scope: voice:read
|
|
2111
|
+
*/
|
|
2112
|
+
list_inbound_call_results_voice_call_results_inbound_get: {
|
|
2113
|
+
input: {
|
|
2114
|
+
headers?: {
|
|
2115
|
+
"X-Target-Org-Id"?: string | null;
|
|
2116
|
+
};
|
|
2117
|
+
};
|
|
2118
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2119
|
+
};
|
|
2120
|
+
/**
|
|
2121
|
+
* GET /voice/inbound-routing/rules
|
|
2122
|
+
* List inbound routing rules
|
|
2123
|
+
* tier: read · scope: voice:read
|
|
2124
|
+
*/
|
|
2125
|
+
list_inbound_routes_voice_inbound_routing_rules_get: {
|
|
2126
|
+
input: {
|
|
2127
|
+
query?: {
|
|
2128
|
+
/** Only rules for this number. */
|
|
2129
|
+
phone_number?: string | null;
|
|
2130
|
+
};
|
|
2131
|
+
headers?: {
|
|
2132
|
+
"X-Target-Org-Id"?: string | null;
|
|
2133
|
+
};
|
|
2134
|
+
};
|
|
2135
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2136
|
+
};
|
|
2137
|
+
/**
|
|
2138
|
+
* GET /voice/knowledge-base/files
|
|
2139
|
+
* Files in the organisation knowledge base
|
|
2140
|
+
* tier: read · scope: voice:read
|
|
2141
|
+
*/
|
|
2142
|
+
list_knowledge_base_files_voice_knowledge_base_files_get: {
|
|
2143
|
+
input: {
|
|
2144
|
+
headers?: {
|
|
2145
|
+
"X-Target-Org-Id"?: string | null;
|
|
2146
|
+
};
|
|
2147
|
+
};
|
|
2148
|
+
output: ApiResponse_VoicePayload_;
|
|
2149
|
+
};
|
|
2150
|
+
/**
|
|
2151
|
+
* GET /voice/mcp-servers/{mcp_server_id}/tools
|
|
2152
|
+
* Live tool list from an MCP server
|
|
2153
|
+
* tier: external · scope: voice:run
|
|
2154
|
+
*/
|
|
2155
|
+
list_mcp_server_tools_voice_mcp_servers__mcp_server_id__tools_get: {
|
|
2156
|
+
input: {
|
|
2157
|
+
path: {
|
|
2158
|
+
/** MCP server id. */
|
|
2159
|
+
mcp_server_id: string;
|
|
2160
|
+
};
|
|
2161
|
+
query?: {
|
|
2162
|
+
/** True re-reads from the server and replaces the cache. */
|
|
2163
|
+
refresh?: boolean;
|
|
2164
|
+
};
|
|
2165
|
+
headers?: {
|
|
2166
|
+
"X-Target-Org-Id"?: string | null;
|
|
2167
|
+
};
|
|
2168
|
+
};
|
|
2169
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2170
|
+
};
|
|
2171
|
+
/**
|
|
2172
|
+
* GET /voice/dialer/missed-callbacks
|
|
2173
|
+
* List missed inbound callbacks
|
|
2174
|
+
* tier: read · scope: voice:read
|
|
2175
|
+
*/
|
|
2176
|
+
list_missed_callbacks_voice_dialer_missed_callbacks_get: {
|
|
2177
|
+
input: {
|
|
2178
|
+
query?: {
|
|
2179
|
+
/** Max rows to return. */
|
|
2180
|
+
limit?: number;
|
|
2181
|
+
};
|
|
2182
|
+
headers?: {
|
|
2183
|
+
"X-Target-Org-Id"?: string | null;
|
|
2184
|
+
};
|
|
2185
|
+
};
|
|
2186
|
+
output: ApiResponse_MissedCallbacksResponse_;
|
|
2187
|
+
};
|
|
2188
|
+
/**
|
|
2189
|
+
* GET /voice/campaigns/onboarding/threads
|
|
2190
|
+
* List onboarding conversation threads
|
|
2191
|
+
* tier: read · scope: voice:read
|
|
2192
|
+
*/
|
|
2193
|
+
list_onboarding_threads_voice_campaigns_onboarding_threads_get: {
|
|
2194
|
+
input: {
|
|
2195
|
+
headers?: {
|
|
2196
|
+
"X-Target-Org-Id"?: string | null;
|
|
2197
|
+
};
|
|
2198
|
+
};
|
|
2199
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2200
|
+
};
|
|
2201
|
+
/**
|
|
2202
|
+
* GET /voice/campaigns/past-conversations
|
|
2203
|
+
* All recorded conversation history for one contact
|
|
2204
|
+
* tier: read · scope: voice:read
|
|
2205
|
+
*/
|
|
2206
|
+
list_past_conversations_voice_campaigns_past_conversations_get: {
|
|
2207
|
+
input: {
|
|
2208
|
+
query: {
|
|
2209
|
+
/** Contact id. */
|
|
2210
|
+
contact_id: number;
|
|
2211
|
+
};
|
|
2212
|
+
headers?: {
|
|
2213
|
+
"X-Target-Org-Id"?: string | null;
|
|
2214
|
+
};
|
|
2215
|
+
};
|
|
2216
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2217
|
+
};
|
|
2218
|
+
/**
|
|
2219
|
+
* GET /voice/inbound-calls/pending
|
|
2220
|
+
* Inbound calls ringing right now
|
|
2221
|
+
* tier: read · scope: voice:read
|
|
2222
|
+
*/
|
|
2223
|
+
list_pending_inbound_calls_voice_inbound_calls_pending_get: {
|
|
2224
|
+
input: {
|
|
2225
|
+
headers?: {
|
|
2226
|
+
"X-Target-Org-Id"?: string | null;
|
|
2227
|
+
};
|
|
2228
|
+
};
|
|
2229
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2230
|
+
};
|
|
2231
|
+
/**
|
|
2232
|
+
* GET /voice/phone-directory
|
|
2233
|
+
* The organisation's phone directory
|
|
2234
|
+
* tier: read · scope: voice:read
|
|
2235
|
+
*/
|
|
2236
|
+
list_phone_directory_voice_phone_directory_get: {
|
|
2237
|
+
input: {
|
|
2238
|
+
headers?: {
|
|
2239
|
+
"X-Target-Org-Id"?: string | null;
|
|
2240
|
+
};
|
|
2241
|
+
};
|
|
2242
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2243
|
+
};
|
|
2244
|
+
/**
|
|
2245
|
+
* GET /voice/voice-library/presets
|
|
2246
|
+
* List the preset voices an agent can speak with
|
|
2247
|
+
* tier: read · scope: voice:read
|
|
2248
|
+
*/
|
|
2249
|
+
list_preset_voices_voice_voice_library_presets_get: {
|
|
2250
|
+
input: {
|
|
2251
|
+
query?: {
|
|
2252
|
+
/** Rows to return. */
|
|
2253
|
+
limit?: number;
|
|
2254
|
+
};
|
|
2255
|
+
headers?: {
|
|
2256
|
+
"X-Target-Org-Id"?: string | null;
|
|
2257
|
+
};
|
|
2258
|
+
};
|
|
2259
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2260
|
+
};
|
|
2261
|
+
/**
|
|
2262
|
+
* GET /voice/phone-directory/reachable
|
|
2263
|
+
* Colleagues who can be reached right now
|
|
2264
|
+
* tier: read · scope: voice:read
|
|
2265
|
+
*/
|
|
2266
|
+
list_reachable_colleagues_voice_phone_directory_reachable_get: {
|
|
2267
|
+
input: {
|
|
2268
|
+
headers?: {
|
|
2269
|
+
"X-Target-Org-Id"?: string | null;
|
|
2270
|
+
};
|
|
2271
|
+
};
|
|
2272
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2273
|
+
};
|
|
2274
|
+
/**
|
|
2275
|
+
* GET /voice/collections/{collection_id}/scrape-sources
|
|
2276
|
+
* List the web sources feeding a collection
|
|
2277
|
+
* tier: read · scope: voice:read
|
|
2278
|
+
*/
|
|
2279
|
+
list_scrape_sources_voice_collections__collection_id__scrape_sources_get: {
|
|
2280
|
+
input: {
|
|
2281
|
+
path: {
|
|
2282
|
+
/** Collection id. */
|
|
2283
|
+
collection_id: number;
|
|
2284
|
+
};
|
|
2285
|
+
headers?: {
|
|
2286
|
+
"X-Target-Org-Id"?: string | null;
|
|
2287
|
+
};
|
|
2288
|
+
};
|
|
2289
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2290
|
+
};
|
|
2291
|
+
/**
|
|
2292
|
+
* GET /voice/twins
|
|
2293
|
+
* The organisation's twins
|
|
2294
|
+
* tier: read · scope: voice:read
|
|
2295
|
+
*/
|
|
2296
|
+
list_twins_voice_twins_get: {
|
|
2297
|
+
input: {
|
|
2298
|
+
headers?: {
|
|
2299
|
+
"X-Target-Org-Id"?: string | null;
|
|
2300
|
+
};
|
|
2301
|
+
};
|
|
2302
|
+
output: ApiResponse_VoicePayload_;
|
|
2303
|
+
};
|
|
2304
|
+
/**
|
|
2305
|
+
* GET /voice/video-recordings
|
|
2306
|
+
* List video recordings
|
|
2307
|
+
* tier: read · scope: voice:read
|
|
2308
|
+
*/
|
|
2309
|
+
list_video_recordings_voice_video_recordings_get: {
|
|
2310
|
+
input: {
|
|
2311
|
+
query?: {
|
|
2312
|
+
/** Only recordings for this subject (candidate, employee, ...). */
|
|
2313
|
+
user_id?: string | null;
|
|
2314
|
+
};
|
|
2315
|
+
headers?: {
|
|
2316
|
+
"X-Target-Org-Id"?: string | null;
|
|
2317
|
+
};
|
|
2318
|
+
};
|
|
2319
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2320
|
+
};
|
|
2321
|
+
/**
|
|
2322
|
+
* GET /voice/agents
|
|
2323
|
+
* List voice agents and twins
|
|
2324
|
+
* tier: read · scope: voice:read
|
|
2325
|
+
*/
|
|
2326
|
+
list_voice_agents_voice_agents_get: {
|
|
2327
|
+
input: {
|
|
2328
|
+
query?: {
|
|
2329
|
+
/** Filter by entity type ("agent" or "twin"). */
|
|
2330
|
+
entity_type?: string | null;
|
|
2331
|
+
/** Filter by agent role. */
|
|
2332
|
+
role?: string | null;
|
|
2333
|
+
/** Filter by status. */
|
|
2334
|
+
agent_status?: string | null;
|
|
2335
|
+
/** true=templates only, false=non-templates only. */
|
|
2336
|
+
is_template?: boolean | null;
|
|
2337
|
+
/** Substring match on agent name. */
|
|
2338
|
+
search?: string | null;
|
|
2339
|
+
/** Page number (1-indexed). */
|
|
2340
|
+
page?: number;
|
|
2341
|
+
/** Results per page (max 100). */
|
|
2342
|
+
page_size?: number;
|
|
2343
|
+
/** "created_at" | "agent_name" | "role" | "status". */
|
|
2344
|
+
sort_by?: string;
|
|
2345
|
+
/** "asc" or "desc". */
|
|
2346
|
+
sort_order?: string;
|
|
2347
|
+
};
|
|
2348
|
+
headers?: {
|
|
2349
|
+
"X-Target-Org-Id"?: string | null;
|
|
2350
|
+
};
|
|
2351
|
+
};
|
|
2352
|
+
output: ApiResponse_VoiceAgentListResponse_;
|
|
2353
|
+
};
|
|
2354
|
+
/**
|
|
2355
|
+
* GET /voice/dispositions
|
|
2356
|
+
* List system + org custom call dispositions
|
|
2357
|
+
* tier: read · scope: voice:read
|
|
2358
|
+
*/
|
|
2359
|
+
list_voice_dispositions_voice_dispositions_get: {
|
|
2360
|
+
input: {
|
|
2361
|
+
headers?: {
|
|
2362
|
+
"X-Target-Org-Id"?: string | null;
|
|
2363
|
+
};
|
|
2364
|
+
};
|
|
2365
|
+
output: ApiResponse_VoiceDispositionListResponse_;
|
|
2366
|
+
};
|
|
2367
|
+
/**
|
|
2368
|
+
* GET /voice/voicemails
|
|
2369
|
+
* List voicemails
|
|
2370
|
+
* tier: read · scope: voice:read
|
|
2371
|
+
*/
|
|
2372
|
+
list_voicemails_voice_voicemails_get: {
|
|
2373
|
+
input: {
|
|
2374
|
+
query?: {
|
|
2375
|
+
/** True for read only, false for unread only. Omit for both. */
|
|
2376
|
+
is_read?: boolean | null;
|
|
2377
|
+
/** Only voicemails assigned to this rep. */
|
|
2378
|
+
sdr_email?: string | null;
|
|
2379
|
+
/** Rows per page. */
|
|
2380
|
+
limit?: number;
|
|
2381
|
+
/** Rows to skip. */
|
|
2382
|
+
offset?: number;
|
|
2383
|
+
};
|
|
2384
|
+
headers?: {
|
|
2385
|
+
"X-Target-Org-Id"?: string | null;
|
|
2386
|
+
};
|
|
2387
|
+
};
|
|
2388
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2389
|
+
};
|
|
2390
|
+
/**
|
|
2391
|
+
* POST /dialer/parallel-calls/sessions/{session_id}/calls
|
|
2392
|
+
* Call results for chosen contacts in a parallel session
|
|
2393
|
+
* tier: read · scope: voice:read
|
|
2394
|
+
*/
|
|
2395
|
+
lookup_session_calls_dialer_parallel_calls_sessions__session_id__calls_post: {
|
|
2396
|
+
input: {
|
|
2397
|
+
path: {
|
|
2398
|
+
/** Dialer session id. */
|
|
2399
|
+
session_id: string;
|
|
2400
|
+
};
|
|
2401
|
+
query?: {
|
|
2402
|
+
/** Latest call plus history per contact, or a flat list. */
|
|
2403
|
+
group_by_contact?: boolean;
|
|
2404
|
+
};
|
|
2405
|
+
headers?: {
|
|
2406
|
+
"X-Target-Org-Id"?: string | null;
|
|
2407
|
+
};
|
|
2408
|
+
body: SessionCallsLookup;
|
|
2409
|
+
};
|
|
2410
|
+
output: ApiResponse_VoicePayload_;
|
|
2411
|
+
};
|
|
2412
|
+
/**
|
|
2413
|
+
* PATCH /voice/voicemails/read-all
|
|
2414
|
+
* Mark every voicemail read
|
|
2415
|
+
* tier: write · scope: voice:write
|
|
2416
|
+
*/
|
|
2417
|
+
mark_all_voicemails_read_voice_voicemails_read_all_patch: {
|
|
2418
|
+
input: {
|
|
2419
|
+
query: {
|
|
2420
|
+
/** Who is marking them read. Recorded against each row. */
|
|
2421
|
+
sdr_email: string;
|
|
2422
|
+
/** Narrow to one rep's voicemails. OMITTING THIS CLEARS THE WHOLE ORGANISATION'S unread state, not just this rep's. */
|
|
2423
|
+
assigned_to?: string | null;
|
|
2424
|
+
};
|
|
2425
|
+
headers?: {
|
|
2426
|
+
"X-Target-Org-Id"?: string | null;
|
|
2427
|
+
};
|
|
2428
|
+
};
|
|
2429
|
+
output: ApiResponse_VoicePayload_;
|
|
2430
|
+
};
|
|
2431
|
+
/**
|
|
2432
|
+
* PATCH /voice/voicemails/{voicemail_id}/read
|
|
2433
|
+
* Mark one voicemail read
|
|
2434
|
+
* tier: write · scope: voice:write
|
|
2435
|
+
*/
|
|
2436
|
+
mark_voicemail_read_voice_voicemails__voicemail_id__read_patch: {
|
|
2437
|
+
input: {
|
|
2438
|
+
path: {
|
|
2439
|
+
/** Voicemail id. */
|
|
2440
|
+
voicemail_id: number;
|
|
2441
|
+
};
|
|
2442
|
+
query: {
|
|
2443
|
+
/** Who read it. Recorded against the row. */
|
|
2444
|
+
sdr_email: string;
|
|
2445
|
+
};
|
|
2446
|
+
headers?: {
|
|
2447
|
+
"X-Target-Org-Id"?: string | null;
|
|
2448
|
+
};
|
|
2449
|
+
};
|
|
2450
|
+
output: ApiResponse_VoicePayload_;
|
|
2451
|
+
};
|
|
2452
|
+
/**
|
|
2453
|
+
* POST /voice/collections/{collection_id}/files/paste-text
|
|
2454
|
+
* Create a text file in a collection from pasted content
|
|
2455
|
+
* tier: billable · scope: voice:run
|
|
2456
|
+
*/
|
|
2457
|
+
paste_text_into_collection_voice_collections__collection_id__files_paste_text_post: {
|
|
2458
|
+
input: {
|
|
2459
|
+
path: {
|
|
2460
|
+
/** Collection id. */
|
|
2461
|
+
collection_id: number;
|
|
2462
|
+
};
|
|
2463
|
+
headers?: {
|
|
2464
|
+
"X-Target-Org-Id"?: string | null;
|
|
2465
|
+
};
|
|
2466
|
+
body: CollectionPasteText;
|
|
2467
|
+
};
|
|
2468
|
+
output: ApiResponse_VoicePayload_;
|
|
2469
|
+
};
|
|
2470
|
+
/**
|
|
2471
|
+
* POST /dialer/sessions/{session_id}/pause
|
|
2472
|
+
* Pause a dialer session
|
|
2473
|
+
* tier: write · scope: voice:write
|
|
2474
|
+
*/
|
|
2475
|
+
pause_dialer_session_dialer_sessions__session_id__pause_post: {
|
|
2476
|
+
input: {
|
|
2477
|
+
path: {
|
|
2478
|
+
/** Dialer session id. */
|
|
2479
|
+
session_id: string;
|
|
2480
|
+
};
|
|
2481
|
+
query?: {
|
|
2482
|
+
/** The rep pausing, for the session log. */
|
|
2483
|
+
user_email?: string | null;
|
|
2484
|
+
};
|
|
2485
|
+
headers?: {
|
|
2486
|
+
"X-Target-Org-Id"?: string | null;
|
|
2487
|
+
};
|
|
2488
|
+
};
|
|
2489
|
+
output: ApiResponse_VoicePayload_;
|
|
2490
|
+
};
|
|
2491
|
+
/**
|
|
2492
|
+
* POST /voice/collections/{collection_id}/reindex
|
|
2493
|
+
* Rebuild a collection's vector index
|
|
2494
|
+
* tier: billable · scope: voice:run
|
|
2495
|
+
*/
|
|
2496
|
+
reindex_collection_voice_collections__collection_id__reindex_post: {
|
|
2497
|
+
input: {
|
|
2498
|
+
path: {
|
|
2499
|
+
/** Collection id. */
|
|
2500
|
+
collection_id: number;
|
|
2501
|
+
};
|
|
2502
|
+
headers?: {
|
|
2503
|
+
"X-Target-Org-Id"?: string | null;
|
|
2504
|
+
};
|
|
2505
|
+
};
|
|
2506
|
+
output: ApiResponse_VoicePayload_;
|
|
2507
|
+
};
|
|
2508
|
+
/**
|
|
2509
|
+
* PUT /voice/chat-agent/conversations/{chat_id}/name
|
|
2510
|
+
* Rename a chat agent conversation
|
|
2511
|
+
* tier: write · scope: voice:write
|
|
2512
|
+
*/
|
|
2513
|
+
rename_chat_agent_conversation_voice_chat_agent_conversations__chat_id__name_put: {
|
|
2514
|
+
input: {
|
|
2515
|
+
path: {
|
|
2516
|
+
/** Conversation id. */
|
|
2517
|
+
chat_id: string;
|
|
2518
|
+
};
|
|
2519
|
+
query: {
|
|
2520
|
+
/** The agent that owns it. */
|
|
2521
|
+
agent_id: string;
|
|
2522
|
+
};
|
|
2523
|
+
headers?: {
|
|
2524
|
+
"X-Target-Org-Id"?: string | null;
|
|
2525
|
+
};
|
|
2526
|
+
body: Body_rename_chat_agent_conversation_voice_chat_agent_conversations__chat_id__name_put;
|
|
2527
|
+
};
|
|
2528
|
+
output: ApiResponse_VoicePayload_;
|
|
2529
|
+
};
|
|
2530
|
+
/**
|
|
2531
|
+
* PUT /voice/collections/{collection_id}/files/rename
|
|
2532
|
+
* Rename or move a file within a collection
|
|
2533
|
+
* tier: write · scope: voice:write
|
|
2534
|
+
*/
|
|
2535
|
+
rename_collection_file_voice_collections__collection_id__files_rename_put: {
|
|
2536
|
+
input: {
|
|
2537
|
+
path: {
|
|
2538
|
+
/** Collection id. */
|
|
2539
|
+
collection_id: number;
|
|
2540
|
+
};
|
|
2541
|
+
query: {
|
|
2542
|
+
/** Current file name. */
|
|
2543
|
+
old_filename: string;
|
|
2544
|
+
/** New file name. */
|
|
2545
|
+
new_filename: string;
|
|
2546
|
+
/** Current folder. Empty is the root. */
|
|
2547
|
+
old_folder_path?: string;
|
|
2548
|
+
/** Target folder. Empty is the root. */
|
|
2549
|
+
new_folder_path?: string;
|
|
2550
|
+
};
|
|
2551
|
+
headers?: {
|
|
2552
|
+
"X-Target-Org-Id"?: string | null;
|
|
2553
|
+
};
|
|
2554
|
+
};
|
|
2555
|
+
output: ApiResponse_VoicePayload_;
|
|
2556
|
+
};
|
|
2557
|
+
/**
|
|
2558
|
+
* PUT /voice/knowledge-base/files/rename
|
|
2559
|
+
* Rename a knowledge-base file
|
|
2560
|
+
* tier: write · scope: voice:write
|
|
2561
|
+
*/
|
|
2562
|
+
rename_knowledge_base_file_voice_knowledge_base_files_rename_put: {
|
|
2563
|
+
input: {
|
|
2564
|
+
query: {
|
|
2565
|
+
/** Current name. */
|
|
2566
|
+
old_filename: string;
|
|
2567
|
+
/** New name. */
|
|
2568
|
+
new_filename: string;
|
|
2569
|
+
};
|
|
2570
|
+
headers?: {
|
|
2571
|
+
"X-Target-Org-Id"?: string | null;
|
|
2572
|
+
};
|
|
2573
|
+
};
|
|
2574
|
+
output: ApiResponse_VoicePayload_;
|
|
2575
|
+
};
|
|
2576
|
+
/**
|
|
2577
|
+
* GET /voice/research/business-data
|
|
2578
|
+
* Business profile for a company website
|
|
2579
|
+
* tier: billable · scope: voice:run
|
|
2580
|
+
*/
|
|
2581
|
+
research_business_data_voice_research_business_data_get: {
|
|
2582
|
+
input: {
|
|
2583
|
+
query: {
|
|
2584
|
+
/** The company website to work from. */
|
|
2585
|
+
customer_url: string;
|
|
2586
|
+
/** True returns a job id immediately (202) instead of waiting. Poll `GET /voice/jobs/{job_id}` for the result. */
|
|
2587
|
+
run_async?: boolean;
|
|
2588
|
+
};
|
|
2589
|
+
headers?: {
|
|
2590
|
+
"X-Target-Org-Id"?: string | null;
|
|
2591
|
+
};
|
|
2592
|
+
};
|
|
2593
|
+
output: ApiResponse_VoicePayload_;
|
|
2594
|
+
};
|
|
2595
|
+
/**
|
|
2596
|
+
* POST /voice/research/company
|
|
2597
|
+
* Deep-research a company
|
|
2598
|
+
* tier: billable · scope: voice:run
|
|
2599
|
+
*/
|
|
2600
|
+
research_company_voice_research_company_post: {
|
|
2601
|
+
input: {
|
|
2602
|
+
headers?: {
|
|
2603
|
+
"X-Target-Org-Id"?: string | null;
|
|
2604
|
+
};
|
|
2605
|
+
body: Body_research_company_voice_research_company_post;
|
|
2606
|
+
};
|
|
2607
|
+
output: ApiResponse_VoicePayload_;
|
|
2608
|
+
};
|
|
2609
|
+
/**
|
|
2610
|
+
* GET /voice/research/competitors
|
|
2611
|
+
* Competitors of a company
|
|
2612
|
+
* tier: billable · scope: voice:run
|
|
2613
|
+
*/
|
|
2614
|
+
research_competitors_voice_research_competitors_get: {
|
|
2615
|
+
input: {
|
|
2616
|
+
query: {
|
|
2617
|
+
/** The company website to work from. */
|
|
2618
|
+
customer_url: string;
|
|
2619
|
+
/** True returns a job id immediately (202) instead of waiting. Poll `GET /voice/jobs/{job_id}` for the result. */
|
|
2620
|
+
run_async?: boolean;
|
|
2621
|
+
};
|
|
2622
|
+
headers?: {
|
|
2623
|
+
"X-Target-Org-Id"?: string | null;
|
|
2624
|
+
};
|
|
2625
|
+
};
|
|
2626
|
+
output: ApiResponse_VoicePayload_;
|
|
2627
|
+
};
|
|
2628
|
+
/**
|
|
2629
|
+
* GET /voice/research/faq
|
|
2630
|
+
* FAQs extracted from a company website
|
|
2631
|
+
* tier: billable · scope: voice:run
|
|
2632
|
+
*/
|
|
2633
|
+
research_faq_voice_research_faq_get: {
|
|
2634
|
+
input: {
|
|
2635
|
+
query: {
|
|
2636
|
+
/** The company website to work from. */
|
|
2637
|
+
customer_url: string;
|
|
2638
|
+
/** True returns a job id immediately (202) instead of waiting. Poll `GET /voice/jobs/{job_id}` for the result. */
|
|
2639
|
+
run_async?: boolean;
|
|
2640
|
+
};
|
|
2641
|
+
headers?: {
|
|
2642
|
+
"X-Target-Org-Id"?: string | null;
|
|
2643
|
+
};
|
|
2644
|
+
};
|
|
2645
|
+
output: ApiResponse_VoicePayload_;
|
|
2646
|
+
};
|
|
2647
|
+
/**
|
|
2648
|
+
* GET /voice/research/keywords
|
|
2649
|
+
* Search keywords and paid-search data for a company
|
|
2650
|
+
* tier: billable · scope: voice:run
|
|
2651
|
+
*/
|
|
2652
|
+
research_keywords_voice_research_keywords_get: {
|
|
2653
|
+
input: {
|
|
2654
|
+
query: {
|
|
2655
|
+
/** The company website to work from. */
|
|
2656
|
+
customer_url: string;
|
|
2657
|
+
/** True returns a job id immediately (202) instead of waiting. Poll `GET /voice/jobs/{job_id}` for the result. */
|
|
2658
|
+
run_async?: boolean;
|
|
2659
|
+
};
|
|
2660
|
+
headers?: {
|
|
2661
|
+
"X-Target-Org-Id"?: string | null;
|
|
2662
|
+
};
|
|
2663
|
+
};
|
|
2664
|
+
output: ApiResponse_VoicePayload_;
|
|
2665
|
+
};
|
|
2666
|
+
/**
|
|
2667
|
+
* POST /voice/research/org-chart
|
|
2668
|
+
* Research a company's org chart
|
|
2669
|
+
* tier: billable · scope: voice:run
|
|
2670
|
+
*/
|
|
2671
|
+
research_org_chart_voice_research_org_chart_post: {
|
|
2672
|
+
input: {
|
|
2673
|
+
headers?: {
|
|
2674
|
+
"X-Target-Org-Id"?: string | null;
|
|
2675
|
+
};
|
|
2676
|
+
body: Body_research_org_chart_voice_research_org_chart_post;
|
|
2677
|
+
};
|
|
2678
|
+
output: ApiResponse_VoicePayload_;
|
|
2679
|
+
};
|
|
2680
|
+
/**
|
|
2681
|
+
* GET /voice/research/prospect-company
|
|
2682
|
+
* Competitor and signal profile for a prospect's company
|
|
2683
|
+
* tier: billable · scope: voice:run
|
|
2684
|
+
*/
|
|
2685
|
+
research_prospect_company_voice_research_prospect_company_get: {
|
|
2686
|
+
input: {
|
|
2687
|
+
query: {
|
|
2688
|
+
/** Prospect's company name. */
|
|
2689
|
+
company_name: string;
|
|
2690
|
+
/** Prospect's company website. */
|
|
2691
|
+
company_website: string;
|
|
2692
|
+
/** What the company does, if known. */
|
|
2693
|
+
company_description?: string;
|
|
2694
|
+
};
|
|
2695
|
+
headers?: {
|
|
2696
|
+
"X-Target-Org-Id"?: string | null;
|
|
2697
|
+
};
|
|
2698
|
+
};
|
|
2699
|
+
output: ApiResponse_VoicePayload_;
|
|
2700
|
+
};
|
|
2701
|
+
/**
|
|
2702
|
+
* POST /voice/research/prospect-data
|
|
2703
|
+
* Extract prospect data from a form submission
|
|
2704
|
+
* tier: billable · scope: voice:run
|
|
2705
|
+
*/
|
|
2706
|
+
research_prospect_data_voice_research_prospect_data_post: {
|
|
2707
|
+
input: {
|
|
2708
|
+
headers?: {
|
|
2709
|
+
"X-Target-Org-Id"?: string | null;
|
|
2710
|
+
};
|
|
2711
|
+
body: Record<string, unknown>;
|
|
2712
|
+
};
|
|
2713
|
+
output: ApiResponse_VoicePayload_;
|
|
2714
|
+
};
|
|
2715
|
+
/**
|
|
2716
|
+
* POST /voice/research/prospect-profile
|
|
2717
|
+
* Generate a full prospect profile
|
|
2718
|
+
* tier: billable · scope: voice:run
|
|
2719
|
+
*/
|
|
2720
|
+
research_prospect_profile_voice_research_prospect_profile_post: {
|
|
2721
|
+
input: {
|
|
2722
|
+
headers?: {
|
|
2723
|
+
"X-Target-Org-Id"?: string | null;
|
|
2724
|
+
};
|
|
2725
|
+
body: Record<string, unknown>;
|
|
2726
|
+
};
|
|
2727
|
+
output: ApiResponse_VoicePayload_;
|
|
2728
|
+
};
|
|
2729
|
+
/**
|
|
2730
|
+
* POST /voice/dialer/sessions/{session_id}/resume
|
|
2731
|
+
* Resume a paused parallel-dialer session by auto-fetching next batch
|
|
2732
|
+
* tier: external · scope: voice:run
|
|
2733
|
+
*/
|
|
2734
|
+
resume_dialer_session_voice_dialer_sessions__session_id__resume_post: {
|
|
2735
|
+
input: {
|
|
2736
|
+
path: {
|
|
2737
|
+
/** Session UUID. */
|
|
2738
|
+
session_id: string;
|
|
2739
|
+
};
|
|
2740
|
+
headers?: {
|
|
2741
|
+
"X-Target-Org-Id"?: string | null;
|
|
2742
|
+
};
|
|
2743
|
+
body?: DialerSessionResumeRequest;
|
|
2744
|
+
};
|
|
2745
|
+
output: ApiResponse_DialerSessionResumeResponse_;
|
|
2746
|
+
};
|
|
2747
|
+
/**
|
|
2748
|
+
* POST /voice/agents/{agent_id}/test
|
|
2749
|
+
* Dry-run one case, saved or ad-hoc
|
|
2750
|
+
* tier: write · scope: voice:write
|
|
2751
|
+
*/
|
|
2752
|
+
run_agent_test_voice_agents__agent_id__test_post: {
|
|
2753
|
+
input: {
|
|
2754
|
+
path: {
|
|
2755
|
+
/** Voice agent id. */
|
|
2756
|
+
agent_id: string;
|
|
2757
|
+
};
|
|
2758
|
+
headers?: {
|
|
2759
|
+
"X-Target-Org-Id"?: string | null;
|
|
2760
|
+
};
|
|
2761
|
+
body: AgentTestRun;
|
|
2762
|
+
};
|
|
2763
|
+
output: ApiResponse_VoicePayload_;
|
|
2764
|
+
};
|
|
2765
|
+
/**
|
|
2766
|
+
* POST /voice/agents/{agent_id}/test/run-all
|
|
2767
|
+
* Regression run: every saved case, plus the activation gate
|
|
2768
|
+
* tier: write · scope: voice:write
|
|
2769
|
+
*/
|
|
2770
|
+
run_all_agent_tests_voice_agents__agent_id__test_run_all_post: {
|
|
2771
|
+
input: {
|
|
2772
|
+
path: {
|
|
2773
|
+
/** Voice agent id. */
|
|
2774
|
+
agent_id: string;
|
|
2775
|
+
};
|
|
2776
|
+
headers?: {
|
|
2777
|
+
"X-Target-Org-Id"?: string | null;
|
|
2778
|
+
};
|
|
2779
|
+
body?: AgentRegressionRun | null;
|
|
2780
|
+
};
|
|
2781
|
+
output: ApiResponse_VoicePayload_;
|
|
2782
|
+
};
|
|
2783
|
+
/**
|
|
2784
|
+
* POST /voice/campaigns/onboarding/threads/actions
|
|
2785
|
+
* Run an action the onboarding agent proposed
|
|
2786
|
+
* tier: billable · scope: voice:run
|
|
2787
|
+
*/
|
|
2788
|
+
run_onboarding_thread_action_voice_campaigns_onboarding_threads_actions_post: {
|
|
2789
|
+
input: {
|
|
2790
|
+
headers?: {
|
|
2791
|
+
"X-Target-Org-Id"?: string | null;
|
|
2792
|
+
};
|
|
2793
|
+
body: Record<string, unknown>;
|
|
2794
|
+
};
|
|
2795
|
+
output: ApiResponse_VoicePayload_;
|
|
2796
|
+
};
|
|
2797
|
+
/**
|
|
2798
|
+
* POST /voice/collections/{collection_id}/scrape-sources/{source_id}/run
|
|
2799
|
+
* Scrape a source now
|
|
2800
|
+
* tier: billable · scope: voice:run
|
|
2801
|
+
*/
|
|
2802
|
+
run_scrape_source_voice_collections__collection_id__scrape_sources__source_id__run_post: {
|
|
2803
|
+
input: {
|
|
2804
|
+
path: {
|
|
2805
|
+
/** Collection id. */
|
|
2806
|
+
collection_id: number;
|
|
2807
|
+
/** Scrape source id. */
|
|
2808
|
+
source_id: number;
|
|
2809
|
+
};
|
|
2810
|
+
headers?: {
|
|
2811
|
+
"X-Target-Org-Id"?: string | null;
|
|
2812
|
+
};
|
|
2813
|
+
};
|
|
2814
|
+
output: ApiResponse_VoicePayload_;
|
|
2815
|
+
};
|
|
2816
|
+
/**
|
|
2817
|
+
* POST /voice/agents/{agent_id}/save-as-template
|
|
2818
|
+
* Save an agent as a reusable template
|
|
2819
|
+
* tier: write · scope: voice:write
|
|
2820
|
+
*/
|
|
2821
|
+
save_agent_as_template_voice_agents__agent_id__save_as_template_post: {
|
|
2822
|
+
input: {
|
|
2823
|
+
path: {
|
|
2824
|
+
/** The agent to templatise. */
|
|
2825
|
+
agent_id: string;
|
|
2826
|
+
};
|
|
2827
|
+
query?: {
|
|
2828
|
+
/** Template name. Defaults to the agent's own name. */
|
|
2829
|
+
template_name?: string | null;
|
|
2830
|
+
};
|
|
2831
|
+
headers?: {
|
|
2832
|
+
"X-Target-Org-Id"?: string | null;
|
|
2833
|
+
};
|
|
2834
|
+
};
|
|
2835
|
+
output: ApiResponse_VoicePayload_;
|
|
2836
|
+
};
|
|
2837
|
+
/**
|
|
2838
|
+
* POST /voice/agents/{agent_id}/documents/search
|
|
2839
|
+
* Search an agent's documents
|
|
2840
|
+
* tier: read · scope: voice:read
|
|
2841
|
+
*/
|
|
2842
|
+
search_agent_documents_voice_agents__agent_id__documents_search_post: {
|
|
2843
|
+
input: {
|
|
2844
|
+
path: {
|
|
2845
|
+
/** Voice agent id. */
|
|
2846
|
+
agent_id: string;
|
|
2847
|
+
};
|
|
2848
|
+
headers?: {
|
|
2849
|
+
"X-Target-Org-Id"?: string | null;
|
|
2850
|
+
};
|
|
2851
|
+
body: AgentDocumentSearch;
|
|
2852
|
+
};
|
|
2853
|
+
output: ApiResponse_VoicePayload_;
|
|
2854
|
+
};
|
|
2855
|
+
/**
|
|
2856
|
+
* POST /voice/call-results/search
|
|
2857
|
+
* Search call results
|
|
2858
|
+
* tier: read · scope: voice:read
|
|
2859
|
+
*/
|
|
2860
|
+
search_call_results_voice_call_results_search_post: {
|
|
2861
|
+
input: {
|
|
2862
|
+
headers?: {
|
|
2863
|
+
"X-Target-Org-Id"?: string | null;
|
|
2864
|
+
};
|
|
2865
|
+
body?: Record<string, unknown>;
|
|
2866
|
+
};
|
|
2867
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2868
|
+
};
|
|
2869
|
+
/**
|
|
2870
|
+
* POST /voice/chats/search
|
|
2871
|
+
* Search web-chat conversations
|
|
2872
|
+
* tier: read · scope: voice:read
|
|
2873
|
+
*/
|
|
2874
|
+
search_chats_voice_chats_search_post: {
|
|
2875
|
+
input: {
|
|
2876
|
+
headers?: {
|
|
2877
|
+
"X-Target-Org-Id"?: string | null;
|
|
2878
|
+
};
|
|
2879
|
+
body?: Record<string, unknown>;
|
|
2880
|
+
};
|
|
2881
|
+
output: ApiResponse_VoiceListPayload_;
|
|
2882
|
+
};
|
|
2883
|
+
/**
|
|
2884
|
+
* POST /voice/collections/search
|
|
2885
|
+
* Search across collections
|
|
2886
|
+
* tier: read · scope: voice:read
|
|
2887
|
+
*/
|
|
2888
|
+
search_collections_voice_collections_search_post: {
|
|
2889
|
+
input: {
|
|
2890
|
+
headers?: {
|
|
2891
|
+
"X-Target-Org-Id"?: string | null;
|
|
2892
|
+
};
|
|
2893
|
+
body: CollectionSearch;
|
|
2894
|
+
};
|
|
2895
|
+
output: ApiResponse_VoicePayload_;
|
|
2896
|
+
};
|
|
2897
|
+
/**
|
|
2898
|
+
* POST /voice/chat-agent/messages
|
|
2899
|
+
* Send a message to the chat agent
|
|
2900
|
+
* tier: billable · scope: voice:run
|
|
2901
|
+
*/
|
|
2902
|
+
send_chat_agent_message_voice_chat_agent_messages_post: {
|
|
2903
|
+
input: {
|
|
2904
|
+
headers?: {
|
|
2905
|
+
"X-Target-Org-Id"?: string | null;
|
|
2906
|
+
};
|
|
2907
|
+
body: Record<string, unknown>;
|
|
2908
|
+
};
|
|
2909
|
+
output: ApiResponse_VoicePayload_;
|
|
2910
|
+
};
|
|
2911
|
+
/**
|
|
2912
|
+
* POST /voice/campaigns/onboarding/messages
|
|
2913
|
+
* Talk to the campaign onboarding agent
|
|
2914
|
+
* tier: billable · scope: voice:run
|
|
2915
|
+
*/
|
|
2916
|
+
send_onboarding_message_voice_campaigns_onboarding_messages_post: {
|
|
2917
|
+
input: {
|
|
2918
|
+
headers?: {
|
|
2919
|
+
"X-Target-Org-Id"?: string | null;
|
|
2920
|
+
};
|
|
2921
|
+
body: Record<string, unknown>;
|
|
2922
|
+
};
|
|
2923
|
+
output: ApiResponse_VoicePayload_;
|
|
2924
|
+
};
|
|
2925
|
+
/**
|
|
2926
|
+
* POST /voice/receptionist/messages
|
|
2927
|
+
* Send a text message to the receptionist
|
|
2928
|
+
* tier: billable · scope: voice:run
|
|
2929
|
+
*/
|
|
2930
|
+
send_receptionist_message_voice_receptionist_messages_post: {
|
|
2931
|
+
input: {
|
|
2932
|
+
headers?: {
|
|
2933
|
+
"X-Target-Org-Id"?: string | null;
|
|
2934
|
+
};
|
|
2935
|
+
body: Record<string, unknown>;
|
|
2936
|
+
};
|
|
2937
|
+
output: ApiResponse_VoicePayload_;
|
|
2938
|
+
};
|
|
2939
|
+
/**
|
|
2940
|
+
* POST /voice/agents/global-settings
|
|
2941
|
+
* Set org-wide inbound call defaults
|
|
2942
|
+
* tier: write · scope: voice:write
|
|
2943
|
+
*/
|
|
2944
|
+
set_agent_global_settings_voice_agents_global_settings_post: {
|
|
2945
|
+
input: {
|
|
2946
|
+
headers?: {
|
|
2947
|
+
"X-Target-Org-Id"?: string | null;
|
|
2948
|
+
};
|
|
2949
|
+
body: Record<string, unknown>;
|
|
2950
|
+
};
|
|
2951
|
+
output: ApiResponse_VoicePayload_;
|
|
2952
|
+
};
|
|
2953
|
+
/**
|
|
2954
|
+
* POST /voice/voice-library/onboarding-voice
|
|
2955
|
+
* Replace the organisation's onboarding voice
|
|
2956
|
+
* tier: billable · scope: voice:run
|
|
2957
|
+
*/
|
|
2958
|
+
set_onboarding_voice_voice_voice_library_onboarding_voice_post: {
|
|
2959
|
+
input: {
|
|
2960
|
+
headers?: {
|
|
2961
|
+
"X-Target-Org-Id"?: string | null;
|
|
2962
|
+
};
|
|
2963
|
+
};
|
|
2964
|
+
output: ApiResponse_VoicePayload_;
|
|
2965
|
+
};
|
|
2966
|
+
/**
|
|
2967
|
+
* POST /voice/calls
|
|
2968
|
+
* Dispatch one ad-hoc AI-agent call to a raw number
|
|
2969
|
+
* tier: external · scope: voice:run
|
|
2970
|
+
*/
|
|
2971
|
+
start_voice_call_voice_calls_post: {
|
|
2972
|
+
input: {
|
|
2973
|
+
headers?: {
|
|
2974
|
+
"X-Target-Org-Id"?: string | null;
|
|
2975
|
+
};
|
|
2976
|
+
body: VoiceCallStartRequest;
|
|
2977
|
+
};
|
|
2978
|
+
output: ApiResponse_VoiceCallStartResponse_;
|
|
2979
|
+
};
|
|
2980
|
+
/**
|
|
2981
|
+
* POST /dialer/sessions/{session_id}/stop
|
|
2982
|
+
* Stop a dialer session
|
|
2983
|
+
* tier: write · scope: voice:write
|
|
2984
|
+
*/
|
|
2985
|
+
stop_dialer_session_dialer_sessions__session_id__stop_post: {
|
|
2986
|
+
input: {
|
|
2987
|
+
path: {
|
|
2988
|
+
/** Dialer session id. */
|
|
2989
|
+
session_id: string;
|
|
2990
|
+
};
|
|
2991
|
+
headers?: {
|
|
2992
|
+
"X-Target-Org-Id"?: string | null;
|
|
2993
|
+
};
|
|
2994
|
+
};
|
|
2995
|
+
output: ApiResponse_VoicePayload_;
|
|
2996
|
+
};
|
|
2997
|
+
/**
|
|
2998
|
+
* POST /voice/campaigns/memory
|
|
2999
|
+
* Record past campaign history for a contact
|
|
3000
|
+
* tier: write · scope: voice:write
|
|
3001
|
+
*/
|
|
3002
|
+
store_campaign_memory_voice_campaigns_memory_post: {
|
|
3003
|
+
input: {
|
|
3004
|
+
headers?: {
|
|
3005
|
+
"X-Target-Org-Id"?: string | null;
|
|
3006
|
+
};
|
|
3007
|
+
body: Body_store_campaign_memory_voice_campaigns_memory_post;
|
|
3008
|
+
};
|
|
3009
|
+
output: ApiResponse_VoicePayload_;
|
|
3010
|
+
};
|
|
3011
|
+
/**
|
|
3012
|
+
* POST /voice/collections/{collection_id}/sync
|
|
3013
|
+
* Reconcile a collection's records with its stored files
|
|
3014
|
+
* tier: write · scope: voice:write
|
|
3015
|
+
*/
|
|
3016
|
+
sync_collection_voice_collections__collection_id__sync_post: {
|
|
3017
|
+
input: {
|
|
3018
|
+
path: {
|
|
3019
|
+
/** Collection id. */
|
|
3020
|
+
collection_id: number;
|
|
3021
|
+
};
|
|
3022
|
+
query?: {
|
|
3023
|
+
/** Report what would change without changing it. */
|
|
3024
|
+
dry_run?: boolean;
|
|
3025
|
+
};
|
|
3026
|
+
headers?: {
|
|
3027
|
+
"X-Target-Org-Id"?: string | null;
|
|
3028
|
+
};
|
|
3029
|
+
};
|
|
3030
|
+
output: ApiResponse_VoicePayload_;
|
|
3031
|
+
};
|
|
3032
|
+
/**
|
|
3033
|
+
* POST /voice/mcp-servers/{mcp_server_id}/test
|
|
3034
|
+
* Test the connection to a saved MCP server
|
|
3035
|
+
* tier: external · scope: voice:run
|
|
3036
|
+
*/
|
|
3037
|
+
test_mcp_server_voice_mcp_servers__mcp_server_id__test_post: {
|
|
3038
|
+
input: {
|
|
3039
|
+
path: {
|
|
3040
|
+
/** Saved MCP server id. */
|
|
3041
|
+
mcp_server_id: string;
|
|
3042
|
+
};
|
|
3043
|
+
headers?: {
|
|
3044
|
+
"X-Target-Org-Id"?: string | null;
|
|
3045
|
+
};
|
|
3046
|
+
};
|
|
3047
|
+
output: ApiResponse_VoicePayload_;
|
|
3048
|
+
};
|
|
3049
|
+
/**
|
|
3050
|
+
* PATCH /voice/agents/receptionist
|
|
3051
|
+
* Turn the receptionist on or off
|
|
3052
|
+
* tier: write · scope: voice:write
|
|
3053
|
+
*/
|
|
3054
|
+
toggle_receptionist_agent_voice_agents_receptionist_patch: {
|
|
3055
|
+
input: {
|
|
3056
|
+
query: {
|
|
3057
|
+
/** Explicit, not a toggle: a retried request is idempotent instead of flipping the receptionist back on. */
|
|
3058
|
+
enabled: boolean;
|
|
3059
|
+
};
|
|
3060
|
+
headers?: {
|
|
3061
|
+
"X-Target-Org-Id"?: string | null;
|
|
3062
|
+
};
|
|
3063
|
+
};
|
|
3064
|
+
output: ApiResponse_VoicePayload_;
|
|
3065
|
+
};
|
|
3066
|
+
/**
|
|
3067
|
+
* POST /voice/call-flow-examples/transcribe
|
|
3068
|
+
* Transcribe a recorded call into the org's call-flow example
|
|
3069
|
+
* tier: billable · scope: voice:run
|
|
3070
|
+
*/
|
|
3071
|
+
transcribe_call_flow_example_voice_call_flow_examples_transcribe_post: {
|
|
3072
|
+
input: {
|
|
3073
|
+
query?: {
|
|
3074
|
+
/** Language spoken in the recording. */
|
|
3075
|
+
language?: string;
|
|
3076
|
+
};
|
|
3077
|
+
headers?: {
|
|
3078
|
+
"X-Target-Org-Id"?: string | null;
|
|
3079
|
+
};
|
|
3080
|
+
};
|
|
3081
|
+
output: ApiResponse_VoicePayload_;
|
|
3082
|
+
};
|
|
3083
|
+
/**
|
|
3084
|
+
* POST /voice/chat-agent/conversations/{chat_id}/transfer-to-human
|
|
3085
|
+
* Hand a chat agent conversation to a person
|
|
3086
|
+
* tier: write · scope: voice:write
|
|
3087
|
+
*/
|
|
3088
|
+
transfer_chat_agent_conversation_voice_chat_agent_conversations__chat_id__transfer_to_human_post: {
|
|
3089
|
+
input: {
|
|
3090
|
+
path: {
|
|
3091
|
+
/** Conversation id. */
|
|
3092
|
+
chat_id: string;
|
|
3093
|
+
};
|
|
3094
|
+
headers?: {
|
|
3095
|
+
"X-Target-Org-Id"?: string | null;
|
|
3096
|
+
};
|
|
3097
|
+
};
|
|
3098
|
+
output: ApiResponse_VoicePayload_;
|
|
3099
|
+
};
|
|
3100
|
+
/**
|
|
3101
|
+
* POST /voice/agents/{agent_id}/memory
|
|
3102
|
+
* Record a conversation into an agent's memory of a contact
|
|
3103
|
+
* tier: write · scope: voice:write
|
|
3104
|
+
*/
|
|
3105
|
+
update_agent_memory_voice_agents__agent_id__memory_post: {
|
|
3106
|
+
input: {
|
|
3107
|
+
path: {
|
|
3108
|
+
/** The agent doing the remembering. */
|
|
3109
|
+
agent_id: string;
|
|
3110
|
+
};
|
|
3111
|
+
headers?: {
|
|
3112
|
+
"X-Target-Org-Id"?: string | null;
|
|
3113
|
+
};
|
|
3114
|
+
body: Body_update_agent_memory_voice_agents__agent_id__memory_post;
|
|
3115
|
+
};
|
|
3116
|
+
output: ApiResponse_VoicePayload_;
|
|
3117
|
+
};
|
|
3118
|
+
/**
|
|
3119
|
+
* PUT /voice/agents/{agent_id}/test-cases/{test_case_id}
|
|
3120
|
+
* Edit a saved case
|
|
3121
|
+
* tier: write · scope: voice:write
|
|
3122
|
+
*/
|
|
3123
|
+
update_agent_test_case_voice_agents__agent_id__test_cases__test_case_id__put: {
|
|
3124
|
+
input: {
|
|
3125
|
+
path: {
|
|
3126
|
+
/** Voice agent id. */
|
|
3127
|
+
agent_id: string;
|
|
3128
|
+
/** Saved test case id. */
|
|
3129
|
+
test_case_id: string;
|
|
3130
|
+
};
|
|
3131
|
+
headers?: {
|
|
3132
|
+
"X-Target-Org-Id"?: string | null;
|
|
3133
|
+
};
|
|
3134
|
+
body: AgentTestCaseUpdate;
|
|
3135
|
+
};
|
|
3136
|
+
output: ApiResponse_VoicePayload_;
|
|
3137
|
+
};
|
|
3138
|
+
/**
|
|
3139
|
+
* PUT /voice/collections/{collection_id}
|
|
3140
|
+
* Rename or re-describe a collection
|
|
3141
|
+
* tier: write · scope: voice:write
|
|
3142
|
+
*/
|
|
3143
|
+
update_collection_voice_collections__collection_id__put: {
|
|
3144
|
+
input: {
|
|
3145
|
+
path: {
|
|
3146
|
+
/** Collection id. */
|
|
3147
|
+
collection_id: number;
|
|
3148
|
+
};
|
|
3149
|
+
headers?: {
|
|
3150
|
+
"X-Target-Org-Id"?: string | null;
|
|
3151
|
+
};
|
|
3152
|
+
body: CollectionUpdateRequest;
|
|
3153
|
+
};
|
|
3154
|
+
output: ApiResponse_VoicePayload_;
|
|
3155
|
+
};
|
|
3156
|
+
/**
|
|
3157
|
+
* PUT /voice/company-knowledge
|
|
3158
|
+
* Update the organisation's company knowledge
|
|
3159
|
+
* tier: write · scope: voice:write
|
|
3160
|
+
*/
|
|
3161
|
+
update_company_knowledge_voice_company_knowledge_put: {
|
|
3162
|
+
input: {
|
|
3163
|
+
headers?: {
|
|
3164
|
+
"X-Target-Org-Id"?: string | null;
|
|
3165
|
+
};
|
|
3166
|
+
body: Record<string, unknown>;
|
|
3167
|
+
};
|
|
3168
|
+
output: ApiResponse_VoicePayload_;
|
|
3169
|
+
};
|
|
3170
|
+
/**
|
|
3171
|
+
* PATCH /voice/dialer/sessions/{session_id}/status
|
|
3172
|
+
* Pause, resume, or stop a parallel-dialer session
|
|
3173
|
+
* tier: external · scope: voice:run
|
|
3174
|
+
*/
|
|
3175
|
+
update_dialer_session_status_voice_dialer_sessions__session_id__status_patch: {
|
|
3176
|
+
input: {
|
|
3177
|
+
path: {
|
|
3178
|
+
/** Session UUID. */
|
|
3179
|
+
session_id: string;
|
|
3180
|
+
};
|
|
3181
|
+
headers?: {
|
|
3182
|
+
"X-Target-Org-Id"?: string | null;
|
|
3183
|
+
};
|
|
3184
|
+
body: DialerSessionStatusUpdateRequest;
|
|
3185
|
+
};
|
|
3186
|
+
output: ApiResponse_DialerSessionStatusUpdateResponse_;
|
|
3187
|
+
};
|
|
3188
|
+
/**
|
|
3189
|
+
* PUT /dialer/settings
|
|
3190
|
+
* Change a rep's dialer settings
|
|
3191
|
+
* tier: write · scope: voice:write
|
|
3192
|
+
*/
|
|
3193
|
+
update_dialer_settings_dialer_settings_put: {
|
|
3194
|
+
input: {
|
|
3195
|
+
headers?: {
|
|
3196
|
+
"X-Target-Org-Id"?: string | null;
|
|
3197
|
+
};
|
|
3198
|
+
body: DialerSettingsUpdate;
|
|
3199
|
+
};
|
|
3200
|
+
output: ApiResponse_VoicePayload_;
|
|
3201
|
+
};
|
|
3202
|
+
/**
|
|
3203
|
+
* PATCH /voice/inbound-routing/rules/{route_id}
|
|
3204
|
+
* Update an inbound routing rule
|
|
3205
|
+
* tier: write · scope: voice:write
|
|
3206
|
+
*/
|
|
3207
|
+
update_inbound_route_voice_inbound_routing_rules__route_id__patch: {
|
|
3208
|
+
input: {
|
|
3209
|
+
path: {
|
|
3210
|
+
/** Rule id. */
|
|
3211
|
+
route_id: number;
|
|
3212
|
+
};
|
|
3213
|
+
headers?: {
|
|
3214
|
+
"X-Target-Org-Id"?: string | null;
|
|
3215
|
+
};
|
|
3216
|
+
body: InboundRouteUpdateRequest;
|
|
3217
|
+
};
|
|
3218
|
+
output: ApiResponse_VoicePayload_;
|
|
3219
|
+
};
|
|
3220
|
+
/**
|
|
3221
|
+
* PUT /voice/mcp-servers/{mcp_server_id}
|
|
3222
|
+
* Update an MCP server
|
|
3223
|
+
* tier: write · scope: voice:write
|
|
3224
|
+
*/
|
|
3225
|
+
update_mcp_server_voice_mcp_servers__mcp_server_id__put: {
|
|
3226
|
+
input: {
|
|
3227
|
+
path: {
|
|
3228
|
+
/** MCP server id. */
|
|
3229
|
+
mcp_server_id: string;
|
|
3230
|
+
};
|
|
3231
|
+
headers?: {
|
|
3232
|
+
"X-Target-Org-Id"?: string | null;
|
|
3233
|
+
};
|
|
3234
|
+
body: McpServerUpdateRequest;
|
|
3235
|
+
};
|
|
3236
|
+
output: ApiResponse_VoicePayload_;
|
|
3237
|
+
};
|
|
3238
|
+
/**
|
|
3239
|
+
* PUT /voice/phone-directory/{entry_id}
|
|
3240
|
+
* Edit a directory entry
|
|
3241
|
+
* tier: write · scope: voice:write
|
|
3242
|
+
*/
|
|
3243
|
+
update_phone_directory_entry_voice_phone_directory__entry_id__put: {
|
|
3244
|
+
input: {
|
|
3245
|
+
path: {
|
|
3246
|
+
/** Directory entry id. */
|
|
3247
|
+
entry_id: number;
|
|
3248
|
+
};
|
|
3249
|
+
headers?: {
|
|
3250
|
+
"X-Target-Org-Id"?: string | null;
|
|
3251
|
+
};
|
|
3252
|
+
body: PhoneDirectoryEntryUpdate;
|
|
3253
|
+
};
|
|
3254
|
+
output: ApiResponse_VoicePayload_;
|
|
3255
|
+
};
|
|
3256
|
+
/**
|
|
3257
|
+
* PATCH /voice/collections/{collection_id}/scrape-sources/{source_id}
|
|
3258
|
+
* Change a web source's cadence, ceiling, or pause it
|
|
3259
|
+
* tier: write · scope: voice:write
|
|
3260
|
+
*/
|
|
3261
|
+
update_scrape_source_voice_collections__collection_id__scrape_sources__source_id__patch: {
|
|
3262
|
+
input: {
|
|
3263
|
+
path: {
|
|
3264
|
+
/** Collection id. */
|
|
3265
|
+
collection_id: number;
|
|
3266
|
+
/** Scrape source id. */
|
|
3267
|
+
source_id: number;
|
|
3268
|
+
};
|
|
3269
|
+
headers?: {
|
|
3270
|
+
"X-Target-Org-Id"?: string | null;
|
|
3271
|
+
};
|
|
3272
|
+
body: ScrapeSourceUpdateRequest;
|
|
3273
|
+
};
|
|
3274
|
+
output: ApiResponse_VoicePayload_;
|
|
3275
|
+
};
|
|
3276
|
+
/**
|
|
3277
|
+
* PUT /voice/twins/{agent_id}
|
|
3278
|
+
* Edit a twin, optionally with a new writing-style document
|
|
3279
|
+
* tier: write · scope: voice:write
|
|
3280
|
+
*/
|
|
3281
|
+
update_twin_voice_twins__agent_id__put: {
|
|
3282
|
+
input: {
|
|
3283
|
+
path: {
|
|
3284
|
+
/** Twin agent id. */
|
|
3285
|
+
agent_id: string;
|
|
3286
|
+
};
|
|
3287
|
+
headers?: {
|
|
3288
|
+
"X-Target-Org-Id"?: string | null;
|
|
3289
|
+
};
|
|
3290
|
+
};
|
|
3291
|
+
output: ApiResponse_VoicePayload_;
|
|
3292
|
+
};
|
|
3293
|
+
/**
|
|
3294
|
+
* PUT /voice/agents/{agent_id}
|
|
3295
|
+
* Update a voice agent or twin
|
|
3296
|
+
* tier: write · scope: voice:write
|
|
3297
|
+
*/
|
|
3298
|
+
update_voice_agent_voice_agents__agent_id__put: {
|
|
3299
|
+
input: {
|
|
3300
|
+
path: {
|
|
3301
|
+
/** Agent UUID. */
|
|
3302
|
+
agent_id: string;
|
|
3303
|
+
};
|
|
3304
|
+
headers?: {
|
|
3305
|
+
"X-Target-Org-Id"?: string | null;
|
|
3306
|
+
};
|
|
3307
|
+
body: VoiceAgentUpdateRequest;
|
|
3308
|
+
};
|
|
3309
|
+
output: ApiResponse_VoiceAgentResponse_;
|
|
3310
|
+
};
|
|
3311
|
+
/**
|
|
3312
|
+
* PATCH /voice/dispositions/{disposition_id}
|
|
3313
|
+
* Edit a custom call disposition
|
|
3314
|
+
* tier: external · scope: voice:run
|
|
3315
|
+
*/
|
|
3316
|
+
update_voice_disposition_voice_dispositions__disposition_id__patch: {
|
|
3317
|
+
input: {
|
|
3318
|
+
path: {
|
|
3319
|
+
/** Custom disposition id. */
|
|
3320
|
+
disposition_id: number;
|
|
3321
|
+
};
|
|
3322
|
+
headers?: {
|
|
3323
|
+
"X-Target-Org-Id"?: string | null;
|
|
3324
|
+
};
|
|
3325
|
+
body: VoiceCustomDispositionUpdateRequest;
|
|
3326
|
+
};
|
|
3327
|
+
output: ApiResponse_VoiceCustomDispositionItem_;
|
|
3328
|
+
};
|
|
3329
|
+
/**
|
|
3330
|
+
* POST /voice/agents/{agent_id}/documents/upload
|
|
3331
|
+
* Upload documents into an agent's own vector store
|
|
3332
|
+
* tier: billable · scope: voice:run
|
|
3333
|
+
*/
|
|
3334
|
+
upload_agent_documents_voice_agents__agent_id__documents_upload_post: {
|
|
3335
|
+
input: {
|
|
3336
|
+
path: {
|
|
3337
|
+
/** Voice agent id. */
|
|
3338
|
+
agent_id: string;
|
|
3339
|
+
};
|
|
3340
|
+
headers?: {
|
|
3341
|
+
"X-Target-Org-Id"?: string | null;
|
|
3342
|
+
};
|
|
3343
|
+
};
|
|
3344
|
+
output: ApiResponse_VoicePayload_;
|
|
3345
|
+
};
|
|
3346
|
+
/**
|
|
3347
|
+
* POST /voice/collections/{collection_id}/files/upload
|
|
3348
|
+
* Upload one file into a collection
|
|
3349
|
+
* tier: billable · scope: voice:run
|
|
3350
|
+
*/
|
|
3351
|
+
upload_collection_file_voice_collections__collection_id__files_upload_post: {
|
|
3352
|
+
input: {
|
|
3353
|
+
path: {
|
|
3354
|
+
/** Collection id. */
|
|
3355
|
+
collection_id: number;
|
|
3356
|
+
};
|
|
3357
|
+
headers?: {
|
|
3358
|
+
"X-Target-Org-Id"?: string | null;
|
|
3359
|
+
};
|
|
3360
|
+
};
|
|
3361
|
+
output: ApiResponse_VoicePayload_;
|
|
3362
|
+
};
|
|
3363
|
+
/**
|
|
3364
|
+
* POST /voice/collections/{collection_id}/files/upload-multiple
|
|
3365
|
+
* Upload several files into a collection
|
|
3366
|
+
* tier: billable · scope: voice:run
|
|
3367
|
+
*/
|
|
3368
|
+
upload_collection_files_voice_collections__collection_id__files_upload_multiple_post: {
|
|
3369
|
+
input: {
|
|
3370
|
+
path: {
|
|
3371
|
+
/** Collection id. */
|
|
3372
|
+
collection_id: number;
|
|
3373
|
+
};
|
|
3374
|
+
headers?: {
|
|
3375
|
+
"X-Target-Org-Id"?: string | null;
|
|
3376
|
+
};
|
|
3377
|
+
};
|
|
3378
|
+
output: ApiResponse_VoicePayload_;
|
|
3379
|
+
};
|
|
3380
|
+
/**
|
|
3381
|
+
* POST /voice/knowledge-base/files/upload
|
|
3382
|
+
* Upload a file to the org-wide knowledge base
|
|
3383
|
+
* tier: billable · scope: voice:run
|
|
3384
|
+
*/
|
|
3385
|
+
upload_knowledge_base_file_voice_knowledge_base_files_upload_post: {
|
|
3386
|
+
input: {
|
|
3387
|
+
headers?: {
|
|
3388
|
+
"X-Target-Org-Id"?: string | null;
|
|
3389
|
+
};
|
|
3390
|
+
};
|
|
3391
|
+
output: ApiResponse_VoicePayload_;
|
|
3392
|
+
};
|
|
3393
|
+
/**
|
|
3394
|
+
* POST /voice/video-recordings/upload
|
|
3395
|
+
* Upload a video recording for transcription
|
|
3396
|
+
* tier: billable · scope: voice:run
|
|
3397
|
+
*/
|
|
3398
|
+
upload_video_recording_voice_video_recordings_upload_post: {
|
|
3399
|
+
input: {
|
|
3400
|
+
headers?: {
|
|
3401
|
+
"X-Target-Org-Id"?: string | null;
|
|
3402
|
+
};
|
|
3403
|
+
};
|
|
3404
|
+
output: ApiResponse_VoicePayload_;
|
|
3405
|
+
};
|
|
3406
|
+
/**
|
|
3407
|
+
* PUT /voice/inbound-routing/business-hours
|
|
3408
|
+
* Set the business-hours schedule for a number
|
|
3409
|
+
* tier: write · scope: voice:write
|
|
3410
|
+
*/
|
|
3411
|
+
upsert_business_hours_voice_inbound_routing_business_hours_put: {
|
|
3412
|
+
input: {
|
|
3413
|
+
headers?: {
|
|
3414
|
+
"X-Target-Org-Id"?: string | null;
|
|
3415
|
+
};
|
|
3416
|
+
body: BusinessHoursScheduleRequest;
|
|
3417
|
+
};
|
|
3418
|
+
output: ApiResponse_VoicePayload_;
|
|
3419
|
+
};
|
|
3420
|
+
}
|
|
3421
|
+
|
|
3422
|
+
// 97 schemas referenced above (the same as G8Contract.<Name>).
|
|
3423
|
+
|
|
3424
|
+
/**
|
|
3425
|
+
* voice binds `query` and `top_k` as FORM fields beside `org_id` and
|
|
3426
|
+
* `agent_id`; the router re-encodes this body as form data.
|
|
3427
|
+
*/
|
|
3428
|
+
export interface AgentDocumentSearch {
|
|
3429
|
+
query: string;
|
|
3430
|
+
top_k?: number;
|
|
3431
|
+
}
|
|
3432
|
+
|
|
3433
|
+
export interface AgentRegressionRun {
|
|
3434
|
+
/** Attribution; defaults to the key's identity. */
|
|
3435
|
+
triggered_by?: string | null;
|
|
3436
|
+
}
|
|
3437
|
+
|
|
3438
|
+
/**
|
|
3439
|
+
* A saved evaluation case: the user turn under test and what must hold.
|
|
3440
|
+
*
|
|
3441
|
+
* `llm_judge` may be SAVED but is skipped by dry runs - a judge needs a real
|
|
3442
|
+
* completion, and a dry run never calls a model.
|
|
3443
|
+
*/
|
|
3444
|
+
export interface AgentTestCaseCreate {
|
|
3445
|
+
/** Assertion options: target (resolved_instructions | tool_names | grounding_sources), case_sensitive, tool, collection_id, capability_tools, refusal_markers. */
|
|
3446
|
+
assertion_config?: Record<string, unknown> | null;
|
|
3447
|
+
assertion_type?: "exact" | "contains" | "not_contains" | "expects_tool" | "refuses" | "cites_collection" | "llm_judge";
|
|
3448
|
+
/** Selects the per-channel instructions. */
|
|
3449
|
+
channel?: "chat" | "inbound" | "outbound";
|
|
3450
|
+
/** Attribution; defaults to the key's identity. */
|
|
3451
|
+
created_by?: string | null;
|
|
3452
|
+
/** What the assertion compares against; a tool name or list for expects_tool. */
|
|
3453
|
+
expected_output?: unknown | null;
|
|
3454
|
+
/** Surrounding facts held constant (prior turns, contact, company). */
|
|
3455
|
+
input_context?: Record<string, unknown> | null;
|
|
3456
|
+
/** The user turn under test. */
|
|
3457
|
+
input_message: string;
|
|
3458
|
+
name: string;
|
|
3459
|
+
}
|
|
3460
|
+
|
|
3461
|
+
export interface AgentTestCaseUpdate {
|
|
3462
|
+
assertion_config?: Record<string, unknown> | null;
|
|
3463
|
+
assertion_type?: ("exact" | "contains" | "not_contains" | "expects_tool" | "refuses" | "cites_collection" | "llm_judge") | null;
|
|
3464
|
+
channel?: ("chat" | "inbound" | "outbound") | null;
|
|
3465
|
+
expected_output?: unknown | null;
|
|
3466
|
+
input_context?: Record<string, unknown> | null;
|
|
3467
|
+
input_message?: string | null;
|
|
3468
|
+
name?: string | null;
|
|
3469
|
+
}
|
|
3470
|
+
|
|
3471
|
+
/**
|
|
3472
|
+
* One dry run. Exactly one source: `test_case_id` (a saved case) or
|
|
3473
|
+
* `input_message` (ad-hoc). Never calls a model, never places a call, never
|
|
3474
|
+
* sends a message - it resolves what the agent WOULD receive and reach for.
|
|
3475
|
+
*/
|
|
3476
|
+
export interface AgentTestRun {
|
|
3477
|
+
assertion_config?: Record<string, unknown> | null;
|
|
3478
|
+
assertion_type?: ("exact" | "contains" | "not_contains" | "expects_tool" | "refuses" | "cites_collection" | "llm_judge") | null;
|
|
3479
|
+
channel?: ("chat" | "inbound" | "outbound") | null;
|
|
3480
|
+
expected_output?: unknown | null;
|
|
3481
|
+
input_context?: Record<string, unknown> | null;
|
|
3482
|
+
input_message?: string | null;
|
|
3483
|
+
/** preview | dry_run - both resolve configuration only. */
|
|
3484
|
+
mode?: ("preview" | "dry_run") | null;
|
|
3485
|
+
test_case_id?: string | null;
|
|
3486
|
+
triggered_by?: string | null;
|
|
3487
|
+
}
|
|
3488
|
+
|
|
3489
|
+
export interface ApiResponse_CallGradingResponse_ {
|
|
3490
|
+
data: CallGradingResponse;
|
|
3491
|
+
pagination?: PaginationMeta | null;
|
|
3492
|
+
}
|
|
3493
|
+
|
|
3494
|
+
export interface ApiResponse_CallTranscriptResponse_ {
|
|
3495
|
+
data: CallTranscriptResponse;
|
|
3496
|
+
pagination?: PaginationMeta | null;
|
|
3497
|
+
}
|
|
3498
|
+
|
|
3499
|
+
export interface ApiResponse_CallsListResponse_ {
|
|
3500
|
+
data: CallsListResponse;
|
|
3501
|
+
pagination?: PaginationMeta | null;
|
|
3502
|
+
}
|
|
3503
|
+
|
|
3504
|
+
export interface ApiResponse_DialerAgentsListResponse_ {
|
|
3505
|
+
data: DialerAgentsListResponse;
|
|
3506
|
+
pagination?: PaginationMeta | null;
|
|
3507
|
+
}
|
|
3508
|
+
|
|
3509
|
+
export interface ApiResponse_DialerNumbersListResponse_ {
|
|
3510
|
+
data: DialerNumbersListResponse;
|
|
3511
|
+
pagination?: PaginationMeta | null;
|
|
3512
|
+
}
|
|
3513
|
+
|
|
3514
|
+
export interface ApiResponse_DialerSessionCreateResponse_ {
|
|
3515
|
+
data: DialerSessionCreateResponse;
|
|
3516
|
+
pagination?: PaginationMeta | null;
|
|
3517
|
+
}
|
|
3518
|
+
|
|
3519
|
+
export interface ApiResponse_DialerSessionResumeResponse_ {
|
|
3520
|
+
data: DialerSessionResumeResponse;
|
|
3521
|
+
pagination?: PaginationMeta | null;
|
|
3522
|
+
}
|
|
3523
|
+
|
|
3524
|
+
export interface ApiResponse_DialerSessionStatusUpdateResponse_ {
|
|
3525
|
+
data: DialerSessionStatusUpdateResponse;
|
|
3526
|
+
pagination?: PaginationMeta | null;
|
|
3527
|
+
}
|
|
3528
|
+
|
|
3529
|
+
export interface ApiResponse_DialerSessionsListResponse_ {
|
|
3530
|
+
data: DialerSessionsListResponse;
|
|
3531
|
+
pagination?: PaginationMeta | null;
|
|
3532
|
+
}
|
|
3533
|
+
|
|
3534
|
+
export interface ApiResponse_DialerStatsResponse_ {
|
|
3535
|
+
data: DialerStatsResponse;
|
|
3536
|
+
pagination?: PaginationMeta | null;
|
|
3537
|
+
}
|
|
3538
|
+
|
|
3539
|
+
export interface ApiResponse_MissedCallbacksResponse_ {
|
|
3540
|
+
data: MissedCallbacksResponse;
|
|
3541
|
+
pagination?: PaginationMeta | null;
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3544
|
+
export interface ApiResponse_VoiceAgentListResponse_ {
|
|
3545
|
+
data: VoiceAgentListResponse;
|
|
3546
|
+
pagination?: PaginationMeta | null;
|
|
3547
|
+
}
|
|
3548
|
+
|
|
3549
|
+
export interface ApiResponse_VoiceAgentResponse_ {
|
|
3550
|
+
data: VoiceAgentResponse;
|
|
3551
|
+
pagination?: PaginationMeta | null;
|
|
3552
|
+
}
|
|
3553
|
+
|
|
3554
|
+
export interface ApiResponse_VoiceCallStartResponse_ {
|
|
3555
|
+
data: VoiceCallStartResponse;
|
|
3556
|
+
pagination?: PaginationMeta | null;
|
|
3557
|
+
}
|
|
3558
|
+
|
|
3559
|
+
export interface ApiResponse_VoiceCustomDispositionItem_ {
|
|
3560
|
+
data: VoiceCustomDispositionItem;
|
|
3561
|
+
pagination?: PaginationMeta | null;
|
|
3562
|
+
}
|
|
3563
|
+
|
|
3564
|
+
export interface ApiResponse_VoiceDispositionListResponse_ {
|
|
3565
|
+
data: VoiceDispositionListResponse;
|
|
3566
|
+
pagination?: PaginationMeta | null;
|
|
3567
|
+
}
|
|
3568
|
+
|
|
3569
|
+
export interface ApiResponse_VoiceListPayload_ {
|
|
3570
|
+
data: VoiceListPayload;
|
|
3571
|
+
pagination?: PaginationMeta | null;
|
|
3572
|
+
}
|
|
3573
|
+
|
|
3574
|
+
export interface ApiResponse_VoicePayload_ {
|
|
3575
|
+
data: VoicePayload;
|
|
3576
|
+
pagination?: PaginationMeta | null;
|
|
3577
|
+
}
|
|
3578
|
+
|
|
3579
|
+
/** voice `BatchEmailRequest`: one compose or respond job inside a batch. */
|
|
3580
|
+
export interface BatchEmailItem {
|
|
3581
|
+
/** Instructions for either kind. */
|
|
3582
|
+
context?: string | null;
|
|
3583
|
+
/** respond: the body being answered. */
|
|
3584
|
+
email_to_respond_body?: string | null;
|
|
3585
|
+
/** respond: the subject being answered. */
|
|
3586
|
+
email_to_respond_subject?: string | null;
|
|
3587
|
+
/** compose: the register. */
|
|
3588
|
+
email_type?: string | null;
|
|
3589
|
+
/** compose: who it is to. */
|
|
3590
|
+
recipient_info?: string | null;
|
|
3591
|
+
/** respond: the register. */
|
|
3592
|
+
response_type?: string | null;
|
|
3593
|
+
/** respond: who sent it. */
|
|
3594
|
+
sender_info?: string | null;
|
|
3595
|
+
/** respond: earlier messages. */
|
|
3596
|
+
thread_emails?: Array<EmailThreadMessage> | null;
|
|
3597
|
+
/** respond: the thread id. */
|
|
3598
|
+
thread_id?: string | null;
|
|
3599
|
+
/** compose a new email, or respond to one. */
|
|
3600
|
+
type: "compose" | "respond";
|
|
3601
|
+
}
|
|
3602
|
+
|
|
3603
|
+
/** voice `BatchEmailProcessingRequest`, without `org_id` / `agent_settings`. */
|
|
3604
|
+
export interface BatchEmailProcessing {
|
|
3605
|
+
agent_id: string;
|
|
3606
|
+
contact_id: string;
|
|
3607
|
+
emails: Array<BatchEmailItem>;
|
|
3608
|
+
/** openai: gpt-4o or gpt-4o-mini. anthropic: claude-sonnet-4-6, claude-haiku-4-5-20251001 or claude-opus-4-6. Voice rejects any other pairing with a 422. */
|
|
3609
|
+
model?: string;
|
|
3610
|
+
/** LLM provider. */
|
|
3611
|
+
provider?: "openai" | "anthropic" | "openrouter";
|
|
3612
|
+
}
|
|
3613
|
+
|
|
3614
|
+
export interface Body_attach_skills_to_agent_voice_agents__agent_id__skills_post {
|
|
3615
|
+
/** Skill `action_id`s. Additive - existing skills are kept. */
|
|
3616
|
+
action_ids: Array<unknown>;
|
|
3617
|
+
}
|
|
3618
|
+
|
|
3619
|
+
export interface Body_clone_agent_voice_agents_clone_post {
|
|
3620
|
+
/** Override: "agent" or "twin". */
|
|
3621
|
+
entity_type?: string | null;
|
|
3622
|
+
/** Id for the copy. Generated when omitted. */
|
|
3623
|
+
new_agent_id?: string | null;
|
|
3624
|
+
/** Name for the copy. */
|
|
3625
|
+
new_agent_name: string;
|
|
3626
|
+
/** Field overrides applied to the copy. */
|
|
3627
|
+
overrides?: Record<string, unknown> | null;
|
|
3628
|
+
/** Override the role. */
|
|
3629
|
+
role?: string | null;
|
|
3630
|
+
/** Agent or template to copy. */
|
|
3631
|
+
source_agent_id: string;
|
|
3632
|
+
}
|
|
3633
|
+
|
|
3634
|
+
export interface Body_decline_inbound_call_voice_inbound_calls_decline_post {
|
|
3635
|
+
/** "hangup" ends the call. Voice treats anything else as a decline. */
|
|
3636
|
+
action?: string;
|
|
3637
|
+
/** The ringing call's room name. */
|
|
3638
|
+
room_name: string;
|
|
3639
|
+
}
|
|
3640
|
+
|
|
3641
|
+
export interface Body_rename_chat_agent_conversation_voice_chat_agent_conversations__chat_id__name_put {
|
|
3642
|
+
/** The new name. */
|
|
3643
|
+
name: string;
|
|
3644
|
+
}
|
|
3645
|
+
|
|
3646
|
+
export interface Body_research_company_voice_research_company_post {
|
|
3647
|
+
/** Company to research. */
|
|
3648
|
+
company_name: string;
|
|
3649
|
+
/** Company website. */
|
|
3650
|
+
company_url: string;
|
|
3651
|
+
/** False skips fetching the company's own site. */
|
|
3652
|
+
include_scraping?: boolean;
|
|
3653
|
+
/** Ceiling on sources checked. Cost scales with it. */
|
|
3654
|
+
max_sources?: number;
|
|
3655
|
+
/** How far to go. Deeper costs more. */
|
|
3656
|
+
research_depth?: string | null;
|
|
3657
|
+
/** Narrow the research to these areas. */
|
|
3658
|
+
specific_areas?: Array<string> | null;
|
|
3659
|
+
}
|
|
3660
|
+
|
|
3661
|
+
export interface Body_research_org_chart_voice_research_org_chart_post {
|
|
3662
|
+
/** Company to research. */
|
|
3663
|
+
company_name: string;
|
|
3664
|
+
/** Company website. */
|
|
3665
|
+
company_url?: string | null;
|
|
3666
|
+
/** Company domain, e.g. `graph8.com`. */
|
|
3667
|
+
domain?: string | null;
|
|
3668
|
+
/** False omits emails and phone numbers, which is the expensive part. */
|
|
3669
|
+
include_contact_info?: boolean;
|
|
3670
|
+
/** "basic", "standard" or "deep". Deeper costs more. */
|
|
3671
|
+
research_depth?: string | null;
|
|
3672
|
+
}
|
|
3673
|
+
|
|
3674
|
+
export interface Body_store_campaign_memory_voice_campaigns_memory_post {
|
|
3675
|
+
/** The contact this happened with. */
|
|
3676
|
+
contact_id: number;
|
|
3677
|
+
/** What happened, in prose. */
|
|
3678
|
+
content: string;
|
|
3679
|
+
}
|
|
3680
|
+
|
|
3681
|
+
export interface Body_update_agent_memory_voice_agents__agent_id__memory_post {
|
|
3682
|
+
/** Who the human side was. */
|
|
3683
|
+
actor?: string | null;
|
|
3684
|
+
/** Who the conversation was with. */
|
|
3685
|
+
contact_id: string;
|
|
3686
|
+
/** Channel: "chat", "email", "phone_call", ... */
|
|
3687
|
+
interaction_type?: string;
|
|
3688
|
+
/** Ordered messages, each `{"role": "user"|"assistant", "content": "..."}`. Oldest first. */
|
|
3689
|
+
interactions: Array<unknown>;
|
|
3690
|
+
/** Groups messages into one conversation. Generated when omitted. */
|
|
3691
|
+
session_id?: string | null;
|
|
3692
|
+
}
|
|
3693
|
+
|
|
3694
|
+
/**
|
|
3695
|
+
* Create or REPLACE the business-hours / after-hours pair for a number.
|
|
3696
|
+
*
|
|
3697
|
+
* This is a two-rule bulk setup, not an addition: calling it again replaces
|
|
3698
|
+
* both rules rather than adding more.
|
|
3699
|
+
*/
|
|
3700
|
+
export interface BusinessHoursScheduleRequest {
|
|
3701
|
+
after_hours_target: BusinessHoursTargetRef;
|
|
3702
|
+
business_hours: BusinessHoursWindow;
|
|
3703
|
+
business_hours_target: BusinessHoursTargetRef;
|
|
3704
|
+
phone_number: string;
|
|
3705
|
+
/** IANA name (e.g. `America/New_York`). Voice rejects anything pytz cannot load. */
|
|
3706
|
+
timezone: string;
|
|
3707
|
+
}
|
|
3708
|
+
|
|
3709
|
+
/** Where a call goes in one half of the schedule. */
|
|
3710
|
+
export interface BusinessHoursTargetRef {
|
|
3711
|
+
target_id?: string | null;
|
|
3712
|
+
target_type: "ai_agent" | "department" | "extension" | "voicemail";
|
|
3713
|
+
}
|
|
3714
|
+
|
|
3715
|
+
/** The open hours themselves. */
|
|
3716
|
+
export interface BusinessHoursWindow {
|
|
3717
|
+
days: Array<"mon" | "tue" | "wed" | "thu" | "fri" | "sat" | "sun">;
|
|
3718
|
+
/** 24h HH:MM. */
|
|
3719
|
+
end_time: string;
|
|
3720
|
+
/** 24h HH:MM. */
|
|
3721
|
+
start_time: string;
|
|
3722
|
+
}
|
|
3723
|
+
|
|
3724
|
+
/**
|
|
3725
|
+
* AI grading for a single dialer call.
|
|
3726
|
+
*
|
|
3727
|
+
* The ``status`` field flips to ``"pending"`` when the upstream service
|
|
3728
|
+
* returns 204 (grading still being computed). In that case ``grading``
|
|
3729
|
+
* will be empty and ``reviewed`` will be ``False``. Callers can poll
|
|
3730
|
+
* until ``status == "ready"``.
|
|
3731
|
+
*/
|
|
3732
|
+
export interface CallGradingResponse {
|
|
3733
|
+
grading?: Record<string, unknown> | null;
|
|
3734
|
+
reviewed?: boolean;
|
|
3735
|
+
reviewed_at?: string | null;
|
|
3736
|
+
room_name: string;
|
|
3737
|
+
/** ready | pending */
|
|
3738
|
+
status?: string;
|
|
3739
|
+
}
|
|
3740
|
+
|
|
3741
|
+
/** voice `CallScriptGenerateRequest`, without `org_id` / `agent_settings`. */
|
|
3742
|
+
export interface CallScriptGenerate {
|
|
3743
|
+
/** The agent whose persona and knowledge shape the script. */
|
|
3744
|
+
agent_id: string;
|
|
3745
|
+
/** What the call should achieve. */
|
|
3746
|
+
call_objective?: string | null;
|
|
3747
|
+
/** professional, casual, cold_call, follow_up, demo or closing. */
|
|
3748
|
+
call_type?: string;
|
|
3749
|
+
/** What you know about the prospect's company. */
|
|
3750
|
+
company_context?: string | null;
|
|
3751
|
+
/** The contact the call is for; drives memory retrieval. */
|
|
3752
|
+
contact_id: string;
|
|
3753
|
+
/** What the call is about. */
|
|
3754
|
+
context: string;
|
|
3755
|
+
/** openai: gpt-4o or gpt-4o-mini. anthropic: claude-sonnet-4-6, claude-haiku-4-5-20251001 or claude-opus-4-6. Voice rejects any other pairing with a 422. */
|
|
3756
|
+
model?: string;
|
|
3757
|
+
/** Summary of earlier conversations. */
|
|
3758
|
+
previous_interactions?: string | null;
|
|
3759
|
+
/** What you know about the prospect. */
|
|
3760
|
+
prospect_info?: string | null;
|
|
3761
|
+
/** LLM provider. */
|
|
3762
|
+
provider?: "openai" | "anthropic" | "openrouter";
|
|
3763
|
+
}
|
|
3764
|
+
|
|
3765
|
+
/**
|
|
3766
|
+
* Light-weight dialer call summary returned in the dialer-call list.
|
|
3767
|
+
*
|
|
3768
|
+
* Deliberately omits the transcript blob - transcripts are 5-50 KB each
|
|
3769
|
+
* and including them in a list would blow caller context budget. Use
|
|
3770
|
+
* ``has_transcript`` to decide whether a follow-up GET to
|
|
3771
|
+
* ``/voice/dialer/calls/{room_name}/transcript`` is worthwhile.
|
|
3772
|
+
*
|
|
3773
|
+
* ``contact_id``, ``from_``, and ``to`` are included so client-side
|
|
3774
|
+
* polling consumers (SDR ingestion pipelines) can filter without an
|
|
3775
|
+
* extra round-trip for each row.
|
|
3776
|
+
*/
|
|
3777
|
+
export interface CallSummaryRow {
|
|
3778
|
+
call_duration?: number | null;
|
|
3779
|
+
contact_id?: string | null;
|
|
3780
|
+
created_at?: unknown | null;
|
|
3781
|
+
disposition?: string | null;
|
|
3782
|
+
from_?: string | null;
|
|
3783
|
+
has_transcript?: boolean;
|
|
3784
|
+
parallel_session_id?: string | null;
|
|
3785
|
+
recording_url?: string | null;
|
|
3786
|
+
room_name: string;
|
|
3787
|
+
summary?: string | null;
|
|
3788
|
+
to?: string | null;
|
|
3789
|
+
}
|
|
3790
|
+
|
|
3791
|
+
/**
|
|
3792
|
+
* Full transcript payload for a single dialer call.
|
|
3793
|
+
*
|
|
3794
|
+
* Mirrors the grading response shape: ``status="ready"`` when the
|
|
3795
|
+
* transcript has been flushed to the database, ``status="empty"`` when
|
|
3796
|
+
* the call row exists but the persistor has not yet written the
|
|
3797
|
+
* transcript column (the call may still be in progress or the flush
|
|
3798
|
+
* may be in-flight). 404 is raised by the route on a missing row.
|
|
3799
|
+
*/
|
|
3800
|
+
export interface CallTranscriptResponse {
|
|
3801
|
+
call_duration?: number | null;
|
|
3802
|
+
contact_id?: string | null;
|
|
3803
|
+
created_at?: unknown | null;
|
|
3804
|
+
disposition?: string | null;
|
|
3805
|
+
parallel_session_id?: string | null;
|
|
3806
|
+
recording_url?: string | null;
|
|
3807
|
+
room_name: string;
|
|
3808
|
+
/** ready | empty */
|
|
3809
|
+
status?: string;
|
|
3810
|
+
summary?: string | null;
|
|
3811
|
+
transcript?: Array<CallTranscriptSegment>;
|
|
3812
|
+
}
|
|
3813
|
+
|
|
3814
|
+
/**
|
|
3815
|
+
* One speaker turn in a persisted dialer transcript.
|
|
3816
|
+
*
|
|
3817
|
+
* ``speaker`` is one of ``SDR | AI | HUMAN | BOT`` (voice service does
|
|
3818
|
+
* not gate the value, so consumers should treat unknown values as
|
|
3819
|
+
* pass-through rather than rejecting the row). ``timestamp`` is the
|
|
3820
|
+
* voice-service-emitted ISO-8601 string and may be missing on very
|
|
3821
|
+
* early rows that pre-date timestamping in dialer_events.py.
|
|
3822
|
+
*/
|
|
3823
|
+
export interface CallTranscriptSegment {
|
|
3824
|
+
content?: string | null;
|
|
3825
|
+
speaker?: string | null;
|
|
3826
|
+
timestamp?: string | null;
|
|
3827
|
+
}
|
|
3828
|
+
|
|
3829
|
+
/**
|
|
3830
|
+
* List wrapper for dialer call history.
|
|
3831
|
+
*
|
|
3832
|
+
* Used by ``GET /voice/dialer/calls`` for ALL filter variants
|
|
3833
|
+
* (contact_id, user_email, parallel_session_id, created_after). Echoes
|
|
3834
|
+
* the applied filter values back so callers can sanity-check what the
|
|
3835
|
+
* server actually applied (the proxy may pin org_id, normalize CRM
|
|
3836
|
+
* overlay IDs, etc).
|
|
3837
|
+
*/
|
|
3838
|
+
export interface CallsListResponse {
|
|
3839
|
+
calls?: Array<CallSummaryRow>;
|
|
3840
|
+
contact_id?: string | null;
|
|
3841
|
+
count?: number;
|
|
3842
|
+
parallel_session_id?: string | null;
|
|
3843
|
+
user_email?: string | null;
|
|
3844
|
+
}
|
|
3845
|
+
|
|
3846
|
+
/** A new knowledge collection. Bounds mirror voice's own `Query` limits. */
|
|
3847
|
+
export interface CollectionCreateRequest {
|
|
3848
|
+
/** What this collection holds. */
|
|
3849
|
+
description?: string | null;
|
|
3850
|
+
/** Collection name. */
|
|
3851
|
+
name: string;
|
|
3852
|
+
}
|
|
3853
|
+
|
|
3854
|
+
/**
|
|
3855
|
+
* The folder to create. Voice binds `folder_path` as a query parameter;
|
|
3856
|
+
* it is a body field here so a path with slashes needs no URL escaping.
|
|
3857
|
+
*/
|
|
3858
|
+
export interface CollectionFolder {
|
|
3859
|
+
/** e.g. `pricing/2026`. */
|
|
3860
|
+
folder_path: string;
|
|
3861
|
+
}
|
|
3862
|
+
|
|
3863
|
+
/**
|
|
3864
|
+
* `POST .../files/paste-text` binds its body as FORM fields (`org_id`,
|
|
3865
|
+
* `folder_path`, `filename`, `text_content`); this is the JSON shape the API
|
|
3866
|
+
* takes, with `org_id` injected from the key.
|
|
3867
|
+
*/
|
|
3868
|
+
export interface CollectionPasteText {
|
|
3869
|
+
/** Given no extension, `.txt` is appended. */
|
|
3870
|
+
filename: string;
|
|
3871
|
+
/** Folder inside the collection. Empty is the root. */
|
|
3872
|
+
folder_path?: string;
|
|
3873
|
+
text_content: string;
|
|
3874
|
+
}
|
|
3875
|
+
|
|
3876
|
+
/** voice `CollectionSearchRequest`, without `org_id`. */
|
|
3877
|
+
export interface CollectionSearch {
|
|
3878
|
+
/** Collections to search (1-4 is best). */
|
|
3879
|
+
collection_ids: Array<number>;
|
|
3880
|
+
query: string;
|
|
3881
|
+
/** Results per collection. */
|
|
3882
|
+
top_k?: number;
|
|
3883
|
+
}
|
|
3884
|
+
|
|
3885
|
+
/** Rename or re-describe a collection. Omit a field to leave it alone. */
|
|
3886
|
+
export interface CollectionUpdateRequest {
|
|
3887
|
+
description?: string | null;
|
|
3888
|
+
name?: string | null;
|
|
3889
|
+
}
|
|
3890
|
+
|
|
3891
|
+
/**
|
|
3892
|
+
* One row from the agents list.
|
|
3893
|
+
*
|
|
3894
|
+
* Trimmed to the fields a chat picker needs (name, role, status, and the
|
|
3895
|
+
* UUID to feed back into ``create_dialer_session``). Anything else the
|
|
3896
|
+
* voice service returns (knowledge collections, voice/calendar) stays
|
|
3897
|
+
* server-side - the chat layer doesn't need it for the picker UX.
|
|
3898
|
+
*/
|
|
3899
|
+
export interface DialerAgentSummary {
|
|
3900
|
+
/** Agent UUID - feed this into create_dialer_session. */
|
|
3901
|
+
agent_id: string;
|
|
3902
|
+
agent_name?: string | null;
|
|
3903
|
+
agent_status?: string | null;
|
|
3904
|
+
description?: string | null;
|
|
3905
|
+
entity_type?: string | null;
|
|
3906
|
+
is_template?: boolean;
|
|
3907
|
+
phone?: string | null;
|
|
3908
|
+
role?: string | null;
|
|
3909
|
+
}
|
|
3910
|
+
|
|
3911
|
+
/** List wrapper for the agents picker. */
|
|
3912
|
+
export interface DialerAgentsListResponse {
|
|
3913
|
+
agents?: Array<DialerAgentSummary>;
|
|
3914
|
+
total_count?: number;
|
|
3915
|
+
}
|
|
3916
|
+
|
|
3917
|
+
/** One available dialer number with its current health stats. */
|
|
3918
|
+
export interface DialerNumberInfo {
|
|
3919
|
+
assigned_to?: string | null;
|
|
3920
|
+
calls_7d?: number;
|
|
3921
|
+
calls_today?: number;
|
|
3922
|
+
connect_rate_7d?: number;
|
|
3923
|
+
created_at?: string | null;
|
|
3924
|
+
daily_limit?: number;
|
|
3925
|
+
inbound_type?: string;
|
|
3926
|
+
is_valid?: boolean;
|
|
3927
|
+
number: string;
|
|
3928
|
+
telephony_provider?: string;
|
|
3929
|
+
}
|
|
3930
|
+
|
|
3931
|
+
/**
|
|
3932
|
+
* List wrapper for dialer numbers.
|
|
3933
|
+
*
|
|
3934
|
+
* The voice payload includes a top-level ``daily_limit`` default; we
|
|
3935
|
+
* drop it from the public shape because it is per-number on each row
|
|
3936
|
+
* already, so re-publishing it would just confuse callers.
|
|
3937
|
+
*/
|
|
3938
|
+
export interface DialerNumbersListResponse {
|
|
3939
|
+
numbers?: Array<DialerNumberInfo>;
|
|
3940
|
+
}
|
|
3941
|
+
|
|
3942
|
+
/**
|
|
3943
|
+
* Echo of the filters the voice service ran the report with.
|
|
3944
|
+
*
|
|
3945
|
+
* Useful for clients that need to confirm which slice they got back,
|
|
3946
|
+
* especially when the request omits ``date_from`` / ``date_to`` and the
|
|
3947
|
+
* server applies defaults.
|
|
3948
|
+
*/
|
|
3949
|
+
export interface DialerReportFilters {
|
|
3950
|
+
aggregation?: string | null;
|
|
3951
|
+
date_from?: unknown | null;
|
|
3952
|
+
date_to?: unknown | null;
|
|
3953
|
+
org_id?: string | null;
|
|
3954
|
+
session_id?: string | null;
|
|
3955
|
+
user_email?: string | null;
|
|
3956
|
+
}
|
|
3957
|
+
|
|
3958
|
+
/**
|
|
3959
|
+
* One aggregated row in the analytics report.
|
|
3960
|
+
*
|
|
3961
|
+
* Schema mirrors ``ParallelDialerMetrics``. The disposition breakdown
|
|
3962
|
+
* is a passthrough dict so that voice-side disposition additions do
|
|
3963
|
+
* not require a coordinated DTO bump here.
|
|
3964
|
+
*/
|
|
3965
|
+
export interface DialerReportMetric {
|
|
3966
|
+
avg_call_duration_minutes?: number;
|
|
3967
|
+
avg_calls_per_session?: number;
|
|
3968
|
+
connection_rate?: number;
|
|
3969
|
+
date?: string | null;
|
|
3970
|
+
dispositions?: Record<string, unknown> | null;
|
|
3971
|
+
list_title?: string | null;
|
|
3972
|
+
org_id?: string | null;
|
|
3973
|
+
peak_calling_hour?: number | null;
|
|
3974
|
+
redial_count?: number;
|
|
3975
|
+
redial_success_rate?: number | null;
|
|
3976
|
+
sdr_name?: string | null;
|
|
3977
|
+
success_rate?: number;
|
|
3978
|
+
talk_time_minutes?: number;
|
|
3979
|
+
total_callbacks?: number;
|
|
3980
|
+
total_connections?: number;
|
|
3981
|
+
total_dials?: number;
|
|
3982
|
+
total_voicemails?: number;
|
|
3983
|
+
unique_sessions?: number;
|
|
3984
|
+
voicemail_rate?: number;
|
|
3985
|
+
}
|
|
3986
|
+
|
|
3987
|
+
/**
|
|
3988
|
+
* Body for creating a parallel-dialer session in PAUSED state.
|
|
3989
|
+
*
|
|
3990
|
+
* The session is created paused so the SDR can open the dialer UI and
|
|
3991
|
+
* start dialing on their own time. Org and user are pinned server-side
|
|
3992
|
+
* from the API key - any value supplied here is ignored.
|
|
3993
|
+
*
|
|
3994
|
+
* Required: ``name``, ``from_phone``.
|
|
3995
|
+
* Optional: ``list_id`` / ``list_title`` (carried in session metadata),
|
|
3996
|
+
* ``agent_id`` (V2 agent UUID - use ``GET /voice/dialer/agents`` to look up),
|
|
3997
|
+
* ``studio_campaign_id`` (Campaign Builder UUID for studio campaign linkage).
|
|
3998
|
+
*/
|
|
3999
|
+
export interface DialerSessionCreateRequest {
|
|
4000
|
+
/** Voice agent UUID. Use GET /voice/dialer/agents to look up. */
|
|
4001
|
+
agent_id?: string | null;
|
|
4002
|
+
/** Legacy V1 agent name fallback (defaults to "default_agent" upstream). */
|
|
4003
|
+
agent_name?: string | null;
|
|
4004
|
+
/** Override the session's dialing mode. None keeps voice's default ('power'). Same bug-fix note as parallel_count above - now forwarded instead of dropped. */
|
|
4005
|
+
dialing_mode?: ("power" | "parallel") | null;
|
|
4006
|
+
/** V2 agent entity type ("agent" or "twin"). Optional. */
|
|
4007
|
+
entity_type?: string | null;
|
|
4008
|
+
/** Caller-ID phone number. Must be one of the org's dialer numbers. */
|
|
4009
|
+
from_phone: string;
|
|
4010
|
+
/** Contact list ID the SDR will dial from. Stored in session metadata. */
|
|
4011
|
+
list_id?: string | null;
|
|
4012
|
+
/** Display title for the list (e.g. 'Q4 ICP'). Stored in metadata. */
|
|
4013
|
+
list_title?: string | null;
|
|
4014
|
+
/** Session display name. */
|
|
4015
|
+
name: string;
|
|
4016
|
+
/** Legs to dial per batch once the SDR opens the dialer UI (1 = power mode, 2-5 = parallel). None keeps voice's own default (2). Bug fix (graph8-com/g8 dev-API voice parity): this field previously had no effect - it was accepted by neither this DTO nor the upstream call, so any value a caller sent was silently dropped rather than forwarded. */
|
|
4017
|
+
parallel_count?: number | null;
|
|
4018
|
+
/** Per-session override for voicemail-skip behaviour. None = use SDR default. */
|
|
4019
|
+
skip_voicemails?: boolean | null;
|
|
4020
|
+
/** Campaign Builder (Studio) campaign UUID. Optional linkage. */
|
|
4021
|
+
studio_campaign_id?: string | null;
|
|
4022
|
+
/** IANA timezone for analytics grouping (e.g. "America/New_York"). */
|
|
4023
|
+
user_timezone?: string | null;
|
|
4024
|
+
}
|
|
4025
|
+
|
|
4026
|
+
/**
|
|
4027
|
+
* Echo of the voice service's ``ParallelDialResponse`` for a paused-create.
|
|
4028
|
+
*
|
|
4029
|
+
* We deliberately drop ``twilio_token`` from the public shape - it is
|
|
4030
|
+
* SDR-frontend-specific and is regenerated by the dialer UI on join, so
|
|
4031
|
+
* re-publishing it here would only confuse a chat caller.
|
|
4032
|
+
*/
|
|
4033
|
+
export interface DialerSessionCreateResponse {
|
|
4034
|
+
created_at?: unknown | null;
|
|
4035
|
+
from_phone?: string | null;
|
|
4036
|
+
message?: string | null;
|
|
4037
|
+
name?: string | null;
|
|
4038
|
+
org_id?: string | null;
|
|
4039
|
+
session_id: string;
|
|
4040
|
+
session_metadata?: Record<string, unknown> | null;
|
|
4041
|
+
status: string;
|
|
4042
|
+
total_calls?: number;
|
|
4043
|
+
user_email?: string | null;
|
|
4044
|
+
user_id?: string | null;
|
|
4045
|
+
}
|
|
4046
|
+
|
|
4047
|
+
/**
|
|
4048
|
+
* Body for resuming a paused parallel-dialer session.
|
|
4049
|
+
*
|
|
4050
|
+
* The resume endpoint mirrors what the dialer UI does when the SDR
|
|
4051
|
+
* clicks "Start Dialing" on a paused session: it pages the source list
|
|
4052
|
+
* using the cursor stored in ``session_metadata``, filters out
|
|
4053
|
+
* already-called contacts, and forwards the next batch to the voice
|
|
4054
|
+
* service's ``start-session`` endpoint.
|
|
4055
|
+
*
|
|
4056
|
+
* Only ``max_contacts`` is exposed - org / user / from_phone /
|
|
4057
|
+
* list_id / agent / session_metadata are all read off the persisted
|
|
4058
|
+
* session so the caller doesn't have to reconstruct them.
|
|
4059
|
+
*/
|
|
4060
|
+
export interface DialerSessionResumeRequest {
|
|
4061
|
+
/** Number of contacts to dial in this batch. Voice caps parallel dialing at 4. */
|
|
4062
|
+
max_contacts?: number;
|
|
4063
|
+
}
|
|
4064
|
+
|
|
4065
|
+
/**
|
|
4066
|
+
* Echo of voice's ``ParallelDialResponse`` plus a count of contacts dialed.
|
|
4067
|
+
*
|
|
4068
|
+
* ``dialed_count`` is the number of calls actually placed in this
|
|
4069
|
+
* resume batch. It can be lower than ``max_contacts`` when the list is
|
|
4070
|
+
* near exhausted, every remaining row is missing a phone, or every
|
|
4071
|
+
* candidate was already called earlier in the session.
|
|
4072
|
+
*
|
|
4073
|
+
* ``twilio_token`` and ``conference_name`` are deliberately dropped -
|
|
4074
|
+
* they are SDR-frontend specific and an MCP / API caller has no use
|
|
4075
|
+
* for them. The dialer UI regenerates them on join.
|
|
4076
|
+
*/
|
|
4077
|
+
export interface DialerSessionResumeResponse {
|
|
4078
|
+
created_at?: unknown | null;
|
|
4079
|
+
dialed_count?: number;
|
|
4080
|
+
from_phone?: string | null;
|
|
4081
|
+
message?: string | null;
|
|
4082
|
+
name?: string | null;
|
|
4083
|
+
org_id?: string | null;
|
|
4084
|
+
session_id: string;
|
|
4085
|
+
session_metadata?: Record<string, unknown> | null;
|
|
4086
|
+
status: string;
|
|
4087
|
+
total_calls?: number;
|
|
4088
|
+
updated_at?: unknown | null;
|
|
4089
|
+
user_email?: string | null;
|
|
4090
|
+
user_id?: string | null;
|
|
4091
|
+
}
|
|
4092
|
+
|
|
4093
|
+
/**
|
|
4094
|
+
* Body for pause / resume / stop on a parallel-dialer session.
|
|
4095
|
+
*
|
|
4096
|
+
* The voice service treats a status PATCH as the lifecycle hook:
|
|
4097
|
+
* - ``ACTIVE`` resumes a paused session.
|
|
4098
|
+
* - ``PAUSED`` pauses an active session.
|
|
4099
|
+
* - ``COMPLETED`` ends the session - one-way, can be re-opened only via
|
|
4100
|
+
* ``manual-dial`` (which we do not expose here).
|
|
4101
|
+
* - ``FAILED`` is reserved for system use; we reject it on the public
|
|
4102
|
+
* surface so a caller cannot mis-mark a session.
|
|
4103
|
+
*/
|
|
4104
|
+
export interface DialerSessionStatusUpdateRequest {
|
|
4105
|
+
/** One of "ACTIVE" (resume), "PAUSED" (pause), "COMPLETED" (stop). */
|
|
4106
|
+
status: string;
|
|
4107
|
+
}
|
|
4108
|
+
|
|
4109
|
+
/** Echo of voice's ``SessionUpdateResponse`` for the public surface. */
|
|
4110
|
+
export interface DialerSessionStatusUpdateResponse {
|
|
4111
|
+
created_at?: unknown | null;
|
|
4112
|
+
from_phone?: string | null;
|
|
4113
|
+
message?: string | null;
|
|
4114
|
+
name?: string | null;
|
|
4115
|
+
org_id?: string | null;
|
|
4116
|
+
session_id: string;
|
|
4117
|
+
session_metadata?: Record<string, unknown> | null;
|
|
4118
|
+
status: string;
|
|
4119
|
+
total_calls?: number;
|
|
4120
|
+
updated_at?: unknown | null;
|
|
4121
|
+
user_email?: string | null;
|
|
4122
|
+
user_id?: string | null;
|
|
4123
|
+
}
|
|
4124
|
+
|
|
4125
|
+
/**
|
|
4126
|
+
* One row from the dialer-sessions list.
|
|
4127
|
+
*
|
|
4128
|
+
* The voice service returns a flat dict per session built from
|
|
4129
|
+
* ``ParallelDialSession`` columns plus an aggregated ``contact_ids``
|
|
4130
|
+
* array. We surface every documented column directly so that read-only
|
|
4131
|
+
* consumers can introspect a session without a follow-up call.
|
|
4132
|
+
*/
|
|
4133
|
+
export interface DialerSessionSummary {
|
|
4134
|
+
campaign_builder_campaign_id?: string | null;
|
|
4135
|
+
campaign_id?: string | null;
|
|
4136
|
+
contact_ids?: Array<unknown>;
|
|
4137
|
+
created_at?: unknown | null;
|
|
4138
|
+
from_phone?: string | null;
|
|
4139
|
+
name?: string | null;
|
|
4140
|
+
org_id?: string | null;
|
|
4141
|
+
session_id: string;
|
|
4142
|
+
session_metadata?: Record<string, unknown> | null;
|
|
4143
|
+
status?: string | null;
|
|
4144
|
+
total_calls?: number | null;
|
|
4145
|
+
updated_at?: unknown | null;
|
|
4146
|
+
user_email?: string | null;
|
|
4147
|
+
user_id?: string | null;
|
|
4148
|
+
}
|
|
4149
|
+
|
|
4150
|
+
/**
|
|
4151
|
+
* List wrapper for dialer sessions.
|
|
4152
|
+
*
|
|
4153
|
+
* Top-level matches the voice payload (``data`` + ``pagination``) so the
|
|
4154
|
+
* public API caller sees the exact same shape they would get if voice
|
|
4155
|
+
* were exposed directly. The standard ``ApiResponse`` envelope wraps
|
|
4156
|
+
* THIS object as its ``data`` field.
|
|
4157
|
+
*/
|
|
4158
|
+
export interface DialerSessionsListResponse {
|
|
4159
|
+
pagination?: VoicePagination;
|
|
4160
|
+
sessions?: Array<DialerSessionSummary>;
|
|
4161
|
+
}
|
|
4162
|
+
|
|
4163
|
+
/** voice `DialerSettingsRequest`, without `org_id`. Only fields sent change. */
|
|
4164
|
+
export interface DialerSettingsUpdate {
|
|
4165
|
+
dialing_mode?: ("power" | "parallel") | null;
|
|
4166
|
+
dnd_enabled?: boolean | null;
|
|
4167
|
+
parallel_count?: number | null;
|
|
4168
|
+
skip_dial_trees?: boolean | null;
|
|
4169
|
+
skip_voicemails?: boolean | null;
|
|
4170
|
+
/** The rep whose settings these are. */
|
|
4171
|
+
user_email: string;
|
|
4172
|
+
voicemail_grace_period?: number | null;
|
|
4173
|
+
}
|
|
4174
|
+
|
|
4175
|
+
/**
|
|
4176
|
+
* Top-level wrapper for dialer analytics.
|
|
4177
|
+
*
|
|
4178
|
+
* Field names follow the voice ``ParallelDialerReport`` shape so the
|
|
4179
|
+
* structured response is meaningful both to a Developer API caller and
|
|
4180
|
+
* to an MCP agent rendering it inline.
|
|
4181
|
+
*/
|
|
4182
|
+
export interface DialerStatsResponse {
|
|
4183
|
+
filters?: DialerReportFilters;
|
|
4184
|
+
metrics?: Array<DialerReportMetric>;
|
|
4185
|
+
summary?: DialerReportMetric | null;
|
|
4186
|
+
}
|
|
4187
|
+
|
|
4188
|
+
/** voice `EmailThread`: one earlier message in the thread being answered. */
|
|
4189
|
+
export interface EmailThreadMessage {
|
|
4190
|
+
body: string;
|
|
4191
|
+
sender?: string | null;
|
|
4192
|
+
subject: string;
|
|
4193
|
+
timestamp?: string | null;
|
|
4194
|
+
}
|
|
4195
|
+
|
|
4196
|
+
/**
|
|
4197
|
+
* A rule deciding where an inbound call on one number goes.
|
|
4198
|
+
*
|
|
4199
|
+
* `org_id` is absent on purpose - pinned from the key by the router.
|
|
4200
|
+
* Rules are evaluated by ascending `priority`; the first whose
|
|
4201
|
+
* `match_conditions` hold wins.
|
|
4202
|
+
*/
|
|
4203
|
+
export interface InboundRouteCreateRequest {
|
|
4204
|
+
is_active?: boolean;
|
|
4205
|
+
/** `{"always": true}` or a `{"schedule": {...}}` block with `days`, `start_time`/`end_time` as HH:MM, and an IANA `timezone`. */
|
|
4206
|
+
match_conditions?: Record<string, unknown>;
|
|
4207
|
+
name?: string | null;
|
|
4208
|
+
/** The number this rule applies to. */
|
|
4209
|
+
phone_number: string;
|
|
4210
|
+
/** Lower wins. Ties are resolved arbitrarily. */
|
|
4211
|
+
priority?: number;
|
|
4212
|
+
queue_max_wait_seconds?: number | null;
|
|
4213
|
+
ring_strategy?: "single" | "round_robin";
|
|
4214
|
+
/** Agent id, department or extension - depends on `target_type`. */
|
|
4215
|
+
target_id?: string | null;
|
|
4216
|
+
target_type: "ai_agent" | "department" | "extension" | "voicemail";
|
|
4217
|
+
}
|
|
4218
|
+
|
|
4219
|
+
/** Partial update of one rule. Omitted fields are untouched. */
|
|
4220
|
+
export interface InboundRouteUpdateRequest {
|
|
4221
|
+
is_active?: boolean | null;
|
|
4222
|
+
match_conditions?: Record<string, unknown> | null;
|
|
4223
|
+
name?: string | null;
|
|
4224
|
+
priority?: number | null;
|
|
4225
|
+
queue_max_wait_seconds?: number | null;
|
|
4226
|
+
ring_strategy?: ("single" | "round_robin") | null;
|
|
4227
|
+
target_id?: string | null;
|
|
4228
|
+
target_type?: ("ai_agent" | "department" | "extension" | "voicemail") | null;
|
|
4229
|
+
}
|
|
4230
|
+
|
|
4231
|
+
/**
|
|
4232
|
+
* An MCP server an agent can call tools on.
|
|
4233
|
+
*
|
|
4234
|
+
* `org_id` is deliberately ABSENT even though voice's model requires it: it
|
|
4235
|
+
* is pinned from the API key by the router and a body-supplied value would be
|
|
4236
|
+
* a tenancy hole.
|
|
4237
|
+
*/
|
|
4238
|
+
export interface McpServerCreateRequest {
|
|
4239
|
+
args?: Array<string> | null;
|
|
4240
|
+
/** Required when `transport_type` is `stdio`. */
|
|
4241
|
+
command?: string | null;
|
|
4242
|
+
/** Required when `transport_type` is `sse`. */
|
|
4243
|
+
connection_url?: string | null;
|
|
4244
|
+
description?: string | null;
|
|
4245
|
+
enabled?: boolean;
|
|
4246
|
+
/** Environment for the server process. WRITE-ONLY: values set here are never echoed back by the read routes. */
|
|
4247
|
+
env_vars?: Record<string, string> | null;
|
|
4248
|
+
name: string;
|
|
4249
|
+
/** `sse` for a remote server reached over HTTP, `stdio` for a local process. */
|
|
4250
|
+
transport_type: "sse" | "stdio";
|
|
4251
|
+
}
|
|
4252
|
+
|
|
4253
|
+
/** Partial update. Every field is optional; omitted fields are untouched. */
|
|
4254
|
+
export interface McpServerUpdateRequest {
|
|
4255
|
+
args?: Array<string> | null;
|
|
4256
|
+
command?: string | null;
|
|
4257
|
+
connection_url?: string | null;
|
|
4258
|
+
description?: string | null;
|
|
4259
|
+
enabled?: boolean | null;
|
|
4260
|
+
env_vars?: Record<string, string> | null;
|
|
4261
|
+
name?: string | null;
|
|
4262
|
+
transport_type?: ("sse" | "stdio") | null;
|
|
4263
|
+
}
|
|
4264
|
+
|
|
4265
|
+
/** One missed inbound callback row. */
|
|
4266
|
+
export interface MissedCallback {
|
|
4267
|
+
call_duration?: number | null;
|
|
4268
|
+
caller_phone?: string | null;
|
|
4269
|
+
contact_id?: unknown | null;
|
|
4270
|
+
created_at?: unknown | null;
|
|
4271
|
+
email?: string | null;
|
|
4272
|
+
first_name?: string | null;
|
|
4273
|
+
id?: unknown | null;
|
|
4274
|
+
inbound_number?: string | null;
|
|
4275
|
+
is_callback?: boolean;
|
|
4276
|
+
last_disposition?: string | null;
|
|
4277
|
+
last_name?: string | null;
|
|
4278
|
+
missed_reason?: string | null;
|
|
4279
|
+
parallel_session_id?: string | null;
|
|
4280
|
+
previous_calls_count?: number;
|
|
4281
|
+
resolution?: string | null;
|
|
4282
|
+
resolved_at?: unknown | null;
|
|
4283
|
+
resolved_by?: string | null;
|
|
4284
|
+
seen_at?: unknown | null;
|
|
4285
|
+
seen_by?: string | null;
|
|
4286
|
+
session?: MissedCallbackSession | null;
|
|
4287
|
+
}
|
|
4288
|
+
|
|
4289
|
+
/** Parallel session the caller was previously dialed from. */
|
|
4290
|
+
export interface MissedCallbackSession {
|
|
4291
|
+
campaign_id?: string | null;
|
|
4292
|
+
list_id?: string | null;
|
|
4293
|
+
list_title?: string | null;
|
|
4294
|
+
name?: string | null;
|
|
4295
|
+
session_id?: string | null;
|
|
4296
|
+
status?: string | null;
|
|
4297
|
+
}
|
|
4298
|
+
|
|
4299
|
+
export interface MissedCallbacksResponse {
|
|
4300
|
+
count?: number;
|
|
4301
|
+
missed_callbacks?: Array<MissedCallback>;
|
|
4302
|
+
}
|
|
4303
|
+
|
|
4304
|
+
export interface PaginationMeta {
|
|
4305
|
+
/** Whether there are more pages */
|
|
4306
|
+
has_next: boolean;
|
|
4307
|
+
/** Items per page */
|
|
4308
|
+
limit: number;
|
|
4309
|
+
/** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
|
|
4310
|
+
next_cursor?: string | null;
|
|
4311
|
+
/** Current page number (1-indexed) */
|
|
4312
|
+
page: number;
|
|
4313
|
+
/** Total number of items */
|
|
4314
|
+
total: number;
|
|
4315
|
+
}
|
|
4316
|
+
|
|
4317
|
+
/**
|
|
4318
|
+
* A colleague the receptionist and the in-call transfer picker can reach.
|
|
4319
|
+
*
|
|
4320
|
+
* `extension` and `phone_number` are both optional: the number a transfer
|
|
4321
|
+
* actually dials is resolved from the work-number inventory first, and the
|
|
4322
|
+
* stored `phone_number` is only the hand-entered override.
|
|
4323
|
+
*/
|
|
4324
|
+
export interface PhoneDirectoryEntryCreate {
|
|
4325
|
+
availability?: string;
|
|
4326
|
+
department: string;
|
|
4327
|
+
extension?: string | null;
|
|
4328
|
+
is_active?: boolean;
|
|
4329
|
+
phone_number?: string | null;
|
|
4330
|
+
user_email: string;
|
|
4331
|
+
user_name: string;
|
|
4332
|
+
}
|
|
4333
|
+
|
|
4334
|
+
export interface PhoneDirectoryEntryUpdate {
|
|
4335
|
+
availability?: string | null;
|
|
4336
|
+
department?: string | null;
|
|
4337
|
+
extension?: string | null;
|
|
4338
|
+
is_active?: boolean | null;
|
|
4339
|
+
phone_number?: string | null;
|
|
4340
|
+
user_name?: string | null;
|
|
4341
|
+
}
|
|
4342
|
+
|
|
4343
|
+
/**
|
|
4344
|
+
* A site to crawl into a collection on a schedule.
|
|
4345
|
+
*
|
|
4346
|
+
* CREATING ONE CRAWLS IMMEDIATELY - it does not wait for the first scheduled
|
|
4347
|
+
* run. That is why this operation is `billable` rather than a plain write.
|
|
4348
|
+
*/
|
|
4349
|
+
export interface ScrapeSourceCreateRequest {
|
|
4350
|
+
/** How often to re-crawl. `manual` never re-crawls. */
|
|
4351
|
+
frequency?: "daily" | "weekly" | "monthly" | "manual";
|
|
4352
|
+
/** Ceiling, not a target - a small site only crawls what exists. */
|
|
4353
|
+
max_pages?: number;
|
|
4354
|
+
/** Root URL. Everything under it is followed. */
|
|
4355
|
+
url: string;
|
|
4356
|
+
}
|
|
4357
|
+
|
|
4358
|
+
/** Change a source's cadence, page ceiling, or pause it. Omitted = unchanged. */
|
|
4359
|
+
export interface ScrapeSourceUpdateRequest {
|
|
4360
|
+
/** False pauses the recurring crawl; the source survives. */
|
|
4361
|
+
enabled?: boolean | null;
|
|
4362
|
+
frequency?: ("daily" | "weekly" | "monthly" | "manual") | null;
|
|
4363
|
+
max_pages?: number | null;
|
|
4364
|
+
}
|
|
4365
|
+
|
|
4366
|
+
/** voice `SessionCallsRequest`. */
|
|
4367
|
+
export interface SessionCallsLookup {
|
|
4368
|
+
contact_ids: Array<string>;
|
|
4369
|
+
}
|
|
4370
|
+
|
|
4371
|
+
/**
|
|
4372
|
+
* `POST /api/v1/twins/extract-linkedin` binds `linkedin_url` as a FORM
|
|
4373
|
+
* field; this is the JSON shape the API takes and the router re-encodes.
|
|
4374
|
+
*/
|
|
4375
|
+
export interface TwinLinkedInExtract {
|
|
4376
|
+
/** A LinkedIn profile URL, e.g. https://linkedin.com/in/name */
|
|
4377
|
+
linkedin_url: string;
|
|
4378
|
+
}
|
|
4379
|
+
|
|
4380
|
+
/**
|
|
4381
|
+
* Body for creating a voice agent or twin.
|
|
4382
|
+
*
|
|
4383
|
+
* Org is pinned server-side from the API key - never read from the body.
|
|
4384
|
+
* ``created_by_email`` is likewise pinned to the calling principal (used
|
|
4385
|
+
* upstream for one-twin-per-user enforcement and SDR/booking attribution);
|
|
4386
|
+
* an org-wide API key has no per-human identity to attribute to beyond the
|
|
4387
|
+
* key itself, so it is set to the same identifier the dialer-session and
|
|
4388
|
+
* call routes already use for ``user_email``.
|
|
4389
|
+
*
|
|
4390
|
+
* Deliberately NOT exposed here (follow-up, not an oversight): twin-only
|
|
4391
|
+
* fields ``tone_profile``, ``channels``, and ``persona_source_user_id``.
|
|
4392
|
+
* They only apply when ``entity_type="twin"`` and none of this PR's
|
|
4393
|
+
* priority surfaces (ad-hoc call, dialer sessions, dispositions) need them.
|
|
4394
|
+
*/
|
|
4395
|
+
export interface VoiceAgentCreateRequest {
|
|
4396
|
+
/** Agent UUID. Auto-generated if omitted. */
|
|
4397
|
+
agent_id?: string | null;
|
|
4398
|
+
/** Initial status. */
|
|
4399
|
+
agent_status?: "active" | "inactive" | "archived";
|
|
4400
|
+
/** "agent" or "twin". */
|
|
4401
|
+
entity_type?: "agent" | "twin";
|
|
4402
|
+
identity: VoiceAgentIdentity;
|
|
4403
|
+
/** Save this as a reusable template rather than a live agent. */
|
|
4404
|
+
is_template?: boolean;
|
|
4405
|
+
/** Attached knowledge collections. */
|
|
4406
|
+
knowledge?: VoiceAgentKnowledge | null;
|
|
4407
|
+
persona: VoiceAgentPersona;
|
|
4408
|
+
/** Agent role (e.g. "SDR", "AE", "Receptionist", "CSM"). */
|
|
4409
|
+
role: string;
|
|
4410
|
+
/** Template this agent was cloned from, if any. */
|
|
4411
|
+
template_id?: string | null;
|
|
4412
|
+
/** Also draw on the org-wide knowledge base. */
|
|
4413
|
+
use_company_knowledge?: boolean;
|
|
4414
|
+
}
|
|
4415
|
+
|
|
4416
|
+
/** Complete agent configuration, as returned by create/get/update. */
|
|
4417
|
+
export interface VoiceAgentDetail {
|
|
4418
|
+
agent_id: string;
|
|
4419
|
+
agent_status: string;
|
|
4420
|
+
created_at?: unknown | null;
|
|
4421
|
+
created_by_email?: string | null;
|
|
4422
|
+
entity_type: string;
|
|
4423
|
+
id: number;
|
|
4424
|
+
identity: VoiceAgentIdentity;
|
|
4425
|
+
is_template: boolean;
|
|
4426
|
+
knowledge: VoiceAgentKnowledge;
|
|
4427
|
+
org_id: string;
|
|
4428
|
+
persona: VoiceAgentPersona;
|
|
4429
|
+
role: string;
|
|
4430
|
+
template_id?: string | null;
|
|
4431
|
+
updated_at?: unknown | null;
|
|
4432
|
+
use_company_knowledge: boolean;
|
|
4433
|
+
}
|
|
4434
|
+
|
|
4435
|
+
/** Communication-channel identity for a voice agent (mirrors V2 ``IdentityV2``). */
|
|
4436
|
+
export interface VoiceAgentIdentity {
|
|
4437
|
+
/** URL of the agent's avatar image. Optional. */
|
|
4438
|
+
avatar_url?: string | null;
|
|
4439
|
+
/** Calendar/event-type system ID. Optional. */
|
|
4440
|
+
calendar?: number | null;
|
|
4441
|
+
/** Phone number in E.164 format (e.g. +15551234567). Optional. */
|
|
4442
|
+
phone?: string | null;
|
|
4443
|
+
/** Voice ID (Cartesia voice_id or OpenAI voice name). Optional. */
|
|
4444
|
+
voice?: string | null;
|
|
4445
|
+
}
|
|
4446
|
+
|
|
4447
|
+
/** Knowledge-collection attachments for a voice agent. */
|
|
4448
|
+
export interface VoiceAgentKnowledge {
|
|
4449
|
+
/** Collection IDs (max 4). */
|
|
4450
|
+
collections?: Array<string>;
|
|
4451
|
+
}
|
|
4452
|
+
|
|
4453
|
+
/** Paginated agent list. */
|
|
4454
|
+
export interface VoiceAgentListResponse {
|
|
4455
|
+
agents?: Array<VoiceAgentSummary>;
|
|
4456
|
+
page?: number;
|
|
4457
|
+
page_size?: number;
|
|
4458
|
+
total_count?: number;
|
|
4459
|
+
total_pages?: number;
|
|
4460
|
+
}
|
|
4461
|
+
|
|
4462
|
+
/** Persona / prompt configuration for a voice agent (mirrors V2 ``PersonaV2``). */
|
|
4463
|
+
export interface VoiceAgentPersona {
|
|
4464
|
+
/** Display name of the agent. */
|
|
4465
|
+
agent_name: string;
|
|
4466
|
+
/** 0.0=passive, 1.0=assertive. */
|
|
4467
|
+
assertiveness_level: number;
|
|
4468
|
+
/** TTS pronunciation override for the company name (e.g. 'Science' for 'CIENCE'). */
|
|
4469
|
+
company_name_pronunciation?: string | null;
|
|
4470
|
+
/** 0.0=verbose, 1.0=brief. */
|
|
4471
|
+
conciseness_level: number;
|
|
4472
|
+
/** Brief summary of the agent's purpose. */
|
|
4473
|
+
description: string;
|
|
4474
|
+
/** 0.0=casual, 1.0=formal. */
|
|
4475
|
+
formality_level: number;
|
|
4476
|
+
/** Extra instructions for inbound calls. */
|
|
4477
|
+
inbound_instructions?: string | null;
|
|
4478
|
+
/** Extra instructions for outbound calls. */
|
|
4479
|
+
outbound_instructions?: string | null;
|
|
4480
|
+
/** Voicemail message this agent leaves. */
|
|
4481
|
+
outbound_voicemail_prompt?: string | null;
|
|
4482
|
+
/** Personality and behavior description. */
|
|
4483
|
+
persona: string;
|
|
4484
|
+
}
|
|
4485
|
+
|
|
4486
|
+
/** Envelope for single-agent operations (create / get / update). */
|
|
4487
|
+
export interface VoiceAgentResponse {
|
|
4488
|
+
agent?: VoiceAgentDetail | null;
|
|
4489
|
+
message?: string | null;
|
|
4490
|
+
}
|
|
4491
|
+
|
|
4492
|
+
/**
|
|
4493
|
+
* One row from the agent list (full management shape - see also the
|
|
4494
|
+
* lighter-weight ``DialerAgentSummary`` used by the dialer picker).
|
|
4495
|
+
*/
|
|
4496
|
+
export interface VoiceAgentSummary {
|
|
4497
|
+
agent_id: string;
|
|
4498
|
+
agent_name: string;
|
|
4499
|
+
agent_status: string;
|
|
4500
|
+
avatar_url?: string | null;
|
|
4501
|
+
calendar_event_id?: number | null;
|
|
4502
|
+
collection_count?: number;
|
|
4503
|
+
created_at?: unknown | null;
|
|
4504
|
+
description?: string | null;
|
|
4505
|
+
entity_type: string;
|
|
4506
|
+
has_knowledge?: boolean;
|
|
4507
|
+
id: number;
|
|
4508
|
+
is_template?: boolean;
|
|
4509
|
+
org_id: string;
|
|
4510
|
+
phone?: string | null;
|
|
4511
|
+
role: string;
|
|
4512
|
+
template_id?: string | null;
|
|
4513
|
+
updated_at?: unknown | null;
|
|
4514
|
+
use_company_knowledge?: boolean;
|
|
4515
|
+
voice?: string | null;
|
|
4516
|
+
}
|
|
4517
|
+
|
|
4518
|
+
/** Body for partially updating a voice agent. Only supplied fields change. */
|
|
4519
|
+
export interface VoiceAgentUpdateRequest {
|
|
4520
|
+
agent_status?: ("active" | "inactive" | "archived") | null;
|
|
4521
|
+
identity?: VoiceAgentIdentity | null;
|
|
4522
|
+
is_template?: boolean | null;
|
|
4523
|
+
knowledge?: VoiceAgentKnowledge | null;
|
|
4524
|
+
persona?: VoiceAgentPersona | null;
|
|
4525
|
+
role?: string | null;
|
|
4526
|
+
use_company_knowledge?: boolean | null;
|
|
4527
|
+
}
|
|
4528
|
+
|
|
4529
|
+
/**
|
|
4530
|
+
* Body for dispatching one AI-agent call to an arbitrary number.
|
|
4531
|
+
*
|
|
4532
|
+
* No dialer session or contact list required - this is the "call this one
|
|
4533
|
+
* number right now" primitive (`voice/graph8_livekit/routers/call.py:19`).
|
|
4534
|
+
* Places a REAL call and is billable; send an ``Idempotency-Key`` header to
|
|
4535
|
+
* make a retry safe (honored automatically by the Developer API's
|
|
4536
|
+
* idempotency middleware on every POST - no extra body field needed).
|
|
4537
|
+
*/
|
|
4538
|
+
export interface VoiceCallStartRequest {
|
|
4539
|
+
/** Voice agent UUID. Use GET /voice/agents to look up. */
|
|
4540
|
+
agent_id?: string | null;
|
|
4541
|
+
/** Legacy V1 agent-name fallback. */
|
|
4542
|
+
agent_name?: string | null;
|
|
4543
|
+
/** Webhook notified with the call result on completion. Optional. */
|
|
4544
|
+
callback_url?: string | null;
|
|
4545
|
+
/** Optional campaign id for attribution. */
|
|
4546
|
+
campaign_id?: string | null;
|
|
4547
|
+
/** CDP contact id, if this call is tied to a known contact. */
|
|
4548
|
+
contact_id?: string | null;
|
|
4549
|
+
/** If true, the call is validated but not actually dispatched. */
|
|
4550
|
+
dry_run?: boolean;
|
|
4551
|
+
/** Contact email, for the agent's context. */
|
|
4552
|
+
email?: string | null;
|
|
4553
|
+
/** "agent" or "twin". Optional. */
|
|
4554
|
+
entity_type?: ("agent" | "twin") | null;
|
|
4555
|
+
/** Appointments event-type id the agent can offer to book. Omit if this call has no booking flow. */
|
|
4556
|
+
event_id?: number | null;
|
|
4557
|
+
/** Contact first name, for the agent's context. */
|
|
4558
|
+
first_name?: string | null;
|
|
4559
|
+
/** Caller ID. Must be one of the org's numbers. */
|
|
4560
|
+
from_phone: string;
|
|
4561
|
+
/** Contact last name, for the agent's context. */
|
|
4562
|
+
last_name?: string | null;
|
|
4563
|
+
/** Optional Campaign Builder (Studio) campaign UUID. */
|
|
4564
|
+
studio_campaign_id?: string | null;
|
|
4565
|
+
/** IANA timezone for the callee. */
|
|
4566
|
+
timezone?: string;
|
|
4567
|
+
/** Number to call. Normalized server-side. */
|
|
4568
|
+
to_phone: string;
|
|
4569
|
+
}
|
|
4570
|
+
|
|
4571
|
+
/** Echo of voice's ``AgentDispatchResponse``. */
|
|
4572
|
+
export interface VoiceCallStartResponse {
|
|
4573
|
+
message: string;
|
|
4574
|
+
room_name: string;
|
|
4575
|
+
status: string;
|
|
4576
|
+
}
|
|
4577
|
+
|
|
4578
|
+
/**
|
|
4579
|
+
* Body for creating an org-level custom disposition. Org admin only
|
|
4580
|
+
* (enforced by voice; see the router docstring above).
|
|
4581
|
+
*/
|
|
4582
|
+
export interface VoiceCustomDispositionCreateRequest {
|
|
4583
|
+
/** Hex value from voice's preset palette (e.g. '#10b981'). Invalid values 400. */
|
|
4584
|
+
color: string;
|
|
4585
|
+
description?: string | null;
|
|
4586
|
+
/** Whether this outcome counts as a live connection in analytics. */
|
|
4587
|
+
is_connected: boolean;
|
|
4588
|
+
name: string;
|
|
4589
|
+
}
|
|
4590
|
+
|
|
4591
|
+
export interface VoiceCustomDispositionItem {
|
|
4592
|
+
color: string;
|
|
4593
|
+
description?: string | null;
|
|
4594
|
+
id: number;
|
|
4595
|
+
is_connected: boolean;
|
|
4596
|
+
/** Stable value to use in filters/writes, e.g. "custom_42". */
|
|
4597
|
+
key: string;
|
|
4598
|
+
name: string;
|
|
4599
|
+
}
|
|
4600
|
+
|
|
4601
|
+
/**
|
|
4602
|
+
* Body for editing a custom disposition. Only supplied fields change.
|
|
4603
|
+
*
|
|
4604
|
+
* ``is_connected`` is locked by voice once any call already references the
|
|
4605
|
+
* disposition (changing it would retroactively re-classify historical
|
|
4606
|
+
* calls) - forwarded as-is and voice's 409 surfaces to the caller.
|
|
4607
|
+
*/
|
|
4608
|
+
export interface VoiceCustomDispositionUpdateRequest {
|
|
4609
|
+
color?: string | null;
|
|
4610
|
+
description?: string | null;
|
|
4611
|
+
is_connected?: boolean | null;
|
|
4612
|
+
name?: string | null;
|
|
4613
|
+
}
|
|
4614
|
+
|
|
4615
|
+
export interface VoiceDispositionListResponse {
|
|
4616
|
+
custom?: Array<VoiceCustomDispositionItem>;
|
|
4617
|
+
custom_limit?: number;
|
|
4618
|
+
custom_used?: number;
|
|
4619
|
+
system?: Array<VoiceSystemDispositionItem>;
|
|
4620
|
+
}
|
|
4621
|
+
|
|
4622
|
+
/**
|
|
4623
|
+
* A LIST result from voice, normalised so `items` is always present.
|
|
4624
|
+
*
|
|
4625
|
+
* Voice is inconsistent about whether a list comes back bare or under a named
|
|
4626
|
+
* key (`collections`, `files`, `routes`, `chats`, ...). Both are preserved:
|
|
4627
|
+
* the original key is kept for anyone reading voice's docs, and `items`
|
|
4628
|
+
* always holds the same rows so a client can page one way.
|
|
4629
|
+
*/
|
|
4630
|
+
export interface VoiceListPayload {
|
|
4631
|
+
items?: Array<unknown>;
|
|
4632
|
+
[key: string]: unknown;
|
|
4633
|
+
}
|
|
4634
|
+
|
|
4635
|
+
/**
|
|
4636
|
+
* Pagination block returned by the voice list-sessions endpoint.
|
|
4637
|
+
*
|
|
4638
|
+
* Mirrored verbatim so the field names match what voice already ships
|
|
4639
|
+
* (``total_items`` / ``total_pages`` / ``current_page`` / ``page_size``).
|
|
4640
|
+
* Keeping voice's field names here avoids a renaming layer that would
|
|
4641
|
+
* have to be updated every time voice extends the block.
|
|
4642
|
+
*/
|
|
4643
|
+
export interface VoicePagination {
|
|
4644
|
+
current_page?: number;
|
|
4645
|
+
page_size?: number;
|
|
4646
|
+
total_items?: number;
|
|
4647
|
+
total_pages?: number;
|
|
4648
|
+
}
|
|
4649
|
+
|
|
4650
|
+
/**
|
|
4651
|
+
* One voice object - a collection, an agent, a route, a chat.
|
|
4652
|
+
*
|
|
4653
|
+
* Open-shaped: voice adds fields to these bodies on its own release cadence
|
|
4654
|
+
* and a dropped-or-added key must not be a 500 in this service.
|
|
4655
|
+
*/
|
|
4656
|
+
export type VoicePayload = Record<string, unknown>;
|
|
4657
|
+
|
|
4658
|
+
export interface VoiceSystemDispositionItem {
|
|
4659
|
+
is_connected: boolean;
|
|
4660
|
+
key: string;
|
|
4661
|
+
}
|