Business app bridge
Connect HR
HR integration for Oduist Connect.
Most Connect bridges start from a contact record. This one starts from the digits: the number on the other end of the call is normalized and compared against every employee’s Work Phone and Work Mobile, and the matching hr.employee is written onto the call. That is what makes internal traffic legible — calls between staff, calls from a colleague’s mobile, calls to a field engineer — without any of it needing a res.partner.
To keep that lookup cheap on every single call event, the module adds stored, indexed normalized copies of the two phone fields to hr.employee and exposes them as search fields. From there the link works both ways: a Calls smart button on the employee form, an Employee notebook page and Unlink action on the call, an optional column on the call list, and — with the core transcription feature enabled — the call summary posted into the employee’s chatter.
Because it reads only the shared connect.call ledger, the module is indifferent to how the call was carried; every provider funnels its events through the same process_call_event() hook that this bridge extends.
What it offers
-
Employee matched by phone number
This bridge matches on the number, not on a contact record: it takes the other party's number — the caller for an incoming call, the called number for an outgoing one — and looks it up against the employee's Work Phone and Work Mobile, attaching the match to the call's
employeefield. -
Indexed normalized phone columns
hr.employeegains stored, indexedphone_normalizedandmobile_normalizedfields computed fromwork_phoneandmobile_phone, so the lookup on every call event is an index hit rather than a scan. The lookup tries the+<digits>form first, then the bare digits. -
Calls smart button on the employee
The employee form gains
connect_callsand a phone-icon smart button carryingconnect_calls_count, opening the full call history for that person. -
Work phone and mobile as search fields
Both numbers are added to the employee search view, so an unrecognized number on a screen can be resolved to a colleague directly from HR.
-
Employee page and list column
The call form gets an
Employeenotebook page with an Unlink action, and the Connect call list gets an optionalEmployeecolumn right ofPartner. -
Matches written to the debug log
Every match is recorded in the
connect.debuglog, which is where you look when a number that should belong to an employee is not being attached. -
Summaries posted to the employee chatter
With the core transcription feature and the shared
connect.settings.register_summaryswitch on, the AI summary of the call is posted to the linked employee's chatter.
Scope of the current version
- Lookup only — there is no create button. Employees come from HR onboarding and are never spawned by a phone call.
- Matching consults
work_phoneandmobile_phoneand nothing else; an employee whose numbers are blank, or who calls from a private line, will not be matched. - Numbers shorter than the internal-extension threshold are skipped, so extension-to-extension calls never link an employee.
- The match runs only when the call has no employee yet, so a manual assignment stays put — but it also means a wrong automatic match has to be unlinked by hand.
- An active Oduist Connect HR license is required. The check is silent: without it calls are still recorded, but no employee is linked and no summary is posted.
Installs with full features free for 30 days; buy the license inside the module.