Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Services
  3. Procurement AI Agent v 19.0
  4. Sales Conditions FAQ

Procurement AI Agent

by Pragmatic TechSoft Pvt Ltd. http://pragtech.co.in
Odoo

$ 499.00

v 19.0 Third Party
Live Preview
Apps purchases are linked to your Odoo account, please sign in or sign up first.
You bought this module and need support? Click here!
  • Description
  • Manifest
  • License

Compatible with Odoo v19

  • Overview
  • Features
  • Prerequisites
  • Screenshots
  • Videos
  • Troubleshooting
  • FAQ's
  • Support

Automate your entire procurement cycle

  • Procurement teams lose hours every week to the same routine. Spotting low stock, drafting RFQs, chasing manager approval, negotiating with vendors and following up to make sure every order arrives on time.
  • Our Procurement AI Agent handles that process inside Odoo 19. It monitors inventory levels and when stock falls below the configured reorder minimum, automatically prepares a complete RFQ with the vendor, quantities, pricing details and expected timelines already filled in.
  • The RFQ is then sent directly to the Procurement Manager with one-click Approve or Reject options, helping purchases move forward without getting buried in emails or approval queues.
  • Once approved, the agent contacts the vendor by email and manages the pricing conversation. It reads vendor replies, extracts quoted prices, updates the RFQ in Odoo and continues the negotiation across multiple rounds when required.
  • When the final price is agreed, the Purchase Order is prepared and routed for a second approval. The manager reviews it and confirms it with a single click, after which the vendor is notified immediately.
  • The agent continues tracking the order after confirmation. It sends reminders to Procurement and Inventory teams when goods are due, flags overdue deliveries and shares the relevant order details so delays can be acted on quickly.
  • Every RFQ, approval, vendor response, price revision, Purchase Order and delivery follow-up is recorded in Odoo Chatter, creating a complete audit trail without manual tracking.

Your procurement flow, faster and sharper with AI and Odoo

The difference an AI Agent brings to Odoo

Built Inside Odoo

Runs natively inside your existing Odoo environment without requiring additional software or external data processing.

Takes Action Automatically

Creates RFQs, sends emails, follows up with vendors, and keeps the procurement process moving without manual intervention.

Faster Approvals

Managers approve or reject procurement requests directly from email with a single click.

24×7 Procurement Monitoring

Continuously monitors inventory levels and vendor replies, ensuring procurement continues even outside working hours.

Complete Audit Trail

Every procurement activity is automatically recorded in Odoo Chatter, providing full visibility and compliance.

AI-Powered Vendor Negotiation

Reads vendor replies, updates pricing automatically, and manages negotiations across multiple rounds until the best offer is secured.


  • Key Features
Automated Reordering and RFQs
  • Low-stock monitoring
  • Automatic RFQ generation
  • Reorder-rule based purchasing
  • Product and quantity auto-population
  • RFQ PDF generation
Controlled Approval Workflow
  • Email-based manager approval
  • One-click Approve or Reject
  • Initial RFQ approval
  • Final pricing approval
  • Approval status updates in Odoo
Vendor Communication and Pricing
  • Automatic RFQ emails to vendors
  • AI-assisted price negotiation
  • Vendor email reply monitoring
  • Automatic price updates in Odoo
  • Multiple pricing rounds
  • Finalized quotation review
Purchase Order and Goods Receipt
  • Email-based PO confirmation
  • Automatic vendor notification
  • Purchase Order PDF attachment
  • Linked warehouse receipt
  • Goods receipt validation
  • Automatic inventory updates
Delivery Tracking and Accountability
  • Delivery-date monitoring
  • Due-today delivery reminders
  • Overdue delivery reminders
  • Procurement and inventory alerts
  • PDF delivery reports
  • Complete Odoo chatter audit trail
Central AI Agent Control
  • AI Agent dashboard
  • Automated workflow monitoring
  • Configurable reminder timings
  • Scheduled procurement checks
  • Manual scheduler trigger

Everything Procurement Needs to Keep Moving

Automate repetitive steps, reduce follow-ups and keep every purchase controlled and traceable.

Automated Reordering and RFQs

Monitors reorder levels and creates RFQs automatically with the required products, quantities, vendor and delivery details. This prevents stock shortages and eliminates manual inventory checks and RFQ preparation.

Two-stage Email Approvals

Managers can approve or reject the initial RFQ and review the finalized vendor pricing directly from email. This speeds up purchasing decisions while keeping management in control before every order is confirmed.

AI-assisted Vendor Negotiation

Sends RFQs to vendors, monitors multiple rounds of email replies and updates quoted prices in Odoo, thereby reducing manual follow-ups and avoiding copying vendor prices between emails and Odoo.

Purchase Order Confirmation

Converts the approved RFQ into a Purchase Order and automatically sends the confirmed PO and PDF to the vendor. Move approved purchases forward quickly with fewer repetitive administrative steps.

Linked Goods Receipt

Creates an incoming warehouse receipt connected to the confirmed Purchase Order for quantity verification and validation. Keep purchasing, receiving and inventory records accurate and aligned.

Automated Delivery Reminders

Sends initial reminders for deliveries due today and final alerts for overdue receipts, with PDF reports attached. This reduces missed deliveries and helps Procurement and Inventory teams act before delays are overlooked.

Complete Audit Trail

Records RFQ creation, approvals, pricing updates, status changes and Purchase Order confirmation in the Odoo chatter. This improves accountability and provides a clear history of every procurement action.

Central Agent Monitoring

Provides a dashboard and activity logs for monitoring the AI Agent and procurement workflow. This gives administrators better visibility into automation activity and helps them identify workflow issues quickly.

Prerequisites

Before running the AI Procurement Automation, ensure the following systems and configurations are ready.

Odoo 19 Instance

Running on localhost:8099 or your configured production URL.

Pragmatic AI Agent

FastAPI service should be running on localhost:5500 using uvicorn main:app.

Visual Studio Code

Open the project folder odoo_brain_non_odoo.

Google Workspace

Configure a valid Gmail account for email notifications and approval workflows.

Vendor Configuration

At least one vendor should exist in Odoo with a valid email address.

Products

Products must exist in the Purchase module with correct cost pricing.

Internet Connection Required

A stable internet connection is required for sending and receiving emails through Gmail SMTP.


Installation
Configuration
Dashboard
Purchase Order & Fulfillment
Voice Call Triggering
Workflow

Installation

Launching the AI Agent for the first time and signing in to its dashboard.

  1. Open Visual Studio Code : Launch VS Code and open the project folder odoo_brain_non_odoo (located under infinitebrains/odoo_brain_non_odoo).
  2. Open the Integrated Terminal : Press Ctrl+` or go to Terminal > New Terminal.
  3. Activate the virtual environment : Run source venv/bin/activate - the terminal prompt changes to show (venv).
  4. Start the FastAPI server : Run the command uvicorn main:app.
  5. Verify the server is running : The terminal displays log lines confirming the agent is live, such as “Running action_initial_purchase_stock_reminder” and “Initial reminder executed.”


📌 Note : The AI Agent must remain running throughout the entire procurement session. Do not close the terminal window while automation is in progress.

  1. Open a web browser and navigate to : http://127.0.0.1:5500/infinitebrains/odoo_brain_non_odoo/index.html.
  2. Sign in with admin credentials : Username admin, Password admin.
  3. Click Sign In : The dashboard loads, showing the AI Agent control interface. Click “Open with live server.”

Product and reorder-rule configuration in Odoo

The foundation the AI Agent monitors before any automation can run.

Product and reorder-rule configuration in Odoo - the foundation the AI Agent monitors before any automation can run.

Product setup

The first phase involves creating and configuring the products that will be part of the automated procurement process.

Create the First Product
  1. Navigate to the Purchase Module : Open Odoo and click on the Purchase module from the main menu (http://localhost:8099/odoo/purchase-products).
  2. Purchase Module

  3. Create a New Product : Click the New button in the top-left corner to open a blank product form.


  4. Enter Product Name : Enter the product name.
  5. Create New Product

  6. Configure General Information tab
    • Set Product Type to Goods
    • Verify Track Inventory is checked (enabled)
    • Note the current Quantity On Hand (e.g., 50.00 units)
    • Set Sales Price to $150.00
    • Set Cost to $100.00
    • Set Sales Taxes to 15%
    • Set Purchase Taxes to 15%
  7. Configure Purchase tab
    • Click the Purchase tab
    • Under the Vendor section, click Add a line
    • Select Vendor 12 as the supplier
    • Set Unit Price to $100.00
    • Set Lead Time to 1 day
    • Set Vendor Bills Control Policy to On received quantities


  8. Save the Product : Click the Save button (or use the cloud icon). The product is now created and visible in the system.
Create the Second Product

The product is created by duplicating the product and then modifying the details.

  1. Duplicate the product : While on the product page, click the gear icon next to the product name in the breadcrumb and select Duplicate from the dropdown menu.
  2. Rename the product : Change the product name from (copy) to the new name.
  3. Update Sales Price : Change the Sales Price to $100.00 (reduced from $150.00).
  4. Clear Cost : The Cost field may reset to $0.00 - this will be updated later via vendor negotiation.
  5. Configure Purchase tab : No vendor is linked yet - this will be managed through the RFQ process. Set Vendor Bills Control Policy to On received quantities.
  6. Save the product : Click Save to store the product.

Reorder rules

Reorder Rules define the minimum and maximum stock thresholds that trigger automatic purchase orders. The AI Agent monitors these rules and takes action when stock falls below the minimum.

Set up Reorder Rule
  1. Open the product page : Navigate to Purchase > Products and open the product.
  2. Access Reordering Rules : Click the Reordering Rules button at the top of the product page. This opens the Reordering Rules view filtered to the product.


  3. Configure the Reorder Rule
    • In the Trigger column, select Auto (the system monitors inventory automatically).
    • Set Min Qty to 100.00 - when stock falls below this level, a purchase order is triggered.
    • Set Max Qty to 200.00 - the system will order enough stock to reach this level.
    • The To Order quantity is automatically calculated as 150.00 units (to bring stock from current 50 units to 200 units).


  4. Save the Reorder Rule : Click Save. The Order button appears on the right side of the reorder rule row, confirming the rule is active and ready.

📌 Note: The reorder rule for the second product should already be configured from the previous setup. Verify that it also has an Auto reorder rule in place with appropriate Min/Max quantities.

Verify the Reorder Rules

To verify the rules are set correctly, navigate to Orders > Purchase Orders from the top menu. Alternatively, use the Reordering Rules view to see all active rules for both products side by side.

Import Guide

N/A - Not applicable to this workflow. The Procurement Automation runs natively inside Odoo - there is no external data-import step; all records (products, vendors, RFQs) are created directly in Odoo or generated by the AI Agent.

Export Guide

N/A - Not applicable to this workflow. No manual data export is required - Purchase Orders and reports are generated and emailed automatically as PDF attachments by the AI Agent (see Dashboard > Feature Panel).

Dashboard

The AI Agent dashboard is the control surface for the automation once the FastAPI server is running (see Screenshots > Installation to sign in).

Main View

Once the AI Agent is running and detects that stock levels are below the defined minimum thresholds, it automatically creates a Request for Quotation (RFQ) and sends an approval request to the Procurement Manager. To trigger a check manually, go to Scheduled Actions, search for “Procurement: run scheduler,” and click Run Manually.







Automatic RFQ Creation

The AI Agent performs the following actions automatically - no manual intervention is required at this stage :

  • Scans inventory levels for all products with active reorder rules.
  • Identifies products where On Hand quantity is below the Min Qty threshold.
  • Creates a new RFQ (e.g., P00160) in Odoo under Purchase > Requests for Quotation.
  • Populates the RFQ with the vendor, order deadline, expected arrival date, and deliver-to location.
  • Adds all qualifying products to the RFQ with their respective unit prices.
  • Logs the creation in the Odoo chatter: “Purchase Order created.”


Approval Email Notification

Simultaneously with RFQ creation, the AI Agent sends an automated approval request email to the Procurement Manager's Gmail inbox :

  • Subject : Urgent Approval Needed : New RFQ [P00160] for Vendor 12
  • Body : Lists the RFQ reference, all products and quantities and requests the manager to approve or reject.
  • Attachment : A PDF copy of the RFQ is attached for review

The email contains two action buttons : Approve and Reject

📌 Note : The approval email is sent to the administrator's Gmail inbox. The manager must log in to Gmail to review and act on the approval request.

Manager Reviews and Approves the RFQ
  1. Open Gmail : Log in to the Procurement Manager's Gmail account.
  2. Locate the approval email : Find the email with subject Urgent Approval Needed : New RFQ P00160 for Vendor 12 in the Primary inbox.
  3. Review the RFQ details : Open the email and review the product list and quantities.


  4. Click Approve or Reject :
    • Click Approve to authorize the RFQ. This triggers the AI Agent to send the RFQ to the vendor.
    • Click Reject to cancel the RFQ. No further action is taken.


  5. Confirmation in Odoo : Once approved, the Odoo chatter updates with “RFQ Proposal Approved.” The RFQ status changes to RFQ Sent.


Server Instance

N/A - Not applicable to this workflow. The automation runs as a single local FastAPI instance (uvicorn main:app) alongside one Odoo server - there is no multi-instance or server-switching configuration to document.

Feature Panel

After manager approval, the AI Agent sends the RFQ to the vendor and manages price negotiation entirely by email.

RFQ Sent to Vendor

The following happens automatically upon manager approval :

  • The RFQ status in Odoo changes from RFQ to RFQ Sent.
  • An email is sent to the vendor's inbox with the subject : My Company Order (Ref P00160).
  • The email contains a formal RFQ PDF attachment, a request for quotation details, and contact information.
  • The Odoo chatter logs: “RFQ → RFQ Sent (Status).”


Vendor Responds with Quoted Prices
  1. Open the vendor's Gmail inbox : Log in to the vendor's Gmail account.
  2. Open the RFQ email : Find My Company Order (Ref P00160) from Administrator.
  3. Reply with quoted prices : The vendor types their price offer in the reply email, e.g. “We can go with this price.”
  4. The AI Agent detects the vendor response : The agent reads the email reply and extracts the agreed prices.
  5. Prices are updated in Odoo automatically
    • Unit prices are updated to the negotiated values (e.g., $40.00 → $50.00).
    • The Odoo chatter logs the price changes, e.g. “$22,500.00 → $18,000.00 (Untaxed Amount).”






The Purchase Order can be downloaded for reference at this stage. If a price needs correction, update the unit price value back to the agreed default and reply through the vendor's email with the updated quotation.







📌 Note : Price negotiation may go through multiple rounds. The AI Agent continuously monitors the email thread and updates Odoo pricing accordingly after each exchange.

Finalized RFQ Sent for Final Approval

Once pricing is agreed upon, the AI Agent sends a second approval email to the Procurement Manager :

  • Subject : The Finalized RFQ - P00160 has been sent to you for review
  • The email confirms the final pricing for each product and requests final confirmation.
  • The chatter logs : “Finalized RFQ Approval request sent”

Purchase Order & Fulfillment

After final approval, the AI Agent converts the RFQ into a confirmed Purchase Order and manages receipt of goods through to inventory update.

Purchase Order Confirmation

  1. Manager receives the finalized RFQ email : The Procurement Manager opens Gmail and finds the finalized RFQ email.
  2. Clicks Approve : Clicking Approve in the email triggers the AI Agent to confirm the purchase order in Odoo.






  3. Odoo Status Update
    • RFQ status changes from RFQ Sent → Purchase Order.
    • The PO now shows the Receive button and Bill Matching option.
    • The chatter logs : “Purchase Order Confirmed - The Purchase Order was confirmed via email approval.”
    • An automated PO confirmation email is sent to the vendor.


Vendor Receives Purchase Order Confirmation

The vendor's Gmail inbox receives the Purchase Order Confirmation email, with subject “Purchase Order Confirmed - P00160,” a PDF attachment, and quick-reply buttons (Order received with thanks / Well received with thanks / I accept this order).





Goods Receipt

Once the vendor ships the goods, an incoming shipment transfer (Warehouse Receipt) is created automatically in Odoo, linked to the confirmed Purchase Order.

Incoming Transfer Created

When the Purchase Order is confirmed, Odoo automatically creates an incoming warehouse transfer

  • Transfer number : WH/IN/00077
  • Receive from : The confirmed vendor
  • Operation Type : My Company : Receipts
  • Source Document : The confirmed Purchase Order
  • Status : Ready (Draft → Ready).

The Odoo chatter logs : “This transfer has been created from: P00160.”

Validate the Goods Receipt
  1. Navigate to the incoming transfer : Go to Purchase > PO > Receipt, or navigate directly to Inventory > Receipts.
  2. Open the transfer record : Click on the transfer record to open it.
  3. Verify quantities received : Confirm the received quantities match the demanded quantities for each product.
  4. Click Validate : Click the green Validate button to confirm receipt of goods. This updates inventory on-hand levels for the products.

📌 Note : After validation, the inventory levels are updated in Odoo. The AI Agent will continue monitoring these levels against the reorder rules for the next procurement cycle.

Delivery Reminders

The AI Agent continuously monitors scheduled deliveries and sends reminder emails to ensure timely goods receipt. Two types of reminders are sent automatically based on the scheduled delivery date.

Initial Purchase Stock Reminder

Triggered when the scheduled delivery date is today and falls within the configured time window (e.g. 7:00 AM - 9:00 PM). The agent scans all pickings scheduled for today and sends an Assigned Pickings Report email with a PDF attachment to the Inventory Manager.













Final Purchase Stock Reminder

Triggered when the delivery date has passed and the stock has still not been received. The agent scans for overdue pickings and sends a Missing Deliveries Report email to both the Inventory Manager and Procurement Manager.













📌 Note : Reminder emails are controlled by time windows configured in the AI Agent's settings. Adjust the time window in main.py under the reminder schedule configuration if your business hours differ.

Reminder Email Content
  • To : Inventory Manager / Procurement Manager
  • Subject : Assigned Pickings Report (Initial) or Missing Deliveries Report (Final)
  • Body : Lists all pickings scheduled for today with their current status
  • Attachment : PDF report (Assigned Pickings Report.pdf or Missing Deliveries Report.pdf)
  • Sender : Inventory Automation System

Voice Call Triggering

Part 1 - Where to add credentials

Go to Odoo → Settings → Inventory Automation and fill in the following fields :

Field Example Value Where to Get It
Twilio Account SID ACxxxxxxxxxxxxxxxx Twilio Console → Account Info
Twilio Auth Token xxxxxxxxxxxxxxxx Twilio Console → Account Info
Twilio From Number +15012879816 Twilio Console → Phone Numbers
Voice Name Polly.Aditi Any AWS Polly voice name
Flask Port 5000 Default - change only if port is in use
Odoo Admin Password admin Your Odoo admin login password
Odoo Port 8099 Must match http_port in .odoorc
Auto Call Hour (24h) 9 IST hour for daily call e.g. 9 = 9 AM
Auto Call Minute 30 IST minute e.g. 30 = :30
Retry After (minutes) 30 Minutes to wait before retry if call incomplete

⚠️ Important : Click Save after entering all values



Part 2 - Prerequisites before each use

Every time the server restarts, make sure these are running :

  1. Start Odoo :
    cd ~/workspace/odoo19e
    python3 ./odoo-bin -c .odoorc -d v19e_odoo_brains_feb10_1530
  2. Start ngrok (in a separate terminal) :
    ngrok http 5000
  3. Verify ngrok is running :
    curl http://localhost:4040/api/tunnels
    You should see a public_url starting with https://
  4. Verify Linux crontab is set (one time setup only) :
    crontab -l
    You should see the voice call trigger line. If not, see Part 4.

Part 3 - How Voice Call triggering works (Step by Step)

Step 1 - Linux Crontab runs every minute

The Linux crontab runs this command every minute automatically :

python3 ./odoo-bin shell ... < scripts/trigger_voice.py

The trigger_voice.py script contains just two lines :

env['stock.picking']._auto_trigger_voice_calls()
env.cr.commit()

Step 2 - _auto_trigger_voice_calls() checks IST time window

The method reads current IST time and compares it to your configured :

  • Auto Call Hour (e.g. 9)
  • Auto Call Minute (e.g. 30)

First call window : 9:30 AM - 9:59 AM IST
Retry window : 10:00 AM - 10:29 AM IST (30 minutes after first call)

Outside these windows → method exits immediately, nothing happens.

Step 3 - Search for eligible pickings

Inside the time window, it searches for stock.picking records where :

  • picking_type_code = incoming (receipts only)
  • state not in done, cancel
  • scheduled_date <= now + 14 hours
  • partner_id is set (vendor must be assigned)
  • conversation_state != COMPLETE (not already called today)
  • twilio_last_call_time is not today (skip if already called today)
Step 4 - _launch_voice_call() launches the Flask app

For each eligible picking:

  • Auto-detects ngrok URL from localhost:4040/api/tunnels
  • Kills any existing Flask process on port 5000
  • Launches voice_app.py as a subprocess with all picking details: --vendor, --po-number, --delivery-date, --quantity, --odoo-url http://localhost:8099, --odoo-db, --odoo-password, --odoo-picking-id, --ngrok-url, --account-sid, --auth-token, --from-number, --to-number
Step 5 - voice_app.py authenticates to Odoo

voice_app.py starts Flask server on port 5000 and authenticates to Odoo via POST to :

http://localhost:8099/web/session/authenticate

If authentication fails → logs are not saved, scheduled date not updated. Common cause : wrong Odoo port or wrong admin password in Settings.

Step 6 - Twilio places the call

voice_app.py calls Twilio API to place an outbound call to the vendor. The call webhook URL is set to :

https://<ngrok-url>/multi-step?id=<order_id>

When the vendor answers, Twilio sends POST to this URL.

Step 7 - Multi-step conversation via Flask /multi-step

The conversation flows through these states :

  • START → Greet vendor, ask if order is dispatched
  • ASK_DISPATCH → Validate yes/no response
  • ASK_DATE → Ask for expected delivery date
  • ASK_TRACKING → Ask for tracking/shipment number
  • COMPLETE → Summarize and hang up

Each state uses Polly.Aditi voice (or your configured voice). Up to 3 retries per question if vendor response is not understood.

Step 8 - Data written back to Odoo in real time

After vendor confirms delivery date : scheduled_date updated on stock.picking via JSON-RPC.

After each spoken exchange : twilio.conversation.log record created with speaker + message.

After each state change : conversation_state updated on stock.picking.

All visible in Odoo receipt under Voice Call Logs tab.

Part 4 - Linux Crontab Setup (One Time Only)

  1. Open crontab editor
    crontab -e
    Select 1 (nano) when prompted.
  2. Add this line at the bottom :
    * * * * * cd /home/pragmatic/workspace/odoo19e && python3 ./odoo-bin shell -c .odoorc -d v19e_odoo_brains_feb10_1530 --no-http > /tmp/voice_cron.log 2>&1
  3. Save and exit : Press CTRL+X → Y → Enter
  4. Verify :
    crontab -l
  5. Watch it run :
    watch -n 10 "tail -5 /tmp/voice_cron.log"

Part 5 - How to change the daily call time

Go to Odoo → Settings → Inventory Automation and update :

  • Auto Call Hour (24h) - set to desired IST hour
  • Auto Call Minute - set to desired IST minute

Example : For 9:30 AM IST daily calls → Hour = 9, Minute = 30
Example : For 10:00 AM IST daily calls → Hour = 10, Minute = 0

No restart needed - crontab picks up the new time on its next run.

Workflow

The table below summarizes all key steps in the procurement automation workflow from start to finish.


AI agent for Odoo 19 Procurement - Full demo (RFQ to Delivery)
SAI agent for Odoo 19 Procurement - Full demo (RFQ to Delivery)
📧 AI Agent Not Sending Emails
  • Verify the FastAPI server is running and check terminal logs.
  • Confirm Gmail SMTP credentials in the .env file.
  • Verify the Odoo Mail Server under Settings → Technical → Email → Outgoing Mail Servers.
🔗 Approval Email Link Does Not Work
  • Email links point to localhost:8099 and only work on the same machine.
  • For remote access, configure a public domain or use ngrok.
📦 RFQ Not Created Automatically
  • Verify Min/Max quantities in Products → Reordering Rules.
  • Ensure the AI Agent is running.
  • Verify Scheduled Actions in Odoo.
⏰ Reminder Emails Not Sent
  • Check that the Scheduled Date is today.
  • Verify the configured reminder time window.
  • Review terminal logs for notification messages.
💰 Vendor Prices Not Updating
  • Ensure replies reach the monitored inbox.
  • Verify the email format is supported by the AI parser.
  • Update RFQ prices manually if extraction fails.
✅ Best Practices
  • Start both Odoo and the AI Agent before every procurement cycle.
  • Keep uvicorn main:app running throughout the workflow.
  • Monitor terminal logs during automation.
  • Configure a Gmail App Password for the administrator account.
  • Keep the vendor test Gmail account accessible.
  • Review Odoo chatter to verify every automation step.
  • For production, use HTTPS, a public domain, and environment variables.
  • Review reorder rules periodically based on consumption and lead times.

Empower businesses through intelligent, cost-effective solutions

Modern businesses face complex challenges. Our Odoo apps are designed to turn those challenges into opportunities - making your workflows intuitive, efficient and scalable. Crafted to make your business run smoother, faster and smarter.

Experience the difference of solutions built for real business needs, not just features.



1. What are the minimum requirements to run the Procurement Automation?

You need Odoo 19 running on localhost:XXXX, the Pragmatic AI Agent (FastAPI) running on localhost:XXXX via uvicorn main:app, VS Code with the odoo_brain_non_odoo project open, a valid Gmail account for notifications, and at least one vendor configured in Odoo with a valid email address.

2. Do I need to start the AI Agent every time?

Yes. The AI Agent must be started manually before each procurement session by running uvicorn main:app in the VS Code terminal. Do not close this terminal while automation is in progress, as it will stop all automation immediately.

3. How does the RFQ get created automatically?

The AI Agent scans inventory levels for all products with active reorder rules. When the On Hand quantity falls below the Min Qty threshold, it automatically creates a new RFQ in Odoo under Purchase > Requests for Quotation, populates it with vendor, products, quantities, and pricing, and logs the creation in the chatter.

4. Why did I not receive the approval email?

Check that the FastAPI server is running and showing active log output in the terminal. Confirm that Gmail SMTP credentials are correctly configured in the .env file. Also verify that the Odoo outgoing mail server is configured under Settings > Technical > Email > Outgoing Mail Servers.

5. How does vendor price negotiation work?

The vendor receives the RFQ email and replies with their quoted prices. The AI Agent reads the vendor's email reply, extracts the agreed prices, and automatically updates the unit prices in Odoo. This process can continue through multiple negotiation rounds, as the agent continuously monitors the email thread.

6. The vendor prices are not updating automatically. What could be wrong?

Ensure the vendor's reply is sent to the correct inbox monitored by the AI Agent. The price extraction relies on a specific email reply format, so if the format differs, the prices may not be parsed correctly. In such cases, you can manually update the unit price on the RFQ in Odoo.


Procurement AI Agent

Our Service Offerings

Odoo Dedicated Resources
Odoo Success Packs
Odoo Turnkey Projects

Get Instant Personalized Demo

EMAIL
WHATSAPP
CONTACT

Powerful apps, seamless integrations and expert support.

Optimize your business with our perfect Odoo strategy.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Inventory (stock)
• Purchase (purchase)
• Website (website)
• Invoicing (account)
Lines of code 4057
Technical Name infinitebrains
LicenseOPL-1
Websitehttp://pragtech.co.in
Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with