إرسال عروض واتساب لقائمة من Google Sheets

أرسل قالب واتساب معتمدًا لكل جهة اتصال وافقت على الرسائل في جدولك، وعلّم كل صف بأنه أُرسل.

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

تعمل مع n8n · Make · Zapier

كيف تعمل

المشغّل: يدوي — تضغط تشغيل عندما يجهز العرض
  1. اقرأ جدول جهات الاتصال (phone, name, opted_in, sent).
  2. احتفظ بمن وافقوا على الرسائل ولم تصلهم هذه الحملة بعد.
  3. أرسل لكل واحد منهم قالب واتساب التسويقي المعتمد.
  4. علّم الصف بأنه أُرسل، فلا تتكرر الرسالة لو شغّلتها مرة ثانية.

المخطط

true▶Run campaignManual TriggerGRead contactsGoogle Sheets⑂Opted in, not sent?IfWSend offerWhatsApp Business CloudGMark as sentGoogle Sheets
مشغّل تطبيق منطق

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

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

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

ملف Workflow JSON
عرض الكود (208 سطر)
{
  "name": "إرسال عروض واتساب لقائمة من Google Sheets (Flowngn)",
  "nodes": [
    {
      "parameters": {
        "content": "## إرسال عروض واتساب لقائمة من Google Sheets\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": "3f36c28d-dcaa-4fe7-afb0-dde2cffcb7d1",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {},
      "id": "3f36c28d-dcaa-4fe7-afb0-dde2cffcb7d1",
      "name": "Run campaign",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ]
    },
    {
      "parameters": {
        "operation": "read",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Contacts",
          "mode": "name"
        },
        "options": {}
      },
      "id": "3f36c28d-dcaa-4fe7-afb0-dde2cffcb7d1",
      "name": "Read contacts",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        300,
        0
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          },
          "conditions": [
            {
              "id": "c1",
              "leftValue": "={{ String($json.opted_in).toLowerCase() === 'yes' && String($json.sent).toLowerCase() !== 'yes' && $json.phone !== '' }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "3f36c28d-dcaa-4fe7-afb0-dde2cffcb7d1",
      "name": "Opted in, not sent?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        600,
        0
      ]
    },
    {
      "parameters": {
        "operation": "sendTemplate",
        "phoneNumberId": "YOUR_PHONE_NUMBER_ID",
        "recipientPhoneNumber": "={{ String($json.phone).replace(/[^0-9]/g, '') }}",
        "template": "YOUR_OFFER_TEMPLATE|ar",
        "components": {
          "component": [
            {
              "type": "body",
              "bodyParameters": {
                "parameter": [
                  {
                    "type": "text",
                    "text": "={{ $json.name || 'عميلنا العزيز' }}"
                  }
                ]
              }
            }
          ]
        }
      },
      "id": "3f36c28d-dcaa-4fe7-afb0-dde2cffcb7d1",
      "name": "Send offer",
      "type": "n8n-nodes-base.whatsApp",
      "typeVersion": 1,
      "position": [
        900,
        0
      ],
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Contacts",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "phone": "={{ $('Opted in, not sent?').item.json.phone }}",
            "sent": "={{ $json.error ? 'failed' : 'yes' }}"
          },
          "matchingColumns": [
            "phone"
          ]
        },
        "options": {}
      },
      "id": "3f36c28d-dcaa-4fe7-afb0-dde2cffcb7d1",
      "name": "Mark as sent",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1200,
        0
      ]
    }
  ],
  "connections": {
    "Run campaign": {
      "main": [
        [
          {
            "node": "Read contacts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read contacts": {
      "main": [
        [
          {
            "node": "Opted in, not sent?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Opted in, not sent?": {
      "main": [
        [
          {
            "node": "Send offer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send offer": {
      "main": [
        [
          {
            "node": "Mark as sent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

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

نصائح

  • راسل فقط من وافق على التواصل معه، فـMeta قد توقف الأرقام التي يُبلَّغ عنها.
  • امسح عمود sent قبل كل حملة جديدة.

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