# Form Audit Report

**Last Updated:** 2026-02-17

> **Note:** For GA/GTM tracking status and conversion types, see [CONVERSION_POINTS_AUDIT.md](../systems/analytics/CONVERSION_POINTS_AUDIT.md) and [GA4_EVENT_NAMING.md](../systems/analytics/GA4_EVENT_NAMING.md).

> **Note:** For comprehensive form documentation, see:
>
> - **[Form-to-Page Mapping](systems/forms/FORM_TO_PAGE_MAPPING.md)** - Complete mapping of forms to pages
> - **[Form Configuration Reference](systems/forms/FORM_CONFIGURATION_REFERENCE.md)** - Form GUIDs and field mappings
> - **[HubSpot API Reference](systems/apis/HUBSPOT_API_REFERENCE.md)** - Complete API endpoint documentation

## Executive Summary

This audit identified **24 acquisition forms** across the Ordio website, categorized into three types:

- **1 HubSpot Embedded Form** - Uses HubSpot's embedded form widget
- **15 Custom HTML Forms** - Standard HTML forms with various submission handlers
- **8 API-Based Form Submissions** - Forms that submit via API endpoints

All forms are configured to submit to HubSpot for lead capture and CRM integration.

## Form Distribution by Type

### HubSpot Embedded Forms (1)

These forms use HubSpot's `hbspt.forms.create()` JavaScript API and are embedded directly in the page.

| Form ID                                | Form Name | Location           | Purpose          |
| -------------------------------------- | --------- | ------------------ | ---------------- |
| `ad1036ce-33ec-463b-adde-2fa546324c8a` | SDR Form  | `/sdr`, `/sdr-neu` | SDR lead capture |

**Tracking Requirements:**

- Must hook into `onFormSubmit` and `onFormSubmitted` callbacks
- Form ID and portal ID available in form configuration
- Region: `eu1`, Portal: `145133546`

### Custom HTML Forms (15)

These are standard HTML `<form>` elements that submit to various handlers.

#### Primary Lead Capture Forms

| Form ID     | Form Name         | Action     | Location           | HubSpot GUID                           |
| ----------- | ----------------- | ---------- | ------------------ | -------------------------------------- |
| `demo-form` | Main Lead Capture | `/form-hs` | Multiple pages     | `9b93ee13-fad2-4ce8-8ea2-4e588932af2a` |
| `demo-form` | SDR Lead Capture  | `/form-hs` | `/sdr`, `/sdr-neu` | `9b93ee13-fad2-4ce8-8ea2-4e588932af2a` |
| `emailForm` | Hero Email Form   | Direct API | Hero sections      | `c1d24914-f2a2-4371-b12a-7217553f5897` |

#### Gated Content Forms

| Form ID        | Form Name            | Action     | Location           | HubSpot GUID                           |
| -------------- | -------------------- | ---------- | ------------------ | -------------------------------------- |
| `content-form` | Gated Content        | `/form-hs` | Download pages     | `c74e1237-6b52-4a16-bac7-daaf98881e63` |
| `content-form` | Webinar Registration | `/form-hs` | Webinar pages      | `c74e1237-6b52-4a16-bac7-daaf98881e63` |
| `unlock-form`  | ShiftOps Report      | Direct API | `/shiftops/report` | N/A                                    |

#### Lead Capture Popup Forms

| Form ID                   | Form Name           | Action     | Location        | HubSpot GUID                           |
| ------------------------- | ------------------- | ---------- | --------------- | -------------------------------------- |
| `lead-capture-form-step1` | Lead Capture Step 1 | Direct API | Popup component | `9f9d4e35-d8d9-4283-93b6-1a789e0a1281` |
| `lead-capture-form-step2` | Lead Capture Step 2 | Direct API | Popup component | `9f9d4e35-d8d9-4283-93b6-1a789e0a1281` |

#### Event & Webinar Forms

| Form ID                     | Form Name           | Action     | Location                   | HubSpot GUID                           |
| --------------------------- | ------------------- | ---------- | -------------------------- | -------------------------------------- |
| `supper-club-form`          | Supper Club Event   | `/form-hs` | `/event-supper-club`       | `c74e1237-6b52-4a16-bac7-daaf98881e63` |
| `webinar-registration-form` | Webinar (Product)   | Direct API | `/product/webinar`         | N/A                                    |
| `webinar-registration-form` | Webinar (Payroll)   | Direct API | `/product/payroll-webinar` | N/A                                    |
| `webinar-registration-form` | Webinar (Trinkgeld) | Direct API | `/webinar/trinkgeld`       | N/A                                    |

#### Pricing & Enterprise Forms

| Form ID          | Form Name          | Action     | Location            | HubSpot GUID                           |
| ---------------- | ------------------ | ---------- | ------------------- | -------------------------------------- |
| `addonForm`      | Add-on Pricing     | Direct API | Pricing pages       | `c2022eda-c9b4-4010-a02d-d920852585b1` |
| `enterpriseForm` | Enterprise Contact | Direct API | Enterprise sections | N/A                                    |

#### Calculator Export Forms

| Form ID           | Form Name         | Action     | Location         | HubSpot GUID                           |
| ----------------- | ----------------- | ---------- | ---------------- | -------------------------------------- |
| `exportEmailForm` | Calculator Export | Direct API | Calculator pages | `a91b263c-7ca2-418b-b35c-9664c30e968b` |

### API-Based Form Submissions (8)

These forms submit data via API endpoints that handle HubSpot integration server-side.

| Endpoint               | Form Name              | HubSpot GUID                           | Constant       | Purpose                             |
| ---------------------- | ---------------------- | -------------------------------------- | -------------- | ----------------------------------- |
| `lead-capture.php`     | Lead Capture API       | `9f9d4e35-d8d9-4283-93b6-1a789e0a1281` | `LEAD_CAPTURE` | Two-step progressive lead capture   |
| `collect-lead.php`     | Tools Lead Collection  | `a91b263c-7ca2-418b-b35c-9664c30e968b` | `TOOLS`        | Universal form for calculator tools |
| `submit-template.php`  | Template Download      | `11e392f7-aece-4969-8c39-402ee6cb2330` | `TEMPLATE`     | Template download submissions       |
| `addon-request.php`    | Add-on Pricing Request | `c2022eda-c9b4-4010-a02d-d920852585b1` | `ADDON`        | Add-on pricing inquiries            |
| `generate_excel.php`   | Excel Generator        | `c2022eda-c9b4-4010-a02d-d920852585b1` | `EXCEL`        | Excel template generation           |
| `export-workdays.php`  | Workdays Export        | `a91b263c-7ca2-418b-b35c-9664c30e968b` | `WORKDAYS`     | Workdays calculator export          |
| `shiftops-hubspot.php` | ShiftOps Report        | `41d07332-6697-4daa-b27e-dd60515f9c0f` | `SHIFTOPS`     | ShiftOps report generation          |
| `shiftops-nps.php`     | ShiftOps NPS Survey    | `804459f7-c18d-4da6-8a0b-a81f44bb8275` | `SHIFTOPS_NPS` | NPS survey submissions              |

## Form Handler Analysis

### `/form-hs` Handler

The `/form-hs` endpoint (`html/form-hs.php`) handles multiple form types based on form title and type:

- **Main Lead Capture**: `9b93ee13-fad2-4ce8-8ea2-4e588932af2a`
- **Demo Form**: `535143d6-9521-45b0-bea3-c13b078b8668`
- **Content/Webinar/Event**: `c74e1237-6b52-4a16-bac7-daaf98881e63`

**Tracking Requirements:**

- Form title determines which HubSpot form is used
- Must track form submission before redirect
- Form type parameter (`formtype`) also affects form selection

## HubSpot Form GUID Reference

All form GUIDs are centralized in `v2/config/hubspot-config.php`:

| Constant                         | GUID                                   | Used By                           |
| -------------------------------- | -------------------------------------- | --------------------------------- |
| `HUBSPOT_FORM_GUID_LEAD_CAPTURE` | `9f9d4e35-d8d9-4283-93b6-1a789e0a1281` | Lead capture popup, API           |
| `HUBSPOT_FORM_GUID_TOOLS`        | `a91b263c-7ca2-418b-b35c-9664c30e968b` | Calculator tools, workdays export |
| `HUBSPOT_FORM_GUID_TEMPLATE`     | `11e392f7-aece-4969-8c39-402ee6cb2330` | Template downloads                |
| `HUBSPOT_FORM_GUID_ADDON`        | `c2022eda-c9b4-4010-a02d-d920852585b1` | Add-on pricing, Excel generator   |
| `HUBSPOT_FORM_GUID_SHIFTOPS`     | `41d07332-6697-4daa-b27e-dd60515f9c0f` | ShiftOps reports                  |
| `HUBSPOT_FORM_GUID_SHIFTOPS_NPS` | `804459f7-c18d-4da6-8a0b-a81f44bb8275` | ShiftOps NPS surveys              |

**Additional Form GUIDs (hardcoded in handlers):**

- Main Lead Capture: `9b93ee13-fad2-4ce8-8ea2-4e588932af2a`
- Demo Form: `535143d6-9521-45b0-bea3-c13b078b8668`
- Content/Webinar/Event: `c74e1237-6b52-4a16-bac7-daaf98881e63`
- Hero Email: `c1d24914-f2a2-4371-b12a-7217553f5897`

## Page Location Mapping

### Forms Included in Multiple Pages (Components)

- `include_form-hs.php` - Main lead capture form (used across site)
- `include_form-hs-sdr.php` - SDR lead capture form
- `include_form-gated-content.php` - Gated content forms
- `include_form-webinar.php` - Webinar registration forms
- `include_email_form.php` - Hero email capture
- `include_form-hubspot-sdr.php` - HubSpot embedded SDR form
- `sections/pricing-addons.php` - Add-on pricing form
- `sections/enterprise-box.php` - Enterprise contact form
- `components/lead-capture-popup.php` - Lead capture popup (two-step)

### Single-Page Forms

- `/sdr`, `/sdr-neu` - SDR forms
- `/event-supper-club` - Supper Club event form
- `/product/webinar` - Product webinar registration
- `/product/payroll-webinar` - Payroll webinar registration
- `/webinar/trinkgeld` - Trinkgeld webinar registration
- `/shiftops/report` - ShiftOps report unlock form
- Calculator pages - Export email forms

## Recommendations

### 1. GTM Tracking Implementation

**Priority Forms for Tracking:**

1. **Main Lead Capture** (`demo-form`) - Highest volume, primary conversion
2. **Hero Email Form** (`emailForm`) - Quick capture, high visibility
3. **Gated Content Forms** (`content-form`) - Content marketing conversions
4. **Lead Capture Popup** (two-step) - Progressive capture
5. **API-Based Forms** - All calculator and tool submissions

**Tracking Strategy:**

- Use dataLayer.push() for all form submissions
- Standardize event structure across all forms
- Track form ID, form name, form type, page URL, UTM data
- Implement before form submission completes

### 2. Form ID Standardization

**Issues Identified:**

- Multiple forms use same ID (`demo-form`, `content-form`, `webinar-registration-form`)
- Some forms lack unique identifiers
- Form handler uses form title to determine HubSpot form

**Recommendations:**

- Add data attributes for unique form identification
- Use consistent naming: `form-type-location` (e.g., `demo-form-main`, `demo-form-sdr`)
- Document form title mappings for handler

### 3. HubSpot Form GUID Management

**Current State:**

- Form GUIDs centralized in `hubspot-config.php` (good)
- Some GUIDs hardcoded in handlers (needs documentation)
- Multiple forms share same GUID (intentional, but needs tracking)

**Recommendations:**

- Document all form GUID mappings
- Create reference guide for GTM configuration
- Consider form GUID as tracking parameter

### 4. Form Submission Flow

**Current Flow:**

1. User fills form
2. Form submits (HTML form or API call)
3. Handler processes submission
4. Data sent to HubSpot
5. User redirected or shown success message

**Tracking Points:**

- **Before submission**: Form interaction, field completion
- **On submission**: Form submit event (primary tracking point)
- **After submission**: Success confirmation, redirect

### 5. Testing Requirements

**Forms Requiring Special Testing:**

- HubSpot embedded forms (callback-based)
- Two-step lead capture (progressive forms)
- API-based forms (client-side tracking before API call)
- Forms with conditional HubSpot form selection

## Next Steps

1. ✅ Complete form audit (this document)
2. ⏳ Create GTM tracking utility
3. ⏳ Implement dataLayer pushes for all forms
4. ⏳ Configure GTM triggers and tags
5. ⏳ Test all form tracking
6. ⏳ Document implementation and best practices

## Appendix: Form Inventory File

Complete form inventory with all metadata is available in:

- `docs/forms/form-audit-inventory.json` - Machine-readable inventory
- `docs/forms/form-ids-reference.md` - Quick reference for GTM configuration
