Where custom fields go: three regions.
A custom field is placed in one of three named regions of the booking
form, not after an arbitrary field. This is what keeps a customer's
configuration working when the default form changes.
Testing a configuration without booking. The widget posts to the live booking endpoint in every build, so a test page must set
contact— under the patient's email and phone.insurance— under the insurance questions.end— last, just above the buttons.
"region": "contact" and
"region": "insurance". Older configurations that use
"after": "custom_fields_after_patient_details" or
"after": "custom_fields_after_insurance" keep working
unchanged — they map to the contact and insurance regions. So does
after/before naming any other default field:
the insert snaps to whichever region that field lives in.
removeFieldIds and modifyFields are unchanged.
Testing a configuration without booking. The widget posts to the live booking endpoint in every build, so a test page must set
window.GSP_DRY_RUN = true before the
scheduler.js script tag. The submit is then logged to
the console and nothing is booked. Every page under
public/testing/ does this.
Field Types
Textfield
Textarea
Telephone
Email
Date
Number
Select
Button Group
Checkbox
Checkboxes
Form Canvas
Contact region — under email & phone
Drag field types here
Insurance region — under the insurance questions
Drag field types here
Field Editor
Select a field to edit its properties
Remove Fields (Manual endpoint update may be required)
Implementation Code