الموافقة على طلبات الإجازة من تيليجرام

الموظف يملأ نموذج الإجازة، والمدير يوافق أو يرفض بضغطة على تيليجرام، ويصل الموظف بريد بالقرار.

متوسط توفّر ~4 ساعة شهريًا الإنتاجيةبواسطة فريق Flowngn

تعمل مع n8n · Make · Zapier

كيف تعمل

المشغّل: Google Sheets — رد جديد على نموذج الإجازة
  1. يرسل الموظف نموذج Google (الاسم، البريد، التواريخ، النوع، السبب).
  2. تصل المدير رسالة على تيليجرام فيها زرّا موافقة ورفض.
  3. يُكتب القرار في الجدول.
  4. يصل الموظف بريد بالقرار.

المخطط

truefalseGNew leave requestGoogle Sheets TriggerTAsk managerTelegramGSave decisionGoogle Sheets⑂Approved?IfGEmail: approvedGmailGEmail: not approvedGmail
مشغّل تطبيق منطق

ابنِها بأداتك

اختر أداتك — نفس الأتمتة، خطوة بخطوة.

انسخه والصقه مباشرة في مساحة عمل n8n (Ctrl+V)، أو حمّله واستخدم Import from File. بعد ذلك اربط حساباتك واستبدل كل قيمة تبدأ بـ YOUR_.

ملف Workflow JSON
عرض الكود (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": []
}

← افتحها في ساحة التجربة لتعديلها

نصائح

  • أضف خطوة Google Calendar في مسار الموافقة لتظهر الإجازة في تقويم الفريق.

أتمتات مشابهة