Tuesday night's 1-1 draw against Atletico Madrid extended their winless run to six games.
The Russian team required a late own goal from Toby Alderweireld to earn a point in the Group G encounter, the Belgian's bizarre defensive header looping over Thibaut Courtois as he attempted to clear a cross by Igor Smolnikov.
Zenit enjoyed a strong start to the season, winning 12 of their first 16 games in all competitions, but have since suffered a dip in form. They have scored only five goals in their last six games, resulting in three draws and three defeats.
"We're lacking goals scored right now," Spalletti told the club's website. "We're operating below our capabilities in this department. I think that in order to make more of our chances, we need to calm down and approach the final stages of the attack more coolly."
Spalletti's side visit bottom-placed Austria Vienna in their final pool match as they continue their tussle with Porto to clinch second place behind Atletico.
Zenit head into the final round of matches a point better off than their Portuguese rivals, and the Italian believes his team are in pole position with Porto due to visit the Vicente Calderon.
"We can advance from our group because it will be difficult for Porto to win in Madrid," he said. "Atletico are very strong. At home, they can beat the Portuguese."