Skip to content

Donor Opportunity (akoya_donoropportunities)

A Donor Opportunity is a tracked cultivation engagement or planned-giving prospect — the pipeline record for a potential gift at various stages (identification through stewardship). It captures projected and actual commitments, vehicle (bequest, insurance, etc.), and timeline markers (target close date, maturity, follow-up).

At a glance

Display name Donor Opportunity
Logical name akoya_donoropportunities
Primary ID attribute akoya_donoropportunitiesid
Entity set name (Web API) akoya_donoropportunitieses
Ownership UserOwned
Change tracking Enabled
Audit Enabled

Entity set name

The entity set name is akoya_donoropportunitieses (the logical name ends in "ies" already, so Dataverse pluralizes to "ieses"). Verify against the live Web API before hardcoding.

Web API

GET  {org}/api/data/v9.2/akoya_donoropportunitieses
GET  {org}/api/data/v9.2/akoya_donoropportunitieses({oppid})
POST {org}/api/data/v9.2/akoya_donoropportunitieses
PATCH {org}/api/data/v9.2/akoya_donoropportunitieses({oppid})

Attributes

Core

Display name Logical name Type Required Description
Stage akoya_stage Choice None Cultivation pipeline stage. See values.
Opportunity Type akoya_opportunitytype Choice None Promise vs. opportunity classification.
Promise Type akoya_promisetype Choice None Global option set.
Revocable akoya_revocable Choice None Global option set.
Vehicle akoya_vehicle Multi-select choice None Planned-giving vehicles (bequest, life insurance, etc.).
Inclination akoya_inclinat Choice None Propensity-to-give rating.

Amounts

All money columns have paired _Base columns.

Display name Logical name Description
Estimated Commitment akoya_estimatedcommitment Projected gift amount.
Actual Commitment akoya_actualcommitment Amount actually committed.
Promise Amount akoya_promiseamount Promised amount on documentation.
Remainder Value akoya_remaindervalue Remainder interest value.

Dates

Display name Logical name Type
Target Close Date akoya_targetclosedate DateTime
Actual Close Date akoya_actualclosedate DateTime
Maturity Date akoya_maturitydate DateTime
Follow Up Date akoya_followupdate DateTime

Lookups

Logical name Target Purpose
akoya_donor akoya_donor Required. Donor being cultivated.
akoya_fund akoya_fund Intended destination fund.
akoya_gift akoya_gift Resulting gift, once the opportunity closes.
akoya_committee akoya_committee Committee overseeing the opportunity.
akoya_event akoya_event Source event.

Choice values

akoya_stage values

Label Value
Identification 100000000
Qualification 100000001
Cultivation 100000002
Solicitation 100000003
Stewardship 100000004

Supported messages

Message Supported
Create
Retrieve
RetrieveMultiple
Update
Delete
Upsert — (no alternate keys; use GET then PATCH)

Examples

Conventions

Examples assume ORG (env URL), access_token (valid bearer), headers (standard Dataverse headers dict), and service (a ServiceClient instance). See Authentication.

Active opportunities by stage

GET {org}/api/data/v9.2/akoya_donoropportunitieses?
  $select=akoya_stage,akoya_estimatedcommitment,akoya_targetclosedate&
  $filter=statecode eq 0 and akoya_stage eq 100000003&
  $expand=akoya_Donor($select=akoya_formaldefault),akoya_Fund($select=akoya_fundname)&
  $orderby=akoya_targetclosedate asc
Accept: application/json
OData-Version: 4.0
OData-MaxVersion: 4.0
curl "https://{org}.crm.dynamics.com/api/data/v9.2/akoya_donoropportunitieses?\$select=akoya_stage,akoya_estimatedcommitment,akoya_targetclosedate&\$filter=statecode%20eq%200%20and%20akoya_stage%20eq%20100000003&\$expand=akoya_Donor(\$select=akoya_formaldefault),akoya_Fund(\$select=akoya_fundname)&\$orderby=akoya_targetclosedate%20asc" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Accept: application/json" \
  -H "OData-Version: 4.0" \
  -H "OData-MaxVersion: 4.0"
r = requests.get(
    f"{ORG}/api/data/v9.2/akoya_donoropportunitieses",
    params={
        "$select": "akoya_stage,akoya_estimatedcommitment,akoya_targetclosedate",
        "$filter": "statecode eq 0 and akoya_stage eq 100000003",
        "$expand": "akoya_Donor($select=akoya_formaldefault),akoya_Fund($select=akoya_fundname)",
        "$orderby": "akoya_targetclosedate asc",
    },
    headers=headers,
)
opportunities = r.json()["value"]
var query = new QueryExpression("akoya_donoropportunities") {
    ColumnSet = new ColumnSet("akoya_stage", "akoya_estimatedcommitment", "akoya_targetclosedate"),
    Criteria = {
        Conditions = {
            new ConditionExpression("statecode", ConditionOperator.Equal, 0),
            new ConditionExpression("akoya_stage", ConditionOperator.Equal, 100000003)
        }
    },
    Orders = { new OrderExpression("akoya_targetclosedate", OrderType.Ascending) }
};
var opportunities = service.RetrieveMultiple(query);

Change history

Schema extracted from the Akoyanet solution XML on 2026-04-24. Global option sets (akoya_promisetype, akoya_revocable, akoya_vehicle) are pending the Phase 2 metadata generator.