Salesforce Integration
Sync between PurposeTech and your Salesforce CRM – included on the Growth and Enterprise plans.
Overview
PurposeTech connects to your organisation's own Salesforce instance to keep volunteer records, sites, shifts and bookings in step. Changes made in PurposeTech can be written back to Salesforce, and changes made in Salesforce come across to PurposeTech, so your CRM stays current without re-keying.
Salesforce is your tool. PurposeTech connects to it with a Salesforce Connected App that you control, using OAuth.
Salesforce integration is included on the Growth and Enterprise plans. Every Salesforce instance is different – custom fields, objects and workflows – so the integration is set up with our team to match yours rather than switched on with a single button.
What it syncs
The sync is built around a Salesforce Campaign and the Volunteers for Salesforce objects:
| PurposeTech | Salesforce |
|---|---|
| Volunteers | Contacts |
| Sites | Volunteer Jobs |
| Shifts | Volunteer Shifts |
| Bookings (a volunteer on a shift) | Volunteer Hours |
| Regions and areas | Region and Volunteer Area records, imported from Salesforce |
| Area coordinator assignments | Volunteer AC records |
Duplicate Contacts that are merged in Salesforce are picked up as merges rather than creating a second volunteer.
Sync is incremental. Each run looks at records changed since the last one, so it stays quick for campaigns with thousands of volunteers.
How it runs
Sync runs automatically in the background, about every four minutes. Each run works through regions, areas, sites, shifts, volunteers, bookings and coordinator assignments in turn. If one step fails, the steps after it still run, and the failure is recorded.
Each campaign has its own sync settings. An Owner opens Settings > Salesforce Sync (under This Campaign) to set:
| Setting | What it does |
|---|---|
| Enable Salesforce sync | Whether this campaign is picked up by the sync job |
| Salesforce Campaign ID | The 15 or 18 character ID of the Salesforce campaign this PurposeTech campaign syncs with. Sites can sit on that campaign or on sub-campaigns up to four levels below it |
| Salesforce Campaign Name | A short label (for example "Acme 2026") used to tag records |
| Sync window | Optional start and end dates. Only shifts and area coordinator assignments inside the window are synced |
| One-way sync (Salesforce to PurposeTech) | When on, changes only flow from Salesforce into PurposeTech. When off, PurposeTech also writes changes back |
The page also shows recent sync runs with their status (queued, running, completed, failed or cancelled).

A volunteer's side panel shows their sync status, including when syncing for that record has been paused in one direction.
Connecting your Salesforce
Owners connect the account from Settings > Campaign API Keys, in the Salesforce card:
- Create a Connected App in Salesforce and copy its Consumer Key and Consumer Secret.
- Enter them in PurposeTech and choose Production or Sandbox as the environment.
- Save, then choose Connect to Salesforce and approve access when Salesforce asks. The card shows Connected once PurposeTech has a token.
The consumer secret is stored encrypted. Use Reconnect if the connection needs renewing.
Test against a Salesforce sandbox first, then switch the environment to production and connect again before you go live.
Sync conflicts
When a record cannot be synced – for example a required field is missing in Salesforce, or two records clash – it is logged as a conflict. Admins review them on the Sync page under Volunteers (also listed as Sync Conflicts under Settings).
The table shows the record type, name, email and the error message, and defaults to conflicts with status Error. Mark each one Resolved or Ignored once you have dealt with it. You can filter by status, record type and dates.

Why organisations use it
- No double data entry. Volunteers who register in PurposeTech appear in Salesforce.
- Reporting in your CRM. Bookings flow through as Volunteer Hours against the campaign.
- Sites and areas from Salesforce. If your sites and areas already live in Salesforce, they are imported rather than recreated.
- Your CRM stays the record. The one-way option keeps Salesforce as the master and PurposeTech as a read-from view.
Getting started
We work with your team to:
- Map your data. Match your Salesforce objects and fields to PurposeTech records.
- Connect. Create the Connected App and authorise it.
- Test in a sandbox. Run the sync against sandbox data first.
- Go live. Point the campaign at the production Salesforce campaign, switch sync on, and watch the first runs.
Interested in Salesforce integration? Talk to our team to discuss your setup. It's included on the Growth and Enterprise plans – see pricing.
Next steps
- Organisation Setup – tenant configuration
- User Management – manage admin users and roles