Skip to content

Helpdesk Module

Ticket management with Field Service integration for after-service (A/S) workflows.

Module Overview

Module Technical Name Version Description
Helpdesk helpdesk 1.4 Base ticket management, SLA, ratings
Website Helpdesk Form website_helpdesk_form 15.0.1.0.0 Public website form for ticket submission
Helpdesk FSM jdx_helpdesk_fsm 15.0.1.0.0 Create A/S orders from tickets

Helpdesk Base Module

Field Value
Technical Name helpdesk
Version 1.4
Category Services/Helpdesk
Dependencies base_setup, mail, utm, rating, web_tour, web_cohort, resource, portal, digest

Features

  • Ticket Management - Process tickets through stages
  • Priority & Types - Categorize and prioritize tickets
  • Team Assignment - Create teams with automatic assignment
  • Mail Alias - Auto-create tickets from email
  • SLA Tracking - Service level agreement deadlines
  • Customer Ratings - Feedback collection
  • Portal Access - Customer self-service
  • Dashboard & Reports - Kanban, pivot analysis

Ticket Stages

Default stages:

Stage Type Description
New Open Newly created ticket
In Progress Open Being worked on
On Hold Open Waiting for customer
Solved Closed Resolution provided
Cancelled Closed Ticket cancelled

Website Helpdesk Form Module

Field Value
Technical Name website_helpdesk_form
Version 15.0.1.0.0
Category Website
Dependencies helpdesk, website

Features

  • Public Website Form - Submit tickets without login
  • Full Address Capture - Street, city, state, ZIP fields
  • Partner Integration - Auto-creates/updates res.partner with address
  • File Attachments - Upload images, PDFs, videos
  • reCAPTCHA v3 - Invisible spam protection
  • Rate Limiting - Prevent abuse (IP-based)
  • Ticket Type Selection - Dropdown from helpdesk.ticket.type

Form Fields

Field Required Odoo Field
Name Yes partner_name / res.partner.name
Email Yes partner_email / res.partner.email
Phone Yes partner_phone / res.partner.phone
Subject Yes name (ticket subject)
Issue Type No ticket_type_id
Description Yes description
Street Address Yes res.partner.street
Apt/Suite/Unit No res.partner.street2
City Yes res.partner.city
State Yes res.partner.state_id
ZIP Code Yes res.partner.zip
Attachments No ir.attachment linked to ticket

Processing Flow

flowchart TD
    A[Customer submits form] --> B[Validate reCAPTCHA]
    B --> C[Validate required fields]
    C --> D{Partner exists?}
    D -->|Yes| E[Update partner address if missing]
    D -->|No| F[Create new partner with address]
    E --> G[Create helpdesk.ticket]
    F --> G
    G --> H[Link partner_id to ticket]
    H --> I[Upload attachments to ir.attachment]
    I --> J[Return ticket ID to customer]

Landing Page Integration

The landing page (/helpdesk) uses this module's patterns but submits via REST API:

  1. Form at http://localhost:8001/helpdesk
  2. API at POST /api/helpdesk
  3. Creates partner and ticket via Odoo REST API
  4. See Landing Page Forms API for details

Configuration

  1. Set HELPDESK_TEAM_ID in landing page environment
  2. Configure ticket types in Helpdesk > Configuration > Ticket Types
  3. Set reCAPTCHA keys in environment variables

FSM Integration Module

Field Value
Technical Name jdx_helpdesk_fsm
Version 15.0.1.0.0
Category Services/Helpdesk
Dependencies helpdesk, fieldservice, jdx_service_signature, sale

Features

  • Create A/S Order - Button on ticket to create FSM order
  • Wizard - Search customer sale orders, set scheduling
  • Attachment Copy - Ticket attachments copied to FSM order
  • Smart Button - View linked FSM orders from ticket
  • Auto-Resolution - Daily cron resolves tickets when FSM signed
  • Completion Email - Auto-send completion report

A/S Workflow

flowchart TD
    A[Customer Support Ticket] --> B[Create A/S Order Button]
    B --> C[Wizard: Select Schedule/Worker]
    C --> D[FSM Order Created]
    D --> E[Ticket moves to 'In Progress']
    E --> F[Technician completes FSM]
    F --> G[Signature captured]
    G --> H[Daily Cron]
    H --> I[Ticket auto-resolved]
    I --> J[Completion email sent]

Data Models

Helpdesk Ticket Extension (helpdesk.ticket)

Fields added by jdx_helpdesk_fsm:

Field Type Description
fsm_order_ids One2many Linked FSM orders
fsm_order_count Integer Number of A/S orders
has_signed_fsm_order Boolean Any linked FSM is signed
is_stage_closed Boolean Related to stage.is_close
partner_address Text (computed) Customer full address

Create A/S Order Wizard

Field Type Description
ticket_id Many2one Source ticket
partner_id Many2one Customer (from ticket)
description Html A/S order description
scheduled_date Datetime Optional scheduling
fsm_team_id Many2one FSM team
fsm_person_id Many2one Assigned worker
sale_order_html Html Customer's sale orders

Actions

Ticket Actions

Action Description
action_create_as_order Open wizard to create A/S order
action_view_fsm_orders View linked FSM orders

Wizard Actions

Action Description
action_create_as_order Create FSM order and link to ticket

Automated Processing

Daily Cron: FSM Signature Sync

Runs daily to process completed A/S orders:

  1. Find tickets with signed FSM orders
  2. Move ticket to "Solved" stage
  3. Post chatter notification
  4. Send completion report email
# Cron: _cron_sync_fsm_signature_completion
# Finds: tickets with stage_id.is_close = False
#        AND fsm_order_ids.x_signature_state = 'signed'
# Actions: Set stage to 'Solved', post message, send email

Configuration

Team Setup

Navigate to Helpdesk > Configuration > Teams:

  1. Create team with members
  2. Set email alias (optional)
  3. Configure assignment method
  4. Enable SLA policies

Stage Setup

Navigate to Helpdesk > Configuration > Stages:

Stage Is Closed Description
New No Initial stage
In Progress No Work started
On Hold No Waiting
Solved Yes Resolution provided
Cancelled Yes Not resolved

FSM Order Type

Ensure A/S order type exists:

# In Odoo shell
env['fsm.order.type'].search([('name', '=', 'A/S')])
# Or create if missing:
env['fsm.order.type'].create({'name': 'A/S'})

Usage

Creating A/S Order from Ticket

  1. Open helpdesk ticket
  2. Click Create A/S Order button (only on open stages)
  3. In wizard:
  4. Review customer info
  5. View related sale orders
  6. Edit description if needed
  7. Optionally set scheduled date and worker
  8. Click Create A/S Order
  9. Ticket moves to "In Progress"
  10. FSM order opens in new view

Viewing Linked A/S Orders

  1. Open ticket
  2. Click A/S Orders smart button
  3. View linked FSM orders
  4. If single order, opens form directly

Module Structure

helpdesk

helpdesk/
├── __manifest__.py
├── models/
│   └── helpdesk.py
├── views/
│   ├── helpdesk_views.xml
│   ├── helpdesk_team_views.xml
│   ├── helpdesk_portal_templates.xml
│   └── rating_views.xml
├── security/
│   ├── helpdesk_security.xml
│   └── ir.model.access.csv
├── data/
│   ├── helpdesk_data.xml
│   ├── mail_template_data.xml
│   └── ir_cron_data.xml
├── report/
│   ├── helpdesk_ticket_analysis_views.xml
│   └── helpdesk_sla_report_analysis_views.xml
├── wizard/
│   └── assign_ticket_wizard_views.xml
└── static/
    └── src/
        ├── js/
        ├── scss/
        └── xml/

jdx_helpdesk_fsm

jdx_helpdesk_fsm/
├── __manifest__.py
├── __init__.py
├── models/
│   ├── __init__.py
│   ├── helpdesk_ticket.py    # Ticket extension
│   └── fsm_order.py          # FSM order extension
├── wizard/
│   ├── __init__.py
│   └── create_as_order.py    # Create A/S wizard
├── views/
│   ├── helpdesk_ticket_views.xml
│   └── fsm_order_views.xml
├── security/
│   └── ir.model.access.csv
└── data/
    └── cron.xml              # Daily sync cron

Installation

# Install helpdesk base
docker compose exec odoo odoo -i helpdesk --stop-after-init -d DATABASE_NAME

# Install FSM integration
docker compose exec odoo odoo -i jdx_helpdesk_fsm --stop-after-init -d DATABASE_NAME

# Or install all together
docker compose exec odoo odoo -i helpdesk,jdx_helpdesk_fsm --stop-after-init -d DATABASE_NAME

Troubleshooting

Create A/S Button Not Visible

  1. Verify ticket is on open stage (not closed)
  2. Check jdx_helpdesk_fsm module is installed
  3. Upgrade module: -u jdx_helpdesk_fsm

Ticket Not Auto-Resolving

  1. Verify FSM order signature state is 'signed'
  2. Check ticket stage is not already closed
  3. Verify 'Solved' stage exists with is_close=True
  4. Check cron job is enabled and running

No Sale Orders in Wizard

  1. Verify customer is linked to ticket
  2. Check sale orders exist for customer
  3. Verify search by email/phone is matching

Attachments Not Copying

  1. Check source ticket has attachments
  2. Verify ir.attachment model access
  3. Check Odoo logs for errors