Package the custom WordPress contact form configuration and the Google Ads offline conversion tracking details into a clean handoff Drew's team can use to finish OCT setup.
/Users/samaguiar/Documents/Projects/admin/handoffs/HANDOFF-custom-contact-form-oct-config-2026-06-03.md./form-QA to the existing local sail-forms skill so future form creation and form fixes load the attribution QA checks.gclid to litify_pm__Intake__c.GCLID_Custom__c.GCLID_Custom__c, GCLID__c, and the Litify UTM fields.Endpoint:
POST /wp-json/sal/v1/contact-intake
Alternate rendered endpoint format: /?rest_route=/sal/v1/contact-intake
Content-Type: application/json
Required user-facing fields:
full_name
phone
case_type
injured_status
consent
Hidden attribution fields:
gclid
utm_source
utm_medium
utm_campaign
page_url
page_title
referrer
Browser field names should stay stable. The browser sends gclid; WordPress maps it to Salesforce as GCLID_Custom__c.
The stale-GCLID bug came from attribution storage allowing an old cached value to beat a fresh URL value. The fixed behavior is that ?gclid=VALUE in the current URL overwrites stored attribution before the hidden form field is hydrated. The published attribution script remains Kadence Element 62671, Attribution Capture - Google Ads GCLID and UTMs.