Contact Form & Demo Booking
Contact Form & Demo Booking
The /contact page provides a public, unauthenticated way for visitors to submit inquiries, request demos, and — optionally — book a time directly via an embedded Calendly calendar.
Accessing the Page
The contact page is publicly accessible at /contact with no login required. A "Contact" link is included in the main navigation bar and footer on the home page.
Inquiry Form
Fields
| Field | Required | Notes |
|---|---|---|
| Full Name | ✅ | Max 200 characters |
| ✅ | Must be a valid email; max 320 characters | |
| Company Name | ❌ | Max 200 characters |
| Telephone | ❌ | Max 30 characters |
| Inquiry Type | ✅ | See options below |
| Message | ✅ | Max 5,000 characters |
| GDPR Consent | ✅ | Checkbox linking to Privacy Policy — must be checked |
Inquiry Types
- Request a Demo — default selection
- Call Back
- Support Query
- More Information
- Other
Form Behaviour
- Field-level validation errors are shown inline after a failed submission attempt
- Errors for a field are cleared as soon as the user edits that field
- A loading spinner is shown while the submission is in progress
- On success, the form is replaced by a confirmation message
- On network failure, a general error message is displayed
Calendly Widget (Optional)
When the environment variable NEXT_PUBLIC_CALENDLY_URL is set to a valid Calendly scheduling page URL, an embedded calendar widget is displayed on the contact page so visitors can book a slot directly.
If the variable is not set, a fallback message is shown in its place.
NEXT_PUBLIC_CALENDLY_URL=https://calendly.com/your-org/demo
Direct Contact Details
The page also displays static direct contact information: phone number, email address, registered office address, and business hours.
GDPR Compliance
- Consent is captured explicitly via a required checkbox before submission
- The submitter's IP address is recorded alongside each inquiry for audit purposes
- All data is stored in the
contactInquiriesdatabase table
Email Notifications (Optional)
When both the email integration is configured and CONTACT_FORM_NOTIFY_EMAIL is set, the system sends an HTML notification email for every new form submission.
CONTACT_FORM_NOTIFY_EMAIL=sales@your-company.com
The notification email includes all submitted fields (name, email, company, telephone, inquiry type, message), the GDPR consent confirmation, the submission timestamp, and the submitter's IP address.
If email is not configured or the variable is not set, the submission is still stored in the database — the notification is simply skipped.
API Endpoint
See the POST /api/contact API reference for full request/response details.