What is the difference between utters and action? I can ask questions through both right?

If actions can fulfill the necessity of asking questions, as a bot, to the user, then why do I need utters?

You wouldn’t want to custom all the dialogue with individual custom action. Rasa already simplify the process by letting you write utter_ messages for basic Q&As.

If you want to do form registration or link to other web services, you could then use custom actions.