Creating nodes and relationships with Cypher is really straightforward. It only gets tricky when you have labels, relationship-types or property-keys that are driven by data and dynamic.
As the Cypher planner only works with static tokens APOC procedures come to the rescue here for creating, merging and updating nodes and relationships with such things coming from user provided strings or lists.