סקילים — חיבור, ידע ומתודולוגיה
שלושה סקילים שאינם בונים ישות ולא מציבים אלמנט: אחד פותח את הדלת, אחד מחזיק את העובדות, ואחד מחליט מה בהיקף. בסוף העמוד — מתכון סקר שביעות הרצון, שעבר ב‑1.5.0 לתוך myb-p-public-forms.
myb-p-getting-started
Section titled “myb-p-getting-started”מאפס עד חיבור מוכח: פתיחת חשבון ← התחברות ראשונה ← חיבור התוסף ← הוכחה ← המשימה הראשונה. שני קהלים קוראים אותו — אדם שעוקב אחרי התמונות, וסוכן שמבצע את הצעדים; קובצי הייחוס נושאים את צילומי המסך.
הצעדים המפורטים מכוסים בהתקנה בכל סוכן. מה שהסקיל מוסיף הוא המשמעת.
שתי דרכי החיבור
Section titled “שתי דרכי החיבור”| Application Id + API Key | התחברות משתמש (OAuth 2.1) | |
|---|---|---|
| הלקוח שולח | X-Parse-Application-Id + X-Parse-API-Key |
Authorization: Bearer <token> |
| הזהות בשרת | משתמש‑על בשם Master |
משתמש ה‑CRM שהתחבר |
| מודל הרשאות | אין — עוקף כל הרשאת טבלה | התפקיד שלו בתוספת הרשאות ה‑MCP האישיות |
| זמין ב | כל לקוח | דפדפן בלבד — לקוחות שולחן עבודה/CLI חסומים כרגע |
| ביטול | Revoke לכל מפתח בנפרד |
ניקוי הרשאות ה‑MCP של המשתמש |
מצב ההתחברות הוא מודל האבטחה הטוב יותר: אין מפתח שידלוף, וביטול הגישה הוא הסרת הרשאה. הוא פשוט לא זמין בכל מקום.
הוכחת שלוש הקריאות
Section titled “הוכחת שלוש הקריאות”initialize ורשימת הכלים מצליחות גם בלי אימות; רק קריאת כלי אמיתית מוכיחה.
| # | הקריאה | תשובה תקינה | מה זה מוכיח |
|---|---|---|---|
| 1 | Usage-Guide |
טקסט ההוראות של השרת | התעבורה עובדת, ומול שרת MyBusiness |
| 2 | Get-Current-User |
המשתמש שהתחבר · או הזהות הסינתטית username: "Master" (מצב מפתח) |
האימות עובד — ובאיזה מצב |
| 3 | Get-Schema (בלי פרמטרים) |
אובייקט שמפתחותיו הם שמות הטבלאות | הגעתם לבסיס נתונים אמיתי |
ואז הקריאו למשתמש 3–4 שמות טבלה או שדה שהוא מזהה, ובקשו אישור שזה בסיס הנתונים הנכון, לפני שאתם כותבים.
מחובר לבסיס הנתונים <שם/סאב‑דומיין> בזהות <משתמש או
Master>. יש בו <n> טבלאות, כולל <3–4 שמות מזוהים>. זו המערכת הנכונה?
המשימה הראשונה — טבלת הניתוב
Section titled “המשימה הראשונה — טבלת הניתוב”אחרי ההוכחה, הסקיל אומר מה יש במערכת (ספירת מודולים וטבלאות מ‑Get-Schema/Count-Data) ומנתב:
| המשתמש רוצה… | הסקיל |
|---|---|
| “האם המערכת יודעת X?” / סקירת דרישות | myb-p-kb ← myb-p-fit-gap |
| מודול או ישות חדשה מקצה לקצה | myb-p-create-entity |
| דף כרטיס, רשימה, דשבורד, דוח | סקילי הממשק · דוחות |
| אוטומציה, התראות, יעדי זמן | סקילי האוטומציה |
| ייבוא נתונים או טופס באתר | נתונים ואינטגרציות |
| משתמשים, תפקידים, הרשאות | myb-p-users-roles-permissions |
ארבעת כללי הברזל
Section titled “ארבעת כללי הברזל”- API Key לעולם לא בקובץ משותף או מנוהל‑גיט — לא ב‑repository, לא ב‑
.mcp.jsonשל פרויקט, לא בצ’אט. קונפיגורציית התוסף שומרת אותו בכספת של מערכת ההפעלה. - לעולם לא לבקש מהמשתמש את סיסמת החשבון שלו. מצב ההתחברות לוקח אותו לדף הרשמי; מצב המפתח לא צריך סיסמה.
- חיבור אחד = בסיס נתונים אחד. אין כלי חוצה‑מערכות; אחרי כל החלפת חיבור,
Get-Current-User+Get-Schema. - מוכיחים לפני שכותבים.
מגבלות ידועות
Section titled “מגבלות ידועות”- התחברות משתמש חסומה בלקוחות שולחן עבודה/CLI — ה‑callback המקומי נדחה לפני שהוא מגיע לשרת.
- הרשאות MCP ניתנות לכל משתמש בנפרד, לא לתפקיד — עשרה משתמשים = עשר הענקות. ארבע תיבות בלשונית (Read / Create / Update / Edit pages and schema), זמינות רק במערכת עם חבילת מנוי.
- הסקיל מקים ומוכיח את החיבור, לא מאבחן את ה‑CRM.
Permission denied on getהיא שאלת הרשאות.
myb-p-kb
Section titled “myb-p-kb”בסיס הידע של המוצר. הסקיל הוא ספרן: מנתב לקובץ הייחוס הנכון מתוך יותר מ‑40 מסמכי מוצר, ואומר לסוכן לקרוא רק את מה שצריך.
myb-p-kb/references/├── 00-overview/ סקירת מוצר · ארכיטקטורה · מילון מונחים · סביבות וגישה├── 10-modules/ CRM Core · MyBooks · MyCampaigns · MyChat · MyCollege · TimeSheet · MyInbox├── 20-data-model/ סקירה · טבלאות ליבה · טבלאות מודולים · טבלאות מערכת ולוגים · טיפוסים ומוסכמות├── 30-customization/ דפים · טבלאות תצוגה · דשבורדים ודוחות · טריגרים · חוקי טופס ·│ הרשאות · מינוח · מסמכים · דפוסי שדות · Blueprints · פורטלים├── 40-integrations-api/ Parse REST · קטלוג כלי MCP · getlead/web2table · פונקציות ענן ·│ ערוצי הודעות · קבצים ואחסון├── 50-ui-walkthrough/ סיור בממשק הריצה ובממשק הבנייה — עם צילומי מסך├── 60-implementation-methodology/ מחזור יישום · אפיון · fit-gap · אפיון טכני · תוכנית · אומדנים├── 80-capability-matrix/ מטריצת יכולות + מגבלות ידועות└── 90-appendices/ קטלוג מדריכי התמיכה · שאלות נפוצותכל קובץ נפתח בשורת Purpose ומסתיים ב‑Limitations & gotchas.
חמשת כללי השימוש
Section titled “חמשת כללי השימוש”- מערכת חיה גוברת על מסמכים. לפני שמבטיחים התנהגות על מערכת ספציפית, אמתו בקריאות MCP לקריאה בלבד (
Get-Schema,Get-Triggers,Get-Site-Pages). סכימות מתפצלות בין לקוחות. - כל דבר שמסומן ⚠️ UNVERIFIED חייב אימות.
- תשובות יכולת משתמשות בסולם:
Native/Config/Custom-JS/Custom-Server/External/Gap. - טענות שמצטטות מספרי קריאות שירות או “ב‑QA” פגות תוקף. אמתו מחדש בזמן השימוש.
- תיעוד שגוי — אומרים במפורש בתשובה ומסמנים למתחזקים. לא עוקפים בשקט.
מה הסקיל מוסיף לתשובת יכולת
Section titled “מה הסקיל מוסיף לתשובת יכולת”- מטריצת יכולות שכל שורה בה מצביעה למנגנון ספציפי.
- חובה לבדוק את
02-known-limitations.mdלפני “כן”. - שורה חסרה מפעילה סדר חיפוש: Blueprints של פתרונות ← מסמך התחום ← אימות חי בסביבת ניסיון.
- סיווג לסולם, כלומר גם מי משלם:
Nativeבחינם,Custom-Serverכרטיס פיתוח. - מקור לכל טענה: שורה במטריצה, blueprint, או אימות חי.
myb-p-fit-gap
Section titled “myb-p-fit-gap”מסווג כל דרישה לשלב הזול ביותר בסולם שבאמת עובד, עם ראיות, ומייצר החלטת היקף שהלקוח יכול לחתום עליה. השיטה: סולם היכולות + fit-to-standard first (adopt > adapt > build), עם הכרעות מנוסחות לפערים ו‑workbook שמסמך האפיון הטכני צורך.
סדר החיפוש — מחייב
Section titled “סדר החיפוש — מחייב”לעולם לא מסווגים מהזיכרון.
- מטריצת היכולות ← ואז תמיד מגבלות ידועות, לפני כל “כן”. שורה חסרה? ← Blueprints של פתרונות ← מסמך התחום ← אימות חי בסביבת ניסיון.
- עוגני אומדן ממדריך ההערכות.
- מסמך השיטה + ה‑playbook של הסיווג בסקיל.
| המחלקה | המשמעות | הבעלים |
|---|---|---|
| Native | עובד מהקופסה, או הגדרה | — |
| Config | ללא קוד: שדות, דפים, תצוגות, דשבורדים, דוחות, טריגרים, חוקי טופס, תפקידים, מינוח, תבניות | מיישם / AI |
| Custom-JS | JS/CSS ברמת הדף | מיישם + סקירת מפתח |
| Custom-Server | פונקציית שרת (כרטיס פיתוח) | מפתח |
| External | Make/Zapier/שירות חיצוני מחזיק את זה | מפתח/מיישם + השירות |
| Gap | לא פתיר באופן מקובל היום | — |
ולצדן שתי הכרעות שיכולות לפתור שורה במקום מחלקה:
- Process-change — השינוי בתהליך, לא במערכת. דורש הסכמה מתועדת של הלקוח.
- Defer — חדר המתנה, עם תאריך חזרה.
כל צעד למטה בסולם דורש שורת נימוק כתובה.
מה חייב להופיע בכל שורה
Section titled “מה חייב להופיע בכל שורה”| הפריט | מה זה |
|---|---|
| סקיצת פתרון | המנגנון בשמו: “טריגר מתוזמן על Cases.NextStepDate +6 שעות ← מייל ל‑OwnerId”. אי אפשר לכתוב את השורה? לא סיווגתם. |
| בדיקת מגבלה | מול המגבלות הידועות: שרשרות טריגרים ≤3, כותבים שדורסים, קיבוץ מצטבר על String, אין דה‑דופליקציה ילידית |
| מאמץ | S/M/L/XL לפי העוגנים |
| בעלים | מי מבצע |
| דגל ייעוץ מפתח | לכל שורת Custom-Server / External — ייעוץ של חמש דקות מונע שבוע שנמכר בטעות |
החלטת ההיקף
Section titled “החלטת ההיקף”| עדיפות × מאמץ | ברירת המחדל |
|---|---|
| חובה + S/M | בהיקף |
| חובה + L/XL | לאתגר את הדרישה קודם — האם blueprint או וריאנט רזה עונים על הצורך? |
| רצוי/אפשרי + L/XL | שלב 2, עם תאריך חזרה |
לכל Gap אחת משלוש הכרעות כתובות: עוקף (כולל עלות החיכוך) / דחייה / הסרה מההיקף (עם יידוע הלקוח). מהשורות נגזרת רמת המורכבות (Low/Medium/High/Enterprise = השלב העמוק ביותר שנעשה בו שימוש), שמכתיבה את שאר ההתקשרות.
עבודת פיתוח בתשלום דורשת אישור מפורש של הגורם המאשר אצל הלקוח, פריט‑פריט.
דוח HTML ממותג בעברית + fit-gap.csv, ההעברה המכונתית לסקיל האפיון הטכני.
חמשת כללי הברזל
Section titled “חמשת כללי הברזל”- מחפשים, לא מנחשים. כל סיווג מצטט שורת מטריצה, blueprint, או אימות חי. תשובה “מהניסיון” היא באג.
- טענות שמצטטות כרטיסים פתוחים או “ב‑QA” פגות; לאמת מחדש.
- יכולת או מגבלה שהמטריצה לא מכירה — לציין בדוח וגם לסמן למתחזקים.
- “Config בתיאוריה, Custom בפועל”: 14 טריגרים שלובים גרועים מפונקציית שרת אחת. שופטים לפי תחזוקתיות.
- הדוח בעברית; סקיצות הפתרון יכולות לשאת שמות מנגנון באנגלית.
סקר שביעות רצון — myb-p-public-forms → csat/
Section titled “סקר שביעות רצון”עד 1.5.0 סקיל נפרד, myb-p-csat-survey; מאז התיקייה csat/ בתוך myb-p-public-forms. המתכון זהה, ונוסף לו וריאנט נייטיבי שהקישור שלו לא נושא נתון אישי.
הלולאה: פנייה נסגרת ← הלקוח מקבל מייל עם קישור לכל דירוג ← לחיצה אחת רושמת את התשובה על הפנייה עצמה ← דירוג שלילי הופך לעבודה ← הציון מגיע לדוח.
עובד על כל אובייקט עסקי עם אירוע סגירה ואיש קשר נגיש: Cases הוא הנפוץ, ו‑Sales, Tasks או ישות מותאמת עובדים זהה.
שני הכללים שקובעים אם זה ישרוד
Section titled “שני הכללים שקובעים אם זה ישרוד”למה הארכיטקטורה נראית כך
Section titled “למה הארכיטקטורה נראית כך”המשיב אנונימי, ואנונימי אף פעם לא כותב לפנייה עצמה — רק לשורת קליטה. לכן לשני הווריאנטים אותן ארבע שכבות:
הודעה · קישור לכל דירוג → מזהה הפנייה + הדירוגדף ציבורי → רושם את הדירוג בטעינה → שורה בטבלת הקליטהטריגר היטל → מעתיק דירוג / הערה / תאריך אל הפנייהטריגר תגובה → דירוג שלילי → משימה או התראה לאחראי| וריאנט נייטיבי (ברירת המחדל לבנייה חדשה) | וריאנט web2table | |
|---|---|---|
| הקישור | …/<page>?<RatingField>=<n>&c={{{objectId}}} | …/<page>?c={{{objectId}}}&p={{{PhoneNumber}}}&r=<n> |
| נתון אישי בקישור | אין | הטלפון של הלקוח |
| איך שורת הקליטה נכתבת | Database form נייטיבי עם reCAPTCHA בלתי נראה, שהסקריפט שולח פעם אחת בטעינה ומסרב לשלוח שוב בטעינה חוזרת | קריאת web2table בטעינה |
| CLP של טבלת הקליטה | create לתפקידי הצוות ול‑"*", ושום דבר ציבורי מעבר לזה | נשאר סגור |
| דגל ב‑Config | אין | AcceptWebToTable |
| תופעות לוואי בסכימה | אין | 7 עמודות שמוזרקות לטבלת הקליטה |
| סיכון | גולש שגוגל מסמן רואה אתגר CAPTCHA לפני שהתשובה נשמרת | אין בצד הגולש |
בחרו בנייטיבי, אלא אם הלקוח כבר מריץ את גרסת web2table — שומרים אותה, לא בונים מחדש סקר שעובד — או חייב אפס תלות בצד הגולש. בשני הווריאנטים ההערה נרשמת כשורת קליטה שנייה, כי הקליטה נשארת create-only.
דירוג שיושב על האובייקט העסקי נוסע יחד עם השדות שהדוחות מקבצים לפיהם, ולכן כל דוח קיים עובד מיד (לפי נציג, לפי מוצר, לפי תקופה). טבלת הקליטה נשארת היומן הגולמי.
ההחלטות שסוגרים לפני שבונים
Section titled “ההחלטות שסוגרים לפני שבונים”| ההחלטה | למה זה משנה |
|---|---|
| אילו סטטוסי סגירה מצדיקים סקר? | המלכודת. “נסגר — אין מענה” ו“הועבר למחלקה אחרת” הם סטטוסי סגירה שאסור שישלחו. בקשו את הרשימה; אל תניחו “כל הסגורים” |
| כמה רמות? | 3 (טוב/סביר/רע) נותן התפלגות שימושית; 2 חד יותר להחלטה. יותר משאלה אחת מוריד את שיעור המענה |
| הניסוח המדויק | עברית מול לקוח, מהבעלים של התהליך, בכתב |
| תזמון | מיד בסגירה (ברירת מחדל) או בהשהיה דרך טריגר מתוזמן |
| תקרה ללקוח? | בלי תקרה, לקוח כבד נסקר על כל פנייה |
| מה קורה בדירוג שלילי | משימה נכנסת לתור עבודה; התראה לא. בוחרים במכוון |
| הווריאנט — נייטיבי או web2table | הטבלה למעלה. ב‑web2table הטלפון בקישור הוא החלטת פרטיות ששייכת ללקוח, לא לכם |
| הערוץ — מייל, SMS, WhatsApp | אותו קישור עובד בכולם; הקישור הנייטיבי לא נושא נתון אישי, ולכן קל יותר לאשר אותו ב‑SMS |
שאלת הטלפון (וריאנט web2table בלבד): web2table דורש phone, ולכן הקישור נושא את מספר הטלפון של הלקוח לתיבת הדואר של אותו לקוח. הוא גם נוחת בלוגי שרת, ומי שמחזיק בקישור יכול להגיש דירוג. החשיפה קטנה (אין קריאה, אין עדכון, רק הוספת דירוג) אבל אמיתית; הציגו אותה. הלקוח מסרב? הווריאנט הנייטיבי — הקישור נושא רק את מזהה הפנייה ואת הדירוג.
קוראים את המערכת לפני שכותבים
Section titled “קוראים את המערכת לפני שכותבים”Get-Schema(<הטבלה העסקית>) ← Pointer לאיש הקשר, שדה האחראי, שדה הסטטוסGet-Data(<טבלת הסטטוסים>) ← סטטוסי הסגירה וה-objectIds, לשאול בשמות אמיתייםGet-Schema("SatisfactionSurveys") ← ייתכן שכבר קיימת במערכת ותיקה (במערכת חדשה אינה קיימת)Get-Triggers(<הטבלה העסקית>) ← לרוב כבר יש טריגר מייל סגירה: כבוי, או על הסטטוסים הלא נכוניםGet-Site-Pages ← דף ציבורי קיים מוכיח שהמסלול עובד כאן — וזה הדבר הכי טוב לשכפלדווחו מה כבר קיים לפני שאתם מציעים לבנות.
טבלת הקליטה
Section titled “טבלת הקליטה”השתמשו ב‑SatisfactionSurveys אם קיימת; אחרת בנו במינימום:
| השדה | הטיפוס | למה |
|---|---|---|
CaseId |
Pointer ← הטבלה העסקית | הרשומה המדורגת; גם מפתח הדה‑דופליקציה |
AccountId |
Pointer ← Accounts |
פילוח לפי לקוח |
OverallRating |
Number | לא String — אי אפשר לחשב ממוצע של טקסט |
AdditionalComments |
String | המילה החופשית, כשנכתבת |
OwnerId |
Pointer ← _User |
מועתק מהרשומה — זה מה שמאפשר CSAT לכל נציג |
RespondedAt |
Date | חשבון שיעור המענה |
הרשאות. בנייטיבי: create לתפקידי הצוות ול‑"*"; find/get/update לצוות; delete ל‑Admin; addField: {} — ושום דבר ציבורי מעבר ל‑create. ב‑web2table: השאירו את ה‑CLP סגור — טבלה שנוצרת ב‑Create-Table נולדת עם find/get ל‑requiresAuthentication ו‑create/update/delete ל‑role:Admin בלבד, ו‑web2table כותב בכל מקרה. בשני המקרים קראו חזרה ב‑Get-Table-Permissions ובדקו שלא פתחתם משהו בטעות בזמן דיבוג.
השדות על האובייקט העסקי
Section titled “השדות על האובייקט העסקי”CsatRating (Number) · CsatComment (String) · CsatAt (Date) — מה שטריגר ההיטל כותב וכל דוח קורא. בנוסף, סקשן לקריאה בלבד על הכרטיס.
טריגר השליחה
Section titled “טריגר השליחה”Set-Trigger על הטבלה העסקית: events: ["update"], onSetFields: ["<שדה הסטטוס>"], קריטריונים רק לסטטוסים שסוכמו, oneachupdate: false, ופעולת email שמפנה לתבנית.
oneachupdate: false פירושו גם שפנייה שנפתחה מחדש ונסגרה שוב לא מייצרת סקר שני.
טריגר ההיטל
Section titled “טריגר ההיטל”על טבלת הקליטה, events: ["create"], פעולת update-object:
{ "targetClass": "Cases", "connection": "source.CaseId", "fieldsValue": [ { "field": "CsatRating", "type": "dynamic", "value": "OverallRating" }, { "field": "CsatComment", "type": "dynamic", "value": "AdditionalComments" }, { "field": "CsatAt", "type": "dynamic", "value": "updatedAt" } ]}source.<Pointer> = “הרשומה שהשורה הזו מצביעה אליה”. הדקדוק המלא: אוטומציה.
טריגר התגובה — ומלכודת הסדר
Section titled “טריגר התגובה — ומלכודת הסדר”על טבלת הקליטה, קריטריון OverallRating <= <סף שלילי> ← create-object (משימה לבעלים של התהליך, מקושרת לפנייה וללקוח) או notification.
הדוחות
Section titled “הדוחות”שישה מפרטים מוכנים בסקיל: פירוט · ממוצע לנציג · מגמה חודשית × נציג · התפלגות דירוגים · תור העבודה של הדירוגים השליליים · שיעור מענה. בנו את שניים הראשונים, הראו לבעלים של התהליך, ותנו לתגובה שלו לעצב את השאר.
קבלה — והשליליים הם העיקר
Section titled “קבלה — והשליליים הם העיקר”11 בדיקות, חמש מהן שליליות:
- דירוג חיובי חייב לא לפתוח משימה.
- סטטוס סגירה שאינו מזכה חייב לשלוח כלום.
- קריאה אנונימית של טבלת הקליטה — נדחית.
- עדכון אנונימי של שורת קליטה — נדחה.
- כתיבה אנונימית לאובייקט העסקי — נדחית.
דווחו את הספירה בכנות (n/11), כולל אילו בדיקות לא הצלחתם להריץ.
מלכודות
Section titled “מלכודות”- שתי שורות לכל מענה זה נכון, לא באג — האובייקט העסקי מחזיק את התשובה, טבלת הקליטה היא היומן. כתבו את זה, אחרת מישהו “יתקן”.
- אי אפשר לשנות סוג של פעולה במקום.
Set-Trigger-Actionמדווח הצלחה ומשאיר את הישנה;deleteActionאינו אמין דרך הפרוקסי. להחלפת משימה בהתראה: טריגר חדש נקי, והישן כבוי. - דירוג שנשמר כ‑String הורג את חישוב הממוצע, ואף אחד לא מבחין עד שהדוח נדרש.
- קריטריון
Numberבטריגר צריךT: "Number"; ערך כמחרוזת לעולם לא יתאים. - שמירת ה‑JS של הדף מחזירה 403? ה‑WAF של הפלטפורמה דחה את התוכן, לא את הקוד שלכם: חלק מדפוסי ה‑URL וה‑regex ב‑JS של דף חסומים (גופי data‑URI עוברים בנקודת ה‑MCP ונחסמים ב‑REST). העלו את הסקריפט ב‑
Upload-Public-Fileוטענו אותו מ‑loader בן שתי שורות. אל תנסו לנצח את המסנן בשכתוב הקוד. - וריאנט נייטיבי: שליחה לפני שה‑reCAPTCHA נטען יוצאת בלי טוקן, והשמירה נדחית. הסקריפט המצורף לסקיל מחכה; קוד שנכתב ידנית חייב לחכות גם.
- וריאנט נייטיבי: סולם רדיו בדף. הקישור ממלא שדה מוסתר — אין מה ללחוץ ואין מה שחוק טופס יקרא. השאירו אותו מוסתר.
מגבלות ידועות
Section titled “מגבלות ידועות”- שאלה אחת בהודעה. שאלות נוספות שייכות לדף, אחרי הלחיצה — טופס ההערה יכול לגדול לטופס נייטיבי מלא — אף פעם לא לפניה.
- שיעור מענה הוא opt-in ולא ניתן להשלמה לאחור.
- אין דה‑דופליקציה בין מכשירים. בנייטיבי הדף מסרב לשלוח שוב בטעינה חוזרת באותה לשונית; נמען שלוחץ משני מכשירים יוצר שתי שורות, וההיטל המאוחר מנצח. מקובל ל‑CSAT; לא מקובל אם לציון יש השלכה מסחרית.
- וריאנט נייטיבי: גולש מסומן מקבל אתגר. גולש שגוגל מסמן רואה אתגר CAPTCHA לפני שהתשובה נשמרת. נדיר; התשובה נרשמת אחרי הפתרון.
- התקנה בכל סוכן — הצד המעשי של
myb-p-getting-started - עבודה בטוחה עם סוכן על מערכת חיה
- אינדקס 24 הסקילים