Open logbook · AI meetings · Odoo

meet.transgenia.org: how we stopped paying for Read AI and put our meeting minutes into Odoo

For more than a year we paid for a meeting assistant by the seat. Since October 26, 2026, our meetings have been transcribed on a platform of our own, with a single speech recognition model, minutes that a person reviews and commercial signals that end up in our ERP. This is what we built, what it costs at list price and what it does not do yet.

Short answer. meet.transgenia.org is Transgenia's meeting platform: video calls on 8x8's Jitsi as a Service, transcription with OpenAI's gpt-transcribe model, draft minutes with GPT-5.4 mini and commercial signals that sync to our Odoo. It replaces the Read AI subscription (Enterprise plan, USD 29.75 per seat per month at list price) that we paid for from July 2024 until 2026. The code is a public fork of a project by Cliff Brake, the audio and the minutes stay on our server, and no minutes go out until the host approves them. It is in pilot: no speaker identification, and the cost per meeting is still unreconciled. Cut-off date of this logbook: October 27, 2026.
Diagram 1. The meet.transgenia.org flow in seven steps: the participant joins with consent, their browser captures only their microphone, the host approves, gpt-transcribe transcribes, GPT-5.4 mini drafts the minutes, the host approves the recipients and the commercial signals reach Odoo.
View Mermaid source
flowchart LR
    A["1. Participant joins
with consent"] --> B["2. Their browser captures
only their microphone"] B --> C{"3. The host
approves"} C -->|"cancels"| X["Audio kept
unprocessed"] C -->|"approves"| D["4. gpt-transcribe
a single model"] D --> E["5. GPT-5.4 mini
draft minutes"] E --> F{"6. The host approves
the recipients"} F -->|"approves"| G["Email with minutes
and transcript"] E --> H["7. Commercial signals
with verbatim quotes"] H --> I[("Odoo
Laboratorio IA")]
Diagram 1. The seven steps of the flow. The host's two approvals are the only gates through which audio reaches a model and minutes reach an email.

What is meet.transgenia.org?

meet.transgenia.org is Transgenia's internal meeting platform. The video call itself is provided by 8x8's Jitsi as a Service (JaaS) inside the page; the application around it is a single-binary Go program with a SQLite database, running in an unprivileged container on a server we already had. That application creates the rooms, signs the permissions for each meeting, captures each participant's audio from their browser, transcribes it with the OpenAI API, drafts the minutes and, once the host approves them, emails them out and sends the commercial signals to our Odoo.

We did not start from scratch. The code is a public fork of Cliff Brake's jaas-app project, published in April 2026, used with the author's permission. What we added lives in the same public repository: signed webhooks, per-user rooms behind Cloudflare Access, audio capture with host approval, a minutes worker, configurable retention, HTML emails with our identity and the sync with Odoo. Anyone can read the changes, with their tests and their PR descriptions.

Nor is it a product. It is the tool we work with and the test bench for what we implement for clients: a meeting platform that keeps its data at home, transcription that costs cents per meeting and minutes that do not go out until a person has read them.

Why did we stop paying for Read AI?

We paid for Read AI from July 2024 until 2026. It is a good product and we are not writing this to knock it: it did what it promised. We stopped paying for it for four reasons that have nothing to do with its quality.

  1. The billing model. The Enterprise plan costs USD 29.75 per seat per month on monthly billing (USD 22.50 on annual billing) and requires at least five licenses, according to its pricing page as of October 26, 2026. You pay the same in a week with twenty meetings as in a week with none.
  2. Where the data lives. Recordings and transcripts of meetings with clients sat in a third party's cloud, under its terms. We wanted the audio, the transcript and the minutes to live on our server, under our privacy notice and with deletion deadlines that we set.
  3. What you can do with minutes. Minutes sitting in an inbox are a document. Minutes that feed the CRM are a commercial signal: a renewal that is hinted at, a complementary service someone asked for, a continuity risk worth attending to. We wanted the second, and that requires controlling the output format.
  4. What we do for a living. Transgenia implements artificial intelligence for Mexican SMEs. Building our own meeting platform was the direct way to learn what it costs, where it fails and what guardrails it needs before we propose it to anyone else.
Diagram 2. Timeline from July 2024 to October 2026: first monthly payment for Read AI, publication of jaas-app by Cliff Brake, Transgenia's public fork, hardened fork in production with whisper-1, PR 1 with gpt-transcribe, PRs 2 to 4 and Odoo PR 19, and on October 27 Odoo configured, Meet v8 with sync and the dashboard published.
View Mermaid source
timeline
    title From a monthly seat to our own platform
    July 2024 : First monthly payment for Read AI (Enterprise plan)
    April 15, 2026 : Cliff Brake publishes jaas-app
    August 23, 2026 : Transgenia creates the public fork
    October 14 and 15, 2026 : Hardened fork in production : Transcription with whisper-1
    October 25, 2026 : PR 1 with gpt-transcribe as the only model : First real call, 43 of 43 words
    October 26, 2026 : PR 2, 3 and 4 and Odoo PR 19 : Deployment with a single model
    October 27, 2026 : Odoo configured and Meet v8 with sync : Dashboard published in Laboratorio IA
Diagram 2. From the monthly seat to the own platform. The 2026 dates come from the public repository history and the internal log; the 2024 date, from our accounting.

How do the transcription and the minutes work?

The flow has seven steps. The two that matter are the approvals: there is no transcription unless the host asks for it and no email unless the host approves it.

  1. Join with consent. Each participant joins through the room link, gives their name and email and accepts the transcription notice. Before joining they choose a language (Spanish, English or mixed) and a microphone, and they can run a local signal test that uploads no audio and calls no model.
  2. Capture your own microphone. Each person's browser records only their own microphone, and only while they are not muted. It requests 48 kHz mono, uploads chunks every 15 seconds and rotates the track every ten minutes. At the end it delivers a final manifest with the count, size and hashes of the chunks: silence alone does not prove that a track is complete.
  3. Approve the processing. The host reviews the capture and approves it. Until that moment, not a single second of audio has been sent to any model. The host can also cancel: the audio is kept under the retention policy and is not processed.
  4. Transcribe with a single model. The audio goes to gpt-transcribe, OpenAI's transcription model, through the official Go SDK. There is no automatic fallback to another model and no hidden retries: if a request ends in an uncertain state, a person reviews it. The transcript carries time-window precision, not word-level timestamps, and it does not identify who spoke.
  5. Draft the minutes. GPT-5.4 mini receives the consolidated transcript and returns strict JSON: summary, decisions, tasks, risks and sentiment with verbatim quotes. The call goes through the Responses API with the option not to store the conversation at OpenAI. Minutes with quotes that do not exist in the transcript are rejected before they reach anyone.
  6. Review and approve the send. The room owner receives an email that only says minutes are ready, with no content. On the minutes page they see the proposed participants, remove anyone who should not receive them and approve. Each address receives the minutes and the full transcript once, with replies addressed to the host.
  7. Extract commercial signals. In the same minutes request, the model proposes up to twelve commercial hypotheses, each with a verifiable quote. Those hypotheses do not go in the email to participants: they live in an internal view for the host and in Odoo, where a person accepts or discards them.

What is kept and for how long: transcripts, minutes and participant emails are kept for nine months; the original audio is stored privately for up to 30 days, with a global quota of 10 GiB, and is deleted sooner if the host deletes the room. Video recordings do not exist: we do not record video. The server logs record the method, path, status and timing of each request, never the content, and an automated test verifies it.

Three third parties take part: 8x8 provides the video call, OpenAI processes the audio and drafts the minutes, and Cloudflare authenticates access to the admin panel. That is what our privacy notice says, and it is the only public promise we make.

How much does it cost to transcribe a meeting with the OpenAI API?

The figures below are list prices published by each provider, read on October 26, 2026. They do not include the server (we already had it), the engineering or the time of the person who reviews.

ItemList priceSource
whisper-1, the model we started with; OpenAI marks it as deprecatedUSD 0.006 per minute of audioOpenAI, model page
gpt-transcribe, the current modelUSD 0.0045 per minute of audioOpenAI, model page
GPT-5.4 mini, the minutes modelUSD 0.75 per million input tokens and USD 4.50 per million output tokensOpenAI, model page
Read AI, Enterprise planUSD 29.75 per seat per month (monthly) or USD 22.50 (annual), minimum five licensesread.ai, pricing page

A 60-minute meeting costs USD 0.27 to transcribe with gpt-transcribe (60 times 0.0045) and would have cost USD 0.36 with whisper-1. The minutes depend on the token count: if the transcript of that hour takes 12,000 input tokens and the minutes 2,000 output tokens, that is USD 0.009 plus USD 0.009. It is an assumption, not a measurement: the API reports the exact count on every call and our application stores it per request.

The comparison that is pure arithmetic: USD 29.75 a month, the price of one Enterprise seat, equals 110 hours of audio transcribed with gpt-transcribe at list price (29.75 divided by 0.27). A team with five licenses, the plan's minimum, pays per month what it would cost to transcribe more than 550 hours.

Two caveats. First: our application logs every request with the usage the provider reports, but leaves the cost at NULL until it is reconciled with the invoice; we are not publishing a real cost per meeting yet because we have not measured it yet. Second: the price per minute is not the total cost. There is a server, there are engineering hours and there is a person who reads every set of minutes. That cost exists in any alternative; what changes is that here we control it.

What evidence is there that it works?

Everything we claim here has a public source or a dated internal record. This is the sequence.

DateFactWhere to check it
April 15, 2026Cliff Brake publishes jaas-app, the application we started from.GitHub, cbrake/jaas-app
August 23, 2026Transgenia creates the public fork.GitHub, Transgenia/jaas-app
October 14 and 15, 2026Fourteen commits harden the fork and take it to production with whisper-1.Fork history
October 25, 2026PR #1: controlled capture and a single transcription model. 39 files and 4,592 lines added. Full Go suite green in 137.7 seconds; 11 of 11 capture tests in Node.PR #1 of the fork
October 25, 2026First real call to gpt-transcribe with 15 seconds of synthetic audio: response in 2,105 milliseconds, 43 of 43 words recognized, edit distance zero.Internal pilot log
October 26, 2026PR #2 and PR #3: no parallel JaaS transcription, release and handoff to the operator. Live test of up to 45 seconds with two tracks, reviewed and approved in the release session. Production deployment with a single model and 30-day retention verified.PR #2 and PR #3 of the fork
October 26, 2026PR #4 (commercial signals to Odoo, 14 files and 1,517 lines) and PR #19 of the Odoo repository (addon and dashboard): 20 tests, 0 failures, 0 errors.PR #4 of the fork and PR #19 of our Odoo repository
October 27, 2026Isolated rehearsal of the receiver in Odoo: 20 of 20 tests. Private backup and restore with 3,222 attachments verified, none missing.Internal log
October 27, 2026Odoo configuration GO after three HOLDs that wrote nothing: one owner's profile email did not match their Meet login, and it was solved with a private one-to-one map inside Meet (PR #5 of the fork, schema 8, 9 files and 620 lines, CI green) instead of touching Odoo accounts. Technical key with a narrow scope and a maximum validity of 90 days.PR #5 of the fork; internal log
October 27, 2026Meet version 8 deployed with synchronization enabled only once the queue was empty. "Meetings and opportunities" dashboard published in Laboratorio IA; read-only diagnostic with 9 of 9 pivots correct for two accounts and 0 exceptions in 1,681 log lines. First real meeting synchronized: still pending at the cut-off.Internal log; read from Odoo on October 27

What that evidence does not prove: accuracy with two people talking at once, with noise or with accents, or the real cost per meeting. Fifteen seconds of synthetic audio are an integration test, not a quality measurement. Quality gets evaluated during use, with real meetings, and we will report it when we have figures.

Diagram 3. The pilot's six gates, each with GO or HOLD: source, data and migration, backup, integration test, privacy and deployment. Deployment stays locked until all six say GO.
View Mermaid source
flowchart TB
    G1["1. Source
the code is the code that was reviewed"] --> G2["2. Data and migration
consistent snapshot and v6 rehearsal"] G2 --> G3["3. Backup
proven by restoring it"] G4["4. Integration test
one real call to the model"] --> G5["5. Privacy
notice aligned with retention"] G5 --> G6["6. Deployment
window with no active captures"] G3 --> D{"All six GO?"} G6 --> D D -->|"yes"| OK["Deploy and verify
by reading the real state"] D -->|"any HOLD"| NO["Nothing changes
the evidence is kept"]
Diagram 3. Six gates with GO or HOLD. The operator's script runs in plan mode by default; the deploy option only unlocks with six GOs.

How do commercial signals reach Odoo?

Minutes that stay in an inbox get forgotten. That is why PR #4 and the Odoo addon do one thing: carry commercial hypotheses, with their quote, to a place where a person decides.

The model proposes at most twelve signals per meeting, of five types: renewal, expansion, complementary services, new needs and continuity risk. Each signal carries a verbatim quote from the transcript, an intent, a sentiment valence and a confidence level, in separate fields. The rule is written into the data contract: positive sentiment on its own is not purchase intent, and the speaker's identity is always marked as unverified.

The signals leave through a persistent queue with bounded retries toward a receiver in Odoo that accepts them idempotently: a new meeting never inherits the client or the review of another one. In Odoo they live in the Laboratorio IA group, our AI lab, with reader, reviewer and administrator roles, plus a technical account with no general read access. The dashboard has nine pivots: analysis coverage, review, quotes requested and validated, risks not discarded, need types, intent and stance, and needs by client and by service.

Diagram 5. From the minutes to the CRM: the minutes produce up to twelve hypotheses with verbatim quotes, they leave through a persistent queue with bounded retries to an idempotent receiver in Odoo, they appear on the Laboratorio IA dashboard and a person accepts or discards them; only on acceptance does a CRM form open, without saving it.
View Mermaid source
flowchart LR
    M["Draft minutes"] --> S["Up to 12 hypotheses
with verbatim quotes
5 types, intent and sentiment kept separate"] S --> Q["Persistent queue
bounded retries"] Q --> R["Receiver in Odoo
idempotent"] R --> T["Laboratorio IA dashboard
9 pivots"] T --> P{"A person
reviews"} P -->|"accepts"| C["CRM form
opened, not saved"] P -->|"discards"| E["Kept as evidence"]
Diagram 5. A hypothesis with a quote is not an opportunity. Nothing creates opportunities, tasks or emails: accepting a signal is a human decision.

What it does not do, on purpose: it does not create opportunities, it does not create tasks and it does not send emails. Accepting a signal is a human decision; when someone accepts one, a button opens a CRM form with Odoo's normal permissions and the person decides whether to save it. The sync worker is off by default and does not regenerate old analyses: reprocessing a meeting is a separate operation, with its own separate cost.

What it took to close the integration. The integration closed on October 27, 2026 (the night of the 26th in Mexico) and it was not clean, so we tell it. Configuring the source in Odoo returned three HOLDs in a row without writing anything: two identical owner emails, a user that could not be found by email and, finally, an account whose Meet login matched its Odoo login but not its profile email. The easy way out was to edit that email in Odoo; the instruction was not to move anything there. The solution was a private one-to-one map that lives in Meet and only translates the owner's email when sending to Odoo: if an owner is not in the map, the send fails closed, and an immutable digest prevents a retry from switching owners. That is PR #5 of the fork, with its CI green, merged six minutes after it was opened.

Then came the technical key: two more HOLDs, because a module installed in our Odoo overrides the method that generates keys and the helper refused to continue without understanding what that code did. It was read, the helper was adapted, and the third attempt returned GO. The key has a narrow scope, a maximum validity of 90 days and lives in a file nobody prints.

Meet version 8 was deployed first with synchronization off. It was enabled only after confirming that the outbox was empty and after the operator declared four things in writing: a window with no recordings, consent under the 30-day notice, human review of the signals and manual client association. Not a single historical meeting was queued. A person published the dashboard, not the installer. And the first look showed an error in the pivots: the account opening the dashboard did not have the Meet reader group; the backend tests had passed with two other accounts. The role was added, 9 of 9 pivots turned green, and a lesson was written down: a "No data" behind an IFERROR does not prove the database is empty.

At the cut-off of this logbook, the integration is active and verified with synthetic data. The first real meeting that reaches Odoo will be the missing proof, and we will publish it when it happens.

What does it not do yet?

We wrote this list before anyone asked us for it.

Diagram 6. Three columns: done (capture with approval, a single model, draft minutes, email with approval, retention of 9 months and 30 days, dashboard published in Odoo), piloting (first real meeting in Odoo, quality with real meetings, real cost per meeting) and by design it will not (sending without approval, invented speaker labels, accounts for third parties).
View Mermaid source
flowchart TB
    HECHO["Done"] --> H1["Capture with approval"] --> H2["One model per stage"] --> H3["Draft minutes"] --> H4["Email only with approval"] --> H5["Retention 9 months and 30 days"] --> H6["Dashboard published in Odoo"]
    PILOTO["Piloting"] --> P1["First real meeting in Odoo"] --> P2["Quality with real meetings"] --> P3["Real cost per meeting"]
    NUNCA["By design it will not"] --> N1["Send without approval"] --> N2["Invent who spoke"] --> N3["Accounts for third parties"]
Diagram 6. What is done, what is still piloting and what by design it will not do. The list exists before anyone asks for it.

What did we learn operating AI agents in production?

This project was operated by two AI agents and one person with administrator permissions, each in their own role.

A Codex agent, from OpenAI, ran the server diagnosis and prepared every script in read-only mode: no sudo, no access to secrets and no touching production. A person copied each block, ran it as administrator and pasted the result back. Claude Code, from Anthropic, wrote this article from the transcripts of those sessions, from the public PRs and from our accounting, and passed the site's editorial gates. OpenAI's models transcribe and draft; Anthropic's review and write. We are partners of both and use each where it performs.

Diagram 4. Who does what: a Codex agent from OpenAI diagnoses and prepares scripts in read-only mode; a person with administrator permissions runs them in production; Claude Code from Anthropic writes and reviews this article; OpenAI's models transcribe and draft; 8x8 provides the video call and Cloudflare authenticates the panel.
View Mermaid source
flowchart LR
    CX["Codex agent (OpenAI)
diagnoses and prepares scripts
read-only, no sudo"] --> H["Person with administrator
permissions
runs them and pastes the result"] H --> P[("Production
meet.transgenia.org")] P --> OA["OpenAI models
gpt-transcribe and GPT-5.4 mini"] P --> X8["8x8 JaaS
video call"] P --> CF["Cloudflare Access
panel identity"] CC["Claude Code (Anthropic)
writes and reviews"] --> ART["This article"] CX -.->|"session
transcripts"| CC
Diagram 4. Two AI agents and one person, each in their own role. No agent touched production; the person ran every block and pasted the result.

The rules that came out of that operation fit in a list:

How do you replicate it in your company?

What we did for ourselves can be implemented in a Mexican SME under three conditions: a server of your own or a small VPS, an OpenAI API key dedicated to the service and a CRM that receives the signals (we use Odoo Community). The fourth condition is not technical: a person who approves every set of minutes before it goes out.

The typical project starts with the company's real meeting flow: who calls the meetings, what gets decided in them and where those decisions should go. Then comes the choice between a platform of your own, like ours, and integrating transcription with the video call tool you already use. What does not change is the principle: data at home, a single model per stage, human approval and signals that end up in the CRM.

If you want to evaluate it for your company, the AI implementation page explains how we work and the contact form reaches a person.

Where Transgenia stands

Paying per seat makes sense when there is nobody to build; paying per use makes sense when there is. One Read AI seat costs per month what 110 hours of transcription cost at list price, and our team does not transcribe 110 hours a month. But the underlying argument is not price: the audio of a meeting with a client is the client's data, and we would rather have it live on a server of ours, with a deletion deadline written in a public notice, than in a third-party account. We recommend the same to anyone who asks us.

Sources

  1. Transgenia/jaas-app PR #1: controlled audio capture and single-ASR pilot (October 25, 2026).
  2. PR #2: no parallel JaaS transcription or duplicate script loading (October 26, 2026).
  3. PR #3: production pilot preparation and operator handoff (October 26, 2026).
  4. PR #4: evidence-backed commercial signals synchronized with Odoo (October 26, 2026).
  5. PR #19 of our Odoo repository (private repository, no public link): commercial intelligence dashboard in Laboratorio IA, October 26, 2026. Its test figures also appear in the public description of PR #4.
  6. cbrake/jaas-app, Cliff Brake's original project.
  7. gpt-transcribe, model page and price per minute (OpenAI, read on October 26, 2026).
  8. whisper-1, model page, price and deprecated status (OpenAI, read on October 26, 2026).
  9. GPT-5.4 mini, model page and prices per million tokens (OpenAI, read on October 26, 2026).
  10. Read AI, pricing page (read on October 26, 2026).
  11. Transgenia privacy notice: Meetings and minutes (meet.transgenia.org).
  12. meet.transgenia.org, public entry page.
  13. Internal pilot log (October 25 and 27, 2026): not public; the figures are quoted as they were written.
  14. PR #5 of Transgenia/jaas-app: private owner map that preserves Odoo accounts (October 27, 2026).

Frequently asked questions

What is meet.transgenia.org?

It is Transgenia's internal meeting platform: video calls on 8x8's Jitsi as a Service, transcription with OpenAI's gpt-transcribe, draft minutes with GPT-5.4 mini and commercial signals that reach our Odoo. The code is a public fork of Cliff Brake's jaas-app project. It is not a product for sale; it is our tool and the test bench for what we implement for clients.

Why did you stop paying for Read AI?

Because of the per-seat billing model (USD 29.75 per month on the Enterprise plan, with a minimum of five licenses), because we wanted the audio and the minutes to live on our server under our privacy notice, and because we needed the minutes to feed the CRM instead of staying in the inbox. It was not about quality: it did what it promised.

How much does it cost to transcribe one hour of a meeting with the OpenAI API?

At OpenAI list prices as of October 26, 2026, USD 0.27 with gpt-transcribe (0.0045 per minute) and USD 0.36 with whisper-1. The minutes are billed by tokens: with 12,000 input and 2,000 output tokens on GPT-5.4 mini, that is about two cents more. It does not include the server, engineering or human review, and our real cost per meeting is not reconciled yet.

Which model drafts the minutes?

GPT-5.4 mini, through OpenAI's Responses API and with the option not to store the conversation. It returns strict JSON with a summary, decisions, tasks, risks and sentiment backed by verbatim quotes. Minutes whose quotes do not exist in the transcript are rejected before anyone sees them, so a fabricated quote never reaches a reader.

Where are the audio, the transcript and the minutes stored?

On our server, in a SQLite database and a private audio directory. Transcripts, minutes and participant emails are kept for nine months; the audio, for up to 30 days with a global quota of 10 GiB. If the host deletes the room, everything is deleted immediately. The third parties involved are 8x8, OpenAI and Cloudflare, as the privacy notice states.

Does it identify who spoke?

No. Each browser records only its own microphone, and attribution comes from the name of the session that captured it, not from voice recognition. There is no diarization, and the speaker's identity is always marked as unverified. If a microphone is shared, the track carries that mark and no labels are invented.

Are the minutes sent to participants automatically?

No, and that is a design decision. The room owner receives a notice with no content, reviews the minutes, adjusts the recipient list and approves. Only then does each address receive the minutes and the transcript once, with replies addressed to the host. The commercial hypotheses never go in that email.

What reaches Odoo?

Up to twelve signals per meeting, of five types: renewal, expansion, complementary services, new needs and continuity risk, each with a verbatim quote, intent, sentiment and confidence in separate fields. They land on a dashboard in the Laboratorio IA group. Nothing creates opportunities or tasks: a person accepts the signal and decides whether to open the CRM.

Can I use meet.transgenia.org for my meetings?

Not as a service: only someone with the link to a room created by our team can join. What we do offer is implementing an equivalent platform on your company's infrastructure, with your API key, your CRM and your retention policy, as part of our AI implementation services.

Which part of the code is Transgenia's and which is the original project's?

The base (rooms, signed permissions for JaaS, 8x8 recordings and transcriptions) is from jaas-app, by Cliff Brake, used with the author's permission. Transgenia added browser audio capture with host approval, the minutes worker, configurable retention, identity-based access, emails with approval and the sync with Odoo. All of it is in the public fork, PR by PR.

About the author and Transgenia

Efraín Carreón Ortiz is Director General (Chief Executive Officer) of Centrum Transgenia, a Mexican technology consultancy, and carries most of the company's sales. He holds the official Claude Code badge (Claude Partner Badge) issued by Anthropic, verifiable on Credly.

Transgenia is an OpenAI Select Partner within the OpenAI Partner Network and a registered partner in Anthropic's Claude Partner Network. Team: Víctor Estrada Bello, Chief PMO; Danild Johan Zambrana López, Chief Technology Officer; Jaime Lozano Castañeda, Chief Marketing Officer; Efraín Carreón Ortiz, Director General (Chief Executive Officer).

Let's talk: contacto@transgenia.org, WhatsApp +52 55 8034 0405, 15-minute call or the contact page.

Keep reading

Hashtags: #ReadAI #ReadAIAlternative #AIMeetingNotes #MeetingTranscription #SelfHosted #Odoo #OpenAI #Jitsi #AIAgents #AppliedAI

← Back to Blog
Transgenia, Verified IT agency on Vai.me