Google Apps Script لنماذج Google: دليل للمبتدئين
الجواب السريع: Google Apps Script منصة جافاسكريبت مجانية ومدمجة من Google لأتمتة Forms وSheets وتطبيقات Workspace الأخرى. هكذا يضيف الناس أشياء لا يفعلها Forms أصلياً — مثل إرسال بريد للمالك عند كل تقديم، تحديد الردود تلقائياً، أو توليد تأكيد PDF. يتطلب فعلاً معرفة برمجة أساسية، وهذا هو العائق الحقيقي أمام دخوله.
Google Forms بسيط عمداً، ما يعني أن الكثير من الطلبات الشائعة — "راسلني عند تقديم أحدهم"، "أوقف قبول الردود بعد 50"، "تحقق من هذا الحقل بطريقة لا يدعمها Forms" — ليست متاحة جاهزة. Google Apps Script هي الأداة التي تمنحك إياها Google لسد تلك الفجوة بنفسك، مجاناً، دون مغادرة بيئة Google. يشرح هذا الدليل ما هي، وما يمكنها فعله واقعياً لنموذجك، مثالاً بسيطاً عن كيفية بنائها، ولمن هي مناسبة فعلاً.
ما هو Google Apps Script؟
Apps Script هي منصة برمجة نصوص مدمجة من Google، قائمة على جافاسكريبت، تتيح لك كتابة برامج صغيرة تتفاعل مع تطبيقات Google Workspace — Forms وSheets وDocs وGmail وCalendar والمزيد. تعمل بالكامل على خوادم Google، لذا لا شيء لتثبيته ولا استضافة منفصلة لإدارتها. تصل إليها من أحد مكانين: من قائمة النقاط الثلاث في نموذجك، اختر Script editor، أو افتح Google Sheet المرتبط واذهب إلى Extensions > Apps Script. كلا الطريقين يفتحان نفس نوع المحرر، رغم أن البرامج النصية المرتبطة بالنموذج مقابل الجدول لها سياق بداية مختلف قليلاً.
ما يتيحه لك Apps Script مما لا يقدمه Forms أصلياً
- إرسال بريد تلقائي لمالك النموذج عند كل تقديم جديد. لا يملك Google Forms إعداد إشعار أصلي لهذا — أقرب خيار مدمج هو ملخص بريدي دوري للردود الجديدة، لا فوري. يمكن لـ Apps Script إطلاق بريد لحظة وصول رد، وهذا مهم للنماذج الحساسة للوقت مثل طلبات الدعم أو التسجيلات العاجلة. إذا كنت تستكشف سبب عدم تلقيك إشعارات بالردود على الإطلاق، فتلك مشكلة ذات صلة لكنها مختلفة — راجع دليلنا حول Google Forms لا يقبل الردود.
- تحديد الردود تلقائياً بحسب اليوم أو العدد. إضافات "محدد الردود" من طرف ثالث التي تحدّ نموذجاً بـ 50 إرسالاً مثلاً، أو تغلقه بعد تاريخ معين، هي نفسها عادة مبنية فوق مشغّلات Apps Script التي تتحقق من عدد الردود أو التاريخ وتغلق النموذج برمجياً. يغطي دليلنا حول إغلاق نموذج Google بعد حد الردود كلاً من مسار الإضافة وما يحدث تحت السطح.
- تحقق مخصص لا يستطيع Forms فعله أصلياً. التحقق المدمج في Forms محدود بقواعد أساسية مثل نطاقات الأرقام أو أنماط regex على حقل واحد. يمكن لـ Apps Script مقارنة إجابات متعددة ببعضها، أو ببيانات خارجية، بطرق لا تستطيعها خيارات التحقق الأصلية.
- توليد تأكيد PDF تلقائياً. يمكن لبرنامج نصي أخذ رد جديد، تنسيقه في مستند، تحويله إلى PDF، وإرساله بالبريد للمستجيب كإيصال أو تأكيد — مفيد للتسجيلات والطلبات ونماذج الطلبات.
مثال بسيط، مشروح مفاهيمياً
إليك الشكل التقريبي لبرنامج نصي يرسل بريداً لمالك النموذج عند تقديم أحدهم. هذا توضيحي لإظهار البنية — لا شيء تنسخه وتلصقه جاهزاً للإنتاج دون تكييفه مع أسئلة نموذجك الفعلية.
function onFormSubmit(e) {
// e.response holds the submitted form response
var responses = e.response.getItemResponses();
var summary = "";
responses.forEach(function (itemResponse) {
summary += itemResponse.getItem().getTitle() + ": " + itemResponse.getResponse() + "\n";
});
// Send the owner an email with the new response
MailApp.sendEmail("[email protected]", "New form response", summary);
}
الأجزاء الأساسية: onFormSubmit(e) دالة مشغّل — يستدعيها Apps Script تلقائياً عند وصول رد جديد، وe تحمل بيانات الحدث، بما في ذلك e.response، التي تمنحك الوصول إلى كل إجابة عبر getItemResponses(). من هناك، يمكن للبرنامج النصي فعل أي شيء تدعمه خدمات Apps Script — إرسال بريد، الكتابة إلى جدول، استدعاء واجهة برمجة خارجية، توليد مستند. يُضبط المشغّل نفسه بشكل منفصل في لوحة Triggers بالمحرر، حيث تخبره بتشغيل هذه الدالة "On form submit".
الإعداد خطوة بخطوة
- افتح محرر Script من قائمة النقاط الثلاث في نموذجك، أو عبر Extensions > Apps Script في الـ Sheet المرتبط.
- اكتب دالة مشغّل مثل المثال أعلاه، تقرأ الإجابات المُرسلة من كائن الحدث.
- أضف منطق الأتمتة — البريد أو PDF أو الفحص الفعلي الذي تريد تشغيله.
- أعد المشغّل في قسم Triggers (أيقونة الساعة في الشريط الجانبي الأيسر)، مضيفاً مشغّلاً جديداً يشغّل دالتك على حدث "From form" / "On form submit".
- امنح الإذن واختبر. سيطلب منك التشغيل الأول منح البرنامج النصي إذن الوصول إلى نموذجك وGmail؛ وافق، ثم أرسل رداً تجريبياً حقيقياً للتأكد من أن كل شيء يعمل بشكل صحيح.
أين تتعلم المزيد
يملك Apps Script توثيقاً رسمياً واسعاً مباشرة من Google، يغطي خدمة Forms والمشغّلات وكل تطبيق Workspace آخر يمكنه لمسه. إذا كنت جاداً بشأن كتابة برامجك النصية الخاصة، فذلك هو المرجع الأكثر موثوقية وحداثة، لأنه يُصان جنباً إلى جنب مع المنتج نفسه لا من قبل طرف ثالث.
مشغّلات شائعة أخرى غير "on form submit"
تقديم النموذج هو المشغّل الأكثر شيوعاً، لكنه ليس الوحيد المفيد للنماذج. يمكن لمشغّل زمني (يُضبط أيضاً في لوحة Triggers) أن يعمل على جدول — كل ساعة، يومياً، أو في وقت محدد — بغض النظر عمّا إذا قدّم أحدهم رداً. هذا ما يشغّل إجراءات مجدولة مثل إغلاق نموذج تلقائياً في تاريخ محدد، إرسال ملخص يومي لردود اليوم بدلاً من بريد واحد لكل تقديم، أو أرشفة الردود القديمة في جدول منفصل بشكل متجدد. تُطلق مشغّلات المحرر (onEdit) عندما يغيّر أحدهم خلية في جدول البيانات المرتبط، وهذا مفيد إذا أردت أن يستجيب برنامج نصي عندما تعلّم رداً يدوياً بأنه "تمت معالجته" أو "معتمد" في عمود حالة.
حل مشكلات Apps Script
- لا يعمل البرنامج النصي عند تقديم نموذج: تأكد أن المشغّل محفوظ فعلاً ومضبوط على "On form submit"، لا نوع حدث مختلف — يمكن للمشغّلات المُنشأة في جلسات اختبار سابقة أن تظل موجودة بصمت بجانب أخرى أحدث وسيئة الضبط، لذا تحقق من لوحة Triggers بحثاً عن تكرارات.
- أخطاء "Authorization required" في كل تشغيل: يمكن إلغاء أذونات Apps Script إذا غيّرت كلمة مرور حسابك في Google أو إذا أعادت Google التحقق دورياً من نطاقات حساسة مثل إرسال Gmail. أعد تشغيل البرنامج النصي يدوياً من المحرر مرة واحدة لإعادة تشغيل طلب الإذن.
- يعمل البرنامج النصي عند التشغيل اليدوي لكن ليس تلقائياً: بعض خدمات Apps Script (مثل عرض نافذة واجهة) تعمل فقط عندما يشغّل إنسان البرنامج النصي مباشرة، لا من مشغّل مؤتمت — يجب أن تستخدم المشغّلات المؤتمتة إجراءات غير تفاعلية مثل إرسال البريد أو الكتابة إلى جدول.
- الرسائل لا تُرسل: يملك مستوى Apps Script المجاني حصة يومية للبريد (أعلى في حساب Google Workspace منها في حساب Gmail شخصي) — قد تصطدم النماذج عالية الحجم بذلك السقف، ما يسبب فشل الرسائل اللاحقة في اليوم بصمت.
العائق الصادق أمام الدخول
يتطلب Apps Script برمجة فعلية — تحديداً جافاسكريبت أساسية. إنه ليس أداة بلا كود، ومعاملته كمفتاح إعداد بسيط سيؤدي إلى الإحباط إذا لم تكتب كوداً من قبل. قراءة وتكييف مثال قصير مثل المذكور أعلاه واقعي لمبتدئ متحمس، لكن بناء شيء أكثر تعقيداً، مثل التحقق متعدد الخطوات أو توليد PDF، يتطلب معرفة برمجية حقيقية.
هذا العائق هو بالضبط الفجوة التي تسدها الإضافات من طرف ثالث بلا كود لمن يحتاجون أتمتة دون كتابة برامج نصية، وهي نفس الفجوة التي تسدها تطبيقات مخصصة مثل FormMaker لمشكلة مختلفة تماماً — إنشاء وإدارة النموذج نفسه على الجوال، دون الحاجة لمس الكود على الإطلاق. لا يحل أي منهما محل Apps Script للتخصيص العميق، لكن لا أحد يتطلبه أيضاً.
الأسئلة الشائعة
ما هو Google Apps Script؟
Google Apps Script هي منصة Google المدمجة القائمة على جافاسكريبت لأتمتة وتوسيع تطبيقات Google Workspace، بما في ذلك Forms وSheets وGmail. تعمل على خوادم Google مجاناً ولا تتطلب تثبيتاً منفصلاً.
هل يمكن لـ Google Forms إرسال بريد إلكتروني تلقائي عند تقديم شخص؟
ليس أصلياً. لا يملك Google Forms إعداداً مدمجاً لإرسال بريد لمالك النموذج عند كل تقديم. يمكن لـ Apps Script إضافة هذا عبر تشغيل دالة مشغّل صغيرة كلما وصل رد جديد.
هل أحتاج إلى معرفة البرمجة لاستخدام Apps Script؟
نعم، على الأقل جافاسكريبت أساسية. Apps Script بيئة برمجة حقيقية، لا أداة بلا كود. إذا لم ترد كتابة الكود، انظر إلى الإضافات بلا كود أو التطبيقات المخصصة بدلاً من ذلك.
أين أفتح محرر Apps Script لنموذج Google؟
من نموذجك، اذهب إلى قائمة النقاط الثلاث واختر Script editor، أو افتح Google Sheet المرتبط واذهب إلى Extensions > Apps Script.
هل هناك حد لعدد الرسائل التي يمكن لـ Apps Script إرسالها يومياً؟
نعم. يفرض Apps Script حصة يومية لإرسال البريد أعلى لحسابات Google Workspace منها لحسابات Gmail الشخصية المجانية. النماذج عالية الحجم التي ترسل بريداً عند كل تقديم قد تصطدم بذلك السقف، وهذا يستحق التحقق منه إذا توقفت الرسائل عن الإرسال في منتصف يوم مزدحم.