Migración desde UiPath
Si vienes de UiPath, los conceptos que ya conoces (Orchestrator, Processes, Queues, Assets, Robots) tienen un equivalente directo en NORA. La diferencia de fondo es que los robots de NORA son Python nativo: no hay diseñador visual ni actividades arrastrables. Reescribes la lógica en Python, la empaquetas y NORA se encarga de ejecutarla, programarla y controlarla en tus máquinas Windows y macOS.
Esta guía te ayuda a traducir tu modelo mental y a planificar la migración. Si aún no conoces la terminología de NORA, revisa primero el glosario.
Mapa de conceptos
Sección titulada «Mapa de conceptos»| UiPath | NORA | Notas |
|---|---|---|
| Orchestrator | Robots Center | El centro que orquesta y controla todos tus robots desde la plataforma. |
| Process | Proceso | Unidad ejecutable. En NORA apunta a una versión publicada (Release) de un Paquete. |
| Queue | Cola | Trabajo pendiente con ítems (items) que los robots consumen. |
| Asset / Credential | Asset / Credencial | Valores y secretos cifrados, separados por entorno (environment). |
| Robot / Bot Runner | Agente + Máquina | El Agente es el proceso instalado; la Máquina es el host registrado donde corre. |
Package (.nupkg) | Paquete | Tu código Python. Cada subida genera una versión (Release). |
| Trigger / Schedule | Trigger / Programación | Disparo por evento/webhook o ejecución por calendario (cron). |
| Job | Job | Una ejecución concreta de un Proceso en una Máquina. |
| Folder | Carpeta (folder) | Agrupa procesos para organización y permisos. |
Diferencias clave
Sección titulada «Diferencias clave»- Python nativo, sin diseñador visual. En UiPath modelas el flujo con actividades en Studio. En NORA escribes Python normal: usas las librerías que quieras (
playwright,selenium,pyautogui,requests,pandas, etc.) y registras eventos con el SDK de NORA en lugar deLog Message. - Ejecución en tus máquinas. El Agente de NORA se instala en tus equipos Windows y macOS y ejecuta los robots ahí. NORA orquesta; el cómputo es tuyo.
- Integración por API pública. Donde UiPath usa la API de Orchestrator, NORA expone una API pública con cabecera
X-API-Key(claves con prefijonora_ak_) y scopes por recurso (jobs:write,queues:read, etc.). La feature de API keys está disponible en los planes Pro y Enterprise. - Asignación de máquina opcional. Al disparar un Job por API puedes omitir
machine_id: NORA selecciona automáticamente una máquina activa y en línea del tenant.
Pasos sugeridos de migración
Sección titulada «Pasos sugeridos de migración»flowchart TD
A[Reimplementar la lógica en Python] --> B[Empaquetar el robot]
B --> C[Subir el Paquete a NORA]
C --> D[Crear un Proceso sobre el Release]
D --> E[Configurar Colas y Assets]
E --> F[Programar con Trigger o Programación]
F --> G[Ejecutar y monitorear Jobs]
- Reimplementa la lógica en Python. Traduce cada actividad de UiPath a código. Las lecturas de
Asset/Credentialpasan a leerse vía API o SDK; losLog Messagese sustituyen por el logging del SDK de NORA (nivelesinfo/warning/error). Revisa procesos y paquetes para la estructura esperada. - Empaqueta el robot. Reúne tu código y dependencias en un Paquete. Al subirlo, NORA crea un Release versionado.
- Sube el Paquete a NORA desde la plataforma.
- Crea un Proceso que apunte al Release. Aquí defines
timeout_seconds, reintentos (max_retries,auto_retry),input_schemay losrequired_assets. - Configura Colas y Assets equivalentes a tus Queues y Assets de UiPath, separando por entorno.
- Programa la ejecución con un Trigger (evento/webhook) o una Programación (cron), o dispara bajo demanda por API.
Disparar un Proceso por API (equivalente a “Start Job”)
Sección titulada «Disparar un Proceso por API (equivalente a “Start Job”)»curl -X POST "https://nora-api.valisoftconsulting.com/api/v1/jobs/trigger" \ -H "X-API-Key: nora_ak_..." \ -H "Content-Type: application/json" \ -d '{ "process_id": "b3f1c2d4-5678-4abc-9012-3456789abcde", "input_data": {"cliente": "ACME"}, "priority": 3 }'Respuesta (envuelta en data):
{ "success": true, "data": { "id": "9a8b7c6d-...", "process_id": "b3f1c2d4-...", "machine_id": "1f2e3d4c-...", "status": "queued", "priority": 3, "created_at": "2026-06-19T12:00:00Z" }}