1. Just test it.
2. I'm not totally sure you understand the logic involved.
If you sync a Program to an SFDC Campaign on the Program Summary tab, you should NEVER add people to that SFDC Campaign via SFDC. In theory you can do this, and in theory, it should work, but it tends to cause Program status errors. Let Marketo handle this.
If you want to use a flow step to handle the SFDC Campaign Member, then it's ok to let people add leads to SFDC Campaign. In Marketo, you can have logic that says
If Added to SFDC Campaign, Change Status to Member in Program (or whatever).
So when you talk about Program Status is Changed, yes that could work, but I would test it. Anytime a lead becomes a Member of a Program, it does fire off a Program Status change, AFAIK.
Why should you never add people to the SFDC Campaign via SFDC? Surely that is the whole point of having them sync.
To quote to documentation: "Marketo program members and their progression statuses are kept in sync with the Salesforce campaign members and campaign member statuses. This is a bidirectional sync, so any changes made in either Marketo or Salesforce are reflected in both systems."
The way that the organisation works is that they use an SFDC dedupe tool to clean leads and contacts and then add them to the marketing campaign by adding them in SFDC.
The reason that I don't want to use "Added to SFDC Campaign" is that you have to name a specific campaign and I'm setting up a template program here to be cloned. So yes, they could go back and add the SFDC campaign name in, but the less the scope for error, the happier I will be, and if I can use Program Status is Changed (new status=Member) to then take us to a flow step (usually adding to a static list that is the invitee list or something similar), then all they need to do is clone it and activate it; also, the Program Name will get populated when it is cloned. So, less scope for error.
Technically you can do what you want with the Program to SFDC Campaign Sync. I've just seen errors pop up if you get the Member Status wrong in SFDC, you get errors later. Once you sync these, you cannot use the SFDC Campaign flow steps.
So I was highly recommending that you avoid potential errors by not syncing the program automatically. You can use a my token for SFDC Campaign in the flow steps.
But regardless of what you do, someone will have to spend a few steps adding SFDC Campaigns somewhere. Program Templates can only reduce the steps to some degree, mostly with assets.
I have run some tests and it does work. In other words, if the lead is added at the SFDC side and it then syncs to Marketo, it will trigger on the Program Status is changed (to Member).
I agree that the campaign needs to be stated somewhere. I just prefer to keep all user setup in tokens. We always sync to SFDC campaigns because reporting is mainly done from SFDC while the marketing work happens in Marketo. Whilst I could put in flow steps to add to the SFDC campaigns and change the statuses, I prefer to take advantage of the sync capabilities. The issue of wrong statuses at the SFDC end is handled by a process of creating the SFDC campaign from Marketo with the same name as the program name. The statuses then get created to be the same as the program statuses by the sync, although that can take a good few minutes.
This is one of those cases when you have to build around a reality rather than an ideal scenario. I would much rather program statuses were all determined and run from Marketo but that isn't the reality here.
Thanks for the alternative view, it is always good to get other approaches.