Bookme Administration Guide

A comprehensive guide for administrators to configure and manage Bookme appointment scheduling features.

Table of Contents

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

  1. Login as Administrator (or Agent) to the Botsplash Dashboard
  2. Navigate to Settings from the top menu
  3. Select Meetings from the side menu
  4. Edit an existing Meeting or create a new one

Configure Form Fields

  1. In the Meeting settings, click the “Form Fields” tab

    Note: If you don’t see this tab, contact your Administrator for access permissions

  2. Select “Customize Form Fields”
  3. Click “Add New Field” to create additional form fields
  4. 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.

Form Fields Configuration

Custom Field Setup

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 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:

  1. Account and agent/team names
  2. Complete URL with parameters
  3. Browser and version information
  4. Console error messages
  5. Expected vs actual behavior
  6. 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.


Copyright © 2025, Rohi LLC. All Rights Reserved.