Hi Edward,
Sorry for the late reply. Customers and Contacts are two separate tables in Method, and have separate screens as a result. The Customer is the main one you're concerned with for QuickBooks-related purposes, they're the entity to which you attach Estimates, Invoices, etc., whereas a Contact would simply be a point of contact for a customer. For example, you might have a Customer "Joe Schmoe", but have Contacts for both Joe as well as Joe's receptionist Alfred.
If you would like to add birthdays for any Contact, then you'll want to add the field to the Contacts table. If you just want to track it for the main Customer, then you'll want to add the field to the Customer table. You'd then add that field to the appropriate screen(s).
From there, you can add actions to the Save and Save & New buttons on the New Customer or New Contact screen that create an activity in the Activity table for a week before the selected birthday. You could then create a follow-up activity manually for the following year when you complete that activity (send the card out). This would be the easiest way to accomplish what you're trying to do.
You could check the current and following year (or any other) to see if there are any activities for that Customer/Contact on the date your birthday activity should be on. If there isn't, you could add an activity. I'm not sure where would be best to place these particular actions (perhaps the Edit Customer / Edit Contact screen, but you'd want it to be somewhere you access semi-frequently, to ensure that it gets run at least once a year).
The logic for creating multiple activities gets pretty messy, particularly if you ever want to delete all the birthday activities at some point in the future. For this reason, I'd recommend creating one activity for the upcoming birthday and manually creating a follow-up when you complete that activity.
Hope this helps.
- Justin