Odoo CRM est rarement isolé: il dialogue avec ventes, facturation, comptabilité, logistique et parfois outils tiers. Sans cadre d'intégration, les flux dérivent vite: leads dupliqués, partenaires incomplets, et statuts d'opportunité qui ne reflètent plus la réalité commerciale.
Le SDK Odoo CRM sous Symfony sert à stabiliser ce paysage: conventions de mapping, orchestration fiable, idempotence et observabilité. On transforme des scripts opportunistes en couche d'intégration durable.
Un CTO attend d'un connecteur CRM qu'il soit prévisible: incidents rares, diagnostics rapides, reprises propres et gouvernance claire des évolutions.
L'objectif n'est pas de "faire passer un call", mais d'assurer un système fiable à long terme, même lorsque les flux et les règles métier évoluent.
Symfony fournit le cadre de référence: injection de dépendances, config par environnement, workers asynchrones, gestion de secrets, policies de retries/timeouts, monitoring instrumenté.
final class OdooCrmSdkKernel
{
public function __construct(
private OdooAuthProvider $auth,
private OdooRpcClient $rpc,
private OdooErrorMapper $errors,
private OdooTelemetry $telemetry
) {}
}
Les entités pivots sont `crm.lead` (lead/opportunity), `res.partner` (contacts/sociétés), les stages de pipeline et les activités associées.
La qualité d'intégration dépend de la cohérence entre ces entités: rattachement partner fiable, stage correct, et journal d'activités complet pour le suivi commercial.
Selon version et contexte d'hébergement, Odoo expose XML-RPC et/ou JSON-RPC. Les deux reposent sur `execute_kw` mais diffèrent par le transport et les conventions d'appel.
Le SDK masque cette variabilité: les services métier appellent une API interne stable, quelle que soit la couche RPC effectivement utilisée.
L'auth Odoo s'appuie sur base, utilisateur, mot de passe (ou token), et contexte d'exécution. En production, nous imposons comptes techniques minimaux, séparation d'environnements, et rotation contrôlée des accès.
POST /jsonrpc HTTP/1.1
Host: [ODOO_HOST]
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "common",
"method": "authenticate",
"args": ["[DB]", "[LOGIN]", "[PASSWORD]", {}]
},
"id": 1
}
Exemples illustratifs réalistes en JSON-RPC, à adapter à votre modèle Odoo.
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"[DB]",
12,
"[PASSWORD]",
"crm.lead",
"create",
[
{
"name": "MKT-2026-0189",
"type": "lead",
"email_from": "lea.martin@acme.fr",
"phone": "+33153402010"
}
]
]
},
"id": 2
}
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"[DB]",
12,
"[PASSWORD]",
"res.partner",
"create",
[
{
"name": "ACME Distribution",
"email": "lea.martin@acme.fr",
"phone": "+33153402010"
}
]
]
},
"id": 3
}
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"[DB]",
12,
"[PASSWORD]",
"crm.lead",
"write",
[[1457], {"stage_id": 23}]
]
},
"id": 4
}
Nous distinguons systématiquement obligations techniques et exemples.
Contractuel:
- endpoint RPC, auth, méthode execute_kw
- modèles ciblés et champs requis
Illustratif:
- valeurs d'exemple
- mappings custom de démonstration
- scénarios simplifiés
Les événements peuvent être rejoués; sans idempotence, les transitions de stage dérivent. Le SDK impose des clés de déduplication et des règles de progression métier explicites.
Clé idempotente type:
crm:odoo:[model]:[external_id]:[source_timestamp]
Les erreurs sont classées (`technical`, `contract`, `business`, `security`) et traitées selon une matrice claire.
- technical: retry borné + backoff
- contract: correction payload
- business: validation fonctionnelle
- security: rotation accès / escalade
La couverture inclut création lead/partner, transition stage, erreurs de validation, timeout RPC, rejeu idempotent, et réconciliation des données CRM/SI.
Matrice minimale:
1) create lead + partner
2) transition stage nominale
3) erreur de stage/validation
4) timeout + retry borné
5) rejeu idempotent
6) resync lot et contrôle d'écarts
Références: Tests API et Postman.
Les KPI pilotent latence RPC, erreurs, reprises et écarts de réconciliation.
Métriques recommandées:
- odoo_rpc_call_duration_ms{model,method}
- odoo_error_total{class}
- odoo_retry_total{reason}
- replay_queue_size{flow}
- reconciliation_gap_total{model}
Les runbooks décrivent procédures de reprise, seuils d'alerte et escalade. Voir: Observabilité API et runbooks.
Semaine 1: cadrage flux, mapping champs, règles de pipeline.
Semaine 2: socle SDK + auth + gestion d'erreurs + tests initiaux.
Semaine 3: implémentation lead/partner + idempotence.
Semaine 4: transitions pipeline + activités + runbooks.
Semaine 5: non-régression, volumétrie, hardening.
Semaine 6: recette, déploiement progressif, monitoring renforcé.
Cas type: lead entrant web enrichi ERP, création partner, qualification lead et passage en opportunité. Le SDK garantit ordre métier, traçabilité et reprise idempotente.
Un SDK Odoo CRM devient stratégique lorsqu'il combine fiabilité opérationnelle et vitesse de delivery, sans régression à chaque évolution métier.
Pour aller plus loin: Présentation des SDK API CRM développés par Dawap, Intégration API CRM Odoo CRM et Intégration API.
Nous accompagnons les équipes produit et techniques dans la conception, l’intégration et l’industrialisation d’APIs. Notre mission : construire des architectures robustes, sécurisées et évolutives, alignées sur vos enjeux métier et votre croissance.
Vous préférez échanger ? Planifier un rendez-vous
Comment Dawap structure un SDK HubSpot pour contacts, companies, deals et webhooks, avec idempotence, mapping métier et observabilité orientée production.
Article technique sur notre SDK Salesforce: OAuth2, objets Lead/Account/Opportunity, Bulk API, gestion des limites et sécurisation des flux critiques.
Notre retour d’expérience sur un SDK Dynamics CRM en Symfony: Web API OData, delta sync, sécurité AAD et supervision des pipelines d’intégration.
Ce guide présente notre architecture SDK CRM sous Symfony pour industrialiser HubSpot, Salesforce, Dynamics, Zoho et d’autres CRM avec des flux API robustes, testables et observables.
Nous accompagnons les équipes produit et techniques dans la conception, l’intégration et l’industrialisation d’APIs. Notre mission : construire des architectures robustes, sécurisées et évolutives, alignées sur vos enjeux métier et votre croissance.
Vous préférez échanger ? Planifier un rendez-vous