OdooWiki OCA HUB

JIRA Connector

connector_jira folder_open OCA/connector-jira open_in_new
Connector License: AGPL-3

This module adds Jira synchronization feature. It works with Jira Cloud by behaving as an Atlassian Connect App.

auto_awesome What this module does

AI-generated from the code · Odoo 17.0

Connect Odoo to Jira Cloud to synchronize projects, tasks, and timesheets (worklogs). Link Odoo projects to Jira projects, import Jira issues as tasks, and import Jira worklogs as timesheet entries.

This module adds a Jira backend configuration under the Connector menu. Users can set up a connection to Jira Cloud by registering Odoo as an Atlassian Connect App, then link Odoo projects to Jira projects.

Once linked, Jira issues are imported as Odoo tasks, and Jira worklogs are imported as timesheet entries on the corresponding project and task. The module adds JIRA-related fields on projects, tasks, and timesheets, such as the JIRA key, issue URL, epic link, and issue type.

Business rules include: timesheets linked to a Jira worklog cannot be modified or deleted; projects linked to Jira cannot have new timesheets created manually; only one binding per project can be set to 'Export' to Jira; Jira keys must follow a specific format; and exported projects cannot be deleted.

Scheduled jobs (cron) automatically import project tasks, worklogs, and users from Jira, and delete extra worklogs. A wizard allows refreshing worklogs from Jira for selected timesheet lines. The module also provides a button to check the connection and to import issue types.

Menus it adds

BackendsJira
Models and fields (30)
  • jira.base · new model
  • queue.job · extends an existing model
  • res.users · extends an existing modeljira_bind_ids (User Bindings)
  • jira.binder · new model
  • jira.backend · new modeluri (Jira URI), name, state, company_id (Company), public_key, verify_ssl (Verify SSL?), display_url, private_key, issue_type_ids (Issue Types), application_key, project_template (Default Project Template), report_user_sync, epic_link_on_epic, app_descriptor_url (App Descriptor URL), epic_link_field_name (Epic Link Field), epic_name_field_name (Epic Name Field), worklog_date_timezone, project_template_shared (Default Shared Template Key), import_project_task_force, import_analytic_line_force, worklog_date_timezone_mode, worklog_fallback_project_id (Fallback for Worklogs), import_project_task_from_date (Import Project Tasks from date), delete_analytic_line_from_date (Delete Extra Worklogs from date), import_analytic_line_from_date (Import Worklogs from date)
  • jira.binding · new modelbackend_id (Jira Backend), external_id (ID on Jira)
  • jira.deleter · new model
  • project.task · extends an existing modeljira_bind_ids (Task Bindings), jira_issue_url (JIRA issue), jira_issue_type (JIRA Issue Type), jira_compound_key (JIRA Key), jira_parent_task_id (JIRA Parent), jira_epic_link_task_id (JIRA Epic)
  • jira.exporter · new model
  • jira.importer · new model
  • jira.res.users · new modelodoo_id (User)
  • task.link.jira · new modeltask_id, jira_key (JIRA Key), backend_id (Jira Backend), jira_task_id, linked_backend_ids
  • jira.issue.type · new modelname, backend_id, description
  • project.project · extends an existing modeljira_key (JIRA Key), jira_bind_ids (Project Bindings)
  • jira.model.binder · new model
  • jira.project.task · new modelodoo_id (Task), jira_key (Key), jira_issue_url (JIRA issue), jira_parent_id (Parent Issue), jira_epic_link_id (Epic), jira_issue_type_id (Issue Type), jira_project_bind_id
  • project.link.jira · new modeljira_key, backend_id (Jira Backend), project_id, jira_project_id
  • jira.base.exporter · new model
  • jira.import.mapper · new model
  • jira.batch.importer · new model
  • jira.project.binder · new model
  • jira.backend.adapter · new model
  • jira.project.adapter · new model
  • jira.project.project · new modelodoo_id (Project), project_type
  • jira.worklog.adapter · new model
  • account.analytic.line · extends an existing modeljira_bind_ids (Worklog Bindings), jira_issue_key (Original JIRA Issue Key), jira_issue_url (Original JIRA issue Link), jira_issue_type_id (Original JIRA Issue Type), jira_epic_issue_key (Original JIRA Epic Key), jira_epic_issue_url (Original JIRA Epic Link)
  • jira.backend.timestamp · new modelbackend_id (Jira Backend), component_usage, from_date_field
  • jira.issue.type.mapper · new model
  • jira.mapper.from.attrs · new model
  • jira.res.users.adapter · new model

Text generated by AI (DeepSeek) from reading the Odoo 17.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 4 confirmed, 5 with no information of 9 versions.

Sources · Odoo 13.0

Confirmed on 2026-11-03 in branch 13.0 of OCA/connector-jira.

terminal Installation and usage

OCA documentation · Odoo 17.0

You need the following Python packages:

  • requests
  • jira
  • oauthlib
  • requests-oauthlib
  • requests-toolbelt
  • PyJWT
  • cryptography
  • atlassian-jwt

Once the addon is installed, follow these steps:

Job Queue

In odoo.conf, configure similarly:

[queue_job]
channels = root:1,root.connector_jira.import:2

Backend

  • Open the menu Connectors \> Jira \> Backends
  • Create a new Jira Backend
  • Put the name you want
  • You can also select the company where records will be created and the default project template used when Odoo will create the projects in Jira
  • Save
  • Make note of the value of the App Descriptor URL (important: make sure that the system parameter web.base.url is set properly. For local development you will want to use ngrok to make your computer reachable over https from Jira Cloud).

Installing the backend as a Jira App

In case this gets outdated, refer to

  • Login on marketplace.atlassian.com (possibly create an account)
  • On the top right corner, the icon with your avatar leads to a menu -\> select the Publish an App entry
  • On the Publish a new app screen:
  • select a Vendor (normally your company)
  • upload your app: select Provide a URL to your artifact
  • click on the Enter URL button
  • paste the App Descriptor URL in the pop-up and click on the Done button
  • the Name field should get populated from the name of your backend
  • Compatible application: select Jira
  • build number: can be kept as is
  • Click on the Save as private button (!) Important: do not click the "Next: Make public" button. That flow would allow anyone on Jira Cloud to install your backend.
  • On the next screen, you can go to the "Private Listings" page, and click on the "Create a token" button: this token can be used to install the app on your Jira instance.

Installing the Jira App on your Jira Cloud instance

  • Connect to your Jira instance with an account with Admin access
  • In the Apps menu, select Manage your apps
  • In the Apps screen, click on the Settings link which is under the User-installed apps list
  • In the settings screen, check the Enable private listings box, and click on Apply
  • Refresh the Apps page: you should see an Upload app link: click on it
  • On the Upload app dialog, paste the token URL you received in the previous procedure, and click on Upload

Configuration of the Backend

Going back to Odoo, the backend should now be in the Running state, with some information filled in, such as the Jira URI.

Configure the Epic Link

If you use Epics, you need to click on "Configure Epic Link", Odoo will search the name of the custom field used for the Epic Link.

Congratulations, you're done!

The tasks and worklogs are always imported from JIRA to Odoo, there is no synchronization in the other direction.

Initial synchronizations

You can already select the "Imports" tab in the Backend and click on "Link users" and "Import issue types". The users will be matched either by login or by email.

Create and export a project

Projects can be created in Odoo and exported to Jira. You can then create a project, and use the action "Link with JIRA" and use the "Export to JIRA" action.

When you choose to export a project to JIRA, if you change the name or the key of the project, the new values will be pushed to JIRA.

Link a project with JIRA

If you already have a project on JIRA or prefer to create it first on JIRA, you can link an Odoo project. Use the "Link with JIRA" action on the project and select the "Link with JIRA" action.

This action establish the link, then changes of the name or the key on either side are not pushed.

Issue Types on Projects

When you link a project, you have to select which issue types are synchronized. Only tasks of the selected types will be created in Odoo.

If a JIRA worklog is added to a type of issue that is not synchronized, will attach to the closest task following these rules:

  • if a subtask, find the parent task
  • if no parent task, find the epic task (only if it is on the same project)
  • if no epic, attach to the project without being linked to a task

Change synchronization configuration on a project

If you want to change the configuration of a project, such as which issue types are synchronized, you can open the "Connector" tab in the project settings and edit the "binding" with the backend.

Synchronize tasks and worklogs

If the webhooks are active, as soon as they are created in Jira they should appear in Odoo. If they are not active, you can open the Jira Backend and run the synchronizations manually, or activate the Scheduled Actions to run the batch imports. It is important to select the issue types so don't miss this step (need improvement).

No verified information in OCA: Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.