As far as I know, spüren and fühlen both can be translated to to feel. Are there situations where one is more right than the other? I have a feeling that spüren is used more with external stimuli and fühlen with internal feelings and emotions, is that correct?
Yes and no.
Fühlen is less reflected, it refers to feeling your own emotions and things directly touching your skin.
Spüren is less direct. It can also refer to things touching your skin (though not to emotions), but is more often used in a more indirect, metaphorical sense – you "spürst" the tension in a room, you do not "fühlen" it.
The difference is fluid, however, and not clear-cut (and perhaps even dependent on dialect). Referring to your own emotions, however, you never say spüren.
If this answer is confusing, I think it's because language is messy.
I personally feel that spüren is a little more narrow in the sense that there are fewer situations in which spüren is most appropriate than there are for fühlen. Fühlen can be employed more universally as it can describe both a sentiment and a sensory experience, whereas spüren tends to be limited to describing sensory experience.
Also, fühlen can be reflexive (sich gut/schlecht/einsam fühlen) describing a sentiment, whereas a reflexive use of spüren (sich spüren) sounds highly peculiar and would perhaps describe a sensory experience of experiencing ones own being.
Of course this distinction is not absolutely clear, but perhaps it can give you a Gefühl.