API Integrations

Built a Static-Site Lead Handler and Contact Popup Flow

An integration note about building a standalone lead submission service, documenting deployment settings, and later routing requests through an embedded CRM popup.

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

Tools used

Node.jsExpressNext.jsGA4

Need help with something similar?

Send the URL and what needs fixed.