> ## Documentation Index
> Fetch the complete documentation index at: https://wegive.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration Options

> This guide provides detailed information about all available configuration options for the WeGive Blackbaud Raiser's Edge NXT integration.

# Configuration Options

This guide provides detailed information about all available configuration options for the WeGive Blackbaud Raiser's Edge NXT integration.

## Authentication Configuration

### OAuth2 Settings

**Client ID**

* **Description**: The OAuth2 client identifier from your Blackbaud Sky API application
* **Required**: Yes
* **Format**: String (UUID format)
* **Example**: `12345678-1234-1234-1234-123456789abc`

**Client Secret**

* **Description**: OAuth2 client secret (for confidential clients)
* **Required**: Conditional (based on application type)
* **Format**: String
* **Security**: Encrypted storage, never displayed after entry

**Subscription Key**

* **Description**: Blackbaud Sky API subscription key for API access
* **Required**: Yes
* **Format**: String (32 characters)
* **Location**: Found in your Blackbaud Developer account

**Environment ID**

* **Description**: Your Raiser's Edge NXT environment identifier
* **Required**: Yes
* **Format**: String (UUID format)
* **Location**: Administration > Application Settings in Raiser's Edge NXT

**Redirect URI**

* **Description**: OAuth2 callback URL for authentication completion
* **Required**: Yes (auto-configured)
* **Format**: URL
* **Default**: `https://app.wegive.com/oauth/blackbaud/callback`

## Synchronization Settings

### Pull Configuration (Blackbaud → WeGive)

**Pull Constituents**

* **Description**: Sync individual donor records from Blackbaud to WeGive
* **Default**: Enabled
* **Frequency**: Real-time and scheduled batch
* **Dependencies**: Required for donor management

**Pull Companies**

* **Description**: Sync corporate/organization records from Blackbaud
* **Default**: Enabled
* **Frequency**: Daily batch
* **Notes**: Includes business and foundation records

**Pull Households**

* **Description**: Sync household relationship structures from Blackbaud
* **Default**: Enabled
* **Frequency**: Daily batch
* **Notes**: Maintains family relationship hierarchies

**Pull Campaigns**

* **Description**: Sync fundraising campaigns and appeals from Blackbaud
* **Default**: Enabled
* **Frequency**: Daily batch
* **Dependencies**: Required for campaign attribution

**Pull Funds**

* **Description**: Sync fund and designation information from Blackbaud
* **Default**: Enabled
* **Frequency**: Daily batch
* **Dependencies**: Required for gift designation

**Pull Gifts**

* **Description**: Sync donation/gift records from Blackbaud to WeGive
* **Default**: Enabled
* **Frequency**: Real-time and hourly batch
* **Notes**: Includes soft credits and split gifts

**Pull Recurring Gifts**

* **Description**: Sync recurring donation schedules from Blackbaud
* **Default**: Enabled
* **Frequency**: Daily batch
* **Notes**: Includes installment and pledge information

**Pull Communication Lists**

* **Description**: Sync donor segments and communication preferences
* **Default**: Enabled
* **Frequency**: Daily batch
* **Notes**: Used for targeted campaigns and communications

### Push Configuration (WeGive → Blackbaud)

**Push Donors**

* **Description**: Create and update donor records in Blackbaud from WeGive
* **Default**: Enabled
* **Frequency**: Real-time
* **Notes**: Includes contact information and preferences

**Push Campaigns**

* **Description**: Create campaign records in Blackbaud from WeGive
* **Default**: Enabled
* **Frequency**: Real-time
* **Notes**: Links donations to proper campaigns

**Push Funds**

* **Description**: Create fund/designation records in Blackbaud from WeGive
* **Default**: Enabled
* **Frequency**: Real-time
* **Notes**: Maintains consistency across platforms

**Push Transactions**

* **Description**: Create gift records in Blackbaud from WeGive donations
* **Default**: Enabled
* **Frequency**: Real-time
* **Notes**: Primary integration function for donation processing

**Push Scheduled Donations**

* **Description**: Create recurring gift records in Blackbaud from WeGive
* **Default**: Enabled
* **Frequency**: Real-time
* **Notes**: Maintains recurring donation schedules

## Field Mapping Configuration

### Constituent Mapping Rules

**Import Level**

* **Description**: Controls which fields are synchronized during import
* **Options**: `all`, `basic`, `contact_only`
* **Default**: `all`

**Export Level**

* **Description**: Controls which fields are synchronized during export
* **Options**: `all`, `basic`, `contact_only`
* **Default**: `all`

**Custom Field Mappings**

* **Description**: Map custom fields between WeGive and Blackbaud
* **Format**: JSON object with field mapping rules
* **Example**:

```json theme={null}
{
  "wegive_custom_field": "blackbaud_custom_field",
  "donor_preference": "constituent_preference"
}
```

### Gift Mapping Rules

**Payment Method Mapping**

* **Description**: Map payment methods between systems
* **Default Mappings**:
  * Credit Card → Credit Card
  * Bank Transfer → Electronic Funds Transfer
  * Check → Check
  * Cash → Cash

**Gift Type Mapping**

* **Description**: Map gift types and categories
* **Default Mappings**:
  * Donation → Gift
  * Pledge Payment → Pledge Payment
  * Recurring → Recurring Gift Payment

**Revenue Recognition**

* **Description**: Control how gifts are recognized for revenue
* **Options**: `receipt_date`, `gift_date`, `custom`
* **Default**: `receipt_date`

## Advanced Settings

### API Configuration

**Rate Limiting**

* **Description**: Control API request frequency to respect Blackbaud limits
* **Default**: 50 requests per minute
* **Range**: 1-100 requests per minute
* **Notes**: Automatically adjusted based on API response headers

**Batch Size**

* **Description**: Number of records processed in each batch operation
* **Default**: 100 records
* **Range**: 10-500 records
* **Notes**: Larger batches are more efficient but may timeout

**Retry Configuration**

* **Description**: Automatic retry logic for failed API calls
* **Default**: 3 retries with exponential backoff
* **Options**: 1-5 retries
* **Backoff**: 2^retry\_count seconds

**Timeout Settings**

* **Description**: Request timeout for API calls
* **Default**: 30 seconds
* **Range**: 10-120 seconds
* **Notes**: Increase for large data operations

### Data Quality Settings

**Duplicate Detection**

* **Description**: Prevent duplicate record creation during sync
* **Default**: Enabled
* **Matching Criteria**: Email, name, and phone combination
* **Action**: Merge or skip duplicates

**Data Validation**

* **Description**: Validate data before synchronization
* **Default**: Enabled
* **Checks**: Required fields, format validation, length limits
* **Action**: Skip invalid records with error logging

**Historical Data Sync**

* **Description**: Sync historical data from before integration setup
* **Default**: Disabled
* **Options**: All data, date range, none
* **Notes**: Large datasets may require extended sync time

### Service Revenue Configuration

**Service Revenue Types**

* **Description**: Define which revenue types to include in synchronization
* **Default**: All standard types
* **Options**: Filter by specific revenue type IDs
* **Format**: Comma-separated list of type IDs

**Hidden Record Types**

* **Description**: Exclude specific record types from synchronization
* **Default**: None
* **Options**: Filter by record type IDs
* **Format**: Comma-separated list of type IDs

## Logging and Monitoring

### Audit Logging

**Sync Activity Logs**

* **Description**: Log all synchronization activities
* **Default**: Enabled
* **Retention**: 90 days
* **Details**: Record counts, timing, errors

**API Request Logs**

* **Description**: Log all API requests and responses
* **Default**: Enabled (errors only)
* **Options**: Off, errors only, all requests
* **Retention**: 30 days

**Data Change Logs**

* **Description**: Log all data modifications
* **Default**: Enabled
* **Details**: Before/after values, user attribution
* **Retention**: 1 year

### Error Handling

**Error Notifications**

* **Description**: Email notifications for sync errors
* **Default**: Enabled for critical errors
* **Recipients**: Integration administrators
* **Frequency**: Immediate for critical, daily digest for warnings

**Error Recovery**

* **Description**: Automatic recovery from temporary failures
* **Default**: Enabled
* **Actions**: Retry failed operations, queue for manual review
* **Escalation**: Manual intervention after 3 failed attempts

## Environment Settings

### Development Environment

**Sandbox Mode**

* **Description**: Use Blackbaud sandbox environment for testing
* **Default**: Disabled
* **Notes**: Requires separate OAuth2 application and credentials

**Debug Logging**

* **Description**: Enhanced logging for troubleshooting
* **Default**: Disabled
* **Notes**: May impact performance, use only for debugging

**Test Data Isolation**

* **Description**: Isolate test data from production
* **Default**: Enabled in sandbox mode
* **Notes**: Prevents test data from affecting live operations

### Production Environment

**High Availability**

* **Description**: Redundant processing for critical operations
* **Default**: Enabled
* **Notes**: Automatic failover for sync operations

**Performance Optimization**

* **Description**: Optimize sync performance for large datasets
* **Default**: Enabled
* **Features**: Connection pooling, batch optimization, caching

**Security Hardening**

* **Description**: Enhanced security measures for production
* **Default**: Enabled
* **Features**: Token encryption, secure communication, audit trails

## Best Practices

### Configuration Recommendations

1. **Start Conservative**: Begin with smaller batch sizes and lower API rates
2. **Monitor Performance**: Regularly review sync timing and error rates
3. **Test Changes**: Always test configuration changes in sandbox first
4. **Backup Settings**: Export configuration before making changes
5. **Document Customizations**: Maintain records of custom field mappings

### Security Considerations

1. **Credential Rotation**: Regularly rotate OAuth2 credentials
2. **Access Control**: Limit configuration access to necessary personnel
3. **Audit Reviews**: Regularly review access logs and sync activities
4. **Compliance**: Ensure configuration meets data protection requirements

### Performance Optimization

1. **Schedule Wisely**: Spread batch operations across off-peak hours
2. **Monitor Limits**: Stay within Blackbaud API rate limits
3. **Batch Efficiently**: Use appropriate batch sizes for data volume
4. **Cache Appropriately**: Leverage caching for frequently accessed data

## Troubleshooting

### Common Configuration Issues

**Authentication Failures**

* Check OAuth2 credentials are current
* Verify redirect URI matches exactly
* Confirm subscription key is valid

**Sync Performance Issues**

* Reduce batch size for large datasets
* Increase timeout settings for complex operations
* Check API rate limit settings

**Data Quality Problems**

* Enable duplicate detection
* Review field mapping configurations
* Validate data format requirements

### Getting Help

For configuration assistance:

* **WeGive Support**: [support@wegive.com](mailto:support@wegive.com)
* **Integration Documentation**: Review data mapping guides
* **Blackbaud Resources**: [Sky API Documentation](https://developer.blackbaud.com/skyapi/)
