Donation Sync Engine
Keeps donor and donation data in perfect sync between Pushpay and SiteStacker, automatically.

Overview
A large non-profit's giving data lived in Pushpay while its CRM lived in SiteStacker, and keeping the two in agreement was a manual, error-prone chore. Sole IT built adventures.tools: an integration engine that imports, matches and syncs donors and donations both ways, with de-duplication so records stay clean.
The challenge
Donations recorded in the giving platform had to be reflected accurately in the CRM, and donor records constantly drifted out of sync. Manual reconciliation was slow, and duplicate or mismatched accounts corrupted reporting.
What I built
- Built a PHP integration service (deployed on Laravel Forge) talking to both the Pushpay and SiteStacker APIs with OAuth token handling.
- Created a CSV import and matching pipeline that reconciles donors and de-duplicates accounts.
- Implemented two-way sync so donations and donor updates flow correctly between both systems.
- Added a reports dashboard and a safe deploy pipeline with a secret-leak guard.
Key features
Two-way sync
Donors and donations stay consistent across Pushpay and SiteStacker.
De-duplication
Account matching keeps records clean and reporting trustworthy.
CSV import pipeline
Bulk donor data imported, validated and reconciled automatically.
Secure by design
OAuth token handling and a deploy pipeline with secret-leak protection.
The outcome
Accurate donor records with no manual reconciliation
Clean, de-duplicated data for trustworthy reporting
A reliable, auditable sync running in production at adventures.tools
Have a project like this?
Let's build something that works and earns. First reply within a day.