הרכיב המובנה לאימות קמעונאי אוסף מידע מהמשתמש כדי לאמת אותו לרמת האימות הנדרשת. המרכיב הזה כולל דרישות אימות שמשותפות לתחום הקמעונאות, אבל לא רק לו. הרכיב הזה משתמש ברכיב המובנה מראש Telephone number collection (איסוף מספרי טלפון) כדי לאסוף ולאמת את פרטי המשתמשים.
רמות אימות
יש כמה רמות של אימות שנדרשות על ידי רכיבים שונים שנוצרו מראש, וברמות גבוהות יותר נדרש מידע נוסף על המשתמש כדי לאמת אותו. רכיב האימות הקמעונאי מאפשר למשתמשים לעבור אימות ברמה 0 (התאמה של מספר הטלפון) או ברמה 1 (בסיסית), כפי שמתואר בטבלה של רמות האימות.
| רמת האימות | דרישות |
|---|---|
| רמה 0: התאמה של מספר הטלפון של המתקשר | המשתמש מאומת באמצעות התקשרות ממספר טלפון שתואם לחשבון רשום או באמצעות מסירת מספר טלפון שתואם לחשבון רשום. משתמש יכול לעבור אימות לרמה 0 באמצעות המרכיב המובנה של הודעת הפתיחה. |
| רמה 1: בסיסית | המשתמש מאומת באמצעות אימות של קוד סיסמה חד-פעמית (OTP) שנשלח לאימייל או למספר הטלפון שלו. |
סוגי משתמשים נתמכים
רכיב האימות הקמעונאי מספק תמיכה למשתמשים עם מספר טלפון וכתובת אימייל רשומים.
מגבלות
בנוסף למגבלות הנפוצות של רכיבים מוכנים מראש, לרכיב המוכן מראש הזה יש את המגבלות הבאות:
- הסיסמאות החד-פעמיות יישלחו רק למספר טלפון נייד או לכתובת אימייל שרשומים על שם המשתמש. הרכיב לא ישתמש ב-OTP כדי לאמת לקוחות שמתקשרים ממספר טלפון חלופי שלא רשום בחשבון שלהם. כשמשתמש מתקשר ממספר טלפון חלופי, שאלות האבטחה ישמשו לאימות המתקשר.
- הרכיב הזה לא מצפין נתונים.
דוגמאות לתיבות דו-שיח
בדוגמאות הבאות לדיאלוגים מוצגים תרחישים נפוצים שמטופלים על ידי הרכיב המובנה הזה. דיאלוגים לדוגמה שמדגימים את ההתנהגות כשקוראים לרכיב באמצעות טלפוניה, מה שמפעיל את כוונת הפתיחה שמוגדרת כברירת מחדל ואת התגובה הראשונה של הנציג בתחילת השיחה.
אימות ברמה 0 בוצע בהצלחה: התאמה של מספר הטלפון המתקשר (ANI)
המשתמש מתקשר ממספר טלפון שרשום בחשבון קיים, מאשר את החשבון שלו ומאומת בהצלחה לרמה 0.
| קלט של משתמשים | התשובה של הסוכן |
|---|---|
| שלום, המספר שאליו התקשרת מקושר לחשבון של יוחנן. האם יש לך שאלה לגבי הזמנה של אדם אחר? אם זה המצב, צריך להגיד 'כן'. אחרת, צריך להגיד 'לא'. | |
| לא | |
| תודה, יוני. הזיהוי שלך בוצע בהצלחה. |
האימות ברמה 1 בוצע בהצלחה: OTP
המשתמש מתקשר ממספר טלפון לא מזוהה. הרכיב אוסף את מספר הטלפון הרשום של המשתמש, ואז שולח קוד אימות חד-פעמי ומבקש מהמשתמש לאשר אותו בערוץ שהוא בחר. המשתמש יכול לספק סיסמה חד-פעמית תקפה ועבר אימות בהצלחה לרמה 1.
| קלט של משתמשים | התשובה של הסוכן |
|---|---|
| לא מצאנו מספר טלפון שמשויך אלינו. עליך לציין את מספר הטלפון הרשום. | |
| הנציג אוסף את מספר הטלפון באמצעות רכיב מוכן מראש של אוסף מספרי טלפון | |
| מעולה, סיימנו לאסוף את מספר הטלפון. מטעמי אבטחה, אנחנו צריכים לאמת את הזהות שלך, ולכן נשלח לך קוד. איך תרצה לקבל את הקוד – בטלפון או באימייל? |
|
| טלפון | |
| רק אוודא – רוצה לקבל את ה-OTP בטלפון? צריך לומר 'כן' או 'לא'. | |
| כן | |
| שלחנו קוד למספר הטלפון הרשום שלך שמסתיים ב-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. |
מספר שלם |
כדי להגדיר את פרמטרי הקלט של הרכיב הזה, מרחיבים את ההוראות.
- פותחים את מסוף Dialogflow CX.
- בוחרים את הפרויקט ב-Google Cloud.
- בוחרים את הסוכן.
- בוחרים בכרטיסייה Build (פיתוח).
- לוחצים על הרכיב המיובא בקטע Flows (תהליכי עבודה).
- בקטע דפים, לוחצים על דף הפתיחה.
- לוחצים על המסלול true בדף הפתיחה.
- בחלון Route (מסלול), עורכים את הערכים של Parameter Presets (הגדרות קבועות מראש של פרמטרים) לפי הצורך.
- לוחצים על 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. |
מחרוזת |
הגדרה בסיסית
כדי להגדיר את הרכיב המובנה הזה:
- מייבאים את הרכיב שנוצר מראש.
- מגדירים את ה-webhooks הגמישים שסופקו עם הגדרה שמתארת את השירותים החיצוניים. פרטים נוספים מופיעים בקטע 'הגדרת webhook' בהמשך.
הגדרת webhook
כדי להשתמש ברכיב הזה, תצטרכו להגדיר את הוויבהוקים הגמישים שכלולים בו כדי לאחזר את המידע הדרוש מהשירותים החיצוניים שלכם.
אימות פרטי המשתמש
רכיב ה-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 של אימות פרטי המשתמש עבור הרכיב הזה, מרחיבים את ההוראות.
- פותחים את מסוף Dialogflow CX.
- בוחרים את הפרויקט ב-Google Cloud.
- בוחרים את הסוכן.
- לוחצים על הכרטיסייה ניהול.
- לוחצים על Webhooks.
- בוחרים את ה-webhook prebuilt_components_retail_authentication:verify_user_details.
- מחליפים את כתובת ה-URL בשדה Webhook URL ב-Dialogflow CX בנקודת הקצה של השירות שאותו רוצים לשלב. בוחרים את השיטה המתאימה בתפריט הנפתח.
- בודקים ומעדכנים את גוף הבקשה כדי ליצור את פורמט הבקשה המתאים ל-Webhook.
- בודקים ומעדכנים את הגדרות התגובה כדי לחלץ שדות ספציפיים מהתגובה של ה-webhook. אל תשנו את שמות הפרמטרים, כי הרכיב צריך אותם כדי לגשת לערכי השדות שמוחזרים.
- בודקים את הגדרות האימות ומעדכנים אותן לפי הצורך.
- לוחצים על Save.
שליחת סיסמה חד-פעמית
רכיב ה-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 | הערך של הסיסמה החד-פעמית שנוצרה ונשלחה למשתמש באמצעות הערוץ שנבחר. | מחרוזת |
כדי להגדיר את התגובה לפעולה מאתר אחר (webhook) לשליחת קוד אימות חד-פעמי (OTP) לרכיב הזה, מרחיבים את ההוראות.
- פותחים את מסוף Dialogflow CX.
- בוחרים את הפרויקט ב-Google Cloud.
- בוחרים את הסוכן.
- לוחצים על הכרטיסייה ניהול.
- לוחצים על Webhooks.
- בוחרים ב-webhook של prebuilt_components_retail_authentication:send_otp.
- מחליפים את כתובת ה-URL בשדה Webhook URL ב-Dialogflow CX בנקודת הקצה של השירות שאותו רוצים לשלב. בוחרים את השיטה המתאימה בתפריט הנפתח.
- בודקים ומעדכנים את גוף הבקשה כדי ליצור את פורמט הבקשה המתאים ל-Webhook.
- בודקים ומעדכנים את הגדרות התגובה כדי לחלץ שדות ספציפיים מהתגובה של ה-webhook. אל תשנו את שמות הפרמטרים, כי הרכיב צריך אותם כדי לגשת לערכי השדות שמוחזרים.
- בודקים את הגדרות האימות ומעדכנים אותן לפי הצורך.
- לוחצים על Save.
הושלמה
הסוכן ורכיבי ה-webhook שלו אמורים להיות מוגדרים עכשיו ומוכנים לבדיקה.