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 / location1companiesBootstrap inicial
Users~6usersMapping 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)variabletasksMapping directo
Appointments (por contacto)variable⏸️TODO — ver todo.md
Opportunities51,495opportunitiesMapping 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
WorkflowsvariosNo se migra (lógica de automatización propia de GHL)
CampaignsvariosNo 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 / WebsitesBuilder propio de GHL
Memberships / CoursesProducto distinto
Affiliate managerProducto distinto
Invoices / PaymentsTrebol no usa esto en GHL (verificar)
Products0Trebol 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 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.