But inconsistency, combined with Madrid's abundance of attacking options, led to James falling out of favour, so much so that he made just 13 league starts last season and was left out of their squad for the Champions League final.
As such, he was allowed to leave on a two-year loan to Bayern, who have the option to make the deal permanent, and his debut Bundesliga campaign has taken a turn for the better after a slow start.
Heynckes puts James' early struggles down to being "depressed", something he helped sooth by being attentive to the 26-year-old playmaker, and now James has found his feet again as he prepares to take on his parent club in the Champions League semi-final first leg on Wednesday.
"He was a little depressed," Heynckes told reporters at his pre-match news conference.
"I took care of him, I had lots of talks with him, and step by step he found confidence. He is more relaxed within the team.
"Our fans here, when they see him play football, they enjoy it. Above all he is a player who has fantasy, has an overview.
"He is more open-minded and gives the impression he feels well and has settled in Munich. I think this is most fundamental.
"He has been learning German, but as you know with Spanish speaking players it is difficult for them to learn. But I can speak with him."
Despite his improvement and inevitable desire to prove his worth against Madrid, James is not guaranteed to start, with Heynckes suggesting it will be either the Colombian or Thiago Alcantara in his line-up.
He also has doubts over David Alaba and Corentin Tolisso, who have had injuries of late.
"David and Tolisso, we will decide tomorrow [Wednesday] morning if they are in the squad," Heynckes said.