Connect modules connect_helpdesk

Business app bridge

Connect Helpdesk

Helpdesk integration for Oduist Connect.

Support work starts on the phone and ends in a ticket, and this bridge automates the step between. When a call ends, configurable rules decide whether it deserves a helpdesk.ticket — by direction, by whether it was answered, and by whether the caller was a known contact at all — and the new ticket is assigned to the person who actually took the call, falling back to a default assignee and team.

Separately from auto-creation, every call is checked against existing open tickets by normalized phone number, so a customer calling back about an ongoing problem lands on the same ticket instead of a new one. When the core transcription feature is enabled, the AI summary of the conversation is written into that ticket’s chatter automatically, which is what makes a call worth linking rather than merely counting. From the call form, a single Ticket button covers both cases: match an existing ticket, or open a pre-filled new one.

It touches connect.call, connect.settings and helpdesk.ticket and nothing else — no provider module is imported — so the same rules apply whether the call arrived over FreeSWITCH, Twilio, Asterisk or several backends at once.

What it offers

  • Tickets created by explicit rule

    Separate master toggles for incoming and outgoing calls, each with sub-rules for answered and not-answered calls plus a For Unknown Callers rule that fires when no contact matched. The rules are OR-ed, so a support line can raise tickets for missed calls only, or for everything.

  • Auto-creation waits for hangup

    Ticket creation runs in register_call(), after the call has fully ended, so the answered/missed classification the rules depend on is already final rather than guessed while the phone is still ringing.

  • Assignee and team resolved from the call

    An incoming call's ticket goes to the PBX user who answered, else the first user it rang, else the Default Assignee; an outgoing call's ticket goes to the caller. auto_create_tickets_team sets the team, the ticket name is the partner name falling back to the external number, and an unknown caller's number is kept in partner_phone.

  • Existing open ticket matched by number

    Independently of auto-creation, process_call_event() matches the caller (incoming) or called (outgoing) number against phone_normalized, trying the +<digits> form and then the bare digits. Only active tickets in a non-folded stage count; if several match, the most recent wins and a warning is logged.

  • AI summaries into the ticket chatter

    A constraint on the call's summary field posts the OpenAI summary to the linked helpdesk.ticket chatter the moment the transcription job completes, so an agent picking up the ticket later reads what was said without opening the recording.

  • Ticket button on the call form

    One button that first retries the number match and, failing that, opens a new ticket pre-filled with the call's partner and number, linking it on save. Alongside it sit a Helpdesk notebook page with an Unlink action and a Ticket column shown by default on the call list.

  • Calls stat button on the ticket

    helpdesk.ticket gains a connect_calls back-reference with a call-count stat button, an optional Calls column on the ticket list, and partner_phone as a search field.

Scope of the current version

  • Odoo Enterprise only — the Helpdesk app does not exist in Community, so the module cannot be used there.
  • Outgoing calls to local PBX users (called_pbx_users set) never auto-create a ticket, so internal calls between colleagues stay out of the queue.
  • Numbers shorter than the configured minimum extension length are skipped by the matcher, so an extension-to-extension call is never attached to a ticket.
  • Leaving both master toggles on but every sub-toggle off means no ticket is ever created — the sub-rules are the whole condition.
  • The webhook identity gets a [(1, '=', 1)] record rule so number lookup reaches tickets across every team. That rule exists for unauthenticated provider callbacks only; never add human users to connect.group_webhook.
  • Every runtime hook is gated on an active Oduist Connect Helpdesk license. Without it the automatic behaviours are skipped silently and the Ticket button raises an error.

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