Importing a Guest List into Fishbowl
Use the Upload Data page to add new guests to Fishbowl, update existing guest profiles, and add eligible guests to an engagement list.
Open Upload Data, then select Upload.
Before you begin
Prepare one or more CSV files. The easiest approach is to select Download CSV Subscription Template and place your data in the provided columns.
- Every row must have a valid email address. Email address is how Fishbowl identifies a guest.
- The file must be a CSV with one header row and one guest per row.
- Only include people who have given your organization permission to market to them. You will be asked to certify that the upload meets Fishbowl’s List Collection Guidelines and Terms and Conditions.
- Do not add, delete, or rename columns in the Fishbowl template unless you plan to map those columns during the import.
- If you upload several files together, they must use the same column headers. The mappings created from the first file are applied to every file.
Step 1: Choose the file and import settings
Complete the following fields:
File NameEnter a descriptive name used to identify the import in Upload Data history. Example: August Wine Club Signups.
Acquisition SourceChoose the source that best describes where these guests came from. It also acts as the default source when a row does not carry its own input source. Example: choose Website Signup for guests collected through your website form.
Select ListChoose the engagement list to which eligible guests will be added. Example: choose Monthly Newsletter if these guests opted in to that newsletter.
Upload GuestsChoose the CSV file or files to import.
When an email matches an existing memberChoose how Fishbowl should handle profile fields such as name, phone, address, birthday, and similar guest details.
Keep existing profile values (Recommended)
CSV values fill profile fields only when the existing field is empty. Existing profile data is preserved. Use this for most list additions, event signups, contests, and partner lists where Fishbowl may already have better guest data.
Update profile values with non-blank CSV values
A non-blank CSV value replaces the existing value for each mapped profile field. Blank CSV cells do not erase saved data. Use this when the CSV is a trusted, more current source—for example, a recent preference-center export or a verified CRM update.
These choices affect profile data only. The selected engagement list, tags, store preferences, and applicable subscription status are processed separately.
Subscription protection: an import will not resubscribe a guest whose latest confirmed subscription status is unsubscribed.
After choosing the settings, certify that the list meets Fishbowl’s collection guidelines and select Map CSV Columns.
Step 2: Map CSV columns
For each column in the CSV, choose the matching Fishbowl field.
- Fishbowl automatically maps recognized template headers.
- At least one column must be mapped to EmailAddress.
- Choose Ignore this column for data you do not want to import.
- Review every automatic mapping before continuing, especially when your file uses custom header names.
Choose Ignore this column when a CSV column should not be sent to Fishbowl or does not have a useful matching Fishbowl field. Ignoring a column excludes only that column from the import; it does not remove the guest’s row, delete the column from your original CSV, or erase an existing member’s saved value.
- Use it for internal notes, source-system IDs, spreadsheet formulas, calculations, duplicate fields, or other data you do not need in Fishbowl.
- If two CSV columns contain similar information, map the one you trust and ignore the duplicate.
- If values shown during store or input-source mapping look wrong—for example, dates appear as input sources—go back and map that CSV column to the correct field or choose Ignore this column.
- Do not ignore the only email column. At least one CSV column must remain mapped to EmailAddress.
Values from an ignored column are not saved for new members and are not used to update existing profiles.
Mapping examples- Email → EmailAddress
- First Name → FirstName
- Surname → LastName
- Home Location → StoreCode
- Signup Channel → InputSource
Common optional fields include first and last name, birthday, anniversary, address, city, state, ZIP code, country, phone, mobile phone, join date, gender, language, marital status, employee status, tags, loyalty status, and segment.
For grouped tags, use a header in the format Tags: Group Name, such as Tags: Dining Preferences. Separate multiple tags in one cell with commas, such as Patio, Brunch, Vegetarian.
Create a new tag group through a list importTag groups can be created directly through the list import; no separate setup is required. During processing, Fishbowl uses an existing group when the name matches, or creates an active group when the name is new. Any tag values that do not already exist in that group are created and assigned to the guest.
- Add one CSV column for each tag group using the header format Tags: <Tag Group Name>. Example: Tags: Dining Preferences.
- Place each guest’s tag values in the column for the relevant group.
- For one tag, enter a single value such as Patio. For multiple tags, separate the values with commas, such as Patio, Vegetarian.
- When a cell contains multiple comma-separated tags, wrap the entire cell in double quotes so it remains one CSV field.
- Leave the cell blank when a guest should not receive a tag from that group.
- During Map CSV Columns, keep each Tags: <Tag Group Name> header mapped to itself. Choosing Ignore this column prevents those tags from being imported.
- Use consistent group and tag spelling, and do not use a comma inside an individual tag name.
CSV example
Header row:
EmailAddress,FirstName,Tags: Dining Preferences,Tags: Membership
Guest rows:
alex@example.com,Alex,"Patio, Vegetarian",Wine Club
sam@example.com,Sam,"Brunch, Wine Dinner","VIP, Loyalty Member"
In this example, Fishbowl creates or reuses the Dining Preferences and Membership tag groups, creates any missing tags within those groups, and assigns the values from each row to the matching guest.
Step 3: Map store codes
Store mapping connects the values in your CSV to stores in Fishbowl.
- If you mapped a StoreCode column, Fishbowl displays each unique value and attempts to match it to a store. Review every match and choose the correct store for any unmatched value.
- If some rows have a blank store value, choose the store that should be used for those rows.
- If the CSV does not include a store column, choose one store to apply to every guest.
Example: if the CSV contains Downtown, DT01, and Airport, map each value to its corresponding Fishbowl store. Do not assume a suggested match is correct without reviewing it.
Step 4: Map input sources
Input-source mapping records the row-level origin of each guest.
- If you mapped an InputSource column, Fishbowl displays each unique value and suggests an acquisition source. Suggestions may be labeled Exact, Fuzzy match, or Unmatched.
- Review fuzzy matches rather than accepting them automatically.
- Choose an existing acquisition source, or select Create New when the source is genuinely new and should be tracked separately.
- If the CSV does not include an input-source column, choose one source to apply to every row.
Select Create New only when no existing acquisition source accurately describes how the guest was collected. Avoid creating near-duplicate sources, because they fragment reporting.
- Select Create New beside the unmatched CSV value.
- Complete Name with a clear, reusable source name, such as Summer Tasting Event.
- Add a Description explaining how or where the source will be used.
- Select the Acquisition Category and Acquisition Group that match how your organization reports on acquisition.
- Leave Active selected so the source is available for use, then select Save.
- Return to the input-source mapping and select or confirm the new acquisition source for the unmatched value.
Caution: if the unmatched values look like dates, IDs, or unrelated guest data, the wrong CSV column may have been mapped to InputSource. Go back and map that column to the correct field or choose Ignore this column instead of creating a new acquisition source for each value.
Example: map values such as Instagram Lead Ad, Website Popup, and Summer Tasting Event to the corresponding acquisition sources in Fishbowl.
Step 5: Review and upload
After the mappings are complete, Fishbowl returns you to the first step for a final review.
- Review the file name, acquisition source, list, update mode, and certification.
- If available, download the mapped CSV and spot-check it before submitting.
- Select Upload.
The upload appears on the Upload Data page. Its status moves through the queue and processing stages before showing as Uploaded. When processing is complete, review the processed, error, and duplicate counts, along with any row-level errors or list-subscription totals shown on the upload card.
Best practices
Start with clear consent
Only import guests who knowingly agreed to receive marketing from your organization. Do not upload purchased, scraped, rented, or third-party lists without valid permission. A list import is an instruction to add eligible guests to the selected engagement list, so choose the destination list carefully.
Use the recommended update mode unless the file is authoritativeKeep existing profile values is the safest default. Use Update profile values with non-blank CSV values only when you trust the file to contain newer and more accurate information than Fishbowl.
Clean the file before uploading- Remove empty rows, notes, subtotals, and extra header rows.
- Check for missing or malformed email addresses.
- Use one guest per row.
- Save dates consistently. YYYY-MM-DD is recommended.
- Format U.S. phone numbers as 10 digits and avoid extensions in phone fields.
- Preserve leading zeroes in ZIP codes by treating the column as text in your spreadsheet.
- Use consistent values for stores and input sources. Avoid several spellings for the same store or source.
- Remove columns you do not need, or explicitly ignore them during mapping.
For a large import or a file using the profile-update option, first upload a small representative sample to a test engagement list. Confirm the field, store, source, tag, and list results before uploading the full file.
Review every suggested mappingAutomatic and fuzzy matches save time, but they are suggestions. Pay particular attention to similarly named stores or acquisition sources.
Use meaningful names and sourcesChoose a file name and acquisition source that another team member will understand later. Include the campaign, collection method, or month when useful.
Keep batches manageableSeparate files when guests require different destination lists, acquisition sources, update rules, or store defaults. Combining unlike audiences into one import makes mappings and later reporting harder to validate.
Review results after every uploadDo not treat a submitted upload as finished until its status is Uploaded. Review errors and duplicates, confirm list totals, and retain the original CSV so the import can be audited if questions arise.
Troubleshooting
Map CSV Columns is unavailable
Confirm that a file name, acquisition source, engagement list, CSV file, update option, and terms certification are present.
Cannot continue from column mappingConfirm that one CSV column is mapped to EmailAddress.
Cannot continue from store mappingEvery unique store value, including blank values, must be assigned to a valid store.
Cannot continue from input-source mappingEvery unique input-source value must be assigned to an acquisition source.
A multi-file upload reports missing columnsAll files must include the columns mapped from the first file. Make their header rows consistent or upload the files separately.
Rows show errors after processingOpen the upload card and review the email, field, error type, and message. Correct those rows in a new CSV and import only the corrected records.
The imported total is lower than the CSV row countReview invalid rows, duplicate emails, email-quality exclusions, and guests protected by an existing unsubscribe status.