GFPortfolio / Complete Case Studyالملف الشخصي / دراسة الحالة الكاملة
AI Automation · Marketing Operations
أتمتة بالذكاء الاصطناعي · عمليات تسويقية

Hotel Outreach Automation Marketing Automation

Hotel Outreach Automation Marketing Automation

Turning manual hotel outreach into a repeatable, trackable automation workflow that can be adapted for any company.

تحويل التواصل الفندقي اليدوي إلى مسار أتمتة قابل للتكرار والتتبع ويمكن تكييفه لأي شركة.

n8nOutlookGoogle Sheets
Focus areasمجالات التركيزB2B outreach automation for hotels and service businessesأتمتة التواصل B2B للفنادق والمنشآت الخدمية
RoleContribution: workflow architecture, campaign logic, integrations, tracking, and operational deliveryالمساهمة: معمارية المسار، منطق الحملة، التكاملات، التتبع، والتسليم التشغيلي
LanguagesاللغاتMultilingual campaigns matched by countryحملات متعددة اللغات مطابقة حسب الدولة
StatusProduction-ready workflow · Reusableمسار جاهز للإنتاج · قابل لإعادة الاستخدام
01 — Project Overview
01 — ملخص المشروع

Operational control, not just email sending.

التحكم التشغيلي، وليس مجرد إرسال البريد.

The real need was operational control. Company outreach had to move from scattered manual sending to a workflow that selects the right content, tracks every send, and makes the next follow-up action clear.

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

Quick snapshotلمحة سريعةMarketing & operational outreach automationأتمتة تسويقية وتشغيلية للتواصل
ContributionArchitecture · campaign logic · integrations · tracking · operational handoffمعمارية المسار · منطق الحملة · التكاملات · التتبع · التسليم التشغيلي
StatusProduction-ready · reusableمسار جاهز للإنتاج · قابل لإعادة الاستخدام

The business problem

المشكلة التجارية

Manual outreach created inconsistent messages and poor follow-up visibility. As the company list grew, it became difficult to know who had been contacted, which language or campaign was used, whether sending succeeded, and when the next action was due.

أدى التواصل اليدوي إلى رسائل غير متسقة وضعف في وضوح المتابعة. ومع نمو قائمة الشركات أصبح من الصعب معرفة من تم التواصل معه، وأي لغة أو حملة استُخدمت، وهل نجح الإرسال، ومتى يحين الإجراء التالي.

What I built

ما الذي بنيته

I designed an n8n workflow that reads company records from Google Sheets, filters eligible contacts, matches marketing content and images by country and language, builds a personalized HTML message, sends through Outlook using Microsoft Graph, and writes delivery state, campaign metadata, timestamps, and follow-up context back to the shared record.

تم تصميم مسار n8n يقرأ سجلات الشركات من Google Sheets، ويصفي المؤهل منها، ويطابق المحتوى والصور التسويقية حسب الدولة واللغة، ويبني رسالة HTML مخصصة، ثم يرسل عبر Outlook باستخدام Microsoft Graph، وبعدها يكتب حالة الإرسال وبيانات الحملة والطوابع الزمنية وسياق المتابعة مرة أخرى في السجل المشترك.

01 — Impact & Measurable Results
01 — الأثر والنتائج القابلة للقياس

Measurable operational scale and traceability.

الأثر والنتائج القابلة للقياس

The measurable value here is operational scale and traceability rather than an invented ROI percentage. The workflow is designed to process a large company list in controlled daily batches while preserving the state of every contact and follow-up.

القيمة القابلة للقياس هنا هي القدرة التشغيلية والتتبع، وليس اختراع نسبة ROI غير موثقة. صُمم المسار لمعالجة قائمة كبيرة من الشركات ضمن دفعات يومية مضبوطة مع حفظ حالة كل جهة ومتابعاتها.

17,000
Company records supported in the outreach dataset
سجل شركة مدعوم ضمن قاعدة التواصل
100/day
Controlled daily sending batch
دفعة إرسال يومية مضبوطة
D+5 / D+10
Planned follow-up checkpoints
نقاط المتابعة المخطط لها
D+15
Auto-close checkpoint for unresolved outreach
نقطة الإغلاق التلقائي للحالات غير المحسومة
Multi-language
Content matched by country and language
مطابقة المحتوى حسب الدولة واللغة
02 — Use Case Card
02 — بطاقة حالة الاستخدام

Automate multilingual B2B outreach and follow-up tracking.

أتمتة التواصل B2B متعدد اللغات وتتبع المتابعات

Actors

الفاعلون

Campaign Operator · n8n · Google Sheets · Outlook / Microsoft Graph

Goal

الهدف

Send the correct localized campaign to each eligible company, record delivery state, and keep the next follow-up action visible without one-by-one manual handling.

إرسال المحتوى المحلي الصحيح لكل شركة مؤهلة، وتسجيل حالة الإرسال، وإبقاء الإجراء التالي واضحًا بدون تنفيذ يدوي شركة بشركة.

Preconditions

الشروط المسبقة

  • The company record contains a usable email plus country/language data.
  • احتواء سجل الشركة على بريد صالح وبيانات الدولة واللغة.
  • Campaign content and image mappings exist in the marketing content source.
  • توفر محتوى الحملة والصور وربطها بالدول واللغات في مصدر المحتوى التسويقي.
  • Outlook / Microsoft Graph credentials are available to the workflow.
  • توفر بيانات اعتماد Outlook / Microsoft Graph للمسار.
03 — Execution Scenario
03 — سيناريو التنفيذ

Happy path.

المسار الناجح

01

The workflow reads the company dataset and filters records eligible for the current campaign batch.

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

02

n8n processes one company at a time and resolves country, language, campaign state, and contact eligibility.

يعالج n8n شركة واحدة في كل مرة ويحدد الدولة واللغة وحالة الحملة وأهلية التواصل.

03

The workflow matches the company to the intended description, subject, template, and image using country/language rules.

يطابق المسار الشركة مع الوصف والعنوان والقالب والصورة المناسبة باستخدام قواعد الدولة واللغة.

04

A personalized HTML email payload is assembled from company data and localized campaign content.

يبني المسار رسالة HTML مخصصة من بيانات الشركة ومحتوى الحملة المحلي.

05

Outlook sends the message through Microsoft Graph using the business mailbox.

يرسل Outlook الرسالة عبر Microsoft Graph من البريد التجاري.

06

The shared record is updated with delivery status, campaign metadata, timestamp, and follow-up context.

يتم تحديث السجل المشترك بحالة الإرسال وبيانات الحملة والتوقيت وسياق المتابعة حتى تبدأ الجولات اللاحقة من حالة معروفة.

Exception & error handling.

معالجة الاستثناءات والأخطاء

Email is missing or invalid
البريد مفقود أو غير صالح
The record is excluded from sending and kept visible for correction instead of attempting a broken delivery.
يتم استبعاد السجل من الإرسال والإبقاء عليه ظاهرًا للتصحيح بدل محاولة إرسال غير صالح.
Exact country/language content is not found
لا يوجد تطابق مباشر للدولة واللغة
Matching falls back from country + requested language to country + English, then to default English content when required.
ينتقل منطق المطابقة من الدولة + اللغة المطلوبة إلى الدولة + الإنجليزية، ثم إلى المحتوى الإنجليزي الافتراضي عند الحاجة.
Microsoft Graph / Outlook send fails
فشل الإرسال عبر Microsoft Graph / Outlook
The workflow writes an error state and preserves the company record for review or retry instead of marking it as sent.
يسجل المسار حالة خطأ ويحافظ على سجل الشركة للمراجعة أو إعادة المحاولة بدل اعتباره إرسالًا ناجحًا.
Company already processed for the active campaign
تمت معالجة الشركة مسبقًا في الحملة الحالية
Eligibility and stored campaign state are checked before delivery to reduce duplicate outreach.
يتم فحص الأهلية وحالة الحملة المخزنة قبل الإرسال لتقليل التكرار.
A future follow-up becomes due
حان موعد متابعة لاحقة
Saved follow-up date and reply state allow later runs to detect D+5 / D+10 records and close unresolved outreach at D+15.
يسمح تاريخ المتابعة وحالة الرد المحفوظان باكتشاف السجل في D+5 وD+10 وإغلاق الحالات غير المحسومة عند D+15.
04 — Tools & Technologies
04 — الأدوات والتقنيات

A practical automation stack.

الأدوات والتقنيات

n8nGoogle SheetsOutlookMicrosoft GraphJavaScript LogicHTML EmailCampaign State TrackingScheduled Follow-Ups
Operational workflow
المسار التشغيلي
Company Data
→
Eligibility & Language Rules
→
Content Matching
→
Personalized Email
→
Outlook Delivery
→
Status & Follow-up Tracking
Workflow Evidence
أدلة المسار

Workflow evidence.

أدلة المسار

Implementation Logic
منطق التنفيذ
01Read & filter companiesقراءة وتصفية الشركات
02Resolve country and languageتحديد الدولة واللغة
03Match campaign contentمطابقة محتوى الحملة
04Build email payloadبناء رسالة الإيميل
05Send via Microsoft Graphالإرسال عبر Microsoft Graph
06Persist status and next actionحفظ الحالة والإجراء التالي
System Components
مكونات النظام
ComponentالمكوّنTechnologyBusiness purposeالهدف التشغيلي
Operational dataالبيانات التشغيليةGoogle SheetsShared company records, campaign state, and follow-up contextسجلات الشركات المشتركة وحالة الحملة وسياق المتابعة
Orchestrationالأتمتةn8nAutomate filtering, branching, looping, and write-back logicأتمتة التصفية والتفرعات والحلقات ومنطق إعادة الكتابة
Personalization rulesقواعد التخصيصn8nMatch each company to the correct country and language contentمطابقة كل شركة مع المحتوى الصحيح بحسب الدولة واللغة
DeliveryالإرسالOutlook · Microsoft GraphSend personalized HTML outreach from the business mailboxإرسال حملات HTML مخصصة من صندوق البريد التجاري
TrackingالتتبعGoogle SheetsMake success, errors, timestamps, and next actions visibleإظهار النجاح والأخطاء والطوابع الزمنية والإجراءات التالية
Engineering Decisions
قرارات هندسية

Keep one operational source of truth

إبقاء مصدر تشغيلي واحد للحقيقة

Contact data, campaign state, and follow-up context are written back to one shared record instead of being split across personal notes and sent-mail history.

تُعاد كتابة بيانات الاتصال وحالة الحملة وسياق المتابعة في سجل مشترك واحد بدل توزيعها بين ملاحظات شخصية وتاريخ البريد المرسل.

Make personalization rule-driven

جعل التخصيص قائمًا على القواعد

Country and language matching happens before delivery so each company receives the intended content rather than a generic message.

تحدث مطابقة الدولة واللغة قبل الإرسال حتى تتلقى كل شركة المحتوى المقصود بدل رسالة عامة.

Persist state after every attempt

حفظ الحالة بعد كل محاولة

The workflow records sent or error state and timing after each company, reducing duplicate outreach and giving the next operator clear context.

يسجل المسار حالة الإرسال أو الخطأ والتوقيت بعد كل شركة، ما يقلل التكرار ويمنح المشغل التالي سياقًا واضحًا.

Outcome

النتيجة

A reusable outreach automation pattern with visible delivery state and follow-up context, replacing manual one-by-one execution with an operational workflow that can be adapted for hotels or any company that needs structured multilingual outreach.

نمط أتمتة قابل لإعادة الاستخدام يوفّر وضوح حالة الإرسال وسياق المتابعة، ويستبدل التنفيذ اليدوي بمسار تشغيلي يمكن تكييفه للفنادق أو لأي شركة تحتاج تواصلًا منظمًا متعدد اللغات.

05 — Delivery Failure Monitoring & Contact Data Quality
05 — مراقبة فشل التسليم وجودة بيانات التواصل

Detect failed deliveries, clean invalid contacts, and prevent repeat sends.

اكتشاف فشل التسليم، تنظيف العناوين غير الصالحة، ومنع إعادة الإرسال.

A successful Microsoft Graph send only confirms that the message was accepted for sending; it does not guarantee final delivery. Delivery Status Notifications (NDRs) can arrive later, so without a second control loop, invalid addresses remain in the outreach dataset and may be retried in future campaigns.

نجاح طلب الإرسال عبر Microsoft Graph يؤكد قبول الرسالة للإرسال، لكنه لا يضمن وصولها فعليًا. قد تصل إشعارات فشل التسليم (NDR) لاحقًا، ومن دون مسار متابعة مستقل تبقى العناوين غير الصالحة داخل قاعدة التواصل وقد تدخل في حملات مستقبلية مرة أخرى.

The operational gap

الفجوة التشغيلية

The campaign workflow already records the send attempt, but permanent delivery failures happen asynchronously. That creates a data-quality problem: a contact can look processed while the mailbox or domain is actually invalid.

مسار الحملة يسجل محاولة الإرسال، لكن بعض حالات الفشل الدائم تظهر بعد ذلك بشكل غير متزامن. هذا يخلق مشكلة في جودة البيانات: قد يبدو السجل معالجًا بينما البريد أو النطاق غير صالح فعليًا.

The solution I added

الحل الذي تمت إضافته

I built a dedicated n8n Bounce Monitor that runs every 30 minutes, reads recent Outlook delivery failures, extracts the failed recipient and SMTP reason, classifies the bounce, matches the company record, and writes the result back to Google Sheets. Confirmed hard bounces become ContactStatus = Not Found, allowing future campaign filters to skip them automatically.

تم بناء مسار n8n مستقل باسم Bounce Monitor يعمل كل 30 دقيقة، يقرأ رسائل فشل التسليم الحديثة من Outlook، ويستخرج البريد الفاشل وسبب SMTP، ثم يصنف الـBounce ويطابق سجل الشركة ويعيد النتيجة إلى Google Sheets. عند تأكيد Hard Bounce يتم تحديث ContactStatus = Not Found حتى تستبعده قواعد أهلية الحملات المستقبلية تلقائيًا.

Closed-loop outreach lifecycle
دورة تواصل مغلقة الحلقة
Eligible Company
→
Campaign Send
→
Delivery Failure / NDR
→
Bounce Monitor
→
Hard Bounce?
→
Not Found
→
Future Campaign Skip
Sending path: eligibility → localization → HTML payload → Microsoft Graph → campaign state.
مسار الإرسال: الأهلية → التخصيص → HTML → Microsoft Graph → حالة الحملة.
Data-quality path: NDR detection → parsing → hard/soft classification → record match → write-back → future exclusion.
مسار جودة البيانات: اكتشاف NDR → التحليل → تصنيف Hard/Soft → مطابقة السجل → التحديث → الاستبعاد مستقبلًا.

Bounce Monitor execution logic.

منطق تنفيذ Bounce Monitor

01 / SCHEDULE

Run every 30 minutes

تشغيل كل 30 دقيقة

A scheduled n8n trigger starts the monitoring workflow independently from the campaign sender.

يبدأ Schedule Trigger في n8n مسار المراقبة بشكل مستقل عن مسار إرسال الحملة.

02 / FETCH

Read recent inbox messages

قراءة الرسائل الحديثة

Microsoft Graph is used to retrieve recent Outlook messages and identify Delivery Failed, Undeliverable, and NDR patterns.

يتم استخدام Microsoft Graph لقراءة رسائل Outlook الحديثة وتحديد أنماط Delivery Failed وUndeliverable وNDR.

03 / PARSE

Extract failure details

استخراج تفاصيل الفشل

The workflow extracts the failed recipient, SMTP code, reason, and a deduplication key so the same NDR is not processed twice.

يستخرج المسار البريد الفاشل وكود SMTP والسبب ومفتاحًا لمنع معالجة نفس رسالة NDR أكثر من مرة.

04 / CLASSIFY

Classify hard vs soft bounce

تصنيف Hard / Soft Bounce

Permanent evidence such as SMTP 550, address not found, or a non-existent domain is treated as a hard bounce; temporary conditions remain soft.

الأدلة الدائمة مثل SMTP 550 أو Address not found أو عدم وجود النطاق تُصنف Hard Bounce، بينما تبقى الحالات المؤقتة Soft Bounce.

05 / MATCH

Match the company record

مطابقة سجل الشركة

The failed email is normalized and matched against the shared company dataset before any status is changed.

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

06 / WRITE-BACK

Update status and mark processed

تحديث الحالة وتعليم الرسالة كمعالجة

Confirmed hard bounces update ContactStatus to Not Found, append the bounce reason to Notes, and mark the NDR processed.

عند تأكيد Hard Bounce يتم تحديث ContactStatus إلى Not Found، وإضافة سبب الفشل إلى Notes، ثم تعليم رسالة NDR كمعالجة.

Hard Bounce

Permanent failure

فشل دائم

A confirmed invalid recipient or domain is removed from future outreach eligibility by setting ContactStatus = Not Found. This prevents repeated sends to an address that cannot receive mail.

عند تأكيد أن البريد أو النطاق غير صالح، يتم إخراجه من أهلية التواصل المستقبلية عبر ContactStatus = Not Found، وبذلك لا تتكرر محاولات الإرسال إلى عنوان لا يمكنه استقبال البريد.

Soft Bounce

Temporary failure

فشل مؤقت

Temporary mailbox or infrastructure issues are recorded and marked processed without permanently changing the company contact to Not Found.

المشكلات المؤقتة في صندوق البريد أو البنية التحتية يتم تسجيلها وتعليمها كمعالجة دون تحويل جهة الاتصال بشكل دائم إلى Not Found.

Operational Evidence — Bounce Handling
أدلة التشغيل — معالجة Bounce

Evidence from the delivery-failure path.

أدلة فعلية من مسار فشل التسليم.

Engineering Decisions — Bounce Handling
قرارات هندسية — معالجة Bounce

Protect campaign state without over-classifying temporary failures.

حماية حالة الحملة دون تصنيف المشكلات المؤقتة كفشل دائم.

Separate send from delivery monitoring

فصل الإرسال عن مراقبة التسليم

The sender completes the campaign batch without waiting for NDRs. A scheduled monitor handles delayed delivery outcomes independently.

ينهي مسار الإرسال دفعة الحملة دون انتظار NDR، بينما يعالج المراقب المجدول نتائج التسليم المتأخرة بشكل مستقل.

Prioritize permanent evidence

إعطاء الأولوية للأدلة الدائمة

Hard-bounce evidence is evaluated before temporary failure signals so a short-lived mailbox issue does not permanently invalidate a usable contact.

يتم تقييم أدلة Hard Bounce الدائمة قبل إشارات الفشل المؤقت حتى لا تؤدي مشكلة مؤقتة إلى استبعاد بريد صالح بشكل دائم.

Keep one source of truth

الحفاظ على مصدر واحد للحقيقة

Bounce results are written back to the same company record used by the campaign workflow, keeping sending, follow-up, and contact quality in one operational dataset.

تُكتب نتائج Bounce في نفس سجل الشركة المستخدم في مسار الحملة، بحيث تبقى حالة الإرسال والمتابعة وجودة بيانات التواصل في مصدر تشغيلي واحد.

Result

النتيجة

The outreach system now covers the full operational lifecycle: select the correct localized campaign, send and track it, detect delayed delivery failures, clean confirmed invalid contacts, and prevent those contacts from being selected again. The result is a more reliable campaign dataset and less repeated manual cleanup.

أصبح نظام التواصل يغطي الدورة التشغيلية كاملة: اختيار الحملة المحلية الصحيحة، الإرسال والتتبع، اكتشاف فشل التسليم المتأخر، تنظيف العناوين غير الصالحة المؤكدة، ومنع اختيارها مرة أخرى. النتيجة هي قاعدة حملات أكثر موثوقية وتقليل الحاجة إلى التنظيف اليدوي المتكرر.