Call controller from an external api's request AND / OR strapi's admin dashboard

Yes, write your custom code in a custom service and trigger it inside the lifecycle.