Skip to main content

Caestudy DonationFlow - NationBuilder donation import CLI tool for external payment processors (CanadaHelps and PayPal)

Project description

Cæstudy DonationFlow CLI

DonationFlow CLI is a command-line tool for importing donation data from external sources like CanadaHelps and PayPal into your NationBuilder account. It is designed to be a bridge for organizations that use payment processors not natively integrated with NationBuilder, or for those migrating from other CRM platforms.

DonationFlow CLI is extensible to other payment processor sources through an existing adapter template and a plugin architecture through which organization-specific business rules can be implemented.

DonationFlow CLI was originally developed to help a non-profit charitable organization successfully migrate their donation data from CiviCRM and integrate their existing PayPal and CanadaHelps workflows with NationBuilder.

Key Features

  • Import from External Sources: Import donation data from CanadaHelps and PayPal CSV exports.
  • Extensible Design: The tool is designed to be adaptable to other payment platform sources, includes a generic adapter, and is extensible with plugins.
  • Detailed Logging: Comprehensive logging of every import job operation, for easy troubleshooting.
  • Auditing: Job files provide detailed audit trail for each imported donation record.
  • Rollback Capable: A separate command allows you to safely rollback donation import jobs (deleting the imported transaction(s) from NationBuilder) if needed.

Prerequisites

  • Python 3.8+
  • A NationBuilder account with API access.
  • A configured NationBuilder OAuth application.
  • Donation data exported as CSV files from CanadaHelps or PayPal.

Installation

Create an environment and activate

python3 -m venv <my-environment-name>
source <my-environment-name>/bin/activate

Install using PIP

pip install cdflow-cli

For development installation, please see the Contribution Guide.

Quick Start

  1. Initialize configuration: Run cdflow init to create template files:

    • ~/.config/cdflow/local.yaml - Main configuration file (default location)
    • ~/.env/nb_local.env - OAuth environment variables template (non-configurable location)

  2. Configure OAuth credentials: Edit ~/.env/nb_local.env with your NationBuilder OAuth credentials, then load:

    Locate the load-secrets.sh script

    If you have installed via pip and have created your virtual environment:

    cd <path-to-venv-environment-directory>/lib/python3.13/site-packages/cdflow_cli/scripts/
    

    Execute the script using your .env file as the parameter

    source ./load-secrets.sh ~/.env/nb_local.env
    
  3. Update the import configuration: In your configuration file (e.g., local.yaml), update the cli_import section to point to your CSV file(s).

  4. Place your CSV file: Put your CanadaHelps or PayPal CSV file in the cli_source directory you specified in your configuration.

  5. Run the import:

    cdflow import --config /path/to/your/local.yaml
    

    Or with less verbose output

    cdflow import --config /path/to/your/local.yaml --log-level NOTICE
    

    Alternative: Override import settings via CLI flags

    You can override the import type and file path from the config using CLI flags:

    # Override with relative path
    cdflow import --type canadahelps --file donations/emergency.csv --config /path/to/your/local.yaml
    # Override with absolute path
    cdflow import --type paypal --file /tmp/paypal_donations.csv --config /path/to/your/local.yaml
    
  6. Review the results: The tool will provide real-time feedback in the console. After the import is complete, you can review the results in the output directory you specified in your configuration.

    • _success.csv: This file contains all the records that were successfully imported, along with the new NationBuilder Person ID and Donation ID.
    • _fail.csv: This file contains any records that failed to import, along with any error message(s) in the NB Error Message column.

  7. Verify in NationBuilder: Log in to your NationBuilder account and navigate to the Finances section. You should see the newly imported donations in your transaction list.

Documentation

For more detailed information on configuration, usage, and troubleshooting, please see our full documentation in the repo /docs directory.

Support

Customers and product evaluators can reach out for support at support@caestudy.com.

License

This project is licensed under the Business Source License 1.1 (BSL).

  • Current license: BSL 1.1 with production use restrictions
  • Converts to: Apache 2.0 License on 2029-09-01
  • Full terms: See the LICENSE file for complete details

Contributing

Contributions are welcome! Please note:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdflow_cli-1.0.0.tar.gz (558.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdflow_cli-1.0.0-py3-none-any.whl (582.9 kB view details)

Uploaded Python 3

File details

Details for the file cdflow_cli-1.0.0.tar.gz.

File metadata

  • Download URL: cdflow_cli-1.0.0.tar.gz
  • Upload date:
  • Size: 558.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for cdflow_cli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9bfabe5e29c20d7057aba3abb764bc4693c97c84e3f0f127382899fdce545143
MD5 49b932ce168926d86a86c8a40888d6b3
BLAKE2b-256 aa1851eb243ebf658930a8f217a7706325984c3dbf2480115c3c10f1013b3960

See more details on using hashes here.

File details

Details for the file cdflow_cli-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: cdflow_cli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 582.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for cdflow_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fbbcc03f0521e27bc947c824ec77e3607f2d78a562bf9fd5ab86d8343bad6aa4
MD5 5672c780673698a2655322815c910fe4
BLAKE2b-256 858f993ad8d1429e74da568038f5adb9b01814042045bd25401cefcb742bc884

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page