רכיב מובנה מראש לאימות קמעונאי

הרכיב המובנה לאימות קמעונאי אוסף מידע מהמשתמש כדי לאמת אותו ברמת האימות הנדרשת. הרכיב הזה כולל דרישות אימות שרלוונטיות לתעשיית הקמעונאות, אבל לא רק לה. הרכיב הזה משתמש ברכיב המוגדר מראש איסוף מספרי טלפון כדי לאסוף ולאמת את פרטי המשתמשים.

רמות אימות

יש כמה רמות אימות שנדרשות על ידי רכיבים שונים שנוצרו מראש, וברמות הגבוהות יותר נדרש יותר מידע על המשתמש כדי לאמת אותו. רכיב האימות הקמעונאי מאפשר למשתמשים לבצע אימות ברמה 0 (התאמת ANI) או ברמה 1 (בסיסי), כפי שמתואר בטבלה של רמות האימות.

רמת האימות דרישות
רמה 0: התאמה ל-ANI המשתמש מאומת באמצעות שיחה ממספר טלפון או מסירת מספר טלפון שתואם לחשבון רשום.

אפשר לאמת משתמש ברמה 0 באמצעות הרכיב המוגדר מראש Greeting.
רמה 1: בסיסית המשתמש מאומת באמצעות קוד סיסמה חד-פעמית (OTP) שנשלח לכתובת האימייל או למספר הטלפון שלו.

סוגי המשתמשים הנתמכים

רכיב האימות של הקמעונאי מספק תמיכה למשתמשים עם מספר טלפון וכתובת אימייל רשומים.

מגבלות

בנוסף למגבלות הנפוצות של רכיבים מובנים, לרכיב המובנה הזה יש את המגבלות הבאות:

  • הסיסמאות החד-פעמיות יישלחו רק למספר טלפון נייד או לכתובת אימייל שכבר רשומים בחשבון של המשתמש. הרכיב לא ישתמש ב-OTP כדי לאמת לקוחות שמתקשרים ממספר טלפון חלופי שלא רשום בחשבון שלהם. כשמשתמש מתקשר ממספר טלפון חלופי, נשתמש בשאלות אבטחה כדי לאמת את זהות המתקשר.
  • הרכיב הזה לא מצפין נתונים.

דוגמאות לדו-שיח

השיחות לדוגמה הבאות ממחישות תרחישים נפוצים שהרכיב המוכן מראש הזה מטפל בהם. הדיאלוגים לדוגמה מדגימים את ההתנהגות כשהרכיב נקרא באמצעות טלפוניה, שמפעילה את כוונת ברירת המחדל לפתיחה ואת התגובה הראשונה של הנציג בתחילת השיחה.

אימות ברמה 0 הצליח: התאמת ANI

המשתמש מתקשר ממספר טלפון שרשום בחשבון קיים, מאשר את החשבון שלו ומאומת בהצלחה ברמה 0.

קלט של משתמשים התשובה של הסוכן
שלום, המספר שחייגת אליו מקושר לחשבון של יונתן. האם השאלה שלך היא לגבי הזמנה של מישהו אחר? אם כן, צריך לומר "כן". אחרת, צריך לומר "לא".
לא
תודה, יוני. הזיהוי בוצע בהצלחה.

אימות מוצלח ברמה 1: סיסמה חד-פעמית (OTP)

המשתמש מתקשר ממספר טלפון לא מזוהה. הרכיב אוסף את מספר הטלפון הרשום של המשתמש, ואז שולח ומבקש מהמשתמש לאשר סיסמה חד-פעמית שנשלחה לערוץ שהמשתמש בחר. המשתמש יכול לספק OTP תקף והוא מאומת בהצלחה ברמה 1.

קלט של משתמשים התשובה של הסוכן
לא מצאנו את מספר הטלפון הזה במערכת שלנו. עליך לציין את מספר הטלפון הרשום.
הנציג אוסף את מספר הטלפון באמצעות הרכיב המוגדר מראש Telephone number collection
מעולה, סיימנו לאסוף את מספר הטלפון.

מטעמי אבטחה, אנחנו צריכים לאמת את הזהות שלך, ולכן נשלח לך קוד. איך אתם מעדיפים לקבל את הקוד, בטלפון או באימייל?
טלפון
רק כדי לוודא, רוצה לקבל את הסיסמה החד-פעמית בטלפון? צריך לומר כן או לא.
כן
שלחנו קוד למספר הטלפון הרשום שלך שמסתיים ב-0000. התהליך יכול להימשך כמה שניות. יש לך אפשרות לאשר את הקוד?
123457
תודה, יוני. הזיהוי בוצע בהצלחה.

מוסכמות למתן שמות

הרכיב המוכן מראש הזה משתמש במוסכמות הבאות למתן שמות:

תכונה פורמט דוגמה
Flow [שם הרכיב] אימות קמעונאי
כוונה ספציפית לרכיב prebuilt_components_[component_name]_[intent_name] prebuilt_components_retail_authentication_incorrect_phone_number
סוג ישות prebuilt_components_[component_name]_[entity_type] prebuilt_components_channel_email_phone
תגובה לפעולה מאתר אחר (webhook) prebuilt_components_[component_name]:[webhook_action] prebuilt_components_retail_authentication:verify_user_details

פרמטרים של קלט

פרמטרים של קלט הם פרמטרים שמשמשים להגדרת התנהגויות מסוימות של הרכיב. הפרמטרים ישמשו תנאי אחד או יותר בתהליך כדי לקבוע איך הרכיב צריך להתנהג. צריך להגדיר פרמטרים ברמת התהליך בדף ההתחלה של הרכיב, כמו שמתואר בהמשך. אפשר להגדיר פרמטרים ברמת הסשן באמצעות תהליך קריאה או בדף ההתחלה של הרכיב הזה.

הרכיב המוכן לשימוש הזה מקבל את הפרמטרים הבאים של קלט:

שם הפרמטר תיאור פורמט הקלט
$session.params.auth_level_req מגדירה את רמת האימות שמשתמש הקצה יאומת לפיה. הערכים התקינים הם 0 או 1. מספר שלם
$session.params.auth_level (אופציונלי) מציין את רמת האימות הנוכחית של משתמש הקצה. מספר שלם
‎$session.params.phone_number (אופציונלי) מספר הטלפון של משתמש הקצה. אם הפרמטר הזה לא צוין, הרכיב יאסוף את מספר הטלפון ממשתמש הקצה. מחרוזת
$flow.max_retry_phone_number מציינת את מספר הניסיונות החוזרים המותרים לאיסוף מספר הטלפון של המשתמש. ערך ברירת המחדל הוא 3. מספר שלם
$flow.max_retry_otp מציינת את מספר הניסיונות החוזרים המותרים לאיסוף הסיסמה החד-פעמית (OTP). ערך ברירת המחדל הוא 3. מספר שלם
$flow.max_retry_otp_not_received מציינת את מספר הניסיונות החוזרים שמותרים כשלא מתקבלת סיסמה חד-פעמית (OTP). ערך ברירת המחדל הוא 1. מספר שלם
$flow.max_retry_otp_confirm_channel מציינת את מספר הניסיונות החוזרים המותרים כשמנסים לאסוף את הערוץ כדי לקבל את הסיסמה החד-פעמית (OTP). ערך ברירת המחדל הוא 3. מספר שלם

כדי להגדיר את הפרמטרים של הקלט לרכיב הזה, מרחיבים את ההוראות.

  1. פותחים את מסוף Dialogflow CX.
  2. בוחרים את הפרויקט ב-Google Cloud.
  3. בוחרים את הסוכן.
  4. לוחצים על הכרטיסייה Build.
  5. לוחצים על הרכיב המיובא בקטע Flows (תהליכים).
  6. בקטע Pages, לוחצים על Start Page.
  7. לוחצים על המסלול true בדף הפתיחה.
  8. בחלון Route, עורכים את הערכים של Parameter Presets לפי הצורך.
  9. לוחצים על Save.

פרמטרים של פלט

פרמטרים של פלט הם פרמטרים של סשן שיישארו פעילים אחרי היציאה מהרכיב. הפרמטרים האלה מכילים מידע חשוב שנאסף על ידי הרכיב. הרכיב המוכן מראש הזה מספק ערכים לפרמטרים הבאים של פלט:

שם הפרמטר תיאור פורמט הפלט
auth_level מציין את רמת האימות הנוכחית של משתמש הקצה. מספר שלם
all_recent_order_id הפרמטר הזה מציג את מזהי ההזמנות שמשויכים למשתמש המאומת, ממוינים לפי תאריך ביצוע ההזמנה בסדר יורד. הרכיב הראשון במערך מייצג את ההזמנה האחרונה. אם למשתמש אין הזמנות, הערך של הפרמטר הזה הוא null. רשימה (מחרוזת)
phone_number מספר הטלפון המקומי של המשתמש, ללא קוד המדינה, שמשמש לזיהוי המשתמש. מחרוזת
אימייל כתובת האימייל שרשומה בחשבון. מחרוזת
user_first_name השם הפרטי של המשתמש, שמשמש לברכת שלום ולאימות הבעלות על החשבון. מחרוזת
transfer_reason הפרמטר הזה מציין את הסיבה ליציאה מהתהליך, אם הוא לא הושלם בהצלחה. הערך שמוחזר הוא אחד מהבאים:

agent: משתמש הקצה ביקש נציג אנושי בשלב כלשהו במהלך השיחה.

denial_of_information: משתמש הקצה סירב לשתף מידע שהרכיב ביקש.

max_no_input: השיחה הגיעה למספר המקסימלי של ניסיונות חוזרים לאירועים ללא קלט. אפשר לעיין באירועים מובנים ללא קלט.

max_no_match: השיחה הגיעה למספר המקסימלי של ניסיונות חוזרים לאירועים ללא התאמה. אפשר לעיין באירועים מובנים ללא התאמה.

webhook_error: אירעה שגיאת webhook. אפשר לעיין באירוע המובנה webhook.error. ‫

webhook_not_found: לא הייתה גישה לכתובת URL של webhook. אפשר לעיין באירוע המובנה webhook.error.not-found.
מחרוזת

הגדרה בסיסית

כדי להגדיר את הרכיב המוכן מראש:

  1. מייבאים את הרכיב שהוגדר מראש.
  2. מגדירים את ה-webhooks הגמישים שסופקו, באמצעות הגדרה שמתארת את השירותים החיצוניים שלכם. בהמשך מוסבר איך מגדירים webhook.

הגדרת תגובה לפעולה מאתר אחר (webhook)

כדי להשתמש ברכיב הזה, צריך להגדיר את ה-webhooks הגמישים שכלולים בו כדי לאחזר את המידע הדרוש מהשירותים החיצוניים.

אימות פרטי המשתמש

ה-webhook‏ prebuilt_components_retail_authentication:verify_user_details משמש את הרכיב כדי לאחזר את פרטי חשבון המשתמש על סמך מספר הטלפון שסופק.

פרמטרים של בקשות API

הרכיב מספק את הפרמטרים הבאים כקלט לבקשת ה-API.

שם הפרמטר תיאור פורמט הקלט
‎$session.params.phone_number מספר הטלפון המקומי של המשתמש, ללא קוד המדינה, שמשמש לזיהוי המשתמש. מחרוזת

פרמטרים של תגובה מה-API

הפרמטרים הבאים נשלפים מהתגובה מה-API כדי שהרכיב ישתמש בהם.

שם הפרמטר תיאור פורמט הפלט
אימייל כתובת האימייל שרשומה בחשבון. מחרוזת
all_recent_order_id רשימה של מזהי הזמנות שמשויכים למשתמש המאומת, ממוינת לפי תאריך ביצוע ההזמנה בסדר יורד. הרכיב הראשון במערך מייצג את ההזמנה האחרונה. אם למשתמש אין הזמנות, הערך של הפרמטר הזה הוא null. רשימה (מחרוזת)
user_first_name השם הפרטי של המשתמש, שמשמש לברכת שלום ולאימות הבעלות על החשבון. מחרוזת

כדי להגדיר את ה-webhook לאימות פרטי המשתמש ברכיב הזה, מרחיבים את ההוראות.

  1. פותחים את מסוף Dialogflow CX.
  2. בוחרים את הפרויקט ב-Google Cloud.
  3. בוחרים את הסוכן.
  4. לוחצים על הכרטיסייה ניהול.
  5. לוחצים על Webhooks.
  6. בוחרים את ה-webhook‏ prebuilt_components_retail_authentication:verify_user_details.
  7. מחליפים את כתובת ה-URL בשדה Webhook URL ב-Dialogflow CX בנקודת הקצה של השירות שרוצים לשלב. בוחרים את השיטה המתאימה בתפריט הנפתח.
  8. בודקים ומעדכנים את גוף הבקשה כדי ליצור את פורמט הבקשה המתאים ל-webhook.
  9. בודקים ומעדכנים את Response configuration כדי לחלץ שדות ספציפיים מהתגובה של ה-webhook. אל תשנו את שמות הפרמטרים, כי הם נדרשים לרכיב כדי לגשת לערכי השדות שמוחזרים.
  10. בודקים ומעדכנים את הגדרות האימות לפי הצורך.
  11. לוחצים על Save.

שליחת סיסמה חד-פעמית (OTP)

הרכיב משתמש ב-webhook‏ prebuilt_components_retail_authentication:send_otp כדי לשלוח סיסמה חד-פעמית (OTP) לערוץ רשום שנבחר על ידי משתמש הקצה.

פרמטרים של בקשות API

הרכיב מספק את הפרמטרים הבאים כקלט לבקשת ה-API.

שם הפרמטר תיאור פורמט הקלט
‎$session.params.phone_number מספר הטלפון המקומי של המשתמש, ללא קוד המדינה, שמשמש לזיהוי המשתמש. מחרוזת
$flow.channel הערוץ שהמשתמש בחר לקבל בו את הסיסמה החד-פעמית. הערכים התקינים מוגדרים על ידי הישות המותאמת אישית prebuilt_components_channel_email_phone. כברירת מחדל, יש תמיכה ב-email וב-phone. מחרוזת

פרמטרים של תגובה מה-API

הפרמטרים הבאים נשלפים מהתגובה מה-API כדי שהרכיב ישתמש בהם.

שם הפרמטר תיאור פורמט הפלט
generated_otp הערך של ה-OTP שנוצר ונשלח למשתמש בערוץ שנבחר. מחרוזת

כדי להגדיר את ה-webhook של שליחת OTP לרכיב הזה, מרחיבים את ההוראות.

  1. פותחים את מסוף Dialogflow CX.
  2. בוחרים את הפרויקט ב-Google Cloud.
  3. בוחרים את הסוכן.
  4. לוחצים על הכרטיסייה ניהול.
  5. לוחצים על Webhooks.
  6. בוחרים את ה-webhook‏ prebuilt_components_retail_authentication:send_otp.
  7. מחליפים את כתובת ה-URL בשדה Webhook URL ב-Dialogflow CX בנקודת הקצה של השירות שרוצים לשלב. בוחרים את השיטה המתאימה בתפריט הנפתח.
  8. בודקים ומעדכנים את גוף הבקשה כדי ליצור את פורמט הבקשה המתאים ל-webhook.
  9. בודקים ומעדכנים את Response configuration כדי לחלץ שדות ספציפיים מהתגובה של ה-webhook. אל תשנו את שמות הפרמטרים, כי הם נדרשים לרכיב כדי לגשת לערכי השדות שמוחזרים.
  10. בודקים ומעדכנים את הגדרות האימות לפי הצורך.
  11. לוחצים על Save.

הושלמה

עכשיו הנציג וה-webhooks שלו אמורים להיות מוגדרים ומוכנים לבדיקה.