Cross Object Field References in Flows

Now, I might be completely wrong here but I just CAN NOT get sObject Variables and Cross Object References in Flows working. 

Documentation

Posts

Issues

Scenario

I'm creating a new record. Then I want to create a Chatter post with details about that new record created. 

The Flow error message states that the new record has been created, but the Chatter post fails because it can't read the new record. 

I have created the new record, and I have a Text Template that tries to retrieve the Contact Name and the Product Name that was used to create this new record. 

 

Each one of these fails in the Flow with the message "The Flow failed to access the value for sobjContact.Name" for example. 

This is from the Opportunity. The Opportunity must have a Contact and must have a Product for this flow to run - so the sobject Variables are NOT null, AND I can see the ID of the sobj of the Product in the flow, so it SHOULD be able to find the NAME! 

So, I created each one of these variables into a formula and added that formula to the text template - NOPE, no luck! 

I even tried the wasSet trick to ensure the Contact Name was set - NOTHING! It still errors. 

 

For one last try I made sure that I had set all the sObject variables to input and output. NOPE, still erroring. 

I even tried to make the Opportunity the sObject because SURELY THE VALUES WILL BE THERE! NO!!!!!!!!!!!!!!!!!

I even added a formula field to the Opportunity for the Product Name and used that - NOPE. 

 

How the hell do I use this feature. I basically give up. Going back to doing another lookup on the Product to get the Product Name just to put is in the Chatter Post at the end.