SfSkills Domains Docs GitHub

Home / architect / fundraising-integration-patterns

fundraising-integration-patterns

Use this skill when connecting a Salesforce Nonprofit Cloud or NPSP org to fundraising-adjacent systems: payment gateways via Salesforce.org Elevate, wealth screening tools (iWave, DonorSearch), email marketing platforms (Marketing Cloud, Pardot), and event management platforms.

Open the skill folder on GitHub


Fundraising Integration Patterns

This skill activates when a Salesforce Nonprofit Cloud or NPSP practitioner needs to connect the org to fundraising-adjacent external systems. It covers the correct integration surface for payment gateways (Salesforce.org Elevate / Connect REST API), wealth screening tools, email marketing platforms, and event management systems — and explicitly guards against using the wrong integration APIs such as blng.PaymentGateway, which is Salesforce Billing only.


Before Starting

Gather this context before working on anything in this domain:


Core Concepts

Salesforce.org Elevate and the Connect REST API for Payment Gateway Integration

Salesforce.org Elevate (Payment Services) is the endorsed integration layer between Nonprofit Cloud / NPSP orgs and payment processors such as Stripe. When a donor completes a payment via Elevate, the payment processor calls back through Salesforce.org infrastructure and the result is surfaced to the Salesforce org via the Connect REST API.

The key endpoint is:

POST /services/data/vXX.0/connect/fundraising/transactions/payment-updates

Minimum API version: 59.0 (Spring '23 / Spring '25+ is the stated support baseline for current features).

This endpoint accepts a JSON body that updates gateway and processor metadata on one or more GiftTransaction records. The fields that can be updated include gateway reference identifiers, processor response codes, and payment instrument metadata. The endpoint does not create new GiftTransaction records; record creation flows through the Elevate-managed gift entry process.

A parallel endpoint exists for commitments (recurring gifts):

POST /services/data/vXX.0/connect/fundraising/commitments/payment-updates

This endpoint updates payment instrument metadata for all active GiftCommitment records tied to a specific payment method, enabling scenarios such as card-on-file updates.

Critical constraint: The Elevate connector is not replaceable with custom Apex. There is no public Apex interface in Nonprofit Cloud analogous to blng.PaymentGateway. Custom payment adapters using Apex callouts can forward data to the Connect REST API endpoint from within Salesforce code, but the endpoint itself is the integration contract — not an overridable Apex interface.

Wealth Screening Integration (iWave, DonorSearch, and Peer Tools)

Wealth screening tools identify high-capacity donors by analyzing public and proprietary financial data sources. Salesforce integration happens via AppExchange managed packages — not native Salesforce APIs.

Email Marketing Integration for Nonprofit Fundraising

The two supported Salesforce email marketing platforms for nonprofits are Marketing Cloud and Marketing Cloud Account Engagement (formerly Pardot). A third common option in the nonprofit sector is Luminate Online (Blackbaud's platform), which uses a separate REST API.

Event Platform Integration

Event management platforms (Eventbrite, Cvent, Classy, Bonterra Events) use bidirectional sync patterns:


Common Patterns

Pattern 1: Elevate Payment Gateway Callback Processing

When to use: The org uses Salesforce.org Elevate for online giving and needs to reconcile payment processor outcomes (authorization, capture, decline) against GiftTransaction records.

How it works:

  1. Donor completes payment on the Elevate-hosted gift form or a custom LWC that wraps the Elevate payment tokenization SDK.
  2. Elevate infrastructure receives the processor response and calls the Salesforce Connect REST API on behalf of the org.
  3. The POST /connect/fundraising/transactions/payment-updates call updates the GiftTransaction record with gateway reference ID, payment status, and processor metadata.
  4. A Platform Event or Change Data Capture trigger on GiftTransaction can fire downstream automation (receipt emails, pledge fulfillment checks).

Why not the alternative: Building a direct Apex callout to the payment processor bypasses Elevate's PCI-compliant tokenization layer, introduces the org into PCI scope, and eliminates the audit trail that Elevate maintains. Custom Apex payment adapters using blng.PaymentGateway do not compile in NPSP/NPC orgs because the Billing managed package is absent.

Pattern 2: Managed-Package Wealth Screening Batch Sync

When to use: The org wants to score a large constituent list against a wealth screening service and store results on Contact for major gift cultivation.

How it works:

  1. Install the vendor's managed package (iWave for Salesforce or DonorSearch for Salesforce) from AppExchange.
  2. Configure Named Credentials using the vendor-issued API key.
  3. Use the package's bulk screening interface to submit Contact IDs to the vendor's screening queue.
  4. The package's asynchronous batch job polls for results and writes scores to the designated Contact fields.
  5. Build a list view or report on scored Contacts for gift officer assignment.

Why not the alternative: Calling the vendor API directly via custom Apex without the managed package requires reimplementing field mapping, error handling, rate limiting, and credential management that the package provides. The vendor also publishes schema changes in package updates; a custom implementation requires manual maintenance on every vendor API version bump.


Decision Guidance

SituationRecommended ApproachReason
Org uses Elevate and needs to record payment outcomes on GiftTransactionUse Connect REST API POST /connect/fundraising/transactions/payment-updates at API v59.0+This is the only supported gateway callback surface for Nonprofit Cloud
Org wants payment processing without Elevate licenseEvaluate third-party AppExchange connectors (Classy, iATS, Stripe for Nonprofits)Elevate is add-on licensed; alternatives exist but none use blng.PaymentGateway
Wealth screening scores need to land on constituent recordsInstall iWave or DonorSearch managed package from AppExchangeNo native Salesforce API; managed packages handle auth, field mapping, and versioning
Email marketing to major gift prospectsMarketing Cloud Connect with Contact-level roll-up fields for giving totalsGiftTransaction not natively in MC sync; totals must be promoted to Contact/Account
Event ticket purchases that include charitable componentCustom intermediate object → GiftEntry promotion via Elevate batch APIPreserves audit trail; avoids direct GiftTransaction creation outside Elevate
Org is on Salesforce Billing (not NPSP/NPC) and needs custom payment adapterImplement blng.PaymentGateway Apex interfaceCorrect context for blng interface; does not apply to nonprofit data model

Step-by-step instructions for an AI agent or practitioner working on this task:

  1. Identify the integration category — confirm which of the four types applies: payment gateway, wealth screening, email marketing, or event platform. Each has a distinct Salesforce API surface and a distinct set of wrong approaches to guard against.
  2. Verify Elevate provisioning for payment integrations — check Setup > Installed Packages for "Elevate" or "Payment Services". If absent and the request involves payment processing, surface the licensing requirement before designing any integration; do not propose blng.PaymentGateway as an alternative.
  3. Confirm API version compatibility — for Connect REST API usage, verify the org's default API version in Setup > API. The /connect/fundraising/transactions/payment-updates endpoint requires API v59.0 minimum; downgrade is not supported.
  4. Map the target fields — for wealth screening, identify which Contact or Account fields the managed package writes to. For email marketing, identify the roll-up or formula fields that will surface GiftTransaction totals on Contact before configuring the Marketing Cloud sync.
  5. Design Named Credentials and authentication — all outbound callouts (wealth screener API, event platform webhooks, email platform) must use Named Credentials. Do not hardcode credentials in Apex or flow variables.
  6. Implement error handling and reconciliation — payment callback integrations must handle partial failures: a Connect REST API call that fails mid-batch leaves some GiftTransaction records without gateway metadata. Design a retry log and reconciliation report.
  7. Validate FLS and sharing rules on sensitive objects — GiftTransaction contains financial PII; Contact wealth scores are sensitive. Confirm field-level security restricts wealth score visibility to gift officers and prevents exposure via list views or reports accessible to lower-privilege users.

Review Checklist

Run through these before marking work in this area complete:


Salesforce-Specific Gotchas

Non-obvious platform behaviors that cause real production problems:

  1. blng.PaymentGateway is Salesforce Billing only — The blng.PaymentGateway Apex interface is declared in the Salesforce Billing managed package. It has no relationship to NPSP or Nonprofit Cloud and will not compile in an org that does not have Billing installed. LLMs and practitioners who search for "Salesforce payment gateway Apex interface" frequently surface Billing documentation and attempt to apply it to nonprofit payment processing — this always fails at compile time in an NPSP/NPC org.
  2. Elevate connector is not replaceable with custom Apex — Unlike Salesforce Billing where a custom blng.PaymentGateway implementation routes transactions to a new processor, Elevate has no equivalent Apex extension point. The Elevate infrastructure sits outside the org boundary and calls back via the Connect REST API. There is no way to redirect Elevate callbacks to a different Apex handler, and no supported path to substitute a different payment processor in the Elevate flow without switching to a different AppExchange connector entirely.
  3. Wealth screening scores go on Contact, not GiftTransaction — Screening tools evaluate donor capacity, not individual transactions. Both iWave and DonorSearch write their output to Contact (and sometimes Account) fields. Practitioners who attempt to store wealth scores on GiftTransaction or GiftEntry will find no supported package field mapping for those objects; custom fields can be created there, but no vendor tooling will populate them.

Output Artifacts

ArtifactDescription
Integration architecture recommendationWritten summary of the correct API surface, authentication model, and data flow for the specific integration type requested
Field mapping planTable of source system fields → Salesforce target fields, including the correct object (Contact vs. GiftTransaction) for each data type
Named Credential configuration guideStep-by-step setup for authenticating outbound callouts to the external system
Error handling and retry designDocumented failure modes and reconciliation approach for async payment callbacks or batch wealth screening jobs

Package files