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:

PurposeTechSalesforce
VolunteersContacts
SitesVolunteer Jobs
ShiftsVolunteer Shifts
Bookings (a volunteer on a shift)Volunteer Hours
Regions and areasRegion and Volunteer Area records, imported from Salesforce
Area coordinator assignmentsVolunteer 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:

SettingWhat it does
Enable Salesforce syncWhether this campaign is picked up by the sync job
Salesforce Campaign IDThe 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 NameA short label (for example "Acme 2026") used to tag records
Sync windowOptional 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).

Salesforce Sync settings for a campaign, with the sync switched on, the Salesforce Campaign ID, and the most recent sync runs
Settings > Salesforce Sync, with the last few sync runs beside it.

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:

  1. Create a Connected App in Salesforce and copy its Consumer Key and Consumer Secret.
  2. Enter them in PurposeTech and choose Production or Sandbox as the environment.
  3. 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.

The Sync Conflicts table listing records that could not sync, each with its record type, an Error status and the error message
Sync conflicts waiting for a decision. Resolve or Ignore takes each one out of the Error list.

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:

  1. Map your data. Match your Salesforce objects and fields to PurposeTech records.
  2. Connect. Create the Connected App and authorise it.
  3. Test in a sandbox. Run the sync against sandbox data first.
  4. 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

Signed-in customers can ask questions about the docs. Log in