SfSkills Domains Docs GitHub

Home / admin / grant-management-setup

grant-management-setup

Use when configuring grant tracking in a Salesforce nonprofit org: NPSP Outbound Funds Module (open-source outfunds managed package) or Nonprofit Cloud for Grantmaking (separate license). Trigger keywords: grant management, funding awards, disbursement tranches, grantmaking setup, OFM, FundingAward, FundingDisbursement, FundingAwardRequirement. NOT for recording donor gifts and receipts, use admin/gift-entry-and-processing. NOT for reporting program outcomes to a funder, use admin/program-outcome-tracking-design.

Open the skill folder on GitHub


Grant Management Setup

This skill activates when a practitioner needs to configure grant tracking in a Salesforce nonprofit org. It covers both available platform paths — NPSP Outbound Funds Module (OFM) and Nonprofit Cloud for Grantmaking — and provides the decision logic, object model orientation, and configuration steps for each.


Before Starting

Gather this context before working on anything in this domain:

Questions to Ask Before Configuring

Each question traces to a gotcha in references/gotchas.md.

QuestionWhy it mattersWhat a good answer addsWhat proper configuration adds over just doing it
"Which grants product is installed or licensed today: Outbound Funds, Grants Management, or Grantmaking?"The products share no objects, and Grantmaking cannot be turned off once on (Gotcha 1)A named platform path, confirmed from installed packages and SetupNo automation is built against objects the org does not have
"Who needs to create awards, who reviews reports, and do grantees use a portal?"Access needs the licence, the feature, and Manage Funding Awards; portals use a separate permission set (Gotcha 2)A permission set group per persona, including Experience Cloud usersUsers see the objects on day one without hand-built permissions
"Which requirement status means what: the grantee's state, the review decision, or both?"Requirements carry Status and ApprovalStatus, and Rejected is standard (Gotcha 3)A field-meaning table and the standard values in useReports and automation read the same field for the same question
"Which payments wait for which reports, and who releases them?"The requirement-to-disbursement link exists, but enforcement is your automation (Gotcha 5)Requirement-to-tranche mapping and a release ruleA tranche cannot be marked Paid before its report is approved
"Do applications come through Individual Application or the Spring '26 Application Form model?"Individual Application gets no future enhancements and needs an Application RecordType Config (Gotcha 7)A chosen application model and its record type setupNew programmes start on the model that will keep improving
"How are amendments and multi-year terms recorded?"One agreement is one award with master-detail tranches; changes go on amendments (Gotcha 8)An amendment process and the award Status ruleCommitted totals report once, not once per tranche

What proper configuration adds over "just creating awards": one award per agreement with its tranches and requirements as children, statuses whose meaning is written down, and payment release tied to the reports that should gate it.


Core Concepts

Platform Path 1: NPSP Outbound Funds Module (OFM)

The Outbound Funds Module is a managed package, namespace outfunds, published as "a community developed and maintained Open Source Commons project." Its objects are Funding_Program__c, Funding_Request__c, Funding_Request_Role__c, Disbursement__c, Requirement__c, and Review__c. A grant is a Funding Request (with Requested_Amount__c, Awarded_Amount__c, Status__c, term dates, and rollups such as Total_Disbursed__c); disbursements and requirements are its children, and a requirement can look up the disbursement it relates to. An NPSP extension package (outfundsnpspext) links disbursements to NPSP General Accounting Units through GAU_Expenditure__c.

Key constraints of OFM:

Platform Path 2: Nonprofit Cloud for Grantmaking (Grantmaking)

Grantmaking is a platform feature available in Nonprofit Cloud for Grantmaking and Public Sector Solutions. Its standard objects include FundingOpportunity, FundingAward, FundingAwardAmendment, FundingDisbursement, FundingAwardRequirement, FundingAwardRqmtSection, Budget and related budget objects, and the application objects. The three objects most grant setups touch:

ObjectKey fieldsNotes
FundingAwardAmount (total award), AwardeeId (business or person account), ContactId, FundingOpportunityId, IndividualApplicationId or ApplicationFormId, StartDate, EndDate, Status (Active, Cancelled, Completed)One record per grant agreement
FundingDisbursementFundingAwardId (master-detail), Amount, ScheduledDate, DisbursementDate, IsApproved, PaymentMethodType, Status (Scheduled, Pending Approval, Approved, Processing, Paid, Returned, Cancelled)A payment "made or scheduled to be made"; no Draft value
FundingAwardRequirementFundingAwardId (master-detail), FundingDisbursementId, Type (Combined Report, Contract, Financial Report, Narrative Report), DueDate, AssignedContactId, AssignedUserId, Status (Open, In Progress, Submitted, Delayed, Approved, Rejected), ApprovalStatus (New, In Review, Approved, Rejected), IsSubmitted, SubmittedDateA deliverable or milestone for an award or a disbursement

These are standard objects without package prefixes, available only with the Grantmaking licence, Grantmaking turned on, and the Manage Funding Awards permission. UNVERIFIED (2026-10-03): the earlier statement that Grantmaking is "part of the Agentforce Nonprofit product line as of 2024" was not found in a fetched source.

Requirement Status Model

The earlier version of this skill described a fixed Open, Submitted, Approved lifecycle with no Rejected state; the NPC Guide documents six Status values and a separate ApprovalStatus. A workable convention: Status tracks where the deliverable is (Open, In Progress, Submitted, Delayed), and the reviewer's decision is recorded both in ApprovalStatus (In Review, Approved, Rejected) and by moving Status to Approved or Rejected. A rejected deliverable goes back to Open or In Progress for resubmission, with feedback in Description. Document whichever convention you choose.

Architectural Incompatibility Between Platforms

OFM and Grantmaking share no common objects, no shared APIs, and no native migration path. An org moving from OFM to Grantmaking must:

  1. Transform outfunds__Funding_Request__c → FundingAward
  2. Transform outfunds__Disbursement__c → FundingDisbursement
  3. Transform outfunds__Requirement__c → FundingAwardRequirement, mapping Status__c and Type__c values to the standard picklists
  4. Re-map all Flows, reports, and automation that reference OFM API names

This is a data migration project, not a configuration toggle.


Common Patterns

Pattern: Multi-Tranche Disbursement Schedule in Grantmaking

When to use: The award pays in several scheduled tranches and the org uses Grantmaking.

How it works:

  1. Create one FundingAward with Amount = the total award, AwardeeId = the grantee account, and Status = Active.
  2. Create one FundingDisbursement per tranche with Amount, a future ScheduledDate, and Status = Scheduled.
  3. Move each tranche through Pending Approval, Approved, Processing, and Paid, setting DisbursementDate when paid.
  4. Set FundingAward.Status to Completed when every tranche is Paid or Cancelled (a Flow can do this).

Why not the alternative: Do not model tranches as separate FundingAward records: this breaks parent-child reporting and duplicates requirements.

Pattern: Deliverable Tracking and Payment Gating With FundingAwardRequirement

When to use: Grantees must submit reports before later tranches are released.

How it works:

  1. At award setup, create one FundingAwardRequirement per deliverable with Type, DueDate, AssignedContactId (grantee) or AssignedUserId, Status = Open, and FundingDisbursementId = the tranche it gates.
  2. When the grantee submits, set IsSubmitted, SubmittedDate, and Status = Submitted; notify the grants manager.
  3. The reviewer sets ApprovalStatus and Status to Approved or Rejected.
  4. Enforce the gate: validation rules for same-record rules, and a record-triggered flow on FundingDisbursement that blocks Status = Paid while any requirement pointing at it is not Approved (references/examples.md, Example 3).

Why not the alternative: Tasks or Chatter posts produce no structured data, cannot be reported in aggregate, and cannot gate automation.


Decision Guidance

SituationRecommended ApproachReason
Org is on NPSP, no Grantmaking licenceOutbound Funds Module (plus outfundsnpspext for GAU accounting)Purpose-built package with requests, disbursements, and requirements
Org has the Grantmaking licenceGrantmaking (FundingAward, FundingDisbursement, FundingAwardRequirement)Standard objects, applications, budgets, amendments, Experience Cloud components
Org is on Nonprofit Cloud but Grantmaking is NOT licensedDo not use Grantmaking objects; evaluate OFM or buy the licenceThe objects are not accessible without the licence
Org has the Grants Management managed packageDo not turn on Grantmaking in that org without a planSalesforce recommends against running both; Grantmaking cannot be turned off
Org needs to migrate from OFM to GrantmakingFull data transformation projectNo native migration path
New nonprofit org evaluating Salesforce for grantmakingGrantmaking on the Spring '26 Application Form modelNo migration cost; the model receiving enhancements

  1. Identify the platform path: Confirm installed namespaces (npsp, outfunds, Grants Management) and the Grantmaking licence; do not proceed until the path is unambiguous.
  2. Assess grant requirements: Document tranches, deliverables and the tranches they gate, grantee portal access, application model, and reporting needs. Match them to the decision table above.
  3. Turn on and grant access: For Grantmaking: Setup > Quick Find "Grantmaking" > Grantmaking Settings > turn on (irreversible); assign Grantmaking Manager (and Grantmaking for Experience Cloud for portal users) through permission set groups; configure the application model and, for Individual Application, the Application RecordType Config.
  4. Configure the data model: Page layouts, field sets, and record types for awards, disbursements, and requirements; write down the requirement status convention.
  5. Build lifecycle automation: Validation rules for same-record rules and a record-triggered flow for the disbursement gate (references/examples.md, Example 3); a flow to complete awards.
  6. Validate end to end and document: Create a test award with tranches and requirements, walk every status, confirm reports, then record the platform path, picklist conventions, and automation for future support and migrations.

Review Checklist

Run through these before marking work in this area complete:


Salesforce-Specific Gotchas

The full list with sources is in references/gotchas.md. The ones that most often break a grants setup:

GotchaConsequence
Three different grants products; Grantmaking cannot be turned off (Gotcha 1)Enabling it in the wrong org is permanent and confuses users
Two requirement status fields, with Rejected standard (Gotcha 3)The earlier "Open, Submitted, Approved only" model was wrong; reports disagree if fields are mixed
Disbursement statuses have no Draft (Gotcha 4)Automation built on Draft never fires; use Scheduled

Output Artifacts

ArtifactDescription
Platform path decision recordWritten confirmation of OFM vs. NC Grantmaking choice, with licensing and requirement rationale
FundingAward / OFM Funding Request configurationPage layouts, field sets, record types, and picklist values for the chosen platform
FundingDisbursement tranche setupDisbursement records per award with scheduled dates and status automation
FundingAwardRequirement workflowRequirement records, status lifecycle automation, and disbursement gating logic
Grant management reports and dashboardsStandard reports on award pipeline, disbursement schedule, and requirement completion

Package files