Do I have to define custom properties
No, you do not have to define custom profile properties upfront. The traits field, where custom profile attributes are stored, allows for dynamic storage of data without the need for predefined schema or attribute definitions. You can add custom attributes to a profile as needed without any prior definition or configuration. This flexibility enables you to adapt and extend the profile data based on your evolving requirements or specific use cases.