# HubSpot Field Name Mappings


**Last Updated:** 2025-11-20

**Date:** 2025-11-15  
**Purpose:** Document field name variations and mappings between code and HubSpot forms

## Field Name Variations Found

### 1. Lead Status Field

**Code sends:** `leadstatus`  
**Form uses:** `hs_lead_status`  
**Status:** ✅ Code updated to use correct field name

**Affected Files:**

- `v2/api/collect-lead.php` - Updated ✅
- `v2/api/addon-request.php` - Updated ✅
- `v2/api/submit-template.php` - Already correct ✅

**Value Format:** `"NEW"` (uppercase) for HubSpot standard field

### 2. Sign Up Type Field

**Code sends:** `sign_up_type__c` (correct)  
**Also sends:** `signuptype` (redundant, may not exist in form)  
**Form uses:** `sign_up_type__c` ✅

**Affected Files:**

- `v2/api/submit-template.php` - Sends both `sign_up_type__c` and `signuptype`

**Recommendation:** Remove `signuptype` field from submit-template.php if form doesn't have it

### 3. Lead Source Field

**Code sends:** `leadsource` (correct)  
**Also sends:** `lead_source` (may not exist in form)  
**Form uses:** `leadsource` ✅

**Affected Files:**

- `v2/api/submit-template.php` - Sends both `leadsource` and `lead_source`

**Recommendation:** Verify if `lead_source` is needed or if it's redundant with `leadsource`

## Invalid Field Names Being Sent

### submit-template.php

**Fixed:** Removed invalid field names that don't exist in form:

- `utm_source` (form uses `source__c`)
- `utm_medium` (form uses `utm_medium__c`)
- `utm_campaign` (form uses `utm_campaign__c`)
- `utm_term` (form uses `utm_term__c`)
- `utm_content` (form uses `content__c`)
- `gclid` (form needs `gclid__c`)
- `lead_source` (form uses `leadsource`)
- `signuptype` (form uses `sign_up_type__c`)
- `utm_source__c` (form uses `source__c` instead) ✅ Removed

**Current Status:**

- Form has: `source__c`, `utm_medium__c`, `utm_campaign__c`, `utm_term__c`, `content__c`, `leadsource`, `sign_up_type__c` ✅
- Code now uses: `source__c` (for utm_source) and `utm_campaign__c` (for utm_campaign) ✅

**Action Completed:** ✅ Removed all invalid field names from submit-template.php

## Field Name Mappings

### Standard Mappings

| Code Field Name   | HubSpot Property Name | Status                                     |
| ----------------- | --------------------- | ------------------------------------------ |
| `leadstatus`      | `hs_lead_status`      | ✅ Updated                                 |
| `sign_up_type__c` | `sign_up_type__c`     | ✅ Correct                                 |
| `leadsource`      | `leadsource`          | ✅ Correct                                 |
| `utm_source`      | `source__c`           | ✅ Fixed (removed invalid)                 |
| `utm_medium`      | `utm_medium__c`       | ✅ Fixed (removed invalid)                 |
| `utm_campaign`    | `utm_campaign__c`     | ✅ Correct                                 |
| `utm_term`        | `utm_term__c`         | ✅ Fixed (removed invalid)                 |
| `utm_content`     | `content__c`          | ✅ Fixed (removed invalid)                 |
| `gclid`           | `gclid__c`            | ⚠️ Form missing field                      |
| `utm_source__c`   | `source__c`           | ✅ Fixed (removed - form uses source\_\_c) |

### Form-Specific Fields

**submit-template.php:**

- `campaign__c` - Template Generator campaign name (separate from `utm_campaign__c`)
- `lead_source_detail__c` - Template type + Template Download (separate from `source__c`)

These are DIFFERENT fields and both should exist in the form.

## Verification Results

**Forms Verified:** 7  
**Field Name Variations Found:** 1 (`leadstatus` → `hs_lead_status`)  
**Invalid Field Names Being Sent:** 8 (in submit-template.php)  
**Truly Missing Fields:** 12

## Next Steps

1. ✅ **Fixed:** Updated `collect-lead.php` and `addon-request.php` to use `hs_lead_status`
2. ⏳ **Pending:** Remove invalid field names from `submit-template.php`
3. ⏳ **Pending:** Add missing fields to HubSpot forms (12 fields total)
4. ⏳ **Pending:** Verify `lead_source` vs `leadsource` mapping
