Migrating Active Recurring Plans Without a Token Transfer
Last updated: May 16, 2026
This article walks through the standard process for moving active recurring giving plans from another platform into WeGive when a token transfer is not available. If your previous platform supports a token transfer (for example, through VGS), follow the token transfer guide instead. The migration is semi-automated: WeGive imports the plan records and schedules, and donors add their payment method directly in the Donor Portal through an automated outreach journey.
How the migration works
Most legacy platforms either cannot release payment tokens or take weeks to complete a token transfer. Rather than wait, we import the plans into WeGive now, set each plan's next processing date far enough in the future to avoid surprises, and use an automated journey to prompt donors to add their payment method.
The donor experience looks like this:
They receive an email with a link to their recurring plans in the Donor Portal.
After logging in, they are redirected to the recurring plan page where they see all of their plans.
They click on the dollar amount of the plan showing a Missing status.
They confirm their recurring plan details and add their payment method, so their next payment processes on the scheduled next processing date.
(Optional) Set up a triggered email so a staff member receives an email notification each time a donor activates their plan, or set up a report in WeGive on recurring plans to see any activated plans using a custom field on recurring plans.
Setup
Walk through these five steps in order. Steps 1 through 4 are sequential. Step 5 begins once the import is complete and the journey is sending.
1. Configure the Donor Portal
In the WeGive dashboard, go to Settings → Donor Portal → Recurring Plans and turn on:
Yes, allow donors to edit and confirm payment information on their offline recurring plans
This is what lets donors add a payment method to the recurring plans you import.
2. Tag the donors being migrated
WeGive's import tool does not currently support importing values to a custom field on a recurring plan, so we use a contact tag to identify the donors being migrated and to filter them into the activation journey.
Create a tag named Recurring Plan Migration and apply it to every contact whose recurring plan will be imported. You can apply the tag in bulk through the contact import tool by uploading a CSV of contact IDs.
This tag scopes the journey trigger so only migrated donors receive the activation email.
3. Set up the journey and donor email template
Build the activation journey with these settings:
Setting | Value |
|---|---|
Name | Offline Recurring Plan, Add Payment Method |
Entry trigger | Recurring Donation Created |
Entry filter 1 | Recurring Donation: Payment Method is None |
Entry filter 2 | Supporter has tag: |
One-time entry | Your choice (see note below) |
Allow late entry | Enabled |
Exit rule | Recurring Donation Activated |
Note on One-time entry. The trigger fires once per recurring plan created. If you enable One-time entry, a donor with multiple plans will only enter the journey once and receive a single email referencing one of their plans. If you disable One-time entry, the donor will receive a separate email for each plan, each with merge tags and a deep link to that specific plan. Disable it if any donors in the migration are likely to have more than one recurring plan being imported.
Journey flow:
Step | Action |
|---|---|
1 | Send Email: Message 1 (Day 0) |
2 | Time Delay: 7 days |
3 | Send Email: Message 2 (Day 7) |
4 | Time Delay: 7 days |
5 | Optional: Final nudge email or tag the donor for personal follow-up |
The Recurring Donation Activated exit rule removes donors from the journey the moment they activate.
Build the donor email template that Message 1 will send. Recommended merge tags for the activation email:
Merge tag | What it inserts |
|---|---|
| Donor's first name |
| The gift amount |
| The frequency (Weekly, Monthly, etc.) |
| The date their next gift will process |
| The organization's name |
For the call-to-action link, hardcode the Donor Portal recurring plans URL:
https://app.wegive.com/[YOUR_ORG_SLUG]/recurring
Replace [YOUR_ORG_SLUG] with your organization's WeGive slug (the same slug used in your public giving forms). Donors who are not already signed in will be prompted to log in and then redirected back to this page. From there they will see all of their recurring plans and can click into the one with a Missing status to add a payment method.
This list-view link is preferred over the plan-specific {{scheduled_donation_edit_link}} merge tag, because it lets donors see and review every recurring plan they have before activating. Donors with multiple plans can activate each one in sequence from the same page.
The most important thing in the email is to set clear expectations about when the donor will and will not be charged. Use the merge tags so each donor sees their own amount, frequency, and next charge date. Make it explicit that the donor will not be charged today and that their next gift processes on the date shown.
Including 2 or 3 screenshots showing which buttons to click in the Donor Portal significantly reduces support tickets, especially for donors who might accidentally edit the Next charge on date.
Sample email template (Message 1)
Use this as a starting point and adjust the tone, branding, and contact information to fit your organization.
Subject: Action Needed: Activate Your Recurring Gift to {{organizationName}}
Body:
Dear {{donor_first_name}},
Thank you so much for your generous support. Your recurring gift of {{scheduled_donation_amount}} each {{scheduled_donation_frequency}} means so much to us and to the mission we share.
We recently moved our online giving to WeGive. Your recurring gift has already been set up and is ready to continue on its normal schedule. We just need you to log in and add your payment method.
You will not be charged today. Your next gift will process on {{scheduled_donation_next_installment_date}}, exactly as scheduled. When you add your payment method, the portal will ask you to confirm this date. Please do not change it. Changing this date can result in being charged earlier than expected.
Click here to log in and activate your gift: https://app.wegive.com/[YOUR_ORG_SLUG]/recurring
Need step-by-step help? See How to activate your recurring gift for a walkthrough with screenshots.
If you have any questions, please reach out to us at [CONTACT EMAIL]. We are happy to help.
Thank you for your continued partnership with {{organizationName}}.
[STAFF NAME] {{organizationName}}
Sample email template (Message 2 reminder, Day 7)
A lighter reminder for donors who have not yet activated. Same subject prefix so it threads with Message 1 in most email clients.
Subject: Reminder: Activate Your Recurring Gift to {{organizationName}}
Body:
Hi {{donor_first_name}},
Just a friendly reminder that your recurring gift of {{scheduled_donation_amount}} each {{scheduled_donation_frequency}} still needs a payment method added before it can continue.
It only takes a couple of minutes: https://app.wegive.com/[YOUR_ORG_SLUG]/recurring
Your next gift will process on {{scheduled_donation_next_installment_date}} once your payment method is on file. You will not be charged today when you add it.
If you need help, see How to activate your recurring gift for a walkthrough with screenshots.
If you no longer wish to continue your recurring gift, no action is needed. Or reach out to us at [CONTACT EMAIL] and we can help.
Thank you for everything you make possible.
[STAFF NAME] {{organizationName}}
Activate the journey before you run the import.
4. Import the recurring plans
Each plan in the import file needs the donor record (already tagged in Step 2), the plan amount, the frequency, the designation, and the next processing date.
The next processing date is the most important field to get right. If you import a plan with a date in the past, WeGive treats the plan as overdue. When the donor adds their payment method, the system will bump the next billing date forward to tomorrow, which means the donor gets charged the day after activation. This is the most common cause of complaints during a migration.
How to set the next processing date on each plan:
Situation | What to set the next processing date to |
|---|---|
Donor was already charged this cycle on the old platform | The donor's next scheduled cycle date after the one that already processed |
Donor was not yet charged this cycle and their original date is at least 7 days after the cutover | Their original scheduled date |
Donor was not yet charged this cycle and their original date is before, on, or within 7 days of the cutover | The following cycle date |
Migration with a long cutover window | The first cycle date after your cutover date |
The 7-day buffer protects donors who add their payment method the same day they receive the activation email from being charged immediately.
Decide on your cutover date. Your cutover date is the date you will stop billing on the old platform. Pick a date far enough in the future that donors have realistic time to activate their plans. A good default is the end date of your current contract with the old platform. Anything shorter than 60 days from the launch of donor outreach tends to result in lost recurring donors.
Reconcile with your existing platform. Pull a recent charge report from the old platform so you can see which donors have already been billed this cycle. Plans that were already charged should have their next processing date pushed forward to the next cycle so the donor is not charged twice in the same period.
Sanity check the file. Sort the import file by next processing date ascending. Review the first 20 rows. If any are dated today, yesterday, or are blank, fix them before importing.
Test with a single plan first. Import one plan tied to an internal test donor, log in to the Donor Portal, and add a payment method. Confirm no charge fires and the next processing date is preserved. Only after that passes should you run the full import.
Batch large or first-time migrations. For first-time migrations and any migration over 5,000 plans, run the import in batches of 25 to 50 plans per day. This smooths out the email volume and catches any timing issues on a small group before the full list is processed.
5. Monitor activations with a report
After the journey starts sending, build a recurring plans report to track activation.
In the Advanced Filters on the recurring plans report:
Import ID equals the ID of the import file you ran (scopes the report to migrated plans only)
Payment Method is not Offline (shows only plans where a donor has added a payment method)
This gives you a live list of activated plans, and by inference the donors who have not yet acted. Note: this filter approach only works if all the recurring plans were imported in the same file.
During the migration window
Several things need to happen alongside the import so donors are not pulled back to the old platform.
Cancel old plans as donors activate them in WeGive. When a donor adds a payment method in WeGive, cancel their corresponding plan on the old platform so they are not charged twice. The internal Recurring Donation Activated notification is the trigger for this work. If the old platform does not offer a cancel-by-API option, this has to be done manually in the old platform's UI.
Cancel silently so donors are not notified. Most platforms send an automatic "your recurring gift has been cancelled" email when a plan is cancelled. This confuses donors who have just activated the same plan in WeGive and creates avoidable support tickets. Before you begin the migration, check the old platform's settings for a silent-cancel option or temporarily disable cancellation notifications. If the platform does not allow you to suppress the email, draft a customer service response in advance so your team is ready to reassure donors that their new WeGive plan is unaffected.
For high-volume migrations where the old platform has no bulk cancel API (often the case with Classy/PayPal), consider asking donors to cancel the old recurring agreement themselves as part of the activation email. This works especially well for plans backed by PayPal, since donors can manage PayPal subscriptions directly from their PayPal account. This distributes the cancellation work across the donor base instead of concentrating it on your team.
Swap your website donate buttons. Replace every Donate button on your website so all giving flows route to WeGive. Add a Login button that points to your Donor Portal so existing recurring donors can find their way in.
Record missed payments as offline donations. If a donor's plan misses an installment during the migration window (for example, because the next scheduled date arrived before they added their payment method), log the make-up payment as an offline donation in WeGive so the giving history stays accurate.
Enable the dunning flow. Turn on the Dunning Flow in WeGive so donors are automatically alerted when a transaction on their plan fails. This catches the inevitable expired card and updated billing address cases without manual follow-up.
Keep the old portal accessible for history. Donors will not see their pre-migration giving history in WeGive until the historical transaction data is imported separately. Until that import is complete, keep a link to the old portal available so donors can look up old receipts.
After the cutover date
On the cutover date, cancel any remaining plans on the old platform that have not been activated in WeGive. Donors with cancelled plans who later want to resume can be sent the activation email again or directed to the giving form to start a new plan.
Monitoring and recovery
A short list of things to watch for in the first 30 days:
Monitor activation rates weekly. Use the journey reports to see how many donors have activated. Plan a personal follow-up cadence from staff for plans that have not activated after the third email.
Watch for early charges. If any donor is charged on the same day they added their payment method, that means their next processing date was set incorrectly during import. Pause the journey, audit the remaining plans, fix any with dates in the past, then resume.
Refund quickly if it happens anyway. Refund any incorrect charge the same day, send a brief apology, and confirm the plan's next processing date has rolled forward correctly so the donor is not charged again next cycle on top of the refund.