Loading...
Loading...
Create and manage Telnyx Missions — automated workflows, tasks, and sub-resources for AI-driven telecom operations. This skill provides JavaScript SDK examples.
npx skill4agent add team-telnyx/skills telnyx-missions-javascriptnpm install telnyximport Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});clienttry {
const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });
} catch (err) {
if (err instanceof Telnyx.APIConnectionError) {
console.error('Network error — check connectivity and retry');
} else if (err instanceof Telnyx.RateLimitError) {
// 429: rate limited — wait and retry with exponential backoff
const retryAfter = err.headers?.['retry-after'] || 1;
await new Promise(r => setTimeout(r, retryAfter * 1000));
} else if (err instanceof Telnyx.APIError) {
console.error(`API error ${err.status}: ${err.message}`);
if (err.status === 422) {
console.error('Validation error — check required fields and formats');
}
}
}401403404422429for await (const item of result) { ... }GET /ai/missions// Automatically fetches more pages as needed.
for await (const missionData of client.ai.missions.list()) {
console.log(missionData.mission_id);
}created_atdescriptionexecution_modeinstructionsmetadatamission_idmodelnameupdated_atPOST /ai/missionsnamedescriptionexecution_modeinstructionsmetadatamodelconst mission = await client.ai.missions.create({ name: 'my-resource' });
console.log(mission.data);created_atdescriptionexecution_modeinstructionsmetadatamission_idmodelnameupdated_atGET /ai/missions/events// Automatically fetches more pages as needed.
for await (const eventData of client.ai.missions.listEvents()) {
console.log(eventData.event_id);
}agent_idevent_ididempotency_keypayloadrun_idstep_idsummarytimestamptypeGET /ai/missions/runs// Automatically fetches more pages as needed.
for await (const missionRunData of client.ai.missions.runs.listRuns()) {
console.log(missionRunData.mission_id);
}errorfinished_atinputmetadatamission_idresult_payloadresult_summaryrun_idstarted_atstatusupdated_atGET /ai/missions/{mission_id}const mission = await client.ai.missions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
console.log(mission.data);created_atdescriptionexecution_modeinstructionsmetadatamission_idmodelnameupdated_atPUT /ai/missions/{mission_id}descriptionexecution_modeinstructionsmetadatamodelnameconst response = await client.ai.missions.updateMission('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
console.log(response.data);created_atdescriptionexecution_modeinstructionsmetadatamission_idmodelnameupdated_atDELETE /ai/missions/{mission_id}await client.ai.missions.deleteMission('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');POST /ai/missions/{mission_id}/cloneconst response = await client.ai.missions.cloneMission('mission_id');
console.log(response);GET /ai/missions/{mission_id}/knowledge-basesconst response = await client.ai.missions.knowledgeBases.listKnowledgeBases('mission_id');
console.log(response);POST /ai/missions/{mission_id}/knowledge-basesconst response = await client.ai.missions.knowledgeBases.createKnowledgeBase('mission_id');
console.log(response);GET /ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}const response = await client.ai.missions.knowledgeBases.getKnowledgeBase('knowledge_base_id', {
mission_id: '550e8400-e29b-41d4-a716-446655440000',
});
console.log(response);PUT /ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}const response = await client.ai.missions.knowledgeBases.updateKnowledgeBase('knowledge_base_id', {
mission_id: '550e8400-e29b-41d4-a716-446655440000',
});
console.log(response);DELETE /ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}await client.ai.missions.knowledgeBases.deleteKnowledgeBase('knowledge_base_id', {
mission_id: '550e8400-e29b-41d4-a716-446655440000',
});GET /ai/missions/{mission_id}/mcp-serversconst response = await client.ai.missions.mcpServers.listMcpServers('mission_id');
console.log(response);POST /ai/missions/{mission_id}/mcp-serversconst response = await client.ai.missions.mcpServers.createMcpServer('mission_id');
console.log(response);GET /ai/missions/{mission_id}/mcp-servers/{mcp_server_id}const response = await client.ai.missions.mcpServers.getMcpServer('mcp_server_id', {
mission_id: '550e8400-e29b-41d4-a716-446655440000',
});
console.log(response);PUT /ai/missions/{mission_id}/mcp-servers/{mcp_server_id}const response = await client.ai.missions.mcpServers.updateMcpServer('mcp_server_id', {
mission_id: '550e8400-e29b-41d4-a716-446655440000',
});
console.log(response);DELETE /ai/missions/{mission_id}/mcp-servers/{mcp_server_id}await client.ai.missions.mcpServers.deleteMcpServer('mcp_server_id', { mission_id: '550e8400-e29b-41d4-a716-446655440000' });GET /ai/missions/{mission_id}/runs// Automatically fetches more pages as needed.
for await (const missionRunData of client.ai.missions.runs.list(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
)) {
console.log(missionRunData.mission_id);
}errorfinished_atinputmetadatamission_idresult_payloadresult_summaryrun_idstarted_atstatusupdated_atPOST /ai/missions/{mission_id}/runsinputmetadataconst run = await client.ai.missions.runs.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
console.log(run.data);errorfinished_atinputmetadatamission_idresult_payloadresult_summaryrun_idstarted_atstatusupdated_atGET /ai/missions/{mission_id}/runs/{run_id}const run = await client.ai.missions.runs.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
console.log(run.data);errorfinished_atinputmetadatamission_idresult_payloadresult_summaryrun_idstarted_atstatusupdated_atPATCH /ai/missions/{mission_id}/runs/{run_id}errormetadataresult_payloadresult_summarystatusconst run = await client.ai.missions.runs.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
console.log(run.data);errorfinished_atinputmetadatamission_idresult_payloadresult_summaryrun_idstarted_atstatusupdated_atPOST /ai/missions/{mission_id}/runs/{run_id}/cancelconst response = await client.ai.missions.runs.cancelRun('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
console.log(response.data);errorfinished_atinputmetadatamission_idresult_payloadresult_summaryrun_idstarted_atstatusupdated_atGET /ai/missions/{mission_id}/runs/{run_id}/events// Automatically fetches more pages as needed.
for await (const eventData of client.ai.missions.runs.events.list(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
{ mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },
)) {
console.log(eventData.event_id);
}agent_idevent_ididempotency_keypayloadrun_idstep_idsummarytimestamptypePOST /ai/missions/{mission_id}/runs/{run_id}/eventstypesummaryagent_ididempotency_keypayloadstep_idconst response = await client.ai.missions.runs.events.log('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
summary: 'Brief task summary',
type: 'status_change',
});
console.log(response.data);agent_idevent_ididempotency_keypayloadrun_idstep_idsummarytimestamptypeGET /ai/missions/{mission_id}/runs/{run_id}/events/{event_id}const response = await client.ai.missions.runs.events.getEventDetails('event_id', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
run_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
console.log(response.data);agent_idevent_ididempotency_keypayloadrun_idstep_idsummarytimestamptypePOST /ai/missions/{mission_id}/runs/{run_id}/pauseconst response = await client.ai.missions.runs.pauseRun('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
console.log(response.data);errorfinished_atinputmetadatamission_idresult_payloadresult_summaryrun_idstarted_atstatusupdated_atGET /ai/missions/{mission_id}/runs/{run_id}/planconst plan = await client.ai.missions.runs.plan.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
console.log(plan.data);completed_atdescriptionmetadataparent_step_idrun_idsequencestarted_atstatusstep_idPOST /ai/missions/{mission_id}/runs/{run_id}/planstepsconst plan = await client.ai.missions.runs.plan.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
steps: [
{
description: 'description',
sequence: 0,
step_id: '550e8400-e29b-41d4-a716-446655440000',
},
],
});
console.log(plan.data);completed_atdescriptionmetadataparent_step_idrun_idsequencestarted_atstatusstep_idPOST /ai/missions/{mission_id}/runs/{run_id}/plan/stepsstepsconst response = await client.ai.missions.runs.plan.addStepsToPlan(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
{
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
steps: [
{
description: 'description',
sequence: 0,
step_id: '550e8400-e29b-41d4-a716-446655440000',
},
],
},
);
console.log(response.data);completed_atdescriptionmetadataparent_step_idrun_idsequencestarted_atstatusstep_idGET /ai/missions/{mission_id}/runs/{run_id}/plan/steps/{step_id}const response = await client.ai.missions.runs.plan.getStepDetails('step_id', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
run_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
console.log(response.data);completed_atdescriptionmetadataparent_step_idrun_idsequencestarted_atstatusstep_idPATCH /ai/missions/{mission_id}/runs/{run_id}/plan/steps/{step_id}metadatastatusconst response = await client.ai.missions.runs.plan.updateStep('step_id', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
run_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
console.log(response.data);completed_atdescriptionmetadataparent_step_idrun_idsequencestarted_atstatusstep_idPOST /ai/missions/{mission_id}/runs/{run_id}/resumeconst response = await client.ai.missions.runs.resumeRun('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});
console.log(response.data);errorfinished_atinputmetadatamission_idresult_payloadresult_summaryrun_idstarted_atstatusupdated_atGET /ai/missions/{mission_id}/runs/{run_id}/telnyx-agentsconst telnyxAgents = await client.ai.missions.runs.telnyxAgents.list(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
{ mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },
);
console.log(telnyxAgents.data);created_atrun_idtelnyx_agent_idPOST /ai/missions/{mission_id}/runs/{run_id}/telnyx-agentstelnyx_agent_idconst response = await client.ai.missions.runs.telnyxAgents.link(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
{ mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', telnyx_agent_id: '550e8400-e29b-41d4-a716-446655440000' },
);
console.log(response.data);created_atrun_idtelnyx_agent_idDELETE /ai/missions/{mission_id}/runs/{run_id}/telnyx-agents/{telnyx_agent_id}await client.ai.missions.runs.telnyxAgents.unlink('telnyx_agent_id', {
mission_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
run_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});GET /ai/missions/{mission_id}/toolsconst response = await client.ai.missions.tools.listTools('mission_id');
console.log(response);POST /ai/missions/{mission_id}/toolsconst response = await client.ai.missions.tools.createTool('mission_id');
console.log(response);GET /ai/missions/{mission_id}/tools/{tool_id}const response = await client.ai.missions.tools.getTool('tool_id', { mission_id: '550e8400-e29b-41d4-a716-446655440000' });
console.log(response);PUT /ai/missions/{mission_id}/tools/{tool_id}const response = await client.ai.missions.tools.updateTool('tool_id', { mission_id: '550e8400-e29b-41d4-a716-446655440000' });
console.log(response);DELETE /ai/missions/{mission_id}/tools/{tool_id}await client.ai.missions.tools.deleteTool('tool_id', { mission_id: '550e8400-e29b-41d4-a716-446655440000' });