Saltar al contenido principal

Integración con ServiceNow

La integración con ServiceNow (Administración > Configuración > ServiceNow) permite la sincronización bidireccional entre Canopy y su CMDB de ServiceNow. Esta guía cubre todo, desde la configuración inicial hasta recetas avanzadas y mejores prácticas operativas.

Configuración de ServiceNow

¿Por qué integrar ServiceNow con Canopy?

ServiceNow CMDB y las herramientas de Arquitectura Empresarial sirven propósitos diferentes pero complementarios:

ServiceNow CMDBCanopy
EnfoqueOperaciones de TI — qué está en ejecución, quién es responsable, qué incidentes ocurrieronPlanificación estratégica — ¿cómo debería verse el paisaje en 3 años?
Mantenido porOperaciones de TI, Gestión de ActivosEquipo de EA, Arquitectos de Negocio
FortalezaDescubrimiento automatizado, flujos de trabajo ITSM, precisión operativaContexto de negocio, mapeo de capacidades, planificación de ciclo de vida, evaluaciones
Datos típicosNombres de host, IPs, estado de instalación, grupos de asignación, contratosCriticidad de negocio, adecuación funcional, deuda técnica, hoja de ruta estratégica

Canopy es el sistema de registro para su paisaje de arquitectura — nombres, descripciones, planes de ciclo de vida, evaluaciones y contexto de negocio viven aquí. ServiceNow complementa Canopy con metadatos operativos y técnicos (nombres de host, IPs, datos de SLA, estado de instalación) que provienen del descubrimiento automatizado y flujos de trabajo ITSM. La integración mantiene ambos sistemas conectados respetando que Canopy lidera.

Lo que puede hacer

  • Sincronización pull — Importar CIs desde ServiceNow a Canopy, luego tomar propiedad. Los pulls posteriores solo actualizan campos operativos (IPs, estado, SLAs) que SNOW descubre automáticamente
  • Sincronización push — Exportar datos curados por EA de vuelta a ServiceNow (nombres, descripciones, evaluaciones, planes de ciclo de vida) para que los equipos ITSM vean el contexto de EA
  • Sincronización bidireccional — Canopy lidera la mayoría de campos; SNOW lidera un pequeño conjunto de campos operativos/técnicos. Ambos sistemas se mantienen sincronizados
  • Mapeo de identidad — Seguimiento persistente de referencias cruzadas (sys_id <-> UUID de ficha) que asegura que los registros permanezcan vinculados entre sincronizaciones

Arquitectura de la Integración

+------------------+ HTTPS / Table API +------------------+
| Canopy | <--------------------------------> | ServiceNow |
| | | |
| Fichas | Pull: CIs SNOW -> Fichas Turbo | CIs CMDB |
| (Aplicación, | Push: Fichas Turbo -> CIs SNOW | (cmdb_ci_appl, |
| Componente TI, | | cmdb_ci_server, |
| Proveedor,...) | Mapa de identidad: sys_id &lt;-> UUID | core_company) |
+------------------+ +------------------+

La integración utiliza la Table API de ServiceNow sobre HTTPS. Las credenciales se cifran en reposo usando Fernet (AES-128-CBC) derivado de su SECRET_KEY. Todas las operaciones de sincronización se registran como eventos con source: "servicenow_sync" para una pista de auditoría completa.


Planificación de su Integración

Antes de configurar cualquier cosa, responda estas preguntas:

1. ¿Qué tipos de fichas necesitan datos de ServiceNow?

Comience con poco. Los puntos de integración más comunes son:

PrioridadTipo CanopyFuente ServiceNowPor qué
AltaAplicacióncmdb_ci_business_appLas aplicaciones son el núcleo de EA — CMDB tiene nombres, propietarios y estado autorizados
AltaComponente TI (Software)cmdb_ci_spkgLos productos de software alimentan el seguimiento EOL y el radar tecnológico
MediaComponente TI (Hardware)cmdb_ci_serverPaisaje de servidores para mapeo de infraestructura
MediaProveedorcore_companyRegistro de proveedores para gestión de costos y relaciones
BajaInterfazcmdb_ci_endpointEndpoints de integración (a menudo mantenidos manualmente en EA)
BajaObjeto de Datoscmdb_ci_databaseInstancias de bases de datos

2. ¿Qué sistema es la fuente de verdad para cada campo?

Esta es la decisión más importante. La regla predeterminada debe ser Canopy lidera — la herramienta de EA es el sistema de registro para su paisaje de arquitectura. ServiceNow solo debe liderar para un conjunto reducido de campos operativos y técnicos que provienen del descubrimiento automatizado o flujos de trabajo ITSM. Todo lo demás — nombres, descripciones, evaluaciones, planificación de ciclo de vida, costos — es propiedad del equipo de EA y se cura en Canopy.

Modelo recomendado — «Canopy lidera, SNOW complementa»:

Tipo de campoFuente de verdadPor qué
Nombres y descripcionesTurbo lideraEl equipo de EA cura nombres autorizados y escribe descripciones estratégicas; los nombres de CMDB pueden ser desordenados o autogenerados
Criticidad de negocioTurbo lideraEvaluación estratégica del equipo de EA — no datos operativos
Adecuación funcional / técnicaTurbo lideraLas puntuaciones del modelo TIME son una preocupación de EA
Ciclo de vida (todas las fases)Turbo lideraPlan, puesta en marcha, activo, retirada gradual, fin de vida — todo son datos de planificación de EA
Datos de costosTurbo lideraEA rastrea el costo total de propiedad; CMDB puede tener líneas de contrato pero EA posee la vista consolidada
Tipo de alojamiento, categoríaTurbo lideraEA clasifica aplicaciones por modelo de alojamiento para análisis estratégico
Metadatos técnicosSNOW lideraIPs, versiones de SO, nombres de host, números de serie — datos de descubrimiento automatizado que EA no mantiene
SLA / estado operativoSNOW lideraEstado de instalación, objetivos de SLA, métricas de disponibilidad — datos operativos ITSM
Grupo de asignación / soporteSNOW lideraPropiedad operativa rastreada en flujos de trabajo de ServiceNow
Fechas de descubrimientoSNOW lideraPrimera/última vez descubierto, último escaneo — metadatos de automatización de CMDB

3. ¿Con qué frecuencia debe sincronizar?

EscenarioFrecuenciaNotas
Importación inicialUna vezModo aditivo, revise cuidadosamente
Gestión activa del paisajeDiariaAutomatizado vía cron en horas de baja actividad
Informes de cumplimientoSemanalAntes de generar informes
Ad-hocSegún necesidadAntes de revisiones o presentaciones importantes de EA

Paso 1: Prerrequisitos de ServiceNow

Crear una Cuenta de Servicio

En ServiceNow, cree una cuenta de servicio dedicada (nunca use cuentas personales):

RolPropósito¿Requerido?
itilAcceso de lectura a tablas CMDB
cmdb_readLeer Elementos de Configuración
rest_api_explorerÚtil para probar consultasRecomendado
import_adminAcceso de escritura a tablas destinoSolo para sincronización push

Mejor práctica: Cree un rol personalizado con acceso de solo lectura únicamente a las tablas específicas que planea sincronizar. El rol itil es amplio — un rol personalizado con alcance limitado reduce el radio de impacto.

Requisitos de Red

  • El backend de Canopy debe poder alcanzar su instancia SNOW por HTTPS (puerto 443)
  • Configure reglas de firewall y listas de IPs permitidas
  • Formato de URL de instancia: https://empresa.service-now.com o https://empresa.servicenowservices.com

Elegir Método de Autenticación

MétodoVentajasDesventajasRecomendación
Auth BásicaConfiguración simpleCredenciales enviadas en cada solicitudSolo desarrollo/pruebas
OAuth 2.0Basado en tokens, con alcance, auditableMás pasos de configuraciónRecomendado para producción

Para OAuth 2.0:

  1. En ServiceNow: System OAuth > Application Registry
  2. Cree un nuevo endpoint OAuth API para clientes externos
  3. Anote el Client ID y Client Secret
  4. Rote los secretos en un ciclo de 90 días

Paso 2: Crear una Conexión

Navegue a Administración > ServiceNow > pestaña Conexiones.

Crear y Probar

  1. Haga clic en Agregar Conexión
  2. Complete:
CampoValor de EjemploNotas
NombreCMDB ProducciónEtiqueta descriptiva para su equipo
URL de Instanciahttps://empresa.service-now.comDebe usar HTTPS
Tipo de AuthAuth Básica u OAuth 2.0OAuth recomendado para producción
Credenciales(según tipo de auth)Cifradas en reposo vía Fernet
  1. Haga clic en Crear, luego haga clic en el icono de prueba (símbolo wifi) para verificar conectividad
  • Chip verde «Conectado» — Listo para usar
  • Chip rojo «Fallido» — Verifique credenciales, red y URL

Múltiples Conexiones

Puede crear múltiples conexiones para:

  • Instancias de producción vs desarrollo
  • Instancias SNOW regionales (p. ej., EMEA, APAC)
  • Diferentes equipos con cuentas de servicio separadas

Cada mapeo referencia una conexión específica.


Paso 3: Diseñar sus Mapeos

Cambie a la pestaña Mapeos. Un mapeo conecta un tipo de ficha de Canopy con una tabla de ServiceNow.

Crear un Mapeo

Haga clic en Agregar Mapeo y configure:

CampoDescripciónEjemplo
ConexiónQué instancia de ServiceNow usarCMDB Producción
Tipo de FichaEl tipo de ficha de Canopy a sincronizarAplicación
Tabla SNOWEl nombre API de la tabla de ServiceNowcmdb_ci_business_app
Dirección de SincronizaciónQué operaciones están disponibles (ver abajo)ServiceNow -> Canopy
Modo de SincronizaciónCómo manejar eliminacionesConservador
Ratio Máximo de EliminaciónUmbral de seguridad para eliminaciones masivas50%
Consulta de FiltroConsulta codificada de ServiceNow para limitar alcanceactive=true^install_status=1
Omitir StagingAplicar cambios directamente sin revisiónDesactivado (recomendado para sincronización inicial)

Mapeos Comunes de Tablas SNOW

Tipo CanopyTabla ServiceNowDescripción
Aplicacióncmdb_ci_business_appAplicaciones de negocio (más común)
Aplicacióncmdb_ci_applCIs de aplicaciones generales
Componente TI (Software)cmdb_ci_spkgPaquetes de software
Componente TI (Hardware)cmdb_ci_serverServidores físicos/virtuales
Componente TI (SaaS)cmdb_ci_cloud_service_accountCuentas de servicios en la nube
Proveedorcore_companyProveedores / empresas
Interfazcmdb_ci_endpointEndpoints de integración
Objeto de Datoscmdb_ci_databaseInstancias de bases de datos
Sistemacmdb_ci_computerCIs de computadores
Organizacióncmn_departmentDepartamentos

Ejemplos de Consultas de Filtro

Siempre filtre para evitar importar registros obsoletos o retirados:

# Solo CIs activos (filtro mínimo recomendado)
active=true

# CIs activos con estado de instalación «Instalado»
active=true^install_status=1

# Aplicaciones en uso productivo
active=true^used_for=Production

# CIs actualizados en los últimos 30 días
active=true^sys_updated_on>=javascript:gs.daysAgoStart(30)

# Grupo de asignación específico
active=true^assignment_group.name=IT Operations

# Excluir CIs retirados
active=true^install_statusNOT IN7,8

Mejor práctica: Incluya siempre active=true como mínimo. Las tablas CMDB a menudo contienen miles de registros retirados o descomisionados que no deben importarse a su paisaje de EA.


Paso 4: Configurar Mapeos de Campos

Cada mapeo contiene mapeos de campos que definen cómo se traducen los campos individuales entre los dos sistemas. El campo Canopy proporciona sugerencias de autocompletado basadas en el tipo de ficha seleccionado — incluyendo campos principales, fechas de ciclo de vida y todos los atributos personalizados del esquema del tipo.

Agregar Campos

Para cada mapeo de campo, configure:

ConfiguraciónDescripción
Campo CanopyRuta del campo en Canopy (autocompletado sugiere opciones según el tipo de ficha)
Campo SNOWNombre de columna API de ServiceNow (p. ej., name, short_description)
DirecciónFuente de verdad por campo: SNOW lidera o Turbo lidera
TransformaciónCómo convertir valores: Directa, Mapa de Valores, Fecha, Booleano
Identidad (casilla ID)Usado para emparejar registros durante la sincronización inicial

Rutas de Campos de Canopy

El autocompletado agrupa los campos por sección. Aquí está la referencia completa de rutas:

RutaDestinoValor de Ejemplo
nameNombre visible de la ficha"SAP S/4HANA"
descriptionDescripción de la ficha"Sistema ERP principal para finanzas"
lifecycle.planCiclo de vida: Fecha de plan"2024-01-15"
lifecycle.phaseInCiclo de vida: Fecha de puesta en marcha"2024-03-01"
lifecycle.activeCiclo de vida: Fecha de activación"2024-06-01"
lifecycle.phaseOutCiclo de vida: Fecha de retirada gradual"2028-12-31"
lifecycle.endOfLifeCiclo de vida: Fecha de fin de vida"2029-06-30"
attributes.<clave>Cualquier atributo personalizado del esquema de campos del tipo de fichaVaría según el tipo de campo

Por ejemplo, si su tipo Aplicación tiene un campo con clave businessCriticality, seleccione attributes.businessCriticality del desplegable.

Campos de Identidad — Cómo funciona el emparejamiento

Marque uno o más campos como Identidad (icono de llave). Estos se usan durante la primera sincronización para emparejar registros de ServiceNow con fichas existentes de Canopy:

  1. Búsqueda en mapa de identidad — Si ya existe un vínculo sys_id <-> UUID de ficha, se usa
  2. Coincidencia exacta por nombre — Emparejamiento por el valor del campo de identidad (p. ej., coincidencia por nombre de aplicación)
  3. Coincidencia difusa — Si no hay coincidencia exacta, se usa SequenceMatcher con umbral de similitud del 85%

Mejor práctica: Siempre marque el campo name como campo de identidad. Si los nombres difieren entre sistemas (p. ej., SNOW incluye números de versión como «SAP S/4HANA v2.1» pero Canopy tiene «SAP S/4HANA»), límpielos antes de la primera sincronización para mejor calidad de emparejamiento.

Después de la primera sincronización que establece los vínculos del mapa de identidad, las sincronizaciones posteriores usan el mapa de identidad persistente y no dependen del emparejamiento por nombre.


Paso 5: Ejecutar su Primera Sincronización

Cambie a la pestaña Panel de Sincronización.

Iniciar una Sincronización

Para cada mapeo activo, verá botones Pull y/o Push dependiendo de la dirección de sincronización configurada:

  • Pull (icono de descarga de nube) — Obtiene datos de SNOW hacia Canopy
  • Push (icono de carga de nube) — Envía datos de Canopy a ServiceNow

Qué sucede durante una sincronización Pull

1. OBTENER Recuperar todos los registros coincidentes de SNOW (lotes de 500)
2. EMPAREJAR Emparejar cada registro con una ficha existente:
a) Mapa de identidad (búsqueda persistente sys_id &lt;-> UUID de ficha)
b) Coincidencia exacta por nombre en campos de identidad
c) Coincidencia difusa por nombre (umbral de similitud del 85%)
3. TRANSFORMAR Aplicar mapeos de campos para convertir formato SNOW -> Canopy
4. COMPARAR Comparar datos transformados contra campos existentes de la ficha
5. PREPARAR Asignar una acción a cada registro:
- crear: Nuevo, no se encontró ficha coincidente
- actualizar: Coincidencia encontrada, campos difieren
- omitir: Coincidencia encontrada, sin diferencias
- eliminar: En mapa de identidad pero ausente de SNOW
6. APLICAR Ejecutar acciones preparadas (crear/actualizar/archivar fichas)

Cuando Omitir Staging está habilitado, los pasos 5 y 6 se fusionan — las acciones se aplican directamente sin escribir registros de staging.

Revisión de Resultados de Sincronización

La tabla Historial de Sincronización muestra después de cada ejecución:

ColumnaDescripción
IniciadoCuándo comenzó la sincronización
DirecciónPull o Push
Estadocompleted, failed o running
ObtenidosTotal de registros recuperados de ServiceNow
CreadosNuevas fichas creadas en Canopy
ActualizadosFichas existentes actualizadas
EliminadosFichas archivadas (eliminación suave)
ErroresRegistros que fallaron al procesarse
DuraciónTiempo total transcurrido

Haga clic en el icono de lista en cualquier ejecución para inspeccionar registros de staging individuales, incluyendo las diferencias campo por campo para cada actualización.

Procedimiento Recomendado para la Primera Sincronización

1. Configure el mapeo en modo ADITIVO con staging ACTIVADO
2. Ejecute la sincronización pull
3. Revise los registros en staging — verifique que las creaciones sean correctas
4. Vaya al Inventario, verifique las fichas importadas
5. Ajuste mapeos de campos o consulta de filtro si es necesario
6. Ejecute nuevamente hasta estar satisfecho
7. Cambie a modo CONSERVADOR para uso continuo
8. Después de varias ejecuciones exitosas, habilite Omitir Staging

Entender Dirección de Sincronización vs Dirección de Campo

Este es el concepto más comúnmente malentendido. Hay dos niveles de dirección que funcionan juntos:

Nivel de Tabla: Dirección de Sincronización

Se configura en el mapeo mismo. Controla qué operaciones de sincronización están disponibles en el Panel de Sincronización:

Dirección de Sincronización¿Botón Pull?¿Botón Push?Usar cuando...
ServiceNow -> CanopyNoCMDB es la fuente maestra, solo importa
Canopy -> ServiceNowNoLa herramienta EA enriquece CMDB con evaluaciones
BidireccionalAmbos sistemas contribuyen campos diferentes

Nivel de Campo: Dirección

Se configura por mapeo de campo. Controla qué valor del sistema gana durante una ejecución de sincronización:

Dirección del CampoDurante Pull (SNOW -> Turbo)Durante Push (Turbo -> SNOW)
SNOW lideraEl valor se importa desde ServiceNowEl valor se omite (no se envía)
Turbo lideraEl valor se omite (no se sobrescribe)El valor se exporta a ServiceNow

Cómo funcionan juntos — Ejemplo

Mapeo: Aplicación <-> cmdb_ci_business_app, Bidireccional

CampoDirecciónPull hace...Push hace...
nameTurbo lideraOmite (EA cura nombres)Envía nombre de EA -> SNOW
descriptionTurbo lideraOmite (EA escribe descripciones)Envía descripción -> SNOW
lifecycle.activeTurbo lideraOmite (EA gestiona ciclo de vida)Envía fecha de activación -> SNOW
attributes.businessCriticalityTurbo lideraOmite (evaluación de EA)Envía evaluación -> campo personalizado SNOW
attributes.ipAddressSNOW lideraImporta IP del descubrimientoOmite (dato operativo)
attributes.installStatusSNOW lideraImporta estado operativoOmite (dato ITSM)

Información clave: La dirección a nivel de tabla determina qué botones aparecen. La dirección a nivel de campo determina qué campos realmente se transfieren durante cada operación. Un mapeo bidireccional donde Canopy lidera la mayoría de campos y SNOW solo lidera campos operativos/técnicos es la configuración más potente.

Mejor Práctica: Dirección de Campo por Tipo de Dato

El valor predeterminado debe ser Turbo lidera para la gran mayoría de campos. Solo configure SNOW lidera para metadatos operativos y técnicos que provienen del descubrimiento automatizado o flujos de trabajo ITSM.

Categoría de DatoDirección RecomendadaJustificación
Nombres, etiquetas visiblesTurbo lideraEl equipo de EA cura nombres autorizados y limpios — los nombres de CMDB a menudo son autogenerados o inconsistentes
DescripciónTurbo lideraLas descripciones de EA capturan contexto estratégico, valor de negocio y significado arquitectónico
Criticidad de negocio (modelo TIME)Turbo lideraEvaluación central de EA — no datos operativos
Adecuación funcional/técnicaTurbo lideraPuntuación específica de EA y clasificación de hoja de ruta
Ciclo de vida (todas las fases)Turbo lideraPlan, puesta en marcha, activo, retirada gradual, fin de vida son todas decisiones de planificación de EA
Datos de costosTurbo lideraEA rastrea el costo total de propiedad y asignación de presupuesto
Tipo de alojamiento, clasificaciónTurbo lideraCategorización estratégica mantenida por arquitectos
Información de proveedorTurbo lideraEA gestiona estrategia de proveedores, contratos y riesgos — SNOW puede tener un nombre de proveedor pero EA posee la relación
Metadatos técnicos (SO, IP, hostname)SNOW lideraDatos de descubrimiento automatizado — EA no mantiene esto
Objetivos de SLA, métricas de disponibilidadSNOW lideraDatos operativos de flujos de trabajo ITSM
Estado de instalación, estado operativoSNOW lideraCMDB rastrea si un CI está instalado, retirado, etc.
Grupo de asignación, equipo de soporteSNOW lideraPropiedad operativa gestionada en ServiceNow
Metadatos de descubrimiento (primera/última vez visto)SNOW lideraMarcas de tiempo de automatización de CMDB

Omitir Staging — Cuándo usarlo

Por defecto, las sincronizaciones pull siguen un flujo de preparar-luego-aplicar:

Obtener -> Emparejar -> Transformar -> Comparar -> PREPARAR -> Revisar -> APLICAR

Los registros se escriben en una tabla de staging, permitiéndole revisar qué cambiará antes de aplicar. Esto es visible en el Panel de Sincronización bajo «Ver registros preparados».

Modo Omitir Staging

Cuando habilita Omitir Staging en un mapeo, los registros se aplican directamente:

Obtener -> Emparejar -> Transformar -> Comparar -> APLICAR DIRECTAMENTE

No se crean registros de staging — los cambios ocurren inmediatamente.

Staging (predeterminado)Omitir Staging
Paso de revisiónSí — inspeccionar diferencias antes de aplicarNo — los cambios se aplican inmediatamente
Tabla de registros de stagingPoblada con entradas de crear/actualizar/eliminarNo se puebla
Pista de auditoríaRegistros de staging + historial de eventosSolo historial de eventos
RendimientoLigeramente más lento (escribe filas de staging)Ligeramente más rápido
DeshacerPuede abortar antes de aplicarDebe revertir manualmente

Cuándo usar cada uno

EscenarioRecomendación
Primera importaciónUsar staging — Revise qué se crea antes de aplicar
Mapeo nuevo o modificadoUsar staging — Verifique que las transformaciones de campo produzcan salida correcta
Mapeo estable y bien probadoOmitir staging — No necesita revisar cada ejecución
Sincronizaciones diarias automatizadas (cron)Omitir staging — Las ejecuciones desatendidas no pueden esperar revisión
CMDB grande (10.000+ CIs)Omitir staging — Evita crear miles de filas de staging
Entorno sensible al cumplimientoUsar staging — Mantener pista de auditoría completa en tabla de staging

Mejor práctica: Comience con staging habilitado para sus primeras sincronizaciones. Una vez que tenga confianza en que el mapeo produce resultados correctos, habilite omitir staging para ejecuciones automatizadas.


Modos de Sincronización y Seguridad de Eliminación

Modos de Sincronización

ModoCreaActualizaEliminaMejor para
AditivoNuncaImportaciones iniciales, entornos de bajo riesgo
ConservadorSolo fichas creadas por sincronizaciónPredeterminado para sincronizaciones continuas
EstrictoTodas las fichas vinculadasEspejo completo de CMDB

Aditivo nunca elimina fichas de Canopy, haciéndolo la opción más segura para importaciones iniciales y entornos donde Canopy contiene fichas que no están presentes en ServiceNow (fichas creadas manualmente, fichas de otras fuentes).

Conservador (predeterminado) rastrea si cada ficha fue creada originalmente por el motor de sincronización. Solo esas fichas pueden ser auto-archivadas si desaparecen de ServiceNow. Las fichas creadas manualmente en Canopy o importadas de otras fuentes nunca se tocan.

Estricto archiva cualquier ficha vinculada cuyo CI correspondiente de ServiceNow ya no aparece en los resultados de la consulta, independientemente de quién la creó. Use esto solo cuando ServiceNow es la fuente absoluta de verdad y desea que Canopy lo refleje exactamente.

Ratio Máximo de Eliminación — Red de Seguridad

Como red de seguridad, el motor omite todas las eliminaciones si la cantidad excede el ratio configurado:

eliminaciones / total_vinculados > ratio_máximo_eliminación -> OMITIR TODAS LAS ELIMINACIONES

Ejemplo con 10 registros vinculados y umbral del 50%:

EscenarioEliminacionesRatioResultado
3 CIs eliminados normalmente3 / 10 = 30%Bajo el umbralLas eliminaciones proceden
6 CIs eliminados a la vez6 / 10 = 60%Sobre el umbralTodas las eliminaciones se omiten
SNOW devuelve vacío (interrupción)10 / 10 = 100%Sobre el umbralTodas las eliminaciones se omiten

Esto previene pérdida catastrófica de datos por cambios en consultas de filtro, interrupciones temporales de ServiceNow o nombres de tabla mal configurados.

Mejor práctica: Mantenga el ratio de eliminación al 50% o menos para tablas con menos de 100 registros. Para tablas grandes (1.000+), puede configurarlo de manera segura al 25%.

Progresión Recomendada

Semana 1: Modo ADITIVO, staging ACTIVADO, ejecutar manualmente, revisar cada registro
Semana 2-4: Modo CONSERVADOR, staging ACTIVADO, ejecutar diariamente, verificar resultados al azar
Mes 2+: Modo CONSERVADOR, staging DESACTIVADO (omitir), cron diario automatizado

Recetas Recomendadas por Tipo

Receta 1: Aplicaciones desde CMDB (Más Común)

Objetivo: Importar el paisaje de aplicaciones desde ServiceNow, luego tomar propiedad de nombres, descripciones, evaluaciones y ciclo de vida en Canopy. SNOW solo lidera campos operativos.

Mapeo:

ConfiguraciónValor
Tipo de FichaAplicación
Tabla SNOWcmdb_ci_business_app
DirecciónBidireccional
ModoConservador
Filtroactive=true^install_status=1

Mapeos de campos:

Campo CanopyCampo SNOWDirecciónTransformación¿ID?
namenameTurbo lideraDirecta
descriptionshort_descriptionTurbo lideraDirecta
lifecycle.activego_live_dateTurbo lideraFecha
lifecycle.endOfLiferetirement_dateTurbo lideraFecha
attributes.businessCriticalitybusines_criticalityTurbo lideraMapa de Valores
attributes.hostingTypehosting_typeTurbo lideraDirecta
attributes.installStatusinstall_statusSNOW lideraDirecta
attributes.ipAddressip_addressSNOW lideraDirecta

Configuración del mapa de valores para businessCriticality:

{
"mapping": {
"1 - most critical": "missionCritical",
"2 - somewhat critical": "businessCritical",
"3 - less critical": "businessOperational",
"4 - not critical": "administrativeService"
}
}

Consejo para la primera sincronización: En el primer pull, los valores de SNOW pueblan todos los campos (ya que las fichas aún no existen). Después de eso, los campos donde Turbo lidera son propiedad del equipo de EA — los pulls posteriores solo actualizan los campos operativos donde SNOW lidera (estado de instalación, IP), mientras el equipo de EA gestiona todo lo demás directamente en Canopy.

Después de la importación: Refine los nombres de aplicaciones, escriba descripciones estratégicas, mapee a Capacidades de Negocio, agregue evaluaciones de adecuación funcional/técnica y configure fases de ciclo de vida — todo esto ahora es propiedad de Canopy y se enviará de vuelta a ServiceNow en sincronizaciones push.


Receta 2: Componentes TI (Servidores)

Objetivo: Importar infraestructura de servidores para mapeo de infraestructura y análisis de dependencias. Los servidores son más operativos que las aplicaciones, así que más campos vienen de SNOW — pero Canopy aún lidera nombres y descripciones.

Mapeo:

ConfiguraciónValor
Tipo de FichaComponente TI
Tabla SNOWcmdb_ci_server
DirecciónBidireccional
ModoConservador
Filtroactive=true^hardware_statusNOT IN6,7

Mapeos de campos:

Campo CanopyCampo SNOWDirecciónTransformación¿ID?
namenameTurbo lideraDirecta
descriptionshort_descriptionTurbo lideraDirecta
attributes.manufacturermanufacturer.nameTurbo lideraDirecta
attributes.operatingSystemosSNOW lideraDirecta
attributes.ipAddressip_addressSNOW lideraDirecta
attributes.serialNumberserial_numberSNOW lideraDirecta
attributes.hostnamehost_nameSNOW lideraDirecta

Nota: Para servidores, los campos operativos/de descubrimiento como SO, IP, número de serie y hostname provienen naturalmente del descubrimiento automatizado de SNOW. Pero el equipo de EA aún posee el nombre visible (que puede diferir del hostname) y la descripción para contexto estratégico.

Después de la importación: Vincule Componentes TI a Aplicaciones usando relaciones, lo que alimenta el gráfico de dependencias e informes de infraestructura.


Receta 3: Productos de Software con Seguimiento EOL

Objetivo: Importar productos de software y combinar con la integración endoflife.date de Canopy. Canopy lidera en nombres, descripciones y proveedor — la versión es un campo factual donde SNOW puede liderar.

Mapeo:

ConfiguraciónValor
Tipo de FichaComponente TI
Tabla SNOWcmdb_ci_spkg
DirecciónBidireccional
ModoConservador
Filtroactive=true

Mapeos de campos:

Campo CanopyCampo SNOWDirecciónTransformación¿ID?
namenameTurbo lideraDirecta
descriptionshort_descriptionTurbo lideraDirecta
attributes.versionversionSNOW lideraDirecta
attributes.vendormanufacturer.nameTurbo lideraDirecta

Después de la importación: Vaya a Administración > EOL y use Búsqueda Masiva para emparejar automáticamente los Componentes TI importados contra productos de endoflife.date. Esto le brinda seguimiento automatizado de riesgo EOL que combina inventario CMDB con datos públicos de ciclo de vida.


Receta 4: Proveedores (Bidireccional)

Objetivo: Mantener el registro de proveedores sincronizado. Canopy posee nombres de proveedores, descripciones y contexto estratégico. SNOW complementa con datos de contacto operativos.

Mapeo:

ConfiguraciónValor
Tipo de FichaProveedor
Tabla SNOWcore_company
DirecciónBidireccional
ModoAditivo
Filtrovendor=true

Mapeos de campos:

Campo CanopyCampo SNOWDirecciónTransformación¿ID?
namenameTurbo lideraDirecta
descriptionnotesTurbo lideraDirecta
attributes.websitewebsiteTurbo lideraDirecta
attributes.contactEmailemailSNOW lideraDirecta

Por qué Turbo lidera la mayoría de campos: El equipo de EA cura la estrategia de proveedores, gestiona relaciones y rastrea riesgos — esto incluye el nombre visible del proveedor, descripción y presencia web. SNOW solo lidera datos de contacto operativos que pueden ser actualizados por equipos de adquisiciones o gestión de activos.


Receta 5: Enviar Evaluaciones de EA de Vuelta a ServiceNow

Objetivo: Exportar evaluaciones específicas de EA a campos personalizados de ServiceNow para que los equipos ITSM puedan ver el contexto de EA.

Mapeo:

ConfiguraciónValor
Tipo de FichaAplicación
Tabla SNOWcmdb_ci_business_app
DirecciónCanopy -> ServiceNow
ModoAditivo

Mapeos de campos:

Campo CanopyCampo SNOWDirecciónTransformación¿ID?
namenameSNOW lideraDirecta
attributes.businessCriticalityu_ea_business_criticalityTurbo lideraMapa de Valores
attributes.functionalSuitabilityu_ea_functional_fitTurbo lideraMapa de Valores
attributes.technicalSuitabilityu_ea_technical_fitTurbo lideraMapa de Valores

Importante: La sincronización push a campos personalizados (con prefijo u_) requiere que esas columnas ya existan en ServiceNow. Trabaje con su administrador de ServiceNow para crearlas antes de configurar el mapeo push. La cuenta de servicio necesita el rol import_admin para acceso de escritura.

Por qué esto importa: Los equipos ITSM ven evaluaciones de EA directamente en los flujos de trabajo de incidentes/cambios de ServiceNow. Cuando una aplicación «Misión Crítica» tiene un incidente, las reglas de escalación de prioridad pueden usar la puntuación de criticidad proporcionada por EA.


Referencia de Tipos de Transformación

Directa (predeterminada)

Pasa el valor sin cambios. Use para campos de texto que tienen el mismo formato en ambos sistemas.

Mapa de Valores

Traduce valores enumerados entre sistemas. Configure con un mapeo JSON:

{
"mapping": {
"1": "missionCritical",
"2": "businessCritical",
"3": "businessOperational",
"4": "administrativeService"
}
}

El mapeo se invierte automáticamente al enviar de Canopy a ServiceNow. Por ejemplo, durante push, "missionCritical" se convierte en "1".

Formato de Fecha

Trunca valores datetime de ServiceNow (2024-06-15 14:30:00) a solo fecha (2024-06-15). Use para fechas de fase de ciclo de vida donde la hora es irrelevante.

Booleano

Convierte entre booleanos de cadena de ServiceNow ("true", "1", "yes") y booleanos nativos. Útil para campos como «is_virtual», «active», etc.


Mejores Prácticas de Seguridad

Gestión de Credenciales

PrácticaDetalles
Cifrado en reposoTodas las credenciales cifradas vía Fernet (AES-128-CBC) derivado de SECRET_KEY. Si rota SECRET_KEY, vuelva a ingresar todas las credenciales de ServiceNow.
Privilegio mínimoCree una cuenta de servicio SNOW dedicada con acceso de solo lectura a tablas específicas. Solo otorgue acceso de escritura si usa sincronización push.
OAuth 2.0 preferidoAuth Básica envía credenciales en cada llamada API. OAuth usa tokens de corta duración con restricciones de alcance.
Rotación de credencialesRote contraseñas o secretos de cliente cada 90 días.

Seguridad de Red

PrácticaDetalles
HTTPS obligatorioLas URLs HTTP se rechazan en tiempo de validación. Todas las conexiones deben usar HTTPS.
Validación de nombre de tablaLos nombres de tabla se validan contra ^[a-zA-Z0-9_]+$ para prevenir inyección.
Validación de sys_idLos valores sys_id se validan como cadenas hexadecimales de 32 caracteres.
Lista de IPs permitidasConfigure el Control de Acceso por IP de ServiceNow para solo permitir la IP de su servidor Canopy.

Control de Acceso

PrácticaDetalles
Controlado por RBACLos endpoints de ServiceNow de solo lectura requieren el permiso servicenow.view; todos los cambios requieren servicenow.manage.
Pista de auditoríaTodos los cambios creados por sincronización publican eventos con source: "servicenow_sync", visibles en el historial de fichas.
Sin exposición de credencialesLas contraseñas y secretos nunca se devuelven en respuestas API.

Lista de Verificación para Producción

  • Cuenta de servicio dedicada de ServiceNow (no una cuenta personal)
  • OAuth 2.0 con otorgamiento de credenciales de cliente
  • Calendario de rotación de credenciales (cada 90 días)
  • Cuenta de servicio restringida solo a tablas mapeadas
  • Lista de IPs permitidas de ServiceNow configurada para la IP del servidor Canopy
  • Ratio máximo de eliminación configurado al 50% o menos
  • Ejecuciones de sincronización monitoreadas por conteos inusuales de errores o eliminaciones
  • Consultas de filtro incluyen active=true como mínimo

Manual de Operaciones

Secuencia de Configuración Inicial

1. Crear cuenta de servicio de ServiceNow con los roles mínimos requeridos
2. Verificar conectividad de red (¿puede Canopy alcanzar SNOW por HTTPS?)
3. Crear conexión en Canopy y probarla
4. Verificar que los tipos del metamodelo tengan todos los campos que desea sincronizar
5. Crear primer mapeo con modo ADITIVO, staging ACTIVADO
6. Usar el botón Vista Previa (vía API) para verificar que el mapeo produzca salida correcta
7. Ejecutar primera sincronización pull — revisar registros de staging en el Panel de Sincronización
8. Aplicar registros de staging
9. Verificar fichas importadas en el Inventario
10. Ajustar mapeos de campos si es necesario, volver a ejecutar
11. Cambiar mapeo a modo CONSERVADOR para uso continuo
12. Después de varias ejecuciones exitosas, habilitar Omitir Staging para automatización

Operaciones Continuas

TareaFrecuenciaCómo
Ejecutar sincronización pullDiaria o semanalPanel de Sincronización > botón Pull (o cron)
Revisar estadísticas de sincronizaciónDespués de cada ejecuciónVerificar conteos de errores/eliminaciones
Probar conexionesMensualHacer clic en botón de prueba en cada conexión
Rotar credencialesTrimestralActualizar en SNOW y Canopy
Revisar mapa de identidadTrimestralVerificar entradas huérfanas vía estadísticas de sincronización
Auditar historial de fichasSegún necesidadFiltrar eventos por fuente servicenow_sync

Configurar Sincronizaciones Automatizadas

Las sincronizaciones se pueden iniciar vía API para automatización:

# Sincronización pull diaria a las 2:00 AM
0 2 * * * curl -s -X POST \
-H "Authorization: Bearer $TURBOEA_TOKEN" \
"https://canopy.empresa.com/api/v1/servicenow/sync/pull/$MAPPING_ID" \
>> /var/log/canopy-sync.log 2>&1

Mejor práctica: Ejecute sincronizaciones durante horas de baja actividad. Para tablas CMDB grandes (10.000+ CIs), espere de 2 a 5 minutos dependiendo de la latencia de red y la cantidad de registros.

Planificación de Capacidad

Tamaño de CMDBDuración EsperadaRecomendación
< 500 CIs< 30 segundosSincronizar diariamente, staging opcional
500-5.000 CIs30s - 2 minutosSincronizar diariamente, omitir staging
5.000-20.000 CIs2-5 minutosSincronizar cada noche, omitir staging
20.000+ CIs5-15 minutosSincronizar semanalmente, usar consultas de filtro para dividir

Solución de Problemas

Problemas de Conexión

SíntomaCausaSolución
Connection failed: [SSL]Certificado autofirmado o expiradoAsegúrese de que SNOW use un certificado de CA pública válido
HTTP 401: UnauthorizedCredenciales incorrectasVuelva a ingresar usuario/contraseña; verifique que la cuenta no esté bloqueada
HTTP 403: ForbiddenRoles insuficientesOtorgue itil y cmdb_read a la cuenta de servicio
Connection failed: timed outBloqueo de firewallVerifique reglas; agregue la IP de Canopy a la lista permitida de SNOW
Prueba OK pero sincronización fallaPermisos a nivel de tablaOtorgue acceso de lectura a la tabla CMDB específica

Problemas de Sincronización

SíntomaCausaSolución
0 registros obtenidosTabla o filtro incorrectoVerifique nombre de tabla; simplifique consulta de filtro
Todos los registros son «crear»Error de identidadMarque name como identidad; verifique que los nombres coincidan entre sistemas
Conteo alto de erroresFallos de transformaciónRevise registros de staging para mensajes de error
Eliminaciones omitidasRatio excedidoAumente umbral o investigue por qué desaparecieron los CIs
Cambios no visiblesCaché del navegadorRecargue la página; verifique historial de ficha para eventos
Fichas duplicadasMúltiples mapeos para el mismo tipoUse un mapeo por tipo de ficha por conexión
Cambios push rechazadosPermisos SNOW faltantesOtorgue rol import_admin a la cuenta de servicio

Herramientas de Diagnóstico

# Vista previa de cómo se mapearán los registros (5 muestras, sin efectos secundarios)
POST /api/v1/servicenow/mappings/{mapping_id}/preview

# Explorar tablas en la instancia SNOW
GET /api/v1/servicenow/connections/{conn_id}/tables?search=cmdb

# Inspeccionar columnas de una tabla
GET /api/v1/servicenow/connections/{conn_id}/tables/cmdb_ci_business_app/fields

# Filtrar registros de staging por acción o estado
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=create
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=update
GET /api/v1/servicenow/sync/runs/{run_id}/staged?status=error

Referencia Rápida de la API

Todos los endpoints requieren Authorization: Bearer <token>. Los endpoints de solo lectura necesitan el permiso servicenow.view; los de modificación necesitan servicenow.manage. Ruta base: /api/v1.

Conexiones

MétodoRutaDescripción
GET/servicenow/connectionsListar conexiones
POST/servicenow/connectionsCrear conexión
GET/servicenow/connections/{id}Obtener conexión
PATCH/servicenow/connections/{id}Actualizar conexión
DELETE/servicenow/connections/{id}Eliminar conexión + todos los mapeos
POST/servicenow/connections/{id}/testProbar conectividad
GET/servicenow/connections/{id}/tablesExplorar tablas SNOW
GET/servicenow/connections/{id}/tables/{table}/fieldsListar columnas de tabla

Mapeos

MétodoRutaDescripción
GET/servicenow/mappingsListar mapeos con mapeos de campos
POST/servicenow/mappingsCrear mapeo con mapeos de campos
GET/servicenow/mappings/{id}Obtener mapeo con mapeos de campos
PATCH/servicenow/mappings/{id}Actualizar mapeo (reemplaza campos si se proporcionan)
DELETE/servicenow/mappings/{id}Eliminar mapeo
POST/servicenow/mappings/{id}/previewVista previa de prueba (5 registros de muestra)

Operaciones de Sincronización

MétodoRutaDescripción
POST/servicenow/sync/pull/{mapping_id}Sincronización pull (?auto_apply=true predeterminado)
POST/servicenow/sync/push/{mapping_id}Sincronización push
GET/servicenow/sync/runsListar historial de sincronización (?limit=20)
GET/servicenow/sync/runs/{id}Obtener detalles de ejecución + estadísticas
GET/servicenow/sync/runs/{id}/stagedListar registros de staging de una ejecución
POST/servicenow/sync/runs/{id}/applyAplicar registros de staging pendientes