Build CRM roles around tasks, not job titles
Test nonprofit CRM permissions with a task-and-denial proof that confirms staff can finish assigned work while high-impact actions stay blocked.
CharityStack
·4 min read
Test nonprofit CRM user permissions with a non-admin account before you assign the role. Confirm that the person can finish the work they own, confirm that high-impact actions outside that job are blocked, and save the result with an owner and review date. A role name alone does not prove that access is safe or usable.
This is a task-and-denial proof. Each row pairs one action that must succeed with one action that must fail.
Start with work, not job titles
Write down the smallest complete tasks each person owns. “Fundraiser,” “finance,” and “volunteer” are labels. “Open an assigned donor, add a contact note, and schedule a follow-up” is testable work.
For each role, make a short task card:
- records the person must see;
- fields or transactions the person must create or change;
- reports or files the person must download;
- money actions such as refunds the person must never take;
- bulk changes, deletion, integrations, user management, and configuration the person must never reach.
The distinctions matter because products group permissions differently. Microsoft's nonprofit fundraising configuration separates roles that can work with prospects, gifts, finance, imports, bulk updates, exports, refunds, and configuration. Funraise's current permissions group administration, supporter and transaction records, public fundraising assets, and analytics into different roles. Neither model supplies a universal answer for your organization. Both show why the work must be named before the role is chosen.
Pair every allowed task with a denial check
An access test is incomplete when it proves only that a person can do their job. It also needs to prove that the same account cannot perform one nearby action with a larger consequence.
Use a non-admin test account with the proposed role. For a gift processor, the positive test might be opening an assigned gift, correcting an allowed field, and creating a receipt. The paired denial test might be exporting the donor database or changing another user's access. For a fundraiser, the positive test might be adding a contact note; the denial test might be refunding a payment or bulk deleting records.
Choose denial checks from five boundaries:
- Scope: Can the account see only the records its work requires?
- Change: Can it edit allowed fields without changing protected money or identity facts?
- Movement: Can it export, import, or bulk-update data?
- Irreversibility: Can it delete records, issue refunds, or deactivate fundraising assets?
- Control: Can it change integrations, payment settings, roles, or other users?
Bloomerang's current permission guide documents how transaction access can affect reports, data tools, bulk changes, communications, forms, and mobile behavior. That kind of cross-screen effect is a reason to test the real account. Do not assume that hiding one navigation item blocks every route to the same action.
Save evidence another administrator can repeat
Keep one access-review record per role, not a screenshot folder with no conclusion. Record:
- role and test account;
- task attempted and sample record used;
- expected result and observed result;
- pass, fail, or approved exception;
- system owner and test date;
- exception expiry and next review date.
Use safe sample records and the platform's documented test path. Do not change a real gift, issue a real refund, or export live donor data merely to prove the button works. When a task requires production data, confirm the minimum view with an approved account and keep sensitive values out of the review note.
Current nonprofit data-protection guidance recommends need-to-know access, role-based permissions, and regular access review. The task record turns that principle into something a lean team can repeat without pretending that one checklist is a security audit.
Fix the role before granting a broad exception
When the positive test fails, identify the exact missing action. Do not jump from “cannot finish this report” to administrator access. A narrower report permission, record scope, or temporary export role may solve the problem.
If the platform cannot separate the needed task from a high-impact privilege, record the coupling and choose an owner who can supervise that action. Give the exception an expiry date. A temporary workaround that never expires becomes the permission model.
Retest after a role change, integration change, product update, or staff departure. Also retest the workflows connected to sensitive capabilities. The fundraising-export drill checks whether downloaded records remain usable; this permission test decides who should be able to download them. The gift-intake handoff defines the work around each gift; the permission test confirms that each participant can perform only their part.
The final question is simple: can this person complete the assigned task, and does the same account stop at the next boundary? Grant the role only when both answers are visible.