FrancodesystemsFrancodesystems
CRMIntegración a medida

Cómo conectar Odoo con HubSpot

HubSpot y Odoo conectados: del deal ganado al pedido de venta, con el estado de vuelta en el CRM.

Por Juan Cantón Rodríguez · Actualizado el

Solicitar esta integración
Odoo
↔
HubSpot

Tiempo de implantación · 7-15 días laborables

Diagnóstico

El problema

Comercial cierra en HubSpot y operaciones ejecuta en Odoo, pero entre los dos hay un salto manual: alguien recrea el cliente y el pedido en el ERP, los contactos se duplican o se desincronizan, y cuando el cliente pregunta por su pedido el comercial no sabe si se ha enviado o cobrado sin ir a molestar a otro departamento. Datos que deberían ser uno solo viven en dos sitios y nunca cuadran del todo.

Propuesta

La solución

Conectamos HubSpot con Odoo para que un deal ganado se convierta en pedido de venta y cliente en el ERP, los contactos se sincronicen entre ambos, y el estado de pedido y pago vuelva al CRM para que comercial lo vea sin salir de HubSpot. Aprovechamos que Odoo es open source y modular: nos integramos con los módulos que ya usas (CRM, Sales, Accounting) vía API externa (XML-RPC/JSON-RPC) o módulo propio, respetando tus reglas de negocio.

Scope

Qué automatizamos

  • Cada deal ganado en HubSpot crea el cliente y el pedido de venta en Odoo con sus líneas.
  • Contactos sincronizados entre HubSpot y Odoo, con reglas de deduplicación y una sola verdad.
  • El estado de pedido (preparación, envío) vuelve a HubSpot para que comercial lo vea.
  • El estado de pago y facturación de Odoo se refleja en la ficha del deal.
  • Mapeo de propiedades y campos personalizados entre CRM y ERP según tu proceso.
  • Idempotencia: los reintentos de webhook de HubSpot no duplican clientes ni pedidos.
Para quién encaja

Casos de uso típicos

Perfiles en los que la integración Odoo ↔ HubSpot suele encajar y qué cambia con ella. Son ejemplos ilustrativos, no clientes concretos.

Ejemplo 01

B2B que vende en HubSpot y ejecuta en Odoo

Antes: Cada deal ganado se recreaba a mano como pedido en el ERP, con retrasos y errores.

Después: El deal ganado genera cliente y pedido en Odoo al instante, sin copiar nada.

Ejemplo 02

Equipo comercial que no ve el estado del pedido

Antes: El comercial tenía que preguntar a operaciones si un pedido se había enviado o cobrado.

Después: El estado de pedido y pago vuelve a HubSpot y comercial responde al cliente solo.

Ejemplo 03

Empresa con contactos duplicados entre CRM y ERP

Antes: Los mismos clientes vivían por duplicado en HubSpot y Odoo y nunca cuadraban.

Después: Contactos sincronizados y deduplicados; una sola verdad en los dos sistemas.

Antes / Después

Qué cambia exactamente

El día a día sin la integración y con ella, lado a lado.

✕

Sin la integración

  • El deal ganado recreado a mano como pedido en Odoo.
  • Contactos duplicados y desincronizados entre CRM y ERP.
  • Comercial preguntando a operaciones por cada pedido.
  • Datos que deberían ser uno solo viviendo en dos sitios.
✓

Con la integración

  • Del deal ganado al pedido de venta en Odoo, automático.
  • Contactos sincronizados y deduplicados por email y por NIF o dominio.
  • Estado de pedido y pago de vuelta en HubSpot.
  • Una sola verdad compartida entre comercial y operaciones.
Arquitectura

Cómo lo construimos

Integramos vía la API externa de Odoo (XML-RPC/JSON-RPC) o módulo propio según el caso, con una cola idempotente que procesa los webhooks de HubSpot y llama a la API de HubSpot para devolver estados. Mapeamos deals, contactos y propiedades a tus módulos reales de Odoo y respetamos tus reglas existentes en lugar de imponer un connector cerrado.

flow.ts
webhook hubspot.event
→ queue.enqueue(jobId)
→ worker.handle() // idempotente
→ odoo.api.call() // retries con backoff
→ log.emit({ status: 'ok' })
Opciones

¿Qué conectores hay para Odoo y HubSpot?

Todas las opciones que existen, no solo la nuestra. Si tu caso lo resuelve un módulo de 50 €, cógelo: te lo decimos aquí antes de que nos escribas.

OficialGratis (requiere las suscripciones de HubSpot y de Odoo)

Data Sync de HubSpot (app certificada para Odoo)

La hace la propia HubSpot y es gratuita. Sincroniza en uno o dos sentidos contactos, empresas, productos y actividades, y lleva los leads de Odoo a contactos y las oportunidades a deals, con mapeo de campos por defecto. Si lo que necesitas es que comercial vea en HubSpot los mismos clientes y oportunidades que en Odoo, probablemente baste con esto y no nos necesitas.

Dónde se queda corto: No toca pedidos de venta ni facturas, así que el paso de deal ganado a pedido en Odoo y el estado de cobro de vuelta en HubSpot se quedan fuera. Mapear campos personalizados exige Data Hub Starter o superior. HubSpot la anuncia para Odoo en la nube, versión 10 o superior, y conecta por la API de Odoo: compruébalo antes con tu edición y tu plan.

De terceros

Módulos de terceros en Odoo Apps (echoBitz, Zehntech, Cybrosys, Bac Ha y otros)

Se instalan dentro de Odoo y hablan directamente con la API de HubSpot. Los más completos sincronizan en ambos sentidos contactos, empresas, deals contra oportunidades y, alguno, presupuestos (sale.order), productos y usuarios.

Dónde se queda corto: No se pueden instalar en Odoo Online: solo en Odoo.sh o en servidor propio. Cada uno publica sus versiones de Odoo compatibles y sus dependencias (algunos piden tener Contabilidad y Ventas instalados, o crear propiedades propias en HubSpot), y casi todos llevan licencia propietaria OPL-1. Hay que revisar cobertura y mantenimiento por versión antes de comprar.

De terceros

Zapier, Make o n8n

Flujos sencillos sin programar: un lead de Odoo que crea un contacto en HubSpot, una oportunidad que se actualiza al cambiar de etapa. El nodo de Odoo de n8n trabaja con contactos, oportunidades, notas y cualquier modelo vía recurso personalizado.

Dónde se queda corto: Los módulos de Odoo en estas plataformas cubren pocas operaciones (en Zapier, la app Odoo CRM se centra en leads y búsqueda de contactos), así que para pedidos o facturas toca tirar de llamadas a la API. Sin control de duplicados ni de bucles salvo que lo construyas tú, y dependen igualmente de la API externa de Odoo.

A medida

Integración a medida

Contra la API externa de Odoo (JSON-2 desde Odoo 19, XML-RPC/JSON-RPC en versiones anteriores) y la API de HubSpot, con cola idempotente y control de rate limit. Es la vía cuando el deal ganado tiene que convertirse en pedido de venta con sus líneas, cuando el estado de entrega y cobro debe volver al deal o cuando el proceso comercial no cabe en el mapeo por defecto.

Lo que nadie te cuenta

Qué se rompe al conectar Odoo con HubSpot

Los fallos que aparecen de verdad, casi siempre semanas después de dar la integración por buena.

  1. 01

    En Odoo Online Standard no hay API

    Odoo solo da acceso a la API externa en el plan Custom (y en Odoo.sh o autoalojado), y en Odoo Online no se pueden instalar módulos de terceros con código Python. Con Odoo Online en plan Standard ninguna de las opciones de arriba funciona tal cual. Es lo primero que hay que mirar, antes de elegir conector.

  2. 02

    Empresas y personas no se modelan igual

    En Odoo empresas y personas son el mismo modelo (res.partner), con la persona colgando de su empresa. En HubSpot son objetos distintos unidos por asociaciones. Si el mapeo no respeta esa jerarquía, aparecen personas sin empresa, empresas duplicadas como contacto o asociaciones que se pierden en un sentido.

  3. 03

    HubSpot no deduplica empresas creadas por API

    HubSpot deduplica contactos por email y empresas por dominio, pero las empresas creadas por API, incluidas las de apps de sincronización, no se deduplican por dominio. Si la integración no busca antes de crear, cada sincronización puede dejar otra copia de la misma empresa. En Odoo pasa lo mismo: no hay una clave única que lo impida por defecto.

  4. 04

    Un deal no es un pedido

    Un deal de HubSpot corresponde a una oportunidad de Odoo (crm.lead), no a un pedido de venta. El pedido, con sus productos, precios e impuestos, es otro objeto (sale.order). Hay que decidir en qué etapa nace el pedido, de dónde salen las líneas y qué pasa si el deal se reabre después de crearlo.

  5. 05

    Propietarios y comerciales

    El propietario de HubSpot y el comercial de Odoo son usuarios de sistemas distintos. Si no se mapean uno a uno (normalmente por email), los registros llegan sin asignar o se asignan al usuario de la integración, y los informes por comercial dejan de cuadrar.

  6. 06

    Bucles en la sincronización bidireccional

    Si Odoo actualiza HubSpot y ese cambio dispara otra actualización hacia Odoo, el registro rebota sin fin o se pisan los cambios. Hace falta decidir qué sistema manda en cada campo y marcar los cambios hechos por la propia integración para ignorarlos al volver.

  7. 07

    Límites de la API de HubSpot

    Una app privada tiene un tope de peticiones cada 10 segundos y otro diario por cuenta, más bajos en Free y Starter que en Professional y Enterprise. La carga inicial de todo el histórico es donde se alcanzan: si la integración no respeta los 429 y no reintenta con espera, se pierden registros por el camino.

  8. 08

    Webhooks que no llegan a tiempo

    HubSpot reintenta un webhook fallido hasta 10 veces durante 24 horas y después lo descarta. Si el receptor tarda más de 5 segundos o está caído más de un día, el cambio no llega nunca a Odoo. Conviene responder rápido, encolar y tener una reconciliación periódica que detecte lo que falte.

  9. 09

    Consentimiento y contactos de marketing

    Sincronizar toda la base de clientes de Odoo hacia HubSpot no convierte a esos contactos en destinatarios legítimos de campañas. Las bajas y la lista de exclusión de Odoo tienen que viajar con ellos. Además, HubSpot crea por defecto como no marketing los contactos que entran por una integración, y marcarlos como marketing afecta a lo que pagas.

FAQ

Preguntas frecuentes

¿Odoo Online (SaaS), Community o Enterprise?

Trabajamos con las tres. Con Community y Enterprise autoalojados tenemos más margen (módulos propios); con Odoo Online usamos la API externa, que Odoo solo abre en el plan Custom. Lo adaptamos a tu edición.

¿En qué momento se crea el pedido en Odoo?

Normalmente cuando el deal pasa a ganado, pero lo atamos a la etapa del pipeline que tú decidas para que encaje con tu proceso comercial.

¿Devuelve el estado de pedido y pago a HubSpot?

Sí. El estado de preparación, envío, facturación y pago de Odoo se refleja en la ficha del deal, para que comercial responda al cliente sin salir del CRM.

¿Cómo evita contactos duplicados?

Emparejamos por email o por un identificador que definas, y aplicamos reglas de deduplicación para que un contacto sea uno solo en ambos sistemas.

Francodesystems

¿Hablamos de tu integración con HubSpot?

Llamada de 30 minutos sin compromiso. Salimos con alcance y precio.