أتمتة الاتصالات أمر أساسي لأي عمل تجاري نامٍ، والقدرة على إرسال الرسائل القصيرة من Google Sheets يمكن أن تطلق العنان لسير عمل قوي للتسويق والإشعارات وخدمة العملاء. سيرشدك هذا الدليل الشامل خلال العملية، مستفيدًا من قوة Google Apps Script وبوابة الرسائل القصيرة الموثوقة والفعالة من حيث التكلفة MySMSGate لتحويل جدول البيانات الخاص بك إلى مركز اتصال قوي.

سواء كنت ترسل تذكيرات بالمواعيد، أو تحديثات للطلبات، أو رسائل تسويقية مخصصة، ستكتشف مدى سهولة وتكلفة أتمتة الرسائل القصيرة مباشرة من بيانات Google Sheets الخاصة بك، دون الحاجة إلى بنية تحتية معقدة أو خدمات باهظة الثمن من طرف ثالث.

الخطوة 1: فهم الأساسيات – لماذا أتمتة الرسائل القصيرة من Google Sheets؟

Google Sheets هو أكثر من مجرد جدول بيانات؛ إنه قاعدة بيانات متعددة الاستخدامات للعديد من الشركات الصغيرة والناشئة. يوفر دمج إرسال الرسائل القصيرة مباشرة من جداول البيانات الخاصة بك العديد من المزايا:

  • الكفاءة: أتمتة المهام المتكررة مثل إرسال الإشعارات الجماعية أو الرسائل المخصصة.
  • الاتصال المبني على البيانات: استخدم بيانات العملاء الموجودة في جداول البيانات الخاصة بك لتشغيل رسائل SMS مستهدفة.
  • الفعالية من حيث التكلفة: تجنب الإرسال اليدوي، وقلل الأخطاء، واختر بوابة SMS ميسورة التكلفة مثل MySMSGate.
  • إمكانية الوصول: إدارة جهات الاتصال والاتصالات الخاصة بك من منصة مألوفة ومتاحة على نطاق واسع.
  • حالات الاستخدام: تذكيرات بالمواعيد، إشعارات التسليم، حملات تسويقية، رموز OTP، تنبيهات داخلية، متابعات دعم العملاء، والمزيد.

من خلال ربط Google Sheets ببوابة رسائل قصيرة مثل MySMSGate، يمكنك تحويل بياناتك إلى اتصالات قابلة للتنفيذ، مباشرة من متصفحك.

الخطوة 2: ابدأ مع MySMSGate: بوابة الرسائل القصيرة ذات التكلفة المنخفضة

قبل أن نتعمق في البرمجة، ستحتاج إلى بوابة رسائل قصيرة (SMS gateway) يمكنها التعامل مع رسائلك. تقدم MySMSGate حلاً فريدًا وفعالاً للغاية من حيث التكلفة عن طريق تحويل هواتف Android الموجودة لديك إلى أجهزة قوية لإرسال الرسائل القصيرة. يتجاوز هذا النهج مجمعات الرسائل القصيرة التقليدية باهظة الثمن ويزيل الحاجة إلى تسجيلات مرسل معقدة مثل 10DLC.

  1. أنشئ حسابك: توجه إلى MySMSGate.net واشترك للحصول على حساب مجاني. العملية سريعة ولا تتطلب بطاقة ائتمان مقدمًا.
  2. ربط هاتف Android الخاص بك: بمجرد تسجيل الدخول، ستجد رمز QR في لوحة التحكم الخاصة بك. قم بتنزيل تطبيق MySMSGate Android من متجر Google Play على هاتف Android الذي اخترته. افتح التطبيق وامسح رمز QR من لوحة التحكم الخاصة بك. سيتصل هاتفك على الفور، ويكون جاهزًا لإرسال واستقبال الرسائل. يمكنك ربط عدد غير محدود من الهواتف بحساب واحد، باستخدام دعم الشريحتين إذا لزم الأمر.
  3. حدد موقع مفتاح API الخاص بك: لكي يتمكن Google Apps Script من الاتصال بـ MySMSGate، ستحتاج إلى مفتاح API الفريد الخاص بك. يمكنك العثور على هذا المفتاح في لوحة تحكم MySMSGate الخاصة بك ضمن قسم 'API'. حافظ على هذا المفتاح آمنًا، لأنه يوثق طلباتك.
  4. شحن حسابك: يعمل MySMSGate على نموذج الدفع حسب الاستخدام بدون رسوم شهرية أو عقود. تكلفة الرسائل القصيرة هي فقط 0.03 دولارًا لكل رسالة قصيرة، مع توفر باقات (على سبيل المثال، 100 رسالة قصيرة مقابل 3 دولارات، 500 رسالة قصيرة مقابل 12 دولارًا، 1000 رسالة قصيرة مقابل 20 دولارًا). أضف رصيدًا إلى حسابك لضمان الإرسال السلس. يتم استرداد الرسائل القصيرة الفاشلة تلقائيًا.

تبرز MySMSGate كأحد أفضل واجهات برمجة تطبيقات الرسائل القصيرة الأقل تكلفة للشركات الصغيرة، حيث توفر واجهة برمجة تطبيقات REST قوية للمطورين ولوحة تحكم ويب سهلة الاستخدام للمستخدمين غير التقنيين.

الخطوة 3: تجهيز Google Sheet الخاص بك لإرسال الرسائل القصيرة

هيكل Google Sheet الخاص بك أمر بالغ الأهمية. ستحتاج إلى أعمدة لرقم هاتف المستلم ومحتوى الرسالة. فكر في إضافة المزيد من الأعمدة للتخصيص أو التتبع.

دعنا نعد جدول بيانات بسيطًا بثلاثة أعمدة:

  • رقم الهاتف: الرقم الدولي الكامل للمستلم (على سبيل المثال، +12345678900).
  • الرسالة: محتوى نص الرسالة القصيرة.
  • الحالة: عمود لتتبع ما إذا تم إرسال الرسالة القصيرة بنجاح (اختياري، ولكنه موصى به بشدة لتصحيح الأخطاء والتتبع).

إليك مثال على شكل جدول البيانات الخاص بك:

رقم الهاتفالرسالةالحالة
+12345678900مرحباً جون، موعدك غداً الساعة 2 مساءً.
+19876543210تذكير: فاتورتك مستحقة في 20 مارس.
+11122334455عرض خاص لك! استخدم الرمز SAVE10.

تأكد من تنسيق أرقام هواتفك بشكل صحيح باستخدام رمز الاتصال الدولي (على سبيل المثال، +1، +44، +91) لأن هذا ضروري للتسليم الموثوق به.

الخطوة 4: الوصول إلى Google Apps Script

Google Apps Script هي منصة قائمة على JavaScript تتيح لك توسيع تطبيقات Google Workspace مثل Sheets وDocs وForms. هنا سنكتب الكود لربط جدول البيانات الخاص بك بـ MySMSGate.

  1. افتح Google Sheet الخاص بك.
  2. اذهب إلى شريط القائمة وانقر على Extensions > Apps Script.
  3. ستفتح علامة تبويب جديدة في المتصفح، تعرض محرر Google Apps Script. من المحتمل أن ترى ملفًا افتراضيًا باسم Code.gs مع دالة فارغة، myFunction().

هذا هو المكان الذي سنكتب فيه رمز JavaScript المخصص الخاص بنا.

الخطوة 5: كتابة رمز Google Apps Script

الآن، دعنا نكتب رمز JavaScript الذي سيقرأ البيانات من Google Sheet الخاص بك ويرسلها إلى MySMSGate API. سنقوم بإنشاء دالة تتكرر عبر الصفوف، وتنشئ طلب API، وترسل الرسالة.

function sendSmsFromSheet() {
  const SHEET_NAME = 'Sheet1'; // Replace with your sheet name
  const API_KEY = 'YOUR_MY_SMS_GATE_API_KEY'; // Replace with your MySMSGate API Key
  const API_ENDPOINT = 'https://mysmsgate.net/api/v1/send';
  
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  const dataRange = sheet.getDataRange();
  const values = dataRange.getValues();
  
  // Assuming headers are in the first row, start from the second row
  for (let i = 1; i < values.length; i++) {
    const row = values[i];
    const phoneNumber = row[0]; // Phone number from the first column
    const messageText = row[1]; // Message from the second column
    let statusCell = sheet.getRange(i + 1, 3); // Status in the third column (row index + 1, column index)

    // Skip if phone number or message is empty, or if status is already 'Sent'
    if (!phoneNumber || !messageText || statusCell.getValue() === 'Sent') {
      continue;
    }

    try {
      const payload = {
        'api_key': API_KEY,
        'number': phoneNumber,
        'message': messageText
        // 'device_id': 'YOUR_DEVICE_ID' // Optional: Specify a connected Android device ID
        // 'sim_slot': 1 // Optional: Specify SIM slot (1 or 2) if dual SIM
      };

      const options = {
        'method': 'post',
        'contentType': 'application/json',
        'payload': JSON.stringify(payload)
      };

      const response = UrlFetchApp.fetch(API_ENDPOINT, options);
      const responseData = JSON.parse(response.getContentText());

      if (responseData.success) {
        statusCell.setValue('Sent');
        Logger.log('SMS sent successfully to ' + phoneNumber);
      } else {
        statusCell.setValue('Failed: ' + responseData.message);
        Logger.log('Failed to send SMS to ' + phoneNumber + ': ' + responseData.message);
      }
    } catch (e) {
      statusCell.setValue('Error: ' + e.message);
      Logger.log('Error sending SMS to ' + phoneNumber + ': ' + e.message);
    }
    
    // Optional: Add a small delay to avoid hitting API rate limits if sending many messages
    // Utilities.sleep(1000); 
  }
}

شرح الكود:

  • SHEET_NAME: تأكد من مطابقة هذا الاسم الدقيق لعلامة تبويب Google Sheet الخاصة بك (على سبيل المثال، 'Sheet1', 'SMS List').
  • API_KEY: هام: استبدل 'YOUR_MY_SMS_GATE_API_KEY' بمفتاح API الفعلي الخاص بك من لوحة تحكم MySMSGate.
  • API_ENDPOINT: هذه هي نقطة نهاية MySMSGate API لإرسال الرسائل.
  • sheet.getDataRange().getValues(): يسترد هذا جميع البيانات من جدول البيانات النشط الخاص بك.
  • التكرار عبر الصفوف: تبدأ حلقة for من i = 1 لتجاوز صف الرأس.
  • phoneNumber و messageText: تستخرج هذه المتغيرات البيانات من العمود الأول (الفهرس 0) والعمود الثاني (الفهرس 1) لكل صف. اضبط هذه الفهارس إذا كانت أعمدتك مختلفة.
  • statusCell: يحصل هذا على مرجع للخلية في العمود الثالث (الفهرس 2) من الصف الحالي، حيث سنقوم بتحديث الحالة.
  • payload: يحتوي كائن JSON هذا على البيانات المطلوبة بواسطة MySMSGate API: api_key الخاص بك، و number، و message. يمكنك اختياريًا تضمين device_id و sim_slot إذا كان لديك أجهزة متعددة أو هواتف ذات شريحتين متصلة وترغب في تحديد أي منها للاستخدام.
  • UrlFetchApp.fetch(): هذه هي طريقة Google Apps Script لإجراء طلبات HTTP. نحن نرسل طلب POST مع حمولة JSON.
  • معالجة الاستجابة: يقوم السكريبت بتحليل استجابة API وتحديث عمود "الحالة" وفقًا لذلك، مشيرًا إلى 'تم الإرسال' (Sent) أو 'فشل' (Failed) مع رسالة خطأ.

لمزيد من التفاصيل حول معلمات API، راجع وثائق MySMSGate API.

الخطوة 6: تكوين واختبار مرسل الرسائل القصيرة الخاص بك

بعد لصق الكود في محرر Apps Script الخاص بك، تحتاج إلى حفظه ومنح الأذونات اللازمة.

  1. حفظ السكريبت: انقر على أيقونة القرص المرن (Save project) أو File > Save.
  2. اختيار الدالة: في شريط الأدوات فوق محرر الكود، يوجد قائمة منسدلة (قد تقول 'myFunction' أو 'sendSmsFromSheet'). اختر sendSmsFromSheet.
  3. تشغيل السكريبت: انقر على أيقونة "تشغيل" (مثلث يشير إلى اليمين).
  4. تفويض الأذونات: في المرة الأولى التي تقوم فيها بتشغيل سكريبت يصل إلى خدمات خارجية أو جدول البيانات الخاص بك، ستطلب Google إذنك. اتبع هذه الخطوات:
    1. انقر على 'مراجعة الأذونات' (Review permissions).
    2. اختر حساب Google الخاص بك.
    3. راجع الأذونات المطلوبة (على سبيل المثال، 'مشاهدة وتعديل وإنشاء وحذف جميع جداول بيانات Google Sheets الخاصة بك'، 'الاتصال بخدمة خارجية').
    4. انقر على 'سماح' (Allow).
  5. التحقق من جدول البيانات الخاص بك: بعد التفويض الناجح، سيتم تشغيل السكريبت. عد إلى Google Sheet الخاص بك. يجب أن ترى عمود "الحالة" محدثًا بـ 'تم الإرسال' (Sent) للرسائل التي تم تسليمها بنجاح أو 'فشل' (Failed) مع رسالة خطأ.
  6. التحقق من هاتفك: تحقق من أن هاتف Android المتصل الخاص بك أرسل الرسائل.

إذا واجهت أخطاء، فتحقق من علامة التبويب 'Executions' في محرر Apps Script للحصول على السجلات وتفاصيل الأخطاء. تشمل المشكلات الشائعة مفتاح API غير صحيح، أو أرقام هواتف غير صحيحة التنسيق، أو رسالة فارغة.

الخطوة 7: أتمتة إرسال الرسائل القصيرة باستخدام المشغلات (Triggers)

تشغيل السكريبت يدويًا جيد للاختبار، ولكن القوة الحقيقية لأتمتة الرسائل القصيرة من Google Sheets تأتي مع المشغلات (triggers). يمكنك إعداد السكريبت الخاص بك ليعمل تلقائيًا بناءً على أحداث مختلفة:

  • حسب الوقت (Time-driven): تشغيل السكريبت كل ساعة، يوم، أسبوع، إلخ، لمعالجة الصفوف الجديدة.
  • عند إرسال نموذج (On form submit): إذا تم ملء جدول البيانات الخاص بك بواسطة نموذج Google Form، أرسل رسالة قصيرة فورًا بعد إرسال نموذج جديد.
  • عند التعديل (On edit): تشغيل السكريبت عند تعديل خلية أو نطاق معين.

إليك كيفية إعداد مشغل يعتمد على الوقت:

  1. في محرر Apps Script، انقر على أيقونة "المشغلات" (Triggers) (ساعة) في الشريط الجانبي الأيسر.
  2. انقر على '+ إضافة مشغل' (+ Add Trigger) في الزاوية اليمنى السفلية.
  3. قم بتكوين المشغل:
    • اختر الدالة التي سيتم تشغيلها: sendSmsFromSheet
    • اختر النشر للتشغيل: Head
    • حدد مصدر الحدث: Time-driven
    • حدد نوع المشغل المستند إلى الوقت: على سبيل المثال، Hour timer
    • حدد الفاصل الزمني للساعة: على سبيل المثال، Every hour
  4. انقر على 'حفظ' (Save).

الآن، سيقوم Google Sheet الخاص بك بالتحقق تلقائيًا من وجود رسائل جديدة لإرسالها في الفاصل الزمني المحدد، مما يجعل حملات الرسائل القصيرة الخاصة بك تعمل بدون تدخل يدوي. يمكنك أيضًا دمج MySMSGate مع أدوات مثل Zapier أو Make.com أو n8n لسير عمل أتمتة أكثر تعقيدًا، كما هو مفصل في أدلة التكامل الخاصة بنا.

الخطوة 8: نصائح متقدمة وحالات استخدام

بمجرد إتقان أساسيات كيفية إرسال الرسائل القصيرة من Google Sheets، ضع في اعتبارك هذه النصائح المتقدمة لزيادة أتمتتك إلى أقصى حد:

  • التخصيص: أضف المزيد من الأعمدة إلى جدول البيانات الخاص بك (مثل اسم العميل، رقم الطلب) وقم بإدراجها ديناميكيًا في نص رسالتك داخل السكريبت.
  • الاتصال ثنائي الاتجاه: يقوم MySMSGate تلقائيًا بإعادة توجيه جميع الرسائل القصيرة الواردة إلى لوحة التحكم الخاصة بك على الويب. يمكنك بعد ذلك الرد باستخدام واجهة "Web Conversations"، مما يمنحك تجربة شبيهة بالدردشة مباشرة من متصفحك.
  • معالجة الأخطاء والتسجيل: قم بتحسين السكريبت الخاص بك لتسجيل رسائل نجاح/فشل أكثر تفصيلاً، ربما في ورقة "سجلات" منفصلة، لتحسين المراقبة.
  • إدارة التكلفة: بفضل تسعير MySMSGate الشفاف بسعر 0.03 دولارًا لكل رسالة قصيرة، يمكنك حساب التكاليف بسهولة. مقارنة بالمنافسين مثل Twilio (0.05-0.08 دولارًا لكل رسالة قصيرة بالإضافة إلى رسوم إضافية لأرقام الهواتف وتسجيل 10DLC)، تقدم MySMSGate توفيرًا كبيرًا، خاصة للشركات الصغيرة أو تلك التي ترسل كميات كبيرة.
  • أجهزة/شرائح مخصصة: إذا كان لديك عدة هواتف Android متصلة بـ MySMSGate، يمكنك تحديد device_id أو sim_slot الذي سيتم استخدامه لإرسال رسائل معينة، مما يتيح إدارة الفروع المتعددة أو هويات مرسلين مميزة.
  • جدولة الرسائل: بينما يمكن لمشغلات Google Apps Script الجدولة، للحصول على جدولة أكثر دقة، يمكنك إدارة قوائم انتظار الرسائل في جدول البيانات الخاص بك وجعل السكريبت يرسل الرسائل فقط عندما يحين وقتها المجدول.

من خلال الاستفادة من هذه الإمكانيات، يمكن أن يصبح Google Sheet الخاص بك منصة اتصال قوية ومتكاملة لعملك.

الأسئلة المتكررة

هل يمكنني إرسال رسائل قصيرة مخصصة من Google Sheets؟

نعم، بالتأكيد! من خلال إضافة أعمدة للبيانات المخصصة (مثل أسماء العملاء، أرقام الطلبات، أو تواريخ محددة) في Google Sheet الخاص بك، يمكنك بسهولة تعديل Google Apps Script لإدراج هذه المعلومات ديناميكيًا في رسالة SMS الخاصة بك. يتيح ذلك اتصالاً ذا صلة وجذابًا للغاية مع المستلمين.

هل إرسال الرسائل القصيرة من Google Sheets مكلف؟

تعتمد التكلفة على بوابة الرسائل القصيرة التي تستخدمها. مع MySMSGate، يُعد إرسال الرسائل القصيرة من Google Sheets ميسور التكلفة للغاية، حيث يكلف فقط 0.03 دولارًا لكل رسالة قصيرة بدون رسوم شهرية أو عقود. هذا أرخص بكثير من العديد من واجهات برمجة تطبيقات الرسائل القصيرة التقليدية مثل Twilio، والتي غالبًا ما تفرض رسومًا تتراوح بين 0.05 دولارًا و 0.08 دولارًا لكل رسالة قصيرة بالإضافة إلى رسوم إضافية لأرقام الهواتف والامتثال. يساعد نموذج MySMSGate الذي يستخدم هواتف Android الخاصة بك في خفض التكاليف.

هل أحتاج إلى مهارات برمجة لأتمتة الرسائل القصيرة من Google Sheets؟

بالنسبة للطريقة الموضحة في هذا البرنامج التعليمي، فإن الإلمام الأساسي بنسخ ولصق الكود وفهم المتغيرات البسيطة في JavaScript (Google Apps Script) مفيد. لست بحاجة إلى أن تكون مطورًا خبيرًا. مقتطف الكود المقدم جاهز للاستخدام مع تعديلات بسيطة (مفتاح API، اسم ورقة العمل). للمستخدمين غير التقنيين، تقدم MySMSGate أيضًا لوحة تحكم ويب لإرسال الرسائل القصيرة مباشرة، أو تكاملات بدون كود مع Zapier، Make.com، و n8n، والتي يمكنها الاتصال بـ Google Sheets دون كتابة كود مخصص.

كيف يمكنني تتبع حالة تسليم الرسائل القصيرة من Google Sheets؟

في هذا البرنامج التعليمي، قمنا بتضمين عمود "الحالة" (Status) في Google Sheet الخاص بك والذي يتم تحديثه بـ "تم الإرسال" (Sent) أو "فشل" (Failed) مباشرة بعد استجابة MySMSGate API. لتتبع التسليم في الوقت الفعلي بشكل أكثر تفصيلاً، تقدم MySMSGate خطافات الويب (webhooks) التي يمكنها دفع تحديثات حالة التسليم إلى أنظمتك الخاصة، والتي يمكن لـ Google Apps Script الأكثر تقدمًا معالجتها وتحديثها في جدول البيانات الخاص بك أو قاعدة بيانات أخرى.

ما هي بدائل MySMSGate لإرسال الرسائل القصيرة من Google Sheets؟

بينما تقدم MySMSGate حلاً فريدًا وفعالاً من حيث التكلفة، تشمل البدائل الأخرى واجهات برمجة تطبيقات الرسائل القصيرة التقليدية مثل Twilio أو Vonage أو Plivo، والتي يمكن دمجها أيضًا مع Google Apps Script. ومع ذلك، غالبًا ما تأتي هذه البدائل بتكاليف أعلى لكل رسالة، ورسوم شهرية، وتتطلب عمليات امتثال مثل تسجيل 10DLC في الولايات المتحدة. استخدام MySMSGate لهواتف Android الخاصة بك يزيل هذه التعقيدات والتكاليف، مما يجعلها بديلاً ممتازًا لـ Twilio للعديد من الشركات الصغيرة والمطورين.