It looks complex but it’s simple: whenever you will run any workflow action that will cause Bubble to send an email, replace that action with a workflow action that sends email through your email provider’s Bubble plugin (or API call).
One obvious replacement is not to use the native Bubble “send email” workflow, but instead use your email provider’s plugin’s send email workflow.
Not so obvious is that you will also need to replace the native Bubble email verification, password reset, etc workflows with your own workflow actions, because those native workflows also will be sent via SendGrid otherwise.
For example, when using the password reset workflow of Bubble, check the checkbox “Just make token, don’t send email”. That will generate the token, but not send the SendGrid email. Then use the generated token to create a link and send that link using your email provider’s plugin’s send email workflow.
For email verification, I just create a random 6-character alphanumeric code using Bubble, and send that code using my email provider’s send email workflow. I have a form where the user has to enter the code. You can use some similar logic to create and send a link if you like.