اطلب تقييمًا بعد يومين من التوصيل

عندما توصّل بوسطة الطلب، انتظر يومين ثم اطلب من العميل تقييمًا على واتساب.

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

تعمل مع n8n · Make · Zapier

كيف تعمل

المشغّل: Webhook — تحديث حالة الشحنة من بوسطة
  1. استقبل تحديث الحالة من بوسطة.
  2. تابع فقط عند تسليم الشحنة.
  3. انتظر يومين ليجرب العميل المنتج.
  4. ابحث عن العميل في جدول الطلبات وأرسل قالب واتساب برابط التقييم.

المخطط

trueBosta updateWebhook{ }Read statusCode⑂Delivered?IfWait 2 daysWaitGFind customerGoogle SheetsWAsk for a reviewWhatsApp Business Cloud
مشغّل تطبيق منطق كود

الكود

كود JavaScript المستخدم في خطوات Code، وهو مضمَّن بالفعل في القالب بالأسفل.

Read status · عقدة Code
// Mode: Run Once for Each Item
// Bosta delivery webhook → clean fields with a readable status in English and Arabic.
// Confirm the state codes in Bosta's webhook documentation and adjust this map if needed.
const STATES = {
  21: { en: "Picked up", ar: "تم استلام الشحنة من المتجر", kind: "progress" },
  24: { en: "At Bosta warehouse", ar: "الشحنة في مخزن بوسطة", kind: "progress" },
  41: { en: "Out for delivery", ar: "الشحنة خرجت للتوصيل", kind: "progress" },
  45: { en: "Delivered", ar: "تم التوصيل", kind: "delivered" },
  46: { en: "Returned to business", ar: "تم إرجاع الشحنة", kind: "problem" },
  47: { en: "Exception", ar: "مشكلة في التوصيل", kind: "problem" },
};

const b = $json.body || {};
const code = Number(b.state?.code ?? b.state);
const state = STATES[code] || { en: `Status ${code}`, ar: `الحالة ${code}`, kind: "other" };

return {
  json: {
    tracking: b.trackingNumber || "",
    order_id: b.businessReference || "",
    code,
    status_en: state.en,
    status_ar: state.ar,
    kind: state.kind,
    cod: b.cod || 0,
    reason: b.exceptionReason || "",
  },
};

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

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

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

ملف Workflow JSON
عرض الكود (228 سطر)
{
  "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": "47157a09-bfe3-4e1d-a09c-20a04769de30",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "bosta-review",
        "options": {}
      },
      "id": "47157a09-bfe3-4e1d-a09c-20a04769de30",
      "name": "Bosta update",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        0,
        0
      ],
      "webhookId": "47157a09-bfe3-4e1d-a09c-20a04769de30"
    },
    {
      "parameters": {
        "jsCode": "// Mode: Run Once for Each Item\n// Bosta delivery webhook → clean fields with a readable status in English and Arabic.\n// Confirm the state codes in Bosta's webhook documentation and adjust this map if needed.\nconst STATES = {\n  21: { en: \"Picked up\", ar: \"تم استلام الشحنة من المتجر\", kind: \"progress\" },\n  24: { en: \"At Bosta warehouse\", ar: \"الشحنة في مخزن بوسطة\", kind: \"progress\" },\n  41: { en: \"Out for delivery\", ar: \"الشحنة خرجت للتوصيل\", kind: \"progress\" },\n  45: { en: \"Delivered\", ar: \"تم التوصيل\", kind: \"delivered\" },\n  46: { en: \"Returned to business\", ar: \"تم إرجاع الشحنة\", kind: \"problem\" },\n  47: { en: \"Exception\", ar: \"مشكلة في التوصيل\", kind: \"problem\" },\n};\n\nconst b = $json.body || {};\nconst code = Number(b.state?.code ?? b.state);\nconst state = STATES[code] || { en: `Status ${code}`, ar: `الحالة ${code}`, kind: \"other\" };\n\nreturn {\n  json: {\n    tracking: b.trackingNumber || \"\",\n    order_id: b.businessReference || \"\",\n    code,\n    status_en: state.en,\n    status_ar: state.ar,\n    kind: state.kind,\n    cod: b.cod || 0,\n    reason: b.exceptionReason || \"\",\n  },\n};",
        "mode": "runOnceForEachItem"
      },
      "id": "47157a09-bfe3-4e1d-a09c-20a04769de30",
      "name": "Read status",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        300,
        0
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          },
          "conditions": [
            {
              "id": "c1",
              "leftValue": "={{ $json.kind }}",
              "rightValue": "delivered",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "47157a09-bfe3-4e1d-a09c-20a04769de30",
      "name": "Delivered?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        600,
        0
      ]
    },
    {
      "parameters": {
        "amount": 2,
        "unit": "days"
      },
      "id": "47157a09-bfe3-4e1d-a09c-20a04769de30",
      "name": "Wait 2 days",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        900,
        0
      ]
    },
    {
      "parameters": {
        "operation": "read",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Orders",
          "mode": "name"
        },
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "order_id",
              "lookupValue": "={{ $('Read status').item.json.order_id }}"
            }
          ]
        }
      },
      "id": "47157a09-bfe3-4e1d-a09c-20a04769de30",
      "name": "Find customer",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1200,
        0
      ]
    },
    {
      "parameters": {
        "operation": "sendTemplate",
        "phoneNumberId": "YOUR_PHONE_NUMBER_ID",
        "recipientPhoneNumber": "={{ String($json.phone).replace(/[^0-9]/g, '') }}",
        "template": "YOUR_REVIEW_TEMPLATE|ar",
        "components": {
          "component": [
            {
              "type": "body",
              "bodyParameters": {
                "parameter": [
                  {
                    "type": "text",
                    "text": "={{ $json.customer || 'عميلنا العزيز' }}"
                  },
                  {
                    "type": "text",
                    "text": "https://YOUR_REVIEW_LINK"
                  }
                ]
              }
            }
          ]
        }
      },
      "id": "47157a09-bfe3-4e1d-a09c-20a04769de30",
      "name": "Ask for a review",
      "type": "n8n-nodes-base.whatsApp",
      "typeVersion": 1,
      "position": [
        1500,
        0
      ]
    }
  ],
  "connections": {
    "Bosta update": {
      "main": [
        [
          {
            "node": "Read status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read status": {
      "main": [
        [
          {
            "node": "Delivered?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delivered?": {
      "main": [
        [
          {
            "node": "Wait 2 days",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 2 days": {
      "main": [
        [
          {
            "node": "Find customer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find customer": {
      "main": [
        [
          {
            "node": "Ask for a review",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

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

نصائح

  • وجّه رابط التقييم إلى Google Maps أو صفحة التقييم في متجرك — حيث تفيدك التقييمات أكثر.

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