Docs
Technical reference

Key Components and Data Models

A look at the key components and data models in the Scheduler system.

Key Components and Data Models

This article provides a more detailed look at the key components of the Scheduler application, both on the backend and the frontend, as well as the high-level data model for the settings.

Key Backend Areas

  • controllers/settingsController.js: This controller is responsible for loading and saving the workflow settings.
  • models/Settings_Schema.js: This file defines the schema for the workflow-scoped settings, which are isolated on a per-organisation basis.
  • routes/searchRoutes.js: This file contains the API endpoints for the slot search functionality.
  • controllers/bookingFormController.js: This controller handles the submission of the booking form and the integration with Zoho's lead conversion process.
  • scripts/convertLead.js: This is a helper script for handling lead conversion, using the settings-driven mappings.

Key Frontend Areas

  • components/SettingsPage.js: This component provides the end-to-end interface for configuring a workflow.
  • components/BookingForm.js: This component renders the required fields for the booking form and enforces any mandatory Deal fields that are not automatically mapped.
  • components/SearchResultsPage.js: This component is responsible for rendering the results from the /search API endpoint.

Settings Data Model

The settings for a workflow are stored in a data model with the following high-level structure:

  • workflowId, workflowName
  • sourceModule, destinationModule, createMeeting
  • appFieldMapping[] (fixed app fields to CRM targets)
  • crmModuleFields[] (copied module field catalogues with flags like showInBookingForm, required)
  • fieldAgents[] (selected CRM user IDs)
  • validityFilter (destination criteria)
  • defaultMeetingDuration, defaultWeeksInAdvance
  • defaultAppointmentSlots[] (e.g., 10:00, 13:00, 16:00)
  • notifications{ system, webhookUrl }