Bookme Administration Guide
A comprehensive guide for administrators to configure and manage Bookme appointment scheduling features.
Table of Contents
- Overview
- Custom Form Fields Setup
- Pre-filling Custom Fields
- Advanced Configuration
- Best Practices
- Troubleshooting
Overview
Bookme administration allows you to customize the booking experience by:
- Creating custom form fields for collecting specific visitor information
- Configuring required fields and validation rules
- Pre-populating form data through URL parameters
- Managing meeting types and availability settings
Prerequisites:
- Administrator or Agent access to the Botsplash Dashboard
- Meeting setup permissions
Custom Form Fields Setup
Access Meeting Configuration
- Login as Administrator (or Agent) to the Botsplash Dashboard
- Navigate to Settings from the top menu
- Select Meetings from the side menu
- Edit an existing Meeting or create a new one
Configure Form Fields
- In the Meeting settings, click the “Form Fields” tab
Note: If you don’t see this tab, contact your Administrator for access permissions
- Select “Customize Form Fields”
- Click “Add New Field” to create additional form fields
- Fill in the required field details and configuration
Important: The field name specified during configuration can be used later to pass pre-filled data via URL parameters.


Field Configuration Options
| Setting | Description | Usage |
|---|---|---|
| Field Name | Internal identifier | Use for URL parameters |
| Display Label | Visible form label | Customer-facing text |
| Field Type | Input type (text, email, phone, etc.) | Controls validation |
| Required | Mark field as mandatory | Forces completion |
| Default Value | Pre-populated value | Optional starter text |
Pre-filling Custom Fields
Bookme supports automatic form completion by passing visitor data through URL query string parameters. When all required fields are provided, the booking form can be bypassed entirely upon meeting date/time selection.
Required Form Fields
Bookme evaluates required fields based on:
- System default required fields (always needed)
- Custom fields marked as required in form customization settings
System Default Required Fields
| Parameter | Description | Example |
|---|---|---|
firstName | Visitor’s First Name | firstName=John |
lastName | Visitor’s Last Name | lastName=Doe |
email | Visitor’s Email Address | email=jdoe%40example.com |
phoneNumber | Visitor’s Phone Number | phoneNumber=2220002200 |
Additional Supported System Fields
| Parameter | Description | Usage |
|---|---|---|
vid | Botsplash Visitor ID | Links fields to visitor session |
clientVisitorId | External CRM ID | Links to external systems |
URL Parameter Usage
Basic Example
https://bookme.botsplash.com/botsplash/jane?firstName=John&lastName=Doe&email=jdoe%40test.com&phoneNumber=2220002200
With Custom Fields
https://bookme.botsplash.com/botsplash/jane?firstName=John&lastName=Doe&email=jdoe%40test.com&phoneNumber=2220002200&company=ACME&department=Sales&source=website
Integration Examples
Direct Link Usage:
<a href="https://bookme.botsplash.com/botsplash/jane?firstName=John&lastName=Doe&email=jdoe%40test.com&phoneNumber=2220002200">
Book Appointment
</a>
Iframe Integration:
<iframe
src="https://bookme.botsplash.com/botsplash/jane?firstName=John&lastName=Doe&email=jdoe%40test.com&phoneNumber=2220002200"
width="100%"
height="600px"
frameborder="0"
title="Book Appointment">
</iframe>
Widget SDK Integration:
window.$bookme.load('booking-container', {
account: 'botsplash',
agent: 'jane',
visitorData: {
firstName: 'John',
lastName: 'Doe',
email: 'jdoe@test.com',
phoneNumber: '2220002200',
company: 'ACME Corp',
source: 'website'
}
});
Dynamic Parameter Generation
function generateBookingURL(baseUrl, visitorData) {
const params = new URLSearchParams();
// Add required fields
if (visitorData.firstName) params.set('firstName', visitorData.firstName);
if (visitorData.lastName) params.set('lastName', visitorData.lastName);
if (visitorData.email) params.set('email', visitorData.email);
if (visitorData.phoneNumber) params.set('phoneNumber', visitorData.phoneNumber);
// Add custom fields
Object.keys(visitorData).forEach(key => {
if (!['firstName', 'lastName', 'email', 'phoneNumber'].includes(key)) {
params.set(key, visitorData[key]);
}
});
return `${baseUrl}?${params.toString()}`;
}
// Usage example
const visitorData = {
firstName: 'Sarah',
lastName: 'Johnson',
email: 'sarah.j@company.com',
phoneNumber: '555-123-4567',
company: 'Tech Solutions Inc',
role: 'Marketing Director',
source: 'linkedin'
};
const bookingUrl = generateBookingURL(
'https://bookme.botsplash.com/botsplash/sales-agent',
visitorData
);
Advanced Configuration
Field Validation Rules
Configure validation for custom fields:
| Field Type | Validation Options | Examples |
|---|---|---|
| Text | Min/max length, required | Name fields, addresses |
| Email format validation | Contact information | |
| Phone | Phone format, country codes | Phone numbers |
| Number | Min/max values, decimals | Ages, quantities |
| Date | Date ranges, format | Appointment preferences |
| Select | Predefined options | Dropdown choices |
Conditional Field Display
Set up conditional logic for form fields:
- Show/hide fields based on previous selections
- Required field rules based on meeting type
- Dynamic validation based on visitor type
Integration with CRM Systems
Link custom fields to external systems:
// Example: Salesforce integration
const crmData = {
clientVisitorId: salesforceContactId,
campaignSource: 'web-form',
leadScore: calculateLeadScore(),
customField1: 'value1',
customField2: 'value2'
};
const bookingUrl = generateBookingURL(baseUrl, crmData);
Best Practices
1. Field Naming Conventions
// ✅ Good - Clear, consistent naming
firstName, lastName, companyName, phoneNumber
// ❌ Avoid - Unclear or inconsistent
fn, l_name, company_name, phone
2. URL Parameter Encoding
// ✅ Proper encoding
const email = encodeURIComponent('user+test@example.com');
const company = encodeURIComponent('Johnson & Associates');
// ❌ Missing encoding - will cause issues
const url = 'https://bookme.botsplash.com/agent?email=user+test@example.com';
3. Required Fields Management
- Keep required fields to a minimum for better conversion
- Use progressive disclosure for optional information
- Clearly mark required vs optional fields in form design
4. Data Privacy Compliance
- Only collect necessary information
- Ensure GDPR/CCPA compliance for personal data
- Implement proper data retention policies
- Secure transmission of sensitive information
Troubleshooting
Common Issues
Custom Fields Not Appearing
Symptoms: Newly created fields don’t show in booking form.
Solutions:
- Verify field is marked as “Active” in settings
- Check meeting type configuration includes the field
- Clear browser cache and test again
- Confirm user has proper permissions
Pre-filled Data Not Working
Symptoms: URL parameters not populating form fields.
Solutions:
- Verify parameter names match field configuration exactly
- Ensure proper URL encoding for special characters
- Test with minimal parameter set first
- Check browser console for JavaScript errors
Validation Errors
Symptoms: Form validation prevents submission despite correct data.
Solutions:
// Check parameter formatting
const phoneNumber = phoneInput.replace(/[^\d]/g, ''); // Remove non-digits
const email = emailInput.toLowerCase().trim(); // Normalize email
// Verify required field completion
const requiredFields = ['firstName', 'lastName', 'email', 'phoneNumber'];
const missingFields = requiredFields.filter(field => !formData[field]);
Integration Issues
Symptoms: Booking form not loading in iframe or widget.
Solutions:
- Test URL directly in browser first
- Check for CORS issues with embedding domain
- Verify account and agent names are correct
- Ensure proper iframe dimensions and attributes
Debug Mode
Enable debug mode to troubleshoot integration issues:
// Add debug parameter to URL
const debugUrl = baseUrl + '?debug=true&firstName=John&lastName=Doe';
// Or via Widget SDK
window.$bookme.load('container', {
account: 'your-account',
agent: 'agent-name',
debug: true,
visitorData: visitorData
});
Support Escalation
When contacting support, include:
- Account and agent/team names
- Complete URL with parameters
- Browser and version information
- Console error messages
- Expected vs actual behavior
- Screenshots of configuration screens
Support
For additional assistance with Bookme administration:
- General Setup: Review this documentation and test configurations
- Custom Implementation: Check integration-specific guides (Iframe, Widget SDK)
- Technical Issues: Email support@botsplash.com with detailed information
- Account Configuration: Contact your Botsplash Administrator
This guide covers Bookme administration and custom field configuration. For integration implementation, see the Integration Options documentation.