رسالة ما قبل الوصول للفندق على واتساب
قبل الوصول بيومين، يصل الضيف ترحيب على واتساب بتواريخه ونوع غرفته ورابط الموقع.
كيف تعمل
المشغّل: جدول زمني — كل يوم الساعة 12:00
- اقرأ جدول Bookings.
- احتفظ بالضيوف المؤكدين الذين يصلون بعد يومين.
- أرسل قالب واتساب بتاريخ الوصول ونوع الغرفة وموقعك.
المخطط
مشغّل تطبيق كود
الكود
كود JavaScript المستخدم في خطوات Code، وهو مضمَّن بالفعل في القالب بالأسفل.
// Bookings sheet columns: guest | phone | check_in (YYYY-MM-DD) | nights | room_type | status
// Keeps confirmed guests arriving in exactly 2 days.
const inTwoDays = new Date(Date.now() + 2 * 24 * 60 * 60 * 1000).toISOString().slice(0, 10);
return $input.all()
.map((item) => item.json)
.filter((b) => String(b.check_in).slice(0, 10) === inTwoDays && String(b.status).toLowerCase() === "confirmed" && b.phone)
.map((b) => ({
json: {
phone: String(b.phone).replace(/[^0-9]/g, ""),
guest: b.guest,
check_in: b.check_in,
nights: b.nights,
room_type: b.room_type,
},
}));ابنِها بأداتك
اختر أداتك — نفس الأتمتة، خطوة بخطوة.
انسخه والصقه مباشرة في مساحة عمل n8n (Ctrl+V)، أو حمّله واستخدم Import from File. بعد ذلك اربط حساباتك واستبدل كل قيمة تبدأ بـ YOUR_.
عرض الكود (162 سطر)
{
"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": "3757d265-b3e9-4413-a7d9-26f1a685deb4",
"name": "Setup notes",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-420,
-60
]
},
{
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 12
}
]
}
},
"id": "3757d265-b3e9-4413-a7d9-26f1a685deb4",
"name": "Every day 12:00",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
0
]
},
{
"parameters": {
"operation": "read",
"documentId": {
"__rl": true,
"value": "YOUR_SPREADSHEET_ID",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "Bookings",
"mode": "name"
},
"options": {}
},
"id": "3757d265-b3e9-4413-a7d9-26f1a685deb4",
"name": "Read bookings",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
300,
0
]
},
{
"parameters": {
"jsCode": "// Bookings sheet columns: guest | phone | check_in (YYYY-MM-DD) | nights | room_type | status\n// Keeps confirmed guests arriving in exactly 2 days.\nconst inTwoDays = new Date(Date.now() + 2 * 24 * 60 * 60 * 1000).toISOString().slice(0, 10);\n\nreturn $input.all()\n .map((item) => item.json)\n .filter((b) => String(b.check_in).slice(0, 10) === inTwoDays && String(b.status).toLowerCase() === \"confirmed\" && b.phone)\n .map((b) => ({\n json: {\n phone: String(b.phone).replace(/[^0-9]/g, \"\"),\n guest: b.guest,\n check_in: b.check_in,\n nights: b.nights,\n room_type: b.room_type,\n },\n }));"
},
"id": "3757d265-b3e9-4413-a7d9-26f1a685deb4",
"name": "Arriving in 2 days",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
600,
0
]
},
{
"parameters": {
"operation": "sendTemplate",
"phoneNumberId": "YOUR_PHONE_NUMBER_ID",
"recipientPhoneNumber": "={{ $json.phone }}",
"template": "YOUR_PRE_ARRIVAL_TEMPLATE|ar",
"components": {
"component": [
{
"type": "body",
"bodyParameters": {
"parameter": [
{
"type": "text",
"text": "={{ $json.guest }}"
},
{
"type": "text",
"text": "={{ $json.check_in }}"
},
{
"type": "text",
"text": "={{ $json.room_type }}"
},
{
"type": "text",
"text": "YOUR_LOCATION_LINK"
}
]
}
}
]
}
},
"id": "3757d265-b3e9-4413-a7d9-26f1a685deb4",
"name": "Send arrival info",
"type": "n8n-nodes-base.whatsApp",
"typeVersion": 1,
"position": [
900,
0
]
}
],
"connections": {
"Every day 12:00": {
"main": [
[
{
"node": "Read bookings",
"type": "main",
"index": 0
}
]
]
},
"Read bookings": {
"main": [
[
{
"node": "Arriving in 2 days",
"type": "main",
"index": 0
}
]
]
},
"Arriving in 2 days": {
"main": [
[
{
"node": "Send arrival info",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}في Make، أنشئ سيناريو جديدًا وأضف هذه الوحدات بالترتيب:
- Schedule the scenario: Every day 12:00
- Google Sheets › Search Rows
- Tools › Set variable / Iterator + Array aggregator (same logic as the Code step)
- WhatsApp Business Cloud › Send a Template Message
- كل تشغيل لوحدة يستهلك عمليات (operations) في Make — والباقة المجانية تتضمن حصة شهرية.
- دوال Make المدمجة (map و sum و formatDate…) تغني عن معظم خطوات Code؛ وللمنطق المعقد استخدم وحدة كود.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
في Zapier، أنشئ Zap جديدًا وأضف هذه الخطوات بالترتيب:
- Schedule by Zapier — Every day 12:00
- Google Sheets — Lookup Spreadsheet Rows (or Code by Zapier)
- Code by Zapier — Run JavaScript (paste the code from the Code section)
- WhatsApp — Send Template Message
- الـ Zaps التي فيها أكثر من خطوتين تحتاج باقة Zapier مدفوعة.
- الـ Webhooks والفلاتر/المسارات و Code by Zapier ميزات مدفوعة في بعض باقات Zapier.
- Code by Zapier يشغّل JavaScript: أعد استخدام الكود بالأعلى، مع قراءة المدخلات من inputData بدلًا من $json.
- قد تختلف أسماء الوحدات والخطوات قليلًا مع تحديث Make و Zapier لتطبيقاتهما.
نصائح
- اذكر خدمة الاستقبال من المطار في القالب؛ فهي أكثر خدمة إضافية تُطلب.
أتمتات مشابهة
المطاعم والفنادقسهل
تأكيد حجوزات المطعم على واتساب
الحجوزات من نموذج موقعك تُحفظ في جدول ويصل الضيف تأكيد على واتساب فورًا.
Webhook → Google Sheets → WhatsApp5 س/شهر
المطاعم والفنادقسهل
حجوزات اليوم تصل لمجموعة الموظفين
كل عصر، يصل فريق الصالة حجوزات اليوم على تيليجرام: المواعيد والأسماء وعدد الضيوف والملاحظات.
Google Sheets → Telegram3 س/شهر
تطبيقات المنطقةمتقدم
تحديثات شحنات بوسطة للعملاء على واتساب
يصل العميل رسالة واتساب عند استلام شحنته من بوسطة، وخروجها للتوصيل، وتسليمها.
Bosta → Google Sheets → WhatsApp10 س/شهر