Skip to main content

telnyx-ai-assistants-javascript

Create and manage AI voice assistants with custom personalities, knowledge bases, and tool integrations. This skill provides JavaScript SDK examples.

Informations de source

Dépôt
team-telnyx/telnyx-toolkit
Dernière activité de la source
10 février 2026 à 20:41
Langue détectée de SKILL.md
anglais
Étoiles
3
Forks
2

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
telnyx-ai-assistants-javascript
description
Create and manage AI voice assistants with custom personalities, knowledge bases, and tool integrations. This skill provides JavaScript SDK examples.
metadata
{"author":"telnyx","product":"ai-assistants","language":"javascript","generated_by":"telnyx-ext-skills-generator"}
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. --> # Telnyx Ai Assistants - JavaScript ## Installation ```bash npm install telnyx ``` ## Setup ```javascript import Telnyx from 'telnyx'; const client = new Telnyx({ apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted }); ``` All examples below assume `client` is already initialized as shown above. ## List assistants Retrieve a list of all AI Assistants configured by the user. `GET /ai/assistants` ```javascript const assistantsList = await client.ai.assistants.list(); console.log(assistantsList.data); ``` ## Create an assistant Create a new AI Assistant. `POST /ai/assistants` — Required: `name`, `model`, `instructions` ```javascript const assistant = await client.ai.assistants.create({ instructions: 'instructions', model: 'model', name: 'name', }); console.log(assistant.id); ``` ## Get an assistant Retrieve an AI Assistant configuration by `assistant_id`. `GET /ai/assistants/{assistant_id}` ```javascript const assistant = await client.ai.assistants.retrieve('assistant_id'); console.log(assistant.id); ``` ## Update an assistant Update an AI Assistant's attributes. `POST /ai/assistants/{assistant_id}` ```javascript const assistant = await client.ai.assistants.update('assistant_id'); console.log(assistant.id); ``` ## Delete an assistant Delete an AI Assistant by `assistant_id`. `DELETE /ai/assistants/{assistant_id}` ```javascript const assistant = await client.ai.assistants.delete('assistant_id'); console.log(assistant.id); ``` ## Assistant Chat (BETA) This endpoint allows a client to send a chat message to a specific AI Assistant. `POST /ai/assistants/{assistant_id}/chat` — Required: `content`, `conversation_id` ```javascript const response = await client.ai.assistants.chat('assistant_id', { content: 'Tell me a joke about cats', conversation_id: '42b20469-1215-4a9a-8964-c36f66b406f4', }); console.log(response.content); ``` ## Assistant Sms Chat Send an SMS message for an assistant. `POST /ai/assistants/{assistant_id}/chat/sms` — Required: `from`, `to` ```javascript const response = await client.ai.assistants.sendSMS('assistant_id', { from: 'from', to: 'to' }); console.log(response.conversation_id); ``` ## Clone Assistant Clone an existing assistant, excluding telephony and messaging settings. `POST /ai/assistants/{assistant_id}/clone` ```javascript const assistant = await client.ai.assistants.clone('assistant_id'); console.log(assistant.id); ``` ## Import assistants from external provider Import assistants from external providers. `POST /ai/assistants/import` — Required: `provider`, `api_key_ref` ```javascript const assistantsList = await client.ai.assistants.imports({ api_key_ref: 'api_key_ref', provider: 'elevenlabs', }); console.log(assistantsList.data); ``` ## List scheduled events Get scheduled events for an assistant with pagination and filtering `GET /ai/assistants/{assistant_id}/scheduled_events` ```javascript // Automatically fetches more pages as needed. for await (const scheduledEventListResponse of client.ai.assistants.scheduledEvents.list( 'assistant_id', )) { console.log(scheduledEventListResponse); } ``` ## Create a scheduled event Create a scheduled event for an assistant `POST /ai/assistants/{assistant_id}/scheduled_events` — Required: `telnyx_conversation_channel`, `telnyx_end_user_target`, `telnyx_agent_target`, `scheduled_at_fixed_datetime` ```javascript const scheduledEventResponse = await client.ai.assistants.scheduledEvents.create('assistant_id', { scheduled_at_fixed_datetime: '2025-04-15T13:07:28.764Z', telnyx_agent_target: 'telnyx_agent_target', telnyx_conversation_channel: 'phone_call', telnyx_end_user_target: 'telnyx_end_user_target', }); console.log(scheduledEventResponse); ``` ## Get a scheduled event Retrieve a scheduled event by event ID `GET /ai/assistants/{assistant_id}/scheduled_events/{event_id}` ```javascript const scheduledEventResponse = await client.ai.assistants.scheduledEvents.retrieve('event_id', { assistant_id: 'assistant_id', }); console.log(scheduledEventResponse); ``` ## Delete a scheduled event If the event is pending, this will cancel the event. `DELETE /ai/assistants/{assistant_id}/scheduled_events/{event_id}` ```javascript await client.ai.assistants.scheduledEvents.delete('event_id', { assistant_id: 'assistant_id' }); ``` ## List assistant tests with pagination Retrieves a paginated list of assistant tests with optional filtering capabilities `GET /ai/assistants/tests` ```javascript // Automatically fetches more pages as needed. for await (const assistantTest of client.ai.assistants.tests.list()) { console.log(assistantTest.test_id); } ``` ## Create a new assistant test Creates a comprehensive test configuration for evaluating AI assistant performance `POST /ai/assistants/tests` — Required: `name`, `destination`, `instructions`, `rubric` ```javascript const assistantTest = await client.ai.assistants.tests.create({ destination: '+15551234567', instructions: 'Act as a frustrated customer who received a damaged product. Ask for a refund and escalate if not satisfied with the initial response.', name: 'Customer Support Bot Test', rubric: [ { criteria: 'Assistant responds within 30 seconds', name: 'Response Time' }, { criteria: 'Provides correct product information', name: 'Accuracy' }, ], }); console.log(assistantTest.test_id); ``` ## Get all test suite names Retrieves a list of all distinct test suite names available to the current user `GET /ai/assistants/tests/test-suites` ```javascript const testSuites = await client.ai.assistants.tests.testSuites.list(); console.log(testSuites.data); ``` ## Get test suite run history Retrieves paginated history of test runs for a specific test suite with filtering options `GET /ai/assistants/tests/test-suites/{suite_name}/runs` ```javascript // Automatically fetches more pages as needed. for await (const testRunResponse of client.ai.assistants.tests.testSuites.runs.list('suite_name')) { console.log(testRunResponse.run_id); } ``` ## Trigger test suite execution Executes all tests within a specific test suite as a batch operation `POST /ai/assistants/tests/test-suites/{suite_name}/runs` ```javascript const testRunResponses = await client.ai.assistants.tests.testSuites.runs.trigger('suite_name'); console.log(testRunResponses); ``` ## Get assistant test by ID Retrieves detailed information about a specific assistant test `GET /ai/assistants/tests/{test_id}` ```javascript const assistantTest = await client.ai.assistants.tests.retrieve('test_id'); console.log(assistantTest.test_id); ``` ## Update an assistant test Updates an existing assistant test configuration with new settings `PUT /ai/assistants/tests/{test_id}` ```javascript const assistantTest = await client.ai.assistants.tests.update('test_id'); console.log(assistantTest.test_id); ``` ## Delete an assistant test Permanently removes an assistant test and all associated data `DELETE /ai/assistants/tests/{test_id}` ```javascript await client.ai.assistants.tests.delete('test_id'); ``` ## Get test run history for a specific test Retrieves paginated execution history for a specific assistant test with filtering options `GET /ai/assistants/tests/{test_id}/runs` ```javascript // Automatically fetches more pages as needed. for await (const testRunResponse of client.ai.assistants.tests.runs.list('test_id')) { console.log(testRunResponse.run_id); } ``` ## Trigger a manual test run Initiates immediate execution of a specific assistant test `POST /ai/assistants/tests/{test_id}/runs` ```javascript const testRunResponse = await client.ai.assistants.tests.runs.trigger('test_id'); console.log(testRunResponse.run_id); ``` ## Get specific test run details Retrieves detailed information about a specific test run execution `GET /ai/assistants/tests/{test_id}/runs/{run_id}` ```javascript const testRunResponse = await client.ai.assistants.tests.runs.retrieve('run_id', { test_id: 'test_id', }); console.log(testRunResponse.run_id); ``` ## Get all versions of an assistant Retrieves all versions of a specific assistant with complete configuration and metadata `GET /ai/assistants/{assistant_id}/versions` ```javascript const assistantsList = await client.ai.assistants.versions.list('assistant_id'); console.log(assistantsList.data); ``` ## Get a specific assistant version Retrieves a specific version of an assistant by assistant_id and version_id `GET /ai/assistants/{assistant_id}/versions/{version_id}` ```javascript const assistant = await client.ai.assistants.versions.retrieve('version_id', { assistant_id: 'assistant_id', }); console.log(assistant.id); ``` ## Update a specific assistant version Updates the configuration of a specific assistant version. `POST /ai/assistants/{assistant_id}/versions/{version_id}` ```javascript const assistant = await client.ai.assistants.versions.update('version_id', { assistant_id: 'assistant_id', }); console.log(assistant.id); ``` ## Delete a specific assistant version Permanently removes a specific version of an assistant. `DELETE /ai/assistants/{assistant_id}/versions/{version_id}` ```javascript await client.ai.assistants.versions.delete('version_id', { assistant_id: 'assistant_id' }); ``` ## Promote an assistant version to main Promotes a specific version to be the main/current version of the assistant. `POST /ai/assistants/{assistant_id}/versions/{version_id}/promote` ```javascript const assistant = await client.ai.assistants.versions.promote('version_id', { assistant_id: 'assistant_id', }); console.log(assistant.id); ``` ## Get Canary Deploy Endpoint to get a canary deploy configuration for an assistant. `GET /ai/assistants/{assistant_id}/canary-deploys` ```javascript const canaryDeployResponse = await client.ai.assistants.canaryDeploys.retrieve('assistant_id'); console.log(canaryDeployResponse.assistant_id); ``` ## Create Canary Deploy Endpoint to create a canary deploy configuration for an assistant. `POST /ai/assistants/{assistant_id}/canary-deploys` — Required: `versions` ```javascript const canaryDeployResponse = await client.ai.assistants.canaryDeploys.create('assistant_id', { versions: [{ percentage: 1, version_id: 'version_id' }], }); console.log(canaryDeployResponse.assistant_id); ``` ## Update Canary Deploy Endpoint to update a canary deploy configuration for an assistant. `PUT /ai/assistants/{assistant_id}/canary-deploys` — Required: `versions` ```javascript const canaryDeployResponse = await client.ai.assistants.canaryDeploys.update('assistant_id', { versions: [{ percentage: 1, version_id: 'version_id' }], }); console.log(canaryDeployResponse.assistant_id); ``` ## Delete Canary Deploy Endpoint to delete a canary deploy configuration for an assistant. `DELETE /ai/assistants/{assistant_id}/canary-deploys` ```javascript await client.ai.assistants.canaryDeploys.delete('assistant_id'); ``` ## Get assistant texml Get an assistant texml by `assistant_id`. `GET /ai/assistants/{assistant_id}/texml` ```javascript const response = await client.ai.assistants.getTexml('assistant_id'); console.log(response); ``` ## Test Assistant Tool Test a webhook tool for an assistant `POST /ai/assistants/{assistant_id}/tools/{tool_id}/test`
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub