Heenan was born in Whangarei, and grew up on a farm outside the city with his father and brother, while his mother lived in Auckland. By his early teens, his brother had moved out and his father had remarried and had two more children. He graduated from Whangarei Boys' High School and went on to study at Unitec Institute of Technology in Auckland. Heenan has worked as an ambassador with Dóchas don Óige, a community-based training service for troubled youths in Galway on the back of his own experiences growing up.
Rugby career
Early career
Heenan played rugby from a young age. He was part of the Northland Rugby Union's academy as a teenager and was the captain of his school's team. He signed with Auckland, following successes with the New Zealand schoolboys team. He was also part of the Blues development programme and played for the Blues under-18 team when they won the national competition. It was during his time in Auckland that he first met Pat Lam, who later brought him to Connacht, which was his first professional club.
Connacht
Heenan signed on a three-year contract for Irish provincial side Connacht in May 2013, joining the team for the 2013–14 season. He joined former Blues coach Pat Lam, who had been appointed as the team's head coach. Heenan made his debut for the side on 7 September 2013, coming off the bench against Zebre in the Pro12. His first start came in an Irish provincial derby with Ulster, where Heenan played the full 80 minutes. He made his Heineken Cup debut on 11 October 2013, starting against Saracens. He was named as Connacht's player of the month for October 2013, only one month after his debut. Heenan played the full match at openside flanker for Connacht as they produced one of the biggest shocks in the history of the competition, beating four-time champions Toulouse in the pool stages in the Stade Ernest-Wallon. He made a total of 12 league and six European appearances in his first season, but missed the second half of the season after suffering a shoulder injury against Saracens in January 2014. Heenan returned for the start the 2014–15 season, but suffered a recurrence of his shoulder injury against Newport Gwent Dragons in his first game back ruled him out for five months. He returned in February 2015, but broke down again against Cardiff Blues in March which ruled him out for the rest of the season. Due to these injury problems, he didn't play at all in the 2014–15 Challenge Cup, and made just five appearances in the 2014–15 Pro12, though he did score two tries. Heenan suffered further injury setback during the off-season and had further surgery on his shoulder. He finally made his return on New Year's Day 2016 in a 2015–16 Pro12 game against Leinster. Heenan did not feature in the 2015–16 Challenge Cup as he was not registered for the competition due to his injury troubles. Heenan went on to make 11 appearances in the Pro12 however, including playing the full 80 minutes in the Grand Final as Connacht won the competition for the first time.
Bristol Rugby
Heenan was announced by English Premiership contenders Bristol as having signed for the 2018-19 season and played 12 times.
International
Heenan has represented his country at various under-age levels. He is a former New Zealand schools player and also played for the New Zealand under-20s. Heenan captained the under-20s at the 2012 Junior World Championship, where the team lost to South Africa in the final. Heenan became qualified to play for in June 2016 after completing three years of residency in the country. Heenan also has dual passport and thus qualifying for England and New Zealand.