Fecha de actualización: 2026-04-08
Objetivo: describir, en lenguaje usable para Marketplace y review técnico, cómo circulan los datos entre Zoho CRM, el middleware de TDIGITAL Sync for Zoho & SAPB1, PostgreSQL y SAP Business One.
Componentes
Zoho CRM Extension- widget embebido
- Functions Deluge
- triggers de instalación y acciones del usuario
Middleware de TDIGITAL Sync for Zoho & SAPB1- API Node.js multi-tenant
- repositorios y servicios de negocio
PostgreSQL- persistencia de tenants, usuarios, onboarding, suscripciones, auditoría e idempotencia
SAP Business One Service Layer- interfaz autorizada para operar contra SAP
Principio rector
La extensión no debe exponer secretos ni ejecutar lógica sensible directamente en el frontend. El widget y Deluge actúan como capa de interacción con Zoho CRM; la lógica persistente y la integración externa se concentran en el middleware.
Flujo 1. Instalación y arranque del onboarding
- un administrador instala la extensión en Zoho CRM
- Zoho ejecuta
post-install post_install.delugeresuelvezohoOrgId, intenta resolver datos del instalador y llamaPOST /api/v1/onboarding/start- el middleware valida headers operativos:
X-Correlation-IdIdempotency-Key
- el middleware crea o reutiliza:
tenantzoho_orgen plataforma como catálogo de bootstraponboarding_sessionuseruser_tenant_membership
- el middleware provisiona automáticamente la tenant DB primaria
- el middleware aplica la última versión publicada de
initial_versionmediante gobernanza - el middleware crea o actualiza
zoho_orgstenant-local como fuente operativa del OAuth por org - el middleware registra idempotencia, logging y auditoría administrativa
Datos que entran al middleware en esta fase:
zohoOrgIdinstallerUserIdinstallerEmailinstallerDisplayNamesource=post_install- metadata de versión y contexto de instalación
oauthopcional cuando el post-install ya dispone de:clientIdclientSecretaccessTokenrefreshTokenaccountsBaseUrlapiDomainaccessTokenExpiresAtscope
Persistencia principal involucrada:
tenantszoho_orgs- tenant DB primaria del tenant
zoho_orgstenant-localonboarding_sessionsusersuser_tenant_membershipsidempotency_keysadmin_audit_events
Flujo 2. Reanudación desde el Settings Widget
- el usuario abre el Settings Widget
- el widget ejecuta
ZOHO.embeddedApp.init() - el widget obtiene contexto de usuario y org desde Zoho CRM
- el widget invoca la Function
onboarding_status - Deluge llama
GET /api/v1/onboarding/status - el middleware reevalúa el acceso del administrador actual y responde el estado del onboarding
Datos que entran al middleware:
zohoOrgIdzohoUserIdzohoUserEmailsource=widget_statusX-Correlation-Id
Datos que vuelven al widget:
currentStepnextSteptenantsubscriptionpanelAccessavailablePlans
Flujo 3. Selección de plan
- el usuario confirma o cambia el plan desde el widget
- el widget invoca la Function
onboarding_plan - Deluge llama
POST /api/v1/onboarding/plan - el middleware actualiza tenant y suscripción
- el middleware vuelve a reconciliar el acceso del administrador
- se registra auditoría y contexto de correlación
Datos que entran al middleware:
onboardingSessionIdzohoOrgIdzohoUserIdzohoUserEmailplanCodeperiodTypetenantProfilesource=widget_planX-Correlation-IdIdempotency-Key
Persistencia principal involucrada:
subscriptionstenantsonboarding_sessionsidempotency_keysadmin_audit_events
Flujo 4. Acceso al panel y autenticación
- el usuario accede a
/ui/login - puede autenticarse con:
- usuario + clave
- OTP por email
- OTP por WhatsApp
- el backend valida identidad y memberships
- la UI obtiene contexto con
GET /api/v1/auth/me
Persistencia principal involucrada:
usersuser_tenant_membershipsauth_otp_challengesauth_otp_eventsadmin_audit_events
Datos personales y operativos asociados:
- estado de usuario
- memberships
ip_addressuser_agent- metadatos del challenge OTP
Flujo 5. Operación objetivo de integración con SAP Business One
El objetivo funcional del producto es:
- Zoho CRM dispara evento o acción del usuario
- Deluge o el widget envían el payload controlado al middleware
- el middleware valida tenant, plan y contexto
- el middleware transforma y enruta la operación
- el middleware llama a SAP Business One exclusivamente vía Service Layer
- el middleware registra trazabilidad y resultado
Datos que pueden circular en esta fase, según módulos activados:
- identificadores de registros CRM
- payloads transformados
- datos maestros o transaccionales definidos por el módulo y el mapping activo
- logs y eventos de ejecución
Qué datos se almacenan y qué datos no
Se almacenan:
- contexto de tenant, org y usuario
- auditoría, correlación e idempotencia
- configuración y metadata de onboarding
- suscripciones y estados operativos
- datos de autenticación y seguridad necesarios para operar el servicio
No deben almacenarse en el frontend:
- secretos
- tokens sensibles en claro expuestos al usuario final
- credenciales SAP en el widget
Controles de seguridad relevantes
HTTPSobligatorio en integraciones externasIdempotency-Keyen operaciones mutables críticas de onboardingX-Correlation-Idpara trazabilidad- segregación multi-tenant en repositorios y servicios
- auditoría administrativa en eventos relevantes
- uso exclusivo de SAP Business One Service Layer para acceso a SAP
Documentos relacionados
- zoho-extension.md
- auth-otp.md
- data-disclosure.md
- compatibility-matrix.md