An API which is passed user signup data from a website before manipulating it and sending it to an email broadcast system.
The API determines whether the user is an existing user simply updating their details, or whether they are a new signup. The system handles each accordingly, and triggers welcome emails for those who are new, and sign up from a specific location. All other new signups get included in a CRON which runs every minute, only triggering a welcome email for those who registered at least 5 minutes ago.
The system also generates unique emails per user, by generating content based on their location. All attractions and blog posts are pulled in automatically, and images for the email are generated ad hoc when the attraction is being used (and uploaded to the FTP for the email system to use).