جمع الإجابات
الموقع على Solta ملفات فقط، دون خادم لك وراءه، لذا لا يجد النموذج الذي فيه عادةً مكانًا يرسل إليه ما يكتبه الناس. وSolta يحفظ لك الإجابات.
النموذج
أرسل إلى /_solta/forms/ متبوعًا باسم تختاره، على عنوان موقعك نفسه. واستخدم اسمًا ثابتًا في الشيفرة، ليتمكن Solta من العثور عليه. عند حفظ الموقع، يعثر Solta على النموذج ويبدأ الاستقبال من اللحظة الأولى: تصل الإجابات إلى تبويب الإجابات في الموقع. ويعرض إعدادات الموقع ← النماذج كل نموذج ترسل إليه شيفرة الموقع، ولكل منها مفتاح لإيقافه، ومعه أرسل لي كل إجابة بالبريد إن أردت أن تصلك الإجابات فور وصولها. والنموذج الذي توقفه يبقى متوقفًا. أما الموقع المنشور دون حساب فلا يحفظ شيئًا حتى يسجّل أحد الدخول ليحتفظ به، لأنه لا أحد يستطيع قراءة الإجابات بعد.
<form method="post" action="/_solta/forms/signup">
<input name="email" type="email" required />
<textarea name="note"></textarea>
<button>Send</button>
</form>هذا نموذج عادي، وهو يعمل: يرى الزائر صفحة قصيرة تقول إن إجابته أُرسلت، أو لماذا لم تُرسل. وإن كنت تفضّل إرسال JSON، فأرسل JSON إلى العنوان نفسه: يصبح كل حقل عمودًا.
ما يجب أن تقوله الصفحة بعد الإرسال
قل للشخص بوضوح ما حدث. الرمز 2xx يعني أن الإجابة حُفظت: قل إنها أُرسلت ومن سيراها. وعندما لا تُحفظ، يقول JSON السبب، ويمكن للصفحة أن تحتفظ بالإجابة على جهاز الزائر وتقول أي سبب هو:
409معnot_collecting: هذه الصفحة لا تستقبل إجابات الآن (النموذج متوقف، أو لم يسجّل أحد الدخول بعد ليحتفظ بالموقع).429معmonthly_limit: بلغت هذه الصفحة حدها من الإجابات لهذا الشهر. في خطط Free وPlus يحدث ذلك بعد 100 إجابة فوق حد الشهر، لأن هذه الـ100 ما زالت تُستقبل.- لا رمز إطلاقًا، لأن الطلب فشل: لا يوجد اتصال.
- أي شيء آخر: اعرض
errorالموجود في JSON ودع الشخص يحاول من جديد.
لماذا عنوانك أنت
الإجراء مسار، لا عنوان URL في مكان آخر. وهذا مقصود: النموذج الذي يرسل إلى مصدر آخر يقوم بطلب بين مصادر مختلفة، إما أن يحظره المتصفح أو يجبرك على مصارعته، والموقع على Solta ليس وراءه خادم لك تصارعه به. موقعك يرسل إلى موقعك.
قراءة الإجابات
افتح الموقع وستجد تبويب الإجابات بجانب التعليقات والنسخ، الأحدث أولًا، ومعه زر CSV ينزّلها في جدول بيانات. وأنت وحدك من يراه. في خطط Free وPlus تصلك رسالة واحدة يوميًا بما وصل. وفي خطط Pro وTeam تصلك كل إجابة بالبريد فور وصولها، بما تقوله: أول 5 في كل ساعة واحدة تلو الأخرى، وبقية تلك الساعة معًا في رأس الساعة. أوقف أرسل لي كل إجابة بالبريد لنموذج ما، فتذهب إجاباته إلى الرسالة اليومية بدلًا من ذلك. وفي أسفل كل هذه الرسائل إيقاف هذه الرسائل لهذا الموقع، ويعيد إعدادات الموقع ← النماذج تشغيلها. وفي مساحة العمل، يختار كل مالك ومشرف لنفسه.
القيمة التي تبدأ بـ= أو + أو - أو @ تُعدّ صيغة في جدول البيانات، والإجابات تأتي من غرباء. لذا نضيف قبلها حرفًا كي يبقى النص مقروءًا ولا تُنفَّذ الصيغة.
الحدود
تستقبل نماذج الحساب 100 إجابة شهريًا في خطة Free، و500 في خطة Plus، عبر كل مواقعه. وفي خطط Free وPlus تُحفظ الإجابات 30 يومًا، وتصلك رسالة واحدة يوميًا بما وصل. ولا تستطيع النماذج في هذه الخطط استقبال كلمات المرور ولا أرقام البطاقات ولا الرموز. وبعد إجابات الشهر، تُحفظ حتى 100 إجابة أخرى بالطريقة نفسها وتبقى مقفلة: يقول تبويب الإجابات والرسالة اليومية كم عددها، ويمكن قراءتها في خطط Pro وTeam. أما Pro فتستقبل 1,000 إجابة في الشهر، وTeam 10,000، وترسل كل منهما إليك كل إجابة بالبريد ما لم توقف ذلك، وتحتفظ بها المدة التي تختارها. وفوق ذلك: 60 حقلًا، و8 KB للحقل الواحد، و60 إجابة في الساعة من العنوان نفسه، وهذا أكثر بكثير مما يملؤه إنسان، وأقل بكثير مما يريده سكربت.
في Pro وTeam، تُحفظ الإجابات سنة افتراضيًا، ثم تُحذف. وأنت تختار لكل نموذج، في تبويب الإجابات: 30 يومًا، أو سنة، أو إلى أن تحذفها. وهي لك، وتستطيع تصديرها في أي وقت.
Slack وGoogle Sheets
في Pro وTeam، يستطيع إعدادات الموقع ← النماذج أيضًا أن يرسل كل إجابة إلى قناة Slack أو جدول Google Sheets، بكل ما فيها، لكل نماذج ذلك الموقع. ومن يستطيع قراءة القناة أو الجدول يستطيع قراءة ما كتبه الناس، لذا اختر قناة أو جدولًا يحق لك مشاركته. ويُختبر كل منهما عند ربطه، وتقول الإعدادات متى وصلت آخر إجابة، أو لماذا لم تصل.
Slack: الصق رابط Incoming Webhook (في Slack: Apps ← Incoming Webhooks ← Add to Slack)، أو اختر قناة ربطتها من قبل في الإعدادات ← المفاتيح والاتصالات. ينشر Solta سطرًا واحدًا هناك أولًا، للتأكد من أنه يصل.
Google Sheets: سكربت قصير تضيفه إلى الجدول هو الذي يستقبل الصفوف، فلا يسجّل Solta الدخول إلى حسابك في Google أبدًا، ولا يرى أي شيء آخر في Drive.
- في إعدادات الموقع ← النماذج، اختر جدول Google Sheets وانسخ السكربت. فيه الرمز السري الخاص بهذا الاتصال.
- افتح الجدول، ثم Extensions ← Apps Script. استبدل ما فيه بالسكربت، واحفظه.
- اختر Deploy ← New deployment. في Type اختر Web app، وفي Execute as اختر Me، وفي Who has access اختر Anyone. وامنح الإذن عندما يطلبه Google.
- الصق في Solta عنوان Web app، المنتهي بـ
/exec، واربطه.
يتحقق Solta من أن السكربت يستجيب، دون أن يكتب أي صف. وبعدها تضيف كل إجابة صفًا في ورقة تحمل اسم نموذجها، فيها عمود لكل حقل، وتكون موقّعة كي يرفض السكربت أي شيء لم يأتِ من Solta. والقيمة التي قد تكون صيغة تُحفظ نصًا.
رد تلقائي
في Pro وTeam، يستطيع النموذج أن يرسل ردًا قصيرًا تكتبه أنت إلى من يملؤه، ليعرف أن إجابته وصلت. ولا يُرسل إلا عندما تحتوي الإجابة على عنوان بريد واحد بالضبط، في حقل مخصص لبريد الشخص نفسه، ومرة واحدة يوميًا على الأكثر لكل عنوان من كل موقع. الموضوع موضوعك والكلمات كلماتك، بنص عادي، دون روابط إلا عنوان موقعك نفسه. ونضيف نحن اسم الموقع وعنوانه، وطريقة يوقف بها الشخص هذه الرسائل أو يبلّغ عنها. ولا يُضاف إليه شيء مما كتبه. ويمكن أن تصل الردود عليه إلى بريدك، إن أردت.
يُرسل من عنوان Solta المخصص للرسائل التي يتسبب فيها زائر، ولا يُرسل أبدًا باسم الموقع. ويرسل الموقع 50 ردًا في الساعة و300 رد في اليوم على الأكثر، والعنوان الذي ارتدت رسالته، أو صنّف بريدنا رسائل مزعجة، أو طلب ألا تصله رسائل أخرى، لا يُرسل إليه رد آخر أبدًا. وإذا صنّف الناس رسائل موقع ما رسائل مزعجة، تتوقف ردوده مؤقتًا ونبلغك بذلك.
الاشتراكات في النشرة البريدية
في Pro وTeam، يستطيع الموقع أن يحتفظ بقائمة بريدية. ويجهّزها إعدادات الموقع ← النشرة البريدية في ثلاث خطوات. فعّل الاشتراكات في النشرة البريدية. ثم أضف نموذج اشتراك، عبر اطلب من الذكاء الاصطناعي إضافته (رسالة تلصقها في المحادثة التي تبني فيها الموقع) أو عبر HTML. ثم تحقق من وجوده: يقرأ ذلك النسخة المنشورة بحثًا عن نموذج يرسل إلى /_solta/subscribe. وإذا كان في النسخة المنشورة نموذج كهذا والاشتراكات متوقفة، تقول الشاشة ذلك، ويقوله الموصّل أيضًا حين يحفظ نموذجًا. وإن أضفته يدويًا، فيمكن وضع نموذج كهذا في أي مكان من الموقع:
<form method="post" action="/_solta/subscribe"> <input type="email" name="email" required> <button>Subscribe</button> </form>
يعمل دون سكربت. ومع سكربت، أرسل { email } بصيغة JSON إلى العنوان نفسه واعرض «تحقق من بريدك». نرسل إلى كل عنوان رابطًا للتأكيد، ولا ينضم إلى القائمة إلا من يستخدمه، فالعنوان الذي كتبه شخص آخر تصله منا رسالة واحدة ثم لا شيء بعدها. والعنوان نفسه إذا اشترك مرتين تصله رسالة واحدة.
القائمة لك لتنزّلها في جدول بيانات (CSV)، بالعناوين المؤكدة فقط، ولكل منها رابط إلغاء اشتراك خاص به تضعه فيما ترسله. واستخدام هذا الرابط يحذف العنوان. نحن لا نرسل نشرتك: أنت من يرسلها، من أي خدمة بريد تستخدمها.
وكي تبقى هذه الرسائل بعيدة عن مجلدات الرسائل المزعجة، فالعنوان الذي ترتد رسائله أو يصنّف إحداها رسالة مزعجة لا تُرسل إليه رسالة أخرى أبدًا، من أي موقع. وإذا صنّف عدة أشخاص رسائل التأكيد من موقع ما رسائل مزعجة، نوقف الاشتراكات فيه مؤقتًا ونراسلك. وهذا يعني عادةً أن برنامجًا آليًا يكتب العناوين.

