Business app bridge
Connect CRM
CRM integration for Oduist Connect.
The bridge between the Connect telephony core and Odoo CRM. Calls are attached to open leads by phone number while they are still ringing, leads or opportunities can be created automatically when a call ends, phone numbers credit calls to UTM sources, and AI call summaries land in the linked lead’s chatter as soon as they are produced.
Auto-create is deliberately rule-driven rather than global: incoming and outgoing calls have separate master toggles, each with its own answered and not-answered behavior, and inbound has an extra fallback for callers who are not in Contacts at all. The rule that fires also decides who owns the result, walking from the answering PBX user down to a configured default salesperson.
Everything is built on the shared call ledger, not on a provider SDK, so the module never imports Twilio, FreeSWITCH, Telnyx or Asterisk code and behaves the same over any of them — or over several at once in one database. On the security side it adds no new groups: it grants the Connect webhook identity the minimum it needs to journal telephony events into CRM, and leaves crm.lead and utm.source under their normal Odoo access rights.
What it offers
-
Leads matched while the phone is ringing
Each
connect.callgains aleadfield, filled during the live call event.get_lead_by_number()searches active leads in non-won stages by normalizedphoneandmobile, trying the stripped number, a+-prefixed variant and the E.164 form, so the opportunity is already on screen in the active-calls widget when the agent answers. -
Auto-create leads, rule by rule
Independent toggles for incoming and outgoing calls, each split into answered and not-answered, plus an unknown-caller fallback for numbers absent from Contacts. Auto-create runs once in
register_call()after the call has fully ended — never during ringing — and does nothing when a lead is already linked. -
Salesperson and lead type resolution
A created record can be a
leador anopportunity. Ownership falls through the answering PBX user, then the first called PBX user, then the configured Default Salesperson; the lead is named after the matched partner, or after the number itself, which is stored on the leadphonewhen no partner exists. -
UTM attribution by phone number
Put a phone number on a
utm.sourceand inbound calls to that number set the call's Source, which is copied onto any lead created from it. Numbers are unique across sources, so campaign reporting attributes each opportunity to exactly one origin. -
Calls and leads in each other's screens
A Calls stat button on the lead form opens its filtered call list; the call form gains a Lead button that creates or links a lead and a CRM tab showing Lead and Source with an Unlink action. The call list adds a Lead column, and the CRM leads filter gains Phone and Mobile search fields.
-
AI call summaries in the lead chatter
With the core Register Summary setting on, a call's summary is posted to the linked lead's chatter automatically. It is driven by a constraint on the call's
summaryfield, so it fires the moment the summary is written rather than on a scheduled sweep. -
Works over any Connect provider
The module extends only the shared
connect.callandconnect.settingsmodels and never imports provider code. Behavior is identical over Twilio, FreeSWITCH, Telnyx or Asterisk — including several of them in the same database.
Scope of the current version
- It places and receives no calls itself: at least one Connect provider module must be installed and configured.
- CRM behavior is gated on
check_license('connect_crm'). Without a valid license the overrides fall through and do nothing — matching, auto-create and summary posting are all silently inactive. - Matching only links a lead that already exists; it never creates one. Creation is the job of the auto-create rules or the Lead button on the call form.
- Very short numbers and
unknowncallers are skipped by lead lookup. When several open leads match one number, the most recent one wins and a warning is logged. - Outgoing calls that reach a local PBX user never auto-create a lead — only external destinations do.
- The webhook identity can read, create and write every lead regardless of salesperson, because telephony-driven creation happens before assignment. Treat the webhook credentials as an integration secret; deletion is never granted.
- Routing inbound SMS or WhatsApp messages to a lead needs a provider bridge — for Twilio that is the auto-installed
connect_crm_twiliomodule.
Installs with full features free for 30 days; buy the license inside the module.