Odoo
INTEGRATIONS · EXPERTINI ATS

Odoo

Connect your own Odoo server and push new hires to Odoo HR and draft placement invoices — live today, with your own API key.

2 min de leitura · Atualizado em julho de 2026 · Redação da Expertini

The Odoo ATS integration is live in Expertini ATS today. If your organisation runs Odoo — self-hosted, on Odoo.sh, or Odoo Online — you connect your own server with your own API key and close two gaps at once: accepted hires push into Odoo HR as employee records, and client placements become draft invoices in Odoo Accounting. No re-keying at either end of the hire.

Because it is your server and your key, the connection works the way self-hosted teams expect: no third-party middleware, no data passing through a vendor you did not choose, and no usage fees — the connector is included on the Business plan, alongside the native Client CRM commission tracking that feeds the invoice figures. Sign up and connect from the in-app hub.

01Two gaps closed: hired-to-onboarded and placement-to-invoice

In-house teams use the HR push: the moment an offer is accepted, the new starter appears in Odoo HR ready for onboarding, with the details recruitment already captured. Agencies use the invoicing push: a client hire generates a draft invoice in Odoo Accounting carrying the commission figure tracked in the Client CRM. Many Odoo shops use both.

02Your server, your key, your control

Setup is deliberately simple and honest: point Expertini at your Odoo URL and database, supply an API key from your own Odoo user, and the connection is yours. It works with self-hosted installations, Odoo.sh, and Odoo Online alike. Invoices arrive as drafts, so your accounting workflow — taxes, journals, approval — stays exactly as Odoo users configured it.

03Two-way: your Odoo data eases the ATS, and back

The connection also reads your instance, which is where an ERP shop saves real hours. Import pulls your Odoo companies (res.partner) into Expertini's Client CRM as prospect clients — name-matched, nothing overwritten, safe to re-run — and export creates ATS clients as Odoo contacts, deduplicated against what's already there, so sales and recruiting stop maintaining two diverging company lists by hand. The people side goes further: "Import your people" reads Odoo HR's employee directory into the ATS candidate database — not as a dead list, but as records with parsing, search, and resume scoring attached, ready for internal-mobility searches against live roles. Every direction is an explicit button with a created-versus-skipped report, logged on the app's activity page, and governed by the permissions of the Odoo user whose key you supplied.

04Part of the Business plan

ERP connectors — Odoo included — sit in the Business plan, with no per-connection or per-push charges on top of it. The workflow producing the data (offer letters, audit-report PDFs, the hiring pipeline) ships across all plans; the Odoo connection itself is the enterprise-tier piece.

Notas de engenharia

Arquitetura e operações da plataforma

A1Connection architecture

This is a direct connection to a system you host or key yourself: the form takes your instance URL and credential, verifies them with a live call before anything is saved, and stores secrets encrypted at rest. Connection pages show presence ("connected", "saved ✓"), never the values themselves.

Because the credential is yours, rotation is in your hands: replace the key in your own system, paste the new one here, and the live verification confirms it before the old one is overwritten. Disconnecting removes the stored credential immediately.

A2Write semantics and data flow

Every data movement is an explicit action with a logged result. Writes happen on your click — or automatically only where you enabled a rule (auto-push on hire is off by default, per-provider). Reads — imports of people, accounts, or files — run when you press Import, deduplicate against what you already have (clients by name, people by email), skip rather than overwrite, and report created-versus-skipped honestly, which is why re-running any import is safe by design.

Each action writes a row to the app-activity journal (ats_app_activity): what ran, when, for which record, and the outcome — including the vendor's own error text verbatim when something fails. Usage reporting inside the ATS aggregates that same journal, so integration reporting and integration reality cannot diverge.

Anything that leaves the request path — notification fan-out, webhook delivery, activity journalling, mail — runs in fire-and-forget background threads. A slow external endpoint can never make the interface hang, and a failed side effect is logged rather than silently retried into inconsistency.

A3Operational considerations

Connections are organisation-level and gated to owner and admin roles; recruiters use the features a connection powers but cannot connect, disconnect, or reconfigure. Disconnecting removes stored credentials immediately and stops the dependent features visibly, not silently. Data already imported stays yours and editable.

Imported people arrive marked as imported with conservative privacy defaults — no consent is assumed for anyone who never filled in your application form, and retention defaults apply. Everything written is yours to take: CSV exports and the Data Export app cover the same stores the product itself reads. The exit is as open as the entrance — by design, not concession.

A4Placement in the integration topology

This integration is live in the registry today. One connection per provider unlocks every feature it powers, and the topology grid below shows the neighbouring connectors in the same capability area — statuses come from the same registry that drives the in-app hub, so this page can never claim more than the product does. For anything the catalogue does not cover, Webhooks and Zapier are the generic, documented escape hatch.

Mapa de dependências de

Connection typedirect — your instance URL + credential, verified live before save
Secrets at restencrypted; UI shows presence flags, never values
Action journalats_app_activity — one row per action, vendor errors verbatim
Auto-push rulesoff by default, per-provider, every run logged
Registry statuslive

Esboço da interface de

Esquema estrutural da interface — painéis, hierarquia e facilidades de interação. Um contrato, não uma captura de ecrã.
Cartão de ligação
● ligado — indicador de presença
âmbitos: mínimo obrigatório desligar
Ações
envio — clique explícitoimportação — deduplicada
Diário de atividade
Fig. 1 — Odoo: esquema estrutural da interface. Os painéis e estados são o contrato; os dados apresentados são marcadores de posição.

Fluxo de interação — estados, validações, feedback

Todos os estados abaixo são aplicados do lado do servidor; a interface reporta-os, não os decide.
Enter URL + credentialyour own instance, your own key
Live verificationa real call must succeed before anything is stored
Encrypted storesecrets at rest; presence-flag display
Explicit actionspush / import / invoice on your click
Journalper-action row, vendor errors verbatim
Verification fails → the vendor's own response is shown; nothing savedCredential rotated → paste the new one; verified before overwriteDisconnect → credential removed immediately
Fig. 2 — fluxo de interação: azul-marinho = estados, dourado = portas aplicadas pelo servidor, verde = resultados confirmados; as etiquetas enumeram os casos limite e respetivo feedback.

Neighbouring connectors — Enterprise Resource Planning

Os estados provêm do registo ativo — consultar o catálogo completo →

Perguntas frequentes

Is the Odoo integration really live now?
Yes. Connect your own Odoo server from the in-app hub after signing in, using an API key generated in your Odoo instance.
Which Odoo hosting types are supported?
Self-hosted servers, Odoo.sh, and Odoo Online — the connection is made to your instance URL and database with your API key.
Does Expertini store my accounting data?
No. Expertini pushes hire and draft-invoice data into your Odoo; your books remain in your Odoo instance under your control.
Are invoices posted automatically?
No — they are created as drafts in Odoo Accounting so your finance team reviews and posts them under your normal workflow.

Num relance

  • Live today — connect with your own API key
  • Push accepted hires into Odoo HR
  • Import Odoo companies as clients · export clients back
  • Import Odoo HR people into the scoreable candidate database
  • Draft placement invoices in Odoo Accounting
  • Works with self-hosted, Odoo.sh, and Odoo Online
  • Commission figures from the native Client CRM
  • Included in the subscription — no connection fees

Veja odoo no seu próprio processo de recrutamento.

Traga uma descrição de vaga real para uma demonstração de 30 minutos — teste gratuito incluído.

Marcar uma demonstração
Expertini Inteligente
Online agora
Olá! Sou o Especialista de Produto de Inteligência Artificial da Expertini. Pergunte-me qualquer coisa sobre as nossas soluções, obtenha orientação sobre qualquer uma das nossas Ferramentas de Recrutamento ou diga-me simplesmente o que está a tentar fazer — direcioná-lo-ei para o caminho certo. Para questões específicas da conta, envie um e-mail para support@expertini.com.