Skip to content

Add DonorPerfect as vendor #9 #21

Description

@shivamlalakiya

DonorPerfect is a widely-used nonprofit fundraising CRM — a natural vendor #9 alongside CiviCRM (added in v0.4.0).

Follow the documented 6-file checklist in docs/adding-a-vendor.md. Register at Tier 3 (bootstrap — verify with real payloads), mirroring how Ellucian and CiviCRM were introduced.

Scope

  • src/schema/master.ts — add DONORPERFECT to SourceSystemSchema
  • src/utils/sourceSystem.ts + src/utils/driftCapture.ts — register slug + drift config
  • src/mappers/donorperfect.ts — Zod payload schema + mapDonorperfectToMaster (copy src/mappers/civicrm.ts)
  • src/mappers/resolve.ts + src/mappers/index.ts — wire the mapper
  • src/config/webhookRoutes.ts — Tier 3 + HMAC (DONORPERFECT_WEBHOOK_SECRET, x-donorperfect-signature)
  • samples/donorperfect-*.json + fixtures + unit/integration tests
  • npm run validate passes

Do not change the ConstituentEvent schema shape (see docs/schema-governance.md). The pattern is fully worked in the CiviCRM and Ellucian commits.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions