Update fundraising hub settings
Updates supplied policies and this user’s preference. initialize_stewardship requires an unconfigured organization and start date no later than today; repeated initialization conflicts. Scheduling attribution/caseload/interactions or acknowledgement changes queues refresh; planning changes queue plan reconciliation. Requires permission: donors_view; plus one of manage_settings, access_account_settings.
curl --request PUT \
--url https://api.gratona.com/v1/admin/fundraising/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"initialize_stewardship": true,
"comparison": {
"default_mode": "Comparison.Default Mode"
},
"user_preferences": {
"comparison": {
"default_mode": "User Preferences.Comparison.Default Mode"
}
},
"caseload": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"portfolio": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"cohorts": {
"upgrade_threshold_pct": 25,
"downgrade_threshold_pct": 25,
"maintained_tolerance_pct": 25
},
"acknowledgements": {
"enabled": true,
"stewardship_start_date": "2026-10-20",
"initial_backfill_days": 0,
"pending_after_days": 1,
"auto_email_can_acknowledge_default": true,
"allowed_sources": [
"<unknown>"
]
},
"filters": {
"default_group_by_household": true
},
"planning": {
"strategy_review_days": 1,
"qualification_stall_days": 1,
"severely_overdue_days": 1,
"annual_review_reminder_days": 1,
"qualification_template_version": 1,
"default_period": "calendar_year"
},
"relationship_provisioning": {
"policy_version": 1,
"enabled": true,
"default_giving_scope": "attributed_only",
"relationship_type_mappings": [
{
"key": "donor_advised_fund",
"core_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type",
"vehicle_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type",
"kind": "family_fund",
"decision": "auto_create"
}
]
},
"attribution": {
"policy_version": 1,
"soft_credit_types": [
{
"relationship_giving": true,
"relationship_reactivation": true,
"giving_anniversary": true,
"relationship_follow_up": true
}
],
"relationship_follow_up": {
"enabled": true,
"due_days_after": 1,
"lookback_days": 1
}
},
"reactivation": {
"allowed_actions": [
"<unknown>"
]
},
"interactions": {
"classification_version": 2,
"meaningful_channels": [
"Interactions.Meaningful Channels.*"
],
"meaningful_purposes": [
"Interactions.Meaningful Purposes.*"
],
"meaningful_outcomes": [
"completed"
],
"meaningful_directions": [
"inbound"
],
"meaningful_provider_purposes": [
"Interactions.Meaningful Provider Purposes.*"
],
"meaningful_keywords": [
"Interactions.Meaningful Keywords.*"
],
"meaningful_subject_markers": [
"meaningful"
],
"excluded_contact_purposes": [
"Interactions.Excluded Contact Purposes.*"
]
},
"suggestions": {
"enabled": true,
"playbook": "balanced",
"moments": {
"first_gift": "call",
"major_gift": "call",
"giving_anniversary": "call",
"reactivation": "call",
"sustainer_milestone": "call"
},
"scope": {
"dashboard": true,
"donor_record": true,
"work_queue": true,
"after_gift_entry": true
},
"guardrails": {
"touch_fatigue_cap_per_30_days": 1,
"respect_channel_consent": true,
"budget_aware_downgrade": true,
"channel_cooldown_days": 1
}
},
"digest": {
"enabled": true,
"frequency": "daily",
"weekday": "monday",
"recipients": [
"jane@example.org"
],
"include_anniversaries": true,
"include_unacknowledged_gifts": true,
"include_reactivation": true
}
}
'import requests
url = "https://api.gratona.com/v1/admin/fundraising/settings"
payload = {
"initialize_stewardship": True,
"comparison": { "default_mode": "Comparison.Default Mode" },
"user_preferences": { "comparison": { "default_mode": "User Preferences.Comparison.Default Mode" } },
"caseload": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"portfolio": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"cohorts": {
"upgrade_threshold_pct": 25,
"downgrade_threshold_pct": 25,
"maintained_tolerance_pct": 25
},
"acknowledgements": {
"enabled": True,
"stewardship_start_date": "2026-10-20",
"initial_backfill_days": 0,
"pending_after_days": 1,
"auto_email_can_acknowledge_default": True,
"allowed_sources": ["<unknown>"]
},
"filters": { "default_group_by_household": True },
"planning": {
"strategy_review_days": 1,
"qualification_stall_days": 1,
"severely_overdue_days": 1,
"annual_review_reminder_days": 1,
"qualification_template_version": 1,
"default_period": "calendar_year"
},
"relationship_provisioning": {
"policy_version": 1,
"enabled": True,
"default_giving_scope": "attributed_only",
"relationship_type_mappings": [
{
"key": "donor_advised_fund",
"core_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type",
"vehicle_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type",
"kind": "family_fund",
"decision": "auto_create"
}
]
},
"attribution": {
"policy_version": 1,
"soft_credit_types": [
{
"relationship_giving": True,
"relationship_reactivation": True,
"giving_anniversary": True,
"relationship_follow_up": True
}
],
"relationship_follow_up": {
"enabled": True,
"due_days_after": 1,
"lookback_days": 1
}
},
"reactivation": { "allowed_actions": ["<unknown>"] },
"interactions": {
"classification_version": 2,
"meaningful_channels": ["Interactions.Meaningful Channels.*"],
"meaningful_purposes": ["Interactions.Meaningful Purposes.*"],
"meaningful_outcomes": ["completed"],
"meaningful_directions": ["inbound"],
"meaningful_provider_purposes": ["Interactions.Meaningful Provider Purposes.*"],
"meaningful_keywords": ["Interactions.Meaningful Keywords.*"],
"meaningful_subject_markers": ["meaningful"],
"excluded_contact_purposes": ["Interactions.Excluded Contact Purposes.*"]
},
"suggestions": {
"enabled": True,
"playbook": "balanced",
"moments": {
"first_gift": "call",
"major_gift": "call",
"giving_anniversary": "call",
"reactivation": "call",
"sustainer_milestone": "call"
},
"scope": {
"dashboard": True,
"donor_record": True,
"work_queue": True,
"after_gift_entry": True
},
"guardrails": {
"touch_fatigue_cap_per_30_days": 1,
"respect_channel_consent": True,
"budget_aware_downgrade": True,
"channel_cooldown_days": 1
}
},
"digest": {
"enabled": True,
"frequency": "daily",
"weekday": "monday",
"recipients": ["jane@example.org"],
"include_anniversaries": True,
"include_unacknowledged_gifts": True,
"include_reactivation": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
initialize_stewardship: true,
comparison: {default_mode: 'Comparison.Default Mode'},
user_preferences: {comparison: {default_mode: 'User Preferences.Comparison.Default Mode'}},
caseload: {
major_gift_threshold: 25,
mid_level_threshold: 25,
at_risk_months: 1,
lapsed_months: 1,
needs_contact_days: 1,
new_donor_window_days: 1,
upgrade_potential_threshold_pct: 25,
giving_trend_threshold_pct: 25,
minimum_gifts_for_trend: 1
},
portfolio: {
major_gift_threshold: 25,
mid_level_threshold: 25,
at_risk_months: 1,
lapsed_months: 1,
needs_contact_days: 1,
new_donor_window_days: 1,
upgrade_potential_threshold_pct: 25,
giving_trend_threshold_pct: 25,
minimum_gifts_for_trend: 1
},
cohorts: {
upgrade_threshold_pct: 25,
downgrade_threshold_pct: 25,
maintained_tolerance_pct: 25
},
acknowledgements: {
enabled: true,
stewardship_start_date: '2026-10-20',
initial_backfill_days: 0,
pending_after_days: 1,
auto_email_can_acknowledge_default: true,
allowed_sources: ['<unknown>']
},
filters: {default_group_by_household: true},
planning: {
strategy_review_days: 1,
qualification_stall_days: 1,
severely_overdue_days: 1,
annual_review_reminder_days: 1,
qualification_template_version: 1,
default_period: 'calendar_year'
},
relationship_provisioning: {
policy_version: 1,
enabled: true,
default_giving_scope: 'attributed_only',
relationship_type_mappings: [
{
key: 'donor_advised_fund',
core_relationship_type: 'Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type',
vehicle_relationship_type: 'Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type',
kind: 'family_fund',
decision: 'auto_create'
}
]
},
attribution: {
policy_version: 1,
soft_credit_types: [
{
relationship_giving: true,
relationship_reactivation: true,
giving_anniversary: true,
relationship_follow_up: true
}
],
relationship_follow_up: {enabled: true, due_days_after: 1, lookback_days: 1}
},
reactivation: {allowed_actions: ['<unknown>']},
interactions: {
classification_version: 2,
meaningful_channels: ['Interactions.Meaningful Channels.*'],
meaningful_purposes: ['Interactions.Meaningful Purposes.*'],
meaningful_outcomes: ['completed'],
meaningful_directions: ['inbound'],
meaningful_provider_purposes: ['Interactions.Meaningful Provider Purposes.*'],
meaningful_keywords: ['Interactions.Meaningful Keywords.*'],
meaningful_subject_markers: ['meaningful'],
excluded_contact_purposes: ['Interactions.Excluded Contact Purposes.*']
},
suggestions: {
enabled: true,
playbook: 'balanced',
moments: {
first_gift: 'call',
major_gift: 'call',
giving_anniversary: 'call',
reactivation: 'call',
sustainer_milestone: 'call'
},
scope: {dashboard: true, donor_record: true, work_queue: true, after_gift_entry: true},
guardrails: {
touch_fatigue_cap_per_30_days: 1,
respect_channel_consent: true,
budget_aware_downgrade: true,
channel_cooldown_days: 1
}
},
digest: {
enabled: true,
frequency: 'daily',
weekday: 'monday',
recipients: ['jane@example.org'],
include_anniversaries: true,
include_unacknowledged_gifts: true,
include_reactivation: true
}
})
};
fetch('https://api.gratona.com/v1/admin/fundraising/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gratona.com/v1/admin/fundraising/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'initialize_stewardship' => true,
'comparison' => [
'default_mode' => 'Comparison.Default Mode'
],
'user_preferences' => [
'comparison' => [
'default_mode' => 'User Preferences.Comparison.Default Mode'
]
],
'caseload' => [
'major_gift_threshold' => 25,
'mid_level_threshold' => 25,
'at_risk_months' => 1,
'lapsed_months' => 1,
'needs_contact_days' => 1,
'new_donor_window_days' => 1,
'upgrade_potential_threshold_pct' => 25,
'giving_trend_threshold_pct' => 25,
'minimum_gifts_for_trend' => 1
],
'portfolio' => [
'major_gift_threshold' => 25,
'mid_level_threshold' => 25,
'at_risk_months' => 1,
'lapsed_months' => 1,
'needs_contact_days' => 1,
'new_donor_window_days' => 1,
'upgrade_potential_threshold_pct' => 25,
'giving_trend_threshold_pct' => 25,
'minimum_gifts_for_trend' => 1
],
'cohorts' => [
'upgrade_threshold_pct' => 25,
'downgrade_threshold_pct' => 25,
'maintained_tolerance_pct' => 25
],
'acknowledgements' => [
'enabled' => true,
'stewardship_start_date' => '2026-10-20',
'initial_backfill_days' => 0,
'pending_after_days' => 1,
'auto_email_can_acknowledge_default' => true,
'allowed_sources' => [
'<unknown>'
]
],
'filters' => [
'default_group_by_household' => true
],
'planning' => [
'strategy_review_days' => 1,
'qualification_stall_days' => 1,
'severely_overdue_days' => 1,
'annual_review_reminder_days' => 1,
'qualification_template_version' => 1,
'default_period' => 'calendar_year'
],
'relationship_provisioning' => [
'policy_version' => 1,
'enabled' => true,
'default_giving_scope' => 'attributed_only',
'relationship_type_mappings' => [
[
'key' => 'donor_advised_fund',
'core_relationship_type' => 'Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type',
'vehicle_relationship_type' => 'Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type',
'kind' => 'family_fund',
'decision' => 'auto_create'
]
]
],
'attribution' => [
'policy_version' => 1,
'soft_credit_types' => [
[
'relationship_giving' => true,
'relationship_reactivation' => true,
'giving_anniversary' => true,
'relationship_follow_up' => true
]
],
'relationship_follow_up' => [
'enabled' => true,
'due_days_after' => 1,
'lookback_days' => 1
]
],
'reactivation' => [
'allowed_actions' => [
'<unknown>'
]
],
'interactions' => [
'classification_version' => 2,
'meaningful_channels' => [
'Interactions.Meaningful Channels.*'
],
'meaningful_purposes' => [
'Interactions.Meaningful Purposes.*'
],
'meaningful_outcomes' => [
'completed'
],
'meaningful_directions' => [
'inbound'
],
'meaningful_provider_purposes' => [
'Interactions.Meaningful Provider Purposes.*'
],
'meaningful_keywords' => [
'Interactions.Meaningful Keywords.*'
],
'meaningful_subject_markers' => [
'meaningful'
],
'excluded_contact_purposes' => [
'Interactions.Excluded Contact Purposes.*'
]
],
'suggestions' => [
'enabled' => true,
'playbook' => 'balanced',
'moments' => [
'first_gift' => 'call',
'major_gift' => 'call',
'giving_anniversary' => 'call',
'reactivation' => 'call',
'sustainer_milestone' => 'call'
],
'scope' => [
'dashboard' => true,
'donor_record' => true,
'work_queue' => true,
'after_gift_entry' => true
],
'guardrails' => [
'touch_fatigue_cap_per_30_days' => 1,
'respect_channel_consent' => true,
'budget_aware_downgrade' => true,
'channel_cooldown_days' => 1
]
],
'digest' => [
'enabled' => true,
'frequency' => 'daily',
'weekday' => 'monday',
'recipients' => [
'jane@example.org'
],
'include_anniversaries' => true,
'include_unacknowledged_gifts' => true,
'include_reactivation' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gratona.com/v1/admin/fundraising/settings"
payload := strings.NewReader("{\n \"initialize_stewardship\": true,\n \"comparison\": {\n \"default_mode\": \"Comparison.Default Mode\"\n },\n \"user_preferences\": {\n \"comparison\": {\n \"default_mode\": \"User Preferences.Comparison.Default Mode\"\n }\n },\n \"caseload\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"portfolio\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"cohorts\": {\n \"upgrade_threshold_pct\": 25,\n \"downgrade_threshold_pct\": 25,\n \"maintained_tolerance_pct\": 25\n },\n \"acknowledgements\": {\n \"enabled\": true,\n \"stewardship_start_date\": \"2026-10-20\",\n \"initial_backfill_days\": 0,\n \"pending_after_days\": 1,\n \"auto_email_can_acknowledge_default\": true,\n \"allowed_sources\": [\n \"<unknown>\"\n ]\n },\n \"filters\": {\n \"default_group_by_household\": true\n },\n \"planning\": {\n \"strategy_review_days\": 1,\n \"qualification_stall_days\": 1,\n \"severely_overdue_days\": 1,\n \"annual_review_reminder_days\": 1,\n \"qualification_template_version\": 1,\n \"default_period\": \"calendar_year\"\n },\n \"relationship_provisioning\": {\n \"policy_version\": 1,\n \"enabled\": true,\n \"default_giving_scope\": \"attributed_only\",\n \"relationship_type_mappings\": [\n {\n \"key\": \"donor_advised_fund\",\n \"core_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type\",\n \"vehicle_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type\",\n \"kind\": \"family_fund\",\n \"decision\": \"auto_create\"\n }\n ]\n },\n \"attribution\": {\n \"policy_version\": 1,\n \"soft_credit_types\": [\n {\n \"relationship_giving\": true,\n \"relationship_reactivation\": true,\n \"giving_anniversary\": true,\n \"relationship_follow_up\": true\n }\n ],\n \"relationship_follow_up\": {\n \"enabled\": true,\n \"due_days_after\": 1,\n \"lookback_days\": 1\n }\n },\n \"reactivation\": {\n \"allowed_actions\": [\n \"<unknown>\"\n ]\n },\n \"interactions\": {\n \"classification_version\": 2,\n \"meaningful_channels\": [\n \"Interactions.Meaningful Channels.*\"\n ],\n \"meaningful_purposes\": [\n \"Interactions.Meaningful Purposes.*\"\n ],\n \"meaningful_outcomes\": [\n \"completed\"\n ],\n \"meaningful_directions\": [\n \"inbound\"\n ],\n \"meaningful_provider_purposes\": [\n \"Interactions.Meaningful Provider Purposes.*\"\n ],\n \"meaningful_keywords\": [\n \"Interactions.Meaningful Keywords.*\"\n ],\n \"meaningful_subject_markers\": [\n \"meaningful\"\n ],\n \"excluded_contact_purposes\": [\n \"Interactions.Excluded Contact Purposes.*\"\n ]\n },\n \"suggestions\": {\n \"enabled\": true,\n \"playbook\": \"balanced\",\n \"moments\": {\n \"first_gift\": \"call\",\n \"major_gift\": \"call\",\n \"giving_anniversary\": \"call\",\n \"reactivation\": \"call\",\n \"sustainer_milestone\": \"call\"\n },\n \"scope\": {\n \"dashboard\": true,\n \"donor_record\": true,\n \"work_queue\": true,\n \"after_gift_entry\": true\n },\n \"guardrails\": {\n \"touch_fatigue_cap_per_30_days\": 1,\n \"respect_channel_consent\": true,\n \"budget_aware_downgrade\": true,\n \"channel_cooldown_days\": 1\n }\n },\n \"digest\": {\n \"enabled\": true,\n \"frequency\": \"daily\",\n \"weekday\": \"monday\",\n \"recipients\": [\n \"jane@example.org\"\n ],\n \"include_anniversaries\": true,\n \"include_unacknowledged_gifts\": true,\n \"include_reactivation\": true\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.gratona.com/v1/admin/fundraising/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"initialize_stewardship\": true,\n \"comparison\": {\n \"default_mode\": \"Comparison.Default Mode\"\n },\n \"user_preferences\": {\n \"comparison\": {\n \"default_mode\": \"User Preferences.Comparison.Default Mode\"\n }\n },\n \"caseload\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"portfolio\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"cohorts\": {\n \"upgrade_threshold_pct\": 25,\n \"downgrade_threshold_pct\": 25,\n \"maintained_tolerance_pct\": 25\n },\n \"acknowledgements\": {\n \"enabled\": true,\n \"stewardship_start_date\": \"2026-10-20\",\n \"initial_backfill_days\": 0,\n \"pending_after_days\": 1,\n \"auto_email_can_acknowledge_default\": true,\n \"allowed_sources\": [\n \"<unknown>\"\n ]\n },\n \"filters\": {\n \"default_group_by_household\": true\n },\n \"planning\": {\n \"strategy_review_days\": 1,\n \"qualification_stall_days\": 1,\n \"severely_overdue_days\": 1,\n \"annual_review_reminder_days\": 1,\n \"qualification_template_version\": 1,\n \"default_period\": \"calendar_year\"\n },\n \"relationship_provisioning\": {\n \"policy_version\": 1,\n \"enabled\": true,\n \"default_giving_scope\": \"attributed_only\",\n \"relationship_type_mappings\": [\n {\n \"key\": \"donor_advised_fund\",\n \"core_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type\",\n \"vehicle_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type\",\n \"kind\": \"family_fund\",\n \"decision\": \"auto_create\"\n }\n ]\n },\n \"attribution\": {\n \"policy_version\": 1,\n \"soft_credit_types\": [\n {\n \"relationship_giving\": true,\n \"relationship_reactivation\": true,\n \"giving_anniversary\": true,\n \"relationship_follow_up\": true\n }\n ],\n \"relationship_follow_up\": {\n \"enabled\": true,\n \"due_days_after\": 1,\n \"lookback_days\": 1\n }\n },\n \"reactivation\": {\n \"allowed_actions\": [\n \"<unknown>\"\n ]\n },\n \"interactions\": {\n \"classification_version\": 2,\n \"meaningful_channels\": [\n \"Interactions.Meaningful Channels.*\"\n ],\n \"meaningful_purposes\": [\n \"Interactions.Meaningful Purposes.*\"\n ],\n \"meaningful_outcomes\": [\n \"completed\"\n ],\n \"meaningful_directions\": [\n \"inbound\"\n ],\n \"meaningful_provider_purposes\": [\n \"Interactions.Meaningful Provider Purposes.*\"\n ],\n \"meaningful_keywords\": [\n \"Interactions.Meaningful Keywords.*\"\n ],\n \"meaningful_subject_markers\": [\n \"meaningful\"\n ],\n \"excluded_contact_purposes\": [\n \"Interactions.Excluded Contact Purposes.*\"\n ]\n },\n \"suggestions\": {\n \"enabled\": true,\n \"playbook\": \"balanced\",\n \"moments\": {\n \"first_gift\": \"call\",\n \"major_gift\": \"call\",\n \"giving_anniversary\": \"call\",\n \"reactivation\": \"call\",\n \"sustainer_milestone\": \"call\"\n },\n \"scope\": {\n \"dashboard\": true,\n \"donor_record\": true,\n \"work_queue\": true,\n \"after_gift_entry\": true\n },\n \"guardrails\": {\n \"touch_fatigue_cap_per_30_days\": 1,\n \"respect_channel_consent\": true,\n \"budget_aware_downgrade\": true,\n \"channel_cooldown_days\": 1\n }\n },\n \"digest\": {\n \"enabled\": true,\n \"frequency\": \"daily\",\n \"weekday\": \"monday\",\n \"recipients\": [\n \"jane@example.org\"\n ],\n \"include_anniversaries\": true,\n \"include_unacknowledged_gifts\": true,\n \"include_reactivation\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/fundraising/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"initialize_stewardship\": true,\n \"comparison\": {\n \"default_mode\": \"Comparison.Default Mode\"\n },\n \"user_preferences\": {\n \"comparison\": {\n \"default_mode\": \"User Preferences.Comparison.Default Mode\"\n }\n },\n \"caseload\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"portfolio\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"cohorts\": {\n \"upgrade_threshold_pct\": 25,\n \"downgrade_threshold_pct\": 25,\n \"maintained_tolerance_pct\": 25\n },\n \"acknowledgements\": {\n \"enabled\": true,\n \"stewardship_start_date\": \"2026-10-20\",\n \"initial_backfill_days\": 0,\n \"pending_after_days\": 1,\n \"auto_email_can_acknowledge_default\": true,\n \"allowed_sources\": [\n \"<unknown>\"\n ]\n },\n \"filters\": {\n \"default_group_by_household\": true\n },\n \"planning\": {\n \"strategy_review_days\": 1,\n \"qualification_stall_days\": 1,\n \"severely_overdue_days\": 1,\n \"annual_review_reminder_days\": 1,\n \"qualification_template_version\": 1,\n \"default_period\": \"calendar_year\"\n },\n \"relationship_provisioning\": {\n \"policy_version\": 1,\n \"enabled\": true,\n \"default_giving_scope\": \"attributed_only\",\n \"relationship_type_mappings\": [\n {\n \"key\": \"donor_advised_fund\",\n \"core_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type\",\n \"vehicle_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type\",\n \"kind\": \"family_fund\",\n \"decision\": \"auto_create\"\n }\n ]\n },\n \"attribution\": {\n \"policy_version\": 1,\n \"soft_credit_types\": [\n {\n \"relationship_giving\": true,\n \"relationship_reactivation\": true,\n \"giving_anniversary\": true,\n \"relationship_follow_up\": true\n }\n ],\n \"relationship_follow_up\": {\n \"enabled\": true,\n \"due_days_after\": 1,\n \"lookback_days\": 1\n }\n },\n \"reactivation\": {\n \"allowed_actions\": [\n \"<unknown>\"\n ]\n },\n \"interactions\": {\n \"classification_version\": 2,\n \"meaningful_channels\": [\n \"Interactions.Meaningful Channels.*\"\n ],\n \"meaningful_purposes\": [\n \"Interactions.Meaningful Purposes.*\"\n ],\n \"meaningful_outcomes\": [\n \"completed\"\n ],\n \"meaningful_directions\": [\n \"inbound\"\n ],\n \"meaningful_provider_purposes\": [\n \"Interactions.Meaningful Provider Purposes.*\"\n ],\n \"meaningful_keywords\": [\n \"Interactions.Meaningful Keywords.*\"\n ],\n \"meaningful_subject_markers\": [\n \"meaningful\"\n ],\n \"excluded_contact_purposes\": [\n \"Interactions.Excluded Contact Purposes.*\"\n ]\n },\n \"suggestions\": {\n \"enabled\": true,\n \"playbook\": \"balanced\",\n \"moments\": {\n \"first_gift\": \"call\",\n \"major_gift\": \"call\",\n \"giving_anniversary\": \"call\",\n \"reactivation\": \"call\",\n \"sustainer_milestone\": \"call\"\n },\n \"scope\": {\n \"dashboard\": true,\n \"donor_record\": true,\n \"work_queue\": true,\n \"after_gift_entry\": true\n },\n \"guardrails\": {\n \"touch_fatigue_cap_per_30_days\": 1,\n \"respect_channel_consent\": true,\n \"budget_aware_downgrade\": true,\n \"channel_cooldown_days\": 1\n }\n },\n \"digest\": {\n \"enabled\": true,\n \"frequency\": \"daily\",\n \"weekday\": \"monday\",\n \"recipients\": [\n \"jane@example.org\"\n ],\n \"include_anniversaries\": true,\n \"include_unacknowledged_gifts\": true,\n \"include_reactivation\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"comparison": {
"default_mode": "Comparison.Default Mode",
"effective_default_mode": "Example"
},
"user_preferences": {
"comparison": {
"default_mode": "User Preferences.Comparison.Default Mode"
}
},
"caseload": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"portfolio": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"cohorts": {
"upgrade_threshold_pct": 25,
"downgrade_threshold_pct": 25,
"maintained_tolerance_pct": 25
},
"acknowledgements": {
"enabled": true,
"stewardship_start_date": "2026-10-20",
"initial_backfill_days": 0,
"pending_after_days": 1,
"auto_email_can_acknowledge_default": true,
"allowed_sources": [
"<unknown>"
],
"stewardship_configured": true,
"source": "donations_acknowledged_at"
},
"filters": {
"default_group_by_household": true
},
"planning": {
"strategy_review_days": 1,
"qualification_stall_days": 1,
"severely_overdue_days": 1,
"annual_review_reminder_days": 1,
"qualification_template_version": 1,
"default_period": "calendar_year"
},
"relationship_provisioning": {
"policy_version": 1,
"enabled": true,
"default_giving_scope": "attributed_only",
"relationship_type_mappings": [
{
"key": "donor_advised_fund",
"core_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type",
"vehicle_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type",
"kind": "family_fund",
"decision": "auto_create"
}
]
},
"attribution": {
"policy_version": 1,
"soft_credit_types": {},
"relationship_follow_up": {
"enabled": true,
"due_days_after": 1,
"lookback_days": 1
},
"soft_credit_type_options": [
{
"key": "Example",
"name": "Example"
}
]
},
"reactivation": {
"allowed_actions": [
"<unknown>"
]
},
"interactions": {
"classification_version": 2,
"meaningful_channels": [
"Interactions.Meaningful Channels.*"
],
"meaningful_purposes": [
"Interactions.Meaningful Purposes.*"
],
"meaningful_outcomes": [
"completed"
],
"meaningful_directions": [
"inbound"
],
"meaningful_provider_purposes": [
"Interactions.Meaningful Provider Purposes.*"
],
"meaningful_keywords": [
"Interactions.Meaningful Keywords.*"
],
"meaningful_subject_markers": [
"meaningful"
],
"excluded_contact_purposes": [
"Interactions.Excluded Contact Purposes.*"
]
},
"suggestions": {
"enabled": true,
"playbook": "balanced",
"moments": {
"first_gift": "call",
"major_gift": "call",
"giving_anniversary": "call",
"reactivation": "call",
"sustainer_milestone": "call"
},
"scope": {
"dashboard": true,
"donor_record": true,
"work_queue": true,
"after_gift_entry": true
},
"guardrails": {
"touch_fatigue_cap_per_30_days": 1,
"respect_channel_consent": true,
"budget_aware_downgrade": true,
"channel_cooldown_days": 1
}
},
"digest": {
"enabled": true,
"frequency": "daily",
"weekday": "monday",
"recipients": [
"jane@example.org"
],
"include_anniversaries": true,
"include_unacknowledged_gifts": true,
"include_reactivation": true
},
"stewardship_setup": {
"required": true,
"today": "2026-10-20",
"timezone": "Example"
}
}
}{
"message": "Unauthorized",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}Authorizations
Passport bearer token authentication for legacy admin sessions.
Body
Validated request fields for this operation.
Initialize stewardship. Validation: sometimes, boolean.
true
Comparison. Validation: nullable, array.
Show child attributes
Show child attributes
User preferences. Validation: nullable, array.
Show child attributes
Show child attributes
Caseload. Validation: nullable, array.
Show child attributes
Show child attributes
Portfolio. Validation: nullable, array.
Show child attributes
Show child attributes
Cohorts. Validation: nullable, array.
Show child attributes
Show child attributes
Acknowledgements. Validation: nullable, array.
Show child attributes
Show child attributes
Filters. Validation: nullable, array.
Show child attributes
Show child attributes
Planning. Validation: nullable, array.
Show child attributes
Show child attributes
Relationship provisioning. Validation: nullable, array.
Show child attributes
Show child attributes
Attribution. Validation: nullable, array.
Show child attributes
Show child attributes
Reactivation. Validation: nullable, array.
Show child attributes
Show child attributes
Interactions. Validation: nullable, array.
Show child attributes
Show child attributes
Suggestions. Validation: nullable, array.
Show child attributes
Show child attributes
Digest. Validation: nullable, array.
Show child attributes
Show child attributes
curl --request PUT \
--url https://api.gratona.com/v1/admin/fundraising/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"initialize_stewardship": true,
"comparison": {
"default_mode": "Comparison.Default Mode"
},
"user_preferences": {
"comparison": {
"default_mode": "User Preferences.Comparison.Default Mode"
}
},
"caseload": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"portfolio": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"cohorts": {
"upgrade_threshold_pct": 25,
"downgrade_threshold_pct": 25,
"maintained_tolerance_pct": 25
},
"acknowledgements": {
"enabled": true,
"stewardship_start_date": "2026-10-20",
"initial_backfill_days": 0,
"pending_after_days": 1,
"auto_email_can_acknowledge_default": true,
"allowed_sources": [
"<unknown>"
]
},
"filters": {
"default_group_by_household": true
},
"planning": {
"strategy_review_days": 1,
"qualification_stall_days": 1,
"severely_overdue_days": 1,
"annual_review_reminder_days": 1,
"qualification_template_version": 1,
"default_period": "calendar_year"
},
"relationship_provisioning": {
"policy_version": 1,
"enabled": true,
"default_giving_scope": "attributed_only",
"relationship_type_mappings": [
{
"key": "donor_advised_fund",
"core_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type",
"vehicle_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type",
"kind": "family_fund",
"decision": "auto_create"
}
]
},
"attribution": {
"policy_version": 1,
"soft_credit_types": [
{
"relationship_giving": true,
"relationship_reactivation": true,
"giving_anniversary": true,
"relationship_follow_up": true
}
],
"relationship_follow_up": {
"enabled": true,
"due_days_after": 1,
"lookback_days": 1
}
},
"reactivation": {
"allowed_actions": [
"<unknown>"
]
},
"interactions": {
"classification_version": 2,
"meaningful_channels": [
"Interactions.Meaningful Channels.*"
],
"meaningful_purposes": [
"Interactions.Meaningful Purposes.*"
],
"meaningful_outcomes": [
"completed"
],
"meaningful_directions": [
"inbound"
],
"meaningful_provider_purposes": [
"Interactions.Meaningful Provider Purposes.*"
],
"meaningful_keywords": [
"Interactions.Meaningful Keywords.*"
],
"meaningful_subject_markers": [
"meaningful"
],
"excluded_contact_purposes": [
"Interactions.Excluded Contact Purposes.*"
]
},
"suggestions": {
"enabled": true,
"playbook": "balanced",
"moments": {
"first_gift": "call",
"major_gift": "call",
"giving_anniversary": "call",
"reactivation": "call",
"sustainer_milestone": "call"
},
"scope": {
"dashboard": true,
"donor_record": true,
"work_queue": true,
"after_gift_entry": true
},
"guardrails": {
"touch_fatigue_cap_per_30_days": 1,
"respect_channel_consent": true,
"budget_aware_downgrade": true,
"channel_cooldown_days": 1
}
},
"digest": {
"enabled": true,
"frequency": "daily",
"weekday": "monday",
"recipients": [
"jane@example.org"
],
"include_anniversaries": true,
"include_unacknowledged_gifts": true,
"include_reactivation": true
}
}
'import requests
url = "https://api.gratona.com/v1/admin/fundraising/settings"
payload = {
"initialize_stewardship": True,
"comparison": { "default_mode": "Comparison.Default Mode" },
"user_preferences": { "comparison": { "default_mode": "User Preferences.Comparison.Default Mode" } },
"caseload": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"portfolio": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"cohorts": {
"upgrade_threshold_pct": 25,
"downgrade_threshold_pct": 25,
"maintained_tolerance_pct": 25
},
"acknowledgements": {
"enabled": True,
"stewardship_start_date": "2026-10-20",
"initial_backfill_days": 0,
"pending_after_days": 1,
"auto_email_can_acknowledge_default": True,
"allowed_sources": ["<unknown>"]
},
"filters": { "default_group_by_household": True },
"planning": {
"strategy_review_days": 1,
"qualification_stall_days": 1,
"severely_overdue_days": 1,
"annual_review_reminder_days": 1,
"qualification_template_version": 1,
"default_period": "calendar_year"
},
"relationship_provisioning": {
"policy_version": 1,
"enabled": True,
"default_giving_scope": "attributed_only",
"relationship_type_mappings": [
{
"key": "donor_advised_fund",
"core_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type",
"vehicle_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type",
"kind": "family_fund",
"decision": "auto_create"
}
]
},
"attribution": {
"policy_version": 1,
"soft_credit_types": [
{
"relationship_giving": True,
"relationship_reactivation": True,
"giving_anniversary": True,
"relationship_follow_up": True
}
],
"relationship_follow_up": {
"enabled": True,
"due_days_after": 1,
"lookback_days": 1
}
},
"reactivation": { "allowed_actions": ["<unknown>"] },
"interactions": {
"classification_version": 2,
"meaningful_channels": ["Interactions.Meaningful Channels.*"],
"meaningful_purposes": ["Interactions.Meaningful Purposes.*"],
"meaningful_outcomes": ["completed"],
"meaningful_directions": ["inbound"],
"meaningful_provider_purposes": ["Interactions.Meaningful Provider Purposes.*"],
"meaningful_keywords": ["Interactions.Meaningful Keywords.*"],
"meaningful_subject_markers": ["meaningful"],
"excluded_contact_purposes": ["Interactions.Excluded Contact Purposes.*"]
},
"suggestions": {
"enabled": True,
"playbook": "balanced",
"moments": {
"first_gift": "call",
"major_gift": "call",
"giving_anniversary": "call",
"reactivation": "call",
"sustainer_milestone": "call"
},
"scope": {
"dashboard": True,
"donor_record": True,
"work_queue": True,
"after_gift_entry": True
},
"guardrails": {
"touch_fatigue_cap_per_30_days": 1,
"respect_channel_consent": True,
"budget_aware_downgrade": True,
"channel_cooldown_days": 1
}
},
"digest": {
"enabled": True,
"frequency": "daily",
"weekday": "monday",
"recipients": ["jane@example.org"],
"include_anniversaries": True,
"include_unacknowledged_gifts": True,
"include_reactivation": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
initialize_stewardship: true,
comparison: {default_mode: 'Comparison.Default Mode'},
user_preferences: {comparison: {default_mode: 'User Preferences.Comparison.Default Mode'}},
caseload: {
major_gift_threshold: 25,
mid_level_threshold: 25,
at_risk_months: 1,
lapsed_months: 1,
needs_contact_days: 1,
new_donor_window_days: 1,
upgrade_potential_threshold_pct: 25,
giving_trend_threshold_pct: 25,
minimum_gifts_for_trend: 1
},
portfolio: {
major_gift_threshold: 25,
mid_level_threshold: 25,
at_risk_months: 1,
lapsed_months: 1,
needs_contact_days: 1,
new_donor_window_days: 1,
upgrade_potential_threshold_pct: 25,
giving_trend_threshold_pct: 25,
minimum_gifts_for_trend: 1
},
cohorts: {
upgrade_threshold_pct: 25,
downgrade_threshold_pct: 25,
maintained_tolerance_pct: 25
},
acknowledgements: {
enabled: true,
stewardship_start_date: '2026-10-20',
initial_backfill_days: 0,
pending_after_days: 1,
auto_email_can_acknowledge_default: true,
allowed_sources: ['<unknown>']
},
filters: {default_group_by_household: true},
planning: {
strategy_review_days: 1,
qualification_stall_days: 1,
severely_overdue_days: 1,
annual_review_reminder_days: 1,
qualification_template_version: 1,
default_period: 'calendar_year'
},
relationship_provisioning: {
policy_version: 1,
enabled: true,
default_giving_scope: 'attributed_only',
relationship_type_mappings: [
{
key: 'donor_advised_fund',
core_relationship_type: 'Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type',
vehicle_relationship_type: 'Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type',
kind: 'family_fund',
decision: 'auto_create'
}
]
},
attribution: {
policy_version: 1,
soft_credit_types: [
{
relationship_giving: true,
relationship_reactivation: true,
giving_anniversary: true,
relationship_follow_up: true
}
],
relationship_follow_up: {enabled: true, due_days_after: 1, lookback_days: 1}
},
reactivation: {allowed_actions: ['<unknown>']},
interactions: {
classification_version: 2,
meaningful_channels: ['Interactions.Meaningful Channels.*'],
meaningful_purposes: ['Interactions.Meaningful Purposes.*'],
meaningful_outcomes: ['completed'],
meaningful_directions: ['inbound'],
meaningful_provider_purposes: ['Interactions.Meaningful Provider Purposes.*'],
meaningful_keywords: ['Interactions.Meaningful Keywords.*'],
meaningful_subject_markers: ['meaningful'],
excluded_contact_purposes: ['Interactions.Excluded Contact Purposes.*']
},
suggestions: {
enabled: true,
playbook: 'balanced',
moments: {
first_gift: 'call',
major_gift: 'call',
giving_anniversary: 'call',
reactivation: 'call',
sustainer_milestone: 'call'
},
scope: {dashboard: true, donor_record: true, work_queue: true, after_gift_entry: true},
guardrails: {
touch_fatigue_cap_per_30_days: 1,
respect_channel_consent: true,
budget_aware_downgrade: true,
channel_cooldown_days: 1
}
},
digest: {
enabled: true,
frequency: 'daily',
weekday: 'monday',
recipients: ['jane@example.org'],
include_anniversaries: true,
include_unacknowledged_gifts: true,
include_reactivation: true
}
})
};
fetch('https://api.gratona.com/v1/admin/fundraising/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gratona.com/v1/admin/fundraising/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'initialize_stewardship' => true,
'comparison' => [
'default_mode' => 'Comparison.Default Mode'
],
'user_preferences' => [
'comparison' => [
'default_mode' => 'User Preferences.Comparison.Default Mode'
]
],
'caseload' => [
'major_gift_threshold' => 25,
'mid_level_threshold' => 25,
'at_risk_months' => 1,
'lapsed_months' => 1,
'needs_contact_days' => 1,
'new_donor_window_days' => 1,
'upgrade_potential_threshold_pct' => 25,
'giving_trend_threshold_pct' => 25,
'minimum_gifts_for_trend' => 1
],
'portfolio' => [
'major_gift_threshold' => 25,
'mid_level_threshold' => 25,
'at_risk_months' => 1,
'lapsed_months' => 1,
'needs_contact_days' => 1,
'new_donor_window_days' => 1,
'upgrade_potential_threshold_pct' => 25,
'giving_trend_threshold_pct' => 25,
'minimum_gifts_for_trend' => 1
],
'cohorts' => [
'upgrade_threshold_pct' => 25,
'downgrade_threshold_pct' => 25,
'maintained_tolerance_pct' => 25
],
'acknowledgements' => [
'enabled' => true,
'stewardship_start_date' => '2026-10-20',
'initial_backfill_days' => 0,
'pending_after_days' => 1,
'auto_email_can_acknowledge_default' => true,
'allowed_sources' => [
'<unknown>'
]
],
'filters' => [
'default_group_by_household' => true
],
'planning' => [
'strategy_review_days' => 1,
'qualification_stall_days' => 1,
'severely_overdue_days' => 1,
'annual_review_reminder_days' => 1,
'qualification_template_version' => 1,
'default_period' => 'calendar_year'
],
'relationship_provisioning' => [
'policy_version' => 1,
'enabled' => true,
'default_giving_scope' => 'attributed_only',
'relationship_type_mappings' => [
[
'key' => 'donor_advised_fund',
'core_relationship_type' => 'Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type',
'vehicle_relationship_type' => 'Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type',
'kind' => 'family_fund',
'decision' => 'auto_create'
]
]
],
'attribution' => [
'policy_version' => 1,
'soft_credit_types' => [
[
'relationship_giving' => true,
'relationship_reactivation' => true,
'giving_anniversary' => true,
'relationship_follow_up' => true
]
],
'relationship_follow_up' => [
'enabled' => true,
'due_days_after' => 1,
'lookback_days' => 1
]
],
'reactivation' => [
'allowed_actions' => [
'<unknown>'
]
],
'interactions' => [
'classification_version' => 2,
'meaningful_channels' => [
'Interactions.Meaningful Channels.*'
],
'meaningful_purposes' => [
'Interactions.Meaningful Purposes.*'
],
'meaningful_outcomes' => [
'completed'
],
'meaningful_directions' => [
'inbound'
],
'meaningful_provider_purposes' => [
'Interactions.Meaningful Provider Purposes.*'
],
'meaningful_keywords' => [
'Interactions.Meaningful Keywords.*'
],
'meaningful_subject_markers' => [
'meaningful'
],
'excluded_contact_purposes' => [
'Interactions.Excluded Contact Purposes.*'
]
],
'suggestions' => [
'enabled' => true,
'playbook' => 'balanced',
'moments' => [
'first_gift' => 'call',
'major_gift' => 'call',
'giving_anniversary' => 'call',
'reactivation' => 'call',
'sustainer_milestone' => 'call'
],
'scope' => [
'dashboard' => true,
'donor_record' => true,
'work_queue' => true,
'after_gift_entry' => true
],
'guardrails' => [
'touch_fatigue_cap_per_30_days' => 1,
'respect_channel_consent' => true,
'budget_aware_downgrade' => true,
'channel_cooldown_days' => 1
]
],
'digest' => [
'enabled' => true,
'frequency' => 'daily',
'weekday' => 'monday',
'recipients' => [
'jane@example.org'
],
'include_anniversaries' => true,
'include_unacknowledged_gifts' => true,
'include_reactivation' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gratona.com/v1/admin/fundraising/settings"
payload := strings.NewReader("{\n \"initialize_stewardship\": true,\n \"comparison\": {\n \"default_mode\": \"Comparison.Default Mode\"\n },\n \"user_preferences\": {\n \"comparison\": {\n \"default_mode\": \"User Preferences.Comparison.Default Mode\"\n }\n },\n \"caseload\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"portfolio\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"cohorts\": {\n \"upgrade_threshold_pct\": 25,\n \"downgrade_threshold_pct\": 25,\n \"maintained_tolerance_pct\": 25\n },\n \"acknowledgements\": {\n \"enabled\": true,\n \"stewardship_start_date\": \"2026-10-20\",\n \"initial_backfill_days\": 0,\n \"pending_after_days\": 1,\n \"auto_email_can_acknowledge_default\": true,\n \"allowed_sources\": [\n \"<unknown>\"\n ]\n },\n \"filters\": {\n \"default_group_by_household\": true\n },\n \"planning\": {\n \"strategy_review_days\": 1,\n \"qualification_stall_days\": 1,\n \"severely_overdue_days\": 1,\n \"annual_review_reminder_days\": 1,\n \"qualification_template_version\": 1,\n \"default_period\": \"calendar_year\"\n },\n \"relationship_provisioning\": {\n \"policy_version\": 1,\n \"enabled\": true,\n \"default_giving_scope\": \"attributed_only\",\n \"relationship_type_mappings\": [\n {\n \"key\": \"donor_advised_fund\",\n \"core_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type\",\n \"vehicle_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type\",\n \"kind\": \"family_fund\",\n \"decision\": \"auto_create\"\n }\n ]\n },\n \"attribution\": {\n \"policy_version\": 1,\n \"soft_credit_types\": [\n {\n \"relationship_giving\": true,\n \"relationship_reactivation\": true,\n \"giving_anniversary\": true,\n \"relationship_follow_up\": true\n }\n ],\n \"relationship_follow_up\": {\n \"enabled\": true,\n \"due_days_after\": 1,\n \"lookback_days\": 1\n }\n },\n \"reactivation\": {\n \"allowed_actions\": [\n \"<unknown>\"\n ]\n },\n \"interactions\": {\n \"classification_version\": 2,\n \"meaningful_channels\": [\n \"Interactions.Meaningful Channels.*\"\n ],\n \"meaningful_purposes\": [\n \"Interactions.Meaningful Purposes.*\"\n ],\n \"meaningful_outcomes\": [\n \"completed\"\n ],\n \"meaningful_directions\": [\n \"inbound\"\n ],\n \"meaningful_provider_purposes\": [\n \"Interactions.Meaningful Provider Purposes.*\"\n ],\n \"meaningful_keywords\": [\n \"Interactions.Meaningful Keywords.*\"\n ],\n \"meaningful_subject_markers\": [\n \"meaningful\"\n ],\n \"excluded_contact_purposes\": [\n \"Interactions.Excluded Contact Purposes.*\"\n ]\n },\n \"suggestions\": {\n \"enabled\": true,\n \"playbook\": \"balanced\",\n \"moments\": {\n \"first_gift\": \"call\",\n \"major_gift\": \"call\",\n \"giving_anniversary\": \"call\",\n \"reactivation\": \"call\",\n \"sustainer_milestone\": \"call\"\n },\n \"scope\": {\n \"dashboard\": true,\n \"donor_record\": true,\n \"work_queue\": true,\n \"after_gift_entry\": true\n },\n \"guardrails\": {\n \"touch_fatigue_cap_per_30_days\": 1,\n \"respect_channel_consent\": true,\n \"budget_aware_downgrade\": true,\n \"channel_cooldown_days\": 1\n }\n },\n \"digest\": {\n \"enabled\": true,\n \"frequency\": \"daily\",\n \"weekday\": \"monday\",\n \"recipients\": [\n \"jane@example.org\"\n ],\n \"include_anniversaries\": true,\n \"include_unacknowledged_gifts\": true,\n \"include_reactivation\": true\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.gratona.com/v1/admin/fundraising/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"initialize_stewardship\": true,\n \"comparison\": {\n \"default_mode\": \"Comparison.Default Mode\"\n },\n \"user_preferences\": {\n \"comparison\": {\n \"default_mode\": \"User Preferences.Comparison.Default Mode\"\n }\n },\n \"caseload\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"portfolio\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"cohorts\": {\n \"upgrade_threshold_pct\": 25,\n \"downgrade_threshold_pct\": 25,\n \"maintained_tolerance_pct\": 25\n },\n \"acknowledgements\": {\n \"enabled\": true,\n \"stewardship_start_date\": \"2026-10-20\",\n \"initial_backfill_days\": 0,\n \"pending_after_days\": 1,\n \"auto_email_can_acknowledge_default\": true,\n \"allowed_sources\": [\n \"<unknown>\"\n ]\n },\n \"filters\": {\n \"default_group_by_household\": true\n },\n \"planning\": {\n \"strategy_review_days\": 1,\n \"qualification_stall_days\": 1,\n \"severely_overdue_days\": 1,\n \"annual_review_reminder_days\": 1,\n \"qualification_template_version\": 1,\n \"default_period\": \"calendar_year\"\n },\n \"relationship_provisioning\": {\n \"policy_version\": 1,\n \"enabled\": true,\n \"default_giving_scope\": \"attributed_only\",\n \"relationship_type_mappings\": [\n {\n \"key\": \"donor_advised_fund\",\n \"core_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type\",\n \"vehicle_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type\",\n \"kind\": \"family_fund\",\n \"decision\": \"auto_create\"\n }\n ]\n },\n \"attribution\": {\n \"policy_version\": 1,\n \"soft_credit_types\": [\n {\n \"relationship_giving\": true,\n \"relationship_reactivation\": true,\n \"giving_anniversary\": true,\n \"relationship_follow_up\": true\n }\n ],\n \"relationship_follow_up\": {\n \"enabled\": true,\n \"due_days_after\": 1,\n \"lookback_days\": 1\n }\n },\n \"reactivation\": {\n \"allowed_actions\": [\n \"<unknown>\"\n ]\n },\n \"interactions\": {\n \"classification_version\": 2,\n \"meaningful_channels\": [\n \"Interactions.Meaningful Channels.*\"\n ],\n \"meaningful_purposes\": [\n \"Interactions.Meaningful Purposes.*\"\n ],\n \"meaningful_outcomes\": [\n \"completed\"\n ],\n \"meaningful_directions\": [\n \"inbound\"\n ],\n \"meaningful_provider_purposes\": [\n \"Interactions.Meaningful Provider Purposes.*\"\n ],\n \"meaningful_keywords\": [\n \"Interactions.Meaningful Keywords.*\"\n ],\n \"meaningful_subject_markers\": [\n \"meaningful\"\n ],\n \"excluded_contact_purposes\": [\n \"Interactions.Excluded Contact Purposes.*\"\n ]\n },\n \"suggestions\": {\n \"enabled\": true,\n \"playbook\": \"balanced\",\n \"moments\": {\n \"first_gift\": \"call\",\n \"major_gift\": \"call\",\n \"giving_anniversary\": \"call\",\n \"reactivation\": \"call\",\n \"sustainer_milestone\": \"call\"\n },\n \"scope\": {\n \"dashboard\": true,\n \"donor_record\": true,\n \"work_queue\": true,\n \"after_gift_entry\": true\n },\n \"guardrails\": {\n \"touch_fatigue_cap_per_30_days\": 1,\n \"respect_channel_consent\": true,\n \"budget_aware_downgrade\": true,\n \"channel_cooldown_days\": 1\n }\n },\n \"digest\": {\n \"enabled\": true,\n \"frequency\": \"daily\",\n \"weekday\": \"monday\",\n \"recipients\": [\n \"jane@example.org\"\n ],\n \"include_anniversaries\": true,\n \"include_unacknowledged_gifts\": true,\n \"include_reactivation\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/fundraising/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"initialize_stewardship\": true,\n \"comparison\": {\n \"default_mode\": \"Comparison.Default Mode\"\n },\n \"user_preferences\": {\n \"comparison\": {\n \"default_mode\": \"User Preferences.Comparison.Default Mode\"\n }\n },\n \"caseload\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"portfolio\": {\n \"major_gift_threshold\": 25,\n \"mid_level_threshold\": 25,\n \"at_risk_months\": 1,\n \"lapsed_months\": 1,\n \"needs_contact_days\": 1,\n \"new_donor_window_days\": 1,\n \"upgrade_potential_threshold_pct\": 25,\n \"giving_trend_threshold_pct\": 25,\n \"minimum_gifts_for_trend\": 1\n },\n \"cohorts\": {\n \"upgrade_threshold_pct\": 25,\n \"downgrade_threshold_pct\": 25,\n \"maintained_tolerance_pct\": 25\n },\n \"acknowledgements\": {\n \"enabled\": true,\n \"stewardship_start_date\": \"2026-10-20\",\n \"initial_backfill_days\": 0,\n \"pending_after_days\": 1,\n \"auto_email_can_acknowledge_default\": true,\n \"allowed_sources\": [\n \"<unknown>\"\n ]\n },\n \"filters\": {\n \"default_group_by_household\": true\n },\n \"planning\": {\n \"strategy_review_days\": 1,\n \"qualification_stall_days\": 1,\n \"severely_overdue_days\": 1,\n \"annual_review_reminder_days\": 1,\n \"qualification_template_version\": 1,\n \"default_period\": \"calendar_year\"\n },\n \"relationship_provisioning\": {\n \"policy_version\": 1,\n \"enabled\": true,\n \"default_giving_scope\": \"attributed_only\",\n \"relationship_type_mappings\": [\n {\n \"key\": \"donor_advised_fund\",\n \"core_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type\",\n \"vehicle_relationship_type\": \"Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type\",\n \"kind\": \"family_fund\",\n \"decision\": \"auto_create\"\n }\n ]\n },\n \"attribution\": {\n \"policy_version\": 1,\n \"soft_credit_types\": [\n {\n \"relationship_giving\": true,\n \"relationship_reactivation\": true,\n \"giving_anniversary\": true,\n \"relationship_follow_up\": true\n }\n ],\n \"relationship_follow_up\": {\n \"enabled\": true,\n \"due_days_after\": 1,\n \"lookback_days\": 1\n }\n },\n \"reactivation\": {\n \"allowed_actions\": [\n \"<unknown>\"\n ]\n },\n \"interactions\": {\n \"classification_version\": 2,\n \"meaningful_channels\": [\n \"Interactions.Meaningful Channels.*\"\n ],\n \"meaningful_purposes\": [\n \"Interactions.Meaningful Purposes.*\"\n ],\n \"meaningful_outcomes\": [\n \"completed\"\n ],\n \"meaningful_directions\": [\n \"inbound\"\n ],\n \"meaningful_provider_purposes\": [\n \"Interactions.Meaningful Provider Purposes.*\"\n ],\n \"meaningful_keywords\": [\n \"Interactions.Meaningful Keywords.*\"\n ],\n \"meaningful_subject_markers\": [\n \"meaningful\"\n ],\n \"excluded_contact_purposes\": [\n \"Interactions.Excluded Contact Purposes.*\"\n ]\n },\n \"suggestions\": {\n \"enabled\": true,\n \"playbook\": \"balanced\",\n \"moments\": {\n \"first_gift\": \"call\",\n \"major_gift\": \"call\",\n \"giving_anniversary\": \"call\",\n \"reactivation\": \"call\",\n \"sustainer_milestone\": \"call\"\n },\n \"scope\": {\n \"dashboard\": true,\n \"donor_record\": true,\n \"work_queue\": true,\n \"after_gift_entry\": true\n },\n \"guardrails\": {\n \"touch_fatigue_cap_per_30_days\": 1,\n \"respect_channel_consent\": true,\n \"budget_aware_downgrade\": true,\n \"channel_cooldown_days\": 1\n }\n },\n \"digest\": {\n \"enabled\": true,\n \"frequency\": \"daily\",\n \"weekday\": \"monday\",\n \"recipients\": [\n \"jane@example.org\"\n ],\n \"include_anniversaries\": true,\n \"include_unacknowledged_gifts\": true,\n \"include_reactivation\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"comparison": {
"default_mode": "Comparison.Default Mode",
"effective_default_mode": "Example"
},
"user_preferences": {
"comparison": {
"default_mode": "User Preferences.Comparison.Default Mode"
}
},
"caseload": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"portfolio": {
"major_gift_threshold": 25,
"mid_level_threshold": 25,
"at_risk_months": 1,
"lapsed_months": 1,
"needs_contact_days": 1,
"new_donor_window_days": 1,
"upgrade_potential_threshold_pct": 25,
"giving_trend_threshold_pct": 25,
"minimum_gifts_for_trend": 1
},
"cohorts": {
"upgrade_threshold_pct": 25,
"downgrade_threshold_pct": 25,
"maintained_tolerance_pct": 25
},
"acknowledgements": {
"enabled": true,
"stewardship_start_date": "2026-10-20",
"initial_backfill_days": 0,
"pending_after_days": 1,
"auto_email_can_acknowledge_default": true,
"allowed_sources": [
"<unknown>"
],
"stewardship_configured": true,
"source": "donations_acknowledged_at"
},
"filters": {
"default_group_by_household": true
},
"planning": {
"strategy_review_days": 1,
"qualification_stall_days": 1,
"severely_overdue_days": 1,
"annual_review_reminder_days": 1,
"qualification_template_version": 1,
"default_period": "calendar_year"
},
"relationship_provisioning": {
"policy_version": 1,
"enabled": true,
"default_giving_scope": "attributed_only",
"relationship_type_mappings": [
{
"key": "donor_advised_fund",
"core_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Core Relationship Type",
"vehicle_relationship_type": "Relationship Provisioning.Relationship Type Mappings.*.Vehicle Relationship Type",
"kind": "family_fund",
"decision": "auto_create"
}
]
},
"attribution": {
"policy_version": 1,
"soft_credit_types": {},
"relationship_follow_up": {
"enabled": true,
"due_days_after": 1,
"lookback_days": 1
},
"soft_credit_type_options": [
{
"key": "Example",
"name": "Example"
}
]
},
"reactivation": {
"allowed_actions": [
"<unknown>"
]
},
"interactions": {
"classification_version": 2,
"meaningful_channels": [
"Interactions.Meaningful Channels.*"
],
"meaningful_purposes": [
"Interactions.Meaningful Purposes.*"
],
"meaningful_outcomes": [
"completed"
],
"meaningful_directions": [
"inbound"
],
"meaningful_provider_purposes": [
"Interactions.Meaningful Provider Purposes.*"
],
"meaningful_keywords": [
"Interactions.Meaningful Keywords.*"
],
"meaningful_subject_markers": [
"meaningful"
],
"excluded_contact_purposes": [
"Interactions.Excluded Contact Purposes.*"
]
},
"suggestions": {
"enabled": true,
"playbook": "balanced",
"moments": {
"first_gift": "call",
"major_gift": "call",
"giving_anniversary": "call",
"reactivation": "call",
"sustainer_milestone": "call"
},
"scope": {
"dashboard": true,
"donor_record": true,
"work_queue": true,
"after_gift_entry": true
},
"guardrails": {
"touch_fatigue_cap_per_30_days": 1,
"respect_channel_consent": true,
"budget_aware_downgrade": true,
"channel_cooldown_days": 1
}
},
"digest": {
"enabled": true,
"frequency": "daily",
"weekday": "monday",
"recipients": [
"jane@example.org"
],
"include_anniversaries": true,
"include_unacknowledged_gifts": true,
"include_reactivation": true
},
"stewardship_setup": {
"required": true,
"today": "2026-10-20",
"timezone": "Example"
}
}
}{
"message": "Unauthorized",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}