Connect modules connect_infobip

Provider integration

Connect Infobip

Infobip integration for Oduist Connect.

Infobip voice, a browser phone, SMS and WhatsApp, all landing in the one Odoo ledger. Voice is event-driven rather than markup-driven: the Calls API pushes events to Odoo over webhooks and Odoo answers with REST actions, which is why webhook configuration is the part of the setup that actually matters — inbound calls do not work without it.

The module owns its own configuration under the connect.infobip.* namespace — numbers, extensions, outgoing caller IDs, WhatsApp senders and templates — while calls, messages and recordings go into the shared Connect models. It calls the Infobip API with plain HTTP requests rather than the official SDK, because that SDK does not cover the Voice, Calls and Numbers APIs.

Recordings are downloaded into Odoo as attachments, so the core transcription and summarisation pipeline works on Infobip calls exactly as it does on any other backend.

What it offers

  • Account sync in one click

    SYNC INFOBIP ACCOUNT creates the "Odoo Connect" Calls configuration that inbound calls are routed to, imports your numbers into Connect → Infobip → Numbers and the outgoing caller IDs, pushes the per-number inbound SMS forwarding action, and pulls WhatsApp senders and templates when WhatsApp is enabled on the account.

  • Event-driven voice, no call markup

    Infobip has no TwiML analog: Odoo receives call events over webhooks and drives each call with REST actions against the Calls API. That makes the call logic live in Odoo rather than in a document uploaded to the carrier.

  • Web phone plus external ring

    Enable the web phone on a Connect user and a WebRTC identity is generated automatically; add an external phone in E.164 as a second leg. Each leg has its own priority and ring timeout, executed on the Infobip platform rather than in Odoo.

  • Number routing you set in Odoo

    Each number's Destination is a user (ringing their legs by priority) or an external number. External CallerID decides whether the DID or the original caller is presented on a forward — presenting the original caller needs CLI passthrough entitlement on the account.

  • Extensions and bridged click-to-call

    Connect → Infobip → Extensions holds short internal numbers pointing at users, used for web-phone dialing and click-to-call caller IDs. With Click-to-Call Provider set to Infobip, the agent's own phone rings first and the destination is bridged once they answer.

  • SMS and WhatsApp from Odoo

    Send SMS from any record's composer with the user's Infobip caller ID as sender, and reply from Connect → Infobip → Messages; delivery reports update message status by themselves. WhatsApp templates are written in connect.infobip.whatsapp_template, submitted for Meta approval from Odoo, and tracked through their approval status.

  • Recordings with transcription

    Calls to and from users with Record Calls enabled are recorded at dialog level. A cron downloads the audio with the API key and stores it as an Odoo attachment, where the core OpenAI transcription picks it up like any other provider's recording.

Scope of the current version

  • IVR and call flows are not in the current version — routing goes to a user or an external number.
  • Recorded voicemail is not in the current version: unrouted or exhausted calls hear a spoken message and are hung up.
  • RCS and Viber are not in the current version, and neither is call transfer from the web phone.
  • Numbers cannot be purchased from Odoo.
  • Per-call prices are not fetched — Infobip exposes no price on the call resource.
  • The browser receives inbound calls only while a tab with the web phone is open; the JS SDK has no push wake-up, so use the external phone ring step as the fallback.
  • Odoo must be reachable from the internet over HTTPS. Infobip does not sign webhooks, so every webhook URL embeds a shared secret token — keep those URLs out of screenshots and logs.

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