Skip to content
Story

Odoo and Jira by voice

It all started with a question in the car: how many tasks do I have? This is how Saelyx learned to talk to Odoo and Jira, with one rule: neither integration can delete anything.

Day to day I use Odoo a lot. I pictured myself driving and asking Saelyx, from my watch or my phone, how many tasks and how many tickets I have, without touching anything.

Today the idea only half works: the watch doesn't carry Odoo or Jira yet, so in the car I can only ask the phone. Jira came later, because my partner uses it.

01One night in September

On 14 September, at ten at night, I decided Odoo had to ship that same day. It went out for the Mac at 23:34 and reached my iPhone at 23:45. I started on Jira at one in the morning, and by 02:35 it was on the iPhone.

That night I also found a performance blunder: filtering the inbox by each message's date made Odoo scan its whole messages table, and it took more than twelve seconds. Asking only for the latest entries, by record number, brought it down to about eighty milliseconds.

02Three sentences, three fixes

From that night on I used it for real on the iPhone, and every failure came from a sentence said out loud:

  • 02:56 · “read me that task”. Odoo answered with an error: the agent had passed the task's number as if it were a message's, and that message didn't exist. The fix was done by 03:06: now it reads the whole task.
  • 07:52 · the subtasks of a task. Out of seven searches, three came back empty: the connector didn't know tasks can have subtasks. Done by 08:03.
  • 08:10 · “the last tasks I created”. Saelyx said it couldn't filter by who created them, and it was right: the tool had no way to ask. Done by 08:21.

None of the three came from a list of requirements. I don't know a better way to find out what something is missing than using it, at whatever hour.

03A rule before anything else

More important than what it was missing was what Saelyx should never do. With a connection to someone else's system, my DevOps reflex is to ask what the worst case is; here, whatever Saelyx wrote would be seen by the colleagues of whoever uses it, and sometimes by a customer. So the first rule has no exceptions: neither integration has a delete operation.

I checked: Odoo creates tasks, subtasks and hours, leaves notes and marks things as read; Jira comments and changes status. It's the idea behind the voice terminal: when in doubt, deny. Four more things hold it up:

  • Writing takes two steps. First Saelyx tells me in one exact sentence what it's about to do, and it only writes if I say yes. The server writes that sentence, not the agent, so what it tells me is what will happen.
  • If it's unclear, it asks. “Log two hours on the report thing” can match four tasks, and if it picked one at random I'd have to delete those hours by hand, because Saelyx doesn't delete.
  • By default, everything stays internal. An ordinary Odoo comment emails everyone following the task, a customer included, and in Jira Service Management some comments are visible to whoever opened the request. Saelyx writes internal notes, and what goes out to a customer asks for a clear yes.
  • What the service sends back is data, not an order, and the key is stored encrypted and never comes back out.

One detail for people who read code: if Jira answers “this has moved, go to another address”, some HTTP libraries obey and forward the headers, key included. The connector follows no redirects.

04What it doesn't do yet

All of this goes by voice, on the Mac and the iPhone, and since 8 October 2026 (Mac 0.10.180, iPhone 1.1.31) through the apps' typed chat too. The browser chat can only look things up, and the watch carries neither Odoo nor Jira. Jira only works with Jira Cloud, and so far I've only tested it against a server that pretends to be Jira, not a real one. Your Odoo has to be reachable from the internet over https.

How I test it hasn't changed: I say a sentence out loud and, if it doesn't come out as I expected, I fix it.

05Frequently asked questions

Can Saelyx delete anything in my Odoo or my Jira?

Not with these integrations: neither has a delete operation.

Does it work on the Apple Watch or in a typed chat?

Not on the watch yet. By voice, it works on the Mac and the iPhone, and since 8 October 2026 (Mac 0.10.180, iPhone 1.1.31) through the apps' typed chat too; the browser chat can only look things up.

What do I need to connect them?

An API key for Odoo (with the external API available) or an API token for Jira Cloud, and the Pro plan. Access is by invitation; pricing has the details.


— Adianny
Senior DevOps engineer. I've spent about four years working with machine learning and MLOps, now as a tech lead; Saelyx is my side project.

Invite-only access

Request your access.

If Odoo or Jira are part of your day, talking to them might help. I read every request by hand and I write to you as soon as there is room for you.