Recurring giftsMove recurring gifts to Givable

Move recurring gifts to Givable

Bring your monthly donors over from another platform, with their cards, schedules and funds, without missing a payment or charging anyone twice.

When you're done, every recurring gift from your previous platform lives in Givable, on the donor's own card and the donor's own day of the month, and carries on from exactly where your old platform stopped. Your donors keep giving, and nobody gets charged twice. Let's move them.

Everything happens in one place: Settings > Imports, then Move recurring gifts to Givable. That opens the Recurring migration workspace, which walks you through five steps. They run across the top of the page as a timeline: select a step to see what to do in it, the numbers that say whether it's finished, and its action. Back and Next walk them in order, and the page opens on the first step that isn't done.

Before you start: to see the workspace you need permission to view recurring gifts and to view imports. To run the imports you need permission to create imports. Saving the stop date and sending the donor email need permission to moderate imports, and enabling gifts needs permission to edit recurring gifts as well. Stripe must be connected under Settings > Payments (see Connect payments).

Nothing is charged until you say so. Every gift you bring in arrives as Migrating. A Migrating gift is never charged, whatever its dates say, until it's enabled in step 5. You can import, fix and re-import as many times as you need.

The checklist

Keep this handy. Each line is a step in the workspace, in order.

  1. Donors: import your supporters, or connect your CRM, so every gift has a donor to belong to.
  2. Recurring gifts: import one row per gift with the Recurring gifts import, with each fund named by its Givable ID, and fix any row the preview flags.
  3. Payment methods: have your previous processor move the cards to your Stripe account, then link them with the Recurring gift payment methods import.
  4. Notify Transition: enter the last day your previous platform charged, and, if you want to, tell your donors.
  5. Enable Recurrings: check the numbers, decide about past payments, and enable the gifts.

Before you start

Agree on the day your previous platform stops charging recurring gifts. You'll enter it in step 4, and it's the line that keeps donors from being charged twice: Givable never collects a payment that was due on or before it.

Step 1: Donors

Every recurring gift belongs to a supporter, so donors come first. The workspace shows how many supporters you have and where they came from.

Bring your donors in

Select Import supporters to import them from a CSV (see Import a spreadsheet), or connect your CRM under Settings > Integrations and let it sync your contacts into Givable.

Keep their ids for the next step

After the import or sync, export your supporters, or note the CRM contact id on each one. When your recurring gift file carries those ids, every gift lands on exactly the right donor.

How a gift finds its donor

Each row of your recurring gift file is matched to a donor in this order:

  1. Supporter Givable ID (for example S4VSTYHG), which matches that exact supporter.
  2. Supporter Salesforce id, the donor's contact id in your CRM, for supporters synced from it.
  3. Your organization's own matching rules (Settings > Matching & conversion), using the donor's email, name and phone.

An id is exact: one that names nobody in Givable fails the row rather than guessing. When the matching rules find more than one possible supporter, the row waits in the preview for you to choose.

Ids beat names. Two donors called Pat Lee with the same email are rarer than you'd think, but they exist. A Givable ID or CRM id removes the guesswork completely.

Donors who aren't in Givable yet

By default, a row whose donor matches nobody is refused, so you can import or sync that donor first. If you'd rather create them as you go, turn on Create donors who are not in Givable yet in the import's options. A row then creates the supporter when it has the donor's last name and either an email or a full address. A row that matches more than one supporter still waits for you to choose: it never creates a duplicate.

Step 2: Recurring gifts

Now the gifts themselves. Select Import recurring gifts in the workspace (or choose Recurring gifts under Settings > Imports > New import).

Upload your file

One row per recurring gift, as a CSV of up to 50 MB and 100,000 rows.

Map the columns

Each column in your file is a row, with a few values from it, so you can see what it holds. Choose the Givable field it fills, or Don't import. The required fields are listed at the top and tick off as you map them. Common exports map themselves: the field names and report labels of the CRMs Givable connects to, and Stripe's subscription export columns (such as current_period_end and customer_id), are recognized on sight. Check the suggestions anyway. Every column is described on the Recurring gift columns page.

Set the options

Choose a Start date (or leave it blank to choose later), a Default fund for rows with no fund, whether to Create donors who are not in Givable yet, and whether to Collect past payments (off unless you turn it on). Each is explained below.

Read the preview

The counts at the top (Ready, Problems, Donors found, Several matches) also filter the table: select one to see only those rows, and select it again to see them all. Each row shows your file's values in columns, with a problem marked on the cell it's about. Under the row is what Givable worked out: whether it's a New gift or Updates one already in Givable, its fund split, and the past payments it would collect. Fix what it flags (see below), choose a donor where there's more than one, then confirm.

What each gift needs

Only two columns are required: Amount (each installment, for example 25.00) and Frequency (weekly, biweekly, monthly, quarterly, semi-annual or annual). Add the donor and as much of the schedule as your export has. The more dates you bring, the more exactly the gift picks up where it left off.

Funds: one, or a split

  • One fund: put the fund's Givable ID (for example FUQ69AD8) in the Fund column, or leave it blank and choose a Default fund in the options.
  • A split: use Fund 1 with Amount 1 or Percent 1, Fund 2 with Amount 2 or Percent 2, and so on, up to five funds. Use amounts or percents in a row, not both. Amounts must add up to the gift's Amount, and percents must add up to 100.
  • More than five funds, or a file with one row per fund: import the gifts first, then a split file. See Recurring gift split columns.

Each fund's Givable ID is on Settings > Funds. Imports never create funds, and a fund name in the file isn't accepted: replace the fund or designation names your previous platform exported with these IDs before you upload. A row whose fund cell isn't one of your funds' Givable IDs is marked with what to put instead.

Receiptable amounts come from your funds. Givable works out the receiptable part of each installment from the fund's tax settings, less any Benefit value (the value of anything the donor receives in return). If your file has a Receiptable amount column, it's used only as a cross-check: a row where the two differ is flagged so you can look, and Givable's figure is the one kept.

Dates: where the schedule picks up

ColumnWhat it tells Givable
Last paid dateThe last installment your previous platform collected.
Next payment dateThe next installment your previous platform would have taken. It can be in the past.
Day of monthThe donor's charge day: 1 to 31, or "last". Blank uses the day of the last paid date or the start date.
Start date on GivableThe first day Givable may charge this gift. Today or later.
End date and Installments leftOptional. When the gift should stop.

Givable picks up the schedule from the Next payment date, or, without one, from the installment after the Last paid date. Any installment that falls after your stop date (step 4) and before the gift starts is a missed payment: it's only collected if you choose to (see past payments). A gift with neither date starts fresh on the day it starts.

The start date. The Start date you choose in the options applies to every row, and a Start date on Givable column wins for its own row. A gift with a start date starts by itself on that date, once it's ready (step 5). Leave both blank and you start the gifts with Enable whenever you're ready. You can also set or change one gift's start date on the gift itself, under Migration start, while it's Migrating.

Status: active or paused

The Status column takes active or paused, in any letter case. Blank means active. A paused gift comes in as Migrating like the others and, when it starts, starts Paused and collects no past payments. Cancelled gifts aren't imported at all.

Currencies

Each gift keeps its own currency: put a three-letter code such as USD or CAD in the Currency column, or leave it blank to use your organization's base currency. The preview and the workspace show money per currency, side by side, and never add different currencies together. A total like "$9,412.50 USD and CA$200.00 CAD" is two totals, not one.

Fix a row before you import

A row with a problem is marked in the preview with what's wrong, in plain words: a frequency Givable doesn't recognize, a split that doesn't add up, a date in the wrong order. Select the row's edit button, correct the value in Edit row, and select Save row. The row is checked again on the spot and its preview updates. No need to fix the spreadsheet and upload it again.

The workspace lists Imports in progress with how many rows are ready, how many are to fix, and how many need you to choose a donor, so you can pick up an import you stepped away from.

Gifts arrive as Migrating

When you confirm, each gift is created with the status Migrating. You'll find them under Financials > Recurring with the rest of your recurring gifts (the workspace's See every Migrating gift link opens that list already filtered). A Migrating gift is never charged.

Fix Migrating gifts in a grid

To change several gifts at once, select Edit Migrating gifts in step 2 of the workspace (or on Financials > Recurring). It opens every Migrating gift in a full-screen table. Select a cell to change a gift's Amount, Frequency, Day of month, Next payment date, Start date on Givable or End date. Each change saves on its own and shows in the gift's history. A new amount also updates the gift's fund split, keeping each fund's share. A gift that has already started can't be changed here. Select Done to go back.

Import again to update, not duplicate

Map the Previous recurring id column (for example a Stripe subscription id, sub_...) and you can run a corrected file as often as you like. A row whose previous recurring id is already on a gift updates that gift instead of creating a second one. The Recurring gift Givable ID column (or the gift's id in your CRM) does the same for a specific gift.

An import can only change a gift that's still Migrating and hasn't started. Once a gift is live on Givable, change it on the gift itself.

Gifts that came over another way

Recurring gifts synced from your CRM, or entered by your team before the move, can join too. On Financials > Recurring, select the gifts, then Add to migration. They become Migrating and wait to be enabled with the rest. A gift Givable has already charged, a cancelled one, or one that's past due or lapsed is left as it is, and the message says how many and why.

Step 3: Payment methods

A Migrating gift starts only with a card Givable can charge. The workspace counts the gifts With a payment method and Without one, and where each card came from.

Card numbers are never accepted. No import takes a card number, security code or bank account number, and a file with anything that looks like a card number is refused. Cards move between processors directly; your files carry only the processor's ids (such as pm_... and cus_...).

Move the cards to your Stripe account

Ask your previous platform to transfer your donors' saved cards to the Stripe account you've connected to Givable. Stripe receives the card details from them securely and gives you back a mapping file: for each card, its new Stripe customer id (cus_...) and payment method id (pm_...).

If your previous platform already charged through that same Stripe account, the cards may be there already. Use their existing ids.

Select Import payment methods in the workspace (it's the Recurring gift payment methods import). Each row links one card to one recurring gift:

  • Processor payment method id (required): the pm_... id from Stripe's mapping file.
  • Processor customer id: the cus_... id. Givable checks that the card belongs to that customer.
  • Recurring gift Givable ID (for example RR2SXJW8): the surest way to name the gift. Each gift's Givable ID is in the ID column on Financials > Recurring.
  • Without a Givable ID, the gift is found from the Donor email and name together with the Amount and Frequency.

When you confirm, every card is checked against your organization's own Stripe accounts, and one that isn't on any of them is rejected. Linking a card never charges it and never starts the gift. Full detail: Payment method columns.

Donors without a recurring gift: Supporter payment methods

Some donors have a saved card but no recurring gift. The Supporter payment methods import keeps their card on file, so they can give again from their supporter portal and at checkout, and your team can charge it when the donor asks (for example on the phone). Nothing is charged by the import.

Before it runs, you confirm the Card on file confirmation: a statement that your donors agreed to have their card kept on file, plus a note on where they agreed (for example, the terms on your previous platform's checkout). It's recorded with the import, with your name and the date. Donors are never created by this import: a row whose donor isn't found is left out.

Donors can add a card themselves

A donor can add a card to their own gift in your supporter portal. It counts the same as an imported one, and the workspace shows how many came from the Donor portal. It's a good fallback for the few cards that don't make the transfer.

Step 4: Notify Transition

Enter the last day your previous platform charged

In Last day your previous platform charged, enter the date of the last recurring charge your old platform made (or will make, once it has happened). It can't be in the future. Select Save.

This date is what prevents double charges. Givable collects nothing that was due on or before it: those payments belong to your previous platform. A payment due after it and before the gift starts is a missed payment, which is collected only if you choose to.

Until the date is saved, no gift can start, and the workspace shows them waiting with Previous platform stop date not confirmed. Once gifts have started, the date can no longer be cleared.

Make sure your old platform has really stopped. Turn off recurring charging there, or cancel the subscriptions, before you turn anything on here. Givable can't see your previous platform, so this date is your promise that it's done.

Optional: tell your supporters

Letting donors know their gift is moving helps avoid surprises, but it's up to you. Gifts start the same whether or not you send anything, so it never holds up your timeline. Under How donors were told, choose one:

  • Not recorded: nothing to note.
  • We're using Givable's email: send Givable's email from this step.
  • We told donors ourselves: describe how and when (Describe the notice, at least 10 characters), the Date it was sent, and tick The notice mentioned past payments if it did. This is for your records.

Givable's email is a ready-made message to each donor about their own gift: its amount, when it continues, and any past payments that will be collected. It's a template, so you can change the wording, layout or anything else first: select Review and customize the email. Once you've saved your own copy, you'll find it under Templates (see Email templates).

When it reads right, select Send the email to your donors and confirm. The workspace then counts the emails Sent, On its way, still To send, and donors with No email on file (add an email to their supporter record if you want them to get it). A donor who already has a recent one isn't emailed again; one that bounced, or that is too old to count, can go out again with the next send.

The email is for your donors' information. It doesn't change when a gift starts or what it collects.

Step 5: Enable Recurrings

The last step shows how many gifts are Ready to start, how many are Waiting, and how many have Already started, with the money per currency: the number of gifts, the total Per installment, and any Past payments with their total and the oldest date due.

What "ready" means

A gift is ready when it has a card on a connected Stripe account and your stop date is saved. When it isn't, Why gifts are waiting says why:

ReasonWhat to do
No payment method yetLink a card in step 3, or ask the donor to add one in the supporter portal.
Previous platform stop date not confirmedSave the stop date in step 4.
Payment method cannot be chargedThe card isn't usable (for example, removed in Stripe). Link another card.
Bank debit is not available yetThe gift is linked to a bank account rather than a card. Link a card instead.
Payment processor is disconnectedReconnect the Stripe account the card belongs to.
Closed in your CRMYour CRM says the gift was closed while it waited, so it isn't started. Reopen it there if that's a mistake.
Schedule has no next payment dateThe dates on the gift don't produce a next payment. Correct them by importing the row again.

Past payments

If your switch-over left a gap, some installments fell after your old platform stopped and before Givable starts. Those are past payments, and they're off by default: a missed installment is skipped, never a debt the donor owes.

You can choose to collect them on the recurring gift import, under Collect past payments, by choosing Up to 1 to 12 per gift. Only the most recent missed installments are collected, up to that number. Before anything is charged:

  • the import preview shows each row's past payments, and the file's total, before you confirm;
  • step 5 shows them in a warning, per currency, and you tick I understand to confirm the count and total;
  • if any gift would collect more than 6, you confirm a second statement too.

Each past payment is a separate charge, one a day, on top of the donor's regular gift, and then the regular schedule takes over. If one is declined, the rest of that gift's past payments are dropped rather than retried, and the gift carries on with its regular schedule.

Enable the gifts

Check the numbers

Read the totals, per currency, and the past payments warning (or No past payments will be collected). How donors were told shows what you recorded in step 4, for information.

Confirm

Tick the statements shown, if any, then select Enable with the number of gifts (for example Enable 749 recurring gifts).

Watch them start

Gifts start within the hour. Each one is checked again right before it starts, so a gift that stopped being ready in the meantime (say, a card was removed) waits instead, with its reason.

If the numbers changed while the page was open (another teammate linked more cards, for example), you'll see the fresh numbers and confirm again. You only ever enable what you saw.

Enabling starts every ready gift today, including ones with a later start date. Gifts that aren't ready yet keep waiting: come back and enable them as they become ready.

What happens next

  • The regular schedule takes over on each donor's own day of the month (or week, for weekly gifts), exactly as before. Each charge creates a gift and a payment, like any other recurring gift.
  • If a payment fails, the gift goes Past due while it's retried under your retry settings, and Lapsed if the retries run out. See Recurring gifts.
  • Every status change (Migrating, Active, Past due and the rest) is recorded in the gift's history, so you can always see when and why it changed.

That's it: your donors are home.

FAQ

Still stuck?

We're here for you, and no question is too small. Tell us what you were trying to do and what happened, and we'll help you get it sorted.