We do this at Activepieces (activepieces.com).
Additionally, this seems to rely on you inputting your credentials. How would that work for a usecase where my customers are the ones who provide the credentials?
On the UI, you can customize the credentials with a connection variable which is what enables in-app product integrations. We have users who are doing this. Shoot me an email if you'd like to explore our approach: ash@activepieces.com