I recently came up with a business requirement that I'm not sure how to implement. Our product owner basically wants to:
Send a set of email reminders to the main contact role associated with an opportunity when the opportunity is becoming stale.
Furthermore, as an extra:
Give the user the opportunity to reset the reminders set count so once all the reminders have been sent, they can be resent again.
The current data volume is of around 1.000 daily opportunities, so it could be done internally in Sales Cloud with just a Process Builder, but I do not want to do it like that because the volume increases each month and there is a limit of 5.000 daily outbound emails in Sales Cloud.
Therefore, the solution that came to my mind is to use the Marketing Cloud subscription the company pays. It's much more scalable emails-wise... and it's already being paid for.
The problem is that when looking at the API, I only came up with two ways of doing this:
- Using triggered sends
- Using user-initiated sends
- Using a dumb journey with a Data Extension
The main cons of either were, in the case of the Triggered Send:
The email send is atomic. That is, I cannot send multiple emails with a single API call from Sales Cloud.
Binding template variables must be done via AMPScript, doing lookups to the Synced Data Extensions, which makes creating the templates much more complex and error-prone.
This isn't a functionality thought to schedule sends, it's more of a "trigger" as the name suggests, so it makes handling this complex too.
On the other hand, the cons of the User-initiated Send are:
Multiple API calls need to be done for just one send, since I would have to play around with the EmailSendDefinitions, the Data Extensions, etc.
The coding the integration is more complex due to having to use the SOAP API.
Lastly, I also leveraged the option of coding all the scheduling logic in Apex and simply uploading the contacts to a dumb data extension which would be the entry point of a dumb journey with simply an email send.
The problem with this last solution is sending the multiple reminders: I would have the option of data cleansing the DE every day, or creating one DE + journey for each reminder. This latter is not scalable at all, and the prior makes me uneasy since I would not have the option to track failures since the data would be deleted every day with the retention policy of the DE.
So, with all this, I do not know if there are other ways of achieving my end goal or, given these potential solutions, either of them is better than the other for other reasons I don't know of.