No live CRM is wired here, since that needs your own keys. But this is how I would build the hand off. It runs on free, serverless pieces.
1Join formReact, accessible, validated
Captures tier, amount, billing, name, and email.
↓2Netlify Formssubmission capture
No backend needed. It fires a webhook on every submission.
↓3MiddlewareNetlify Function
Maps fields, removes duplicates by email, and adds the traffic source.
↓4CRMSalesforce or HubSpot
Creates or updates a contact and sets the membership tier and stage.
Why a middleware step?
Posting straight to a CRM from the browser leaks your API keys and locks you to one vendor. A thin serverless function keeps the keys on the server, lets you check and clean the data, and makes switching HubSpot and Salesforce a one adapter change. Same pattern as the CMS demo.