I'm a total novice with EXM and trying to explore it as an option to replace a manual system we use now with SQL (where Sitecore pushes data into a metadata table in SQL when published, and some user preferences are maintained in SQL as well). Here's how it works now:
Every hour, content in the metadata table is scanned to see if it was updated in the past hour. If so, that content is pulled in. Then a list of users who have requested updates hourly are pulled together. The user list is then iterated through and the metadata of each content item is checked to see if it's flagged to that user's interests (for example, a user wants news on the state of Virginia, is the content item so tagged). Once the applicable universe of content is created for that user, it's assembled into an email format and sent out with a .NET mail merge script. The process is kicked off via scheduled task.
The very little I've read about EXM so far tells me the emails are put together like pages, with presentation details, so creating a rendering that says "query the content and return only that which was updated last hour" seems basic. What about passing in the user information though? Would my recipient list be "all users who request an hourly update" via a user profile setting? Can I pass in user information to the rendering on the fly? If so, is there then a way to tell EXM not to send an email if that rendering has no data?