Skip to content
cccskills
FreePublished on GitHub

telnyx-missions-java

Create and manage Telnyx Missions — automated workflows, tasks, and sub-resources for AI-driven telecom operations. This skill provides Java SDK examples.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md31.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->

Telnyx Missions - Java

Installation

<!-- Maven -->
<dependency>
    <groupId>com.telnyx.sdk</groupId>
    <artifactId>telnyx</artifactId>
    <version>6.95.0</version>
</dependency>

// Gradle
implementation("com.telnyx.sdk:telnyx:6.95.0")

Setup

import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;

// fromEnv() reads TELNYX_API_KEY and TELNYX_PUBLIC_KEY (the public key is required for
// client.webhooks().unwrap() — webhook verification)
TelnyxClient client = TelnyxOkHttpClient.fromEnv();

All examples below assume client is already initialized as shown above.

Error Handling

All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:

import com.telnyx.sdk.errors.TelnyxServiceException;

try {
    var result = client.messages().send(params);
} catch (TelnyxServiceException e) {
    System.err.println("API error " + e.statusCode() + ": " + e.getMessage());
    if (e.statusCode() == 422) {
        System.err.println("Validation error — check required fields and formats");
    } else if (e.statusCode() == 429) {
        // Rate limited — wait, then retry the request (bounded exponential backoff)
        Thread.sleep(1000);
        // ...retry the call here (give up after a few attempts)
    }
    throw e; // Re-throw: a failed request must never look like success to the caller
}

Common error codes: 401 invalid API key, 403 insufficient permissions, 404 resource not found, 422 validation error (check field formats), 429 rate limited (retry with exponential backoff).

Important Notes

  • Pagination: List methods return a page. Use .autoPager() for automatic iteration: for (var item : page.autoPager()) { ... }. For manual control, use .hasNextPage() and .nextPage().

List missions

Returns a paginated list of all mission definitions in your organization. Missions describe a goal and the tools, knowledge bases, and MCP servers agents may use to accomplish it.

GET /ai/missions

import com.telnyx.sdk.models.ai.missions.MissionListPage;
import com.telnyx.sdk.models.ai.missions.MissionListParams;

MissionListPage page = client.ai().missions().list();

Returns: created_at (date-time), description (string), execution_mode (enum: external, managed), instructions (string), metadata (object), mission_id (uuid), model (string), name (string), updated_at (date-time)

Create mission

Creates a new mission definition from the provided configuration and returns the created mission. Execute the mission by starting runs against it.

POST /ai/missions — Required: name

Optional: description (string), execution_mode (enum: external, managed), instructions (string), metadata (object), model (string)

import com.telnyx.sdk.models.ai.missions.MissionCreateParams;
import com.telnyx.sdk.models.ai.missions.MissionCreateResponse;

MissionCreateParams params = MissionCreateParams.builder()
    .name("my-resource")
    .build();
MissionCreateResponse mission = client.ai().missions().create(params);

Returns: created_at (date-time), description (string), execution_mode (enum: external, managed), instructions (string), metadata (object), mission_id (uuid), model (string), name (string), updated_at (date-time)

List recent events

Returns a paginated list of recent events across every mission in your organization, optionally filtered by event type. Useful for building activity feeds or monitoring dashboards.

GET /ai/missions/events

import com.telnyx.sdk.models.ai.missions.MissionListEventsPage;
import com.telnyx.sdk.models.ai.missions.MissionListEventsParams;

MissionListEventsPage page = client.ai().missions().listEvents();

Returns: agent_id (string), event_id (string), idempotency_key (string), payload (object), run_id (string), step_id (string), summary (string), timestamp (date-time), type (enum: status_change, step_started, step_completed, step_failed, tool_call, tool_result, message, error, custom)

List recent runs

Returns a paginated list of recent runs across every mission in your organization, optionally filtered by run status. Useful for monitoring overall mission activity without querying each mission individually.

GET /ai/missions/runs

import com.telnyx.sdk.models.ai.missions.runs.RunListRunsPage;
import com.telnyx.sdk.models.ai.missions.runs.RunListRunsParams;

RunListRunsPage page = client.ai().missions().runs().listRuns();

Returns: error (string), finished_at (date-time), input (object), metadata (object), mission_id (uuid), result_payload (object), result_summary (string), run_id (uuid), started_at (date-time), status (enum: pending, running, paused, succeeded, failed, cancelled), updated_at (date-time)

Get mission

Get a mission by ID (includes tools, knowledge_bases, mcp_servers)

GET /ai/missions/{mission_id}

import com.telnyx.sdk.models.ai.missions.MissionRetrieveParams;
import com.telnyx.sdk.models.ai.missions.MissionRetrieveResponse;

MissionRetrieveResponse mission = client.ai().missions().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");

Returns: created_at (date-time), description (string), execution_mode (enum: external, managed), instructions (string), metadata (object), mission_id (uuid), model (string), name (string), updated_at (date-time)

Update mission

Replaces the specified mission's definition with the provided configuration and returns the updated mission.

PUT /ai/missions/{mission_id}

Optional: description (string), execution_mode (enum: external, managed), instructions (string), metadata (object), model (string), name (string)

import com.telnyx.sdk.models.ai.missions.MissionUpdateMissionParams;
import com.telnyx.sdk.models.ai.missions.MissionUpdateMissionResponse;

MissionUpdateMissionResponse response = client.ai().missions().updateMission("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");

Returns: created_at (date-time), description (string), execution_mode (enum: external, managed), instructions (string), metadata (object), mission_id (uuid), model (string), name (string), updated_at (date-time)

Delete mission

Permanently deletes the specified mission definition and returns no content on success.

DELETE /ai/missions/{mission_id}

import com.telnyx.sdk.models.ai.missions.MissionDeleteMissionParams;

client.ai().missions().deleteMission("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");

Clone mission

Creates a copy of the specified mission as a new mission definition, so you can iterate on its configuration without modifying the original.

POST /ai/missions/{mission_id}/clone

import com.telnyx.sdk.models.ai.missions.MissionCloneMissionParams;
import com.telnyx.sdk.models.ai.missions.MissionCloneMissionResponse;

MissionCloneMissionResponse response = client.ai().missions().cloneMission("550e8400-e29b-41d4-a716-446655440000");

List knowledge bases

Returns the knowledge bases attached to the specified mission. Knowledge bases provide reference content agents can draw on during runs.

GET /ai/missions/{mission_id}/knowledge-bases

import com.telnyx.sdk.models.ai.missions.knowledgebases.KnowledgeBaseListKnowledgeBasesParams;
import com.telnyx.sdk.models.ai.missions.knowledgebases.KnowledgeBaseListKnowledgeBasesResponse;

KnowledgeBaseListKnowledgeBasesResponse response = client.ai().missions().knowledgeBases().listKnowledgeBases("550e8400-e29b-41d4-a716-446655440000");

Create knowledge base

Create a new knowledge base for a mission

POST /ai/missions/{mission_id}/knowledge-bases

import com.telnyx.sdk.models.ai.missions.knowledgebases.KnowledgeBaseCreateKnowledgeBaseParams;
import com.telnyx.sdk.models.ai.missions.knowledgebases.KnowledgeBaseCreateKnowledgeBaseResponse;

KnowledgeBaseCreateKnowledgeBaseResponse response = client.ai().missions().knowledgeBases().createKnowledgeBase("550e8400-e29b-41d4-a716-446655440000");

Get knowledge base

Returns the details of a single knowledge base attached to the specified mission.

GET /ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}

import com.telnyx.sdk.models.ai.missions.knowledgebases.KnowledgeBaseGetKnowledgeBaseParams;
import com.telnyx.sdk.models.ai.missions.knowledgebases.KnowledgeBaseGetKnowledgeBaseResponse;

KnowledgeBaseGetKnowledgeBaseParams params = KnowledgeBaseGetKnowledgeBaseParams.builder()
    .missionId("550e8400-e29b-41d4-a716-446655440000")
    .knowledgeBaseId("550e8400-e29b-41d4-a716-446655440000")
    .build();
KnowledgeBaseGetKnowledgeBaseResponse response = client.ai().missions().knowledgeBases().getKnowledgeBase(params);

Update knowledge base

Replaces the definition of the specified knowledge base on this mission.

PUT /ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}

import com.telnyx.sdk.models.ai.missions.knowledgebases.KnowledgeBaseUpdateKnowledgeBaseParams;
import com.telnyx.sdk.models.ai.missions.knowledgebases.KnowledgeBaseUpdateKnowledgeBaseResponse;

KnowledgeBaseUpdateKnowledgeBaseParams params = KnowledgeBaseUpdateKnowledgeBaseParams.builder()
    .missionId("550e8400-e29b-41d4-a716-446655440000")
    .knowledgeBaseId("550e8400-e29b-41d4-a716-446655440000")
    .build();
KnowledgeBaseUpdateKnowledgeBaseResponse response = client.ai().missions().knowledgeBases().updateKnowledgeBase(params);

Delete knowledge base

Detaches the specified knowledge base from the mission so its content is no longer available to agents in subsequent runs.

DELETE /ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}

import com.telnyx.sdk.models.ai.missions.knowledgebases.KnowledgeBaseDeleteKnowledgeBaseParams;

KnowledgeBaseDeleteKnowledgeBaseParams params = KnowledgeBaseDeleteKnowledgeBaseParams.builder()
    .missionId("550e8400-e29b-41d4-a716-446655440000")
    .knowledgeBaseId("550e8400-e29b-41d4-a716-446655440000")
    .build();
client.ai().missions().knowledgeBases().deleteKnowledgeBase(params);

List MCP servers

Returns the MCP servers configured on the specified mission. MCP servers expose external tools and data sources agents can use during runs.

GET /ai/missions/{mission_id}/mcp-servers

import com.telnyx.sdk.models.ai.missions.mcpservers.McpServerListMcpServersParams;
import com.telnyx.sdk.models.ai.missions.mcpservers.McpServerListMcpServersResponse;

McpServerListMcpServersResponse response = client.ai().missions().mcpServers().listMcpServers("550e8400-e29b-41d4-a716-446655440000");

Create MCP server

Adds an MCP server to the specified mission, making the server's tools available to agents during runs of this mission.

POST /ai/missions/{mission_id}/mcp-servers

import com.telnyx.sdk.models.ai.missions.mcpservers.McpServerCreateMcpServerParams;
import com.telnyx.sdk.models.ai.missions.mcpservers.McpServerCreateMcpServerResponse;

McpServerCreateMcpServerResponse response = client.ai().missions().mcpServers().createMcpServer("550e8400-e29b-41d4-a716-446655440000");

Get MCP server

Returns the configuration of a single MCP server attached to the specified mission.

GET /ai/missions/{mission_id}/mcp-servers/{mcp_server_id}

import com.telnyx.sdk.models.ai.missions.mcpservers.McpServerGetMcpServerParams;
import com.telnyx.sdk.models.ai.missions.mcpservers.McpServerGetMcpServerResponse;

McpServerGetMcpServerParams params = McpServerGetMcpServerParams.builder()
    .missionId("550e8400-e29b-41d4-a716-446655440000")
    .mcpServerId("550e8400-e29b-41d4-a716-446655440000")
    .build();
McpServerGetMcpServerResponse response = client.ai().missions().mcpServers().getMcpServer(params);

Update MCP server

Replaces the configuration of the specified MCP server on this mission.

PUT /ai/missions/{mission_id}/mcp-servers/{mcp_server_id}

import com.telnyx.sdk.models.ai.missions.mcpservers.McpServerUpdateMcpServerParams;
import com.telnyx.sdk.models.ai.missions.mcpservers.McpServerUpdateMcpServerResponse;

McpServerUpdateMcpServerParams params = McpServerUpdateMcpServerParams.builder()
    .missionId("550e8400-e29b-41d4-a716-446655440000")
    .mcpServerId("550e8400-e29b-41d4-a716-446655440000")
    .build();
McpServerUpdateMcpServerResponse response = client.ai().missions().mcpServers().updateMcpServer(params);

Delete MCP server

Removes the specified MCP server from the mission, revoking agent access to its tools in subsequent runs.

DELETE /ai/missions/{mission_id}/mcp-servers/{mcp_server_id}

import com.telnyx.sdk.models.ai.missions.mcpservers.McpServerDeleteMcpServerParams;

McpServerDeleteMcpServerParams params = McpServerDeleteMcpServerParams.builder()
    .missionId("550e8400-e29b-41d4-a716-446655440000")
    .mcpServerId("550e8400-e29b-41d4-a716-446655440000")
    .build();
client.ai().missions().mcpServers().deleteMcpServer(params);

List runs for mission

Returns a paginated list of runs for the specified mission, optionally filtered by run status, so you can track the mission's execution history over time.

GET /ai/missions/{mission_id}/runs

import com.telnyx.sdk.models.ai.missions.runs.RunListPage;
import com.telnyx.sdk.models.ai.missions.runs.RunListParams;

RunListPage page = client.ai().missions().runs().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");

Returns: error (string), finished_at (date-time), input (object), metadata (object), mission_id (uuid), result_payload (object), result_summary (string), run_id (uuid), started_at (date-time), status (enum: pending, running, paused, succeeded, failed, cancelled), updated_at (date-time)

Start a run

Starts a new run of the specified mission and returns the created run object. Track its progress through the run detail, plan, and events endpoints.

POST /ai/missions/{mission_id}/runs

Optional: input (object), metadata (object)

import com.telnyx.sdk.models.ai.missions.runs.RunCreateParams;
import com.telnyx.sdk.models.ai.missions.runs.RunCreateResponse;

RunCreateResponse run = client.ai().missions().runs().create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");

Returns: error (string), finished_at (date-time), input (object), metadata (object), mission_id (uuid), result_payload (object), result_summary (string), run_id (uuid), started_at (date-time), status (enum: pending, running, paused, succeeded, failed, cancelled), updated_at (date-time)

Get run details

Returns the full details of a single run, including its current status. Use this to poll an in-flight run or inspect the outcome of a completed one.

GET /ai/missions/{mission_id}/runs/{run_id}

import com.telnyx.sdk.models.ai.missions.runs.RunRetrieveParams;
import com.telnyx.sdk.models.ai.missions.runs.RunRetrieveResponse;

RunRetrieveParams params = RunRetrieveParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .build();
RunRetrieveResponse run = client.ai().missions().runs().retrieve(params);

Returns: error (string), finished_at (date-time), input (object), metadata (object), mission_id (uuid), result_payload (object), result_summary (string), run_id (uuid), started_at (date-time), status (enum: pending, running, paused, succeeded, failed, cancelled), updated_at (date-time)

Update run

Updates a run's status and/or result and returns the updated run object. Typically used by executing agents to report progress or record the final outcome.

PATCH /ai/missions/{mission_id}/runs/{run_id}

Optional: error (string), metadata (object), result_payload (object), result_summary (string), status (enum: pending, running, paused, succeeded, failed, cancelled)

import com.telnyx.sdk.models.ai.missions.runs.RunUpdateParams;
import com.telnyx.sdk.models.ai.missions.runs.RunUpdateResponse;

RunUpdateParams params = RunUpdateParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .build();
RunUpdateResponse run = client.ai().missions().runs().update(params);

Returns: error (string), finished_at (date-time), input (object), metadata (object), mission_id (uuid), result_payload (object), result_summary (string), run_id (uuid), started_at (date-time), status (enum: pending, running, paused, succeeded, failed, cancelled), updated_at (date-time)

Cancel run

Cancels a running or paused run and returns the updated run object. A cancelled run stops executing; start a new run to execute the mission again.

POST /ai/missions/{mission_id}/runs/{run_id}/cancel

import com.telnyx.sdk.models.ai.missions.runs.RunCancelRunParams;
import com.telnyx.sdk.models.ai.missions.runs.RunCancelRunResponse;

RunCancelRunParams params = RunCancelRunParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .build();
RunCancelRunResponse response = client.ai().missions().runs().cancelRun(params);

Returns: error (string), finished_at (date-time), input (object), metadata (object), mission_id (uuid), result_payload (object), result_summary (string), run_id (uuid), started_at (date-time), status (enum: pending, running, paused, succeeded, failed, cancelled), updated_at (date-time)

List events

Returns a paginated list of events logged for the specified run, filterable by event type, plan step, and agent, so you can reconstruct exactly what happened during execution.

GET /ai/missions/{mission_id}/runs/{run_id}/events

import com.telnyx.sdk.models.ai.missions.runs.events.EventListPage;
import com.telnyx.sdk.models.ai.missions.runs.events.EventListParams;

EventListParams params = EventListParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .build();
EventListPage page = client.ai().missions().runs().events().list(params);

Returns: agent_id (string), event_id (string), idempotency_key (string), payload (object), run_id (string), step_id (string), summary (string), timestamp (date-time), type (enum: status_change, step_started, step_completed, step_failed, tool_call, tool_result, message, error, custom)

Log event

Logs a new event against the specified run and returns the created event. Events form the run's audit trail and can reference a plan step or agent.

POST /ai/missions/{mission_id}/runs/{run_id}/events — Required: type, summary

Optional: agent_id (string), idempotency_key (string), payload (object), step_id (string)

import com.telnyx.sdk.models.ai.missions.runs.events.EventLogParams;
import com.telnyx.sdk.models.ai.missions.runs.events.EventLogResponse;

EventLogParams params = EventLogParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .summary("Brief task summary")
    .type(EventLogParams.Type.STATUS_CHANGE)
    .build();
EventLogResponse response = client.ai().missions().runs().events().log(params);

Returns: agent_id (string), event_id (string), idempotency_key (string), payload (object), run_id (string), step_id (string), summary (string), timestamp (date-time), type (enum: status_change, step_started, step_completed, step_failed, tool_call, tool_result, message, error, custom)

Get event details

Returns the details of a single event logged for the specified run, including its type and payload.

GET /ai/missions/{mission_id}/runs/{run_id}/events/{event_id}

import com.telnyx.sdk.models.ai.missions.runs.events.EventGetEventDetailsParams;
import com.telnyx.sdk.models.ai.missions.runs.events.EventGetEventDetailsResponse;

EventGetEventDetailsParams params = EventGetEventDetailsParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .eventId("550e8400-e29b-41d4-a716-446655440000")
    .build();
EventGetEventDetailsResponse response = client.ai().missions().runs().events().getEventDetails(params);

Returns: agent_id (string), event_id (string), idempotency_key (string), payload (object), run_id (string), step_id (string), summary (string), timestamp (date-time), type (enum: status_change, step_started, step_completed, step_failed, tool_call, tool_result, message, error, custom)

Pause run

Pauses a currently running run and returns the updated run object. Execution halts until the run is resumed.

POST /ai/missions/{mission_id}/runs/{run_id}/pause

import com.telnyx.sdk.models.ai.missions.runs.RunPauseRunParams;
import com.telnyx.sdk.models.ai.missions.runs.RunPauseRunResponse;

RunPauseRunParams params = RunPauseRunParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .build();
RunPauseRunResponse response = client.ai().missions().runs().pauseRun(params);

Returns: error (string), finished_at (date-time), input (object), metadata (object), mission_id (uuid), result_payload (object), result_summary (string), run_id (uuid), started_at (date-time), status (enum: pending, running, paused, succeeded, failed, cancelled), updated_at (date-time)

Get plan

Returns the plan for the specified run, including all plan steps and their statuses, so you can see how the mission was decomposed and how far execution has progressed.

GET /ai/missions/{mission_id}/runs/{run_id}/plan

import com.telnyx.sdk.models.ai.missions.runs.plan.PlanRetrieveParams;
import com.telnyx.sdk.models.ai.missions.runs.plan.PlanRetrieveResponse;

PlanRetrieveParams params = PlanRetrieveParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .build();
PlanRetrieveResponse plan = client.ai().missions().runs().plan().retrieve(params);

Returns: completed_at (date-time), description (string), metadata (object), parent_step_id (string), run_id (uuid), sequence (integer), started_at (date-time), status (enum: pending, in_progress, completed, skipped, failed), step_id (string)

Create initial plan

Creates the initial plan for the specified run from the provided steps and returns the created plan steps. Progress is subsequently reported by updating individual steps.

POST /ai/missions/{mission_id}/runs/{run_id}/plan — Required: steps

import com.telnyx.sdk.models.ai.missions.runs.plan.PlanCreateParams;
import com.telnyx.sdk.models.ai.missions.runs.plan.PlanCreateResponse;

PlanCreateParams params = PlanCreateParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .addStep(PlanCreateParams.Step.builder()
        .description("description")
        .sequence(0L)
        .stepId("550e8400-e29b-41d4-a716-446655440000")
        .build())
    .build();
PlanCreateResponse plan = client.ai().missions().runs().plan().create(params);

Returns: completed_at (date-time), description (string), metadata (object), parent_step_id (string), run_id (uuid), sequence (integer), started_at (date-time), status (enum: pending, in_progress, completed, skipped, failed), step_id (string)

Add step(s) to plan

Add one or more steps to an existing plan

POST /ai/missions/{mission_id}/runs/{run_id}/plan/steps — Required: steps

import com.telnyx.sdk.models.ai.missions.runs.plan.PlanAddStepsToPlanParams;
import com.telnyx.sdk.models.ai.missions.runs.plan.PlanAddStepsToPlanResponse;

PlanAddStepsToPlanParams params = PlanAddStepsToPlanParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .addStep(PlanAddStepsToPlanParams.Step.builder()
        .description("description")
        .sequence(0L)
        .stepId("550e8400-e29b-41d4-a716-446655440000")
        .build())
    .build();
PlanAddStepsToPlanResponse response = client.ai().missions().runs().plan().addStepsToPlan(params);

Returns: completed_at (date-time), description (string), metadata (object), parent_step_id (string), run_id (uuid), sequence (integer), started_at (date-time), status (enum: pending, in_progress, completed, skipped, failed), step_id (string)

Get step details

Returns the details of a single plan step within a run's plan, including its status.

GET /ai/missions/{mission_id}/runs/{run_id}/plan/steps/{step_id}

import com.telnyx.sdk.models.ai.missions.runs.plan.PlanGetStepDetailsParams;
import com.telnyx.sdk.models.ai.missions.runs.plan.PlanGetStepDetailsResponse;

PlanGetStepDetailsParams params = PlanGetStepDetailsParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .stepId("550e8400-e29b-41d4-a716-446655440000")
    .build();
PlanGetStepDetailsResponse response = client.ai().missions().runs().plan().getStepDetails(params);

Returns: completed_at (date-time), description (string), metadata (object), parent_step_id (string), run_id (uuid), sequence (integer), started_at (date-time), status (enum: pending, in_progress, completed, skipped, failed), step_id (string)

Update step status

Updates the status of a single plan step and returns the updated step. Typically called by the executing agent as it works through the plan.

PATCH /ai/missions/{mission_id}/runs/{run_id}/plan/steps/{step_id}

Optional: metadata (object), status (enum: pending, in_progress, completed, skipped, failed)

import com.telnyx.sdk.models.ai.missions.runs.plan.PlanUpdateStepParams;
import com.telnyx.sdk.models.ai.missions.runs.plan.PlanUpdateStepResponse;

PlanUpdateStepParams params = PlanUpdateStepParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .stepId("550e8400-e29b-41d4-a716-446655440000")
    .build();
PlanUpdateStepResponse response = client.ai().missions().runs().plan().updateStep(params);

Returns: completed_at (date-time), description (string), metadata (object), parent_step_id (string), run_id (uuid), sequence (integer), started_at (date-time), status (enum: pending, in_progress, completed, skipped, failed), step_id (string)

Resume run

Resumes a previously paused run and returns the updated run object, letting execution continue from where it was paused.

POST /ai/missions/{mission_id}/runs/{run_id}/resume

import com.telnyx.sdk.models.ai.missions.runs.RunResumeRunParams;
import com.telnyx.sdk.models.ai.missions.runs.RunResumeRunResponse;

RunResumeRunParams params = RunResumeRunParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .build();
RunResumeRunResponse response = client.ai().missions().runs().resumeRun(params);

Returns: error (string), finished_at (date-time), input (object), metadata (object), mission_id (uuid), result_payload (object), result_summary (string), run_id (uuid), started_at (date-time), status (enum: pending, running, paused, succeeded, failed, cancelled), updated_at (date-time)

List linked Telnyx agents

Returns the Telnyx agents currently linked to the specified run. Linked agents participate in executing the run's plan.

GET /ai/missions/{mission_id}/runs/{run_id}/telnyx-agents

import com.telnyx.sdk.models.ai.missions.runs.telnyxagents.TelnyxAgentListParams;
import com.telnyx.sdk.models.ai.missions.runs.telnyxagents.TelnyxAgentListResponse;

TelnyxAgentListParams params = TelnyxAgentListParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .build();
TelnyxAgentListResponse telnyxAgents = client.ai().missions().runs().telnyxAgents().list(params);

Returns: created_at (date-time), run_id (string), telnyx_agent_id (string)

Link Telnyx agent to run

Link a Telnyx AI agent (voice/messaging) to a run

POST /ai/missions/{mission_id}/runs/{run_id}/telnyx-agents — Required: telnyx_agent_id

import com.telnyx.sdk.models.ai.missions.runs.telnyxagents.TelnyxAgentLinkParams;
import com.telnyx.sdk.models.ai.missions.runs.telnyxagents.TelnyxAgentLinkResponse;

TelnyxAgentLinkParams params = TelnyxAgentLinkParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .telnyxAgentId("550e8400-e29b-41d4-a716-446655440000")
    .build();
TelnyxAgentLinkResponse response = client.ai().missions().runs().telnyxAgents().link(params);

Returns: created_at (date-time), run_id (string), telnyx_agent_id (string)

Unlink Telnyx agent

Unlinks the specified Telnyx agent from the run so it no longer participates in execution. The run itself and its history are unaffected.

DELETE /ai/missions/{mission_id}/runs/{run_id}/telnyx-agents/{telnyx_agent_id}

import com.telnyx.sdk.models.ai.missions.runs.telnyxagents.TelnyxAgentUnlinkParams;

TelnyxAgentUnlinkParams params = TelnyxAgentUnlinkParams.builder()
    .missionId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .runId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
    .telnyxAgentId("550e8400-e29b-41d4-a716-446655440000")
    .build();
client.ai().missions().runs().telnyxAgents().unlink(params);

List tools

Returns the tools configured on the specified mission. Tools define the actions agents may invoke while executing the mission's runs.

GET /ai/missions/{mission_id}/tools

import com.telnyx.sdk.models.ai.missions.tools.ToolListToolsParams;
import com.telnyx.sdk.models.ai.missions.tools.ToolListToolsResponse;

ToolListToolsResponse response = client.ai().missions().tools().listTools("550e8400-e29b-41d4-a716-446655440000");

Create tool

Adds a new tool to the specified mission, defining an action agents can invoke during runs of this mission.

POST /ai/missions/{mission_id}/tools

import com.telnyx.sdk.models.ai.missions.tools.ToolCreateToolParams;
import com.telnyx.sdk.models.ai.missions.tools.ToolCreateToolResponse;

ToolCreateToolResponse response = client.ai().missions().tools().createTool("550e8400-e29b-41d4-a716-446655440000");

Get tool

Returns the definition of a single tool configured on the specified mission.

GET /ai/missions/{mission_id}/tools/{tool_id}

import com.telnyx.sdk.models.ai.missions.tools.ToolGetToolParams;
import com.telnyx.sdk.models.ai.missions.tools.ToolGetToolResponse;

ToolGetToolParams params = ToolGetToolParams.builder()
    .missionId("550e8400-e29b-41d4-a716-446655440000")
    .toolId("550e8400-e29b-41d4-a716-446655440000")
    .build();
ToolGetToolResponse response = client.ai().missions().tools().getTool(params);

Update tool

Replaces the definition of the specified tool on this mission.

PUT /ai/missions/{mission_id}/tools/{tool_id}

import com.telnyx.sdk.models.ai.missions.tools.ToolUpdateToolParams;
import com.telnyx.sdk.models.ai.missions.tools.ToolUpdateToolResponse;

ToolUpdateToolParams params = ToolUpdateToolParams.builder()
    .missionId("550e8400-e29b-41d4-a716-446655440000")
    .toolId("550e8400-e29b-41d4-a716-446655440000")
    .build();
ToolUpdateToolResponse response = client.ai().missions().tools().updateTool(params);

Delete tool

Removes the specified tool from the mission so agents can no longer invoke it in subsequent runs.

DELETE /ai/missions/{mission_id}/tools/{tool_id}

import com.telnyx.sdk.models.ai.missions.tools.ToolDeleteToolParams;

ToolDeleteToolParams params = ToolDeleteToolParams.builder()
    .missionId("550e8400-e29b-41d4-a716-446655440000")
    .toolId("550e8400-e29b-41d4-a716-446655440000")
    .build();
client.ai().missions().tools().deleteTool(params);

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Test VoIP push notifications for Telnyx WebRTC iOS (APNs) and Android (FCM) apps. Use when debugging push notification delivery, validating certificate/credential setup, or testing that a device receives VoIP pushes correctly.

The English summary is being prepared. Showing the original description.

team-telnyx/ai222Updated Oct 21, 2026

10DLC brand and campaign registration for US A2P messaging compliance. Assign phone numbers to campaigns.

The English summary is being prepared. Showing the original description.

team-telnyx/ai222Updated Oct 21, 2026

10DLC brand and campaign registration for US A2P messaging compliance. Assign phone numbers to campaigns.

The English summary is being prepared. Showing the original description.

team-telnyx/ai222Updated Oct 21, 2026

10DLC brand and campaign registration for US A2P messaging compliance. Assign phone numbers to campaigns.

The English summary is being prepared. Showing the original description.

team-telnyx/ai222Updated Oct 21, 2026

10DLC brand and campaign registration for US A2P messaging compliance. Assign phone numbers to campaigns.

The English summary is being prepared. Showing the original description.

team-telnyx/ai222Updated Oct 21, 2026

10DLC brand and campaign registration for US A2P messaging compliance. Assign phone numbers to campaigns.

The English summary is being prepared. Showing the original description.

team-telnyx/ai222Updated Oct 21, 2026

See all skills by team-telnyx

Report a problem with this skill