التوثيق
كيف يمكنني تفعيل البرنامج المساعد؟
بعد الشراء، ستحتاج إلى تثبيت الإضافة على موقعك الإلكتروني على ووردبريس. إليك الطريقة.
الخطوة 1: التثبيت
قم بتسجيل الدخول إلى موقع ووردبريس الخاص بك وانتقل إلى الإضافات ← إضافة إضافة ← رفع إضافة. قم بتحميل ملف zip وقم بتفعيله.
الخطوة الثانية: تسجيل الإضافة
في قائمة التنقل على اليسار، انتقل إلى النماذج ← الإعدادات ← سيلزفورس. في رخصة انقر على القسم إدارة الترخيص, أدخل مفتاح الترخيص الخاص بك وانقر تفعيل الترخيص.
الخطوة 3: ربط Salesforce
بعد الحصول على الترخيص، انتقل إلى اتصال Salesforce القسم الموجود في صفحة الإعدادات نفسها (عنوانه) إضافة حساب Salesforce بمجرد إنشاء حساب) وربط حساب Salesforce الأول الخاص بك (التعليمات الكاملة أدناه)
هذا كل شيء! أنت الآن جاهز لبدء ربط النماذج بـ Salesforce.
كيف يمكنني ربط حساب Salesforce بـ OAuth؟
الخطوة الأولى: فهم أنواع التطبيقات
في Salesforce، يمكنك إنشاء إما تطبيق عميل خارجي (الخيار الحديث، والوحيد المتاح للمؤسسات الجديدة التي تم إنشاؤها منذ إصدار ربيع 2026 من Salesforce) أو تطبيق متصل (الخيار القديم، الذي لا يزال مدعومًا في المؤسسات الحالية التي تسمح به). يعمل الملحق بنفس الطريقة مع كلا الخيارين.
انتقل إلى أحد الخيارات التالية في إعدادات Salesforce:
- الإعداد → مدير تطبيقات العميل الخارجي → تطبيق جديد للعملاء الخارجيين (مُستَحسَن)
أو تطبيق متصل قديم (معطل افتراضيًا في المؤسسات الأحدث)
- الإعداد → مدير التطبيقات → تطبيق متصل جديد
قبل الاتصال: يجب أن يمتلك مستخدم Salesforce الذي يُصرّح بالاتصال صلاحية الإنشاء (والتعديل، بالنسبة للموجزات التي يتم تحديثها) لكل عنصر ستتم مزامنته. لا تعرض الإضافة إلا العناصر التي يمكن للمستخدم إنشاؤها فعليًا.
الخطوة الثانية: إنشاء تطبيق عميل خارجي جديد
ملاحظة: في لقطات الشاشة أدناه، يُفترض ترك الإعدادات غير المحددة أو الفارغة كما هي، لذا اتركها على حالها.
بعد تسجيل الدخول إلى Salesforce، انقر على رمز الترس في أعلى يمين الشاشة:

على الجانب الأيسر من شاشتك، في مربع البحث الذي يحمل عبارة "بحث سريع"، ابحث عن "تطبيق عميل خارجي" ثم حدد "مدير تطبيق العميل الخارجي":

على الجانب الأيمن من شاشتك، انقر فوق الزر الذي يقول "تطبيق عميل خارجي جديد":

أدخل ما يلي ضمن قسم "المعلومات الأساسية":
- اسم تطبيق العميل الخارجي (سيتم إنشاء اسم واجهة برمجة التطبيقات تلقائيًا، اتركه كما هو)
- البريد الإلكتروني للتواصل
- اترك حالة التوزيع على "محلي".“

ضمن قسم "API (تمكين إعدادات OAuth)"، قم بما يلي:
- تفعيل OAuth
- أدخل عنوان URL الخاص بالاستدعاء (يوجد هذا في إعدادات المكون الإضافي ضمن النماذج > الإعدادات > Salesforce > عنوان URL للاستدعاء OAuth)
- ضمن نطاقات OAuth، حدد ما يلي:
- “"إدارة بيانات المستخدم عبر واجهات برمجة التطبيقات (API)"”
- “"تنفيذ الطلبات في أي وقت (refresh_token، offline_access)"”

اترك هذه الإعدادات أدناه كما هي:

اترك جميع الإعدادات المتبقية أدناه كما هي أيضاً:

انقر على "إنشاء تطبيق" وستكون جاهزًا للانتقال إلى الخطوة 3:

الخطوة 3: تعديل سياسات تفويض التطبيق
بعد إنشاء التطبيق، نحتاج إلى تعديل سياسات التطبيق. انقر مرة أخرى على "مدير تطبيقات العميل الخارجي".“

ثم حدد التطبيق الذي أنشأته حديثًا وانقر على زر "تحرير" كما هو موضح أدناه:

ثم افتح قائمة "سياسات OAuth" المنسدلة، واضبط سياسة رمز التحديث على "بعد وقت محدد"، ثم حددها بـ 365 يومًا أو أكثر. يقوم الملحق بتحديث رمز الوصول قصير الأجل تلقائيًا، ولكن بمجرد انتهاء صلاحية رمز التحديث، يرفض Salesforce الاتصال، ويتعين عليك إعادة ربط الحساب من خلال النماذج ← الإعدادات ← Salesforce. تعني السياسة الأطول أنك ستفعل ذلك مرة واحدة في السنة على الأكثر بدلًا من كل 30 يومًا.
نوصي بضبط تذكير للتحقق من الاتصال تحسباً لأي طارئ.

الخطوة الرابعة: ربط تطبيق العميل الخارجي الجديد بـ Gravity Forms
اكتمل إعداد Salesforce، والآن نحتاج إلى ربط Gravity Forms بالتطبيق. في Salesforce، ارجع إلى "إدارة تطبيقات العميل الخارجي" وحدد تطبيقك.

انقر على "الإعدادات" ثم مرر لأسفل إلى "إعدادات OAuth" وافتحها. ستجد زرًا مكتوبًا عليه "مفتاح المستهلك والسر"، انقر على هذا الزر.

ستظهر لك على الأرجح شاشة للتحقق من الهوية، وسيتم إرسال رمز إليك. أدخل الرمز وانقر على "تحقق".“

بعد التحقق، ستظهر لك مفاتيح المستهلك وأسرار المستهلك. أبقِ هذه الصفحة مفتوحة، وفي صفحة جديدة، انتقل إلى إعدادات الإضافة ضمن النماذج > الإعدادات > Salesforce، وأضف هذه المفاتيح كما هو موضح في لقطة الشاشة أدناه. سيظهر الزر بمجرد ملء كلا الحقلين: انقر على "ربط الحساب" (سيظهر "إضافة حساب" إذا كان لديك حساب مرتبط بالفعل).

سترى أن Gravity Forms متصل الآن بـ Salesforce ويمكننا الانتقال إلى الخطوة 5 (الخطوة الأخيرة):

الخطوة 5: أضف موجز Salesforce إلى نموذجك
انتقل إلى إعدادات نموذج Gravity Form الذي ترغب في ربطه بـ Salesforce وأضف موجزًا جديدًا:

وأخيرًا، اضبط إعدادات التغذية بالطريقة التي ترغب بها:

أنت الآن جاهز تمامًا! إذا كنت ترغب في ربط حسابات Salesforce إضافية وإنشاء خلاصات لنماذج أخرى، فكرر الخطوات الخمس المذكورة أعلاه.
كيف يمكنني الاتصال بمعرف المؤسسة؟ (من الويب إلى العميل المحتمل / من الويب إلى الحالة)
إذا لم يكن لدى مؤسسة Salesforce الخاصة بك إمكانية الوصول إلى واجهة برمجة التطبيقات (بعض إصدارات Essentials/Professional)، فيمكنك الرجوع إلى نقطة النهاية القديمة Web-to-Lead / Web-to-Case.
الخطوة 1: في Salesforce، ابحث عن معرف المؤسسة تحت الإعداد ← معلومات الشركة.
الخطوة 2: في ووردبريس، في صفحة إعدادات Salesforce، قم بتبديل طريقة الاتصال القائمة المنسدلة إلى "معرف المؤسسة (من الويب إلى العميل المحتمل / الحالة)".
الخطوة 3: ألصق معرّف مؤسستك وانقر حفظ حساب معرف المؤسسة. اعتبارًا من الإصدار 1.5.0، يقوم هذا البرنامج بقراءة القيم المدخلة في النموذج، لذلك لا توجد إعدادات منفصلة للحفظ أولاً.
انتباه: يدعم وضع معرف المؤسسة فقط العملاء المحتملين والحالات. تتطلب عمليات التحديث والحذف وتحميل الملفات والتعبئة المسبقة وتعيين قوائم الاختيار حساب OAuth.
كيف أقوم بإعداد موجز؟
الخطوة 1: تعديل نموذج → إعدادات النموذج ← Salesforce ← إضافة جديد.
الخطوة 2: اختر حساب Salesforce, كائن Salesforce (عميل محتمل، جهة اتصال، حساب، كائن مخصص...)، و وضع المزامنة (الافتراضي،, إنشاء سجل أو تحديثه إذا كان موجودًا, (وهذا صحيح في معظم الحالات).
الخطوة 3: قم بربط حقول Gravity Forms بحقول Salesforce. الحقول المطلوبة في Salesforce مُعلّمة بعلامة النجمة (*) حتى لا تفوتك.
الخطوة الرابعة (اختيارية): تحت مطابقة البيانات المكررة, ، علامة تفعيل مطابقة المفاتيح الأساسية المكررة لتحديث السجلات الموجودة التي تمت مطابقتها بناءً على البريد الإلكتروني أو المعرف الخارجي أو أي حقل آخر قابل للتصفية.
الخطوة 5 (اختيارية): قم بتكوين المنطق الشرطي، وفحص التعارض، وتعيين المالك، وتحميل الملفات، والملاحظات، أو عضوية الحملة.
الخطوة السادسة: احفظ البيانات وأرسل إدخالًا تجريبيًا. راجع شاشة تفاصيل الإدخال للاطلاع على الشريط الجانبي في Salesforce. نظرًا لأن المزامنة تتم في الخلفية، فقد ترى لفترة وجيزة حالة "معلق" باللون الأزرق، ثم معرّف السجل الجديد ورابطًا مباشرًا إليه في Salesforce.
ما هي سلوكيات المزامنة التي أحتاج إلى تفعيلها؟
يبدأ إنشاء السجلات بمجرد حفظ موجز البيانات. سلوكيات دورة الحياة اختيارية، ضمن النماذج ← الإعدادات ← Salesforce ← إعدادات المزامنة, وجميعها الأربعة معطلة حتى تقوم بتحديدها:
- تحديثات المزامنة عند تعديل الإدخالات يقوم بدفع تعديلات الإدخال إلى سجل Salesforce المرتبط.
- حذف سجلات Salesforce عند حذف الإدخالات نهائياً يُحذف السجل عند إفراغ سلة المهملات. ولا يؤثر نقل أي إدخال إلى سلة المهملات على نظام Salesforce.
- قم بإعادة مزامنة بيانات الإدخال عند استعادة الإدخالات من سلة المهملات/البريد العشوائي يقوم بدفع أي تعديلات تم إجراؤها أثناء حذف الإدخال، وينشئ بديلاً إذا تم حذف السجل في Salesforce في هذه الأثناء.
- أرسل ملاحظات إدخال Gravity Forms إلى Salesforce كسجلات ملاحظات يقوم هذا النظام بنسخ الملاحظات التي يضيفها المسؤول إلى إدخال ما، ويحذف نسخة Salesforce عند حذف الملاحظة.
تفاصيل الميزة
طرق الاتصال
تدعم الإضافة طريقتين لربط Gravity Forms بـ Salesforce. اختر الطريقة التي تتوافق مع مستوى الوصول إلى واجهة برمجة التطبيقات (API) الخاص بمؤسستك.
- OAuth 2.0 مع PKCE (موصى به). مصادقة Salesforce الحديثة باستخدام تطبيق متصل أو تطبيق عميل خارجي (البديل لإصدار Spring '26+). لا توجد مفاتيح API ثابتة على خادمك، ويقوم الملحق بتحديث رموز الوصول تلقائيًا، ويبقى الاتصال نشطًا إلى أجل غير مسمى طالما لم تنتهِ صلاحية رمز التحديث الخاص بالتطبيق. النطاقات المطلوبة:
apiوrefresh_token/offline_access. يعمل مع جميع إصدارات Salesforce التي تتمتع بإمكانية الوصول إلى واجهة برمجة التطبيقات (Enterprise، Unlimited، Performance، Developer، أو Professional مع ملحق الوصول إلى واجهة برمجة التطبيقات). - تحويل العملاء المحتملين عبر الإنترنت / تحويل الحالات عبر الإنترنت (معرف المؤسسة). نقطة إرسال قديمة تستخدم فقط مُعرّف مؤسسة Salesforce الخاص بك. مفيدة للمؤسسات التي لا تملك صلاحية الوصول إلى واجهة برمجة التطبيقات (بعض إصدارات Essentials وProfessional). القيود: كائنات العملاء المحتملين والحالات فقط، لا تحديثات، لا حذف، لا تحميل ملفات، لا تعبئة مسبقة، لا ربط بقوائم الاختيار.
يمكن استخدام كلا الوضعين على نفس موقع ووردبريس. يمكنك إنشاء حساب OAuth لمنظمتك الرئيسية وحساب Org ID لمنظمة فرعية، ويختار كل موجز بشكل مستقل الموجز الذي تتم مزامنته معه.
دعم الحسابات المتعددة
يمكنك ربط أي عدد تريده من حسابات Salesforce بموقع WordPress واحد. الإعدادات الشائعة:
- بيئة تجريبية وإنتاجية: اختبر التغذية على بيئة الاختبار، ثم انتقل إلى بيئة الإنتاج بتغيير واحد في القائمة المنسدلة.
- وكالة: تحصل كل مؤسسة عميلة على اتصالها الخاص؛ ويختار كل موجز العميل الذي يقوم بالمزامنة معه.
- الشركة الأم والشركات التابعة: أشكال مختلفة تؤدي إلى منظمات مختلفة في هيكل شركتك.
يُحدد حساب واحد دائمًا كحساب افتراضي، لذا لا تحتاج المواقع البسيطة إلى التفكير في الحساب الذي ستستخدمه. وهو أيضًا الحساب الاحتياطي: تتم مزامنة أي موجز لم يُحدد له حساب، أو الذي قمتَ بحذف حسابه لاحقًا، مع الحساب الافتراضي. عند حذف حساب، ستتلقى تنبيهًا بذلك قبل إتمام العملية، لذا وجّه الموجزات المتأثرة إلى حساب آخر أولًا إذا لم يكن الحساب الافتراضي هو المكان المناسب للكتابة.
لكل حساب حالة اتصال خاصة به. يسجل الملحق آخر تحديث لكل حساب، وآخر اتصال ناجح، وآخر اتصال فاشل، وتعرض قائمة الحسابات معلومات حول حالة الاتصال (متصل مع آخر وقت تم التحقق منه، يحتاج إلى اهتمام، أو إعادة اتصال مطلوبة)، بحيث يكون الاتصال المعطل مرئيًا قبل بدء فشل عمليات الإرسال. يحتفظ كل حساب بإصدار واجهة برمجة تطبيقات Salesforce الذي تم الاتصال به (الاتصالات الجديدة افتراضيًا هي v63.0قم بإزالة حساب وإعادة ربطه لنقله إلى إصدار أحدث. تؤدي إزالة الحساب إلى إلغاء رموزه المميزة في Salesforce بدلاً من نسيانها محليًا فقط.
كائنات Salesforce المدعومة
يمكنك المزامنة مع أي كائن من كائنات Salesforce يمكن للمستخدم المتصل الوصول إلى الكائنات القياسية أو المخصصة. يتم إنشاء قائمة الكائنات المنسدلة ديناميكيًا من مخطط مؤسستك الفعلي، لذا سترى كل كائن قياسي يأتي مع Salesforce (الحساب، جهة الاتصال، العميل المحتمل، الفرصة، الحالة، الحملة، المهمة، الحدث، الملاحظة، المستخدم، وغيرها الكثير) بالإضافة إلى كل كائن مخصص قمت بتعريفه.
بالنسبة للكائنات المخصصة، اختر “"مخصص (اكتب أدناه)"” وأدخل اسم واجهة برمجة التطبيقات (على سبيل المثال،, My_Object__c). تعمل قيم القوائم المنسدلة وعلاقات البحث ومرفقات الملفات والتعبئة المسبقة بنفس الطريقة مع الكائنات المخصصة كما تعمل مع الكائنات القياسية.
ربط السجلات عبر مصادر البيانات
يمكن لعملية إرسال واحدة إنشاء عدة سجلات مرتبطة. أضف موجزًا لكل عنصر، ثم اسحب الصفوف في قائمة الموجزات إلى الترتيب الذي تريده. تعمل الموجزات بهذا الترتيب، واحدًا تلو الآخر، في الخلفية. في موجز لاحق، اربط حقل البحث (AccountId أو ContactId أو أي بحث مخصص) بـ قيمة مخصصة وادخل {salesforce_id:FEED_ID}, حيث يُمثل FEED_ID مُعرّف التغذية السابقة. يُشير الوسم إلى السجل الذي أنشأته التغذية أو حدّثته لهذا الإدخال، وبالتالي يرتبط السجل الجديد به. مُعرّف التغذية هو fid= القيمة في شريط العنوان أثناء تحرير الخلاصة.
تتكون السلسلة النموذجية أولاً من موجز الحساب، ثم موجز جهة الاتصال مع تعيين معرف الحساب إلى {salesforce_id:12} (حيث يمثل 12 معرّف موجز الحساب)، ثم موجز الفرصة مع تعيين معرّف الحساب بنفس الطريقة. استخدم حساب Salesforce نفسه في كل موجز في السلسلة، لأن معرّف السجل موجود فقط في المؤسسة التي أصدرته. إذا لم يُنشئ الموجز السابق أي سجل، إما لعدم تطابق منطق الشرط أو لإيقافه بسبب فحص التعارض، فسيكون الوسم فارغًا ويبقى البحث غير مُعيّن بدلاً من استخدام معرّف موجز آخر.
تعيين قوائم الاختيار على مستوى الحقل
بالنسبة لحقول القوائم المنسدلة، والاختيارات المتعددة، وأزرار الاختيار، ومربعات الاختيار، يمكنك سحب الخيارات مباشرةً من قائمة اختيار Salesforce بدلاً من كتابتها يدويًا. يوجد وضعان لكل حقل:
- املأ الخيارات (قابلة للتعديل) ينسخ هذا الخيار قيم قائمة الاختيارات إلى حقل Gravity Forms مرة واحدة. ويمكن للمسؤول تعديل الخيارات أو حذفها لاحقًا. وهو مناسب لمن يرغب في نقطة بداية ثم تقليص القائمة لاحقًا.“
- مزامنة مباشرة (مطابقة دائمة مع Salesforce) يُحدّث هذا الخيار الخيارات في كل مرة يتم فيها عرض النموذج. يتم تثبيت الخيارات في محرر النموذج لمنع أي تغيير. استخدم هذا الخيار عندما يكون Salesforce هو المصدر الوحيد للمعلومات (حقول الحالة، مصادر العملاء المحتملين، قوائم اختيار الولاية/البلد، إلخ).
يتم عرض تسميات Salesforce لمستخدمي النموذج؛ ويتم إرسال قيم Salesforce. لذا يظهر النموذج "كاليفورنيا" ولكن يتم إرسال الإدخال CA, وهذا بالضبط ما تتوقعه قوائم الاختيار الخاصة بالولاية/البلد في Salesforce، ولن تحتاج إلى جدول ربط.
نوع السجل هو قائمة اختيار هنا أيضًا. بالنسبة لأي كائن يحتوي على أنواع سجلات قابلة للتحديد، يظهر نوع السجل بجانب قوائم الاختيار الفعلية في واجهة مستخدم تعيين الحقول نفسها. يعرض النموذج اسم نوع السجل للمستخدمين (مثل "متبرع")؛ والقيمة المُرسلة هي مُعرّف نوع سجل Salesforce. قم بربط هذا الحقل بـ RecordTypeId في موجزك، وسيتم تعيين نوع السجل المُختار على السجل الذي تم إنشاؤه أو تحديثه. يتم سرد أنواع السجلات التي يمكن لمستخدم Salesforce المتصل تعيينها فقط (يتم استبعاد النوع الرئيسي الضمني والأنواع غير المتاحة)، ويدعم النظام كلاً من وضعَي التعبئة والمزامنة المباشرة.
تُثبّت قائمة "كائنات Salesforce" المنسدلة في الشريط الجانبي لتعيين الحقول الكائنات القياسية الثمانية الأكثر استخدامًا (الحساب، جهة الاتصال، العميل المحتمل، الفرصة، الحالة، الحملة، المهمة، الملاحظة) في أعلى القائمة، مما يُغنيك عن التمرير عبر جميع الكائنات المخصصة في المؤسسة للعثور عليها. في شاشة إعدادات التغذية، غيّر الكائن أو الحساب، وسيتم إعادة تحميل مُحدِّدات الحقول والمطابقة والكائنات من Salesforce فورًا دون الحاجة إلى انتظار الحفظ.
مطابقة المفتاح الأساسي (بدون تكرارات)
لا يرغب معظم مسؤولي Salesforce في أن يؤدي كل إرسال نموذج إلى إنشاء عميل محتمل جديد. فعّل مطابقة المفتاح الأساسي لتحديث السجلات الموجودة عند وجود تطابق.
- اختر أي حقل قابل للتصفية أو حقل idLookup أو حقل externalId كمفتاح مطابقة (البريد الإلكتروني هو الأكثر شيوعًا).
- إذا تم العثور على سجل مطابق، فسيتم تحديثه. وإذا لم يتم العثور عليه، فسيتم إنشاء سجل جديد (عندما يتم ضبط وضع المزامنة على "إنشاء أو تحديث إذا كان السجل موجودًا").
- استخدم معرّفًا خارجيًا مخصصًا (
Customer_Reference__c) للمطابقة بين الأنظمة. - حماية مدمجة ضد حالة التزامن "تم حذف السجل المطابق في Salesforce". إذا أعاد Salesforce رمز 404 لمعرّف مخزّن، يقوم الملحق بإنشاء سجل جديد تلقائيًا.
التحقق من تضارب المصالح
تُحدّث عملية مطابقة المفتاح الأساسي السجل عند العثور على سجل مطابق. أحيانًا قد تُفضّل إيقاف التغذية بدلاً من ذلك. التحقق من التعارض يبحث عن سجل موجود في Salesforce قبل أن يقوم موجز البيانات بإنشاء أي شيء، ويتوقف إذا وجد سجلاً.
في حين أن مطابقة البيانات المكررة تعتمد على مفتاح واحد، فإن فحص التعارض يجمع عدة حقول في عملية بحث واحدة. عند ربط الاسم الأول واسم العائلة معًا، ستتمكن من رصد الشخص نفسه الذي يُرسل البيانات باستخدام عنوان بريد إلكتروني مختلف، وهو ما كان سيسمح به مجرد مطابقة البريد الإلكتروني وحده. يجب أن يتطابق كل صف مُرتبط مع السجل نفسه حتى يتوقف البحث، لذا فإن التداخل الجزئي لا يُفعّله.
- قم بربط أي عدد من حقول Salesforce بحقول Gravity Forms حسب حاجتك، بما في ذلك القيم المخصصة.
- قم بتعيين رسالة تعارض خاصة بك. يتم تسجيلها في سجل الإدخال وإرسالها في رسالة البريد الإلكتروني الخاصة بالفشل، حتى تتمكن من معرفة سبب عدم إنشاء السجل.
- ينطبق هذا فقط عندما يقوم موجز البيانات بإنشاء سجل. أما السجل الذي تم العثور عليه عن طريق مطابقة التكرارات فيتم تحديثه كالمعتاد.
- لكل موجز، ومتاح على حسابات OAuth.
تحميل الملفات
يمكن إرفاق حقول تحميل الملفات في Gravity Forms بسجل Salesforce كـ إصدار المحتوى / رابط مستند المحتوى, لذا تظهر هذه الملفات في قائمة الملفات ذات الصلة بالسجل. يمكن ضبط الحد الأقصى لحجم الملف، من 1 إلى 25 ميجابايت لكل ملف، والقيمة الافتراضية هي 10 ميجابايت.
لإرفاق الملفات، قم بربط كل حقل من حقول تحميل الملفات بـ الملفات — إرفاقها بسجل Salesforce أضف صفًا إلى خريطة حقول Salesforce الخاصة بالخلاصة. أضف هذا الصف مرة واحدة لكل حقل تحميل. يتم إرفاق كل حقل مُرتبط، ويرسل الحقل متعدد الملفات جميع الملفات التي يحتويها. تُرفع الملفات عند مزامنة الخلاصة لأول مرة، وتُعاد إرسالها إلى Salesforce بعد أي فشل.
مزامنة الملاحظات
قم بإدخال بيانات النموذج في Salesforce ملحوظة مُرفقة بالسجل الأصلي. يدعم كل من عنوان الملاحظة ونصها علامات الدمج، لذا يمكنك تنسيقهما كما تشاء. اترك النص فارغًا وسيتم استخدامه {all_fields}.
يمكنك، إن شئت، نسخ ملاحظات إدخالات Gravity Forms التي أضافها المسؤول إلى Salesforce كملاحظات أيضًا، مما يحافظ على سجل المحادثات في مكان واحد. عند حذف الملاحظة من Gravity Forms، تُحذف نسخة Salesforce معها.
عضوية الحملة
أضف العميل المحتمل أو جهة الاتصال التي تم إنشاؤها بواسطة النموذج إلى Salesforce حملة. حدد المربع، وأدخل معرّف الحملة (يمكنك استخدام علامة دمج، بحيث يمكن لحقل مخفي تحديد الحملة)، وسيقوم الملحق بإنشاء سجل عضو حملة يربط العميل المحتمل أو جهة الاتصال الجديدة بالحملة. حدد حالة عضويتك بنفسك، أو اتركها كما هي وسيستخدمها الملحق. Responded.
تنازل المالك
لكل تغذية:
- قم بتعيين مخصص معرف المالك (يدعم علامات الدمج، لذا يمكنك التوجيه بناءً على قيم النموذج).
- قم بتفعيل/إيقاف التشغيل
Sforce-Auto-Assign: FALSEرأسية لتجاوز قواعد التعيين القياسية عند الحاجة.
التعبئة المسبقة من Salesforce
أرسل للمستخدمين العائدين نموذجًا مخصصًا، مُعبأ مسبقًا ببياناتهم الحالية في Salesforce. نماذج التجديد، ونماذج تحديث الحساب، ومسارات إكمال الملف الشخصي.
- قم بربط أي حقل في Salesforce بأي حقل في Gravity Forms لتعبئة البيانات مسبقًا. يتم تعيين كائن التعبئة المسبقة افتراضيًا إلى الكائن الذي يكتب إليه موجز البيانات، ولكن يمكنك القراءة من كائن مختلف، على سبيل المثال التعبئة المسبقة من جهة الاتصال بينما يقوم موجز البيانات بإنشاء حالة.
- تعمل خاصية التعبئة المسبقة للمسؤولين المسجلين بمجرد تفعيلها. لاستخدامها في نموذج عام، حدد الخيار المناسب. السماح بطلبات التعبئة المسبقة العامة في نماذج الواجهة الأمامية أيضًا.
- عناوين URL الموقعة بواسطة HMAC مع TTL يمنع هذا النظام تعداد معرّفات السجلات في النماذج العامة، ويتم تفعيل التوقيع تلقائيًا مع صلاحية مدتها 15 دقيقة. وبدون التوقيعات، يمكن لأي شخص التكرار.
?sfid=001000...وسحب البيانات التي لا ينبغي لهم الحصول عليها. - ال مولد روابط التعبئة المسبقة الموقعة هذه الميزة مُدمجة في إعدادات التغذية. ما عليك سوى لصق مُعرّف السجل، والحصول على رابط مُوقّع مع تاريخ انتهاء صلاحية. استخدمه في رسائل البريد الإلكتروني التسويقية، أو بوابات العملاء، أو مسارات الخدمة الذاتية.
- يمكن للمسؤولين المسجلين استخدام معرفات السجلات الخام بدون توقيعات لأغراض الاختبار.
- معلمة استعلام لكل موجز (افتراضي)
?sfid=) يحافظ على نظافة عناوين URL.
مزامنة دورة حياة الإدخال
يتم إنشاء السجلات تلقائيًا بمجرد حفظ موجز البيانات. أما باقي مراحل دورة حياة البيانات، فيمكنك تفعيلها من خلال: النماذج ← الإعدادات ← Salesforce ← إعدادات المزامنة، بحيث لا يقوم التكامل إلا بكتابة البيانات التي طلبتها منه.
- تعديل إدخال → يتم تحديث سجل Salesforce بمجرد تفعيل خيار "مزامنة التحديثات عند تعديل الإدخالات" (
gform_after_update_entry). - حذف إدخال → سجل Salesforce هو تُرك دون تغيير, دائمًا. يمكن التراجع عن حذف الملفات في ووردبريس، لذا يبقى السجل في مكانه.
- استعادة من النفايات عند تفعيل خيار "إعادة مزامنة بيانات الإدخال عند استعادتها من سلة المهملات/البريد العشوائي"، تُضاف أي تعديلات أُجريت أثناء حذف الإدخال إلى السجل. أما إذا حُذف السجل يدويًا من Salesforce في هذه الأثناء، وكان وضع مزامنة البيانات هو "إنشاء أو تحديث إذا كان السجل موجودًا" (الوضع الافتراضي)، فسيتم إنشاء سجل بديل جديد.
- حذف إدخال نهائياً (إفراغ سلة المهملات، أو "الحذف نهائياً") → يتم حذف سجل Salesforce، إذا قمت بتمكين "حذف سجلات Salesforce عند حذف الإدخالات نهائياً".
مزامنة الخلفية
لا يتم تنفيذ استدعاءات واجهة برمجة تطبيقات Salesforce أثناء انتظار الزائر. تتم معالجة البيانات في الخلفية بعد اكتمال الإرسال، باستخدام معالجة البيانات غير المتزامنة الخاصة بـ Gravity Forms، لذا فإن استجابة Salesforce البطيئة لا تتحول أبدًا إلى صفحة شكر بطيئة.
بمجرد أن تلتقط المهمة الخلفية البيانات، يصبح الإدخال باللون الأزرق قيد الانتظار يتم استبدال الحالة بنتيجة النجاح أو الخطأ النهائية فور استجابة Salesforce. افتح إدخالًا تجريبيًا مباشرةً بعد الإرسال، وقد تكون كلمة "معلق" أول ما تراه. إذا كان يجب أن تنتهي عملية إرسال البيانات قبل صفحة الشكر، على سبيل المثال لعرض {salesforce_id} ضع علامة صح عليه. قم بمعالجة هذا الملف أثناء الإرسال. على تلك القناة.
مدرك لإضافات الدفع
إذا كان نموذجك يقبل الدفع عبر إضافة دفع من Gravity Forms (Stripe، PayPal Standard، PayPal Commerce، Authorize.Net، Square، 2Checkout، Mollie، وغيرها)، فقم بتمكينها “"لا تقم بمعالجة بيانات Salesforce إلا عند استلام الدفعة."” تحت إجراءات ما بعد الدفع في إعدادات التغذية الخاصة بإضافة الدفع (يظهر الخيار بمجرد أن يحتوي النموذج على تغذية Salesforce) لتأجيل مزامنة Salesforce حتى يتم تأكيد الدفع بنجاح، لذلك لا تترك عمليات الدفع المهجورة عملاء محتملين غير مكتملين.
عند الإرسال، يتم تأخير مزامنة Salesforce إذا كان الإدخال يتضمن دفعة معلقة. وعندما يؤكد ملحق الدفع العملية (عبر إطار عمل التغذيات المؤجلة القياسي في Gravity Forms)، تتم مزامنة Salesforce بشكل طبيعي. أما إذا فشلت عملية الدفع أو تم التخلي عنها، فلن تتم المزامنة مطلقًا.
يعمل مع أي إضافة دفع مبنية على إطار عمل إضافات الدفع القياسي لـ Gravity Forms، وهو جميع الإضافات الرسمية.
تصدير السجلات وملفات CSV
يتم تسجيل كل عملية مزامنة مع Salesforce، سواء نجحت أم فشلت، مع حالة المزامنة والرسالة التي أعادت Salesforce بالضبط. سجلات Salesforce الصفحة (النماذج ← سجلات Salesforce) تعرض:
- معرّف الإدخال، والنموذج، والحالة، ومعرّف السجل، والرسالة، ووقت المزامنة
- فلتر لكل نموذج، وترقيم الصفحات بمعدل 50 صفًا في الصفحة الواحدة
- تصدير العرض الحالي بصيغة CSV، وبالتالي فإن التصفية حسب النموذج تُصدّر ذلك النموذج.
قم بتشغيل تسجيل Gravity Forms وستحصل أيضًا على حمولة الطلب الصادرة ورسالة الخطأ التي أعادتها Salesforce مكتوبة في سجل Gravity Forms، وهي عادةً أسرع طريقة لمعرفة ما اعترضت عليه Salesforce بالضبط.
إذا كنت تفضل عدم الاحتفاظ بسجل المزامنة على الإطلاق،, “"تعطيل تخزين سجلات إدخال Salesforce (الحالة/الرسائل/سجل المزامنة)"” يمنع تسجيله ويحتفظ به wp_gf_entry_meta ملاحظة هامة قبل تفعيل هذا الخيار: صفحة سجلات Salesforce تقرأ من هذا السجل، لذا ستتوقف عن العمل، وسينتقل الشريط الجانبي للإدخال إلى رابط السجل وزر إعادة الإرسال، وسيتم مسح السجل الحالي عند تفعيل هذا الإعداد. تبقى معرّفات السجلات في الإدخال، لذا ستستمر علامات الدمج وروابط السجلات في العمل.
إشعارات البريد الإلكتروني عند فشل المزامنة
تلقَّ إشعارًا فور رفض Salesforce للبيانات، مع معرّف الإدخال ورسالة الخطأ التي أرجعتها Salesforce. فعِّل “"إرسال رسائل بريد إلكتروني لإشعارات الأخطاء"” ضمن قسم "الإبلاغ عن الأخطاء" في إعدادات Salesforce الخاصة بالملحق، ثم قم بتعيين المستلم مرة واحدة في البريد الإلكتروني للإشعارات (يتم تعيين البريد الإلكتروني تلقائيًا إلى بريدك الإلكتروني الخاص بمسؤول ووردبريس إذا تُرك فارغًا).
مفيد في الصيد:
- حقل مطلوب في Salesforce اختفى فجأة (قام شخص ما بتعديل النموذج)
- قيمة قائمة منسدلة لم تعد موجودة في Salesforce
- قيود واجهة برمجة التطبيقات، أو قواعد التحقق، أو قواعد سير العمل التي ترفض السجل
- تطبيق متصل يحتاج إلى إعادة تفويض
يتم الإبلاغ عن الوصول إلى حد طلبات واجهة برمجة تطبيقات Salesforce على أنه تقييد للمعدل بدلاً من فشل إرسال غامض، لذلك ستعرف أن تنتظر بدلاً من البدء في تصحيح أخطاء خريطة الحقول الخاصة بك.
أصلح المشكلة، ثم اضغط أعد الإرسال إلى Salesforce يتم إدخال البيانات المتأثرة، ثم يتم إدخال السجلات. البديل هو اكتشاف بعد أسبوعين أن 30 عميلاً محتملاً لم يصلوا إلى نظام إدارة علاقات العملاء (CRM).
شريط جانبي لكل إدخال في Salesforce
تعرض كل شاشة تفاصيل إدخال في Gravity Forms قسمًا مخصصًا Salesforce مربع الشريط الجانبي الذي يعرض الحالة المباشرة للمزامنة:
- حالة, مُرمّزة بالألوان: أخضر: نجاح، أحمر: خطأ، أزرق: معلق، رمادي: تم التخطي
- هدف, ما هو كائن Salesforce الذي تم إنشاؤه (عميل محتمل، جهة اتصال، كائن مخصص، إلخ)؟
- معرف السجل, ، قابل للنقر، يفتح مباشرة في Salesforce في علامة تبويب جديدة
- حساب, ، والذي قام حساب Salesforce المتصل بمعالجة المزامنة (مفيد عندما يكون لديك حسابات متعددة)
- متزامن, ، الطابع الزمني لأحدث محاولة مزامنة
- رسائل الخطأ, الخطأ الدقيق الذي أرجعته Salesforce، عند الاقتضاء.
- نتائج البحث, ، تفصيل لكل موجز عند تشغيل عدة موجزات على نفس النموذج
إنها أسرع طريقة للتأكد من أن النموذج يقوم بالفعل بإرسال البيانات إلى Salesforce، ولتحديد الإدخال الذي فشل بالضبط عندما يحدث خطأ ما.
أعد الإرسال إلى Salesforce
تتضمن المشاركات أعد الإرسال إلى Salesforce زر في شاشة تفاصيل الإدخال، مخصص للمستخدمين الذين يمكنهم إدارة إعدادات الإضافة. لا يقتصر دوره على إعادة مزامنة السجل الرئيسي فحسب، بل يزيل أيضًا علامات إزالة التكرار الناتجة عن الآثار الجانبية، مما يسمح بإعادة محاولة مزامنة الملاحظات والملفات وعضويات الحملات. استخدمه عندما:
- كان نظام Salesforce معطلاً عندما تم تشغيل عملية المزامنة الأصلية
- لقد قمت بإصلاح عملية ربط التغذية بعد مجموعة من عمليات الإرسال الفاشلة
- تريد إرسال بيانات الاختبار إلى بيئة اختبارية دون إعادة إرسال النموذج
علامات الدمج
{salesforce_id} هو مُعرّف سجل Salesforce الذي تم إنشاؤه أو تحديثه بواسطة أحدث موجز لهذا الإدخال. الموجزات التي تستخدم وضع مُعرّف المؤسسة (من الويب إلى العميل المحتمل / من الويب إلى الحالة) تُرسل البيانات إلى نقطة نهاية لا تُرجع أي مُعرّف سجل، لذا فهي لا تُعيّن هذا الوسم أو نسخته الخاصة بكل موجز.
{salesforce_id:FEED_ID} هو معرّف سجل Salesforce الذي تم إنشاؤه بواسطة موجز بيانات محدد. استخدم هذا المعرّف عند تشغيل عدة موجزات بيانات على نفس النموذج.
تعمل العلامات الخاصة بالتغذية أيضًا داخل إعدادات التغذية. قم بتعيين حقل بحث إلى قيمة مخصصة وادخل {salesforce_id:FEED_ID} لربط السجل بسجل تم إنشاؤه مسبقًا. يتم تشغيل الخلاصات بترتيب قائمة الخلاصات، ومعرف الخلاصة هو fid= القيمة في رابط تعديل الخلاصة. يتم حل علامة الخلاصة التي لم تُنشئ أي سجل إلى قيمة فارغة.
{salesforce_link} هو رابط مباشر إلى سجل Salesforce، تم إنشاؤه من عنوان URL الخاص بمثيل ذلك الحساب ومعرف السجل، على سبيل المثال https://yourorg.my.salesforce.com/00Q5g00000ABCDE. تقوم Salesforce بإرسال ذلك إلى صفحة سجل Lightning.
{salesforce_link:FEED_ID} هو رابط مباشر إلى السجل الذي تم إنشاؤه بواسطة موجز بيانات محدد. وهو مفيد عندما يحتوي نموذج ما على عدة موجزات بيانات تكتب إلى مؤسسات Salesforce مختلفة، إحداها إلى بيئة الاختبار والأخرى إلى بيئة الإنتاج على سبيل المثال، لأن كل متغير يستخدم عنوان URL الخاص بمثيل حساب موجز البيانات هذا.
تعمل كلتا العلامتين في أي مكان تُقيّم فيه Gravity Forms علامات الدمج، مع قاعدة توقيت واحدة. تعمل الخلاصات في الخلفية بعد اكتمال الإرسال، لذا يتم عرض رسالة التأكيد وأي إشعار يتم إرساله عند إرسال النموذج قبل وجود السجل، وتظهر العلامات فارغة هناك. يتم ملؤها في أي مكان تُقيّم فيه Gravity Forms علامات الدمج بعد انتهاء المزامنة. لعرضها في صفحة التأكيد وفي إشعارات الإرسال، حدد الخيار المناسب. قم بمعالجة هذا الملف أثناء الإرسال. على صفحة الخلاصة؛ ثم ينتظر الزائر ردّ Salesforce. الاستخدامات الشائعة:
- ربط السجلات عبر مصادر البيانات: في مصدر بيانات لاحق، قم بتعيين قيمة مخصصة مثل AccountId أو ContactId.
{salesforce_id:FEED_ID}من المصدر الذي أنشأ السجل الأصلي. - يتم إرسال الإشعارات لاحقًا: "عميل محتمل جديد في Salesforce → {salesforce_link}" يتم ملؤها عند استخدام ميزة إعادة إرسال الإشعارات في Gravity Forms على الإدخال بعد تشغيل المزامنة.
- أي إضافة أو رمز مخصص يقوم بتقييم علامات الدمج بعد المزامنة، على سبيل المثال لتمريرها
{salesforce_id}إلى نظام المصب.
الترجمات
هذه الإضافة جاهزة للترجمة. يمكنك ترجمتها إلى أي لغة باستخدام البرنامج المجاني ترجمة محلية إضافة أو أي أداة ترجمة أخرى لـ WordPress.
اللغة الافتراضية: الإنجليزية (en_US)
الأسئلة الشائعة
هل يتطلب هذا استخدام نماذج الجاذبية؟
نعم. يجب تثبيت وتفعيل Gravity Forms الإصدار 2.7 أو أحدث. هذه إضافة لـ Gravity Forms، لذا فهي لا تعمل بشكل مستقل.
ما هي إصدارات ووردبريس و PHP المدعومة؟
يدعم ووردبريس 6.5 والإصدارات الأحدث، وPHP 8.0 والإصدارات الأحدث. تم اختباره حتى ووردبريس 7.0.
هل يمكنني الاتصال ببيئة اختبار Salesforce؟
نعم. استخدم https://test.salesforce.com استخدم عنوان URL لتسجيل الدخول عند ربط الحساب. يمكنك ربط حساب تجريبي وحساب إنتاجي بنفس موقع ووردبريس في الوقت نفسه.
هل يدعم هذا النظام حسابات Salesforce متعددة على موقع واحد؟
نعم. يمكنك ربط أي عدد تريده من الحسابات. يختار كل موجز الحساب الذي تتم مزامنته معه. حالات الاستخدام الشائعة: بيئات الاختبار والإنتاج، ووكالات العملاء، أو الهياكل المؤسسية الأم والفرعية.
هل يمكنني المزامنة مع كائنات Salesforce المخصصة؟
نعم. في قائمة "كائن Salesforce" المنسدلة الخاصة بالخلاصة، اختر "مخصص (اكتب أدناه)" وأدخل اسم واجهة برمجة التطبيقات (API) للكائن المخصص الخاص بك (على سبيل المثال،, My_Object__cتعمل قوائم الاختيار، وتحميل الملفات، والبحث، والتعبئة المسبقة بنفس الطريقة مع الكائنات المخصصة. تتطلب الكائنات المخصصة حساب OAuth؛ ويقتصر وضع معرف المؤسسة على العملاء المحتملين والحالات.
هل يمكن لنموذج واحد إنشاء حساب وجهة اتصال وفرصة مرتبطة ببعضها البعض؟
نعم. أضف موجزًا واحدًا لكل عنصر، ثم اسحبها ورتبها في قائمة الموجزات: الحساب أولًا، ثم جهة الاتصال، ثم الفرصة. تعمل الموجزات بهذا الترتيب. في موجزي جهة الاتصال والفرصة، قم بتعيين معرف الحساب ل قيمة مخصصة وادخل {salesforce_id:FEED_ID} باستخدام معرّف موجز الحساب، وهو fid= القيمة في عنوان URL الخاص بالتعديل. يصل كل سجل مع توجيه البحث الخاص به مسبقًا إلى الحساب من نفس عملية الإرسال. وينطبق الأمر نفسه على أي حقل بحث، سواء كان قياسيًا أو مخصصًا، طالما أن الخلاصات تستخدم نفس حساب Salesforce.
لماذا يختفي عنصر Salesforce الخاص بي من القائمة المنسدلة؟
تأتي قائمة الكائنات من Salesforce، وتتضمن فقط الكائنات التي يمكن للمستخدم المتصل إنشاؤها. إذا كان كائن "عميل محتمل" أو "جهة اتصال" أو كائن مخصص مفقودًا، فهذا يعني أن المستخدم المخوّل لا يملك صلاحية الإنشاء عليه، وعادةً ما تكون لديه رخصة تكامل خاصة بواجهة برمجة التطبيقات فقط بدون أي مجموعة صلاحيات مرفقة. قم بإصلاح المشكلة في Salesforce، ثم انتظر حتى يتم تحديث ذاكرة التخزين المؤقت للكائنات الخاصة بالمكوّن الإضافي (ست ساعات)؛ إعادة توصيل الحساب لا تمسحها. يُعد خيار "مخصص (اكتب أدناه)" حلاً مؤقتًا.
هل يعمل هذا مع Salesforce Pardot (Account Engagement)؟
ليس بشكل مباشر. يقوم الملحق بكتابة سجلات Salesforce القياسية، مثل العملاء المحتملين وجهات الاتصال، عبر واجهة برمجة تطبيقات Salesforce REST، ولا يحتوي على أي كود خاص بـ Pardot. إذا كانت مؤسستك تستخدم موصل Salesforce-Pardot، فسيتعرف Pardot على هذه السجلات بنفس الطريقة التي يتعرف بها على أي سجل Salesforce آخر. ما الذي يفعله هذا الملحق؟ لم يفعل افعل: الكتابة مباشرة إلى عملاء Pardot المحتملين أو قوائم Pardot، أو تجاوز Salesforce، أو التفاعل مع كائنات خاصة بـ Pardot (عمليات إعادة التوجيه المخصصة، نماذج Pardot، إلخ).
كيف تتعامل خاصية تعيين القوائم المنسدلة مع حقول الولاية والبلد التي تحتوي على رموز؟
يعرض الملحق Salesforce ملصق إلى مستخدم النموذج (على سبيل المثال، "كاليفورنيا") ولكنه يرسل قائمة الاختيار قيمة (مثال،, CA)، وهذا بالضبط ما تتطلبه قوائم اختيار الولاية/البلد في Salesforce، لذلك لست بحاجة إلى جدول ترجمة من جانبك.
ما الفرق بين وضع التعبئة ووضع المزامنة المباشرة لقوائم الاختيار؟
- قم بتعبئة ينسخ هذا الخيار قيم قائمة الاختيارات في Salesforce إلى حقل النموذج الخاص بك مرة واحدة. بعد ذلك، يمكنك تعديل الخيارات أو حذف بعضها أو إعادة ترتيبها. يُعد هذا الخيار مفيدًا عندما تريد نقطة بداية، ولكنك قد ترغب في تخصيص القائمة لاحقًا.
- مزامنة مباشرة يُعيد هذا البرنامج تطبيق خيارات Salesforce في كل مرة يتم فيها عرض النموذج، بحيث تظهر التغييرات في Salesforce تلقائيًا على النموذج بمجرد تحديث ذاكرة التخزين المؤقت للحقول (التي تدوم ست ساعات). يقوم محرر النموذج بقفل الخيارات لمنع أي تغييرات غير مقصودة. يُعد هذا البرنامج مفيدًا عندما يكون Salesforce هو المصدر الوحيد للمعلومات (حقول الحالة، مصادر العملاء المحتملين، قوائم الدول، إلخ).
هل يمكنني السماح لمستخدمي النموذج باختيار نوع سجل Salesforce؟
نعم. افتح حقل القائمة المنسدلة/الاختيار المتعدد/زر الاختيار/مربع الاختيار، وفعّل خاصية ربط الحقول في Salesforce، ثم اختر العنصر، وحدد نوع السجل من قائمة الحقول. يعرض النموذج اسم نوع السجل (مثل "متبرع") للمستخدمين؛ والقيمة المُدخلة هي معرّف نوع السجل في Salesforce. بعد ذلك، اربط حقل Gravity Forms هذا بمعرّف نوع السجل في ربط البيانات لديك، بحيث يتم تعيين نوع السجل المُختار في السجل الذي تم إنشاؤه أو تحديثه. يتم عرض أنواع السجلات المتاحة فقط لمستخدم Salesforce المتصل بك.
هل يمكنني تجنب إنشاء سجلات مكررة؟
نعم، بطريقتين. تفعيل مطابقة المفتاح الأساسي في إعدادات التغذية، اختر حقلاً فريداً (البريد الإلكتروني هو الأكثر شيوعاً، أو أي معرّف خارجي مخصص). ستقوم التغذية بتحديث سجل موجود عند وجود تطابق، وإنشاء سجل جديد عند عدم وجود تطابق.
إذا كنت تفضل إيقاف التغذية بدلاً من كتابة أي شيء، فاستخدم التحقق من التعارض بدلاً من ذلك، يجمع النظام عدة حقول في عملية بحث واحدة، بحيث يؤدي ربط الاسم الأول واسم العائلة معًا إلى اكتشاف الشخص نفسه الذي يُرسل البيانات باستخدام عنوان بريد إلكتروني مختلف. عندما تتطابق جميع الصفوف المرتبطة مع السجل نفسه، يتوقف النظام ويسجل رسالة التعارض الخاصة بك بجانب الإدخال.
ما الفرق بين مطابقة المفتاح الأساسي وفحص التعارض؟
يؤدي استخدام مطابقة المفتاح الأساسي إلى العثور على سجل و التحديثات يجد فحص التعارض سجلاً و توقفات. استخدم المطابقة عندما يتطلب إرسال متكرر تحديث سجل واحد؛ واستخدم فحص التعارض عندما يمثل الإرسال الثاني مشكلة ترغب في معرفتها بدلاً من تجاهلها. تعمل هاتان الطريقتان معًا: لا يتم تفعيل فحص التعارض إلا عندما يكون النظام على وشك إنشاء سجل، لذا يتم تحديث السجل الذي تم العثور عليه من خلال مطابقة التكرارات بشكل طبيعي.
هل يمكنني ملء نموذج مسبقًا ببيانات موجودة في Salesforce؟
نعم. تفعيل التعبئة المسبقة من Salesforce في موجز البيانات، قم بتعيين حقول Salesforce التي تريد استيرادها. بالنسبة للنماذج العامة، حدد أيضًا علامة صح. السماح بطلبات التعبئة المسبقة العامة في نماذج الواجهة الأمامية, وإلا، فإن التعبئة المسبقة لا تعمل إلا للمسؤولين المسجلين. ثم أرسل للمستخدمين رابطًا مثل ?sfid=001XXXXXXXXXXXX. الطلبات الموقعة مطلوبة افتراضيًا مع صلاحية لمدة 15 دقيقة؛ استخدم الخاصية المدمجة مولد روابط التعبئة المسبقة الموقعة لإنشاء عناوين URL هذه لحملات البريد الإلكتروني أو مسارات الخدمة الذاتية.
هل يؤدي تعديل إدخال ما إلى تحديث سجل Salesforce؟
بمجرد تفعيلها، نعم. تحديثات الإدخالات، والحذف الدائم، واستعادة البيانات من سلة المهملات، ومزامنة الإدخالات مع الملاحظات، كل منها عبارة عن مربع اختيار منفصل ضمن النماذج ← الإعدادات ← Salesforce ← إعدادات المزامنة، وجميعها مُفعّلة تلقائيًا. لا يتطلب إنشاء السجلات أي إعداد إضافي سوى حفظ موجز البيانات؛ أي عملية كتابة إلى سجل موجود هي اختيارية، لذا لا يقوم الملحق أبدًا بالتعديل على مؤسستك بطرق لم تطلبها.
ماذا يحدث إذا حذفت إدخالاً ثم استعدته؟
يتم الاحتفاظ بسجل Salesforce خلال دورة الحذف/الاستعادة. فقط حذف دائم يزيل هذا الخيار سجل Salesforce، وذلك فقط في حال تفعيله ضمن إعدادات الإضافة. يتوافق هذا مع سلوك WordPress الأصلي: يمكن التراجع عن الحذف من سلة المهملات، بينما لا يمكن التراجع عن الحذف النهائي.
لماذا تظهر حالة "معلق" باللون الأزرق في طلبي؟
هذا أمر طبيعي، وعادةً ما يختفي عند تحديث الصفحة. تتم معالجة البيانات في الخلفية، لذا لا تعيق استدعاءات واجهة برمجة تطبيقات Salesforce إرسال النماذج. قبل استدعاء Salesforce مباشرةً، تُعلّم مهمة الخلفية الإدخال بـ "معلق"، ثم تُستبدل هذه الحالة بنجاح أو خطأ بمجرد استجابة Salesforce. تعني حالة "معلق" أن المهمة بدأت ولكنها لم تُكمل، وعادةً ما يكون ذلك بسبب انتهاء مهلة PHP أو خطأ فادح أثناء الطلب، لذا فعّل تسجيل Gravity Forms وتحقق من سجل الإضافة. إذا كان من المفترض تشغيل موجز بيانات ولكن الإدخال لا يُظهر أي حالة Salesforce على الإطلاق، فهذا يعني أن قائمة الانتظار لم تُشغّله أبدًا، وهو ما يعني عادةً أن الموقع يحظر طلبات الاسترجاع إلى admin-ajax.php وتم تعطيل WP-Cron، وهو الخيار الاحتياطي.
هل يمكنني إعادة محاولة المزامنة الفاشلة؟
نعم. افتح شاشة تفاصيل الإدخال وانقر أعد الإرسال إلى Salesforce. كما أنه يزيل علامات إزالة التكرارات الناتجة عن الآثار الجانبية، لذا تتم إعادة محاولة الملاحظات والملفات وعضويات الحملات جنبًا إلى جنب مع السجل الرئيسي.
هل يعمل هذا مع إضافات الدفع (Stripe، PayPal، إلخ)؟
نعم. يتم الحصول على بيانات إضافية من خلال إضافة الدفع (مثل Stripe وPayPal وما إلى ذلك). إجراءات ما بعد الدفع قسم مع “"لا تقم بمعالجة بيانات Salesforce إلا عند استلام الدفعة."” خانة اختيار تؤجل مزامنة Salesforce حتى يؤكد الملحق الخاص بالدفع نجاح المعاملة، لذلك لا تترك عمليات الدفع المهجورة عملاء محتملين غير مكتملين.
هل يدعم هذا تحميل الملفات من Gravity Forms؟
نعم. يمكن ربط حقول تحميل الملفات في Gravity Forms بسجل Salesforce كـ ContentVersion / ContentDocumentLink، بحيث تظهر في قائمة الملفات ذات الصلة بالسجل. الحد الأقصى لحجم الملف قابل للتكوين، من 1 إلى 25 ميجابايت لكل ملف، والقيمة الافتراضية هي 10 ميجابايت.
هل يمكنني منع الملحق من تخزين سجل المزامنة؟
نعم. ضع علامة صح “"تعطيل تخزين سجلات إدخال Salesforce (الحالة/الرسائل/سجل المزامنة)"” في إعدادات الإضافة، ولا يتم كتابة أي حالة أو رسالة أو طابع زمني للمزامنة إلى wp_gf_entry_meta. هناك أمران يجب معرفتهما أولاً: صفحة سجلات Salesforce مبنية على هذا السجل، لذا تتوقف عن عرض النتائج، وينتقل الشريط الجانبي للإدخال إلى رابط السجل وزر إعادة الإرسال، ويتم مسح السجل الحالي عند تفعيل هذا الإعداد. مع ذلك، تبقى معرّفات السجلات ومعرّفات الحسابات محفوظة، لذا تستمر علامات الدمج وروابط السجلات وإعادة الإرسال في العمل.
كيف يمكنني تخصيص حمولة Salesforce برمجيًا؟
استخدم pb_gfsf_payload فلتر:
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
// $context['feed'], ['entry'], ['form'], ['object'], ['account_id'], ['method']
return $payload;
}, 10, 2 );البيانات الكاملة، المدخلات، النموذج، الكائن المستهدف، معرف الحساب، وطريقة الاتصال (oauth أو org_id) متوفرة في $context لذا يمكنك اتخاذ القرارات بناءً على أي منها.
ماذا لو لم يكن لدى مؤسستي في Salesforce إمكانية الوصول إلى واجهة برمجة التطبيقات (API)؟
يستخدم وضع معرف المؤسسة. يستخدم هذا النظام نقطة نهاية Web-to-Lead / Web-to-Case القديمة من Salesforce بدلاً من واجهة برمجة تطبيقات REST. القيود: يدعم النظام كائنات Lead و Case فقط، ولا يوفر تحديثات أو حذف أو تحميل ملفات أو تعبئة مسبقة أو ربط قوائم الاختيار. بالنسبة لمعظم بيئات الإنتاج، يُعد OAuth (الخيار الافتراضي) الخيار الأمثل.
ما هي سياسات المصادقة عبر Salesforce التي يدعمها الملحق؟
تستخدم الإضافة بروتوكول OAuth 2.0 لتدفق رمز التفويض مع PKCE، وتدعم تدوير رمز التحديث، مما يتيح لك تفعيل كليهما في تطبيقك المتصل أو تطبيق العميل الخارجي دون انقطاع الاتصال. سياسة رمز التحديث الوحيدة غير المتوافقة هي "انتهاء صلاحية رمز التحديث فورًا"، والتي تفرض إعادة تفويض كاملة عند كل انتهاء صلاحية لرمز الوصول، وهي غير متوافقة مع أي تكامل تلقائي.
كيف يبقى اتصال OAuth مسجلاً؟
تستخدم الإضافة بروتوكول OAuth 2.0 مع PKCE، وتُجدد رمز الوصول تلقائيًا باستخدام رمز التجديد. طالما لم تنتهِ صلاحية رمز التجديد في التطبيق المتصل أو تطبيق العميل الخارجي (أي لم تكن الصلاحية ثابتة لفترة طويلة مثل 365 يومًا المذكورة في دليل الإعداد)، يبقى الاتصال قائمًا. عند انتهاء صلاحية رمز التجديد، يُعاد توصيل الحساب مرة واحدة. في حال انقطاع الاتصال، يُرجى مراجعة السؤال التالي. غالبًا ما يكون السبب سياسة التطبيق المتصل أو إعدادات نطاقه. تدعم الإضافة تدوير رمز التجديد، ما يسمح للمسؤولين المهتمين بالأمان بتفعيل هذه السياسة أيضًا.
ينقطع اتصال Salesforce باستمرار وأضطر إلى إعادة الاتصال. لماذا؟
في أغلب الأحيان، يكون السبب أحد ثلاثة أمور في Salesforce. إما أن سياسة رمز التحديث للتطبيق المتصل مضبوطة على انتهاء الصلاحية بدلاً من "صالح حتى الإلغاء"، أو أن نطاق التطبيق مُحدد بـ "وصول كامل"، مما يمنع إصدار رمز التحديث، أو أن نطاقات عناوين IP لتسجيل الدخول تحظر خادمك، وفي هذه الحالة يرفض Salesforce جميع عمليات التحديث، ولن يُجدي إعادة الاتصال من نفس الخادم نفعاً. بدءاً من الإصدار 1.3.0، تُظهر شاشة الحسابات اسم الحساب بدلاً من عرض خطأ جلسة عام، كما تُسجل آخر تحديث لكل حساب، وتاريخ آخر نجاح، وتاريخ آخر فشل.
هل يتم حذف البيانات عند إلغاء تثبيت الملحق؟
فقط في حال اختيارك الاشتراك. تفعيل “"احذف جميع بيانات الإضافة عند إلغاء التثبيت"” في إعدادات الإضافة قبل إلغاء تثبيتها. بشكل افتراضي، يتم الاحتفاظ بسجلات المزامنة وإعدادات الاتصال (حتى لا تفقد سجل التصفح إذا قمت بإعادة التنشيط لاحقًا).
هل يعمل مع التخزين المؤقت/شبكات توصيل المحتوى (CDN)؟
نعم. يعمل الملحق بالكامل على جانب الخادم عند إرسال النموذج، لذا فإن إعدادات التخزين المؤقت وشبكة توصيل المحتوى (CDN) لا تتعارض مع مزامنة Salesforce. يتم تحميل جافا سكريبت محرر النماذج فقط داخل لوحة تحكم WordPress (حيث يكون التخزين المؤقت معطلاً عادةً).
هل يعمل هذا مع شبكة مواقع ووردبريس المتعددة؟
باختصار شديد
- رخصة غير محدودة: قم بتفعيل وضع الشبكة مرة واحدة؛ مفتاح واحد يكفي لإدارة إعدادات كل موقع فرعي بالإضافة إلى الدعم.
- وضع الشبكة قيد التشغيل: يرث كل موقع فرعي مفتاح الشبكة، ما يسمح لها جميعًا بتشغيل موجزات Salesforce وتلقي التحديثات فورًا. تفعيل الإضافة عبر الشبكة بشكل منفصل لا يُرخّص المواقع الفرعية.
- خطة محدودة / لا يوجد ترخيص للموقع الفرعي: تم قفل إعدادات Salesforce الخاصة بهذا الموقع الفرعي، ويظهر سجل موجزاته "مزامنة Salesforce غير متاحة حتى يتم تفعيل ترخيص المكون الإضافي" بدلاً من المزامنة.
- الدعم يتبع الترخيص: المواقع التي يغطيها المفتاح النشط مؤهلة.
إذا كنت تمتلك ترخيصًا غير محدود، يمكنك تفعيل وضع الشبكة من الموقع الرئيسي وإرسال هذا المفتاح الواحد إلى جميع المواقع الفرعية دفعة واحدة (مع متابعة التقدم مباشرةً). سترث هذه المواقع الفرعية الإعدادات والدعم المُدارين بالترخيص تلقائيًا.
خطافات
الفلاتر
pb_gfsf_payload
قم بتصفية البيانات المراد إرسالها إلى Salesforce. يتم تنفيذ هذه العملية مع كل عملية إنشاء وتحديث في جميع مصادر البيانات، مع تضمين السياق الكامل للمزامنة (إعدادات مصدر البيانات، المدخلات، النماذج، الكائنات المستهدفة، الحسابات، وطريقة الاتصال). يتم تشغيلها بعد تطبيق خريطة الحقول ومعرّف المالك، ولكن قبل استدعاء واجهة برمجة التطبيقات (API). وتُعامل المصفوفة الفارغة المُعادة بنفس معاملة مصدر البيانات الذي لا يحتوي على حقول مُعينة.
حدود:
$payload(مصفوفة): المصفوفة الترابطية لاسم حقل Salesforce → القيمة التي سيتم إرسالها.$context(مصفوفة)سياق المزامنة. المفاتيح:feed,entry,form,object,account_id,method(oauthللاتصال عبر بروتوكول OAuth،,org_id(لتحويل الويب إلى عميل محتمل/حالة).
مثال: قم بتعيين مصدر عميل محتمل افتراضي لكل عميل محتمل.
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
if ( $context['object'] === 'Lead' && ! isset( $payload['LeadSource'] ) ) {
$payload['LeadSource'] = 'WordPress Form';
}
return $payload;
}, 10, 2 );مثال: توجيه مصادر مختلفة إلى أنواع سجلات مختلفة.
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
$feed_id = (int) ( $context['feed']['id'] ?? 0 );
if ( $feed_id === 12 ) {
$payload['RecordTypeId'] = '0125g000000XYZAAA';
}
return $payload;
}, 10, 2 );مثال: إعادة كتابة LeadSource بناءً على معرف النموذج.
add_filter( 'pb_gfsf_payload', function ( $payload, $context ) {
$form_id = (int) ( $context['form']['id'] ?? 0 );
$payload['LeadSource'] = match ( $form_id ) {
7 => 'Webinar Signup',
12 => 'Demo Request',
default => 'Website',
};
return $payload;
}, 10, 2 );pb_gfsf_multi_value_delimiter
غيّر الفاصل المستخدم لربط اختيارات حقول الاختيار المتعدد أو مربعات الاختيار. القيمة الافتراضية هي الفاصلة المنقوطة التي تتطلبها قوائم الاختيار المتعدد في Salesforce. يمكنك تجاوز هذه القيمة عندما يتم ربط أحد هذه الحقول بحقل نص عادي يتطلب قيمة مختلفة.
حدود:
$delimiter(خيط)فاصل،,;افتراضياً.$sf_field(خيط): يتم كتابة اسم واجهة برمجة تطبيقات حقل Salesforce.$raw_value(خيط): معرف حقل Gravity Forms المعين أو علامة الدمج.$feed(مصفوفة): كائن تغذية Gravity Forms.
add_filter( 'pb_gfsf_multi_value_delimiter', function ( $delimiter, $sf_field ) {
return 'Interests__c' === $sf_field ? ', ' : $delimiter;
}, 10, 2 );pb_gfsf_allowed_salesforce_domains
يقوم الملحق بفحص كل عنوان URL لتسجيل الدخول، وعنوان URL للمثيل، وعنوان URL لتحويل الويب إلى عميل محتمل، ومقارنتها بنطاقات Salesforce الخاصة قبل إرسال بيانات الاعتماد أو بيانات الإدخال إليها. القائمة الافتراضية هي salesforce.com, force.com, cloudforce.com و salesforce.mil, ، مطابقة على حدود النقطة. أضف إليها إذا كان الوصول إلى مؤسستك يتم عبر نطاق Salesforce مخصص.
حدود:
$domains(مصفوفة): اللواحق القابلة للتسجيل، والتي تتم مطابقتها على حدود النقطة.$url(خيط): عنوان URL الذي يتم فحصه.
add_filter( 'pb_gfsf_allowed_salesforce_domains', function ( $domains ) {
$domains[] = 'example-crm.com';
return $domains;
} );pb_gfsf_http_timeout
قم بتغيير مهلة الانتظار، بالثواني، المطبقة على كل طلب إلى Salesforce. القيمة الافتراضية هي 20 ثانية. قد تحتاج المواقع ذات الشبكات البطيئة أو التي ترسل ملفات كبيرة إلى مهلة أطول؛ أي قيمة أقل من ثانية أو ثانيتين ستؤدي إلى تعطل التشغيل الطبيعي.
add_filter( 'pb_gfsf_http_timeout', function () {
return 45;
} );







