اتوماسیون یکی از قابلیتهای مهم Odoo برای کاهش فعالیتهای دستی و تکراری در سازمان است. با Automation Rules و Server Actionها میتوان مشخص کرد که هنگام وقوع یک رویداد یا برقرار شدن شرایط خاص، چه عملیاتی بهصورت خودکار انجام شود.
برای مثال:
اگر یک فرصت فروش برنده شد → پروژه ایجاد کن.
یا:
اگر مبلغ سفارش از مقدار مشخصی بیشتر شد → برای مدیر فعالیت ایجاد کن.
این نوع Automation زمانی بسیار خوب عمل میکند که قوانین کسبوکار مشخص و قابل تبدیل به شرط باشند.
اما همه تصمیمهای سازمانی به این سادگی نیستند.
فرض کنید بخواهیم به Odoo بگوییم:
محتوای این سند را بررسی کن، تشخیص بده چه نوع سندی است و براساس محتوای آن تصمیم بگیر چه اقدامی باید انجام شود.
یا:
درخواست مشتری را بخوان، موضوع آن را تشخیص بده و مناسبترین اقدام را انتخاب کن.
در چنین شرایطی دیگر با یک if → then ساده مواجه نیستیم.
اینجاست که AI Server Action در Odoo 19 وارد ماجرا میشود.
AI Server Action چیست؟
AI Server Action نوعی Server Action مبتنی بر هوش مصنوعی در Odoo است که میتواند Record و Context آن را بررسی کند، Prompt تعریفشده را تفسیر کند و تصمیم بگیرد کدام Tool باید اجرا شود و چه Argumentهایی باید به آن داده شود.
نکته مهم اینجاست که AI Server Action لزوماً خودش عملیات نهایی را انجام نمیدهد.
نقش اصلی آن تصمیمگیری است.
ساختار کلی را میتوان اینطور تصور کرد:
Record / Trigger
↓
AI Server Action
↓
Record + Context + Prompt
↓
AI Decision
↓
Tool Selection
↓
Arguments
↓
Tool Execution
↓
Action
طبق معماری Odoo، این فرآیند به دو نقش اصلی تقسیم میشود:
Manager → AI Server Action
Worker → AI Tool
این تفکیک یکی از مهمترین مفاهیم AI Server Action است.

Manager و Worker در AI Server Action
برای درک درست این قابلیت ابتدا باید تفاوت Manager و Worker را بدانیم.
AI Server Action؛ نقش Manager
AI Server Action نقش تصمیمگیرنده یا Manager را دارد.
Manager:
- Record را میخواند.
- Context آن را بررسی میکند.
- Prompt را تفسیر میکند.
- Tool مناسب را انتخاب میکند.
- Argumentهای لازم برای Tool را تعیین میکند.
اما طبق مستندات رسمی Odoo، AI Server Action مسئول enforce کردن Business Ruleها نیست، مستقیماً Record را تغییر نمیدهد و صحت عملیات را نیز تضمین نمیکند.
وظیفه اصلی آن Decision Making است.
AI Tool؛ نقش Worker
پس چه چیزی عملیات واقعی را انجام میدهد؟
Tool.
Tool در واقع یک Server Action استاندارد است که گزینه Use in AI در بخش Usage آن فعال شده است.
Tool میتواند عملیات واقعی مانند موارد زیر را انجام دهد:
- تغییر Record
- جابهجایی Document
- افزودن Tag
- اجرای Python Code
- تغییر یک Field
- اجرای Business Logic اختصاصی
Odoo تأکید میکند که Business Ruleها باید در منطق خود Tool پیادهسازی شوند.
اگر AI یک Tool را انتخاب کند، Tool اجرا خواهد شد مگر اینکه منطق داخلی آن مانع اجرای عملیات شود.
به زبان ساده:
AI تصمیم میگیرد.
Tool اجرا میکند.
AI Server Action چگونه کار میکند؟
Workflow رسمی AI Server Action در Odoo پنج مرحله اصلی دارد:
۱. یک Record باعث Trigger شدن AI Server Action میشود.
۲. Prompt با استفاده از Record بهعنوان Context ارزیابی میشود.
۳. AI یکی از Toolهای موجود را انتخاب میکند.
۴. AI Argumentهای موردنیاز Tool را مشخص میکند.
۵. Tool انتخابشده Python Code یا عملیات تعریفشده خود را اجرا میکند.
بنابراین AI بین Trigger و اجرای Action قرار میگیرد و یک Decision Layer هوشمند به Automation اضافه میکند.
تفاوت Server Action معمولی و AI Server Action
در Automation سنتی معمولاً از قبل مشخص میکنیم چه اتفاقی باید رخ دهد.
مثلاً:
Stage = Won → Create Project
یا:
Invoice = Paid → Update Status
اما در AI Server Action میتوان Workflowهایی ایجاد کرد که ابتدا نیاز به تفسیر اطلاعات دارند.
مثلاً:
Document Received
↓
Understand Document
↓
Determine Document Type
↓
Choose Appropriate Tool
↓
Execute Action
تفاوت کلی را میتوان اینطور خلاصه کرد:
| Automation سنتی | AI Server Action |
|---|---|
| Rule-Based | Context-Aware |
| مبتنی بر شروط مشخص | مبتنی بر Prompt و Context |
| Action از قبل تعیین شده | AI میتواند Tool مناسب را انتخاب کند |
| مناسب تصمیمهای قطعی | مناسب تصمیمهای وابسته به محتوا |
| If → Then | Understand → Decide → Execute |
بنابراین AI Server Action جای Server Action معمولی را نمیگیرد.
بلکه برای نوع دیگری از مسئله طراحی شده است.
یک مثال واقعی: دستهبندی هوشمند اسناد
یکی از بهترین نمونهها برای درک AI Server Action، مدیریت Documents است.
فرض کنید روزانه فایلهای مختلفی وارد Odoo میشوند:
- Invoice
- Vendor Bill
- Contract
- Receipt
- HR Document
- Project Document
- Purchase Document
در Automation سنتی ممکن است قانونی مانند این تعریف کنیم:
اگر Filename شامل Invoice بود → فایل را به پوشه Invoice منتقل کن.
اما اگر فایل این نام را داشته باشد چه؟
scan_28491.pdf
Filename دیگر اطلاعات کافی برای تصمیمگیری ندارد.
AI میتواند محتوا و Context سند را بررسی کرده و تشخیص دهد که سند چیست.
مثلاً:
New Document
↓
AI Analysis
↓
Document = Vendor Bill
↓
Select Tool
↓
Move / Tag / Rename / Create Bill
اتفاقاً Odoo در مستندات رسمی AI Server Action از نمونه Auto-sort documents in Inbox استفاده میکند.
در این مثال AI محتوای Document را بررسی میکند و میتواند Toolهایی مانند افزودن Tag، انتقال Document به Folder، تغییر نام Document یا ایجاد Invoice/Bill را انتخاب کند. خود AI Server Action سند را جابهجا یا Tag نمیکند؛ بلکه Tool مناسب را انتخاب میکند.
Prompt در AI Server Action چه نقشی دارد؟
Prompt در AI Server Action صرفاً یک سؤال برای ChatGPT نیست.
Prompt مشخص میکند:
AI چه چیزی را بررسی کند، هدف Workflow چیست و براساس چه Contextی تصمیم بگیرد.
برای مثال Prompt میتواند مفهومی شبیه این داشته باشد:
محتوای Document را بررسی کن، نوع آن را تشخیص بده و مناسبترین Tool را براساس محتوای سند انتخاب کن.
AI سپس Record را بهعنوان Context دریافت میکند و براساس Prompt تصمیم میگیرد.
به همین دلیل کیفیت Prompt اهمیت زیادی دارد.
اگر Prompt مبهم باشد، AI ممکن است Tool متفاوتی از آنچه انتظار داریم انتخاب کند. مستندات Odoo نیز نبود Context کافی در Prompt را یکی از دلایل انتخاب Tool غیرمنتظره معرفی میکند.

AI Schema چیست؟
فرض کنید Toolای داریم به نام:
AI: Move to Folder
این Tool برای انتقال Document باید بداند مقصد کدام Folder است.
بنابراین ممکن است به Argument زیر نیاز داشته باشد:
folder_id
AI این Argument را از روی Python Code حدس نمیزند.
Argument باید در تنظیمات Tool و قسمت AI Schema تعریف شده باشد.
نام Argument در AI Schema نیز باید دقیقاً با Variable مورد استفاده در Python Code مطابقت داشته باشد.
Description مربوط به Argument به AI کمک میکند بفهمد:
- این Parameter چیست؛
- چه نوع مقداری انتظار میرود؛
- چه زمانی باید مقدار آن را ارسال کند.
اگر Argument در Usage تعریف نشده باشد، AI نمیتواند آن را در اختیار Tool قرار دهد؛ حتی اگر Python Code به آن Variable اشاره کرده باشد.
در نتیجه AI Schema را میتوان نوعی قرارداد بین AI و Tool در نظر گرفت.
چگونه یک Custom AI Tool در Odoo بسازیم؟
AI Server Action محدود به Toolهای از پیش آماده نیست.
میتوان Server Action اختصاصی ایجاد کرد و آن را در اختیار AI قرار داد.
فرض کنید میخواهیم Toolای بسازیم که Description یک Task را تغییر دهد.
یک نمونه ساده از منطق اجرایی میتواند چنین باشد:
record.write({'description': content})
در این مثال Variableای به نام:
content
وجود دارد.
بنابراین باید content در قسمت Usage مربوط به Tool بهعنوان Argument تعریف شود.
سپس AI میتواند هنگام انتخاب این Tool، مقدار مناسب content را تولید و به آن ارسال کند. این همان الگویی است که Odoo برای توضیح ساخت Custom AI Tool در مستندات خود ارائه کرده است.
امنیت در AI Server Action
یکی از مهمترین موضوعات هنگام استفاده از AI Server Action، امنیت و کنترل Business Logic است.
نباید AI Server Action را به معنی:
«دادن دسترسی آزاد Database به AI»
در نظر بگیریم.
معماری مناسب باید چیزی شبیه این باشد:
AI = Decision Layer
Tool = Execution Layer
Business Rules = Control Layer
فرض کنید AI Tool میتواند Discount سفارش فروش را تغییر دهد.
اگر حداکثر Discount مجاز شرکت ۲۰ درصد است، نباید فقط داخل Prompt بنویسیم:
بیشتر از ۲۰ درصد تخفیف نده.
محدودیت ۲۰ درصد باید در Business Logic واقعی Tool نیز کنترل شود.
چرا؟
چون Prompt یک Instruction برای AI است؛ اما Business Rule باید در لایه اجرایی enforce شود.
Odoo نیز صراحتاً تأکید میکند که AI Server Action خودش Business Ruleها را enforce نمیکند و این مسئولیت بر عهده Tool است.
یک اصل مهم برای طراحی این سیستم:
Prompt راهنمای AI است؛ Business Rule محافظ سیستم است.
کاربرد AI Server Action در CRM
فرض کنید Leadهای زیادی از Website، فرمها، کمپینها و کانالهای دیگر وارد CRM میشوند.
Automation معمولی میتواند براساس اطلاعات ساختاریافته تصمیم بگیرد:
Expected Revenue > X → High Priority
اما ارزش یا Intent یک Lead همیشه با یک عدد مشخص نمیشود.
ممکن است لازم باشد مواردی مانند:
- متن درخواست مشتری
- محصول موردنظر
- نیاز مطرحشده
- اطلاعات Lead
- Context موجود
بررسی شوند.
Workflow میتواند چنین باشد:
New Lead
↓
AI Analysis
↓
Determine Intent
↓
Select Tool
↓
Add Tag / Assign Team / Create Activity
در این حالت AI جای CRM را نمیگیرد؛ بلکه یک Decision Layer به Workflow اضافه میکند.
کاربرد AI Server Action در Helpdesk
سناریوی دیگری را در Helpdesk تصور کنید.
مشتری Ticket زیر را ارسال میکند:
بعد از تأیید سفارش، فاکتور ایجاد نمیشود و نمیتوانم فرآیند فروش را تکمیل کنم.
برای یک Automation ساده، درک مفهوم این متن دشوار است.
اما AI میتواند متن Ticket را بررسی کرده و اطلاعاتی مانند موضوع یا Context درخواست را استخراج کند و سپس براساس Toolهای در اختیارش تصمیم بگیرد چه اقدامی مناسب است.
برای مثال:
New Ticket
↓
AI Interpretation
↓
Sales / Invoice Problem
↓
Select Tool
↓
Add Tag / Update Field / Route Ticket
Odoo نیز AI را در Workflowهای پشتیبانی با Automation Rules، AI Fields و Agents ترکیب کرده و امکان استفاده از AI در رویدادهای چرخه عمر Record را فراهم کرده است.

کاربرد AI Server Action برای دادههای غیرساختاریافته
یکی از جذابترین کاربردهای AI Server Action، ایجاد پل میان Unstructured Data و فرآیندهای ساختاریافته ERP است.
فرض کنید یکی از کارکنان چنین درخواستی ثبت میکند:
برای نمایشگاه هفته آینده به ۲۰ بروشور جدید و دو استند نیاز داریم.
این یک متن آزاد است.
اما AI میتواند Context آن را تفسیر کند:
Request
↓
AI Interpretation
↓
Marketing Request
↓
Select Tool
↓
Start Appropriate Workflow
در نتیجه اطلاعاتی که در ابتدا فقط یک متن انسانی بوده، میتواند وارد یک Business Process ساختاریافته شود.
چه زمانی از AI Server Action استفاده کنیم؟
قرار نیست هر Automation موجود در Odoo را با AI جایگزین کنیم.
اگر فرآیند کاملاً قطعی است:
Invoice Paid → Update Status
احتمالاً استفاده از AI هیچ مزیت خاصی ندارد.
Automation معمولی سریعتر، قابل پیشبینیتر و سادهتر است.
اما اگر Workflow چنین ساختاری داشته باشد:
Incoming Information
↓
Understand
↓
Interpret Context
↓
Decide
↓
Select Action
اینجا AI Server Action ارزش بررسی دارد.
یک قانون ساده:
اگر تصمیم را میتوان با چند شرط مشخص و قطعی تعریف کرد، از Automation معمولی استفاده کنید. اگر تصمیم نیازمند فهم محتوا و Context است، AI Server Action میتواند گزینه مناسبتری باشد.
چه زمانی AI Server Action انتخاب مناسبی نیست؟
رای Business Ruleهای قطعی استفاده از AI معمولاً ضروری نیست.
مثلاً:
سفارشهای بیشتر از یک میلیارد تومان باید توسط مدیر فروش تأیید شوند.
این قانون هیچ ابهامی ندارد.
بنابراین:
Amount > 1B → Manager Approval
راهحل منطقیتری است.
همچنین برای عملیات حساس مانند:
- تأیید پرداخت
- حذف اطلاعات
- تغییر قیمت حساس
- تأیید قرارداد
- تغییر Permission
- عملیات مالی مهم
بهتر است AI را با Business Ruleهای قطعی و Approval انسانی ترکیب کنیم.
هدف هوشمندسازی Automation است، نه حذف کنترل سازمانی.
تفاوت AI Server Action و AI Agent
AI Server Action و AI Agent به یکدیگر مرتبطاند اما یک مفهوم نیستند.
AI Server Action بیشتر برای Automation Workflow طراحی شده است.
مثلاً:
Ticket Created → AI Decision → Tool → Action
اما AI Agent یک دستیار هوشمند در Odoo است که میتواند زبان طبیعی را درک کند و با استفاده از Topics، Tools و Sources به کاربر کمک کند یا Task انجام دهد.
در ساختار Agent، Topics مشخص میکنند Agent چه وظایفی دارد و Tools چه عملیاتی را میتواند انجام دهد. Sources نیز اطلاعات موردنیاز Agent را فراهم میکنند؛ از جمله PDF، Weblink، Documents و Knowledge Articles.
تفاوت ساده:
| AI Server Action | AI Agent |
|---|---|
| بخشی از Automation | دستیار هوشمند |
| معمولاً با Trigger اجرا میشود | با درخواست و تعامل کاربر نیز کار میکند |
| روی Record و Context تصمیم میگیرد | براساس Prompt، Topic و Sources فعالیت میکند |
| Tool انتخاب میکند | از Tools برای انجام Task استفاده میکند |
| مناسب Workflow Automation | مناسب Assistant Experience |
در نتیجه:
AI Server Action = Automation Intelligence
AI Agent = Intelligent Assistant
تفاوت AI Server Action و AI Field
AI Field قابلیت دیگری در Odoo 19 است که نباید آن را با AI Server Action اشتباه گرفت.
AI Field میتواند براساس Context یک Record و Prompt، مقدار یک Field را تولید یا پیشنهاد کند.
مثلاً:
Customer Message
↓
AI Field
↓
خلاصه درخواست مشتری
یا:
Product Information
↓
AI Field
↓
Product Description
Odoo امکان اضافه کردن AI Field از طریق Studio یا Property Field را فراهم کرده و Prompt مشخص میکند AI چه اطلاعاتی تولید کند.
بنابراین تفاوت را میتوان خیلی ساده بیان کرد:
AI Field → Generate Information
AI Server Action → Decide What Action Should Happen
AI Agent → Understand Requests + Use Tools & Sources
خطاهای رایج AI Server Action
هنگام پیادهسازی AI Server Action ممکن است با چند مشکل رایج مواجه شوید.
چرا Tools خالی است؟
دو مورد را بررسی کنید:
- حداقل یک Server Action باید گزینه Use in AI فعال داشته باشد.
- Tool باید برای همان Model مربوط به AI Server Action تعریف شده باشد.
چرا Tool اجرا شد اما اتفاقی نیفتاد؟
دلایل احتمالی عبارتاند از:
- Python Code بدون ایجاد تغییر پایان یافته است.
- Argument لازم ارسال نشده یا خالی بوده است.
- Business Condition موردنیاز در Tool پیادهسازی نشده است.
چرا AI ابزار اشتباهی انتخاب میکند؟
Odoo سه علت مهم را مطرح میکند:
- Prompt، Context کافی ندارد.
- چند Tool با Intent مشابه وجود دارند.
- Constraints کافی در سطح Tool اعمال نشده است.
بنابراین اگر AI Tool اشتباهی انتخاب کرد، سه بخش را بررسی کنید:
Prompt → Tool Design → Business Constraints
Best Practice برای طراحی AI Server Action
برای استفاده حرفهای از AI Server Action بهتر است چند اصل مهم را رعایت کنید.
Toolها را کوچک و مشخص طراحی کنید
بهجای یک Tool مبهم مانند:
Manage Document
Toolهای مشخص ایجاد کنید:
Move Document
Add Document Tag
Rename Document
Create Vendor Bill
هرچه وظیفه Tool مشخصتر باشد، انتخاب آن برای AI نیز واضحتر خواهد بود.
Prompt را دقیق بنویسید
Prompt باید هدف Workflow و Context موردنیاز AI را مشخص کند.
AI Schema را دقیق تعریف کنید
Argumentها باید Name و Description واضح داشته باشند و Name آنها با Variable مورد استفاده در Code مطابقت داشته باشد.
Business Rule را داخل Tool enforce کنید
به Prompt برای اجرای محدودیتهای حساس اعتماد نکنید.
Validation اصلی باید در Business Logic وجود داشته باشد.
برای Ruleهای ساده AI استفاده نکنید
اگر یک Condition ساده مسئله را حل میکند، همان Automation استاندارد معمولاً انتخاب بهتری است.

از Automation سنتی تا Intelligent Automation
AI Server Action نشاندهنده یک تغییر مهم در نحوه طراحی Automation در ERP است.
در Automation سنتی داریم:
Trigger → Condition → Action
اما با AI میتوانیم به معماری زیر برسیم:
Trigger
↓
Context
↓
AI Interpretation
↓
Decision
↓
Controlled Tool
↓
Business Validation
↓
Action
یعنی Automation دیگر صرفاً براساس Ruleهای ثابت تصمیم نمیگیرد و میتواند در بخشهایی از Workflow، اطلاعات غیرساختاریافته را نیز تفسیر کند.
با این حال، Business Logic و کنترل عملیات همچنان باید در Odoo باقی بماند.
آیا AI Server Action جای Automation معمولی را میگیرد؟
خیر.
در واقع بهترین معماری احتمالاً ترکیبی از هر دو است.
برای تصمیمهای قطعی:
Rule-Based Automation
برای تصمیمهایی که نیاز به تفسیر دارند:
AI-Based Decision
و برای عملیات حساس:
Approval / Business Validation
در نتیجه یک Workflow پیشرفته میتواند چنین باشد:
Trigger → Rules → AI Decision → Tool → Validation → Action
این رویکرد هم از قدرت AI استفاده میکند و هم کنترل فرآیند را حفظ میکند.
جمعبندی
AI Server Action در Odoo 19 یک لایه تصمیمگیری هوشمند به Automationهای Odoo اضافه میکند.
AI Record و Context را بررسی میکند، Prompt را تفسیر میکند و تصمیم میگیرد کدام Tool با چه Argumentهایی اجرا شود. در مقابل، Tool مسئول اجرای واقعی عملیات و enforce کردن Business Ruleها است.
بنابراین معماری اصلی آن را میتوان در یک جمله خلاصه کرد:
Manager تصمیم میگیرد؛ Worker اجرا میکند.
به همین دلیل AI Server Action را میتوان یکی از مهمترین قدمهای Odoo 19 به سمت Intelligent Automation و Agentic ERP دانست.
سؤالات متداول
AI Server Action قابلیتی در Odoo 19 است که اجازه میدهد AI هنگام اجرای Workflow، Record و Context را بررسی کرده، Prompt را تفسیر کند و Tool مناسب و Argumentهای آن را انتخاب کند.
در معماری توضیحدادهشده توسط Odoo، AI Server Action نقش Manager و تصمیمگیرنده را دارد و Tool یا Worker مسئول اجرای عملیات و تغییر Record است.
در این چارچوب، Tool یک Server Action استاندارد است که Use in AI برای آن فعال شده و منطق اجرایی عملیات را در اختیار دارد.
بله. میتوان Server Action اختصاصی ایجاد کرد، Argumentهای موردنیاز آن را در AI Schema تعریف کرد و آن را برای استفاده AI در دسترس قرار داد.


