SMOTE creates artificial data-points, and in my opinion, it should always be the last option to try. The reason being "creating artificial data-points."
I would follow these steps:
1 - Test some classifiers with the data you have. If the metrics are good enough for your particular goal, you are done.
2 - If the metrics are not good enough, try to engineer new features that capture information regarding the underrepresented class. For instance, once I worked on a time-series classification problem, I realized my under-represented class was quite sensitive to time information. Adding time features such as day of week and hour of day improved my scores a lot, and I did not need to try approaches like SMOTE or under-sampling.
3 - If adding features not enough, try re-weighting loss function, that is, give more weight to examples of underrepresented class when optimizing model parameters (Note that this approach is not possible if you are using a model with a close form solution for your predictions).
4 - If all above fails, then try under or oversampling. Note that this approach always carries the risk of poor out-of-sample results. The reason being you are changing the distribution of your data and making it different than what you will observe out-of-sample
Finally, the best approach is always to get more data, but this is not possible most of the time