Ellipse Gradient for Header
Salesforce Nonprofit Cloud logo

Salesforce Nonprofit Cloud Integration Guide

Salesforce Nonprofit Cloud integrates through Salesforce Platform REST, SOAP, Bulk, GraphQL, composite, and event APIs, with OAuth-secured workflows for constituent, program, fundraising, and file data.

Salesforce Nonprofit Cloud integration options at a glance

Salesforce Nonprofit Cloud runs on the Salesforce Platform and provides REST APIs for SOQL queries, sObjects, metadata, and Composite API operations. GraphQL is available for supported schemas, while SOAP remains useful for WSDL-based integrations. Bulk API 2.0 supports high-volume asynchronous ingest and query. Change Data Capture, Platform Events, Pub/Sub API, and selected Outbound Messaging configurations provide event or callback options, but coverage is object- and org-dependent. Salesforce Files use ContentVersion and related objects. Martini can authenticate through OAuth-configured workflows, map and transform payloads, orchestrate synchronous or asynchronous processing, expose APIs, and implement reconciliation and retry controls.

Integration pointSupported by Salesforce Nonprofit Cloud?Common use casesHow Martini supports it
REST APIsYesUse Salesforce REST API for SOQL queries, sObject creation and updates, metadata discovery, Composite API resources, limits, and general Nonprofit Cloud operations.Martini can consume REST endpoints from workflows, authenticate with configured credentials, transform JSON, and expose APIs that orchestrate Salesforce operations.
GraphQL APIsLimitedSalesforce GraphQL supports selected schemas and data-access scenarios, but coverage is not equivalent to all REST or SOAP resources.Martini can consume supported GraphQL operations and map responses, while workflows should fall back to REST when the required object or operation is unavailable.
SOAP APIsYesEnterprise and Partner WSDL APIs support strongly typed integrations and existing SOAP-standard implementations.Martini can consume Salesforce SOAP services, manage configured authentication, transform XML responses, and handle SOAP faults.
Bulk and asynchronous APIsYesBulk API 2.0 supports high-volume ingest, query, migrations, backfills, and periodic synchronization of objects such as Gift Transactions.Martini can create jobs, submit or request data, poll status, retrieve results, process partial failures, and reconcile failed rows.
Webhooks and outbound callbacksLimitedSalesforce provides selected Outbound Messaging callbacks and event mechanisms, but no universal webhook for every Nonprofit Cloud object.Martini can receive webhook-style or SOAP callback traffic where configured and route notifications into workflows with validation and deduplication.
Events and change notificationsLimitedChange Data Capture, Platform Events, Pub/Sub API, and PushTopic streaming support selected near-real-time scenarios subject to object and org configuration.Martini can consume supported event or callback endpoints, invoke downstream APIs, and combine event processing with replay, retry, and reconciliation workflows.
File and attachment APIsYesSalesforce Files use ContentVersion, ContentDocument, and ContentDocumentLink; legacy Attachment may exist in some organizations.Martini can retrieve or create file metadata and binary content, map record links, and transfer files to supported downstream endpoints.
AuthenticationYesConnected apps support OAuth 2.0 authorization code, JWT bearer, client credentials in supported scenarios, refresh tokens, and bearer access tokens.Martini can store credentials securely, call Salesforce token endpoints, and use the resulting authorization context in API workflows.
Analytics and query accessYesSOQL, aggregate queries, Salesforce Analytics REST API, and describe APIs support governed extraction and reporting-related integrations.Martini can retrieve API-based analytics or query results, transform them, and deliver them to applications, files, or databases without direct database access.

How Salesforce Nonprofit Cloud exposes data and business events

Salesforce REST APIs

Salesforce REST API is the primary general-purpose interface for SOQL queries, sObjects, Composite API resources, metadata discovery, and ordinary Nonprofit Cloud record operations. It returns JSON and supports both reads and writes subject to the authenticated principal’s permissions.

Martini implementation pattern

Martini implementation pattern: a workflow obtains or refreshes an OAuth access token, calls the required REST resource, validates the response, maps Salesforce fields into a canonical model, and invokes downstream APIs or writes to a target store.

Implementation sequence

Acquire an OAuth access token through the configured Salesforce connected app
Call the required REST resource or SOQL query
Follow nextRecordsUrl or process the query cursor
Validate the response and inspect HTTP and Salesforce errors
Map Salesforce objects into the target model
Write the result and persist the synchronization watermark

Salesforce Bulk APIs

Bulk API 2.0 provides asynchronous ingest and query for large data volumes, including migrations, backfills, and periodic constituent or fundraising synchronization. Jobs must be monitored through completion and failed-result retrieval.

Martini implementation pattern

Martini implementation pattern: a workflow creates a Bulk job, submits or requests data, polls the job lifecycle, retrieves successful and failed results, and records reconciliation state for retry or review.

Implementation sequence

Create the Bulk API job with the required object and operation
Submit the data or query request
Poll the asynchronous job until it reaches a terminal state
Retrieve successful and failed result sets
Map row-level outcomes and identify retryable failures
Persist the job and reconciliation status

Salesforce GraphQL API

Salesforce GraphQL supports selected schemas and use cases, but its coverage varies by API version and does not replace every REST or SOAP resource. It is best evaluated for queries that benefit from selecting related data in one request.

Martini implementation pattern

Martini implementation pattern: Martini sends a configured GraphQL operation, validates the response and any GraphQL errors, then transforms the selected fields into a canonical structure. REST remains the fallback when coverage is insufficient.

Implementation sequence

Authenticate against the Salesforce GraphQL endpoint
Submit the supported GraphQL operation
Inspect both transport and GraphQL-level errors
Normalize selected fields and relationships
Apply business rules and write the target result
Record the query watermark and processing outcome

Salesforce Events and Change Notifications

Change Data Capture, Platform Events, Pub/Sub API, PushTopic streaming, and selected Outbound Messaging configurations support event-oriented integrations. Availability, retention, replay, ordering, and object coverage depend on the Salesforce organization and event mechanism.

Martini implementation pattern

Martini implementation pattern: Martini receives or consumes a supported Salesforce notification, validates its origin and event type, deduplicates using an event or record key, retrieves the current resource when necessary, and sends the work through a retryable workflow. A scheduled reconciliation process remains the source-of-truth check.

Implementation sequence

Receive or consume a supported Salesforce event notification
Validate the event type, object, payload, and authorization context
Check the event or record key for duplicate processing
Retrieve the current Salesforce resource when the event is incomplete
Map and route the change to downstream systems
Persist replay or checkpoint state and run reconciliation for missed events

Salesforce SOAP APIs

Salesforce Enterprise and Partner WSDL APIs remain available for strongly typed integrations and existing SOAP-based environments. They are generally a secondary choice for new work when REST, Composite, Bulk, or event APIs meet the requirement.

Martini implementation pattern

Martini implementation pattern: Martini calls the required WSDL-based operation, handles XML serialization and SOAP faults, maps the result into the canonical model, and applies explicit retry rules for transient failures.

Implementation sequence

Configure the Salesforce SOAP endpoint and authentication
Submit the WSDL-based request
Parse the XML response or SOAP fault
Apply validation and business rules
Map the result to the target system
Log the operation and retry eligible failures

Common Salesforce Nonprofit Cloud integration patterns

Pattern 1: Synchronize constituents to a nonprofit platform

When to use this pattern

Use this pattern when Accounts, Person Accounts, and Contacts must be synchronized with a fundraising, marketing, identity, or data platform. Incremental synchronization should use a selective SystemModstamp, LastModifiedDate, or agreed custom watermark and should account for deactivation, deletion, and duplicate matching.

Integration direction
Salesforce Nonprofit Cloud
Martini
Blackbaud Raiser’s Edge NXT
Example Mapping
Salesforce Nonprofit Cloud FieldCanonical FieldTarget Field
Account.Idconstituent.organizationIdOrganization.ExternalId
Contact.Emailconstituent.emailConstituent.EmailAddress
Contact.LastModifiedDateconstituent.modifiedAtConstituent.UpdatedAt
Contact.MailingAddressconstituent.addressConstituent.Address
Martini implementation pattern

A scheduled Martini workflow queries changed Salesforce objects, follows pagination, resolves relationships, normalizes consent and address fields, and applies duplicate and deactivation rules. It upserts the target using a deterministic external key, stores the successful watermark, and sends rejected rows to a retry or review path.

Martini capabilities used
  • workflows
  • API consumption
  • scheduling
  • SOQL response handling
  • data mapping
  • business rules
  • error handling

Pattern 2: Reconcile gifts with finance

When to use this pattern

Use this pattern to transfer Gift Commitments, Gift Transactions, Funds, and related constituent data to a finance or accounting application. The workflow should distinguish pledges, received transactions, refunds, reversals, pending payments, currencies, and posting status.

Integration direction
Salesforce Nonprofit Cloud
Martini
NetSuite
Example Mapping
Salesforce Nonprofit Cloud FieldCanonical FieldTarget Field
GiftTransaction.Iddonation.transactionIdTransaction.ExternalId
GiftTransaction.Amountdonation.amountTransaction.Amount
GiftCommitment.Statusdonation.commitmentStatusCustomerDeposit.Status
Fund.Namedonation.fundCodeTransaction.Department
Martini implementation pattern

Martini retrieves or receives eligible Salesforce fundraising data, enriches it with Account or Contact and Fund relationships, validates financial status and currency, and submits an idempotent finance request. It inspects individual Composite or Bulk results, records external references, and retries only safe failures.

Martini capabilities used
  • workflows
  • REST API consumption
  • Bulk API orchestration
  • data mapping
  • validation
  • business rules
  • retry and reconciliation

Pattern 3: Process selected Salesforce events

When to use this pattern

Use this pattern when supported Change Data Capture, Platform Events, Pub/Sub API, or Outbound Messaging coverage is sufficient for a near-real-time downstream action. It is appropriate for selected constituent, program, service, or transaction changes, not as a universal webhook assumption.

Integration direction
Salesforce Nonprofit Cloud
Martini
ServiceNow
Example Mapping
Salesforce Nonprofit Cloud FieldCanonical FieldTarget Field
ChangeEventHeader.recordIdssource.recordIdsRequest.ExternalReferences
ChangeEventHeader.changeTypesource.changeTypeRequest.Action
Case.Priorityservice.priorityIncident.Priority
Case.Subjectservice.summaryIncident.ShortDescription
Martini implementation pattern

Martini validates and consumes the supported event or callback, deduplicates by event identity, retrieves the current Case or related object when needed, applies routing rules, and calls the downstream API. Checkpoints, replay handling, dead-letter processing, and periodic reconciliation protect against missed or repeated delivery.

Martini capabilities used
  • event-driven workflows
  • webhook or API consumption
  • data mapping
  • conditional routing
  • idempotency rules
  • error handling

Pattern 4: Transfer Salesforce Files with record context

When to use this pattern

Use this pattern when documents associated with constituents, grants, commitments, or service records must be delivered to a document or signature platform. Salesforce Files should be handled as metadata, binary content, versions, and record links rather than as a simple URL.

Integration direction
Salesforce Nonprofit Cloud
Martini
DocuSign
Example Mapping
Salesforce Nonprofit Cloud FieldCanonical FieldTarget Field
ContentVersion.VersionDatadocument.binaryContentEnvelope.DocumentBytes
ContentVersion.Titledocument.fileNameEnvelope.DocumentName
ContentDocumentLink.LinkedEntityIddocument.relatedRecordIdEnvelope.RelatedSalesforceId
ContentVersion.CreatedDatedocument.createdAtEnvelope.Metadata.CreatedAt
Martini implementation pattern

A Martini workflow retrieves ContentVersion metadata and binary content, resolves ContentDocumentLink relationships, validates file size and document type, and creates the downstream envelope or document request. It stores the external envelope identifier and processes returned status changes without duplicating files.

Martini capabilities used
  • workflows
  • REST API consumption
  • file handling
  • binary transformation
  • data mapping
  • validation
  • idempotent updates

Applications commonly integrated with Salesforce Nonprofit Cloud

Salesforce Nonprofit Cloud can exchange constituent, fundraising, program, financial, document, and analytics data with adjacent enterprise applications. The exact direction and object scope depend on the organization’s system-of-record decisions, enabled Salesforce capabilities, and the APIs exposed by each application.

Application Scenario Direction Martini Pattern
Blackbaud Raiser’s Edge NXT Synchronize constituents, donors, gifts, and fundraising information across nonprofit CRM and fundraising operations. Salesforce Nonprofit Cloud → Martini → Blackbaud Raiser’s Edge NXT Use scheduled or event-assisted Salesforce queries, map Accounts, Contacts, Gift Commitments, and Gift Transactions to the target fundraising model, and apply external-key matching, reconciliation, and retry handling.
Mailchimp Publish constituent or donor segments to email marketing and return selected campaign engagement data. Salesforce Nonprofit Cloud → Martini → Mailchimp Query eligible Contacts or Person Accounts, transform consent and segmentation fields, call Mailchimp APIs, and process returned engagement data through an idempotent update workflow.
Stripe Coordinate online donation processing, payment status, refunds, and transaction reconciliation. Stripe → Martini → Salesforce Nonprofit Cloud Receive supported Stripe payment events or retrieve payment status, match a deterministic external transaction reference, and upsert Salesforce Gift Transactions while routing failures for reconciliation.
NetSuite Transfer donation, commitment, fund, and accounting information for financial reconciliation and general-ledger processing. Salesforce Nonprofit Cloud → Martini → NetSuite Retrieve Gift Commitments, Gift Transactions, Funds, and accounting dimensions, apply posting and currency rules, and submit controlled NetSuite batches with status feedback.
Workday Synchronize workforce, organizational, finance, or grant-related information where Workday supports nonprofit operations. Workday → Martini → Salesforce Nonprofit Cloud Consume Workday API responses, normalize organizational or finance identifiers, validate Salesforce permissions and relationships, and upsert only approved fields.
ServiceNow Coordinate internal service requests, facilities, technology support, or operational case processes with Salesforce service information. Salesforce Nonprofit Cloud → Martini → ServiceNow Route selected Cases or service-related data through a Martini workflow, map priority and ownership rules, call ServiceNow APIs, and return the external ticket reference.
DocuSign Generate and track signatures for grants, agreements, waivers, gift commitments, and related documents. Salesforce Nonprofit Cloud → Martini → DocuSign Transform Salesforce agreement or commitment data into an envelope request, persist the envelope identifier, and process signature status callbacks into Salesforce.
Tableau Provide governed analytics over fundraising, constituent, program, and service-delivery data. Salesforce Nonprofit Cloud → Martini → Tableau Extract governed Salesforce datasets through REST, Bulk, or Analytics APIs, normalize fields and watermarks, and deliver curated data to the analytics environment according to its ingestion contract.

How to build a Salesforce Nonprofit Cloud integration in Martini

Objective

Establish Salesforce access using a connected app, an appropriately scoped integration principal, and an OAuth flow suitable for the deployment model.

Instructions in Martini

  • Configure the Salesforce connected app and required OAuth scopes
  • Use JWT bearer, authorization code, or another confirmed OAuth pattern as appropriate
  • Store client secrets, certificates, and environment values through Martini secrets and secure configuration
  • Confirm API Enabled, object, field, and record-sharing permissions

Objective

Select a real-time, scheduled, or API-led trigger based on object coverage, volume, and the business latency requirement.

Instructions in Martini

  • Use supported Salesforce event or callback mechanisms only for objects and events confirmed in the target org
  • Use a scheduler for incremental REST or SOQL synchronization where event coverage is incomplete
  • Use an API trigger when Salesforce or another system needs to invoke controlled Martini logic
  • Define a reconciliation schedule for event-driven flows

Objective

Retrieve Salesforce resources using the API that best matches the operation, volume, and response requirements.

Instructions in Martini

  • Use REST and SOQL for ordinary record operations and queries
  • Use GraphQL only for supported schemas and operations
  • Use Bulk API 2.0 for high-volume ingest, query, migration, or backfill jobs
  • Follow pagination, nextRecordsUrl, cursors, or asynchronous job states

Objective

Build a maintainable Martini workflow that coordinates Salesforce calls, enrichment, target operations, checkpoints, and exception paths.

Instructions in Martini

  • Separate authentication, retrieval, transformation, and target-write concerns
  • Reuse Salesforce IDs, metadata, and retrieved relationships instead of repeating queries
  • Control concurrency to respect Salesforce limits
  • Persist watermarks, job identifiers, event checkpoints, and external references

Objective

Convert Salesforce objects and relationships into a canonical or target-specific model while preserving identifiers and relevant provenance.

Instructions in Martini

  • Map Accounts, Contacts, Programs, Program Engagements, Gift Commitments, and Gift Transactions explicitly
  • Handle Person Accounts, custom fields, record types, currencies, dates, and null values
  • Transform JSON, XML, file metadata, or binary content as required by the target
  • Use validation and mapping rules to identify incomplete or unauthorized data

Objective

Apply nonprofit-specific rules before writing data, including eligibility, consent, financial status, deduplication, and routing decisions.

Instructions in Martini

  • Use external identifiers or deterministic keys for idempotent upserts
  • Distinguish commitments, transactions, refunds, reversals, and posting statuses
  • Check record ownership, field access, and target-system acceptance rules
  • Route invalid or ambiguous records to a review or exception process

Common Salesforce Nonprofit Cloud data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
AccountRepresents organizations, households, institutions, and other account-level constituents; Person Accounts may represent individuals.Blackbaud Raiser’s Edge NXT, Mailchimp, NetSuite, data platformsUse metadata discovery and organization-specific permissions, apply deterministic matching or External IDs, and map account relationships explicitly.
ContactRepresents individual constituents and people associated with Accounts, Programs, Cases, and fundraising activity.Mailchimp, Blackbaud Raiser’s Edge NXT, Workday, analytics platformsQuery incrementally with selective SOQL, apply consent and field-level-security rules, and upsert using a stable external key.
ProgramRepresents services, initiatives, or programs delivered by a nonprofit organization.ServiceNow, data platforms, reporting systemsRetrieve enabled fields and relationships from target-org metadata, then map program status, ownership, and identifiers into the downstream model.
Program EngagementRepresents a constituent’s participation or relationship with a Program.Service coordination platforms, data warehouses, reporting systemsResolve Account or Contact and Program relationships, validate participation rules, and preserve Salesforce identifiers for idempotent updates.
Gift CommitmentRepresents a pledge, recurring commitment, or other fundraising commitment.NetSuite, Blackbaud Raiser’s Edge NXT, DocuSign, payment platformsDistinguish commitment status, schedule, currency, and donor references before applying financial and document workflow rules.
Gift TransactionRepresents a received or processed donation transaction associated with a donor or commitment.Stripe, NetSuite, Blackbaud Raiser’s Edge NXT, analytics platformsUse external transaction identifiers, process payment and posting status, and reconcile partial, duplicate, reversed, or failed operations.

Authentication and security considerations

OAuth and connected apps

Salesforce integrations generally use OAuth 2.0 through a connected app. Authorization code is suitable for user-authorized access, while JWT bearer authentication is commonly used for server-to-server deployments. Client credentials and refresh tokens are available only where the Salesforce organization and connected-app policies support them.

Least-privilege access

Access is evaluated using the authenticated user or integration principal. Configure only the required OAuth scopes, API permissions, object permissions, field-level security, record visibility, profiles, permission sets, IP restrictions, and session policies.

Martini security

Martini can store OAuth credentials, certificates, and environment-specific values in secure configuration and secrets. Workflows should avoid logging access tokens or sensitive constituent, case, donation, and payment data.

Operational considerations for Salesforce Nonprofit Cloud integrations

Limits and pagination

Design around Salesforce org, user, concurrency, and API limits. Reuse identifiers and metadata, control concurrency, handle 429 responses and limit errors, and follow nextRecordsUrl or Bulk job result lifecycles.

Idempotency and partial results

Use External ID fields or deterministic keys for upserts. Composite and Bulk operations can partially succeed, so inspect row-level results, persist successful identifiers, and retry only safe failures.

Events and reconciliation

Event coverage is selective and delivery behavior varies by mechanism. Use replay or checkpoint handling, duplicate protection, and a scheduled reconciliation workflow to identify missed, delayed, or rejected changes.

Schema and testing

Confirm object metadata, fields, record types, managed-package dependencies, validation rules, flows, and Apex behavior in each environment. Test files, permissions, pagination, rate limits, schema changes, and partial failures before production deployment.

Why use Martini instead of scripts or point-to-point integrations?

Orchestration beyond a script

Martini provides a governed workflow layer for authentication, Salesforce API calls, transformations, business rules, target writes, checkpoints, and exception paths. This avoids embedding the entire integration lifecycle in a single custom script.

Reusable integration assets

Teams can expose controlled APIs, reuse workflow logic, and generate reusable integration assets from external API definitions while keeping Salesforce-specific configuration separate from deployment environments.

Operational reliability

Martini supports scheduled, API-led, asynchronous, and event-assisted designs with mapping, validation, error handling, logging, and reconciliation patterns. These capabilities make it easier to maintain integrations as Nonprofit Cloud objects, permissions, and downstream systems evolve.

Frequently asked questions

How can Salesforce Nonprofit Cloud be integrated with enterprise systems?

Salesforce Nonprofit Cloud can be integrated through Salesforce Platform REST, SOAP, Bulk, Composite, GraphQL, analytics, and event APIs. Change Data Capture, Platform Events, Pub/Sub API, and selected Outbound Messaging configurations support event or callback scenarios, while scheduled API synchronization supports objects without suitable event coverage.

Can Martini integrate with Salesforce Nonprofit Cloud?

Yes. Martini can consume Salesforce REST, SOAP, Bulk, GraphQL, and supported event or callback endpoints, then orchestrate workflows, transform data, expose APIs, and write to downstream applications. A native Martini Salesforce Nonprofit Cloud connector was not verified in the supplied documentation.

Do I need a connector to integrate Salesforce Nonprofit Cloud with Martini?

No. A dedicated Salesforce Nonprofit Cloud connector is not required. Martini can use Salesforce’s confirmed native APIs, OAuth authentication, event streams, selected callbacks, and file endpoints through workflows and APIs.

Is there any extra Lonti cost to integrate Salesforce Nonprofit Cloud with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Salesforce Nonprofit Cloud. Integrations are subject to the provisioned capacity of the Martini environment. Separate costs may apply from Salesforce, infrastructure providers, or other third-party systems based on subscription, usage, and deployment model.

Which Salesforce APIs should a new Martini integration use?

Use REST for general record and SOQL operations, Composite for grouped synchronous operations, Bulk API 2.0 for high-volume asynchronous processing, and Pub/Sub API or Change Data Capture for supported event scenarios. GraphQL is a selective option, while SOAP is generally reserved for existing WSDL-based requirements.

Are Salesforce events or webhooks available for Nonprofit Cloud?

Salesforce does not provide a universal webhook for every Nonprofit Cloud object. Supported options may include Change Data Capture, Platform Events, Pub/Sub API, PushTopic streaming, and selected SOAP Outbound Messaging, with availability and retention dependent on the object, event type, edition, and organization configuration.

How does Martini synchronize and transform Salesforce data?

Martini can run scheduled or event-assisted workflows, query changed data using fields such as SystemModstamp or LastModifiedDate, follow pagination or Bulk job lifecycles, and map Salesforce objects into canonical and target models. External IDs, watermarks, validation, and relationship resolution support reliable synchronization.

How does Martini handle Salesforce errors, retries, duplicates, and API limits?

Martini workflows can inspect HTTP, Salesforce, SOAP, Composite, and Bulk result errors, apply controlled backoff and retry policies, and route non-retryable failures for review. Idempotent keys, stored Salesforce IDs, event checkpoints, partial-result handling, and reconciliation workflows help prevent duplicates and recover from missed or incomplete processing.