I have a scenario triggered by a webhook from Glide were an XLS file is converted to a CSV, containing users. Then we add the upload users to our google sheet which serves our our database, and send a welcome email to the new users.
We never had any issue, but today we encountered an error while doing a massive upload, more than 500 users.
Here is the error we received from the Gmail module:
454: EAUTH: Invalid login: 454 4.7.0 Too many login attempts, please try again later.
Only 90 out the 500 emails were sent. I ran some other tests, sometimes it stops at 80, 100, and sometimes none is sent.
What I did, is adding a break error handler after the gmail module, that try it again 10 times with 5 min interval.
It works, but it seems not optimal. Is there a better solution to implement? Or should we use another email sender?
Gmail is not meant to be used as a transactional or marketing email service. So the API limits are fairly low to prevent people from sending large volume of emails.
The best practice would be to work with a dedicated Email tool like Sendgrid or Mailgun.
If you want to stick with Gmail for now add a sleep step to throttle the speed of requests send to Gmail + break handlers in case you still hit the limit.
You’re right. We are looking into Sendgrid as you suggested.
In the mean time I had already added the break error handler but I’ll add the sleep module and test it! Seems that just the break doesn’t fixed my problem afterall.
Yes that will be too long, you will hit the 40 min execution time. In this case I would break the scenario in 2. Instead of sending the email directly you send a HTTP request to your scenario 2 that will actually send that email. Make sure to select “sequential processing” so your webhooks are not processed in parallel.