we use hubspot with this daily. for your 3 use cases:
1. form > hubspot contact: workflow with form trigger > HTTP node to hubspot API (POST /crm/v3/objects/contacts). straightforward, you map form fields to hubspot properties
2. hubspot deals to table: scheduled workflow that runs nightly, pulls deals via hubspot API and upserts into a tinytable. we use this for our weekly sales reporting
3. deal stage change trigger: this one you do with a hubspot webhook. set up a workflow subscription in hubspot that fires a webhook when deal stage changes. that webhook triggers your workflow here
auth setup: create a private app in hubspot, get the access token, use it as a Bearer token in your HTTP node headers. took maybe 15 minutes to set up