Is there a better way to handle emails 30 minutes before a specific datetime?
OK, since this group has been so helpful, allow me to indulge (context: completely new to Marketo and trying to learn rapidly). Here's the context of what I'm trying to achieve:
- We have custom objects of appointments with an appointment datetime field (amongst other attributes) - tied to lead records. Datetime is always posted in Pacific Time offset.
- The source system where these appointments are generated don't have webhooks, so we're having to do a daily query of the previous day's appointments scheduled and do a bulk import to custom objects via Marketo API
- We'd ideally like to do appointment reminder emails 30 minutes prior to the scheduled appointment date time in the custom object (we have other frequencies in days ahead of the appointment, but this is not my concern - batch campaigns should do nicely), realizing that there could still be delays in delivery, but we're not expecting to send out anything more than 30 at one shot, so we're not too concerned.
- Appointments for now are at the top and bottom of each hour, but would be great to handle any time in the future
- Leads are limited to the USA, but we will have to contend with timezones. Assume there's sufficient data on the lead to calculate time zone correctly.
- There are no same-day appointments (for now...), which makes this a little easier.
The way I was planning to achieve this was one of 2 ways, each with their upsides and downsides:
Option 1
I set up essentially 48 campaigns (!) within a program that is set to use the recipient's timezone, each set to batch daily with one for each 30 minute timeframe. They all point to the same email template, the campaign is setup with Has <CustomObject> with constraint of the datetime field being In Future 30 minutes. It sends out the email to the leads, the email template pulls in the objects and formats correctly.
Upsides: I can (I hope?) take advantage of Marketo dealing with timezones correctly.
Downsides: I mean, 48 campaigns?! What happens when they decide appointments can be made at any time (within reason - say every 5 minute increments)?
Option 2
I basically do all the logic outside of Marketo. Perhaps do a query on the custom objects in Marketo on a regular basis (AWS service likely), and when it meets the criteria (I will have to get the TZ from Marketo or our source system through API), I will populate a temporary list. Create a campaign that triggers on record adds in this list, sends the email template, then removes the records. Rinse and repeat.
Upsides: One campaign, super-simple setup in Marketo
Downsides: I now have to manage everything outside of Marketo in another application doing more API calls to one or multiple systems. It's possible then I can let this process run on a 5-minute cycle then to cover the situation where they may do appointments at nearly any time.
Yes, I'm glossing over other details around keeping data in sync, etc.
Am I missing something? I've looked into webhook setup and possibly FlowBoost integration, but that doesn't seem to help this particular situation, unless I'm misunderstanding what these services can provide. We also need to be HIPAA compliant, so we're weary of adding more services that we don't already have checked off and buttoned up.
Anyone with tons of insight or has built something like this? I would welcome some insight.