> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getnexor.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Asignar Tool a Workflow

<span class="badge--post">POST</span> <code class="endpoint-url">/client-tools/:id/assign</code>

Asigna una tool del catálogo a un agente. Inserta una workflow tool `inherited` que refleja los campos de contenido de la tool del catálogo y se mantiene sincronizada con ella en futuras ediciones vía [Actualizar Client Tool](/docs/es/api/client-tools/update-client-tool). Idempotente: volver a asignar una tool ya asignada devuelve la asignación existente (sigue siendo `200`, sin duplicar la fila).

Tanto la client tool como el agente destino deben pertenecer a tu cuenta.

## Parámetros de Ruta

| Parámetro | Tipo          | Requerido | Descripción          |
| --------- | ------------- | --------- | -------------------- |
| `id`      | string (uuid) | **Sí**    | ID de la client tool |

## Cuerpo de la Solicitud

| Campo         | Tipo          | Requerido | Descripción                     |
| ------------- | ------------- | --------- | ------------------------------- |
| `workflow_id` | string (uuid) | **Sí**    | Agente al que se asigna la tool |

## Respuestas

### `200` — Asignada (creada o ya existía)

```json theme={null}
{
  "success": true,
  "workflow_tool": {
    "id": "9a1b2c3d-0000-4000-8000-000000000001",
    "name": "check_subscription",
    "description": "Checks whether the lead has an active subscription",
    "url": "https://api.acme.com/subscriptions/status",
    "method": "GET",
    "timeout_ms": 10000,
    "parameters": { "type": "object", "properties": {} },
    "headers": {},
    "query_parameters": {},
    "is_active": true,
    "sort_order": 0,
    "workflow_id": "550e8400-e29b-41d4-a716-446655440000",
    "source_tool_id": "7c1b2c3d-0000-4000-8000-000000000002",
    "inherited": true,
    "auto_run_on_entry": false,
    "call_once": false,
    "available_in_statuses": null
  }
}
```

### Campos de Respuesta — WorkflowTool (forma pública)

| Campo                   | Tipo              | Descripción                                                                                                                                                        |
| ----------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id`                    | string (uuid)     | Identificador de la workflow tool                                                                                                                                  |
| `name`                  | string            | Nombre en snake\_case, copiado de la tool del catálogo                                                                                                             |
| `description`           | string            | Copiado de la tool del catálogo, se mantiene sincronizado con sus ediciones                                                                                        |
| `url`                   | string            | Copiado de la tool del catálogo, se mantiene sincronizado con sus ediciones                                                                                        |
| `method`                | string            | Copiado de la tool del catálogo, se mantiene sincronizado con sus ediciones                                                                                        |
| `timeout_ms`            | integer           | Copiado de la tool del catálogo, se mantiene sincronizado con sus ediciones                                                                                        |
| `parameters`            | object            | Copiado de la tool del catálogo, se mantiene sincronizado con sus ediciones                                                                                        |
| `headers`               | object            | Copiado de la tool del catálogo, se mantiene sincronizado con sus ediciones                                                                                        |
| `query_parameters`      | object            | Copiado de la tool del catálogo, se mantiene sincronizado con sus ediciones                                                                                        |
| `is_active`             | boolean           | Copiado al asignar, luego se mantiene sincronizado con las ediciones del catálogo                                                                                  |
| `sort_order`            | integer           | Se establece de nuevo al asignar, a partir del `sort_order` de la tool del catálogo. No se sincroniza después                                                      |
| `workflow_id`           | string (uuid)     | Agente al que pertenece esta asignación                                                                                                                            |
| `source_tool_id`        | string (uuid)     | La tool del catálogo desde la cual se asignó esta fila                                                                                                             |
| `inherited`             | boolean           | `true` para una asignación de catálogo (versus una tool creada de forma independiente con [Crear Workflow Tool](/docs/es/api/workflow-tools/create-workflow-tool)) |
| `auto_run_on_entry`     | boolean           | Correr automáticamente cuando un lead entra a un status elegible                                                                                                   |
| `call_once`             | boolean           | Permitir solo una llamada por lead                                                                                                                                 |
| `available_in_statuses` | string\[] \| null | Keys de status del funnel donde se ofrece esta tool. `null` significa en todos los statuses                                                                        |

Esta misma forma de campos la devuelve [Crear Workflow Tool](/docs/es/api/workflow-tools/create-workflow-tool).

### `400` — Error de validación

```json theme={null}
{
  "error": "Invalid input",
  "message": "workflow_id is required"
}
```

También se devuelve como `"tool id must be a valid UUID"` o `"workflow_id must be a valid UUID"`.

### `401` — Error de autenticación

Ver [Autenticación](/docs/es/api/authentication).

### `404` — No encontrado

```json theme={null}
{
  "error": "Not found",
  "message": "Client tool not found"
}
```

También se devuelve como `"Workflow not found"` cuando el agente no pertenece a tu cuenta.

### `409` — Conflicto

```json theme={null}
{
  "error": "Conflict",
  "message": "A tool named \"check_subscription\" already exists in this workflow"
}
```

Se devuelve cuando una tool distinta (no esta client tool) ya ocupa ese nombre en el agente destino.

### `500` — Error interno del servidor
