Pre Chat Form
Pre Chat Form
The widget allows you to display a Pre Chat Form to gather information from users before the chat begins. This form can be customized with a variety of fields and messages.
If your widget does not have a pre-chat form but does transfer users to a helpdesk, make sure to collect the user's name and email address during the chat. You must update the conversation object with these details before sending the "Agent Handover" event to the helpdesk. Reach out to your Solution Engineer for guidance on this process.
Form Properties
- isEnabled: Enable or disable the pre-chat form.
- welcomeMessage: A message displayed at the top of the form. You can use HTML here to style the message.
- suffixMessage: A message displayed at the bottom of the form, often used for disclaimers or links (e.g., Privacy Policy).
- fields: An array of fields, each field represents an input in the pre chat form.
Field Configuration
PrechatFormField = {
type: string; // Type of input element: text | email | select
name: string; // Field name
label: string; // Label text for the field
placeholder: string; // Placeholder text (optional)
options: [{ name: 'option1', label: 'Option 1' }]; // Options for 'select' type fields
validation: {
required: {
value: boolean; // Make the field mandatory
message: string; // Error message if not filled
},
pattern: {
value: string; // Regular expression for validating input
message: string; // Error message for pattern mismatch
},
maxLength: {
value: number; // Maximum allowed characters
message: string; // Error message if input exceeds max length
}
},
metadata: {
systemField: string; // Use 'name' or 'email' to map fields to the user's details
}
};
Example Configuration:
prechatForm: {
isEnabled: true,
welcomeMessage: '<h2>Hi, I\'m the DG bot!</h2><p>How can I help?</p>',
suffixMessage: 'By talking with us today, you accept our <a href="#">Privacy Policy</a>.',
fields: [
{
type: 'text',
name: 'name',
label: 'Enter your name',
placeholder: 'Please enter your name',
validation: {
required: { value: true, message: 'Name is required' },
maxLength: { value: 30, message: 'Name is too long' },
},
metadata: { systemField: 'name' },
},
{
type: 'email',
name: 'email',
label: 'Enter your email',
placeholder: 'Please enter your email address',
validation: {
required: { value: true, message: 'Email is required' },
pattern: {
value: '^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$',
message: 'Please enter a valid email',
}
},
metadata: { systemField: 'email' },
},
{
type: 'select',
name: 'options',
label: 'Select an option',
placeholder: 'Choose...',
options: [
{ name: 'buy', label: 'Buy' },
{ name: 'sell', label: 'Sell' }
],
validation: {
required: { value: true, message: 'An option must be selected' },
}
}
]
}
Supported Input Types
- Text: Single-line text input.
- Email: Input field for email addresses, validated with a regex pattern.
- Select: Dropdown list with selectable options.
Validation Rules
Each field can have validation rules:
- Required: Determines if the field must be filled.
- Pattern: A custom regular expression to validate input.
- MaxLength: The maximum number of characters allowed.
Updated about 2 months ago
What’s Next