The component provides a prepackaged solution to get your user's phone number.
You can install the component using npm:
$ npm install --save jovo-component-get-phone-number
After that, you use the Jovo CLI to transfer the component's files to your project using te load
command:
$ jovo load jovo-component-get-phone-number
Last but not least you have to include the component in your app.js
:
// @language=typescript
// src/app.ts
import { GetPhoneNumber } from './components/jovo-component-get-phone-number';
app.useComponents(new GetPhoneNumber());
// @language=javascript
// src/app.js
const { GetPhoneNumber } = require('../components/jovo-component-get-phone-number/index');
app.useComponents(new GetPhoneNumber());
SSML tags are not included in sample dialogs, but might be included in the responses.
Sample Dialog #1
User | Alexa Speech | Alexa Reprompt | Keys |
---|---|---|---|
Please tell me your phone number. | start-question | ||
It's 0123456789 | |||
OK, I got {{phoneNumber}}. Is that correct? | Is your phone number really {{phoneNumber}} | confirm-question, confirm-reprompt | |
Yes. |
Sample Dialog #2
User | Alexa Speech | Alexa Reprompt | Keys |
---|---|---|---|
Please tell me your phone number. | start-question | ||
It's 0123456789 | |||
OK, I got {{phoneNumber}}. Is that correct? | Is your phone number really {{phoneNumber}} | confirm-question, confirm-reprompt | |
No | |||
Alright, let's try again. What is your phone number? | Please tell me your phone number digit by digit. | confirm-reject, reprompt | |
It's 0123456789 | |||
OK, I got {{phoneNumber}}. Is that correct? | Is your phone number really {{phoneNumber}} | confirm-question, confirm-reprompt | |
Yes. |
Sample Dialog #3
System understood phone number wrong X times:User | Alexa Speech | Alexa Reprompt | Keys |
---|---|---|---|
Alright, let's try again. What is your phone number? | Please tell me your phone number digit by digit. | confirm-reject, reprompt | |
It's 0123456789 | |||
OK, I got {{phoneNumber}}. Is that correct? | Is your phone number really {{phoneNumber}} | confirm-question, confirm-reprompt | |
No | |||
Unfortunately, I have some problems understanding your phone number. Let's slow down, please tell me the first three digits of your number. | sequence-start | ||
012 | |||
I got {{sequence}}. Is that correct? | sequence-confirm-question | ||
Yes | |||
Great! Please continue with the next three digits of your phone number. | Please tell me the next three digits of your phone number. | sequence-question, sequence-reprompt | |
345 | |||
I got {{sequence}}. Is that correct? | sequence-confirm-question | ||
Yes | |||
Great! Now tell me the last four digits please. | Tell me the last four digits of your phone number please. | sequence-last-digits-question, sequence-last-digits-reprompt | |
6789 | |||
I got {{sequence}}. Is that correct? | sequence-confirm-question | ||
Yes |
Sample Dialog #4
System understood phone number wrong X times:User | Alexa Speech | Alexa Reprompt | Keys |
---|---|---|---|
Alright, let's try again. What is your phone number? | Please tell me your phone number digit by digit. | confirm-reject, reprompt | |
It's 0123456789 | |||
OK, I got {{phoneNumber}}. Is that correct? | Is your phone number really {{phoneNumber}} | confirm-question, confirm-reprompt | |
No | |||
Unfortunately, I have some problems understanding your phone number. Let's slow down, please tell me the first three digits of your number. | sequence-start | ||
012 | |||
I got {{sequence}}. Is that correct? | sequence-confirm-question | ||
No | |||
Oh, sorry! Could you say these digits again? | sequence-confirm-reject |
<---> continue just like in dialog #3 <--->
The component's $response
has the following interface:
{
status: "SUCCESSFUL" | "REJECTED" | "ERROR",
data: {
phoneNumber: "string" // E164 format
}
}
The data
property will only be defined, if the component was successful!
The component only provides one option you can configure. It's the numberOfFails
property, determining when the component should switch to the sequence mode, where it asks the user to input their phone number in a sequence of 3 digits, instead of the whole number at once.
Inside your project's config.js
override the default value, which is 3
:
// config.js
module.exports = {
// ...
components: {
'jovo-component-get-phone-number': {
numberOfFails: 5,
},
},
};
Find out more about Conversational Component's configuration