קליטת לידים וקריאות שירות מהאינטרנט
מנהל המערכת יכול להגדיר טפסים (Forms) לקליטת לידים או קריאות שירות מדפי נחיתה (Landing pages), טפסים עצמאיים (mini-site) או מערכות חיצוניות (json API).מודול ה- Web Data Port מאפשר למנהל המערכת להגדיר ולנהל פרופילים עבור קליטת פניות מערוצים חיצוניים (שונים) בפרוטוקול HTTP תוך שמירה על אבטחת מידע גבוהה.
והנה דוגמה ל- mini site שנוצר על ידי ההגדרות הנ"ל:
מבוא
-
מודול ה- Web Data Port הנו חלק אחד מתוך ארבעה של יישום "Hyper Web Application".
Hyper Web Application מכיל בתוכו מודולים שונים ומאפשר json API מול הייפר או פורטל HTML מלא לשירות הלקוחות או גישה למסד הנתונים עבור מערכות BI / דוחות ועוד.
תוכל ללמוד אודותיו בהרחבה בספר הזה. -
ההבדל העיקרי בין מודול ה- Data Port המדובר, לבין שאר ממשקי הקליטה הקיימים ב- Hyper Web, הוא הגמישות בקליטה ובשרשור מערכות.
מנהל המערכת שולט בכל השדות (אילו שדות יקלטו, מי חובה, ערכי ברירת מחדל, וערכים קבועים לשדות פנימיים).
המנהל קובע מה יקרה עם הלקוח (ניתוב עמוד נחיתה) והאם לשרשר למערכת ניהול לידים או לספק משוב על הקליטה לשותף עסקי.
זהו הפתרון הטוב יותר, כאשר נדרש ליצר ממשק קליטת לידים באופן מהיר ודינמי מבלי "לעצבן את השולח". - לא רק לידים: אפשר לקלוט קריאות שירות ציבוריות ובקרוב (נחזיר את) האפשרות לקלוט הזמנות מאתר מכירה / עמוד instagram וכו'.
-
Hyper Web מותקן בשרת HTTP יעודי ונפרד להרחקת סיכונם (האקרים), עם כתובת URL עבור כל התקנה.
ניתן להתקין אותו במספר מכונות (רשתות) בכדי להתמודד עם אבטחת מידע, מהירות גלישה / Geo IP / התקפת DOS וכיו"ב.
הנושאים הללו חורגים מהעמוד הזה ומוסברים בהרחבה בספר ההתקנה. -
לשימוש בשרת הציבורי של הייפר:
במידה וברשותך דומיין פרטי, יש לייצר sub domain ולהפנותו באמצעות רשומת CNAME אל הכתובת web.sye.co.il.
פעולה זו הינה חד פעמית ותשמש בעתיד את כלל הספקים שתבחר לשלב במקביל.
אם יש לך היום שירות DOS מותקן על הדומיין שלך, ציין זאת מול הנציג שלנו ותקבל התקנה על שרת מאובטח.
במידה ואין ברשותך דומיין פרטי, באפשרותנו לקבוע עבורך sub domain שלנו, תחת הדומיין sye.co.il.
בכל מקרה לצורך ההתקנה, צור קשר עם שירות הלקוחות שלנו. -
הכן שרת פרטי שלך:
בהתאם למדריך ההתקנה של Hyper Web באפשרותך להשתמש בשרת פרטי שלך ולהגן עליו בשירות DOS לבחירתך.
מבחינת עמוד ההדרכה הזה, אין הבדל בין התקנה פרטית לציבורית.
הוראות הפעלה
הממשק של Data Port בהייפר תמיד באנגלית, בלי קשר לשפת היישום שאתה מפעיל. נתחיל בסקירת לחצני ההפעלה ואח"כ נלמד את השדות.הטבלה המובילה נקראת hyp_Web_Data_Port_Profile, כל רשומה בה מייצגת כתובת URL לקליטה של טופס / json מבחוץ.
מעתה כאשר נכתוב "פרופיל" הכוונה לרשומה הנ"ל ולתת הטבלה עם רשימת השדות לקליטה.
Create New | התחלת פרופיל חדש. הלחצן מנקה את המסך וכמובן מציע לשמור במקרה ששכחת שינויים בפרופיל הקודם. |
---|---|
Load Profile | הלחצן מציע לך לטעון פרופיל קיים ממסד הנתונים. |
Save |
שמירה של שתי הטבלאות, זה ברור. אך טרם מתבצעות בדיקות של שלמות המידע ומניעת כפילויות.
הייפר מונעת שימוש חוזר באותה כתובת כניסה (URL) בין פרופילים שונים. טבלת השדות נבחנת כך שלא יוגדר אותו שם שדה נכנס (External Field Name) יותר מפעם אחת, באותו הפרופיל. |
Save & Publish |
בדיוק כמו הלחצן הקודם, אך עם בתוספת: לאחר שמירה מוצלחת הייפר שולחת הודעת עדכון לכל הדומיינים הפעילים בחוץ לרענון ההגדרות של הפרופיל הספציפי הזה.
אם היה לקוח באמצע מילוי של הטופס הזה, הוא יתאפס בפניו והלקוח יאלץ למלא את הטופס מחדש... אז נא לא להשתולל עם פרופילים שכבר פעילים בחוץ. |
Duplicate Profile | התחלת פרופיל על בסיס הקיים. הלחצן מאפס רק את מפתח הרשומה ומציע לשמור במקרה ששכחת שינויים בפרופיל הקודם. |
Modifications Log | כל שינוי בכל שדה בשתי הטבלאות מתועד, לאחר השמירה הראשונה של הפרופיל. הלחצן הזה מאפשר לך לצפות בהיסטוריה. |
Delete |
מחיקת פרופיל הטעון כרגע במסך. לאחר מחיקה מוצלחת הייפר שולחת הודעת עדכון לכל הדומיינים הפעילים בחוץ לגריעת הפרופיל הספציפי הזה.
אם היה לקוח באמצע מילוי של הטופס הזה, הוא יתאפס בפניו ותתקבל הודעת שגיאה של "העמוד אינו קיים". |
רשומת פרופיל Data Port
שם השדה | תיאור |
---|---|
Profile Number | לצורך שמירה על היסטוריה, המפתח הראשי של הטבלאות הינו מספר רץ. כך שניתן למחוק פרופיל ואז להקים חדש על אותה כתובת כניסה (URL). |
Profile Name | כותרת פנימית שתעזור לכם לזהות את הפרופיל בקלות. |
Input Http Form Name |
שדה חובה, שם טופס/פונקציה באנגלית בלבד (אפשר גם ספרות). לדוגמה בגופן כחול:
https://leads.sye.co.il/testmyprofile
ביחד עם הדומיין שהקצאתם (גופן אדום) ליישום Hyper Web תתקבל הכתובת המלאה של הטופס.
כפי שכתבתי לעיל, בעת השמירה הייפר בודקת כפילויות בשדה הזה בין כל הפרופילים הקיימים (כלומר מחוקים אינם עוברים השוואה). * אין להשתמש בתו נקודה (השרת יניח שמדובר בשם קובץ להורדה פשוטה) או בסימני פיסוק אחרים למעט מקף - או קו תחתון _ כל התחכמות יכולה לגרום לתקלות. |
Enabled | האם הפרופיל פעיל כרגע ? ערך ברירת מחדל "כן". השדה מאפשר לך להקפיא פעילות בלי למחוק. |
Data Port Type |
שדה חובה, מטרת הממשק - קובע את האלגוריתם. עבור כל אחת מהאפשרויות הבאות קיים תיעוד תהליך בהמשך העמוד.
|
HTML Page |
בחירת סוג ממשק טכנולוגי.
|
Page Body Content ID |
קישור למערכת ניהול התוכן של הייפר, רק הפעם עבור בלוקים של style + script אשר ישתלו בעמוד mini site. אחרת השדה הזה אינו רלוונטי.
המטרה היא לאפשר לך לעצב את העמוד ולדרוס כל הגדרת css קודמת, פשוט כי זהו העיצוב האחרון בשרשרת. כל התוכן שתרשום בין התגיות <style> ישתל ב- HTML Header. כל התוכן שתרשום בין התגיות <script> ישתל בסוף העמוד רק לפני התגית </body> ובכך יהווה את הקוד האחרון המפוענך בדפדפן. בצילום המסך לעיל, צבעתי את לחצן האיפוס באדום, באמצעות ההתערבות הבאה:
<style>
אפשר להשמיט תווית ריקה כמו למשל את script בדוגמה הזאת.
main button[type=reset] {background:red} </style> <script> </script> |
Form Prefix Content ID |
קישור למערכת ניהול התוכן של הייפר, התוכן יופיע בתוך ה- div של הטופס ככותרת + טקסט הקדמה.
מומלץ להשתמש בתגית H1 עבור הכותרת. עליך להתאים את השפה של התוכן לפרופיל עצמו (כל פרופיל בוחר תוכן בשפה אחת מוגדרת מראש). |
Redirect Browser (to URL) after POST |
כתובת לניתוב דפדפן לאחר קליטת טופס בהצלחה. לדוגמה לערוץ Youtube או לאתר התדמיתי של פרויקט נדלן לאחר קליטת ליד עבורו.
יש להזין כתובת מלאה כולל קידומת https:// השדה אינו רלוונטי לממשק "Public API json".
|
Redirect Browser (to URL) after Processing Error |
רק עבור ממשק עמוד נחיתה (Landing Page Form Input), כתובת ניתוב המשתמש לאחר שגיאה במילוי הטופס.
דוגמה טובה היא ניתוב לאתר התדמיתי, לעמוד מילוי פרטים אלטרנטיבי הכולל גם ממשק לתיקון שגיאות מול המשתמש. אם תשאיר ריק, הייפר תעבור לבד למצב mini site במקרה של שגיאה בכדי להציל את הליד ולנהל אינטראקציה עם הלקוח המתעניין. |
Forward data to URL |
שרשור מערכת נוספת לניהול לידים או דיווח לשותף עיסקי אודות הקליטה בהייפר.
הפניה למערכת נעשית ברקע (בלי להפריע לדף הנחיתה) לאחר כל post, במקרה של הצלחה או כישלון. בהמשך העמוד סיפקתי דוגמה לשידור של הייפר. |
Forward Format |
בחירה כיצד לשלוח את השדות למערכת המשורשרת.
|
Circle Between Agencies |
אם טופס של קליטת ליד הגיע ללא הפניה לסניף מסוים או ללא איש מכירות (מכיוון שמשתמש הייפר = מכתיב גם את הסניף שלו), אזי ניתן לכתוב Round Robin בין הסניפים.
דוגמה על פי רשימת הסניפים בהייפר: בכדי לחלק את הלידים שווה בשווה בין הסניף הראשון - לשלישי ואז לרביעי וחוזר חלילה, עליך למלא את הערך ;A1;A3;A4 פורמט המילוי הוא האות A ולאחריה מספר הסניף (החל מאחד) ואז "נקודה-פסיק" להפרדה. שים לב, שעליך לסיים בתו "נקודה פסיק". |
Last Agency | שדה לקריאה בלבד, תיעוד הסניף האחרון אליו נשלח ליד. יופיע כאן מספר הסניף (1 ומעלה) גם אם לא הופעלה רוטציה והיה ניתוב לסניף ספציפי. |
Last Real Data Input UTC | שדה לקריאה בלבד, זמן קליטה בהצלחה בפעם האחרונה (ללא איזור זמן = UTC). |
API Token String |
בכדי לאבטח את הממשק, בעיקר את "Public API json", ניתן להוסיף לו שדה פשוט בשם 'ApiToken' עם מחרוזת באורך של עד 40 תווים.
בכל פניה לפרופיל הזה, הייפר קודם משווה את המחרוזת, כאשר אין התאמה תוחזר הודעת שגיאה בפורמט json:
{"Authorization":"False", "Message":"Missing / Wrong ApiToken"}
|
IP Whitelist |
כאשר פועלים מול שרתים קבועים או מול מוקד הזנת לידים עם כתובת IP קבועה, מומלץ ליישם רשימת כתובות IP לגישה לממשק.
בכל פניה מכתובת IP שאינה ברשימה תוחזר הודעת שגיאה בפורמט json:
{"IP Whitelist":"False", "Message":"Your IP address is not on the list"}
|
Notes | מזכר הערות פנימיות. אינו נחשף כלפי חוץ. |
רשימת השדות לקליטה
בכל פרופיל חובה להגדיר לפחות שדה אחד לקליטה, אחרת אין היגיון בקיום הממשק... תת טבלה נקראת hyp_Web_Data_Port_Fields.Field Name | Description |
---|---|
External Field Name |
שם השדה במערכת החיצונית, בטופס HTML או ב- json (כפי שייקלט מה- Http Post).
אפשר להשאיר את השדה הזה ריק, אם רוצים ליישם ערך קבוע בשדה של הייפר על עצם הקליטה מהפרופיל הזה. לדוגמה: שם ספק לידים / קמפיין / אחוז תגמול. השדה הזה הוא חובה מותנית (Group) ביחד עם השדה "Default Value" כפי שיוסבר בהמשך. |
Hyper Table Name |
שדה חובה, קישור לטבלה בהייפר (תמיד שם באנגלית).
בהתאם לסוג הקליטה שנבחרה בשדה Data Port Type, תתאפשר בחירה של מתוך רשימה של טבלאות. ברירת המחדל תמיד תהיה הטבלה הראשית בפרופיל. בהוספת שורה לסוף הטבלה, יועתק שם הטבלה מהשורה מעל. |
Hyper Field Name | שם שדה הקלט בהייפר, בהתאם לטבלה שנבחרה בשורה. הייפר תעדיף להציג את כותרת השדה בשפה של המשתמש אך במקרה של הנתגשות/חוסר יופיע השם במסד הנתונים. |
Default Value |
מחרוזת עם ערך ברירת מחדל לשדה:
|
Type |
הגדרת אופן ההתנהגות של השדה הזה.
עבור שדות שהוגדרו כחובה: בעת קליטת תשדורת Http Post, אם השדה אינו קיים או מגיע כמחרוזת ריקה, אזי המערכת תדחה את הרשומה כולה והמשתמש יקבל הודעת שגיאה או ינותב לעמוד תקלה. אבל במידה והגדרנו גם "Default Value", אזי הייפר תיישם את ערך ברירת המחדל והקליטה תמשיך ! |
Html Field Title | מאפשר לך לקבוע כותרת אחרת לשדה בממשק mini site במקום שם השדה כפי שמופיע בהייפר. |
תהליך בדיקת תשדורת נכנסת
-
מחפש וטוען את הגדרות הפרופיל הרלוונטי על ידי השוואת שם העמוד מה- URL מול ערך השדה [Input Http Form Name].
במידה ולא מוצא את הפרופיל מחזיר OK 200, עם טקסט הודעה "העמוד אינו קיים" בגוף ה- HTML. -
בודק ומשווה את השדה [API Token String] לאסימון "ApiToken" שהתקבל בתשדורת.
האסימון צריך להיות אחד הפרמטרים בגוף התשדורת כמקובל בכל אחד מהשיטות: Json/Post/Get - בודק ומשווה את כתובת ה- IP של השולח לשדה [IP Whitelist] בפרופיל.
-
אם התשדורת הגיעה עם מידע ואם מדובר בפרופיל מסוג "Public API Json" או "Landing Page Form Input" סופר את הפניה (כחלק ממנגנון הגנה נגד הצפה).
בשני סוגי פרופילים אלו, ישנה מגבלת שליחה של עד 12 תשדורות בדקה. הגנה זו אינה רלוונטית עבור שאר סוגי הפרופילים.
תהליך קליטת לקוח ו/או הזדמנות מכירה
להלן תיאור סדר הפעולות בכל סוגי הפרופילים הקשורים בקליטת Lead חדש. ההבדלים בלוגיקה בין הסוגים השונים מפורטים בסעיפים עצמם.כל תקלה גורמת לעצירת התהליך והחזרת הודעת שגיאה ו/או ניתוב המשתמש לעמוד אחר בהתאם להגדרות שתוארו לעיל.
- בדיקת שפה לתוכן שהתקבל בשדות הטקסט. השפה צריכה להתאים להגדרות המערכת ראשיות.
- בדיקה באם נשלחו כל שדות החובה שהוגדרו לפרופיל.
- במידה והתקבלה כתובת אימייל - בדיקת תקינות למבנה הכתובת, לרבות בדיקת DNS לשם הדומיין.
- במידה והתקבל מספר טלפון - בדיקה לתקינות המספר שהוא מכיל ספרות בלבד ואורכו 9-13 ספרות.
- במידה והתקבל גיל - בדיקה באם הגיל עומד בהגדרת הסף של המערכת על פי השדה [Website Accept Client Age Above # Years].
- במידה והתקבל מספר זהות יבוצעו עליו בדיקות לגויות שונות (כגון Luhn). סוגי הבדיקות מותנות בקיום אחד מהשדות: [Country Issuing ID] או [Country]. במידה שני אלו לא נתקבלו, אזי המערכת תניח שזהות הנרשם זהה להגדרת המדינה הקיימת במערכת / בסניף (עדיפות לסניף).
-
במידה והתקבלה סיסמה - תבוצע בדיקת אימות למבנה הסיסמה: אורך מינימאלי של 8 תוים הכוללים (לפחות) 2 ספרות וגם 3 אותיות.
אם תווי הסיסמה הם באנגלית בלבד, יבדק שהם כוללים שילוב תוים גדולים וקטנים (Uppercase + Lowercase). - רק במצב minisite: במידה והתקבל שדה אימות סיסמה, תבוצע בדיקת השוואה לשדה סיסמה.
- רק במצב minisite: במידה והתקבל שדה אימות כתובת דוא"ל, תבוצע בדיקת השוואה לשדה דוא"ל.
- רק במצב minisite: בדיקה לערך שדה האבטחה "Captcha". במידה ונכשלה תוחזר הודעה למשתמש (בתצורת HTML) לנסות שנית.
-
חיפוש במאגר הלקוחות על פי השדות: טלפון או דוא"ל או מספר זהות. הנרשם החדש יכול להתגלות כלקוח פעיל / לשעבר / מאגר מחוקים...
בקריאת הסעיפים הבאים (כותרות משנה) שימו לב ללוגיקה בהתאם לקיום לקוח והסטטוס שלו.
כאשר המטרה היא להוסיף לקוח למערכת
כאשר השדה[Data Port Type]
מכיל את אחד הערכים: New Client Lead או New Client File.
-
יצירת לקוח חדש
כאשר בחיפוש במאגר הלקוחות לא נמצאה אף רשומה.-
שמירת נתוני הלקוח שהתקבלו וביצוע השלמות נתונים כגון:
שדה [Docs & Forms Language] יוגדר בהתאם לשפה שהוגדרה לתשדורת זו (הלוגיקה שתוארה בסעיפים קודמים).
שדה [Use Currency by Default] יוגדר על פי הגדרות המערכת.
שדה [Lead Status] יקבל את הערך 1 (נוצר לאחרונה).
שדה [Last Lead Input] יקבל תאריך ושעה עכשווית ב- UTC -
קביעת השדה "סניף" על פי סדר העדיפות הבא (עליון = גבוהה):
- אם נתקבלו אחד מהשדות [Default Sales Agent] או [Default Relationship Manager] אזי קבע על פיהם.
- אם נתקבל השדה [Agency] קבע על פיו.
- אם הוגדר Circle Between Agencies אז בצע חלוקה לסניפים.
- קביעת סניף על פי שם המשתמש של מנגנון ה- API (במידה והוגדר בהייפר המשתמש), אחרת יקבע על פי השדה [Default Agency] בחלון "Server Side App & webAPI".
- קביעת מועד היצירה בשדה [Created on] על פי שעון הסניף שנקבע ללקוח בשלב הקודם.
- אם בעמוד רישום אשורה תיבת הסימון "מסכים לקבל מידע שיווקי לסלולארי" ("AcceptCommercialInfotoCellphone"), או נתקבל בתשדורת הערך 1/TRUE לשדה [Accept Commercial Info to Cell phone], אז: יישמר בשדה [Accept Commercial Info to Cell phone] התאריך והשעה (המקומי) של מתן האישור, ובשדה [Question to use Cell Phone] יישמר הערך 1 (Website Form).
- אם בעמוד רישום אשורה תיבת הסימון "מסכים לקבל מידע שיווקי לאימייל" ("AcceptCommercialInfotoEmail"), או נתקבל בתשדורת הערך 1/TRUE לשדה [Accept Commercial Info to Email], אז: יישמר בשדה [Accept Commercial Info to Email] התאריך והשעה (המקומי) של מתן האישור, ובשדה [Question to use Email] יישמר הערך 1 (Website Form).
-
שמירת הערכים הבאים בטבלת hyp_Clients Website Ext. Record
- אם בעמוד רישום אשורה תיבת הסימון "מסכים לתנאי השימוש", אזי יישמר התאריך והשעה (המקומי) בשדה [Agree to Terms Checkbox].
- בשדה [Last Registration Step] וגם בשדה [Registration Complete Until Step] יישמר הערך "1" (Page 1).
- בשדה [First Reg. Page Date] יישמר התאריך של היום ובשדה [Account Status] יישמר הערך "1" (Pending Approval).
-
תוגרל סיסמה לשדה [API Password].
אם בטבלת הפרופיל קיימת הגדרת קליטה של השדה "Password", אזי הסיסמה תישמר (מוצפנת) בשדה [Portal Password].
במידה וכל השלבים עד כאן הסתיימו בהצלחה, בשלב זה המערכת תבצע שמירה של נתוני הלקוח. והמשך התהליך יבוצע על פי סעיף #15 להלן.
-
שמירת נתוני הלקוח שהתקבלו וביצוע השלמות נתונים כגון:
-
מיזוג נתונים עם לידים (סטטוס 0-3)
- ביצוע העתקת נתונים חדשים אל שדות ריקים בלבד בטבלאות: [hyp_Clients], [hyp_Clients Record Extension] במידה ושדות היעד מלאים, הנתונים שהתקבלו נשמרים בטבלת [hyp_Sale Opportunity Web Input]
-
עדכון שדות לקוח בטבלת [hyp_Clients]
- שינוי ערך השדה [Docs & Forms Language] לשפה המוגדרת לפרופיל הקליטה
- אם שדה [Use Currency by Default] ריק, הגדר אותו על פי הגדרת מטבע ראשית לארגון.
- אם שדה [Handling Status] = 3 (לא מעוניין) שנה אותו לסטטוס 0 (חדש).
- בהתאם לסטטוס הלקוח, קבע את ערך השדה [Lead Status] ל- 2 (ליד חם) או 3 (מתעניין שוב).
- שמור נתונים בטבלת hyp_Clients Website Ext. Record בהתאם למתואר בסעיף 12.F לעיל.
-
טיפול בנתונים כאשר לקוח קיים בסטטוסים 4-6 (מאושר/אמיתי/מוקפא)
שמירת כל המידע שהתקבל אל טבלת [hyp_Sale Opportunity Web Input]
שינוי סטטוס שדה [hyp_Clients.Lead Status] ל- 3 (מתעניין שוב). -
נוצרת רשומת הזדמנות מכירה חדשה (Sale Oppertunity), עם קישור אל מספר הלקוח שנוצר.
במידה ומדובר בלקוח קיים יבוצע עדכון והשלמת פרטים חסרים בכרטיס כגון: טלפון, דוא"ל, נציג שיווק וכיו"ב.
שלב זה יקרה בכל מצב גם אם שלבים קודמים לו נכשלו מסיבה טכנית.