You should look at hooking into Analytics - see this to learn how to work with AEM and other services -- Adobe Summit 2019 | L725 - Building a Web Experience Foundation with AEM, Target, and Analytics
You can develop very powerful custom resource types that you can drop into a component dialog. This is done via JS. We have an example of creating a custom resource type here: Adobe Experience Manager Help | Creating a custom Experience Manager 6.4 sling:resourceType for Touch UI
We cover how to work with Sling Models and Show HOW TO inject values here: Building Experience Manager 6.5 Components using Granite/Coral Resource Types I recommend going through this entire document to learn how to develop AEM Components - including working with Multifield.