Quick summary
An integration note about building a standalone lead submission service, documenting deployment settings, and later routing requests through an embedded CRM popup.
The problem
The static site needed a lead handling path that could support form posts, validation, email delivery, attachments, and a fallback CRM-oriented contact flow.
What I checked
- Static site form requirements
- CORS origin needs
- JSON, form, and multipart submission behavior
- Transactional email delivery requirements
- Existing CRM popup and tracking expectations
What I changed
- Created a standalone Node and Express lead submission service
- Added validation, honeypot handling, CORS allowlisting, file attachment support, and a health route
- Documented local setup, environment variables, deployment settings, endpoint usage, and security notes
- Restored a third-party CRM form inside a popup modal
- Tracked the sticky contact click and verified the static export still built successfully
Result
The site had both a documented custom lead handler and a practical CRM popup route while keeping static deployment intact.
What I'd watch next
- Whether the custom lead endpoint remains needed if CRM routing owns the flow
- Whether CORS origins stay current after domain changes
- Whether analytics still separates popup opens from completed leads