bots4.me

Import Supplier Confirmations Into Odoo

Written by

in

BOTS4.me Logo

How to Import Supplier Order Confirmations into Odoo Automatically

Update purchase order prices, quantities, and delivery dates in Odoo — without retyping a single supplier PDF

Every purchase order you send comes back as a confirmation email: a PDF, an Excel sheet, sometimes just a few lines of text. Someone on your team opens each one, compares it line by line against the PO in Odoo, and updates prices, quantities, and delivery dates by hand. This guide shows why that manual loop breaks down, what the usual workarounds miss, and how Supplier2ERP imports supplier confirmations into Odoo automatically — with your tolerance rules deciding what gets updated and what gets flagged.

💸 What Manual Confirmation Entry Really Costs

A supplier order confirmation looks harmless — until you multiply it by every PO you send. Each confirmation has to be opened, read, and compared against the purchase order in Odoo. Did the supplier confirm the full quantity? Did the unit price change? Did the delivery date slip by two weeks? Every answer means clicks and retyping in the Purchase app.

The damage of skipping that work is worse than the work itself. When confirmations are not entered, Odoo quietly shows the wrong picture:

  • Wrong incoming dates: Odoo still expects goods on the original date, so your scheduled receipts, sales promises, and replenishment planning are built on stale data.
  • Wrong prices: the vendor bill arrives and does not match the PO, so accounting chases purchasing for an explanation weeks after anyone remembers the order.
  • Silent short shipments: the supplier confirmed 60 of 100 units, nobody updated the line, and the stockout surfaces only when a customer order cannot ship.
  • Hours of skilled time lost: procurement people spend their day copying numbers between a PDF and a browser tab instead of negotiating or solving supply problems.

The task is pure comparison and data entry — exactly the kind of work software should do, and exactly the kind of work people do worst when bored.

🔧 The Ways Teams Usually Try to Solve It

1. Keep doing it manually

Works at five POs a week. At fifty, confirmations pile up unread, and the ones that get entered are entered in a hurry. Manual comparison is also where transposed digits and skipped lines are born.

2. The built-in Odoo email gateway

Odoo’s incoming mail gateway is great at attaching an email to a record — it can log the confirmation in the chatter of a purchase order. But it does not read the PDF, does not compare confirmed values against your PO lines, and does not update quantities, prices, or dates. The document is filed; the work remains.

3. Generic OCR tools and Zapier-style connectors

Template-based OCR tools can extract fields from a document — after you build and maintain a template per supplier layout. Suppliers change their formats without warning, and a connector that extracts text still cannot answer the real question: does this match my open PO in Odoo, and is the difference within tolerance? Extraction without ERP-aware matching just moves the manual comparison one step downstream.

4. Custom scripts

A developer can script the happy path for your top three suppliers. Then supplier number four sends a scanned image, the layout changes, the developer leaves, and the script becomes one more thing nobody dares touch.

🤖 The Automated Way: Supplier2ERP

Supplier2ERP is a BOTS4.me bot that watches your mailbox, reads supplier confirmations in any format, matches them to open purchase orders in Odoo, and updates delivery dates, quantities and — from the Business plan — prices according to tolerance rules you set.

📧

Supplier confirmation arrives

→
🤖

Data extracted from PDF, Excel, Word, or scan

→
⚙️

Matched to your open PO

→
💾

Odoo PO updated within tolerance

→
✅

Report emailed, differences flagged

🧠 Three-tier extraction — rules first, AI as backup

Tier 1 — Code anchoring: Supplier2ERP looks for your own product codes from the Odoo item catalog inside the supplier document. No templates, works with any layout from day one.

Tier 2 — Learned patterns: once a supplier’s format has been processed, its extraction rules are saved. Future confirmations from the same supplier process instantly.

Tier 3 — AI fallback: only when rules and learned patterns are not enough does AI extract and verify the data — including scanned images via OCR.

Set it up in about five minutes

  • Step 1 — Start your free Discovery month: Sign in at bots4.me/bots, click Start free Discovery month on the Supplier2ERP card and accept the Terms once — no credit card needed.
  • Step 2 — Connect your mailbox: use Secure Quick Connect (OAuth for Gmail, Office 365; any IMAP provider supported). No middleware, no forwarding rules.
  • Step 3 — Connect Odoo: install the free BOTS4.me Connect module (Odoo 13–19). Odoo.sh and on-premise get the Python connector, installed once and connected in one click. Odoo Online users create an API key under Settings → Users & Companies → Users → your user → Account Security and paste it at bots4.me under Settings → Supplier2ERP → Access Manager → Add Destination → ERP → Odoo (an optional zero-code XML helper adds a BOTS4.me menu inside Odoo). Odoo Online needs Odoo’s Custom plan for API access. One connection serves every BOTS4.me app that works with Odoo.
  • Step 4 — Tell it your suppliers and tolerances: once Odoo is connected, Supplier2ERP picks up the vendors that have open purchase orders and emails you the list; teach it any other supplier by dragging one of their confirmations into _Supplier2ERP/IMPORT, and stop one with _Supplier2ERP/DO_NOT_IMPORT. On the Control tab, Max price/quantity change and Max item differences decide how big a difference may be before a confirmation is flagged instead of applied.
  • Step 5 — Start in DEMO: the bot reads real confirmations, matches them to your real purchase orders and emails you exactly what it would update — writing nothing. When the DEMO reports look right, set Mode to LIVE on the Control tab — it unlocks after the first DEMO report email.

🧭 Try It in Your Free Discovery Month

Your first month of Supplier2ERP is a free Discovery month: the usage allowance of the Personal plan with Auto-Update Quantities and Pre-processing unlocked to try, and no credit card needed. Here is how to get your first purchase order updated from a real supplier confirmation.

Day 1 — Start and connect

  • Sign in at bots4.me/bots, click Start free Discovery month on the Supplier2ERP card and accept the Terms once — no credit card needed.
  • Open Settings (gear) → Supplier2ERP → Access Manager → Add Source to connect your mailbox (Secure Quick Connect for Gmail and Microsoft 365, IMAP with an app password for other providers). Or add the BOTS4.me Mailbox (one click, no password) and forward confirmations to supplier2erp@bots4.me from your account email address.
  • Connect Odoo: click Add Destination → ERP → Odoo, or install the free BOTS4.me Connect module in Odoo and press Connect. On Odoo Online you paste an API key instead.
  • Odoo Online needs Odoo’s Custom plan for API access.
  • With an API key, give that Odoo user Purchase (User) and Contact Creation rights.

Day 1 — Tell it your suppliers

  • Vendors with open purchase orders: once Odoo is connected, Supplier2ERP picks them up automatically and emails you the list of suppliers it will read.
  • Any other supplier: drag one of their confirmations into _Supplier2ERP/IMPORT. It is read on the next run, and from then on every confirmation from that sender. The sender is also marked as a supplier, so Mail2ERP will not import it as a customer order.
  • A sender to ignore: drag one of its emails into _Supplier2ERP/DO_NOT_IMPORT. The folders appear after the first run and follow your app language.

Day 1 — Check the Control tab

  • Mode: Supplier2ERP starts in DEMO — it matches real confirmations to real purchase orders and emails you what it would change, without writing anything.
  • Supplier2ERP Features: ERP Matching, ERP Updates, Template Extraction, AI Extraction Fallback and Logs in your mailbox are on. Switch on Scanned PDF Files if suppliers send scans or photos as PDF.
  • Switches with a Discovery tag on the Control tab are included in your free month and start switched off — switch on the ones you want to try.
  • For Supplier2ERP the one to switch on is Auto-Update Quantities, so confirmed quantity changes are applied, not only reported (Pre-processing also needs AutoSPAM). Auto-Update Prices needs the Business plan; until then price differences are reported to you.
  • Tolerances: Max price/quantity change is the largest change per line that may be applied, and Max item differences is how many lines may differ before the whole order goes to you for review.
  • Reports: choose under Email reports whether you hear about clean confirmations after each one, once per run, or as a daily or weekly summary. Optional: Daily delay alerts emails you the deliveries that are late or at risk.
  • Operating Hours and Run Schedule: Supplier2ERP runs only inside the Operating Hours, which start as weekday office hours.

Week 1 — Check it, then go LIVE

  • Test with a real confirmation: it should quote your Odoo PO number, or come from the email address on the vendor in Odoo, and list your product codes. Each DEMO report shows line by line what matched and what would change.
  • Look where the results land: applied confirmations move to _Supplier2ERP/PROCESSED; flagged or unreadable ones stay unread in your INBOX, or in _Supplier2ERP/MANUAL when they came through IMPORT. The Logs tab and the _Supplier2ERP/LOGS folder say why. A missed confirmation can be dragged into _Supplier2ERP/IMPORT to try again.
  • When the DEMO reports look right, set Mode to LIVE on the Control tab — it unlocks after the first DEMO report email.

📅 When the Discovery month ends

When the month ends, Supplier2ERP continues on the free plan by itself with a small monthly allowance: when it is used, new items wait until next month or until you choose a plan, and an item already started always finishes. Choose a plan to keep all features — see the plan table on the Supplier2ERP product page.

On the free plan, delivery dates are still updated, while quantity updates, scanned PDF reading, template learning and the LOGS folder need a plan. Nothing you updated is reversed.

📅 What Day-to-Day Operation Looks Like

Once live, Supplier2ERP runs on the Run Schedule you choose, within the Operating Hours you define. Each run works through new supplier emails and attachments:

  • Within tolerance: confirmed delivery dates are written to the matching PO lines in Odoo, together with confirmed quantities (with Auto-Update Quantities on, from the Family plan) and unit prices (with Auto-Update Prices on, from the Business plan); the processed email is filed into _Supplier2ERP/PROCESSED. Without those switches the differences are reported to you instead of applied.
  • Outside tolerance: large differences are flagged in your report and the email stays unread — in your INBOX, or in _Supplier2ERP/MANUAL when it came through _Supplier2ERP/IMPORT — and the PO is left untouched until you review it. Nothing gets buried.
  • Full transparency: a difference report shows what was extracted, what matched, what changed, what was skipped and why — after each confirmation, once per run, or as a daily or weekly summary, as you choose under Email reports. Confirmations that need you always arrive straight away. The dashboard’s Logs tab and the _Supplier2ERP/LOGS folder in your mailbox keep the decision history.
  • Full control: Bot Power on/off, per-feature toggles and AI Mode from Off up to the level your plan includes, all in the Control tab at bots4.me/bots. EU-hosted, built for GDPR, optional 2FA, reports in 31 languages.

🔄 The Missing Piece of the Odoo Inventory Loop

Supplier2ERP closes a loop that two sibling bots open. AutoSTOCK computes optimal stock targets from your real sales history and writes them as native Odoo reordering rules. AutoPURCHASE turns those targets into draft purchase orders, grouped per vendor with minimums respected. When your suppliers confirm those orders, Supplier2ERP reads the confirmations and keeps every PO honest — confirmed prices, quantities, and dates land back in Odoo automatically.

Together the three bots take you from “how much should we stock?” to “the goods are confirmed and Odoo knows it” with almost no manual procurement work.

🌍 Works Beyond Odoo

This guide focuses on Odoo (versions 13–19, including Odoo Online, Odoo.sh, and on-premise), but Supplier2ERP also works with ERPNext, Zoho, Dolibarr, Business Central online, QuickBooks Online, Xero and SAP Business One, each with an update strategy built for that system. Using something else? Contact us — any other ERP with an API is connected on request.

❓ Frequently Asked Questions

Can Odoo update purchase orders from supplier confirmation emails automatically?

Not out of the box. Odoo’s email gateway can attach a confirmation to a PO’s chatter, but it does not read the document or change PO lines. Supplier2ERP adds that layer: it extracts confirmed quantities, prices, and delivery dates from the email or attachment, matches them to the open purchase order, and updates Odoo within tolerance rules you define.

How does Supplier2ERP read supplier PDFs without templates?

Through code anchoring: it searches the document for your own product codes taken from your Odoo item catalog, so any supplier layout works from day one. After a supplier’s format is processed once, extraction patterns are saved and reused. Only when both fail does AI step in as a fallback — including OCR for scans and images.

What happens when the confirmed price or quantity differs from my PO?

You set tolerance thresholds (Max price/quantity change and Max item differences). Small differences are written to the PO when the matching switch is on — Auto-Update Quantities from the Family plan, Auto-Update Prices from the Business plan; otherwise they are reported to you. Large differences are flagged in your report, the PO update is skipped, and the supplier email stays unread in your INBOX (or in _Supplier2ERP/MANUAL) so the pending review is impossible to miss.

Does it handle scanned confirmations and images?

Yes. Supplier2ERP processes PDF, Word, Excel, HTML, plain email body text, and images via OCR. For confirmations that arrive as scanned PDFs, switch on Scanned PDF Files in the Control tab — it starts off, and while it is off a scanned PDF is reported for manual entry.

Can I test it without letting it write anything to Odoo?

Yes. Try the Sandbox Demo at bots4.me/demo with sample documents and no access at all, then connect your mailbox and Odoo: Supplier2ERP starts in DEMO, reads your real purchase orders and emails you exactly what it would change — while writing nothing. You switch Mode to LIVE only when you are confident. The first month is a free Discovery month, with no credit card needed.

Which Odoo versions and hosting types are supported?

Odoo 13 through 19 on-premise, plus the current versions of Odoo.sh and Odoo Online. Odoo.sh and on-premise installations use the free BOTS4.me Connect Python module, installed once and connected in one click; Odoo Online (which forbids custom Python) connects with an API key created in Settings → Users & Companies → Users → your user → Account Security, plus an optional zero-code XML helper module. Odoo Online needs Odoo’s Custom plan for API access. One connection serves every BOTS4.me app that works with Odoo.

Does Supplier2ERP work with ERPs other than Odoo?

Yes — ERPNext, Zoho, Dolibarr, Microsoft Dynamics 365 Business Central (online), QuickBooks Online, Xero and SAP Business One are supported, each with an optimized purchase order update strategy. Any other ERP with an API is connected on request.

📚 Related Guides

🔗 Sources and Further Reading

Official documentation and standards referenced in this guide. External links open in a new tab.

Stop Retyping Supplier Confirmations

Connect your mailbox and Odoo in about five minutes, watch Supplier2ERP work in Demo Mode, and go live when the reports convince you. The first month is a free Discovery month, with no credit card needed.