Got a pile of checks, cash or match-day pledges for many participants? You don't have to enter them one at a time. Fill in a spreadsheet, upload it, check the preview, and MyEvent adds every donation to the right participant or team in one go.

To get this feature, contact support. Offline donation import is turned on for each website by the MyEvent support team. If you don't see the Actions button described below, contact support and ask them to turn on offline donation import for your website.

Before you start

  • Every imported donation is saved as an offline donation: by check if you fill in a check number, otherwise as cash. Offline donations count toward participant, team and event totals like donations you enter by hand.
  • Donors are not emailed. The import doesn't send receipts or thank-you emails to donors. Only you (the person who uploaded the file) get an email when the import is done.
  • Nothing is imported until you confirm. After you upload, you see a preview of every row and what it matched.
  • You can undo a whole import later if something went wrong.

Step 1: Open the P2P Donations report

In your dashboard, go to Reports → E-Commerce → P2P Donations. (The same tools are also on Reports → E-Commerce → Donations.)

The P2P Donations item in the dashboard menu
The P2P Donations item in the dashboard menu

Step 2: Open the Actions menu

At the top right of the report, click Actions.

The Actions button at the top of the P2P Donations report
The Actions button at the top of the P2P Donations report

The menu has four options:

  • Download template: a blank spreadsheet with all the columns.
  • Import CSV: upload your filled-in file.
  • Download template with participant list: a spreadsheet that already lists every participant on your website.
  • Undo an import: remove all donations from an earlier import.

Step 3: Download a template

For a match day, or any time you're crediting many participants, click Download template with participant list. Each participant already has a row with their name, email, participant ID (profile_id) and team filled in, so you only need to type the amounts and donor details. Rows you leave without an amount are skipped.

Download template with participant list in the Actions menu
Download template with participant list in the Actions menu

To start from an empty file, choose Download template instead.

Templates start with lines beginning with #: an instructions line (and, in the blank template, an example). Lines starting with # are ignored, so you can leave them. Files made with the old template (first_name, last_name, email…) still work.

Step 4: Fill in the spreadsheet

Open the file in Excel, Google Sheets or Numbers, fill it in and save it as .csv. Keep the column titles exactly as they are. Column order doesn't matter.

Column reference

Column Required? What it does Format Example
participant_first_name Conditional: with participant_last_name, when there's no participant_email or profile_id Participant's first name, used to find who gets credit Text Franz
participant_last_name Conditional: with participant_first_name, when there's no participant_email or profile_id Participant's last name Text Purdy
participant_email Optional (the best way to find the participant) Finds the participant by email Email franz@example.com
profile_id Optional Participant ID. When filled, it wins over all other participant columns Number 1915
group_name Optional Exact team name. Use it alone for a team-only donation Text (exact name) Team Blue
group_id Optional Team ID. Wins over group_name Number 134
amount Required (the only column the file must have) Donation amount Numbers only 50.00
donation_date Optional (today if empty) Date the donation was received YYYY-MM-DD 2026-10-31
donor_first_name Conditional: with donor_last_name, unless donor_company_name is filled Donor's first name Text Pat
donor_last_name Conditional: with donor_first_name, unless donor_company_name is filled Donor's last name Text Placeholder
donor_company_name Conditional: required if there's no donor first and last name Company that gave (for example, a matching sponsor) Text Example Matching Co.
donor_email Optional Donor's email (not the participant's) Email pat@example.com
donor_phone Optional Donor's phone Text 555-555-0100
check_number Optional (cash if empty) Check number. When filled, the donation is recorded as a check Text 1001
message Optional Donor's message for the participant Text Go team!
anonymous Optional (not anonymous if empty) Makes the donation anonymous 1 (also yes, y, x, true, oui) 1
donor_address Optional Donor's street address Text 123 Main St
donor_city Optional Donor's city Text Toronto
donor_state Optional State or province code Code ON
donor_country Optional Country code Code CA
donor_zip Optional ZIP or postal code Text M5V 1A1

Who gets credit: the rules

The donor. Every row with an amount needs a donor: either donor_first_name and donor_last_name, or donor_company_name. A first name alone isn't enough.

The participant. To credit a participant, fill in one of these:

  1. participant_email (recommended). Upper/lower case and extra spaces don't matter. You don't need the names when you give an email. If you do fill in the names too, they must match that participant.
  2. participant_first_name and participant_last_name, both of them. If two participants have the same name, the row is flagged and you need to add participant_email or profile_id.
  3. profile_id, the participant ID. It's optional, but when it's filled it wins over the other participant columns, and the names aren't checked.

The team.

  • A donation to a participant always goes to that participant's own team. You can leave group_name and group_id empty. If you fill in a team that isn't the participant's team, the row is flagged.
  • To credit a team only, leave all participant columns empty and fill in group_name (exact team name, case and spacing don't matter) or group_id. If both are filled, group_id is used. If two teams share the name, use group_id.
  • If you leave all participant and team columns empty, the row is imported as a general donation to the event.

Amounts. Numbers only, for example 50 or 50.00. Spaces and $, € or £ signs are removed, and 1,234.50 is read as one thousand two hundred thirty-four fifty. A comma followed by one or two digits (50,25) is read as a decimal. The amount must be more than zero.

Dates. Use YYYY-MM-DD (for example 2026-10-31). Other common date formats usually work too. Dates are read in your website's time zone. Future dates aren't accepted. Leave the date empty to use today's date.

Blank values. Empty date = today. Empty check_number = cash. Empty anonymous = not anonymous. A row with no amount and no donor is skipped. A row with a donor but no amount is flagged.

Step 5: Upload the file

From Actions, click Import CSV.

Import CSV in the Actions menu
Import CSV in the Actions menu

The Import CSV file window repeats the main rules. Both templates can also be downloaded from here.

The Import CSV file window with the template download buttons
The Import CSV file window with the template download buttons

Under CSV file, click Choose File, pick your .csv (max 10 MB) and click Confirm.

Choose File and the Confirm button
Choose File and the Confirm button

If the amount column is missing, you'll see "The file is missing required column(s): amount." Add the column and upload again.

Step 6: Review the preview

The Review the import window shows what each row matched. Nothing has been imported yet. The counts at the top show how many rows have each status:

Status counts at the top of the preview
Status counts at the top of the preview
Status Meaning
Ready (green) Will be imported.
Possible duplicate (yellow) Looks like another row in the file, or an offline donation already on your site (same participant, amount and check number, or date). Not imported unless you tick the box in Step 7.
Needs review (red) Has a problem and won't be imported. The Details column says why.
Not imported (grey) No amount and no donor, so the row is skipped.

For each row, the table shows the line number in your file, the status, amount, donor, the participant it matched (with their ID), the team and the details.

The preview table with Ready and flagged rows
The preview table with Ready and flagged rows

Common messages under Details:

  • "No participant named …": check the spelling, or use participant_email.
  • "… participants are named …": add participant_email or profile_id.
  • "The amount is missing." or "… is not a valid amount."
  • "The donor's first and last name (or company name) are missing."
  • "… is not on the team …": leave the team empty or fix it.
  • "The date … is not valid. Use YYYY-MM-DD."

Step 7: Fix flagged rows (optional)

Click Download the list of rows to fix (CSV) to get only the rows that won't be imported. Each row has its line number, status and reason, followed by the usual template columns. Fix them and upload that file as a new import later.

The Download the list of rows to fix (CSV) link
The Download the list of rows to fix (CSV) link

If the possible duplicates really are separate donations, tick Also import the … rows flagged as possible duplicates.

The Also import possible duplicates checkbox
The Also import possible duplicates checkbox

Step 8: Confirm the import

Click Import. Only Ready rows are imported, plus possible duplicates if you ticked the box. (The Import button doesn't appear if no row can be imported.)

The Import button
The Import button

You'll see "The donations are currently being processed. You will receive an email when the import is complete."

The processing message after clicking Import
The processing message after clicking Import

When it's done, you get an email with the result. Donors don't get any email. The new donations show up in your reports as offline donations.

The preview only lasts for your current session. If you see "This import preview expired", upload the file again.

Undo an import

Imported the wrong file? From Actions, click Undo an import.

Undo an import in the Actions menu
Undo an import in the Actions menu

You'll see your latest imports, with the date, who imported, the number of donations and the total amount. Click Undo this import next to the one to remove.

Undo this import next to an import
Undo this import next to an import

Click Confirm. Every donation created by that import is deleted, and you'll see how many were removed.

The confirmation window
The confirmation window

Tips for large files

  • Use the template with participant list. Rows without an amount are skipped, so you don't have to delete participants who didn't raise anything.
  • Use participant_email or profile_id instead of names. They avoid the "same name" problem.
  • Keep the file under 10 MB. For very large lists, split it into a few files and import them one at a time.
  • Fill in check_number for checks. It records the payment type and helps catch duplicates.
  • Fix what you can before uploading, then use Download the list of rows to fix for the rest.
  • After a big import, wait for the email before checking totals.