El catálogo cubre más de 100 servicios, pero cada equipo tiene unas cuantas herramientas internas o productos SaaS regionales que no aparecen. Los conectores personalizados resuelven eso.
Registras una credencial — una clave de API o credenciales OAuth — y le dices a Zero cómo llamar al servicio. A partir de ahí, Zero trata tu conector personalizado igual que uno integrado: mismo registro de auditoría, mismo proxy de acceso intermediado, mismas barreras para acciones sensibles.
Dos variantes
Elige el tipo que encaje con tu servicio:
- Clave de API — funciona para cualquier servicio que se autentique con un token estático en una cabecera. La vía más simple y rápida: pega la clave, nombra el conector, apunta Zero a la URL base. La mayoría de las APIs internas y muchas herramientas SaaS usan esto.
- OAuth 2.0 — para servicios que emiten tokens por usuario vía OAuth. Proporcionas un client ID y un secret, configuras los scopes que Zero debe poder solicitar, y Zero ejecuta la danza OAuth por usuario cuando hace falta.
Si no sabes cuál usar, consulta la documentación de la API del servicio. La frase "API key" (o "personal access token") suele significar variante 1; "OAuth" (o "client credentials") suele significar variante 2.
Configurar un conector de clave API
- Abre la página de Conectores en tu espacio de trabajo.
- Pulsa Añadir conector personalizado → Clave de API.
- Rellena:
- Nombre. Algo que Zero pueda reconocer al leer prompts, p. ej.,
internal-billing-apioacme-crm. - URL base. La raíz de la API:
https://api.internal.acme.com. - Cabecera de auth. Normalmente
Authorization: Bearer YOUR_TOKENoX-API-Key: YOUR_TOKEN. Empareja lo que espera el servicio. - Clave de API. Pega la credencial. Se guarda cifrada; nunca es visible después de guardar.
- Rutas permitidas (opcional). Restringe Zero a endpoints específicos, como
/v1/invoices/*. Reduce el radio de impacto.
- Nombre. Algo que Zero pueda reconocer al leer prompts, p. ej.,
- Pulsa Guardar y Probar conexión. Zero hace un ping a la URL base con un
GET /(o una ruta que tú indiques) e informa de la respuesta.
Configurar un conector OAuth 2.0
Un poco más de trabajo, pero merece la pena para servicios donde la autorización por usuario importa:
- Registra una aplicación OAuth con el servicio externo. Obtendrás un client ID y un client secret. Pon el redirect URI al que VM0 muestra en el formulario de añadir conector.
- En VM0: Añadir conector personalizado → OAuth 2.0.
- Rellena:
- Nombre y URL base, como arriba
- URL de autorización y URL de token desde la documentación OAuth del servicio externo
- Client ID y Client secret
- Scopes. La lista de scopes que Zero tiene permitido solicitar. Usa el mínimo que cubra tus flujos.
- Guarda. La primera sesión que necesite este conector dispara el flujo OAuth por usuario.
Decirle a Zero cómo usar un conector personalizado
Dos formas. Elige la que encaje con tu flujo.
Descríbelo en línea cuando le pides a Zero que haga algo:
"Usa el conector
internal-billing-apipara sacar la factura #4422. Luego envía el PDF por correo a ops@acme.com."
Zero carga la especificación del conector y decide a qué endpoint llamar. Esto funciona porque los conectores traen metadatos estilo OpenAPI (auto-detectados en muchos servicios, opcionalmente proporcionados a mano).
Escribe una habilidad que referencie al conector por nombre. El cuerpo de la habilidad describe el procedimiento; Zero carga la habilidad automáticamente cuando la descripción coincide con una solicitud entrante. Para flujos repetidos, es más limpio que re-describirlo en línea cada vez.
Una habilidad llamada
pull-invoicecon descripción "sacar una factura de internal-billing-api y enviar el PDF por correo" — una vez escrita, Zero la invoca cada vez que alguien pide una factura.
Especificaciones OpenAPI y esquemas en línea
Zero funciona mejor con un conector personalizado cuando conoce los endpoints, métodos y parámetros disponibles. Tres formas de proveerlo:
- Auto-detección desde el
/openapi.jsono/swagger.jsondel servicio si lo expone. Solo apunta Zero a la URL. - Sube una especificación. Pega o sube un OpenAPI 3 YAML/JSON. Zero lo parsea y ofrece metadatos estilo tooltip al construir llamadas.
- Descripciones en línea. Para herramientas internas sin especificación, puedes escribir una descripción markdown corta en el cuerpo del conector — endpoints, métodos, payloads de muestra. Crudo pero funcional.
Sin especificación, Zero sigue funcionando — solo tiene que adivinar más sobre la forma de los parámetros. Para conectores personalizados de uso frecuente, una especificación se amortiza rápido.
Compartir entre espacios de trabajo
Los conectores personalizados están acotados al espacio de trabajo por defecto. Dos equipos en la misma organización pueden mantener cada uno su propio conector personalizado para la misma API interna. Para organizaciones que quieren una única configuración canónica:
- Conectores a nivel de organización Enterprise. Disponible en planes enterprise. Se configura una vez a nivel de organización; aparece en cada espacio de trabajo bajo esa organización. Recomendado para APIs internas que todos usan.
- Paquete de conector. Para organizaciones muy grandes, el equipo de plataforma interno puede publicar un conector personalizado como paquete versionado; los espacios de trabajo lo instalan y reciben actualizaciones automáticamente.
Seguridad y límites de tasa
- Credenciales. Cifradas en reposo con claves por espacio de trabajo. Nunca visibles después de guardar; solo re-introducibles.
- Auditoría por llamada. Cada solicitud a través de un conector personalizado aparece en el registro de la sesión con método, URL, código de estado y tiempos.
- Límites de tasa. Los aplica el servicio externo. Zero gestiona respuestas 429 con backoff exponencial hasta un límite configurable por espacio de trabajo.
- Rutas en allow-list. Opcional: restringir Zero a patrones de URL específicos. Reduce el radio de impacto si una clave de conector tiene demasiados privilegios.
- Solo lectura por defecto. Un conector personalizado nuevo se marca como solo lectura. Conceder acceso de escritura requiere configuración explícita por espacio de trabajo.
Errores comunes
- Claves de API demasiado amplias. Si tu servicio lo soporta, emite una clave acotada para Zero en lugar de reutilizar tu clave personal de administrador. Más fácil de rotar y auditar.
- Esquemas faltantes. Sin una especificación OpenAPI o una descripción en línea, Zero adivina la forma de los parámetros. Eso funciona para casos simples y se rompe con objetos anidados. Aporta una especificación cuando puedas.
- URLs base no probadas. Pulsa siempre Probar conexión después de configurar. Un 401 o 404 en esta etapa es mucho mejor que un 401 en una sesión crítica.
- Olvidarte de rotar. Pon un recordatorio en el calendario para rotar claves trimestralmente. La rotación de claves de conector es un clic en VM0; la rotación aguas arriba es lo que se lleva la mayor parte del tiempo.
Qué sigue
- Consulta Habilidades para capturar flujos repetidos con conectores personalizados.
- Consulta Permisos para ver cómo se manejan las credenciales de conector personalizado.
- Consulta el Catálogo antes de construir un personalizado — puede que tu servicio ya esté soportado.