Migración desde Automation Anywhere
Si llegas desde Automation Anywhere (A360 / Control Room), encontrarás equivalencias claras en NORA. La diferencia central es que los robots de NORA son Python nativo: no hay TaskBots ni MetaBots construidos en un editor visual. Reescribes la automatización en Python, la empaquetas y NORA la ejecuta, programa y controla en tus máquinas Windows y macOS.
Esta guía traduce la terminología y propone un plan de migración. Si la nomenclatura de NORA te resulta nueva, empieza por el glosario.
Mapa de conceptos
Sección titulada «Mapa de conceptos»| Automation Anywhere | NORA | Notas |
|---|---|---|
| Control Room | Robots Center | El centro que orquesta y controla todos tus robots desde la plataforma. |
| Bot / TaskBot | Paquete | Tu código Python empaquetado. Cada subida genera una versión (Release). |
| Process / Process Discovery | Proceso | Unidad ejecutable que apunta a un Release de un Paquete. |
| Queue (WLM) | Cola | Trabajo pendiente con ítems (items) que los robots consumen. |
| Credential / Locker | Asset / Credencial | Valores y secretos cifrados, separados por entorno (environment). |
| Bot Runner / Bot Agent | Agente + Máquina | El Agente es el proceso instalado; la Máquina es el host registrado donde corre. |
| Schedule / Trigger | Programación / Trigger | Ejecución por calendario (cron) o por evento/webhook. |
| Activity / Deployment | 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 editor de bots. En Automation Anywhere construyes TaskBots con acciones arrastrables. En NORA escribes Python normal con las librerías que prefieras (
playwright,selenium,pyautogui,requests,pandas, etc.) y registras eventos con el SDK de NORA en lugar de la acciónLog To File. - 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 corre en tu infraestructura.
- Integración por API pública. Donde A360 usa la API del Control Room, NORA ofrece una API pública con cabecera
X-API-Key(claves con prefijonora_ak_) y scopes por recurso (jobs:write,queues:write, etc.). La feature de API keys está disponible en los planes Pro y Enterprise. - Asignación de Bot Runner simplificada. Al disparar un Job por API puedes omitir
machine_id: NORA elige automáticamente una máquina activa y en línea del tenant, en lugar de gestionar device pools.
Pasos sugeridos de migración
Sección titulada «Pasos sugeridos de migración»flowchart TD
A[Reimplementar la logica en Python] --> B[Empaquetar el bot]
B --> C[Subir el Paquete a NORA]
C --> D[Crear un Proceso sobre el Release]
D --> E[Configurar Colas y Credenciales]
E --> F[Programar con Programacion o Trigger]
F --> G[Ejecutar y monitorear Jobs]
- Reimplementa la lógica en Python. Traduce cada acción del TaskBot a código. Las credenciales del Locker pasan a ser Assets/Credenciales de NORA (leídos por API o SDK); las acciones de log se sustituyen por el logging del SDK (niveles
info/warning/error). Revisa procesos y paquetes para la estructura esperada. - Empaqueta el bot. Reúne 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 Credenciales equivalentes a tus Queues (WLM) y Lockers, separando por entorno.
- Programa la ejecución con una Programación (cron) o un Trigger (evento/webhook), o dispara bajo demanda por API.
Alimentar una Cola por API (equivalente a cargar work items)
Sección titulada «Alimentar una Cola por API (equivalente a cargar work items)»curl -X POST "https://nora-api.valisoftconsulting.com/api/v1/queues/by-name/facturas/items" \ -H "X-API-Key: nora_ak_..." \ -H "Content-Type: application/json" \ -d '{ "data": {"numero": "F-001", "monto": 1250.50}, "priority": 3, "reference": "F-001" }'Respuesta (envuelta en data):
{ "success": true, "data": { "id": "7c6d5e4f-...", "queue_id": "2b3c4d5e-...", "status": "new", "priority": 3, "reference": "F-001", "data": {"numero": "F-001", "monto": 1250.50}, "created_at": "2026-06-19T12:00:00Z" }}