I would like to store some data alongside a lead as they enter a program which only pertains to this program, is this possible?
For example a lead may have a field of "next appointment date" filled out, this would trigger a smart campaign ( we'll call that instance 1) which e-mails a user before and after this appointment.
If the current date moves past the date of the appointment, the "next appointment date" will be updated to be the next upcoming appointment (if there is one). At this point we would trigger another smart campaign (we'll call that instance 2!).
However I have no way of instance 1 referencing the correct appointment date at this point.
Does anyone know of a way I can tackle this problem?
Unfortunately, this is a yet-impossible dream in Marketo: arbitrary campaign- or program-specific lead dimensions.
Given your stated requirement for Smart Campaign filtering, and automatic creation of dimensions for programs instead of new fields on the lead, the closest you can get is Marketo Custom Objects. But that's a whole ball of code. You can't create create COs in a flow directly... instead you'd have to pass the appointment data + program ID to an external service via webhook, and have the webhook loop back to create the CO record. It's not really that complex, but will be insurmountable if you don't have/aren't a developer.
Thanks for your detailed response. That sounds like a good idea, but what if a lead were to be in the same program twice? That is to say that they have had two appointments booked, and one set of e-mails needs to reference appointment #1 and the other set need to reference appointment #2?
My knowledge of COs is very limited having never created one, I'm wondering how each chain of e-mails could reference the correct CO?
I'll make some test COs and link them back to a lead to see properly how they work.
but what if a lead were to be in the same program twice?
Well, a lead can't be in the same program twice, using the Marketo concept of programs. Not sure exactly what you meant there in Marketo-speak.
Anyway, if the date of the referenced appointment is always in the future, and there's only ever one future appointment, that's easy to scan for in Velocity (which you'd need to output the appointment info in an email in any case).