الموافقة على طلبات الإجازة من تيليجرام
الموظف يملأ نموذج الإجازة، والمدير يوافق أو يرفض بضغطة على تيليجرام، ويصل الموظف بريد بالقرار.
كيف تعمل
المشغّل: Google Sheets — رد جديد على نموذج الإجازة
- يرسل الموظف نموذج Google (الاسم، البريد، التواريخ، النوع، السبب).
- تصل المدير رسالة على تيليجرام فيها زرّا موافقة ورفض.
- يُكتب القرار في الجدول.
- يصل الموظف بريد بالقرار.
المخطط
مشغّل تطبيق منطق
ابنِها بأداتك
اختر أداتك — نفس الأتمتة، خطوة بخطوة.
انسخه والصقه مباشرة في مساحة عمل n8n (Ctrl+V)، أو حمّله واستخدم Import from File. بعد ذلك اربط حساباتك واستبدل كل قيمة تبدأ بـ YOUR_.
عرض الكود (240 سطر)
{
"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": "310bce97-ca1c-4cff-a022-99304c58f5dc",
"name": "Setup notes",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-420,
-60
]
},
{
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"documentId": {
"__rl": true,
"value": "YOUR_SPREADSHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "Form Responses 1",
"mode": "name"
},
"event": "rowAdded",
"options": {}
},
"id": "310bce97-ca1c-4cff-a022-99304c58f5dc",
"name": "New leave request",
"type": "n8n-nodes-base.googleSheetsTrigger",
"typeVersion": 1,
"position": [
0,
0
]
},
{
"parameters": {
"operation": "sendAndWait",
"chatId": "YOUR_MANAGER_CHAT_ID",
"message": "=Leave request from {{ $json.Name }}\nType: {{ $json.Type }}\nFrom {{ $json.From }} to {{ $json.To }}\nReason: {{ $json.Reason || '-' }}",
"approvalOptions": {
"values": {
"approvalType": "double",
"approveLabel": "Approve",
"disapproveLabel": "Reject"
}
},
"options": {}
},
"id": "310bce97-ca1c-4cff-a022-99304c58f5dc",
"name": "Ask manager",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
300,
0
]
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "YOUR_SPREADSHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "Form Responses 1",
"mode": "name"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Timestamp": "={{ $('New leave request').item.json.Timestamp }}",
"Status": "={{ $json.data.approved ? 'Approved' : 'Rejected' }}"
},
"matchingColumns": [
"Timestamp"
]
},
"options": {}
},
"id": "310bce97-ca1c-4cff-a022-99304c58f5dc",
"name": "Save decision",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
600,
0
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "loose"
},
"conditions": [
{
"id": "c1",
"leftValue": "={{ $('Ask manager').item.json.data.approved }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "310bce97-ca1c-4cff-a022-99304c58f5dc",
"name": "Approved?",
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
900,
0
]
},
{
"parameters": {
"sendTo": "={{ $('New leave request').item.json.Email }}",
"subject": "Your leave request is approved",
"emailType": "text",
"message": "=Hi {{ $('New leave request').item.json.Name }},\n\nYour {{ $('New leave request').item.json.Type }} leave from {{ $('New leave request').item.json.From }} to {{ $('New leave request').item.json.To }} is approved.\n\nYOUR_COMPANY HR",
"options": {
"appendAttribution": false
}
},
"id": "310bce97-ca1c-4cff-a022-99304c58f5dc",
"name": "Email: approved",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
1200,
0
]
},
{
"parameters": {
"sendTo": "={{ $('New leave request').item.json.Email }}",
"subject": "About your leave request",
"emailType": "text",
"message": "=Hi {{ $('New leave request').item.json.Name }},\n\nYour leave request from {{ $('New leave request').item.json.From }} to {{ $('New leave request').item.json.To }} wasn't approved this time. Your manager will talk to you about other dates.\n\nYOUR_COMPANY HR",
"options": {
"appendAttribution": false
}
},
"id": "310bce97-ca1c-4cff-a022-99304c58f5dc",
"name": "Email: not approved",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
1200,
220
]
}
],
"connections": {
"New leave request": {
"main": [
[
{
"node": "Ask manager",
"type": "main",
"index": 0
}
]
]
},
"Ask manager": {
"main": [
[
{
"node": "Save decision",
"type": "main",
"index": 0
}
]
]
},
"Save decision": {
"main": [
[
{
"node": "Approved?",
"type": "main",
"index": 0
}
]
]
},
"Approved?": {
"main": [
[
{
"node": "Email: approved",
"type": "main",
"index": 0
}
],
[
{
"node": "Email: not approved",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}في Make، أنشئ سيناريو جديدًا وأضف هذه الوحدات بالترتيب:
- Google Sheets › Watch New Rows
- Telegram Bot › Send a Text Message with Approve / Reject buttons, then Watch Updates (callback query) in a second scenario
- Google Sheets › Update a Row
- Router with two routes: “Approved?” (yes / no filters)
- إذا نعمGmail › Send an Email
- إذا لاGmail › Send an Email
- كل تشغيل لوحدة يستهلك عمليات (operations) في Make — والباقة المجانية تتضمن حصة شهرية.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
في Zapier، أنشئ Zap جديدًا وأضف هذه الخطوات بالترتيب:
- Google Sheets — New Spreadsheet Row
- Human in the Loop by Zapier — Request Approval (then Telegram — Send Message)
- Google Sheets — Update Spreadsheet Row
- Paths by Zapier: “Approved?” (yes / no)
- إذا نعمGmail — Send Email
- إذا لاGmail — Send Email
- الـ Zaps التي فيها أكثر من خطوتين تحتاج باقة Zapier مدفوعة.
- الـ Webhooks والفلاتر/المسارات و Code by Zapier ميزات مدفوعة في بعض باقات Zapier.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
نصائح
- أضف خطوة Google Calendar في مسار الموافقة لتظهر الإجازة في تقويم الفريق.
أتمتات مشابهة
الإنتاجيةسهل
راسلني عند إضافة صف جديد في Google Sheet
يصلك بريد بالتفاصيل كلما أُضيف صف جديد إلى الجدول.
Google Sheets → Gmail2 س/شهر
الإنتاجيةسهل
ملخص مسائي للرسائل غير المقروءة على تيليجرام
كل مساء، تصلك قائمة برسائل اليوم غير المقروءة (المرسل والعنوان) على تيليجرام حتى لا يفوتك شيء مهم.
Gmail → Telegram2 س/شهر
الإنتاجيةسهل
جدول يومك على تيليجرام
كل صباح، تصلك مواعيد اليوم في رسالة تيليجرام واحدة مرتبة.
Google Calendar → Telegram2 س/شهر