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. The two canvases below write "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

            
            
            
Copied to clipboard!