Hi Chris. Two possibilities.
(1) The CSV has all the info you need for the Advanced Outreach / Program (new name). That is, all the info you will need for the list of participants, any token replacement in emails or CTAs, etc. can all be derived from fields in the CSV. In that case, you can simply upload it in your Participant Sources and move ahead. See
https://support.gainsight.com/Product_Documentation/CoPilot_and_Automated_Email/Admin_Configuration/...
(2) The CSV indicates the list of participants but the other info you need for the Program comes from elsewhere in Gainsight (or Salesforce). [To pick a couple scenarios to make it concrete: perhaps you have a list of Customers but you want to send an email to the Admin contact at that Customer whose email address is not in your CSV; or perhaps you need to reference the number of open cases or something, which you want to pull from a table in Gainsight.] In this case you need to (a) get your CSV into a custom object in Gainsight and then (b) use the Bionic Query Participant Source and in the Bionic Query you pull in the various data sets from across Gainsight (or Salesforce) and merge and transform them into the list you need.
For (a), getting the CSV into GS, you could just do it directly inside the Gainsight Data Management screen (
https://support.gainsight.com/Product_Documentation/Data_Management_and_Integrations/Managing_Data_I... see "Creating an Object Automatically using a CSV" and be sure to upload the data itself and not just the schema). This works fine as a one-off. But if you are going to do this regularly, you will want a go via our S3 connector (or S3 action in Bionic Rules) or the bulk API.
I hope this helps!