Skip to main content Inicio Creadores team-telnyx ai telnyx-missions-ruby
telnyx-missions-ruby Create and manage Telnyx Missions — automated workflows, tasks, and sub-resources for AI-driven telecom operations. This skill provides Ruby SDK examples.
Ir a la instalación Skills Marketplace Descubre y explora habilidades de IA creadas por la comunidad.
Ocupaciones relacionadas SOC
Basado en la clasificación ocupacional SOC
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Copiar promptMostrar detalles del prompt Un comando directo omite el prompt de revisión. Revisa el origen antes de ejecutarlo.
npx skills add https://github.com/team-telnyx/ai --skill telnyx-missions-rubyEl comando permanece en una sola línea. Desplázate horizontalmente para revisarlo antes de copiarlo.
¿Prefieres una copia local? Descarga los archivos que SkillsMP tiene disponibles ahora.
Descargar Zip Descargando... name telnyx-missions-ruby description Create and manage Telnyx Missions — automated workflows, tasks, and sub-resources for AI-driven telecom operations. This skill provides Ruby SDK examples. metadata {"author":"telnyx","product":"missions","language":"ruby","generated_by":"telnyx-openapi-pipeline"}
Telnyx Missions - Ruby
Installation
gem install telnyx
Setup
require "telnyx"
client = Telnyx::Client .new(
api_key: ENV ["TELNYX_API_KEY" ],
)
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:
begin
result = client.messages.send_(to: "+13125550001" , from: "+13125550002" , text: "Hello" )
rescue Telnyx : :Errors
puts
sleep( )
=> e
puts
e.status ==
puts
:
:APIConnectionError
"Network error — check connectivity and retry"
rescue
Telnyx
:
:Errors
:
:RateLimitError
1
rescue
Telnyx
:
:Errors
:
:APIStatusError
"API error #{e.status} : #{e.message} "
if
422
"Validation error — check required fields and formats"
end
end
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: Use .auto_paging_each for automatic iteration: page.auto_paging_each { |item| puts item.id }.
List missions List all missions for the organization
page = client.ai.missions.list
puts(page)
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 Create a new mission definition
POST /ai/missions — Required: name
Optional: description (string), execution_mode (enum: external, managed), instructions (string), metadata (object), model (string)
mission = client.ai.missions.create(name: "my-resource" )
puts(mission)
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 List recent events across all missions
page = client.ai.missions.list_events
puts(page)
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 List recent runs across all missions
page = client.ai.missions.runs.list_runs
puts(page)
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}
mission = client.ai.missions.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" )
puts(mission)
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 Update a mission definition
PUT /ai/missions/{mission_id}
Optional: description (string), execution_mode (enum: external, managed), instructions (string), metadata (object), model (string), name (string)
response = client.ai.missions.update_mission("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" )
puts(response)
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 DELETE /ai/missions/{mission_id}
result = client.ai.missions.delete_mission("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" )
puts(result)
Clone mission Clone an existing mission
POST /ai/missions/{mission_id}/clone
response = client.ai.missions.clone_mission("mission_id" )
puts(response)
List knowledge bases List all knowledge bases for a mission
GET /ai/missions/{mission_id}/knowledge-bases
response = client.ai.missions.knowledge_bases.list_knowledge_bases("mission_id" )
puts(response)
Create knowledge base Create a new knowledge base for a mission
POST /ai/missions/{mission_id}/knowledge-bases
response = client.ai.missions.knowledge_bases.create_knowledge_base("mission_id" )
puts(response)
Get knowledge base Get a specific knowledge base by ID
GET /ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}
response = client.ai.missions.knowledge_bases.get_knowledge_base("knowledge_base_id" , mission_id: "550e8400-e29b-41d4-a716-446655440000" )
puts(response)
Update knowledge base Update a knowledge base definition
PUT /ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}
response = client.ai.missions.knowledge_bases.update_knowledge_base("knowledge_base_id" , mission_id: "550e8400-e29b-41d4-a716-446655440000" )
puts(response)
Delete knowledge base Delete a knowledge base from a mission
DELETE /ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}
result = client.ai.missions.knowledge_bases.delete_knowledge_base("knowledge_base_id" , mission_id: "550e8400-e29b-41d4-a716-446655440000" )
puts(result)
List MCP servers List all MCP servers for a mission
GET /ai/missions/{mission_id}/mcp-servers
response = client.ai.missions.mcp_servers.list_mcp_servers("mission_id" )
puts(response)
Create MCP server Create a new MCP server for a mission
POST /ai/missions/{mission_id}/mcp-servers
response = client.ai.missions.mcp_servers.create_mcp_server("mission_id" )
puts(response)
Get MCP server Get a specific MCP server by ID
GET /ai/missions/{mission_id}/mcp-servers/{mcp_server_id}
response = client.ai.missions.mcp_servers.get_mcp_server("mcp_server_id" , mission_id: "550e8400-e29b-41d4-a716-446655440000" )
puts(response)
Update MCP server Update an MCP server definition
PUT /ai/missions/{mission_id}/mcp-servers/{mcp_server_id}
response = client.ai.missions.mcp_servers.update_mcp_server("mcp_server_id" , mission_id: "550e8400-e29b-41d4-a716-446655440000" )
puts(response)
Delete MCP server Delete an MCP server from a mission
DELETE /ai/missions/{mission_id}/mcp-servers/{mcp_server_id}
result = client.ai.missions.mcp_servers.delete_mcp_server("mcp_server_id" , mission_id: "550e8400-e29b-41d4-a716-446655440000" )
puts(result)
List runs for mission List all runs for a specific mission
GET /ai/missions/{mission_id}/runs
page = client.ai.missions.runs.list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" )
puts(page)
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 Start a new run for a mission
POST /ai/missions/{mission_id}/runs
Optional: input (object), metadata (object)
run = client.ai.missions.runs.create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" )
puts(run)
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 Get details of a specific run
GET /ai/missions/{mission_id}/runs/{run_id}
run = client.ai.missions.runs.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(run)
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 Update run status and/or result
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)
run = client.ai.missions.runs.update(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(run)
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 Cancel a running or paused run
POST /ai/missions/{mission_id}/runs/{run_id}/cancel
response = client.ai.missions.runs.cancel_run(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(response)
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 List events for a run (paginated)
GET /ai/missions/{mission_id}/runs/{run_id}/events
page = client.ai.missions.runs.events.list(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(page)
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 POST /ai/missions/{mission_id}/runs/{run_id}/events — Required: type, summary
Optional: agent_id (string), idempotency_key (string), payload (object), step_id (string)
response = 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
)
puts(response)
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 Get details of a specific event
GET /ai/missions/{mission_id}/runs/{run_id}/events/{event_id}
response = client.ai.missions.runs.events.get_event_details(
"event_id" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
run_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(response)
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 POST /ai/missions/{mission_id}/runs/{run_id}/pause
response = client.ai.missions.runs.pause_run(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(response)
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 Get the plan (all steps) for a run
GET /ai/missions/{mission_id}/runs/{run_id}/plan
plan = client.ai.missions.runs.plan.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(plan)
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 Create the initial plan for a run
POST /ai/missions/{mission_id}/runs/{run_id}/plan — Required: steps
plan = 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" }]
)
puts(plan)
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
response = client.ai.missions.runs.plan.add_steps_to_plan(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
steps: [{description: "description" , sequence: 0 , step_id: "550e8400-e29b-41d4-a716-446655440000" }]
)
puts(response)
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 Get details of a specific plan step
GET /ai/missions/{mission_id}/runs/{run_id}/plan/steps/{step_id}
response = client.ai.missions.runs.plan.get_step_details(
"step_id" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
run_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(response)
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 Update the status of a plan step
PATCH /ai/missions/{mission_id}/runs/{run_id}/plan/steps/{step_id}
Optional: metadata (object), status (enum: pending, in_progress, completed, skipped, failed)
response = client.ai.missions.runs.plan.update_step(
"step_id" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
run_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(response)
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 POST /ai/missions/{mission_id}/runs/{run_id}/resume
response = client.ai.missions.runs.resume_run(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(response)
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 List all Telnyx agents linked to a run
GET /ai/missions/{mission_id}/runs/{run_id}/telnyx-agents
telnyx_agents = client.ai.missions.runs.telnyx_agents.list(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(telnyx_agents)
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
response = client.ai.missions.runs.telnyx_agents.link(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
telnyx_agent_id: "550e8400-e29b-41d4-a716-446655440000"
)
puts(response)
Returns: created_at (date-time), run_id (string), telnyx_agent_id (string)
Unlink Telnyx agent Unlink a Telnyx agent from a run
DELETE /ai/missions/{mission_id}/runs/{run_id}/telnyx-agents/{telnyx_agent_id}
result = client.ai.missions.runs.telnyx_agents.unlink(
"telnyx_agent_id" ,
mission_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" ,
run_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
)
puts(result)
List tools List all tools for a mission
GET /ai/missions/{mission_id}/tools
response = client.ai.missions.tools.list_tools("mission_id" )
puts(response)
Create tool Create a new tool for a mission
POST /ai/missions/{mission_id}/tools
response = client.ai.missions.tools.create_tool("mission_id" )
puts(response)
Get tool Get a specific tool by ID
GET /ai/missions/{mission_id}/tools/{tool_id}
response = client.ai.missions.tools.get_tool("tool_id" , mission_id: "550e8400-e29b-41d4-a716-446655440000" )
puts(response)
Update tool PUT /ai/missions/{mission_id}/tools/{tool_id}
response = client.ai.missions.tools.update_tool("tool_id" , mission_id: "550e8400-e29b-41d4-a716-446655440000" )
puts(response)
Delete tool Delete a tool from a mission
DELETE /ai/missions/{mission_id}/tools/{tool_id}
result = client.ai.missions.tools.delete_tool("tool_id" , mission_id: "550e8400-e29b-41d4-a716-446655440000" )
puts(result)