Workflow of creating a chessboard like map with each grid have differnt type of functionalities

I want to create the chessboard that player control their character to walk on it. Upon steping on each gird, it may have different event/effect. What’s the typicial workflow of it? Create the gird throuh modeling mode or create each grid with a blueprint actor based on my cpp actor class and move different actor into the level one by one (That would be tedious)? For each of this approach, what approach should I use to construct the graph representing the checssboard in cpp (I want to control most of the logic in cpp)?