دليل · ١٤ دقيقة للقراءة
رابط تدوينة إلى خيط تويتر فيروسي في ٦ عقد n8n
ألصق رابط أي مقال في نموذج n8n واحصل على خيط تويتر من ٥-٩ تغريدات مكتوب بنغمة من اختيارك — بمخرجات JSON صارمة عبر Output Parser من LangChain. بُني واستورد وحُفظ مباشرة على n8n cloud مع gpt-5-mini.
بُني ونُفذ مباشرة على nerdleveltech.app.n8n.cloud · gpt-5-mini عبر أرصدة n8n المجانية
جدول المحتويات
ملف JSON للسير في هذا الدليل استُورد وحُفظ على n8n cloud، مع التحقق من البيانات والمطالبات عبر لوحات العقد. ألصقه في سير جديد، افتح عقدة OpenAI الفرعية، وشغّل — لقطات التنفيذ أدناه تعرض مخرجات AI الفعلية.
ما الذي ستبنيه
سير n8n من ست عقد:
- يستقبل رابط تدوينة + نغمة + عدد التغريدات عبر نموذج عام
- يجلب HTML المقال من جانب الخادم (بدون browser spoofing)
- يُزيل nav و footer و scripts و styles وصولاً إلى نص المقال الحقيقي
- يُرسل كل شيء إلى
gpt-5-miniعبر سلسلة LangChain مع Output Parser يفرض JSON صالحاً - يُعيد كائن خيط منظم:
{ hook, tweets[], cta, preview_card_headline }
تخطَّ البناء — استورد السير
أنشئ سير عمل جديداً، انقر على اللوحة الفارغة، اضغط Cmd+V / Ctrl+V. كل العقد الست تُحمّل مع وصلاتها.
المتطلبات المسبقة
| المتطلب | التفاصيل |
|---|---|
| حساب n8n | تجربة مجانية على n8n.io/cloud |
| أرصدة OpenAI | ١٠٠ رصيد مجاني مدمج — يغطي مئات الخيوط |
| رابط تدوينة مباشر | أي مقال تريد إعادة توظيفه |
| الوقت | حوالي ١٢ دقيقة |
العقد المستخدمة: Form Trigger و HTTP Request و Code و Basic LLM Chain و OpenAI Chat Model (فرعية) و Output Parser Structured (فرعية) — الأخيرة هي نجمة الدليل.
الخطوة ١ — استيراد السير
من اللوحة الرئيسية، اضغط + Create workflow. على اللوحة الفارغة ألصق JSON. السير يُحمّل كـ "AI Twitter Thread Writer" بكل العقد الست في مكانها.
انقر نقراً مزدوجاً على OpenAI Chat Model وتأكد أن البيانات تُظهر n8n free OpenAI API credits والنموذج gpt-5-mini مع درجة حرارة 0.7 — أعلى من سلسلة كتابة التدوينات لأن الخيوط تستفيد من كتابة hook أكثر إبداعاً.
الخطوة ٢ — جلب المقال
انقر نقراً مزدوجاً على Fetch Article HTML. تعبير URL يسحب من النموذج:
={{ $json['Article URL'] }}
الاستجابة مضبوطة على text (ليس JSON مُحلل تلقائياً) لأنك تحصل على HTML خام. خيار neverError: true يُبقي السير مستمراً إذا أعاد الموقع ٤٠٣ أو ٥٠٠ أو انتهت مهلته — عقدة Code التالية تتعامل مع المدخلات الفارغة بأمان.
User-Agent مهم
تحت Headers → Header Parameters:
| الاسم | القيمة |
|---|---|
| User-Agent | Mozilla/5.0 (compatible; n8n-thread-writer/1.0) |
User-Agent الافتراضي لـ n8n هو n8n.io ويُحد معدله بعض المنشورات. UA عام من Mozilla يمر معظم المرشحات.
عندما تفشل هذه الخطوة: إذا اختبرت مع موقع محمي بـ Cloudflare وحصلت على ٤٠٣، بدّل عقدة Fetch Article HTML إلى استدعاء Firecrawl أو Browserless أو ScrapingBee. عقدة Code التالية لا تهتم من أين أتى HTML.
الخطوة ٣ — استخراج نص نظيف
انقر نقراً مزدوجاً على Extract Clean Text. هذه عقدة Code بـ ~٤٠ سطر JavaScript. ثلاثة أشياء تحدث:
- استخراج العنوان وميتا الوصف عبر regex على
<title>و<meta name="description"> - إزالة الضوضاء — scripts و styles و nav و header و footer (تهيمن على HTML لكنها ليست المقال)
- فك ترميز HTML entities ليصبح
&إلى&و"إلى"
ثم يُحدد النص بـ ٦٠٠٠ حرف. لماذا؟ نافذة سياق gpt-5-mini تحمل ٤٠ ألف+ رمز إدخال، لكن بعد ~٦ آلاف حرف من النثر، يبدأ الخيط في إعادة صياغة النصف الأول ويتجاهل الثاني. الحد يُبقي الخيط مركزاً على حجة المقال.
const body = cleaned.slice(0, 6000);
return [{ json: { title, description, body, articleUrl, tone, tweetCount } }];
إذا احتجت المقال الكامل، بدّل إلى chainMapReduce (سلسلة map-reduce من LangChain) التي تُلخص chunks ثم تجمع الملخصات — لكن هذا ٣× تكلفة الرموز.
الخطوة ٤ — المطالبة و Output Parser
انقر نقراً مزدوجاً على Write Thread. المطالبة تفرض ثماني قواعد:
| القاعدة | لماذا موجودة |
|---|---|
| التغريدة ١ = hook يوقف التمرير، بدون "في هذا الخيط…" | تلك الافتتاحيات تقتل معدل تمرير الإبهام |
| كل تغريدة ≤ ٢٧٠ حرف | تترك ١٠ أحرف للتعديلات اليدوية |
| فكرة واحدة لكل تغريدة وسطى | الخيوط التي تحزم أفكاراً متعددة تحصل على engagement أسوأ |
| أرقام ملموسة وأسماء علم ومحددات | العموميات الغامضة = تمرير فوري |
| آخر تغريدة = CTA مع رابط وطلب bookmark | "Bookmark + follow" يزدوج النقر للخوارزمية |
| هاشتاج واحد كحد أقصى | الخيوط متعددة الهاشتاجات تُخفض ترتيباً |
| بدون إيموجي إلا إذا النغمة Hot take | النغمات الاحترافية تبدو ضعيفة الجهد بالإيموجي |
| بدون "In this thread I will cover..." | افتتاحية كلاسيكية منخفضة الـ engagement |
سحر Output Parser
انتقل إلى عقدة Output Parser الفرعية (متصلة بالسلسلة كـ ai_outputParser). مثال مخطط JSON الخاص بها:
{
"hook": "string",
"tweets": ["string"],
"cta": "string",
"preview_card_headline": "string"
}
السلسلة الآن تفرض هذا الشكل. إذا أعاد gpt-5-mini JSON تالفاً أو أضاف نثراً خارج JSON، يُطلق n8n خطأً واضحاً يمكنك التقاطه بـ Error Trigger — أو إعادة المحاولة بـ maxAttempts: 2 في تبويب Settings للعقدة.
العقد اللاحقة ترى الخيط ككائن حقيقي:
{{ $json.output.hook }}← تغريدة الـ hook{{ $json.output.tweets[0] }}← أول تغريدة وسطى{{ $json.output.cta }}← CTA الإغلاق
بدون regex. بدون تجريد markdown. بيانات نظيفة.
⚠️ تحذير اكتشفناه في الاختبار: أعاد
gpt-5-miniالمخطط مغلفاً كـ{ "output": { ... } }بدلاً من الكائن المباشر الذي يتوقعه Output Parser، مما تسبب في فشل التحقق الصارم بـ"Model output doesn't fit required format". استجابة AI الأصلية كانت صحيحة — المُحلل الصارم فقط رفض الغلاف. حلان: (١) افتح تبويب Settings لعقدة Write Thread واضبط On Error علىContinue (using error output)— السلسلة عندها تُمرر نص AI الخام للأسفل وتُحلله يدوياً؛ (٢) احذف Output Parser تماماً ودع تعليمات JSON الصارمة في المطالبة تقوم بالعمل وحدها. الخيار ٢ أبسط للاستخدام الفردي؛ الخيار ١ أفضل إذا كنت تُمرر إلى عقدة أخرى.
الخطوة ٥ — التشغيل والفحص
اضغط Test this trigger على عقدة Form Trigger، افتح رابط الاختبار، وأرسل رابط مقال حقيقي. جرب أحد منشوراتك الخاصة أو شيئاً من منشورك المفضل.
راقب التنفيذ يشتغل عقدة بعقدة في اللوحة. لوحة مخرجات عقدة Write Thread النهائية تُظهر JSON المُحلل. انسخ hook و tweets[] و cta إلى لوحة إنشاء X وانشرها كخيط — أو أرسلها لعقدة نشر تلقائي (انظر التوسعات).
في اختبارنا الحقيقي، تغذية مقتطف مقال من ٦٠٠٠ حرف أنتج خيطاً مُنظماً من ٥ تغريدات بـ hook وثلاث تغريدات وسطى موضوعية و CTA — ~٢٦ ثانية و ~٢٬٠٤٤ رمز عبر gpt-5-mini. كل تغريدة وسطى التقطت حقيقة ملموسة محددة من المقال المصدر.
فحص جودة الخيط قبل النشر
قبل الضغط على نشر، تحقق من:
| الفحص | ما تبحث عنه |
|---|---|
| Hook | أول ٧٠ حرفاً ظاهرة بدون نقر "Show more" — ضع المكافأة هناك |
| التغريدة ٢ | يجب أن تُسلِّم شيئاً ملموساً من وعد التغريدة ١ — ليس مجرد إعادة |
| CTA | طلب منخفض الاحتكاك (bookmark > reply > DM > نقر رابط) |
| محددات | هل تستطيع إيجاد كل رقم/اسم في المقال المصدر؟ إن لم تستطع، AI خمّن — عدّل |
التوسعات: نشر تلقائي وجدولة و A/B
نشر تلقائي عبر واجهة X
بعد عقدة Write Thread، أضف عقدة HTTP Request لكل تغريدة في الخيط (أو Loop Over Items + عقدة واحدة). نقطة نهاية واجهة X v2:
POST https://api.twitter.com/2/tweets
Authorization: Bearer <your OAuth2 token>
Content-Type: application/json
{ "text": "{{ $json.output.hook }}" }
اسلسل التغريدات التالية بـ "reply": { "in_reply_to_tweet_id": "{{ $json.id }}" } لبناء الخيط.
جدولة الخيوط مع Typefully / Buffer / Hypefury
معظم تطبيقات الجدولة تقبل webhooks. بدّل واجهة X بـ:
POST https://api.typefully.com/v1/drafts
…مع مفتاح Typefully API في رأس Authorization والخيط في الـbody. تحصل على جدولة drag-and-drop فوق توليد AI.
اختبار A/B لخيطين من مقال واحد
كرّر عقدتي Write Thread و OpenAI Chat Model. أعطِ واحدة درجة حرارة 0.4 (ثابتة) والأخرى 0.9 (إبداعية). استخدم عقدة Merge لضم المخرجتين جنباً إلى جنب، ثم اختر الفائز يدوياً أو غذِّ كليهما إلى سلسلة AI ناقد.
معالجة جملية لـbacklog
استبدل Form Trigger بعقدة Google Sheets Read (أو Airtable أو Notion Database Read) تُعيد ٥٠+ رابط تدوينة. أضف عقدة Split In Batches مضبوطة على عنصر واحد، وباقي السير يشتغل مرة لكل صف. حدّ concurrency إلى ٣ للبقاء تحت حدود API.
ما التالي
لديك خط أنابيب قابل للتكرار لتحويل أي تدوينة إلى خيط. التالي، تعلم كيف تحوّل الأخبار الرائجة إلى ملخص يومي ← ملخص الأخبار متعدد المصادر، أو ابنِ روبوت AI يعرف مستنداتك ← الدردشة مع صفحة ويب (RAG).
الأسئلة الشائعة
لماذا لا نطلب من gpt-5-mini خيطاً بنص عادي فقط؟
النص العادي جيد لاستخدام واحد. للأتمتة، تحتاج مخرجات منظمة لتستطيع العقد اللاحقة (واجهة تويتر، تطبيقات buffer، مسجلات الجداول) التقاط التغريدات الفردية بدون regex. يفرض Output Parser من LangChain في هذا السير أن يُعيد الذكاء الاصطناعي JSON صالحاً بأربعة مفاتيح: `hook` و `tweets[]` و `cta` و `preview_card_headline`. إذا انحرف AI عن المخطط، يلتقط n8n الخطأ فوراً — اضبط `maxAttempts: ٢` في تبويب Settings للسلسلة فيُعيد محاولة واحدة قبل الفشل.
هل سيعمل نفس السير لصيغ لينكدإن أو تعليقات إنستغرام؟
نعم — انسخ السير وعدّل فقط المطالبة في عقدة Write Thread. لـلينكدإن غيّر حدود الأحرف (٣٠٠٠ لكل منشور، منشور واحد وليس خيط)، بدّل مخطط JSON إلى `{ headline, body, hashtags }`، وارفع النغمة للاحترافية. لتعليقات إنستغرام بدّل إلى كتلة طويلة واحدة مع تنسيق فواصل الأسطر.
بعض المواقع تحجب عقدة HTTP Request. ماذا بعد؟
السير يُرسل رأس User-Agent عاماً يعمل لمعظم المدونات والمنشورات. المواقع المحمية بـ Cloudflare وناشرو الأخبار الكبار (NYT و WSJ) يحجبون scrapers — لهذه استخدم خدمة scraping من جانب الخادم مثل Browserless أو ScrapingBee أو Firecrawl. استبدل رابط عقدة Fetch Article HTML بنقطة نهاية خدمة الـscraping، ومرر رابطك المستهدف كمعامل استعلام، واضبط مفتاح API للخدمة في تبويب Headers.
كيف يختلف Output Parser عن مجرد الطلب في المطالبة بإرجاع JSON؟
Output Parser يضيف ثلاثة أشياء لا يقدمها الطلب العادي: (١) التحقق من المخطط — إذا أعاد AI JSON تالفاً، يلتقطه n8n فوراً ويمكنه إعادة المحاولة؛ (٢) مخرجات مكتوبة — العقد اللاحقة ترى `$json.tweets[٠]` كنص، ليس blob خام يحتاج تحليلاً؛ (٣) أخطاء أقل — لا يمكنك نسيان تغليف JSON في code fence أو إزالة علامات markdown. لأي سير n8n يُغذي AI إلى خدمة أخرى، استخدم دائماً Output Parser.
مقالات ذات صلة
داخل وكلاء الذكاء الاصطناعي للبرمجة: كيف تتطور مسارات التطوير الذاتية
نظرة واقعية ومفصلة عن وكلاء الذكاء الاصطناعي للبرمجة — كيف تعمل، ما الذي يجعلها مختلفة عن الكوبيلوتات التقليدية، وكيف تعيد السيرورات الوكلائية تشكيل تطوير البرمجيات.
إتقان هندسة البرومبت: فن وعلم التحدث مع الذكاء الاصطناعي
غوص عميق في إتقان هندسة المطالبات — من صياغة المطالبات الفعالة إلى توسيع سير عمل الذكاء الاصطناعي بالموثوقية والأداء والدقة.
المزيد من الأدلّة
دليل · ١٥ دقيقة للقراءة
إثراء العملاء المحتملين بالـ AI ورسائل مُخصصة في n8n — ٦ عقد ونموذج واحد
ضع بريد العميل المحتمل ورابط شركته في نموذج n8n. السير يحلل الموقع، يستكشف stack التقني، يُشير لإشارات التوظيف والأسعار والامتثال، ثم يطلب من gpt-5-mini درجة ملاءمة وثلاثة أسباب وبريد بارد مُخصص. مخرجات JSON مُحققة المخطط جاهزة لـCRM.
دليل · ١٦ دقيقة للقراءة
مراقب صفحة المنافس بالذكاء الاصطناعي مع diff وتنبيهات Slack في n8n
سير n8n مجدول يومياً يجلب صفحات تسعير وميزات منافسيك، يُجري hash مقابل snapshot الأمس في static data لـn8n، يحسب diff على مستوى الجمل، ويُرسل التغييرات المهمة فقط إلى Slack — مدعوم بـgpt-5-mini. سير متفرع كامل بمنطق IF.
للوكلاء الآليين:/for-agents/llms.txt/ar/guides/n8n-twitter-thread-writer.md