---
title: "تنبيهات تليجرام من Google Sheets خطوة بخطوة"
description: "خطوات إرسال تنبيهات تليجرام من Google Sheets: إنشاء البوت، وكود Apps Script، وتنبيه لما رقم يعدّي حد معيّن مع أمثلة وخطوات عملية."
url: "https://ahmed-abdelhamed.com/blog/telegram-alerts-google-sheets/"
date_published: "2026-10-06T07:57:13+00:00"
date_modified: "2026-10-06T20:24:21+00:00"
author: "احمد عبدالحميد"
categories: ["الأتمتة والذكاء الاصطناعي"]
---

# تنبيهات تليجرام من Google Sheets خطوة بخطوة

**تنبيهات تليجرام من Google Sheets** بتتعمل بثلاث حاجات: بوت تليجرام بتنشئه من BotFather، وسكريبت Apps Script بيبعت رسالة للبوت عن طريق Telegram Bot API، ومشغّل (Trigger) بيشغّل السكريبت تلقائيًا. النتيجة: لما رقم في الشيت يعدّي حد معين (تكلفة النتيجة ارتفعت مثلًا)، بتوصلك رسالة على تليجرام بدون ما تفتح الشيت. المقال ده بيشرح الخطوات بالترتيب مع الكود، وبيحذّرك من أخطاء الأمان والحدود.

المقال بيبني على [لوحة متابعة حملات في Google Sheets](https://ahmed-abdelhamed.com/blog/campaign-dashboard-google-sheets/) و[Apps Script للمسوّقين](https://ahmed-abdelhamed.com/blog/apps-script-for-marketers/)، فلو لسه ما شفتهم ابدأ بيهم.

## ليه تنبيهات تليجرام من Google Sheets؟

اللوحة بتفيد لو فتحتها. لكن أخطر الأمور بتحصل لما مبتفتحش: حملة بتصرف من غير نتيجة بالليل، أو كارت اتوقف. التنبيه بيجيلك:

- **تليجرام مجاني** وبيوصل فورًا على الموبايل.
- **بوت خاص بيك** من غير خدمات مدفوعة.
- **مرن:** تبعت لنفسك أو لجروب الفريق.
- **قابل للتخصيص:** أي شرط تقدر تكتبه في الكود.

وبديل زي واتساب موضح في [خيارات أتمتة واتساب](https://ahmed-abdelhamed.com/blog/whatsapp-automation-options/)، لكن تليجرام أبسط وأرخص للتنبيهات الداخلية.

## الخطوة الأولى: إنشاء بوت تليجرام

1. افتح تليجرام وابحث عن **BotFather** (الحساب الرسمي الموثّق).
2. ابعتله `/newbot`.
3. اكتب اسم البوت (الاسم الظاهر) ثم اسم المستخدم (لازم ينتهي بـ bot).
4. BotFather هيديك **توكن (Token)**: سلسلة طويلة. ده مفتاح التحكم في البوت.

**تحذير مهم:** التوكن زي كلمة سر. أي شخص معاه يقدر يبعت رسايل باسم البوت. ما تنشرهوش في مكان عام، ولا في ملف بتشاركه. لو اتسرّب، من BotFather تقدر تعيد توليده.

### الخطوة الثانية: معرفة Chat ID

البوت محتاج يعرف يبعت لمين. العنوان ده اسمه Chat ID.

- **للرسايل الشخصية:** ابعت أي رسالة للبوت بتاعك، وبعدين افتح في المتصفح الرابط `https://api.telegram.org/bot<التوكن>/getUpdates` (بدّل `<التوكن>` بتوكنك). هتلاقي في النتيجة `chat` وفيه `id`.
- **للجروب:** أضف البوت للجروب، وابعت رسالة في الجروب، واستخدم نفس الرابط. غالبًا الرقم بيكون سالب.

لو الرابط رجّع نتيجة فاضية، ابعت رسالة جديدة للبوت وجرّب تاني.

## الخطوة الثالثة: كتابة سكريبت Apps Script

من الشيت: **الإضافات ← Apps Script** (أو الامتدادات حسب الواجهة). هيفتح محرر. احفظ التوكن والـ Chat ID في **Script Properties** بدل ما تكتبهم في الكود:

1. من إعدادات المشروع (Project Settings) روح لـ Script Properties.
2. أضف خاصيتين: `BOT_TOKEN` و`CHAT_ID` بقيمهم.

وبعدين الكود:

```
function sendTelegram(text) {
const p = PropertiesService.getScriptProperties();
const url = 'https://api.telegram.org/bot' + p.getProperty('BOT_TOKEN') + '/sendMessage';
UrlFetchApp.fetch(url, {method:'post', contentType:'application/json', payload: JSON.stringify({chat_id: p.getProperty('CHAT_ID'), text: text})});
}
```

وبعدين اختبرها بدالة تجريبية:

```
function testTelegram() { sendTelegram('اختبار من الشيت'); }
```

شغّل `testTelegram`. أول مرة هيطلب منك صلاحيات (للوصول لخدمات خارجية)، وافق عليها. لو الرسالة وصلتك على تليجرام، الأساس شغال.

## الخطوة الرابعة: شرط تنبيهات تليجرام من Google Sheets

دلوقتي تحدد إمتى يبعت. مثال: لو تكلفة النتيجة في آخر صف بتعدي الهدف المكتوب في تبويب الإعدادات:

```
function checkCost() {
const ss = SpreadsheetApp.getActive();
const target = ss.getSheetByName('Settings').getRange('B1').getValue();
const cost = ss.getSheetByName('Dashboard').getRange('D5').getValue();
if (cost > target) sendTelegram('تنبيه: تكلفة النتيجة ' + cost + ' أعلى من الهدف ' + target);
}
```

عدّل أسماء التبويبات والخلايا حسب شيتك. فكرة الهدف في تبويب الإعدادات مشروحة في [لوحة المتابعة](https://ahmed-abdelhamed.com/blog/campaign-dashboard-google-sheets/)، وتحديد الهدف نفسه من [تكلفة الشراء المستهدفة](https://ahmed-abdelhamed.com/blog/target-cost-per-order/).

### تحسينات مهمة على الشرط

- **ماتبعتش نفس التنبيه كل مرة:** سجّل آخر تنبيه في خلية أو Property، وابعت بس لو الحالة اتغيرت. وإلا هتغرق في رسايل.
- **حد أدنى للصرف:** متنبّهش على حملة صرفت قليل جدًا، لأن الأرقام الصغيرة بتتذبذب، راجع [متى تزوّد أو توقف الحملة](https://ahmed-abdelhamed.com/blog/when-to-scale-or-stop-campaign/).
- **اجمع التنبيهات في رسالة واحدة** لو في أكتر من حملة.
- **اكتب رسالة مفيدة:** اسم الحملة، الرقم، الهدف، ورابط الشيت.

## الخطوة الخامسة: التشغيل التلقائي بـ Trigger

من محرر Apps Script اضغط أيقونة المنبه (Triggers) وأضف مشغّلًا:

1. اختار الدالة `checkCost`.
2. نوع الحدث: **مدفوع بالوقت (Time-driven)**.
3. حدد التكرار (كل ساعة، أو كل يوم في وقت معين).
4. احفظ.

لو بيانات الشيت بتتحدث بالاستيراد، خلي التنبيه يشتغل بعد وقت التحديث. وتفاصيل أنواع المشغلات وحدودها في [المشغلات Triggers في Apps Script](https://ahmed-abdelhamed.com/blog/apps-script-triggers/) و[سحب بيانات ميتا لـ Sheets](https://ahmed-abdelhamed.com/blog/meta-ads-data-google-sheets/).

### حدود وأمور تنتبه ليها

- **حصص Apps Script:** فيه حدود يومية على وقت التشغيل وعدد استدعاءات الخدمات الخارجية، وبتختلف حسب نوع حساب جوجل (شخصي أو Workspace). راجع صفحة الحصص الرسمية، ومتصمّمش تنبيهات كل دقيقة بدون حاجة.
- **حدود تليجرام:** البوت ليه حدود على عدد الرسايل في الثانية والدقيقة، خاصة للجروبات. لو بتبعت قليل مفيش مشكلة.
- **الخصوصية:** متبعتش بيانات حساسة لعملائك في الرسايل. وجروب الفريق لازم يكون مقفول على اللي يستحق.
- **الصلاحيات:** السكريبت بيشتغل بصلاحياتك، فلو الشيت اتشارك، اتأكد مين يقدر يعدّل السكريبت.
- **التوكن:** احتفظ بيه في Script Properties، ولو شاركت نسخة من الملف لحد، فرّغ الخصائص الأول أو غيّر التوكن.

### أخطاء شائعة

- **كتابة التوكن في الكود وبعدين مشاركة الملف.**
- **Chat ID غلط:** الرسالة مبتوصلش من غير خطأ واضح. راجع `getUpdates`.
- **نسيان إرسال رسالة للبوت أول مرة** قبل ما تجيب الـ ID.
- **تنبيه بدون حد أدنى:** إنذارات كاذبة كتير ثم بتتجاهل التنبيهات.
- **مفيش تحقق من الأخطاء:** لو تليجرام رجّع خطأ، السكريبت بيفشل بصمت. استخدم `try/catch` وسجّل الخطأ.
- **Trigger بيشتغل أكتر من اللازم:** بيضيع الحصة.
- **تعديل الشيت (حذف عمود) بيكسر مراجع الخلايا:** استخدم نطاقات مسماة (Named Ranges) لو الشيت بيتغير.

## أفكار تنبيهات عملية للمسوّقين

بعد ما الأساس يشتغل، أمثلة على شروط مفيدة:

1. **تكلفة النتيجة فوق الهدف** لحملة صرفت أكتر من حد أدنى.
2. **الصرف اليومي تخطى الميزانية المتوقعة** (إنذار إنفاق زايد).
3. **الصرف صفر** لحملة مفروض شغالة (ممكن الإعلان اترفض أو الكارت اتوقف).
4. **ROAS نزل تحت نقطة التعادل** ليومين متتاليين.
5. **تقرير يومي مختصر** الصبح: الصرف والنتايج والتكلفة.
6. **طلب أو ليد جديد** من نموذج الموقع.
7. **نفاد مخزون** منتج رئيسي من شيت المخزون.

كل تنبيه بيحتاج حد أدنى وتجنب التكرار، وإلا بيتحول لضوضاء بتتجاهلها.

### تحسينات لشكل الرسالة

تليجرام بيدعم تنسيق HTML أو Markdown في الرسالة. ممكن تضيف `parse_mode` عشان تعمل نص عريض وروابط. مثال لرسالة مفيدة:

- اسم الحملة بخط عريض.
- الرقم الحالي والهدف.
- رابط مباشر للشيت.
- وقت الإرسال.

وخلي الرسالة قصيرة. التنبيه الجيد بيتقري في ثانيتين على شاشة الموبايل.

### تجنّب أخطاء الاعتماد على التنبيهات

التنبيه أداة مساعدة مش بديل للمراجعة اليدوية. مخاطر:

- **الشيت نفسه فيه خطأ:** تنبيه مبني على داتا غلط بيدّيك قرار غلط. اتأكد من التتبع الأول.
- **السكريبت وقف بصمت:** راجع صفحة Executions كل فترة، أو ابعت رسالة «أنا شغال» أسبوعيًا للتأكد.
- **تنبيه كتير وبتتجاهله:** قلّل لحد اللي بتتصرف فعلًا بناءً عليه.
- **قرار تلقائي:** ما تربطش التنبيه بتوقيف أو تشغيل حملات تلقائيًا إلا بعد اختبار طويل وبحدود واضحة.

وفصل [سلم الأتمتة في ميتا](https://ahmed-abdelhamed.com/book/meta-automation-ladder/) بيشرح ازاي تتدرج في الأتمتة بأمان، من التنبيه لحد القواعد التلقائية.

للتأكد من أحدث التفاصيل، راجع [توثيق Google Apps Script الرسمي](https://developers.google.com/apps-script)، لأن الواجهات والسياسات بتتغيّر باستمرار.

**مقالات ذات صلة بتفيدك:**

- [برنامج CRM مجاني لمشروع صغير: الخيارات وإزاي تبنيه في Google Sheets](https://ahmed-abdelhamed.com/blog/free-crm-small-business/)
- [Looker Studio: بناء تقرير عميل من الصفر](https://ahmed-abdelhamed.com/blog/looker-studio-client-report/)
- [شرح n8n بالعربي: أتمتة شغلك من غير كود](https://ahmed-abdelhamed.com/blog/n8n-guide-arabic/)
- [تصدر نتائج البحث في جوجل: إيه اللي بيفرق فعلًا](https://ahmed-abdelhamed.com/blog/rank-first-on-google/)

## أسئلة شائعة

### محتاج أعرف برمجة؟

كفاية تنسخ الكود وتعدّل أسماء الخلايا. لكن لازم تفهم الأساسيات عشان تصلّح الأخطاء. ابدأ بالمثال البسيط وزوّد.

### ينفع أبعث لأكتر من شخص؟

أيوه، بإضافة الأشخاص لجروب والبوت فيه، وتستخدم Chat ID الجروب. أو تبعت لأكتر من Chat ID في حلقة.

### التنبيه وصل مرتين أو مبيوصلش؟

افحص: هل في Trigger مكرر؟ هل الشرط بيتحقق في كل تشغيل؟ هل في خطأ في سجل التنفيذات (Executions)؟ وسجّل آخر حالة عشان تمنع التكرار.

### أنفع أستخدمه لتنبيهات تانية؟

أكيد: نفاد مخزون من شيت، أو طلب جديد من [نموذج الموقع إلى Google Sheets](https://ahmed-abdelhamed.com/blog/website-form-to-google-sheets/)، أو تنبيه عند نزول ROAS تحت نقطة التعادل.

لو عايز نجهّز نظام تنبيهات مخصص لحملاتك وتقاريرك، [احجز استشارة](https://ahmed-abdelhamed.com/consultation/). وشوف كمان [التقرير الأسبوعي الآلي للعميل](https://ahmed-abdelhamed.com/blog/automated-weekly-client-report/).
