Campaign Object Mapping

This document details the comprehensive mapping between Neon CRM campaign objects and WeGive campaign records, including statistics, tracking, and synchronization behavior.

Object Overview

Neon Campaign Object

Represents fundraising campaigns in Neon CRM including goals, statistics, and web integration features.

WeGive Campaign Object

Represents fundraising campaigns in WeGive including goals, tracking, and donation collection features.

Core Campaign Mapping

WeGive Campaign to Neon Campaign

Basic Information

WeGive FieldNeon FieldData TypeDirectionRequiredTransformation
idCorrelation IDUUID/String-NoStored for tracking
namenameStringBidirectionalYesDirect mapping
descriptionCampaign descriptionTextExportNoLimited support
statusstatusStringBidirectionalNoActive/Inactive mapping

Timeline Information

WeGive FieldNeon FieldData TypeDirectionRequiredTransformation
start_datestartDateDateBidirectionalNoDate formatting
expirationendDateDateBidirectionalNoDate formatting
created_atCreation dateDateTimeExportNoISO 8601 format
updated_atLast modifiedDateTimeExportNoISO 8601 format

Financial Goals

WeGive FieldNeon FieldData TypeDirectionRequiredTransformation
goalgoalDecimalBidirectionalNoDirect mapping

Web Integration

WeGive FieldNeon FieldData TypeDirectionRequiredTransformation
slugcampaignPageUrlStringExportNoURL generation
slugdonationFormUrlStringExportNoURL generation

Statistics (Import Only)

WeGive FieldNeon FieldData TypeDirectionRequiredTransformation
total_donatedstatistics.donationAmountDecimalImport OnlyNoDirect mapping
number_of_donationsstatistics.donationCountIntegerImport OnlyNoDirect mapping
total_registration_collectedstatistics.eventRegistrationAmountDecimalImport OnlyNoEvent statistics
number_of_registrationsstatistics.eventRegistrationCountIntegerImport OnlyNoEvent statistics
total_pledgedstatistics.pledgeAmountDecimalImport OnlyNoPledge statistics
number_of_pledgesstatistics.pledgeCountIntegerImport OnlyNoPledge statistics
grand_totalstatistics.grandTotalDecimalImport OnlyNoCombined statistics

Integration Fields

WeGive FieldNeon FieldData TypeDirectionRequiredTransformation
neon_ididIntegerCorrelationNoCampaign reference

URL Generation

Campaign URLs

WeGive automatically generates campaign URLs for Neon CRM:

Campaign Page URL

https://app.wegive.com/{organization_slug}/campaigns/{campaign_slug}

Donation Form URL

https://app.wegive.com/{organization_slug}/campaigns/{campaign_slug}/give

URL Components

  • Organization Slug: WeGive organization identifier
  • Campaign Slug: WeGive campaign slug/identifier
  • Protocol: Always HTTPS for security

Status Mapping

Campaign Status Values

WeGive StatusNeon StatusDescription
Active (not deleted)“ACTIVE”Campaign is currently active
Deleted (deleted_at is not null)“INACTIVE”Campaign has been deactivated

Status Synchronization

  • WeGive → Neon: Deleted campaigns marked as INACTIVE
  • Neon → WeGive: INACTIVE campaigns skipped during import
  • Default: New campaigns default to ACTIVE status

Campaign Statistics

Statistics Import from Neon CRM

Campaign statistics are imported from Neon CRM as read-only data:

Financial Statistics

  • Donation Amount: Total amount donated to campaign
  • Donation Count: Number of donations made to campaign
  • Pledge Amount: Total amount pledged to campaign
  • Pledge Count: Number of pledges made to campaign
  • Grand Total: Combined total of all campaign activity

Event Statistics (when applicable)

  • Event Registration Amount: Total registration fees collected
  • Event Registration Count: Number of event registrations
  • Combined Metrics: Events integrated with campaign tracking

Statistics Structure in Neon

{
  "statistics": {
    "donationAmount": 25000.00,
    "donationCount": 150,
    "eventRegistrationAmount": 5000.00,
    "eventRegistrationCount": 25,
    "grandTotal": 30000.00,
    "pledgeAmount": 10000.00,
    "pledgeCount": 20
  }
}

Complete Campaign Structure

Full Neon Campaign Object

{
  "id": "789",
  "name": "Annual Fundraiser 2024",
  "status": "ACTIVE",
  "startDate": "2024-01-01",
  "endDate": "2024-12-31",
  "goal": 100000.00,
  "campaignPageUrl": "https://app.wegive.com/example-org/campaigns/annual-fundraiser-2024",
  "donationFormUrl": "https://app.wegive.com/example-org/campaigns/annual-fundraiser-2024/give",
  "statistics": {
    "donationAmount": 25000.00,
    "donationCount": 150,
    "eventRegistrationAmount": 5000.00,
    "eventRegistrationCount": 25,
    "grandTotal": 30000.00,
    "pledgeAmount": 10000.00,
    "pledgeCount": 20
  }
}

Data Transformations

Date Formatting

  • WeGive Format: ISO 8601 datetime
  • Neon Format: Date only (YYYY-MM-DD)
  • Conversion: Date portion extracted from datetime
  • Timezone: Converted to organization’s timezone

URL Generation Logic

// Campaign page URL generation
const campaignPageUrl = `https://app.wegive.com/${organization.slug}/campaigns/${campaign.slug}`;

// Donation form URL generation  
const donationFormUrl = `https://app.wegive.com/${organization.slug}/campaigns/${campaign.slug}/give`;

Status Mapping Logic

// WeGive to Neon status mapping
const neonStatus = campaign.deleted_at ? 'INACTIVE' : 'ACTIVE';

// Neon to WeGive status mapping
if (neonCampaign.status === 'INACTIVE') {
  // Skip inactive campaigns during import
  continue;
}

Custom Field Mapping

Default Campaign Mappings

The integration includes pre-configured mappings:

Integration PathWeGive PathPurposeLevel
endDateexpirationCampaign end dateBidirectional
goalgoalFundraising goalBidirectional
namenameCampaign nameBidirectional
startDatestart_dateCampaign start dateBidirectional
statistics.donationAmounttotal_donatedTotal donationsImport only
statistics.donationCountnumber_of_donationsDonation countImport only
statistics.eventRegistrationAmounttotal_registration_collectedEvent revenueImport only
statistics.eventRegistrationCountnumber_of_registrationsRegistration countImport only
statistics.grandTotaltotal_donatedGrand totalImport only

Adding Custom Campaign Mappings

Organizations can add custom campaign field mappings:

{
  "integration": "CAMPAIGN",
  "integration_path": "customField.value",
  "wegive_path": "custom_field_name",
  "crm": "NEON",
  "level": "bidirectional"
}

Synchronization Behavior

Campaign Creation

  1. Name Validation: Ensures campaign has valid name
  2. URL Generation: Automatically generates campaign and donation URLs
  3. Status Setting: Sets appropriate active status
  4. Goal Setting: Maps financial goals if specified

Campaign Updates

  1. Existing Check: Uses neon_id to identify existing campaigns
  2. Field Updates: Updates modifiable fields
  3. URL Updates: Updates URLs if organization or campaign slug changes
  4. Status Changes: Handles activation/deactivation

Import from Neon CRM

  1. Active Filter: Only imports ACTIVE campaigns
  2. Campaign Creation: Creates new WeGive campaigns
  3. Statistics Import: Imports read-only statistics data
  4. Correlation Tracking: Stores Neon campaign ID

Campaign-Donation Relationship

Donation Association

When donations are associated with campaigns:

  1. Campaign Sync First: Ensures campaign exists in Neon CRM before donation
  2. Campaign Reference: Donations include campaign ID reference
  3. Statistics Update: Campaign statistics automatically updated by Neon CRM
  4. URL Integration: Donation URLs reference campaign structure

Campaign Validation

Before creating donations with campaign association:

  • Campaign must exist in both systems
  • Campaign must be in ACTIVE status
  • Campaign correlation IDs must be established

Error Handling

Validation Errors

  • Missing Name: Campaign name is required
  • Invalid Dates: Start date must be before end date
  • Invalid Goal: Goal must be positive number
  • URL Generation: Organization slug must be valid

Resolution Strategies

  • Data Correction: Tools for correcting invalid campaign data
  • Duplicate Prevention: Name-based duplicate detection
  • Manual Review: Administrative interface for campaign conflicts
  • Retry Logic: Automatic retry for transient failures

Performance Considerations

Campaign Processing

  • Bulk Import: Efficient processing of multiple campaigns
  • Statistics Handling: Optimized statistics import and display
  • URL Generation: Efficient URL generation and validation
  • Memory Usage: Optimized memory usage for large campaign sets

API Optimization

  • Rate Limiting: Respectful API usage patterns
  • Caching: Smart caching of campaign data
  • Parallel Processing: Concurrent campaign processing where safe
  • Error Recovery: Graceful handling of partial failures

API Examples

Creating Campaign

POST /v2/campaigns
{
  "name": "Spring Fundraiser 2024",
  "status": "ACTIVE",
  "startDate": "2024-03-01",
  "endDate": "2024-05-31",
  "goal": 50000.00,
  "campaignPageUrl": "https://app.wegive.com/example-org/campaigns/spring-fundraiser-2024",
  "donationFormUrl": "https://app.wegive.com/example-org/campaigns/spring-fundraiser-2024/give"
}

Updating Campaign

PUT /v2/campaigns/789
{
  "goal": 75000.00,
  "endDate": "2024-06-30"
}

Getting Campaign with Statistics

GET /v2/campaigns/789

Response:

{
  "id": "789",
  "name": "Spring Fundraiser 2024",
  "status": "ACTIVE",
  "goal": 75000.00,
  "statistics": {
    "donationAmount": 35000.00,
    "donationCount": 200,
    "grandTotal": 35000.00
  }
}

Best Practices

Campaign Management

  • Clear Naming: Use descriptive, unique campaign names
  • Date Management: Set realistic start and end dates
  • Goal Setting: Set achievable but meaningful goals
  • Status Tracking: Regularly review and update campaign status

Integration Management

  • URL Consistency: Maintain consistent URL structures
  • Statistics Monitoring: Regularly review campaign statistics
  • Performance Tracking: Monitor campaign sync performance
  • Error Handling: Address campaign sync errors promptly

Data Quality

  • Name Uniqueness: Avoid duplicate campaign names
  • Date Validation: Ensure logical date relationships
  • Goal Tracking: Monitor goal progress and adjust as needed
  • Regular Cleanup: Archive or deactivate completed campaigns

Campaign Reporting

Available Metrics

  • Financial Performance: Track donations against goals
  • Participation Metrics: Monitor donor engagement
  • Time-based Analysis: Track performance over campaign duration
  • Comparative Analysis: Compare campaigns across time periods

Integration Benefits

  • Real-time Updates: Campaign statistics updated automatically
  • Cross-platform Visibility: Campaigns visible in both systems
  • Unified Reporting: Combined reporting across platforms
  • Performance Optimization: Data-driven campaign optimization

This comprehensive campaign mapping ensures effective fundraising campaign management and tracking between WeGive and Neon CRM while providing valuable insights for optimization.