Skip to content

Compatibilidad de módulos ​

Análisis hecho contra las 44,918 contactos / 51,495 oportunidades / 44,909 conversaciones reales de Trebol Insurance.

Leyenda:

  • ✅ Existe en ambos — mapping directo
  • ⚠️ Existe pero distinto — requiere transformación
  • 🆕 Solo en GHL — hay que crear colección nueva en imcrmdev
  • ❌ Solo en imcrmdev — quedará vacío (campo del CRM destino sin origen)

Resumen por módulo ​

Módulo GHLVolumenDestino imcrmdevEstadoNotas
Sub-account / location1companies✅Bootstrap inicial
Users~6users✅Mapping directo
Custom Field definitions (catálogo)227—⏸️TODO — ver todo.md. El script SÍ lee las definiciones en runtime para resolver IDs a keys legibles, pero NO persiste el catálogo.
Custom Valuesvarioscustom_values🆕Colección nueva
Tagsdocenastags🆕Colección nueva
Pipelines (ventas)27sales_pipelines🆕El service_pipelines actual es para tickets, no se reutiliza
Pipeline stages~250sales_pipeline_stages🆕Colección nueva
Contacts (persona)44,918contacts_new (service_type=residential)✅Mapping rico
Businesses (B2B Companies)6contacts_new (service_type=corporate)✅Convención del destino: "company" = contacto corporate. Solo 0.01% de contactos persona tienen businessId set. Vínculo persona→business via custom_fields.parent_business_external_id.
Notes (por contacto)variablecontacts_new.notes[]✅Embebido
Tasks (por contacto)variabletasks✅Mapping directo
Appointments (por contacto)variable—⏸️TODO — ver todo.md
Opportunities51,495opportunities✅Mapping completo
Conversations44,909conversations🆕Colección nueva
Messages~450kmessages🆕Colección nueva
Calendars (catálogo)múltiples—⏸️TODO — ver todo.md
Calendar eventsvariable—⏸️TODO — ver todo.md
Formsvariosforms🆕Colección nueva
Form submissionsvariableform_submissions🆕Colección nueva
Workflowsvarios—❌No se migra (lógica de automatización propia de GHL)
Campaignsvarios—❌No se migra
Email/SMS templatesvariosemail_templates⚠️Solo email; SMS no tiene destino
Phone numbers (Twilio sub)——❌Configuración de telefonía propia de GHL
Funnels / Websites——❌Builder propio de GHL
Memberships / Courses——❌Producto distinto
Affiliate manager——❌Producto distinto
Invoices / Payments——❌Trebol no usa esto en GHL (verificar)
Products0—❌Trebol no tiene productos en GHL — endpoint regresa lista vacía

Campos del destino que no se llenan (porque GHL no los tiene) ​

Estos vienen del modelo SEMTEC (ISP) y para Trebol (insurance) van vacíos:

contacts_new ​

CampoPor qué
billing_account_id, account_idISP-specific
linked_status, network_statusISP-specific
network_information[]ISP equipos de red
onus[]ONU/equipos de fibra
contract_info[]ISP contratos

service_type sí se llena: residential para contactos persona, corporate para businesses migrados desde GHL.

opportunities ​

CampoPor qué
serviceBundleISP bundles de internet/TV
installationSLAISP instalación
mrcTypeRecurring revenue (telecoms)

Otros ​

  • contracts, contract_lists, contract_statuses — sin uso para insurance
  • products — Trebol no vende productos de catálogo en GHL en este modo
  • devices, network_alerts, access_technologies — telecom-only
  • service_pipelines (tickets) — Trebol usa pipelines de ventas, no de tickets

Campos de GHL que no tienen destino (se preservan en _ghl_raw) ​

Para cero pérdida, cada doc migrado guarda el JSON original de GHL en un campo _ghl_raw. Esto cubre:

  • contact.followers[] (no hay concepto de followers en imcrm)
  • contact.attributionSource, lastAttributionSource (atribución de marketing)
  • opportunity.relations[] aparte del primary contact (vínculos N-N)
  • conversation.scoring[]
  • Cualquier custom field nuevo creado después de la migración inicial

Si más adelante imcrmdev gana esos conceptos, basta correr un script ligero que lea _ghl_raw de cada doc y populate los campos nuevos — sin volver a tocar GHL.