Connect modules connect

Platform

Connect

Communication platform for Odoo.

The core of the platform, and the one module every other Connect module depends on. It owns the technology-agnostic data model — calls, messages, recordings, PBX users, call flows and schedules — that every provider plugs into, along with the phone widget in the Odoo navbar, the security groups, and the licensing machinery. Your data, menus and workflows stay put no matter which backend carries the traffic, and several backends can carry it at once.

Provider modules never subclass one another. They register against the core’s abstract interfaces: an abstract send method for messages, a click-to-call originator per user, webhook handlers running as the dedicated connect.user_connect_webhook account. That is what lets one database run Twilio numbers, a FreeSWITCH server and an existing Asterisk PBX together, and what makes swapping a carrier a configuration change rather than a migration.

AI lives in the core too, not in a provider. Whisper transcription and LLM summaries work on any recording from any backend, the transcript and summary are stored on the call permanently so audio retention becomes a policy decision, and the summary can be posted straight to the contact’s chatter. Everything above the core — providers, voice agents, business-record bridges, storage — is optional and priced separately.

What it offers

  • One call ledger for every provider

    connect.call records direction (incoming, outgoing, internal), call type (phone or WhatsApp), status, duration, the linked partner and an inline recording player. The same records, menus and record rules apply whichever backend carried the traffic, so Twilio, FreeSWITCH and Asterisk can run side by side in one database.

  • Whisper transcription and AI summaries

    The Connect: transcribe pending recordings scheduled action runs every two minutes, sends new audio to OpenAI Whisper, then passes the transcript to the configured summary model (GPT-5.4 mini by default) with your own summary prompt. Transcript, summary and the estimated Whisper cost are stored on the call and survive deletion of the audio.

  • PBX users with voicemail and TTS

    Each Odoo user gets one PBX account under Connect > Users carrying record-calls, voicemail with a Jinja2 greeting prompt, TTS language and voice, missed-call notifications, and a per-user summary prompt. When several integrations are installed, per-user Click-to-call Provider and Messaging Provider decide which module originates the call or sends the message.

  • Call flows: IVR menus and ring groups

    A call flow either gathers DTMF digits, speech keywords or both and routes each choice to a user, an extension or another call flow, or rings a group of users at once and gives the call to the first to answer. Flows chain into multi-level menus, and each one can play its own voicemail prompt when nothing answers.

  • SMS and WhatsApp in a shared ledger

    The composer and the message model are core-level, with an abstract send method each provider implements, so messages from any carrier land in the same list with the same delivery states (queued, sending, sent, delivered, read, failed, undeliverable) and a Retry button. Message Configuration can auto-create a partner from an inbound message on a given number.

  • Calls attached to the right contact

    Incoming and outgoing numbers are matched against partner phone fields (exact = or pattern like, your choice), and matched calls and messages surface as smart buttons on the partner form. Unmatched calls offer Create Partner, and with Register Summary on, the AI summary is posted to the partner's chatter as soon as it is generated.

  • Three security groups, enforced twice

    connect.group_user, connect.group_admin and connect.group_webhook split read-and-call access from full configuration and from the inactive webhook user that provider callbacks run as. Record rules limit each user to their own calls, messages and recordings; API keys and auth tokens are masked for anyone who is not an ERP manager.

  • Live call panel and availability calendar

    A Toggle Calls systray icon opens a panel of the calls in progress right now with caller, called, users and partner, each row a link into the record. Connect > Availability renders the working schedules behind inbound numbers as a calendar of open and closed windows, with public holidays and special working days as separate layers.

Scope of the current version

  • The core carries no telephony of its own: a provider module such as connect_twilio, connect_freeswitch or connect_asterisk is required to place or receive a call.
  • Numbers, outgoing caller IDs, extensions, call flows and endpoints are per-provider models and live under the provider's own menu, not under the core menu.
  • The Python packages phonenumbers, jinja2, httpx, openai and PyJWT must be available in the Odoo environment.
  • Transcription needs an OpenAI API key and an active Connect: transcribe pending recordings cron. Sanitized staging databases usually have scheduled actions disabled, so nothing is transcribed until they are re-enabled.
  • Links to CRM, Sale, Account, Project, HR and Helpdesk records ship as separate bridge modules, each licensed on its own.
  • Installing a module starts a 30-day production trial from its own install date. Continued production use needs a commercial license bound to the database's Instance UID, which changes when the database is copied or moved.

Installs with full features free for 30 days; buy the license inside the module.