التطبيقات والتكاملات
بواسطة Sojan
بواسطة Sojan
اربط Chatwoot بالأدوات والخدمات الخارجية لتوسيع إمكانات سير عمل الدعم.
كيفية تتبع المشاكل والميزات باستخدام تكامل Linear؟
إذا كانت شركتك أو حسابك أو مشروعك يستخدم Linear كأداة لإدارة المشاريع، يمكنك دمجها مع Chatwoot لإدارة جميع المحادثات في مساحة عمل Linear الخاصة بك. يمكنك إنشاء قضايا جديدة في Linear مباشرة من نافذة المحادثة الخاصة بك أو ربطها بقضايا موجودة لتتبع أكثر سلاسة. لبدء الإعداد، اتبع الخطوات أدناه. إذا كنت تستخدم إصدار Chatwoot المستضاف ذاتيًا، يرجى اتباع هذا الدليل. كيف تربط دمج Linear؟ الخطوة 1. انتقل إلى الإعدادات → التكاملات → Linear. انقر على زر "تكوين" الخطوة 2. اضغط على زر الاتصال. عندما تظهر نافذة الإذن، اضغط على تفويض للموافقة على الصلاحيات. بمجرد الانتهاء، سيتم إعادة توجيهك إلى تطبيق Chatwoot. مبروك! يمكنك الآن استخدام Linear في حسابك على Chatwoot. الميزات المدعومة إنشاء قضايا من المحادثة لإنشاء قضية جديدة، افتح أي محادثة واضغط على زر Linear في رأس المحادثة. ثم املأ تفاصيل القضية، بما في ذلك العنوان والوصف والفريق. بعد إدخال التفاصيل، اضغط على زر إنشاء لإضافة القضية إلى مساحة عمل Linear الخاصة بك مع ربط المحادثة. ستتم إضافة القضية إلى مساحة عمل Linear الخاصة بك مع ربط المحادثة. ربط القضايا الموجودة. لربط محادثة بتذكرة موجودة سلفاً، اضغط على علامة تبويب ربط القضية، وابحث عن التذكرة، ثم اضغط على "ربط" لربطها بتذكرة Linear.
كيف تترجم الرسائل باستخدام ترجمة جوجل؟
إذا كنت تتلقى استفسارات بلغات لا تفهمها أنت أو أعضاء فريقك بشكل متكرر، يمكنك الاستفادة من دمج Google Translate في Chatwoot. عند تفعيلها، يمكنك الترجمة الفورية للرسائل الواردة باستخدام قائمة النقر بزر الفأرة الأيمن. بهذه الطريقة، يمكنك التواصل بسهولة مع العملاء بلغتهم الأم، حتى وإن لم تكن تتحدثها بنفسك. كيفية تفعيل Google Translate في Chatwoot؟ الخطوة 1. انتقل إلى الإعدادات -> التطبيقات -> Google Translate. انقر على زر "تهيئة". الخطوة 2. ستظهر لك صفحة تطبيق Google Translate. انقر على زر "اتصال". الخطوة 3. أدخل مُعرِّف مشروع Google Cloud وملف مفتاح المشروع. إذا احتجت إلى مساعدة للحصول على هذه القيم، ارجع إلى هذه الوثيقة من Google. بعد إدخال القيم، انقر على زر "إنشاء". الآن، اكتمل دمج Google Translate. كيفية تغيير لغة الترجمة؟ يتم ترجمة رسائلك إلى لغة الموقع الخاصة بك. لاختيار لغة الموقع، انتقل إلى صفحة "إعدادات الحساب". الخطوة 1. انتقل إلى الإعدادات -> إعدادات الحساب -> لغة الموقع. افتح القائمة المنسدلة واختر اللغة المفضلة لديك. الخطوة 2. انقر على زر "تحديث الإعدادات" في الزاوية العلوية اليمنى من الصفحة. سيؤدي هذا إلى ترجمة لوحة التحكم بالكامل إلى اللغة التي اخترتها. ملاحظة: يمكن للوكلاء أيضاً اختيار لغاتهم المفضلة بشكل فردي. كيفية ترجمة الرسائل الواردة؟ عندما تتلقى رسالة بلغة تحتاج للمساعدة في فهمها، انقر على النقاط الثلاث بجانب الرسالة لفتح القائمة واختر "ترجمة". ستجد المحتوى المترجم مباشرةً. كيفية إنشاء حساب خدمة في Google Cloud Console؟ لإنشاء حساب خدمة لواجهة Google Translate API، ابدأ بتسجيل الدخول إلى Google Cloud Console واختيار أو إنشاء مشروع جديد. بعد تجهيز المشروع، قم بتفعيل Cloud Translation API من خلال الانتقال إلى “APIs & Services” > “Library” والبحث عن “Cloud Translation API”. انقر على “تفعيل” ليعمل مع مشروعك. كما أنه من الضروري تفعيل الفوترة إذا لم تقم بذلك مسبقاً. بعد ذلك، انتقل إلى “IAM & Admin” > “Service Accounts” وانقر على “Create Service Account.” أدخل اسمًا (مثل translate-api-user) ثم تابع لإسناد دور “Cloud Translation API User”. بعد إنشاء حساب الخدمة، انتقل إلى قسم “المفاتيح”، انقر على “إضافة مفتاح”، ثم اختر “إنشاء مفتاح جديد” بصيغة JSON. قم بتنزيل هذا الملف واحتفظ به بأمان. استخدم محتويات الملف الذي حصلت عليه أعلاه في حقل ملف مفتاح مشروع Google Cloud في Chatwoot.
كيف يمكن تفعيل مكالمات الفيديو باستخدام تكامل Dyte؟
***تكامل Dyte لم يعد مدعومًا للإعدادات الجديدة. انتقلت Dyte إلى Cloudflare RealtimeKit، ويستخدم Chatwoot الآن Cloudflare RealtimeKit لإجراء مكالمات الفيديو. يرجى استخدام ***دليل إعداد Cloudflare RealtimeKit لتكوين مكالمات الفيديو. إجراء مكالمات فيديو مع عملائك هو وسيلة رائعة للتواصل معهم بسرعة، وفهم مشاكلهم بشكل فعّال، وتقديم حلول أسرع، والحصول على رؤى أعمال قيّمة. يمكنك إجراء مكالمات فيديو مع عملائك من خلال دردشة الموقع المباشر في Chatwoot. لاستخدام هذه الميزة، ستحتاج إلى تفعيل تكامل Dyte. يشرح هذا الدليل كيفية ذلك. ملاحظة: إذا لم يكن لديك حساب Dyte، ستحتاج إلى إنشاء حساب أولاً. كيف تُعد تكامل Dyte في Chatwoot؟ الخطوة 1. انتقل إلى الإعدادات -> التطبيقات -> Dyte. اضغط على زر "تكوين" المقابل. الخطوة 2. ستشاهد صفحة تطبيق Dyte. اضغط على زر "اتصال". الخطوة 3. أدخل رقم تعريف المؤسسة (Organization ID) ومفتاح واجهة برمجة التطبيقات (API Key) من Dyte. كيف تجد قيم إعدادات Dyte الخاصة بك؟ للعثور على هذه القيم، قم بزيارة قسم "مفاتيح API" في بوابة مطوّري Dyte. في Chatwoot، بعد إدخال القيم، اضغط على زر "إنشاء". الآن، تم إكمال تكامل Dyte الخاص بك. كيف تجري مكالمة فيديو مع عملائك في Chatwoot؟ بعد تفعيل تكامل Dyte، ستتمكن من رؤية خيار مكالمات الفيديو في نافذة الدردشة الخاصة بصندوق بريد الموقع. لدعوة عميلك لمكالمة فيديو، اتبع الخطوات الموضحة أدناه. الخطوة 1. اضغط على أيقونة الكاميرا أسفل محرر النصوص. الخطوة 2. سيقوم Chatwoot بإرسال رسالة تحتوي على دعوة للعميل للانضمام إلى مكالمة الفيديو. اضغط على زر "اضغط هنا للانضمام" للدخول إلى الغرفة. الخطوة 3. ستكون الآن متصلاً مع عميلك. توفر واجهة مكالمات الفيديو العديد من الخيارات لجعل تجربتك وتجربة العميل أكثر إثراءً. بعض هذه الخيارات تظهر في لقطة الشاشة أدناه:
كيف تستخدم تطبيقات لوحة التحكم؟
مع تطبيقات لوحة التحكم، يمكنك دمج تطبيق ضمن لوحة تحكم Chatwoot لاستخدام الوكلاء. تتيح لك هذه الميزة إنشاء تطبيق بشكل مستقل، يمكن تضمينه بعد ذلك لتوفير معلومات العملاء، الطلبات، سجل الدفعات السابق، وغيرها. عند تضمين تطبيقك في لوحة تحكم Chatwoot، سيحصل تطبيقك على سياق المحادثة وجهة الاتصال كحدث نافذة. قم بتنفيذ مستمع لحدث الرسالة في صفحتك لاستلام السياق. ملاحظة: اطلع على البث المباشر على YouTube حول بناء تطبيق لوحة تحكم. كيف تنشئ تطبيق لوحة تحكم؟ الخطوة 1. انتقل إلى الإعدادات → التكاملات → تطبيقات لوحة التحكم. اضغط على زر "تكوين" المقابل لتطبيقات لوحة التحكم. الخطوة 2. أضف اسم تطبيقك والرابط الذي يستضيف عليه تطبيقك. عند الانتهاء، سيظهر تبويب جديد بالاسم الذي منحته للتطبيق في نافذة المحادثة. في هذا المثال، هو "طلبات العملاء". عند النقر على التبويب الجديد، ستتمكن من رؤية تطبيقك يجلب البيانات في لوحة تحكم Chatwoot. استقبال البيانات من Chatwoot إلى تطبيقك سيقوم Chatwoot بإرسال سياق المحادثة وجهة الاتصال كحدث نافذة. يمكن الوصول إليه داخل تطبيقك عبر تنفيذ مستمع للحدث كما يلي: window.addEventListener("message", function (event) { if (!isJSONValid(event.data)) { return; } const eventData = JSON.parse(event.data); }); طلب البيانات من Chatwoot عند الطلب إذا كنت بحاجة إلى طلب بيانات المحادثة عند الطلب من Chatwoot، يمكنك إرسال رسالة إلى نافذة الأب باستخدام واجهة Javascript postMessage API. سيقوم Chatwoot بالاستماع إلى هذا المفتاح: chatwoot-dashboard-app:fetch-info. مثال يمكن استخدام الكود التالي لاستعلام تطبيق لوحة التحكم. سيستجيب Chatwoot مباشرة لهذا الطلب ويوفر بيانات المحادثة المحدثة. window.parent.postMessage('chatwoot-dashboard-app:fetch-info', '*') // ستتلقى رسالة في مستمع الرسائل مع حمولة appContext. حمولة الحدث كائن المحادثة { "meta": { "sender": { "additional_attributes": { "description": "string", "company_name": "string", "social_profiles": { "github": "string", "twitter": "string", "facebook": "string", "linkedin": "string" } }, "availability_status": "string", "email": "string", "id": "integer", "name": "string", "phone_number": "string", "identifier": "string", "thumbnail": "string", "custom_attributes": "object", "last_activity_at": "integer" }, "channel": "string", "assignee": { "id": "integer", "account_id": "integer", "availability_status": "string", "auto_offline": "boolean", "confirmed": "boolean", "email": "string", "available_name": "string", "name": "string", "role": "string", "thumbnail": "string" }, "hmac_verified": "boolean" }, "id": "integer", "messages": [ { "id": "integer", "content": "Hello", "inbox_id": "integer", "conversation_id": "integer", "message_type": "integer", "content_type": "string", "content_attributes": {}, "created_at": "integer", "private": "boolean", "source_id": "string", "sender": { "additional_attributes": { "description": "string", "company_name": "string", "social_profiles": { "github": "string", "twitter": "string", "facebook": "string", "linkedin": "string" } }, "custom_attributes": "object", "email": "string", "id": "integer", "identifier": "string", "name": "string", "phone_number": "string", "thumbnail": "string", "type": "string" } } ], "account_id": "integer", "additional_attributes": { "browser": { "device_name": "string", "browser_name": "string", "platform_name": "string", "browser_version": "string", "platform_version": "string" }, "referer": "string", "initiated_at": { "timestamp": "string" } }, "agent_last_seen_at": "integer", "assignee_last_seen_at": "integer", "can_reply": "boolean", "contact_last_seen_at": "integer", "custom_attributes": "object", "inbox_id": "integer", "labels": "array", "muted": "boolean", "snoozed_until": null, "status": "string", "timestamp": "integer", "unread_count": "integer", "allMessagesLoaded": "boolean", "dataFetched": "boolean" } كائن جهة الاتصال { "additional_attributes": { "description": "string", "company_name": "string", "social_profiles": { "github": "string", "twitter": "string", "facebook": "string", "linkedin": "string" } }, "availability_status": "string", "email": "string", "id": "integer", "name": "string", "phone_number": "+91 9000000001", "identifier": "string || null", "thumbnail": "+91 9000000001", "custom_attributes": {}, "last_activity_at": "integer" } كائن الوكيل الحالي { "email": "string", "id": "integer", "name": "string" } الحمولة النهائية { "event": "appContext", "data": { "conversation": { // <...خصائص المحادثة> }, "contact": { // <...خصائص جهة الاتصال> }, "currentAgent": { // <...خصائص الوكيل الحالي> } } }
كيفية تفعيل مكالمات الفيديو باستخدام Cloudflare RealtimeKit؟
تساعد مكالمات الفيديو فريقك على التواصل بسرعة مع العملاء، وفهم المشكلات بوضوح، وتقديم دعم أسرع. يدعم Chatwoot مكالمات الفيديو لمحادثات الدردشة الحية على الموقع من خلال دمج Cloudflare RealtimeKit. يشرح هذا الدليل كيفية إنشاء بيانات الاعتماد المطلوبة لـ Cloudflare RealtimeKit، وربطها بـ Chatwoot، وبدء مكالمة فيديو من محادثة. ملاحظة: إذا كنت قد استخدمت مسبقًا دمج Dyte، فاستخدم Cloudflare RealtimeKit للإعدادات الجديدة. سيتم إيقاف بنية Dyte القديمة بعد استحواذ Cloudflare عليها. المتطلبات الأساسية قبل أن تبدأ، تأكد من أن لديك: - الوصول إلى حساب Cloudflare الخاص بك. - إذنًا لإنشاء تطبيق RealtimeKit في Cloudflare. - إذنًا لإنشاء رموز Cloudflare API. - وصول المدير إلى حسابك في Chatwoot. كيف تنشئ تطبيق RealtimeKit في Cloudflare؟ الخطوة 1. افتح لوحة تحكم Cloudflare واذهب إلى Realtime -> RealtimeKit. الخطوة 2. انقر على زر "إنشاء تطبيق". الخطوة 3. أدخل اسمًا للتطبيق. على سبيل المثال، يمكنك استخدام "video-support". ثم انقر على "إنشاء". الخطوة 4. بعد إنشاء التطبيق، انسخ معرف تطبيق RealtimeKit. ستحتاج إلى هذه القيمة عند ربط التكامل بـ Chatwoot. كيف تجد معرف حساب Cloudflare الخاص بك؟ الخطوة 1. انتقل إلى الصفحة الرئيسية لحساب Cloudflare الخاص بك. الخطوة 2. انقر على قائمة النقاط الثلاث في الزاوية اليمنى العليا. الخطوة 3. انقر على "نسخ معرف الحساب". كيف تنشئ رمز Cloudflare API؟ الخطوة 1. في Cloudflare، انتقل إلى "ملفي الشخصي" -> "رموز API". الخطوة 2. انقر على "إنشاء رمز". الخطوة 3. ضمن "رمز مخصص"، انقر على "البدء". الخطوة 4. أعط الرمز اسمًا وصفيًا. على سبيل المثال يمكنك استخدام "video-support". الخطوة 5. ضمن الأذونات، اختر: - النطاق: الحساب - الإذن: Realtime - الوصول: مدير الخطوة 6. ضمن موارد الحساب، حدد حساب Cloudflare الذي تريد استخدامه مع Chatwoot. يمكنك اختيار "كل الحسابات" إذا كنت ترغب في أن يعمل الرمز عبر جميع حساباتك. الخطوة 7. راجع ملخص الرمز ثم انقر على "إنشاء رمز". الخطوة 8. انسخ رمز الـ API. تعرض Cloudflare هذا الرمز لمرة واحدة فقط، لذا احتفظ به في مكان آمن إلى أن تضيفه في Chatwoot. كيف تقوم بإعداد دمج RealtimeKit في Chatwoot؟ الخطوة 1. في Chatwoot، اذهب إلى الإعدادات -> التطبيقات -> Cloudflare RealtimeKit. الخطوة 2. انقر على "تهيئة". الخطوة 3. انقر على "اتصال". الخطوة 4. أدخل القيم التالية: - معرف حساب Cloudflare - معرف تطبيق RealtimeKit - رمز Cloudflare API الخطوة 5. انقر على "إنشاء". يتحقق Chatwoot من صحة بيانات الاعتماد قبل حفظ التكامل. إذا كانت هناك أي قيمة غير صحيحة، ستظهر لك رسالة خطأ محددة حول رمز الـ API أو معرف الحساب أو الأذونات أو معرف تطبيق RealtimeKit. بمجرد حفظ البيانات بنجاح، يصبح دمج RealtimeKit جاهزًا للاستخدام. كيف تجري مكالمة فيديو مع عملائك في Chatwoot؟ بعد تمكين دمج RealtimeKit، ستظهر لك خيار مكالمات الفيديو في محادثات صندوق الموقع. الخطوة 1. افتح إحدى محادثات صندوق الموقع. الخطوة 2. انقر على أيقونة الكاميرا أسفل محرر الرد. الخطوة 3. يرسل Chatwoot رسالة دعوة للاجتماع إلى العميل. انقر على "انقر هنا للانضمام" للدخول إلى المكالمة. الخطوة 4. يمكن للعميل الانضمام إلى نفس المكالمة من خلال نافذة الدردشة الحية على الموقع. الخطوة 5. بمجرد انضمام الطرفين، يمكن للوكيل والعميل متابعة المحادثة عبر الفيديو أو الصوت.
كيف ترد على المحادثات في Slack؟
إذا كانت شركتك/حسابك/مشروعك يستخدم Slack كوسيلة تواصل، يمكنك دمج Slack مع Chatwoot لإدارة جميع محادثات الصندوق الوارد في مساحة عمل Slack الخاصة بك. لبدء الإعداد السريع، اتبع الخطوات الموضحة أدناه. إذا كنت تستخدم نسخة Chatwoot ذات استضافة ذاتية، يرجى اتباع هذا الدليل. كيف تدمج Slack مع Chatwoot؟ الخطوة 1. اذهب إلى الإعدادات -> التكاملات -> Slack -> الاتصال. الخطوة 2. أدخل رابط مساحة عمل Slack الخاصة بك كما هو مطلوب. الخطوة 3. راجع الأذونات واسمح لتطبيق Chatwoot بالوصول إلى مساحة عمل Slack الخاصة بك. الخطوة 4. سيتم تحويلك إلى شاشة الإعداد، حيث ستتمكن من رؤية قائمة بقنوات Slack الخاصة بك (العامة والخاصة). (بالنسبة للقنوات الخاصة، راجع القسم أدناه) يجب عليك اختيار قناة من اختيارك من القائمة المنسدلة حيث ترغب في تلقي محادثات Chatwoot الخاصة بك. انقر على زر تحديث. الآن، تم اكتمال التكامل. ملاحظة هامة إذا كنت قد قمت بربط Slack قبل سبتمبر 2023، فلن تكن لديك خيار اختيار قناة Slack محددة لإدارة محادثاتك من خلالها. إذا كنت ترغب في تغيير ذلك واختيار قناة معينة من اختيارك، فيجب عليك حذف تكامل Slack الحالي من تطبيق Chatwoot وربطه مرة أخرى. الأسئلة الشائعة س: أنا أرد على رسالة، لكن الرد لا يظهر في صندوق وارد Chatwoot. ج: عندما ترد على الرسالة، يجب الرد ضمن نفس السلسلة (thread). كل سلسلة تمثل محادثة منفصلة، لذلك لعرض ردك على نفس الرسالة يجب أن ترد داخل السلسلة. نستخدم معرف السلسلة للتحقق من المحادثة المنفصلة. الميزات المدعومة الرد من ملف تعريف وكيلك عند ردك على محادثة من Slack، يتلقى العميل الرد من ملف التعريف الخاص بوكيلك في Chatwoot. إنشاء ملاحظات خاصة من Slack يمكنك إنشاء ملاحظة خاصة في Chatwoot من خلال Slack. إذا بدأت الرسالة بـ "note:" فستتحول إلى ملاحظة خاصة ويُخطر بها أي عميل تم الإشارة إليه. إليك مثال: كيف تضيف Chatwoot إلى القنوات الخاصة؟ لن تتم إضافة Chatwoot إلى قنواتك الخاصة في Slack بشكل افتراضي، يجب عليك إضافتها يدوياً. إليك الطريقة: الخطوة 1: بعد المصادقة مع Slack، سيتم تحويلك إلى صفحة في Chatwoot حيث يمكنك اختيار القناة المطلوبة. الخطوة 2: اذهب إلى Slack وافتح القناة الخاصة التي ترغب في ربطها. انقر على أيقونات المستخدمين في أعلى القناة. اذهب إلى التكاملات → إضافة تطبيقات. الخطوة 3: ابحث عن Chatwoot. سترى تطبيق Chatwoot في القائمة. الخطوة 4: انقر على Chatwoot لإضافته إلى القناة الخاصة. سترى رسالة تأكيد بأن Chatwoot تمت إضافته. الخطوة 5: عُد إلى تطبيق Chatwoot وحدّث الصفحة. ينبغي أن تظهر القناة الآن في القائمة. اختر القناة وأكمل التكامل. ملاحظة: إذا لم يعمل الأمر بعد، قم بربط تكامل Slack مع قناة عامة، ثم أزل التكامل من جانب Chatwoot وأعد ربطه مرة أخرى.
كيفية تحسين المحادثات من خلال دمج OpenAI؟
التفاعل مع العملاء يتطلب احترافية دؤوبة. مدى جودة تواصلك مع عملائك غالبًا ما يكون عاملاً كبيرًا في زيادة المبيعات بالإضافة إلى الحفاظ على العملاء. ناهيك عن التأثيرات على هوية العلامة التجارية. ولكن، لكي تبدو دائمًا مثاليًا––عليك أن تكون روبوتًا. لذا جلبنا الذكاء الاصطناعي إلى لوحتك بدلاً من ذلك. مع تكامل OpenAI، يمكنك تحسين محادثاتك مع العملاء أثناء حدوثها. من خلال دمج الذكاء الاصطناعي في لوحة تحكم Chatwoot، يمكنك تحسين محادثاتك مع العملاء في الوقت الفعلي دون التضحية بصوتك الفريد أو هوية علامتك التجارية. ستحصل على اقتراحات مدعومة بالذكاء الاصطناعي تساعدك على تنقيح رسائلك والتواصل بشكل أكثر فاعلية مع عملائك. إعداد التكامل لا يستغرق أكثر من دقيقة، والفوائد فورية. للبدء، اتبع الخطوات أدناه. كيف تدمج OpenAI مع Chatwoot؟ الخطوة 1. اذهب إلى الإعدادات → التطبيقات → OpenAI. اضغط على زر "إعداد" المقابل. الخطوة 2. اضغط على زر "اتصال". ستظهر نافذة منبثقة تطلب منك مفتاح OpenAI API الخاص بك. للحصول على مفتاح OpenAI API الخاص بك، سجل دخولك إلى حسابك في OpenAI وقم بزيارة هذا الرابط. بمجرد إدخال مفتاح API السري الخاص بك، سترى رسالة نجاح على الشاشة. كيف تستخدم ميزات الذكاء الاصطناعي في Chatwoot؟ هناك ثلاث ميزات مدعومة بالذكاء الاصطناعي في Chatwoot. تشرح الأقسام أدناه كيفية استخدامها. اقتراح الرد مع الذكاء الاصطناعي ميزة "اقتراح الرد مع الذكاء الاصطناعي" تقترح ردًا ممكنًا على رسالة من عميل، مما يساعد في الردود السريعة. اتبع الخطوات أدناه لاستخدام هذه الميزة. الخطوة 1. انتقل إلى علامة تبويب المحادثات من الشريط الجانبي وافتح محادثة تحتاج إلى رد. يجب أن ترى خيارًا جديدًا يسمى "اقتراح الرد مع الذكاء الاصطناعي". إليك مثالًا: الخطوة 2. انقر على الزر لرؤية الاقتراح. سيتم ملء مربع الرد بالاستجابة المقترحة. الخطوة 3. عدل رسالتك كما ترغب، ثم اضغط زر الإرسال! تحسين بالذكاء الاصطناعي ميزة "تحسين بالذكاء الاصطناعي" تقترح تحسينات على مسودات رسائلك أثناء كتابتها. اتبع الخطوات أدناه لاستخدام هذه الميزة. الخطوة 1. انتقل إلى علامة تبويب المحادثات من الشريط الجانبي وافتح محادثة. ابدأ بكتابة رسالة في مربع النص. أثناء الكتابة، يجب أن ترى خيارًا جديدًا يظهر يسمى "تحسين بالذكاء الاصطناعي". إليك مثالًا: الخطوة 2. اضغط على زر "تحسين بالذكاء الاصطناعي" لترى خياراتك. اختر نبرة رسالتك – رسمية أو ودية. اضغط على زر "إنشاء". استنادًا إلى اختيارك للنبرة، سيعيد الذكاء الاصطناعي كتابة رسالتك ويملى مربع النص بالرسالة الجديدة على الفور. تابع المثال، وسيبدو الأمر كما يلي: الخطوة 3. عدل رسالتك كما ترغب، ثم اضغط زر الإرسال! ملخص بالذكاء الاصطناعي ميزة "ملخص بالذكاء الاصطناعي" تلخص المحادثات في ملاحظات خاصة خلال ثوانٍ. اتبع الخطوات أدناه لاستخدام هذه الميزة. الخطوة 1. انتقل إلى علامة تبويب المحادثات من الشريط الجانبي وافتح محادثة. انتقل إلى علامة تبويب "ملاحظة خاصة". يجب أن ترى خيارًا جديدًا يسمى "ملخص بالذكاء الاصطناعي". إليك مثالًا: الخطوة 2. اضغط على الزر. سيتم ملء محرر النص بملخص المحادثة. الخطوة 3. عدل ملاحظتك كما ترغب، ثم اضغط على زر "إضافة ملاحظة"! كيف تستخدم المساعد الذكي بالذكاء الاصطناعي؟ يمكنك تفعيل المساعد الذكي بالذكاء الاصطناعي إما باختياره من شريط الأوامر أو بالضغط على زر مساعد الذكاء الاصطناعي داخل المحرر. لاختيار الميزة المرغوبة، ما عليك سوى النقر عليها. بمجرد النقر على خيار، ستفتح نافذة "اقتراح الرد مع الذكاء الاصطناعي"، وتظهر محتوى مُولد بواسطة الذكاء الاصطناعي. لإدراج المحتوى في المحرر، اضغط على زر استخدم هذا الاقتراح. الأسئلة الشائعة هل نتائج مساعد الذكاء الاصطناعي دائمًا دقيقة؟ قد لا تكون النتائج دائمًا دقيقة. بالرغم من أن مساعد الذكاء الاصطناعي مصمم لتقديم اقتراحات دقيقة، من المهم أن يقوم الوكلاء بمراجعة الاقتراحات والتحقق منها قبل إرسالها إلى العملاء. بالإضافة إلى ذلك، نحن نعمل باستمرار على تحسين مساعد الذكاء الاصطناعي الخاص بنا. هل تدعمون مزودي ذكاء اصطناعي آخرين غير OpenAI في الوقت الحالي، ندعم فقط OpenAI. لكن نخطط لإضافة المزيد من المزودين قريبًا.
كيف تنقل روبوت المحادثة الخاص بك في Dialogflow إلى Chatwoot؟
تعد روبوتات الدردشة ذات قيمة للعديد من فرق تفاعل العملاء. فهي تتعامل بكفاءة مع الأسئلة البسيطة وتتيح للوكلاء البشريين التركيز على قضايا أكثر إلحاحًا. تُعتبر Dialogflow وRasa.ai من أبرز منصات معالجة اللغة الطبيعية (NLP) لبناء روبوتات دردشة مخصصة. في هذا الدليل، نشرح كيفية إنشاء روبوت في Dialogflow ودمجه بسهولة مع Chatwoot خلال ثوانٍ قليلة. كيف تنشئ روبوت Dialogflow؟ الخطوة 1. انتقل إلى وحدة تحكم Dialogflow. سنستخدم Dialogflow Essentials في هذا المقال. انقر على "Create Agent". ستظهر لك خيارات مثل هذه: الخطوة 2. ستحتاج إلى إنشاء "نوايا" (intents) حسب كيفية استجابة روبوتك. سيكون هناك نيتان افتراضيتان في المشروع باسم "Default Fallback Intent" و"Default Welcome Intent" كما هو موضح أدناه. هذا يُكمل إعداد الروبوت الأساسي. لنقم بإنشاء حساب خدمة وربطه مع Chatwoot. يمكنك أيضًا إنشاء نوايا إضافية لحالات الاستخدام الخاصة بك. يدعم Chatwoot أيضًا نوايا متقدمة تتيح تحويل المحادثة إلى وكيل والرسائل التفاعلية وما إلى ذلك. المرجع: مرر إلى أسفل إلى "النوايا المتقدمة". الخطوة 3. إنشاء حساب خدمة. لربط هذا الروبوت مع Chatwoot يجب إنشاء حساب خدمة في وحدة تحكم Google Cloud. انتقل إلى وحدة تحكم المشروع في Google Cloud بالنقر على Project ID في إعدادات المشروع. انتقل إلى IAM & Admin -> Service Accounts. سترى عرضاً مماثلاً للذي في الأسفل. انقر على "Create Service Account". أدخل اسم حساب الخدمة والوصف كما هو موضح أدناه. لتوفير الوصول، اختر Dialogflow API Client من القائمة المنسدلة. تابع وانقر على "Done". الآن، سيكون بإمكانك رؤية الخدمة مدرجة في لوحة المعلومات. الخطوة التالية هي إنشاء مفتاح ليتم مشاركته مع Chatwoot. انقر على حساب الخدمة ثم على تبويب "Keys". بعد ذلك، انقر على "Add Key". ستظهر لك شاشة مماثلة لما يلي. انقر على "JSON" ثم على "Create". سيقوم بإنشاء مفتاح لحساب الخدمة الخاص بك. قم بتنزيل المفتاح واحتفظ به للاستخدام لاحقًا. إعداد تكامل Dialogflow في Chatwoot يحتوي Chatwoot على تكامل تلقائي مع Dialogflow. يمكنك ربط روبوتك مع Chatwoot في خطوتين سريعتين. الخطوة 1. اذهب إلى "Settings -> Applications -> Dialogflow". انقر على "Configure". الخطوة 2. انقر على زر "Add a new hook". سيظهر لك نموذج إعداد. يلزمك إضافة "Project ID" و"Project Key file" وصندوق بريد لإنشاء hook. انسخ محتويات ملف المفتاح الذي تم تنزيله مسبقاً والصقه في منطقة النص. هذا كل شيء! تم اكتمال التكامل. اختبر صندوق البريد على موقع الويب لتتحقق من معالجة الروبوت للاستفسار الأولي. النوايا المتقدمة إنشاء نية تحويل للمحادثة إلى وكيل بمجرد أن يطلب المستخدم التحدث مع وكيل، يجب على Dialogflow إبلاغ Chatwoot أن الوكيل يمكنه تولي المحادثة. أنشئ نية باسم "Handoff Intent" مع عبارات تدريبية مثل "تحدث مع وكيل" أو "كلمني مع وكيل"، وما إلى ذلك. للتعامل مع نية التحويل سنقوم بإنشاء استجابة "Custom Payload" كما يلي. { "action": "handoff" } عند تفعيل نية تحوي الحمولة أعلاه، سيبدل Chatwoot حالة المحادثة إلى open ويسلمها إلى وكيل. الرسائل التفاعلية ملاحظة: الرسائل التفاعلية مدعومة حالياً فقط في صندوق البريد على موقع الويب. يدعم تكامل Chatwoot-Dialogflow أيضًا الرسائل التفاعلية. الأنواع التالية من الرسائل التفاعلية مدعومة. 1. خيارات (تدعم المتابعة) 2. بطاقات 3. مقالات إنشاء نية رسالة تفاعلية يمكنك إنشاء رسائل تفاعلية أخرى بتغيير الحمولة كما هو مذكور في دليل الرسائل التفاعلية. أنشئ نية بعبارات تدريبية مطلوبة واستجابة "Custom Payload" كما هو موضح أدناه لرسالة خيارات. ## مثال لرسالة خيارات تفاعلية { "content_type": "input_select", "content": "اختر طعامك المفضل من الأسفل", "content_attributes": { "items": [ { "value": "I like sushi", "title": "Sushi" }, { "title": "Biryani", "value": "I like biryani" }, { "title": "Pizza", "value": "I like pizza" } ] }, "private": false } عندما يتفاعل المستخدم مع الرسائل المدخلة ويختار قيمة، يتم إرجاعها إلى Dialogflow. يتيح ذلك تكوين نوايا متابعة، مثل إنشاء نية بعبارة تدريبية "I like biryani" للحالات التي يختار فيها المتصل خيار "biryani". كيف يمكن للوكيل إعادة المحادثة إلى روبوت Dialogflow؟ عندما يكون روبوت Dialogflow متصلًا بصندوق بريد، يتم إنشاء المحادثات بحالة pending بدلاً من open. يسمح ذلك بإجراء الفحص الأولي عبر الروبوت قبل نقل المحادثة إلى وكيل. عند حدوث handoff، تتغير حالة المحادثة إلى open ويتوقف الروبوت عن الرد عليها. في بعض الأحيان قد يرغب الوكلاء في إرجاع المحادثة التي تم تحويلها إلى طابور الروبوت من جديد. يمكنهم ذلك بتغيير حالة المحادثة إلى pending مرة أخرى. سيجعل هذا الروبوت يبدأ في الرد على تلك المحادثة مرة أخرى.
كيفية استخدام نقاط الويب (Webhooks)؟
الويبهوكس هي استدعاءات HTTP يتم إعدادها لكل حساب. يتم تفعيلها عند حدوث إجراءات مثل إنشاء رسالة في Chatwoot. يمكن إنشاء عدة ويبهوكس لحساب واحد. كيف يمكن إضافة ويبهوك؟ الخطوة 1. انتقل إلى الإعدادات → التكاملات → الويبهوكس. اضغط على زر "تهيئة". الخطوة 2. اضغط على زر "إضافة ويبهوك جديد". ستظهر نافذة منبثقة. هنا، أدخل عنوان URL الذي يجب إرسال طلب POST إليه. بعد ذلك، تحتاج إلى اختيار الأحداث التي ترغب في الاشتراك بها. هذا الخيار يسمح لك بالاستماع فقط للأحداث ذات الصلة في Chatwoot. سيرسل Chatwoot طلب POST بالحمولة التالية إلى عناوين URL التي تم إعدادها لمختلف التحديثات في حسابك. مثال على حمولة ويبهوك { "event": "message_created", // اسم الحدث "id": "1", // معرف الرسالة "content": "Hi", // محتوى الرسالة "created_at": "2020-03-03 13:05:57 UTC", // وقت إرسال الرسالة "message_type": "incoming", // هذا سيكون نوع داخلي، خارجي أو قالب. المستخدم من الويدجت يرسل رسائل داخلية، والوكيل يرسل رسائل خارجية للمستخدم. "content_type": "enum", // هذا نوع تعداد، يمكن أن يكون input_select أو cards أو form أو نص. سيكون نوع الرسالة "template" إذا كان content_type هو أحد هذه القيم. القيمة الافتراضية هي نص "content_attributes": {} // سيكون كائنًا، القيم المختلفة معرفة أدناه "source_id": "", // سيكون المعرف الخارجي إذا كان البريد الوارد تكامل مع تويتر أو فيسبوك. "sender": { // تفاصيل الوكيل الذي أرسل الرسالة "id": "1", "name": "Agent", "email": "agent@example.com" }, "contact": { // تفاصيل المستخدم الذي أرسل الرسالة "id": "1", "name": "contact-name" }, "conversation": { // تفاصيل المحادثة "display_id": "1", // معرف المحادثة الذي يمكنك رؤيته في لوحة التحكم. "additional_attributes": { "browser": { "device_name": "Macbook", "browser_name": "Chrome", "platform_name": "Macintosh", "browser_version": "80.0.3987.122", "platform_version": "10.15.2" }, "referer": "<http://www.chatwoot.com>", "initiated_at": "Tue Mar 03 2020 18:37:38 GMT-0700 (Mountain Standard Time)" } }, "account": { // تفاصيل الحساب "id": "1", "name": "Chatwoot", } } الأحداث المدعومة في Chatwoot للويبهوك ينشر Chatwoot أحداثًا مختلفة إلى نقاط نهاية الويبهوك المحددة. إذا كنت تريد إعداد ويبهوك، يمكنك الرجوع إلى الدليل هنا. كل حدث له بنية حمولة خاصة به بناءً على نوع النموذج الذي يعمل عليه. يصف القسم التالي الكائنات الرئيسية التي نستخدمها في Chatwoot وخصائصها. الكائنات قد تتضمن حمولة الحدث أيًا من الكائنات التالية. أنواع الكائنات المختلفة التي يدعمها Chatwoot مبينة أدناه. الحساب { "id": "integer", "name": "string" } البريد الوارد { "id": "integer", "name": "string" } جهة الاتصال { "id": "integer", "name": "string", "avatar": "string", "type": "contact", "account": { // <...Account Object> } } المستخدم { "id": "integer", "name": "string", "email": "string", "type": "user" } المحادثة { "additional_attributes": { "browser": { "device_name": "string", "browser_name": "string", "platform_name": "string", "browser_version": "string", "platform_version": "string" }, "referer": "string", "initiated_at": { "timestamp": "iso-datetime" } }, "can_reply": "boolean", "channel": "string", "id": "integer", "inbox_id": "integer", "contact_inbox": { "id": "integer", "contact_id": "integer", "inbox_id": "integer", "source_id": "string", "created_at": "datetime", "updated_at": "datetime", "hmac_verified": "boolean" }, "messages": ["Array of message objects"], "meta": { "sender": { // Contact Object }, "assignee": { // User Object } }, "status": "string", "unread_count": "integer", "agent_last_seen_at": "unix-timestamp", "contact_last_seen_at": "unix-timestamp", "timestamp": "unix-timestamp", "account_id": "integer" } الرسالة { "id": "integer", "content": "string", "message_type": "integer", "created_at": "unix-timestamp", "private": "boolean", "source_id": "string / null", "content_type": "string", "content_attributes": "object", "sender": { "type": "string - contact/user" // User or Contact Object }, "account": { // Account Object }, "conversation": { // Conversation Object }, "inbox": { // Inbox Object } } مثال على حمولة ويبهوك { "event": "event_name" // خصائص تتعلق بالحدث } أحداث الويبهوك يدعم Chatwoot أحداث الويبهوك التالية. يمكنك الاشتراك فيها أثناء إعداد الويبهوك في لوحة التحكم أو باستخدام واجهة البرمجة (API). conversation_created سيتم تفعيل هذا الحدث عند إنشاء محادثة جديدة في الحساب. حمولة الحدث كالتالي. { "event": "conversation_created" // <...Conversation Attributes> } conversation_updated سيتم تفعيل هذا الحدث عند حدوث تغيير في أي من خصائص المحادثة. { "event": "conversation_updated", "changed_attributes": [ { "<attribute_name>": { "current_value": "", "previous_value": "" } } ] // <...Conversation Attributes> } conversation_status_changed سيتم تفعيل هذا الحدث عند تغيير حالة المحادثة. ملاحظة: إذا كنت تستخدم واجهات البرمجة الخاصة بروبوت الوكلاء بدلاً من الويبهوكس، هذا الحدث غير مدعوم حالياً. { "event": "conversation_status_changed" // <...Conversation Attributes> } message_created سيتم تفعيل هذا الحدث عند إنشاء رسالة في محادثة. حمولة الحدث كالتالي. { "event": "message_created" // <...Message Attributes> } message_updated سيتم تفعيل هذا الحدث عند تحديث رسالة في محادثة. حمولة الحدث كالتالي. { "event": "message_updated" // <...Message Attributes> } webwidget_triggered سيتم تفعيل هذا الحدث عند فتح المستخدم النهائي لويدجت الدردشة المباشرة. { "event": "webwidget_triggered", "id": "", "contact": { // <...Contact Object> }, "inbox": { // <...Inbox Object> }, "account": { // <...Account Object> }, "current_conversation": { // <...Conversation Object> }, "source_id": "string", "event_info": { "initiated_at": { "timestamp": "date-string" }, "referer": "string", "widget_language": "string", "browser_language": "string", "browser": { "browser_name": "string", "browser_version": "string", "device_name": "string", "platform_name": "string", "platform_version": "string" } } } conversation_typing_on يتم تفعيل هذا الحدث عندما يبدأ الوكيل بالكتابة في محادثة. يمكن أن تكون ملاحظة خاصة أو رسالة للعميل. يمكنك استخدام علم is_private للتمييز بينهما. { "event": "conversation_typing_on", "conversation": { ...<Conversation Object> }, "user": { ... <User / AgentBot / Captain Object> }, "is_private": true } conversation_typing_off يتم تفعيل هذا الحدث عندما يتوقف الوكيل عن الكتابة أو عند مغادرة نافذة المحادثة. { "event": "conversation_typing_off", "conversation": { ...<Conversation Object> }, "user": { ... <User / AgentBot / Captain Object> }, "is_private": true } التحقق من الويبهوكس يقوم Chatwoot بتوقيع كل طلب ويبهوك صادر حتى يتمكن الخادم لديك من التحقق من أن الحمولة تم إرسالها من قبل Chatwoot وأنها لم يتم العبث بها. يظهر السر لك عند إنشاء الويبهوك، ويمكنك مشاهدته مرة أخرى في نموذج تحرير الويبهوك. يرسل كل طلب ويبهوك الرؤوس التالية، والتي يمكن استخدامها لحساب توقيع HMAC الخاص بالحمولة - X-Chatwoot-Signature: توقيع HMAC-SHA256 مسبوق بـ sha256= - X-Chatwoot-Timestamp: الطابع الزمني (ثواني) عند توقيع الطلب - X-Chatwoot-Delivery: معرف تسليم فريد لحدث الويبهوك (عند توفره) يتم احتساب التوقيع كما يلي: sha256=HMAC-SHA256(webhook_secret, "{timestamp}.{raw_body}") حيث: - webhook_secret هو السر المرتبط بالويبهوك - timestamp هو قيمة رأس X-Chatwoot-Timestamp - raw_body هو نص الطلب JSON الخام (غير محلل/غير مُعاد تسلسله) خطوات التحقق 1. استخرج X-Chatwoot-Signature و X-Chatwoot-Timestamp من رؤوس الطلب 2. اقرأ نص الطلب الخام كبايتات (لا تقم بتحليل وإعادة تسلسلها) 3. احسب التوقيع المتوقع: sha256=HMAC-SHA256(secret, "{timestamp}.{raw_body}") 4. قارن التوقيع المحسوب مع التوقيع المستلم باستخدام مقارنة وقت ثابت 5. اختياريًا، ارفض الطلبات التي يكون طابعها الزمني قديمًا جدًا لمنع هجمات إعادة الطلب أمثلة روبي def verify_signature(raw_body, timestamp, received_signature, secret) expected = "sha256=#{OpenSSL::HMAC.hexdigest('SHA256', secret, "#{timestamp}.#{raw_body}")}" ActiveSupport::SecurityUtils.secure_compare(expected, received_signature) end بايثون import hmac import hashlib def verify_signature(raw_body: bytes, timestamp: str, received_signature: str, secret: str) -> bool: message = f"{timestamp}.".encode() + raw_body expected = "sha256=" + hmac.new(secret.encode(), message, hashlib.sha256).hexdigest() return hmac.compare_digest(expected, received_signature) Node.js const crypto = require("crypto"); function verifySignature(rawBody, timestamp, receivedSignature, secret) { const message = `${timestamp}.${rawBody}`; const expected = "sha256=" + crypto.createHmac("sha256", secret).update(message).digest("hex"); return crypto.timingSafeEqual( Buffer.from(expected), Buffer.from(receivedSignature) ); } Go import ( "crypto/hmac" "crypto/sha256" "encoding/hex" "fmt" ) func verifySignature(rawBody []byte, timestamp, receivedSignature, secret string) bool { mac := hmac.New(sha256.New, []byte(secret)) mac.Write([]byte(fmt.Sprintf("%s.%s", timestamp, rawBody))) expected := "sha256=" + hex.EncodeToString(mac.Sum(nil)) return hmac.Equal([]byte(expected), []byte(receivedSignature)) } ملاحظات هامة - استخدم دائمًا نص الطلب الخام للتحقق. تحليل JSON وإعادة تسلسله قد يغير ترتيب المفاتيح أو الفراغات أو ترميز يونيكود، مما سيؤدي إلى توقيع مختلف. - استخدم دائمًا مقارنة وقت ثابت (مثل hmac.compare_digest، crypto.timingSafeEqual، ActiveSupport::SecurityUtils.secure_compare) لمنع هجمات التوقيت. - فكر في رفض الطلبات التي تحمل طوابع زمنية أقدم من 5 دقائق لتقليل مخاطر هجمات إعادة الإرسال.