Fundraising in ActionKit


You can use ActionKit to accept credit card, PayPal or ACH donations, import external donations, manage donations, and send fundraising emails.

You can also take advantage of our integrations. Accept donations through ActBlue and enable our sync to track those donations and communicate with donors about them.

You can then view the status of your fundraising efforts through built-in or custom reports.

Donation Pages

To accept donations on an ActionKit page you must have an account where the funds will be deposited. You can:

  • accept credit cards using a traditional merchant vendor account
  • accept contributions into your PayPal account
  • accept direct debit contributions using Braintree's implementation of ACH

Once your credentials have been added, you'll be able to select the appropriate option when you create your Donation Page.

Creating a donation page involves the same steps as creating other page types.

You can read about the donation-specific pages, settings, and page tools, including the Suggested ask formula, which allows you to customize the donation amounts shown to a previous donor based on that user's giving history.

If you've had problems with credit card testers, you might also consider enabling Fraud Filtering, however this isn't generally necessary unless you find that someone is testing multiple numbers against your pages.

Donations are worth money! Always test your donation pages.


Make a real donation. You can go to your user record from the User’s tab and refund it afterwards. This is the only way to confirm that donations are working correctly.

Recurring Donations

Accepting Recurring Donations

You can accept recurring donations through ActionKit as long as you've configured your merchant vendor account for this. Braintree, PayPal, PayFlo Pro and will all accept monthly, quarterly, and yearly. All merchant vendors except Braintree also accept weekly donations; Braintree does not support a weekly recurring period.

A monthly donation option is included on your standard donation pages if you base your templateset on the Original. You can also configure weekly, quarterly, or annual donations, as allowed by your merchant vendor and account configuration.

If you are using Braintree, pay special attention to the custom retry options for recurring donations.

Pages For Recurring Donation Management

You can create pages where your users can manage their existing recurring commitments (including changing their credit card number, billing address, or amount) or cancel them. They will have to set a password and login.

Recurring Donation Email Stream

You can set up recurring mailings to help you manage donations. You might want one to users with active recurring profiles whose credit cards are about to expire. You might also consider a mailing that goes out to anyone who attempts a one-time or recurring donation but fails.

Some clients have also had success with a welcome series.

Managing Donations

Your database may include donations processed through ActionKit or externally. Donations are managed differently depending on where they were processed.

Donations (one-time and recurring) that came through an ActionKit page into your merchant vendor account should always be managed through ActionKit. This is also true for recurring profiles set up outside of ActionKit with one of the merchant vendors we support that you've imported. And, it's true for PayPal, if you're using our PayPal integration. If you make changes directly with your merchant vendor they may not be reflected in ActionKit.

To manage these donations, go to the user's Donation History screen (reached by clicking View User's Donation History on the user's record) and use the links in the Actions column. There are also links to Reverse and View payments through the user's Action History screen (reached by clicking Action History on the user's record). The links are:

  • View Payments: This link appears for recurring payments and takes you to the recurring profile screen to manage the profile and view all the payments associated with this recurring profile.
  • Reverse Payment: When you fully reverse a one-time payment or the initial payment when a recurring order is created, status in core_order will change to "reversed". Sometimes, you can use this link to issue partial refunds, discussed below, as well as full reversals.
  • Cancel Recurring: Clicking this link will ask you to confirm the cancellation of the recurring profile.
  • Re-send Confirmation Mailing: Clicking this link will re-send the confirmation mailing the donor received after their donation. Use this if a donor has misplaced their original confirmation mailing showing their donation details.


If you've made changes to a donation, those changes will NOT be reflected in the re-sent confirmation mailing. The confirmation mailing you can resend is an exact duplicate of the original.


Re-sending a confirmation mailing is only available for donations made on or after February 2019.

External Donations: External donations must be managed through the relevant vendor. For example, ActBlue donations can only be refunded through ActBlue. You'll see a link on the user's Donation History screen to reverse the payment as described above, but this doesn't prompt a refund. It just changes the payment status to "reversed" in the ActionKit database to reflect what has happened at the vendor. The same is true for donations imported against an import stub account.

Donation History

You can view the user's complete donation history by clicking the Donation History link. Every donation, attempted donation, and recurring payment for the user is shown, most recent first, with the date, order ID, activity type, status, amount, any additional information for the transaction, and action links.

If you click on the row for any transaction, depending on the type of payment (one-time vs recurring) you will see additional information about the transaction, including:

  • Payment processor
  • Recurring profile ID
  • Recurring profile start date
  • Recurring profile status
  • Recurring profile total paid
  • Transaction ID
  • Action ID
  • Page title and ID
  • Action field(s)
  • Candidate(s)
  • Source

You will also have the option to re-send a confirmation mailing for that donation if a donor has misplaced their original confirmation mailing receipt. Confirmation mailings can only be re-sent for a limited time, and are only available since February 2019.

Click the Expand All link above the donation history table to show the details for all donations.

You can also use the links in the Actions column for managing donations.

Recurring Profile Screen

You can reach the Recurring Profile screen by clicking on Manage Profile from the Recurring Donations section of the user record, or by clicking on View Payments from the user's Donation History screen.

The Recurring Profile screen displays information about the recurring profile including start date, number of payments, sum of payments, current charge amount and the date of the next charge.

You can change the amount, credit card, bank information, or billing address for future payments except for PayPal profiles. The billing address is prefilled from the last saved billing address for this profile, and changes to the billing address are only available for Braintree,, and PayFlowPro accounts.


PayPal does not support changing the amount, credit card, or billing address for future payments. To make any changes to PayPal recurring profiles, cancel the old recurring payment and start a new one.

You can also refund past payments and cancel future payments.

Any changes made will be tracked in the Donation Change Log which notes who made the change and whether it was a staff or the user.

It's best to manage all of these options through ActionKit, not directly through your merchant vendor account, so the changes are captured in ActionKit and transmitted to the vendor.

Any changes you make from this screen are processed through a page called admin_update_recurring that has the confirmation email unselected. If you want users to receive an email after staff make changes to their recurring profile, you can edit this page and select the confirmation email.

Fundraising Emails

Creating fundraising emails follows the same steps as creating other mailings, but you may want to take advantage of special donation-related snippets, or set up recurring mailings as part of a welcome stream or to renew expired recurring donors.

Donation Snippets

Donation Snippets do not include default values. If you target non-donors with an email that has a donation snippet, ActionKit will skip users for whom the mailing would show a blank where the tag is. It's best to target only donors or use a conditional that only includes the relevant sentence if the user is a donor. It's also a good idea to view several proofs when using these tags since the donors are especially valuable to you.

Donation snippet calculations are standardized to match donation stats on the individual user record. Donations are complicated and they've changed over to time to account for various scenarios. The donation stats on the individual user record include only completed donations, include imported donations, exclude donations of $0 (like free product orders), and exclude any payments (first or later) toward a recurring donation profile for the one-time donation calculation and include them for recurring. These Snippets use all the same logic.

You can view the SQL used for the user stats.

The Suggested Ask snippet requires an algorithm for computing the ask value. You specify the algorithm by selecting the page that contains the algorithm in the Landing Page dropdown. Read more in Suggested Ask Rules.

Snippets that include only one-time donations are followed by (single). Those with (total) include one-time and recurring donations.

When using the recurring Snippets, if you have donors with more than one active recurring commitment, the tags will only reference the first recurring donation profile.

Name Snippet
Highest Previous (single) {% requires_value donations.highest_previous %}${{ donations.highest_previous }}
Highest Previous (single or recurring) {% requires_value donations.highest_previous_all %}${{ donations.highest_previous_all }}
Average (single) {% requires_value donations.average %}${{ donations.average }}
Average (single or recurring) {% requires_value donations.average_all %}${{ donations.average_all }}
Most Recent (single) {% requires_value donations.most_recent %}${{ donations.most_recent }}
Most Recent Date (single) {% requires_value donations.most_recent_date %}{{ donations.most_recent_date }}
Most Recent (single or recurring) donation {% requires_value donations.most_recent_all %}{{ donations.most_recent_all }}
Most Recent Date of (single or recurring) donation {% requires_value donations.most_recent_date_all %}{{ donations.most_recent_date_all }}
Year to Date (total) {% requires_value donations.year_to_date %}${{ donations.year_to_date }}
Previous Year (total) {% requires_value donations.previous_year %}${{ donations.previous_year }}
Suggested Ask ${{ suggested_ask }}
Recurring Amount {% requires_value donations.recurring_amount %}${{ donations.recurring_amount }}
Recurring Start Date {% requires_value donations.recurring_start_date %}{{ donations.recurring_start_date }}
Recurring Original Amount {% requires_value donations.recurring_original_amount %}${{ donations.recurring_original_amount }}
Recurring Total {% requires_value donations.recurring_total %}${{ donations.recurring_total }}
Recurring Last Charge {% requires_value donations.recurring_last_charge %}{{ donations.recurring_last_charge }}
Recurring Last Amount {% requires_value donations.recurring_last_amount %}${{ donations.recurring_last_amount }}
Recurring Next Charge {% requires_value donations.recurring_next_charge %}{{ donations.recurring_next_charge }}
Recurring Period {% requires_value donations.recurring_period %}{{ donations.recurring_period }}
Most recent transaction from a recurring donation {% requires_value donations.most_recent_recurring %}{{ donations.most_recent_recurring.amount }}
Loop over the transactions for all of a User's Recurring Donations {% for orderrecurring in donations.all_recurring %}{{ orderrecurring.amount }}{% endfor %}
Currency for the most recent recurring donation {% requires_value donations.recurring_currency %}{{ donations.recurring_currency }}
Recurring Card's Last Digits {% requires_value donations.recurring_card_last_four %}{{ donations.recurring_card_last_four }}
Recurring is ACH Direct Debit {% if donations.recurring_is_ach %}...{% endif %}

If you want to display some text in a mailing that's only visible to donors, you can also use ActionKit's donation snippets with the Django {% if %} syntax to check whether a value for the snippet exists, and then use that logic to display your message.

For example:

{% if donations.highest_previous_all %}
    P.S. Thanks for being one of our most wonderful donors!
{% endif %}

This message will only show for donors.

Fundraising Reports

Built-In Donation Reports

Below are descriptions of some key reports, but there are many others included in your instance and documented in the reference. You can view previews for some reports here.

  • Recurring Donations Summary Dashboard - Displays year-to-date and month-to-date top-level stats for recurring donations: profiles, payments, new profiles, failed payments, cancelled profiles, and net change. Also displays the top 10 sources, top 10 pages, and top 10 mailings for the year for recurring donations.
  • Recurring Donations Summary Charts - Year-over-year visualization of recurring donation payments, active, new and cancelled profiles, and failed payments.
  • Recurring Donations Report - Displays monthly and year-to-date recurring donation amounts.
  • Basic Product Report - Displays combined sales information by product and accepts start and end dates and product IDs as parameters.

Donations Query Builder

You can create queries without writing SQL yourself by using ActionKit's point-and-click query builder interface.

Use the Donations Query Builder type to view counts of orders, payments (completed orders of more than $0), and donors as well as the sum and average of payments. View these totals broken down by page, donation source, type (one-time or recurring), donation status, donor address, etc. Or view a list of orders with related details like amount, account, status, products, donor name and address.

Understanding Donation Data In The Query Builder

Donations are complicated! We've simplified things a bit in the query builder so you can get the number you want without having to fully understand the data structure. For example, you don't need to know how the core_order and core_transaction tables relate to get a count of one-time donations broken down by final disposition: successful, failed or reversed.

However, it's still helpful to have a basic understanding of how donation processing works and the terms we've used:

A new donation is processed through one of your donation pages or imported through an import page using the uploader. Either way, an action is created as well as an order. If this is a new recurring donation, a recurring order is also created. Product orders are considered a type of donation, even if the product doesn't cost anything (and that's how you might end up with a $0 order).

When the donation is submitted to your merchant vendor or imported through the uploader a transaction is created. Future payments toward a recurring commitment (or profile) create new transactions, but not new orders or recurring orders.

Related terms:

  • Order - Any donation or product order attempt.
  • Transaction - A record of each successful order (whether imported or processed through ActionKit) as well as other interactions with your merchant vendor like refunding a donation or creating or canceling a recurring profile.
  • Payment - Money went into your account! Any successful donation or product order for more than $0. A recurring donation will have many associated payments. Imports are counted as payments.
  • Recurring profile - Each new recurring donation commitment gets a new recurring profile ID. One donor may have multiple profiles. Changing the amount or credit card information for a profile does not generally create a new profile.

Detail about processing and the data structure for donations is available for those who want to learn more under data capture details by category.