Data Migration Guide: Importing from an Unsupported CRM
Last updated: February 6, 2026
This guide walks you through migrating your donor data into WeGive from a CRM that does not have a direct integration. Following the correct import order is critical to ensure records are properly linked.
Overview
When migrating data into WeGive, order matters. Records must be imported in a specific sequence because some records depend on others. For example, you cannot import a donation without first having the donor and designation in WeGive.
β Important: We recommend importing no more than 50,000 records at a time. For larger datasets, split your file into multiple imports.
π¨ CRITICAL: Turn Off Triggered Messages Before Importing
Importing data can trigger automated messages (e.g., Donation Success, Recurring Donation Created) to be sent to your donors. Before running any import, navigate to Engagement > Triggers and pause all triggered messages. Re-enable them after your import is complete.
Related Guides:
WeGive Implementation Guide β Set up your organization before migrating data
Import Tool Guide β Detailed field mappings and formatting requirements
Migration Order
Import your data in this order:
Step | Record | Why This Order? |
1 | Designations | Donations, Recurring Plans, and Pledges reference designations |
2 | Campaigns | Donations can be linked to campaigns |
3 | Supporters (Individuals & Companies) | All transactions require a donor to link to |
4 | Recurring Plans | Must exist before importing transactions linked to them |
5 | Pledges | Must exist before importing transactions linked to them |
6 | Donations and Payments | Requires supporters, designations, and optionally campaigns/recurring plans |
7 | Communication List Consents | Requires supporters to exist first |
β Important: Before importing data into your production account, we strongly recommend completing a test import in your sandbox account first. This allows you to verify field mappings, check for errors, and confirm data appears correctly without affecting your live data.
Step-by-Step Migration Process
Step 1: Import Designations
Designations are the funds or categories to which donations are assigned (e.g., "General Fund", "Building Campaign", "Missions").
Required Fields:
Name
Recommended Fields:
Custom ID (your CRM's unique ID for the designation β useful for matching later)
Process:
Export designations from your CRM to a .csv file
Import into WeGive: Data > Imports > + > Create > Designations
After import, export your designations from WeGive to get the WeGive Designation IDs
Navigate to Payments > Designations
Select all and click Export
Save this export β you'll need the WeGive Designation IDs when importing donations, recurring plans, and pledges
Step 2: Import Campaigns (Optional)
If you track campaigns or fundraising initiatives, import these next.
Required Fields:
Name
Recommended Fields:
Custom ID (your CRM's unique ID)
Goal
Start Date
End Date
Process:
Export campaigns from your CRM to a .csv file
Import into WeGive: Data > Imports > + > Create > Campaigns
After import, export your campaigns from WeGive to get the WeGive Campaign IDs
Navigate to the Campaigns page
Select all and click Export
Save this export β you'll need the WeGive Campaign IDs when importing donations
Step 3: Import Supporters
Import both Individual and Company supporters. These must exist before importing any transactions.
Individual Supporters
Required Fields:
First Name
Last Name
Recommended Fields:
Email (strongly recommended β used for matching and communication)
Custom ID (your CRM's unique donor ID β critical for matching transactions later)
Address, City, State, Zip, Country
Mobile Phone Number
Birthdate
Company Supporters
Required Fields:
Name
Recommended Fields:
Email
Custom ID (your CRM's unique ID)
Address, City, State, Zip, Country
Process:
Export donors from your CRM to a .csv file (separate files for individuals and companies)
Import Individuals: Data > Imports > + > Create > Individuals
Import Companies: Data > Imports > + > Create > Companies
After import, export your supporters from WeGive to get the WeGive Donor IDs
Navigate to Supporters
Select all and click Export
Save this export β you'll need the WeGive Donor IDs (or use Email/Custom ID) when importing transactions
Note: Importing a supporter with an existing email will not create a duplicate β WeGive will match based on email address.
Step 4: Import Recurring Plans
Import recurring donation plans before importing the individual transactions associated with them.
Required Fields:
Amount
Frequency (must be exactly: Daily, Weekly, Every 2 Weeks, 1st & 15th, Monthly, Quarterly, Annually, or Yearly)
Start Date
One of: Donor Email, Donor WeGive ID, or Donor Custom ID
Recommended Fields:
Designation WeGive ID
Campaign WeGive ID
End Date
Status
Custom ID (your CRM's recurring plan ID)
Process:
Export recurring plans from your CRM
Match each plan to:
The donor using Donor Email, Donor WeGive ID, or Donor Custom ID
The designation using Designation WeGive ID (from Step 1 export)
Import into WeGive: Data > Imports > + > Create > Recurring Plans
After import, export your recurring plans from WeGive to get the WeGive Recurring Plan IDs
Navigate to Payments > Recurring Plans
Select all and click Export
Save this export β you'll need the WeGive Recurring Plan IDs when importing transactions
Step 5: Import Pledges (Optional)
If you track pledges, import them before transactions that fulfill them.
Required Fields:
Amount
Installment Frequency (must be exactly: 1, 4, 8, or monthly)
Start Date
End Date
One of: Donor Email, Donor WeGive ID, or Donor Custom ID
Recommended Fields:
Designation WeGive ID
Custom ID or Salesforce ID
Process:
Export pledges from your CRM
Match each pledge to the donor and designation
Import into WeGive: Data > Imports > + > Create > Pledges
Step 6: Import Donations and Payments
Now that all supporting records exist, import your historical transactions.
Required Fields:
Amount
Created At (UTC) β format: YYYY-MM-DDTHH:MM:SSZ
One of: Donor Email, Donor WeGive ID, or Donor Custom ID
Recommended Fields:
Designation WeGive ID
Campaign WeGive ID
Recurring Plan WeGive ID (to link transactions to recurring plans)
Custom ID (your CRM's transaction ID)
Description
Process:
Export transactions from your CRM
In your spreadsheet, add columns and match each transaction to:
The donor using Donor Email, Donor WeGive ID, or Donor Custom ID
The designation using Designation WeGive ID
The campaign using Campaign WeGive ID (if applicable)
The recurring plan using Recurring Plan WeGive ID (if it was a recurring gift)
Import into WeGive: Data > Imports > + > Create > Donations and Payments
Tip: Use VLOOKUP or INDEX/MATCH formulas in your spreadsheet to match your CRM's IDs to the WeGive IDs from your exports.
Step 7: Import Communication List Consents (Optional)
If you want to set up communication preferences for your supporters, import consents last.
Required Fields:
Donor WeGive ID
Communication List WeGive ID
Subscribed (1 = subscribed, 0 = unsubscribed)
Process:
First, create your Communication Lists in WeGive
Export the lists to get their WeGive IDs
Prepare your .csv with donor IDs, list IDs, and subscription status
Import into WeGive: Data > Imports > + > Create > Communication List Consents
Matching Records: The Export-Match-Import Workflow
The key to a successful migration is linking related records using WeGive IDs. Here's the workflow:
1. IMPORT records into WeGive (e.g., Supporters)
β
2. EXPORT those records from WeGive (to get WeGive IDs)
β
3. MATCH WeGive IDs to your source data using Custom ID or Email
β
4. IMPORT the next record type with WeGive IDs includedExample: Linking Transactions to Donors
Your CRM has Donor ID "D-12345" for John Smith
You import John Smith with Custom ID = "D-12345"
You export Supporters from WeGive and see John Smith has WeGive ID = "98765"
In your transactions file, use VLOOKUP to find WeGive ID 98765 for any transaction with Donor ID "D-12345"
Import transactions with Donor WeGive ID = "98765"
Using VLOOKUP to Match IDs
If you're using Google Sheets or Excel, VLOOKUP can help you match IDs between your CRM data and WeGive exports.
Example Formula:
=VLOOKUP(A2, 'WeGive Export'!$A$2:$B$1000, 2, FALSE)Where:
A2= Your CRM's Custom ID in your transactions sheet'WeGive Export'!$A$2:$B$1000= The range in your WeGive export containing Custom ID and WeGive ID2= Return the second column (WeGive ID)FALSE= Exact match only
Date Formatting Reference
Field Type | Format | Example |
Date | YYYY-MM-DD | 2024-09-12 |
DateTime (UTC) | YYYY-MM-DDTHH:MM:SSZ | 2024-09-12T15:30:00Z |
Important: Use the "T" separator between date and time β do not use a space.
Pre-Migration Checklist
Before you start:
Pause all triggered messages in Engagement > Triggers (to prevent emails/SMS from being sent to donors during import)
Export all data from your current CRM
Clean up duplicate donors in your source data
Standardize date formats to YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ
Ensure phone numbers are plain text (no parentheses, dashes, or spaces)
Verify address fields are in separate columns (Address, City, State, Zip, Country)
Include your CRM's unique IDs as "Custom ID" fields for matching
Plan to do a test import with 5-10 records before importing everything
Complete a test import in your sandbox account before importing to production
Migration Checklist
Use this checklist to track your progress:
Step 1: Import Designations β Export from WeGive
Step 2: Import Campaigns β Export from WeGive (if applicable)
Step 3: Import Individual Supporters β Export from WeGive
Step 3: Import Company Supporters β Export from WeGive (if applicable)
Step 4: Import Recurring Plans β Export from WeGive (if applicable)
Step 5: Import Pledges (if applicable)
Step 6: Import Donations and Payments
Step 7: Import Communication List Consents (if applicable)
Final: Verify data in WeGive β spot check donors, transactions, and totals
Troubleshooting
"Donor not found" errors: Ensure the donor was imported before the transaction. Verify the Donor Email, Donor WeGive ID, or Donor Custom ID matches exactly.
"Designation not found" errors: Ensure the designation exists in WeGive and you're using the correct Designation WeGive ID.
Duplicate supporters: WeGive matches on email address. If you import a supporter with an email that already exists, it will update the existing record rather than create a duplicate.
Transactions not linking to recurring plans: Make sure the Recurring Plan WeGive ID column is correctly mapped and the recurring plan was imported before the transactions.
Date format errors: Use YYYY-MM-DD for dates and YYYY-MM-DDTHH:MM:SSZ for datetimes. Ensure there's a "T" between date and time, not a space.
Need Help?
If you run into issues during your migration, contact WeGive support. Having the following ready will help us assist you faster:
The error file from your failed import
A sample of your source data
Which step in the migration process you're on