I am getting ready to create nurture programs for our various lead gen sources. I'd like move people from one stream to another with transitions based on whether the lead took a particular action, specifically whether they signed up for a product or service. For example, email #3 promotes a particular product. If someone is influenced and purchases that product, I want to set a transition rule that moves them to the next stream. Does anyone have recommendations for what type of transition to use to identify a purchase?
First thing, transition rules are trigger based, so you need to find a transition "reason" that can be detected as a trigger in Marketo.
This said, there are so many. It really depends on you context and how purchases can be detected.
Typically, in a Marketo + SFDC environment, you would do this using a "opportunity is updated" trigger and add on contraint on the "Stage" field.
In an e-commerce environment, you may detect the visit to the purchase completion page.
there are also more sophisticated ways such as using custom objects or have an external system (CRM or other) updating a lead field value and using the "Data value changes" trigger.
The other thing to consider is to use separate smart campaigns that listen for these changes. Yes, you can use the Stream Transitions, but for your complexity, it is better to use separate local smart campaigns.