Skip to Content
Sumara Market
  • Home
  • Contact Us
  • 0
  • 0
  • Sign in
  • +1 (574) 564-6338
  • Shop
Sumara Market Shop
  • 0
  • 0
    • Home
    • Contact Us
  • Sign in
  • +1 (574) 564-6338
  • Shop

Not for sale yet.

Drop your email and we'll let you know the moment it goes live.

Connect Enqueue · Harrison Consulting
ODOO MODULE · CONTACT CENTRE

A real dispatcher inside Odoo.

Queues, agents with skills, service-level targets, supervisor monitor and barge — across voice, chat, SMS and email. The fairness invariant is enforced by the database, not by hope.

See how it works Talk to us →

Why

Most "queue" features in Odoo end at TwiML <Enqueue>. That gets you a holding line and a wait announcement. It doesn't get you skill matching, multi-channel concurrency limits, schedule-aware open/close, fairness under contention, or supervisor primitives that work over chat and email as well as voice. This module does. It treats every offerable item — a call, a chat, an SMS thread, an inbound email — as a connect.task the dispatcher hands to the right agent under a per-agent advisory lock.

How it works

  1. Task arrives on a queue
    Voice, chat, SMS, or email. entered_at is immutable — a database trigger enforces fairness invariant I1.
  2. Workflow computes priority
    Per-queue or global workflow rules age the task, inject required skills, optionally route it to a different queue. Trace stored on the task for audit.
  3. Dispatcher ranks agents and reserves
    Strategy is longest_idle or skill-weighted. Last-agent preference applies within a window. A single offer is reserved per agent — acceptance is the only path to Talking.
  4. Agent works, supervisor watches
    Monitor, coach, or barge from the supervisor console. Every supervisor leg is appended to connect.supervisor.audit.
  5. SL cron tallies attainment
    15-minute rolling window per queue and channel; alerts open and clear automatically as attainment crosses the configured threshold.

What's in the box

Skill-based routing

Admin-extensible skill catalog. Tasks declare required skills; agents declare proficiency levels. Dispatcher ranks candidates by match before falling back to longest-idle.

Multi-channel concurrency

Per-channel capacity is a row per agent, not a flat integer. An agent on one voice call can still hold three chats, two SMS threads, and an email — limits you set, dispatcher enforces.

Service-level targets and alerts

"Answer 80% within 30 seconds" per queue, per channel. Rolling 15-minute attainment; pivot view for trend; alerts fire when attainment dips and clear on recovery.

Supervisor monitor / coach / barge

Works on voice via Twilio conference, on chat and SMS via Conversations participants with a hidden role attribute, on email via CC. Coach falls back gracefully where the channel doesn't support a side-band.

EWT, schedules, last-agent

Estimated Wait Time computed every minute from the recent assign-time sample. Schedules drive open/close per queue. Last-agent preference rebinds returning callers when their previous agent is ready.

Health checks built in

18+ invariants checked every five minutes — orphaned supervisor legs, idle conversation sessions, stale EWT, missed reconciler heartbeats. Surfaced at /connect_enqueue/health and in the admin view.

Compatibility

Odoo 19.0 queue_job Twilio

Depends on connect, connect_callout, and OCA's queue_job for background work. Voice rides Twilio; chat and SMS ride Twilio Conversations; email is plain mail.thread.

Field note — Hope is not a routing strategy

Every ACD we'd seen leaked: agents stuck in Talking after a hangup, supervisors orphaned in a coach leg, tasks dispatched twice under load. The dispatch contract here is a single reservation per agent under an advisory lock. The rest of the module is the consequence of taking that contract seriously.


At Sumara Market

Baking truly begins at home. What started as a way to nourish my growing family has blossomed into a heartfelt passion for feeding my community with wholesome, handmade sourdough goods. Each loaf, roll, and pastry is baked in small batches with care, using thoughtfully sourced ingredients from seasonal produce to local grains, many of which are stone ground just down the road at Bonneyville Mill. It’s simple, honest baking made to be shared.

Copyright © Suwanna Harrison