I work for an organization that has a long history of putting on large conferences and we want the workshops and panels of these conferences to stored in CiviCRM connected to those who spoke and attended. Where would be the best place to do this? Should I create a Custom Field for Programs or should they each be activities so I can have more than one contact record connected to it?
CiviEvent works marvellously for conferences. As Erik suggests use different roles for your delegates, speakers etc. From Civi help: "Participant Role: The Role you select here is automatically assigned to people when they register online for this event (usually the default 'Attendee' role). You can also allow people to choose a Role by creating a Profile with the Participant Role field. Then include that Profile when you configure the Online Registration page for this event.