At my company we recently started using gitflow for managing our branches, my doubt is: at what point should code reviews be done?
Simple gitflow:
Let's say we have these opened pull request:
- feature/new-page -> develop
- develop -> release
- release -> main
Do we need code reviews on all of these pull requests? Only when merging feature to develop? etc...?

You should have a formal Code Review (in this case a Pull Request) when both of these conditions are true:
develop,release/*,hotfix/*,main)As for how to perform the standard Git Flow merges, such as
releaseintomain,mainintodevelop, etc, you could also use PR functionality for this, but they do not need formal code reviews because all the code being merged (should have) already been code reviewed in order to get into the shared Git Flow branches. You may still wish to do sanity checks though, and if you have any gated check-ins it wouldn't hurt to let them run to make sure the merge didn't have some unintended side effects. Eventually you may wish to automate these merges, however, even if you do automate them, you'll still have to occasionally do them manually when there are conflicts. (Mergingrelease/mainintodevelopis usually when conflicts will occur.)