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