What syncs
| Salesforce object | Pryzm record type | Direction |
|---|---|---|
| Account | Organization | Pull (bulk) and push (per record) |
| Contact | Person | Pull (bulk) and push (per record) |
| Opportunity | Pipeline entity | Pull (bulk) and push (per record) |
Prerequisites
- Your workspace has the Salesforce Integration product module enabled.
Salesforce user
Who completes OAuth needs:- API Enabled on their Salesforce profile.
- Permission to use the Pryzm connected app with at least Manage user data via APIs (
api) and Perform requests at any time (refresh_token,offline_access). Approve all scopes on the consent screen. - Read, Create, and Edit on Account, Contact, and Opportunity, including the fields you map. Sharing rules and field-level security must not block the records and fields you expect to sync.
Pryzm user
Whoever connects the integration, configures mapping, or syncs needs both integration rules and entity access:| Action | Integration rule | Default role |
|---|---|---|
| Connect, disconnect, configure mapping, bulk pull | integrations:manage | Workspace Admin |
| Push a single record to Salesforce | integrations:push | Admin or Editor |
Connecting
Install the Pryzm package
A Salesforce admin must install the Pryzm managed package in your production org before anyone connects the integration in Pryzm. Salesforce sandbox orgs are not supported yet.- Sign in to Salesforce as an admin.
- Open the install link: Install Pryzm package.
- Choose Install for Admins Only or Install for All Users, as your org policy requires.
- Complete the installer and confirm the package appears under Setup → Installed Packages.
Connect your org
- Open Settings → Integrations (or go to
/integrations). - Under Workspace Integrations, click Salesforce.
- On the Salesforce page, click Connect.
- Sign in to Salesforce and approve the requested permissions.
- When you return to Pryzm, the connection card should show Connected with your org name and username.
Configure mapping
Open Settings → Integrations → Salesforce, then Configure mapping. Mappings are directional: each object pair and each field pair defines which way data may flow.| Direction | Meaning |
|---|---|
| Bidirectional | Sync on pull and push (default). |
| Pull | Salesforce → Pryzm only (import). |
| Push | Pryzm → Salesforce only (export). |
Add the Pryzm_ID field
Before you sync, a Salesforce admin should add a custom field on each object you will sync:- In Salesforce Setup, create a custom field on Account, Contact, and Opportunity:
- Label:
Pryzm_ID - Type: Text, length 36 or greater (Pryzm record IDs are UUIDs)
- External ID: Enabled
- Unique: Enabled
- Label:
Pryzm_ID so every synced Account, Contact, and Opportunity stays linked across pulls and pushes. Without it, Pryzm cannot match records on later syncs and mapping validation will flag an error until the field is configured correctly.
You can open the in-app checklist anytime from the Salesforce integration page: Field mapping → Setup.
Objects
- Account → Organizations and Contact → People use the standard object pairs.
- Opportunity → Pipeline entity: choose where Salesforce Opportunities should sync. You can pick an existing pipeline entity or create one from the dialog (for example, Create pipeline from Salesforce stages).
- Set an object direction for each pair (bidirectional, pull, or push). Object direction limits which sync operations are allowed for that Salesforce object.
Fields
Map only the Salesforce fields your team actually uses in Pryzm. We do not recommend mapping every available Salesforce column — a smaller, intentional mapping keeps your Pryzm schema easier to maintain and avoids pulling unused or noisy data into records and reports. For Opportunities (pipeline entity), Organizations (Accounts), and Contacts (People), map each Pryzm attribute to a Salesforce field and set a field direction:- Bidirectional — value can flow both ways when you pull or push.
- Pull — Salesforce updates Pryzm on import; the field is not sent on push.
- Push — Pryzm updates Salesforce on export; the field is not applied on pull.
Pull data from Salesforce
After mapping is valid:- On the Salesforce integration page, use Pull from Salesforce under Sync data.
- Pryzm queues jobs in order: Accounts, Contacts, then Opportunities (shown as Organizations, People, and your pipeline entity in Pryzm). Progress appears per object type.
- Use History (or
/integrations/salesforce/jobs) to inspect past sync jobs and per-record results.
Push to Salesforce
Push updates a single Pryzm record to the linked Salesforce object.- Ensure the workspace is connected and mapping is complete (including a pipeline entity).
- Open the record in Pryzm (Organization, Person, or a record in your pipeline entity).
- Use Push to Salesforce in the record actions.
Troubleshooting
Missing or skipped field values
Pryzm does not fail an entire record just because one attribute could not sync. Values are dropped or skipped when:- The Pryzm attribute has no mapping to a Salesforce field.
- The mapping direction does not include the operation you ran (for example, a Push-only field is skipped on pull, and a Pull-only field is skipped on push).
- The mapping has a validation error (for example, incompatible types or a missing Salesforce field).
- The value cannot be coerced into the target type (picklist option mismatch, unsupported shape, blank where Salesforce requires a value).
- The Salesforce field is read-only but the mapping is set to Push or Bidirectional — change the direction to Pull or remove the mapping from push paths.
Sync history and field results
Use Sync data → History on the Salesforce integration page (or/integrations/salesforce/jobs) to debug bulk pulls and pushes.
- Open the job that ran (Accounts, Contacts, Opportunities).
- Review per-record outcomes on the job detail page.
- Expand a record row to see field results for which attributes synced and which were skipped.
Relationships on push
Pryzm does not auto-create related Salesforce records when you push. Lookup and relationship fields (for example, a Person’s organization or an Opportunity’s account) are only written when the related Pryzm record is already linked from a prior pull or push. If a relationship is missing in Salesforce after push, sync or push the parent record first, then push the child again.Related guides
- Records — People, Organizations, and pipeline entities in the records UI
- Pipelines and Campaigns — older pipeline setup guide (pre–records revamp)
- Settings — workspace integrations overview