Skip to Content
Custom Engineering · Integrations

Custom Engineering / Nimex Solutions

Call Center & PBX Integration

Calls on the cloud PBX left no trace in the ERP unless someone typed a ticket. Now every finished call arrives in Odoo matched to the customer, with the recording, the transcript and the provider's AI scores, and opens the Field Service task by rule.

Post-call ingestion, not a live screen pop. Transcripts and scores are generated by the PBX provider's AI service.

The problem

Dozens of service calls a day, and the tickets typed afterwards, if at all.

An after-sales service desk answered its customers on a cloud PBX. The PBX knew every call, its recording and, through its AI add-on, a transcript and a quality analysis; Odoo knew none of it. Field Service tasks were created from memory, unknown callers were forgotten, and nobody could tell how many calls were answered or how satisfied the callers were.

Standard Odoo has no connector for this PBX and no place for a call, its recording or its analysis. The desk needed the call itself as a record, linked to the customer and to the task it caused.

What we engineered

A Call Centre app in Odoo, fed by the PBX after every call.

Calls, recordings, transcripts and scores become Odoo records; rules decide which calls become work for the service team.

  • Ingestion

    • Optional webhook from the PBX panel, with a lenient parser for loosely quoted templates.
    • Two-minute poll of the call-detail endpoint with a ten-minute overlap; the inbound leg of a call wins.
    • Both paths merged on the PBX's unique call id: a call is never created twice.
  • Matching and analysis

    • Caller (or callee) matched on the last 10 digits of any phone or mobile field, the company preferred.
    • Transcript as speaker segments; clicking a segment seeks the recording.
    • Provider prompts stored as lines: topic, overall sentiment, satisfaction, sentiment, keyword and closing scores (0–5) with confidence.
  • Work and reporting

    • Field Service task "Phone: customer" with the call details, topic, scores, collapsible transcript and a link back.
    • Recordings streamed through Odoo for users only, expired after the retention period.
    • Dashboard: incoming, answered and answer rate, missed, average call, satisfaction, tasks opened, unknown numbers, top callers.

Dashboard

Figures computed from the call records themselves.

Answer rate is answered over incoming calls; the average call counts answered calls only; satisfaction is the mean of the provider's scores over analysed calls; unknown numbers are answered calls without a customer. Daily, hourly and satisfaction charts sit next to the top callers and the latest calls.

How it works

From a finished call to a Field Service task.

  1. The call ends on the PBX

    The PBX posts the call record to Odoo's webhook, or the two-minute poll picks it up. The call is created as Received.

  2. The caller is matched

    The last 10 digits of the number are compared with every phone and mobile field; the company wins when several people share a number.

  3. Routing rules decide

    Inbound only, answered only, minimum duration. With "wait for the analysis" the call moves to Analysis pending.

  4. Transcript and analysis arrive

    The provider's transcript and prompt results are fetched (every 3 minutes for the first 2 hours, then hourly) and fill the call.

  5. The task opens

    A Field Service task "Phone: customer" is created in the configured project and linked to the call, which becomes Completed.

  6. Exceptions stay visible

    Late analysis is appended to the task; unknown numbers create a To-Do; calls outside the rules are No ticket opened; failures show Error with Retry.

Integration points

  • Cloud PBXcall record: id, caller, extension, duration, result →Call Centre calls
  • Cloud PBXrecording, streamed on demand →Call form player
  • Provider AI servicetranscript · topic · 0–5 scores →Call analysis lines
  • Odoo Contactslast 10 digits → customerCall customer
  • Routing rulestask with transcript and scores →Field Service, To-Do

Call statesReceived→Analysis pending→CompletedNo ticket openedError

Chat with us