You might say "customer service" is the key to success, but I prefer "code switching" because, although they are complementary skills, you can have great empathy and compassion yet still be incapable of communicating that to the customer in a way that works.
Don't get me wrong, I don't mean put on accents or use unnatural slang. Instead, listen. Match cadence as best you can in your own accent. Become familiar with various subcultures you might encounter so that you can be a better (active) listener. Learn and remember which regular customers can tolerate banter and to what extent. Develop thick skin (within reason).
Remember your regulars, but avoid assuming what they want.
Be consistent with your schedule.
Lots more but that's initial suggestions from one who has been on both sides of this.