VOIP Callflows in Odoo 20: Enterprise Calling Inside the ERP

For most companies, the phone system is an island. The PBX lives in a provider portal, call routing is a ticket you file with IT or a telecom reseller, and the ERP only finds out about a call if someone remembers to log it. Odoo has shipped a VoIP app for years — click-to-call from a record, a softphone widget, calls logged against customers — but the “phone system” part, deciding what happens when someone dials your main number, usually stayed outside. Odoo 20 takes a run at that gap. The app, which Odoo now presents simply as Phone, gains a call flow designer for incoming calls, plus a batch of softphone upgrades that make calls behave like any other record in the database: routed, logged, transferred, and reported on.

Diagram of an incoming call flowing through menus, queues and agents inside a business phone system

A call flow designer, not a provider portal

The headline item in the Odoo 20 release notes is one line: you can now “design a flow for incoming calls with extensions, call menus, time- and location-specific steps, and other PBX features.” In practice, Odoo's Phone pages describe a visual builder where you drag, drop, and connect call actions into a flow — and update it yourself in minutes, without calling IT.

The building blocks shown by Odoo are the familiar vocabulary of a phone menu:

  • Call a Contact or Call a User — ring a specific person directly.
  • Send to a Queue — hand the caller to a team, such as Sales or Support.
  • Open a Menu — present options (“Sales, press 1; Support, press 2”), with a branch for when no key is pressed.
  • Play Audio — greetings, announcements, or information messages.
  • Send to Voicemail — including after a timeout, for example when a queue has rung for a set number of seconds without an answer, after which the flow can end the call or fall back to voicemail.

On top of the steps themselves, flows can route automatically based on conditions: the features page lists working hours, caller location, team availability, and specific destination rules. That is the difference between a static menu and an actual callflow — the same number can ring the sales queue during business hours, play a closed message at night, and treat callers from another region differently, all inside one design.

Extensions deserve a mention of their own, because they are how a flow stays human-sized as a company grows. Rather than publishing a directory of direct numbers, you publish one number and let the flow carry the caller: a menu choice, a queue, or a direct extension to a person. When someone changes roles, you edit the flow — the number the outside world dials never changes. That sounds mundane until you have lived through the alternative, where half the routing logic is a spreadsheet of DIDs maintained by a provider you have to email.

What a real flow looks like

Put the pieces together and a typical small-business setup becomes something an office manager can maintain. The main number opens with a short greeting, then a menu: press 1 for Sales, 2 for Support. Sales routes to the sales team queue; if nobody picks up within the ring time, the caller lands in voicemail instead of ringing forever. Support routes to the support queue during working hours and straight to voicemail outside them, with a “no key pressed” branch that defaults to the front desk rather than a dead end. None of this required new concepts in Odoo 20 — queues, users, and voicemail already existed — but the flow that connects them is now designed in the ERP, in one place, instead of being split between a provider's web portal and institutional memory.

The softphone grows up

The designer is the headline, but the release notes list several quieter Phone improvements that matter every day:

  • Floating widget. The softphone can open as a floating, draggable widget that overlays your content, so a call no longer hijacks the record you were working on.
  • Auto-fill and auto-log. Opening the softphone widget automatically fills the keypad with the current record's phone number, and logs the call on that record if the numbers match.
  • Chatter logging. Calls can be logged in the chatter during or after each call — the same timeline that already holds emails and internal notes on a lead, ticket, or order.
  • Simultaneous calling. You can start or receive a new call during an ongoing call, instead of the second caller hitting a wall.
  • Choose your outgoing number. A user can be assigned multiple numbers and pick which one to present as the outgoing caller ID — useful for staff who cover two brands or two regions.
  • Audio settings mid-call. Microphone and speaker sources can now be selected during an ongoing call, not just before it — the fix for the classic “my headset switched to the laptop mic” moment.

Day-to-day calling, inside the record

The designer's value would evaporate if the everyday calling experience stayed clunky, so it is worth noting how the widget itself works, per Odoo's documentation. The softphone carries tabs for recent calls, the activities assigned to you, and contacts. From the Activities tab you can work a call list the way you would work a to-do list: open the contact, open the linked record — a lead, sales order, invoice, or project — place the call, then mark the activity done, reschedule it, or cancel it, all without leaving the widget. Numbers are matched to contacts using standard E164 formatting, which is what makes auto-logging reliable rather than approximate. It is a small workflow, but it is the one a salesperson repeats forty times a day, and in Odoo 20 it happens entirely inside the CRM context rather than in a separate dialler.

Calls follow the person, not the desk

Odoo's VoIP feature set has always been device-agnostic — calls work on a computer, smartphone, tablet, or VoIP phone, in the browser or the mobile app — and Odoo 20 leans further into that. An ongoing call can be transferred to another device without interruption, so a conversation started at a desk can move to a phone as you walk out. Push notifications are sent for incoming calls, and all of a user's devices can ring simultaneously, so the “desk phone rang in an empty office” problem mostly disappears.

Provisioning gets a small but telling upgrade too: Linphone can now be provisioned with a QR code. The app remains SIP-compatible, and Odoo's features page names providers and softphones such as Zoiper, Linphone, and Axivox — meaning the designer sits on top of standard telephony rather than locking you into a single carrier. Phone numbers themselves can be purchased as virtual numbers directly through Odoo and assigned to team members or departments, for companies that would rather skip a separate carrier portal entirely.

Transcripts and reporting close the loop

Because calls live in the ERP, they can be reported on like anything else: Odoo's Phone overview points to graph, calendar, and pivot views plus team dashboards for tracking activity and outcomes — the kind of visibility sales managers and call centres usually buy separately. Odoo also highlights automated transcripts: log the call once, and its integrated AI places the recording, transcript, and a one-line summary on the record. As with every AI feature in Odoo 20, that convenience runs on the release's AI tooling, which is metered through IAP credits rather than included in a plan — worth budgeting for if your team lives on the phone.

Who should care, and what to check first

The callflow designer will not replace a large contact-centre platform, and Odoo does not claim otherwise. What it does is collapse the SMB phone stack — numbers, routing, queues, voicemail, logging, reporting — into the system that already holds the customer record, so a call stops being an event that happened next to the business data. If you already run Odoo VoIP, the upgrade work is modest: rebuild your existing routing as a designed flow, test the after-hours and no-answer branches (they are the ones nobody tests until a customer does), and confirm your provider and devices still behave — particularly if you rely on Linphone provisioning or multiple outgoing numbers per user. If you are still on a separate PBX, Odoo 20 is the first release where “just use Odoo for phones” is a serious conversation rather than a compromise.

Further reading

  • Odoo 20 Release Notes — the Phone section: call flow designer, floating widget, auto-fill and auto-log, simultaneous calling, and more.
  • Phone — Odoo — the Phone app overview, including the call flow designer and automated transcripts.
  • VoIP Features — Odoo — SIP providers, click-to-call, call routing and flow builder, and device transfer.

Leave a Comment