Joint work with Juhan Aru and Christophe Garban. In this presentation, we will discuss the $2$-point correlation of the $O(3)$ model. Following ideas of Patrascioiu and Seiler, we express this correlation function as constant times the probability that both points belong to the same connected component of a percolation model. Using this idea, we confirm the fact that if the complement of this percolation model does not percolate, the two-point correlation function of the $O(3)$-model does not decrease exponentially with the distance. However, we explain how there can be exponential decorrelation in the case where the model does percolate. We do this by constructing an $XY$-model in a random environment where the temperature is low everywhere but in a small non-percolative set and where the $2$-point correlation function decreases exponentially. It is instrumental for all of these results to understand the relationship between the $O(N)$-model and the Gaussian free field.