وكيل ذكي لإعداد عروض الأسعار
أخبره بما يحتاجه العميل؛ يبني عرض سعر من قائمة أسعارك ويراجع الحساب ويحفظه ويكتب مسودة البريد.
كيف تعمل
- تصف العميل وما يحتاجه.
- يطابق الوكيل كل بند مع قائمة أسعارك ويعرض الإجماليات مع الضريبة.
- بعد تأكيدك، يحفظ العرض برقم.
- يكتب مسودة بريد العرض للعميل في Gmail.
ماذا يستطيع أن يفعل
على عكس الأتمتة الثابتة، يقرر الوكيل أي أدواته يستخدم وبأي ترتيب — ويتذكر المحادثة.
- يبني عروض أسعار مفصّلة من قائمة أسعارك
- يطبّق الخصومات في حدودك
- يضيف الضريبة والإجماليات
- يكتب مسودة بريد العميل
التعليمات (System prompt)
التعليمات التي تشكّل سلوك الوكيل. موجودة بالفعل داخل قالب n8n — انسخها إلى Make أو Zapier، وعدّل أجزاء YOUR_….
You build price quotes for YOUR_COMPANY's sales team. Currency: YOUR_CURRENCY. VAT: YOUR_VAT_RATE. Today is {{ $now.toFormat('d LLLL yyyy') }}.
Tools:
- "Price list": our products and services (code, name, unit, unit price, min quantity, max discount %). Always read it first.
- "Save quote": saves a confirmed quote to the Quotes sheet and returns nothing else.
- "Draft quote email": creates a Gmail draft to the client with the quote (never sends).
Process:
1. Ask for the client name, email and what they need, if missing.
2. Match each item to the price list. Show a table: item, quantity, unit price, line total; then subtotal, discount, VAT and grand total.
3. Ask the user to confirm, then save the quote with number Q-{{ $now.toFormat('yyMMdd') }}-<2 random digits>.
4. Offer to draft the email to the client.
Rules:
- Use only prices from the price list. If an item isn't there, say so and leave it out.
- Never give a discount above an item's max discount %. If asked for more, say a manager must approve.
- Double-check the arithmetic before showing totals.قواعد الأمان
مدمجة في التعليمات والأدوات:
- يستخدم أسعارك فقط
- لا يتجاوز أقصى خصم لكل بند
- يكتب مسودات ولا يرسل أبدًا
يستخدم مفتاح الذكاء الاصطناعي الخاص بك (Claude أو OpenAI أو غيرهما). التكلفة تعتمد على النموذج وطول المحادثة — والنموذج الصغير السريع يجعل معظم المحادثات بجزء من السنت.
المخطط
ابنِها بأداتك
اختر أداتك — نفس الأتمتة، خطوة بخطوة.
انسخه والصقه مباشرة في مساحة عمل n8n (Ctrl+V)، أو حمّله واستخدم Import from File. بعد ذلك اربط حساباتك واستبدل كل قيمة تبدأ بـ YOUR_. خطوات الذكاء الاصطناعي تستخدم نموذج Claude، ويمكنك استبداله بـ OpenAI أو Gemini أو Ollama.
عرض الكود (247 سطر)
{
"name": "وكيل ذكي لإعداد عروض الأسعار (Flowngn)",
"nodes": [
{
"parameters": {
"content": "## وكيل ذكي لإعداد عروض الأسعار\nأخبره بما يحتاجه العميل؛ يبني عرض سعر من قائمة أسعارك ويراجع الحساب ويحفظه ويكتب مسودة البريد.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
"height": 260,
"width": 340
},
"id": "425c281e-a6bd-4ffe-aab5-92854b17b971",
"name": "Setup notes",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-420,
-60
]
},
{
"parameters": {
"public": true,
"mode": "hostedChat",
"initialMessages": "Who is the quote for, and what do they need?",
"options": {
"responseMode": "lastNode"
}
},
"id": "425c281e-a6bd-4ffe-aab5-92854b17b971",
"name": "Quote chat",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.1,
"position": [
0,
0
],
"webhookId": "425c281e-a6bd-4ffe-aab5-92854b17b971"
},
{
"parameters": {
"options": {
"systemMessage": "=You build price quotes for YOUR_COMPANY's sales team. Currency: YOUR_CURRENCY. VAT: YOUR_VAT_RATE. Today is {{ $now.toFormat('d LLLL yyyy') }}.\n\nTools:\n- \"Price list\": our products and services (code, name, unit, unit price, min quantity, max discount %). Always read it first.\n- \"Save quote\": saves a confirmed quote to the Quotes sheet and returns nothing else.\n- \"Draft quote email\": creates a Gmail draft to the client with the quote (never sends).\n\nProcess:\n1. Ask for the client name, email and what they need, if missing.\n2. Match each item to the price list. Show a table: item, quantity, unit price, line total; then subtotal, discount, VAT and grand total.\n3. Ask the user to confirm, then save the quote with number Q-{{ $now.toFormat('yyMMdd') }}-<2 random digits>.\n4. Offer to draft the email to the client.\n\nRules:\n- Use only prices from the price list. If an item isn't there, say so and leave it out.\n- Never give a discount above an item's max discount %. If asked for more, say a manager must approve.\n- Double-check the arithmetic before showing totals."
}
},
"id": "425c281e-a6bd-4ffe-aab5-92854b17b971",
"name": "Quote agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.9,
"position": [
300,
0
]
},
{
"parameters": {
"model": {
"__rl": true,
"value": "claude-sonnet-5",
"mode": "list"
},
"options": {}
},
"id": "425c281e-a6bd-4ffe-aab5-92854b17b971",
"name": "Claude model",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"typeVersion": 1.3,
"position": [
-40,
220
]
},
{
"parameters": {
"contextWindowLength": 10
},
"id": "425c281e-a6bd-4ffe-aab5-92854b17b971",
"name": "Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
130,
220
]
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "Returns our price list: code, name, unit, unit price, min quantity, max discount %.",
"operation": "read",
"documentId": {
"__rl": true,
"value": "YOUR_SPREADSHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "Price list",
"mode": "name"
},
"options": {}
},
"id": "425c281e-a6bd-4ffe-aab5-92854b17b971",
"name": "Price list",
"type": "n8n-nodes-base.googleSheetsTool",
"typeVersion": 4.5,
"position": [
300,
220
]
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "Saves a confirmed quote.",
"operation": "append",
"documentId": {
"__rl": true,
"value": "YOUR_SPREADSHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "Quotes",
"mode": "name"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"date": "={{ $now.toISODate() }}",
"quote_no": "={{ $fromAI('quote_no', \"Quote number\", 'string') }}",
"client": "={{ $fromAI('client', \"Client name\", 'string') }}",
"email": "={{ $fromAI('email', \"Client email\", 'string') }}",
"items": "={{ $fromAI('items', \"Items as 'qty × code name @ price', one per line\", 'string') }}",
"total": "={{ $fromAI('total', \"Grand total including VAT\", 'number') }}",
"valid_until": "={{ $now.plus({ days: 14 }).toISODate() }}",
"status": "sent"
}
},
"options": {}
},
"id": "425c281e-a6bd-4ffe-aab5-92854b17b971",
"name": "Save quote",
"type": "n8n-nodes-base.googleSheetsTool",
"typeVersion": 4.5,
"position": [
470,
220
]
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "Creates a Gmail draft to the client with the quote (never sends).",
"resource": "draft",
"operation": "create",
"subject": "={{ $fromAI('subject', \"Email subject\", 'string') }}",
"message": "={{ $fromAI('body', \"Email body with the quote table, total, validity (14 days) and next steps\", 'string') }}",
"options": {
"sendTo": "={{ $fromAI('to', \"The recipient's email address\", 'string') }}"
}
},
"id": "425c281e-a6bd-4ffe-aab5-92854b17b971",
"name": "Draft email",
"type": "n8n-nodes-base.gmailTool",
"typeVersion": 2.1,
"position": [
640,
220
]
}
],
"connections": {
"Quote chat": {
"main": [
[
{
"node": "Quote agent",
"type": "main",
"index": 0
}
]
]
},
"Claude model": {
"ai_languageModel": [
[
{
"node": "Quote agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Memory": {
"ai_memory": [
[
{
"node": "Quote agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Price list": {
"ai_tool": [
[
{
"node": "Quote agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Save quote": {
"ai_tool": [
[
{
"node": "Quote agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Draft email": {
"ai_tool": [
[
{
"node": "Quote agent",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}في Make، أنشئ سيناريو جديدًا وأضف هذه الوحدات بالترتيب:
- Webhooks › Custom webhook — called by your website's chat widget
- Make AI Agents › Run an agent — give it these tools: “Price list” (Google Sheets), “Save quote” (Google Sheets), “Draft email” (Gmail); paste the system prompt as the agent's instructions
- كل تشغيل لوحدة يستهلك عمليات (operations) في Make — والباقة المجانية تتضمن حصة شهرية.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
في Zapier، أنشئ Zap جديدًا وأضف هذه الخطوات بالترتيب:
- Zapier Chatbots, or Webhooks by Zapier — Catch Hook from your chat widget
- Zapier Agents — create an agent (or AI by Zapier for a single step) — give it these tools: “Price list” (Google Sheets), “Save quote” (Google Sheets), “Draft email” (Gmail); paste the system prompt as the agent's instructions
- الـ Zaps التي فيها أكثر من خطوتين تحتاج باقة Zapier مدفوعة.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
نصائح
- أضف عمود max_discount إلى قائمة الأسعار ليعرف الوكيل حدودك.
أتمتات مشابهة
وكيل ذكاء اصطناعي لخدمة العملاء
وكيل محادثة يجيب من أسئلتك الشائعة، ويبحث عن الطلبات، ويحوّل الحالات الصعبة إلى موظف.
وكيل ذكي لمسك الدفاتر
أخبره عن الدخل والمصروفات بكلمات بسيطة؛ واسأله مثل "كم صرفنا على الإعلانات هذا الشهر؟"
وكيل ذكي لتحصيل الفواتير المتأخرة
كل صباح يراجع الوكيل الفواتير المتأخرة، ويكتب مسودات تذكير بالنبرة المناسبة، وينبّهك للفواتير التي تحتاج مكالمة.