Web Data Port - קליטת לידים (דפי נחיתה) וקריאות שירות

ממשק זה מאפשר למנהל המערכת לייצר "ערוצי קליטת נתונים" המגיעים מהאינטרנט בפרוטוקול
HTTP (Post/Get)
אל תוך המודולים הבאים בהייפר:
  • לקוח מתעניין: אם הלקוח לא קיים במערכת, אזי תיווצר רשומת לקוח חדשה. אחרת תירשם פניית "לקוח חם" ותיווצר הזדמנות מכירה בהתאם להגדרות בהייפר.
  • קריאת שירות: המודול הזה מתאים יותר לפניות ציבוריות / שאילתות, ללקוחות רשומים נמליץ להשתמש בפורטל של הייפר (או ב-API שלו). כל post יוצר רשומת קריאת שירות חדשה !
חשוב להזכיר: המודול הזה הוא חלק מיישום ה- web של הייפר. היישום מכיל API שלם להקמת אתר שירות לקוחות (כולל הנח"ש) ומכירות. היישום מכיל גם עמודי HTML מובנים.
ההבדל המשמעותי בין מודול Data Port לבין מודול Registration API הוא בהסכמה לקליטת מידע חלקי ולא מבוקר (ב- data port).

Web Data Port Frame

מבוא

המודול הזה הוא חלק מיישום ה- web של הייפר. הספר הזה מתאר רק את תוכנת הלקוח של הייפר ולכן ניגע בחלק הטכני בקצרה.
הגישה ליישום ה-web שלך מתבצעת בכתובת sub domain על sye.co.il או בדומיין פרטי שלך המנותב להייפר שלך. מומלץ להשתמש בתקשורת מוצפנת
TLS ("SSL")
אך לא חובה.
Hyper Website API מכיל פורטל שירות לקוחות ומכירות (הארגון שלך מול לקוחותיו) וגם פורטל פנים ארגוני למשתמשי הייפר (דוא"ל, יומן, CRM בסיסי ועוד) וגם את ממשק Data Port המדובר כאן.

ממשק data port אוסף לידים תקינים לטבלה hyp_Clients וקריאות שירות "מהציבור" לטבלה hyp_Service Ticket.
בהמשך העמוד נתאר בדייקנות את האלגוריתמים המובנים במערכת ואת אופן השימוש הנכון בהם.

ראשית עליך להחליט מתי להשתמש ב- data port ומתי ב-API של פורטל הלקוחות:
  • ההבדל הראשון הוא בהסכמה לקליטת מידע חלקי ולא מבוקר ב- data port".
    בזמן שמודול Web Registration נועד לעבוד מול לקוח הקצה ולהתריע בפניו על כל שדה שאינו מלא כראוי (לרבות כמות ספרות במספר טלפון, בחינת dns לכתובת דוא"ל ועוד),
    מודול Data Port נועד לשרת דפי נחיתה, "מבלי לעצבן" את המשתמש ומבלי להטריח אותו, שהרי מתכנת דפי הנחיתה יכול לשלב JavaScript לבחינת תקינות הנתונים בהתאם לקהל היעד.
  • ההבדל שני הוא ש- data port גמיש ברשימת השדות הנכנסים ויכול גם להכיל ערכים מקובעים (למשל ספק הלידים וזיהוי דף הנחיתה), בניגוד ל- API שמכיל מטריצה קבועה של שדות.
התפקיד של "תוכנת הלקוח של הייפר" במודול הזה, הוא לספק ממשק נוח להגדרות Data Port וכלים לצפיה ביומנים הנוצרים: Website Log עבור כל פניה של HTTP וגם Automation Log עבור תקלות / הצפות.

דוגמה לפרוטוקול התקשורת

Posted HTTP Form (please ignore the spaces next to the & char):
DOMAIN/ProfileNameString? LastName=Cramer & FirstName=John & Email=john@gmail.com & 1stPhone=13101234567 & lead_source=Facebook123456 & aff_num=10100

For successful registration, the following message will be received:
{"ResponseCode":"000","ResponseMsgEng":"OK"}

If any error occurs, the following message format will be received:
{"ResponseCode":"007","ResponseMsgEng":"please fill up all the required fields"}

רשימת התגובות האפשריות של המערכת

Response Code Message in English משמעות ומה צריך לעשות
0 OK הכל תקין. קליטה הושלמה.
1 OK and Already Exist. Sales team has been notified השידור נמצא תקין, אך נמצאה כפילות מול מסד הנתונים (ע"פ שדות טלפון או אימייל).
ראה פרק "במקרה וקיימת רשומת לקוח בעלת פרט מזהה..." בהמשך העמוד.
3 API function does not exists. אין פונקציה כזאת. למעשה לא נמצא פרופיל עם מחרוזת כזאת בשדה Input HTTP Form Name.
4 Database Error on server side. הטרנזקציה מול מסד הנתונים של הייפר נכשלה. יש לפנות לשירות.
5 Technical Error on server side. כרגע לא מוטמע. שמור לעתיד.
6 Duplicated HTTP Post. האוטומציה זיהתה שידור של ליד בעל נתונים זהים בפעם השניה או יותר באותה השעה (ע"פ טלפון או אימייל).
במצב זה הליד בכלל לא יעבור למסד הנתונים ויעצור עוד בשלב קליטת השידור.
7 Please fill up all the required fields. חסר שדה הכרחי ברשומה שהוגשה. שדה הכרחי הוא כזה שסומן בפרופיל כ- Mandatory או שנדרש על פי הטבלה (למשל פרט התקשרות עבור ליד).
8 Client Lead Rejected: because it is missing any phone or email fields. הליד הועבר לטבלת Bad Leads ונחשב פיקטיבי בגלל היעדר שדה התקשרות: טלפון או דוא"ל.
9 Please fill in the fields in the Acceptable Languages. (Acceptable Language List) נקלטו מחרוזות בשפה שאינה ברשימת השפות המותרות לקליטה בהייפר (עצם ההגבלה ורשימת השפות נקבעת על ידי מנהל המערכת).

הסבר על השדות הטכניים

בטבלת "hyp_Web_Data_Port_Profile" (כותרות הפרופילים), כל רשומה מייצגת ערוץ/פונקציה אליה ניתן לפנות ולשדר ב- HTTP Get/Post.
להלן רשימת השדות הטכניים מתוכה:
שם השדה תיאור והערות
Data Port Type מגדיר את מטרת ערוץ הקליטה ואת סוג הרשומה שתווצר במסד הנתונים (להלן האפשרויות לפי סדר הבחירה בשדה):
  1. קליטת ליד חדש לטבלת הלקוחות, בשיתוף פעולה עם מערכת הזדמנויות מכירה / טבלת Relationship בהתאם להגדרות ה-CRM בהייפר.
  2. קליטת פניית לקוח לטבלת קריאות השירות. הממשק פתוח לכל פנייה, אין חובת הזדהות מוקדמת.
  3. קליטת ליד חדש לטבלת הלקוחות ופתיחת חשבון מסחר באופן מיידי. האפיון הזה מתאים לפלח שוק מאוד מצומצם.
Input HTTP Form Name שם הטופס כפי שיופיע לאחר הדומיין. בערך זה אין להשתמש בתו נקודה, אחרת השרת יניח שמדובר בשם קובץ להורדה פשוטה.
יש לוודא שאין שני ערוצים שונים עם אותו השם (חד ערכי).
יש לוודא שהשם שניתן אינו מתנגש עם ה- Web API של הייפר, במקרה של התנגשות יתקבל עמוד HTML עצמאי (או הודעת 'Page does not exists') במקום תגובת Data port.
הדרך הטובה ביותר לבחור שם נכון, היא ליישם שם פשוט הבנוי מאותיות וספרות ביחד ולא ארוך במיוחד, רצוי קידומת כגון "land_".
Redirect Browser (to URL) after POST כתובת להפניית הדפדפן לאחר קליטה מוצלחת (Response Code = 0).
שימושי כאשר דף הנחיתה מבצע post ישירות אל הייפר ואז ניתן להפנות את הגולש לעמוד תודה.
כאשר מבצעים הפניה לעמוד חיצוני - יש להזין נתיב מלא לדוגמא: http://domain/page name,
כאשר מבצעים הפניה לדף HTML הנמצא בתיקיית "HTTP" בשרת האוטומציה - יש להזין רק את שם הקובץ, לדוגמה: ThankYou.html.
Redirect Browser (to URL) after Processing Error כתובת להפניית הדפדפן לאחר תקלה, לרבות שדות חסרים (אך מצופה ממתכנת דף הנחיתה ליישם JS לשדות חובה).
שימושי כאשר דף הנחיתה מבצע post ישירות אל הייפר ואז ניתן להפנות את הגולש לעמוד גיבוי או הסבר במילוי.
אבחון התקלה נרשם בטבלאות של הייפר (גם ב- ERP Automation Log וגם ב- Website_Usage_Log).
Circle Between Agencies אם הליד הגיע ללא הפניה לסניף מסוים או ללא איש מכירות (מכיוון שמשתמש הייפר = מכתיב גם את הסניף שלו), אזי ניתן לכתוב Round Robin בין הסניפים.
דוגמה על פי רשימת הסניפים בהייפר:
בכדי לחלק את הלידים שווה בשווה בין הסניף הראשון - לשלישי ואז לרביעי וחוזר חלילה, עליך למלא את הערך ;A1;A3;A4
פורמט המילוי הוא האות A ולאחריה מספר הסניף (החל מאחד) ואז "נקודה-פסיק" להפרדה. שים לב, שעליך לסיים בתו "נקודה פסיק".
Parameter 1 פרמטר בטקסט חופשי לפי המשימה בשדה Data Port Type.
כרגע אין לו שימוש למעט סימול פלטפורמת מסחר ליצירת חשבון חדש (תרחיש 3 בשדה "Data Port Type" לעיל).
iFrame with Captcha גורם למודול Data port להגיש עמוד HTML פשוט (על פי קבצי ה-css המוטמעים בתיקייה), כולל רכיב Captcha.
שימוש באפשרות הזאת מומלץ רק ללקוחות החשופים להטרדות וניסיונות פריצה לעתים קרובות.

עבור כל פרופיל יש להגדיר רשימת שדות (לפחות אחד) בממשק:
שם השדה תיאור והערות
External Field Name שם השדה במערכת החיצונית (כפי שייקלט ב- HTTP post).
Hyper Field Name שם השדה בהייפר, בחירה בהתאם לטבלה הנבחרת בפרופיל.
Default Value ערך ברירת מחדל לשדה, במידה ואינו קיים ב- HTTP post, או שהגיע ריק או במידה ולא הגדרנו לו 'External Field Name' (מאפשר שדות סטטיים).
Mandatory אם שם השדה אינו קיים ב- post, או מגיע כמחרוזת ריקה, אזי המערכת תדחה את הרשומה כולה.
המשתמש יקבל הודעת שגיאה או ינותב לעמוד תקלה.
* יוצא מהכלל הוא שדה חובה שהגיע במחרוזת ריקה והגדרנו לו Default Value. במקרה זה הייפר תיישם את ערך ברירת המחדל והקליטה תמשיך.

תהליך קליטת לקוח מתעניין

  1. בשלב הראשון מתבצעת העתקת שדות לרשומת hyp_Clients חדשה. עצם הפניה נרשמת בטבלה SYE_Website Usage Log.
    במידה ונשלחו ב- HTTP post שדות עודפים, כאלו שלא נקלטו בהייפר, אזי תיווצר רשומה בטבלה hyp_ERP Automation Log ובה ירשמו השדות הנוספים (בכדי שלא תאבד מידע).
  2. בדיקת שדות הכרחיים כפי שהוגדרו בפרופיל. אם חסר שדה, אזי יחזור קוד שגיאה 7 והדפדפן יופנה לעמוד error (אם מיושם).
  3. בדיקת שפת הקלט. אם נקלטו מחרוזות בשפה שהייפר אינה מוגדרת אליה (בחירה של מנהל המערכת), אזי יחזור קוד שגיאה 9 והדפדפן יופנה לעמוד error (אם מיושם).
  4. בדיקת אורך לשדות הטלפון ו/או תקינות כתובת דוא"ל (כולל בחינת DNS). אם כל שדות ההתקשרות נכשלו בבדיקה, אזי יחזור קוד שגיאה 8 והדפדפן יופנה לעמוד error (אם מיושם).
  5. בדיקת שידור כפול. לא ניתן לשלוח פנייה זהה (דרך אותו הפרופיל) במשך שעה. להלן רשימת השדות המשתתפים בבדיקה:
    'Profile Number','1st Phone','2nd Phone','3rd Phone','Email'
    שים לב: בכוונת תחילה בחרנו לבצע בדיקת כפילות לפי פרופיל. אם לקוח מגיב ונרשם לשני עמודי נחיתה שונים שלך - רצוי שתדע שהוא הגיב לשני הפרסומים.
    באמצעות הפרדת בדיקת הכפילות, הייפר תייצר רשומת relationship נפרדת לפנייה השנייה ואילך. או הזדמנות מכירה בהתאם להגדרות.
  6. השלמת שדות "מחושבים"... מועד היצירה של הליד יהיה לפי אזור הזמן, בהתאם לסניף שהוגדר ליישומי צד השרת.
    אם הועבר איש מכירות ב- HTTP post הייפר תשייך אותו ללקוח וגם את הלקוח לסניף של איש המכירות.
  7. כעת מתבצעת בדיקת כפילויות מול טבלת הלקוחות של הייפר בלבד (אין הצלבה מול אנשי הקשר).
  8. במקרה שאין כפילות

  9. אם בפרופיל הוגדרה חלוקה בין סניפים ('Circle Between Agencies') היא מתבצעת כעת.
    שימו לב: אם הועבר איש מכירות או שדה סניף ב- HTTP post או אם הלקוח כבר קיים בהייפר, אזי לא תתבצע חלוקה בין סניפים !
  10. ממוספרת רשומת לקוח חדשה בטבלה (טווח המספור על פי השדה 'Number Clients in High Range' מהטבלה Global).
    אם ארעה תקלה בשמירה, אזי יחזור קוד שגיאה 4 והדפדפן יופנה לעמוד error (אם מיושם).
    אחרת הלקוח "משוחרר", מוחזר קוד 0 (אפס = תקין) והדפדפן מופנה לעמוד "תודה" (אם מיושם).
  11. מופעל אירוע התראה WebApi_New_Client_Reg שיכול לשלוח דוא"ל ו/או מסרון ו/או ליצור משימה בהייפר.
    על מנת להוסיף התראה, עליך להיות בעל הרשאת גישה למודול Alerts by Events.
  12. במקרה וקיימת רשומת לקוח בעלת פרט מזהה משותף אחד (לפחות)

  13. אם רשומת הלקוח היא בסטטוס "ליד לא מעוניין" (Handling Status = 3), אזי תוכן רשומת הלקוח הקיימת מועתק לטבלה 'hyp_Bad Client Leads' והרשומה החדשה דורסת אותה בטבלה 'hyp_Clients'.
    שימו לב שהיסטוריית ההתקשרויות (בטבלה 'hyp_Relationship') נשמרת בתיק הלקוח !
  14. אם רשומת הלקוח (הקיימת) היא בסטטוס לקוח אמיתי או ליד בתהליך שיווק, אזי תוכן הליד החדש נשמר (גיבוי נאמן למקור) בטבלה 'hyp_Bad Client Leads'
    וגם נוצרת רשומת relationship חדשה על עצם הפניה החוזרת של הלקוח באתר (עם גיבוי השדות שנשלחו בטופס, עד כמה שניתן).
    וגם נרשמת הוראת התקשרות מיידית או נוצרת רשומת הזדמנות מכירה, בהתאם להגדרות של הייפר.
    וגם מופעל מנגנון שילוב מידע נוסף שאינו ברשומת המקור. מוגבל לשדות הבאים:
    '1st Phone','2nd Phone','3rd Phone','Email','Lead Supplier'

    וגם מעודכן השדה Website Token באחד מהערכים הבאים:
    * HOT Lead - אם רשומת הליד המקורית הייתה בשלבי שיווק (0-2) ע"פ השדה Handeling Status.
    * Renewed - אם רשומת הליד הייתה בסטטוס "לא מעוניין" (3) ע"פ השדה Handeling Status.
  15. מופעל אירוע התראה Real_Client_Try_Reg_Again שיכול לשלוח דוא"ל ו/או מסרון ו/או ליצור משימה בהייפר. מדובר בהתראה על לקוח קיים שנרשם שוב !
    על מנת להוסיף התראה, עליך להיות בעל הרשאת גישה למודול Alerts by Events.
  16. בכל מקרה, בסיום קליטת הלקוח

  17. שליחת דוא"ל ו/או מסרון ללקוח במידה ופרטי ההתקשרות שלו נכללו ברשומה ובהתאם לתבניות שהוזנו בהייפר.
    שם התבנית עבור דואר אלקטרוני: 'Email_to_New_Client_Lead'.
    שם התבנית עבור מסרון: 'SMS_to_New_Client_Lead'.
    על מנת ליצור ולערוך את התבניות, עליך להיות בעל הרשאת גישה למודול Text Components for Modules.

תהליך קליטת קריאת שירות (ציבורית)

  1. בשלב הראשון מתבצעת העתקת שדות לרשומת hyp_Service Ticket חדשה, כאשר Ticket Source = 1 Public Website.

    עצם הפניה נרשמת בטבלה SYE_Website Usage Log.
    במידה ונשלחו ב- HTTP post שדות עודפים, כאלו שלא נקלטו בהייפר, אזי תיווצר רשומה בטבלה hyp_ERP Automation Log ובה ירשמו השדות הנוספים (בכדי שלא תאבד מידע).
  2. בדיקת שדות הכרחיים כפי שהוגדרו בפרופיל. אם חסר שדה, אזי יחזור קוד שגיאה 7 והדפדפן יופנה לעמוד error (אם מיושם).
    תגובה זהה תתקבל אם אחד משני השדות הבאים מגיע ריק: 'Complainer Name' וגם 'Subject / Complain'.
  3. בדיקת שפת הקלט. אם נקלטו מחרוזות בשפה שהייפר אינה מוגדרת אליה (בחירה של מנהל המערכת), אזי יחזור קוד שגיאה 9 והדפדפן יופנה לעמוד error (אם מיושם).
  4. בדיקת שידור כפול. לא ניתן לשלוח פנייה זהה (דרך אותו הפרופיל) במשך שעה. להלן רשימת השדות המשתתפים בבדיקה:
    'Profile Number','Complainer Name','Return to Phone','Return to Email','Subject / Complain'
  5. מספור קריאת שירות חדשה בהייפר. תקלה בשמירה תחזיר קוד שגיאה 4.
    אם ארעה תקלה בשמירה, אזי יחזור קוד שגיאה 4 והדפדפן יופנה לעמוד error (אם מיושם).
    אחרת הלקוח "משוחרר", מוחזר קוד 0 (אפס = תקין) והדפדפן מופנה לעמוד "תודה" (אם מיושם).
    נדגיש שהלקוח לא מקבל דוא"ל או מסרון על כך שפתח קריאת שירות !
  6. מופעל אירוע התראה WebApi_Public_Service_Ticket שיכול לשלוח דוא"ל ו/או מסרון ו/או ליצור משימה בהייפר.
    על מנת להוסיף התראה, עליך להיות בעל הרשאת גישה למודול Alerts by Events.