In that case, maybe create a custom text field called first touch, then in the flow for each program you can do a conditional flow that basically states, if field is blank then set first touch field to blah blah, if field is not blank then do nothing...