Help Center
How can we help? 👋

Salesforce

Everything you need to know to integrate Salesforce with Tribe

This guide is for your Salesforce administrator. It covers everything that must be set up in your Salesforce org before the Tribe integration can be activated. Setup takes roughly 30 minutes.

When a prospect completes onboarding in Tribe and gives marketing consent, Tribe creates or updates a Lead in your Salesforce org. Tribe never creates fields or changes your Salesforce configuration — everything below is a one-time manual setup on your side.

 

How the sync behaves

  • Leads are matched by email address (converted Leads are never touched; if multiple Leads share an email, the most recently modified one is updated).
  • FirstName/LastName are only filled when currently empty in Salesforce — your existing data wins.
  • EmailCompany and tribe_signup_date__c are written on creation only. The Company field is filled with your organisation's name as it appears in Tribe — this is informational only and has no effect on matching or on your Salesforce configuration.
  • All other tribe_* fields are always updated to the latest Tribe values — Tribe is the source of truth for those.
  • Only prospects who gave marketing consent are ever synced.
 

1. Create a dedicated integration user

Create a user for the integration (e.g. "Tribe Integration"). Requirements:

  • API Enabled permission (profile or permission set)
  • Read, Create and Edit on the Lead object
  • Field-level security: visible + editable access to all tribe_* custom fields you create in step 3

A dedicated user keeps Tribe's changes auditable and lets you restrict or revoke access independently.

 

2. Create an External Client App

Salesforce is phasing out Connected Apps — new orgs can no longer create them by default. The current equivalent is an External Client App, and the integration works identically with either. If your org still has an existing Connected App set up for Tribe, it keeps working; see the note at the end of this section.

Setup → External Client App Manager → New External Client App:

  1. Fill in the basics (name e.g. "Tribe Integration", your email). Distribution State: Local.
  1. Enable OAuth Settings. The callback URL is not used by this integration — a placeholder like https://login.salesforce.com/services/oauth2/callback is fine.
  1. OAuth scope: Manage user data via APIs (api).
  1. Under the OAuth settings' flow enablement, check Enable Client Credentials Flow and save.
  1. Open the app's Policies → Edit → OAuth Policies:
      • Under Client Credentials Flow, set Run As to the integration user from step 1. This is required — without it, token requests fail.
      • Restrict Permitted Users so only the integration user's profile can use the app (recommended).

⏱ Allow a few minutes (typically 2–10) after creating or editing the app before testing the connection — Salesforce needs time to propagate it. A test that fails immediately after setup may simply be too early.

 

Credentials to share with Tribe (entered in Tribe's CRM settings screen):

Tribe settings field
Where to find it
Consumer Key
External Client App → Settings → OAuth Settings → Consumer Key and Secret
Consumer Secret
Same place (Salesforce asks for a verification code)
My Domain URL
Setup → My Domain, e.g. https://yourschool.my.salesforce.com
 

⚠️ The My Domain URL must be your org's own domain — login.salesforce.com or test.salesforce.com will not work with this authentication flow. For a sandbox, use the sandbox's My Domain URL (e.g. https://yourschool--uat.sandbox.my.salesforce.com). The URL does not need to relate to any name used in Tribe — it's simply the address of the Salesforce org the leads should go to, even if that org is shared by a larger group.

Using a classic Connected App instead: orgs that still allow it (Setup → App Manager → New Connected App) can use one — enable OAuth with the api scope, check Enable Client Credentials Flow, and set the Run As user under Manage → Edit Policies. The Consumer Key/Secret live under Manage Consumer Details. Everything else in this guide is identical.

 

3. Create the Lead custom fields

Setup → Object Manager → Lead → Fields & Relationships → New.

⚠️ Enter field names without the __c suffix. Salesforce appends __c to every custom field automatically. The tables below list the final API names (with __c) that Tribe writes to — when creating a field, type only the part before __c into the "Field Name" box. Typing the full API name gives the error "cannot contain two consecutive underscores". Example: type tribe_signup_date → Salesforce creates tribe_signup_date__c. ✅

Fixed fields:

Field Name to type
Resulting API name
Type
Purpose
tribe_integrated
tribe_integrated__c
Checkbox (default unchecked)
Marks Leads managed by Tribe
tribe_signup_date
tribe_signup_date__c
Date/Time
When the prospect signed up (written once)
tribe_last_active
tribe_last_active__c
Date/Time
Prospect's latest activity (kept up to date)

One field per onboarding question. Each onboarding question in Tribe has a "CRM Field Name". The Salesforce field name is derived from it as: lowercase, any run of non-alphanumeric characters becomes a single underscore, leading/trailing underscores removed, prefixed with tribe_, truncated to 40 characters. Examples:

CRM Field Name in Tribe
Field Name to type
Resulting API name
country_of_residency
tribe_country_of_residency
tribe_country_of_residency__c
Child Age!
tribe_child_age
tribe_child_age__c

Tribe will provide the exact field list for your environment. Recommended field types per question type:

Tribe question type
Salesforce field type
Single-select
Picklist — values must match the Tribe answer options exactly
Multi-select
Multi-Select Picklist — values must match the Tribe answer options exactly
Yes/No
Checkbox
Number
Number
Date
Date
Text / Text area
Text (255) / Text Area

Don't forget field-level security for the integration user on every field.

 

4. Linking Tribe

In Tribe's admin → Integrations, select Salesforce, enter the three credentials and press Test connection. A successful test confirms the app, the Client Credentials flow, the run-as user's API access and Lead visibility. Then enable the sync.

If the test fails, check in this order:

  1. Did you wait a few minutes after creating/editing the app?
  1. Is Enable Client Credentials Flow checked in the app's OAuth settings?
  1. Is the Run As user set under the app's OAuth policies?
  1. Is the My Domain URL exactly your org's URL (starts with https://, no trailing path, not login.salesforce.com)?
  1. Were the Consumer Key and Secret copied completely (the key is ~85 characters)?
  1. Does the integration user have API Enabled and read access to Lead?
 

5. Things that can block writes

  • Restricted picklists: if a picklist is restricted and its values don't exactly match Tribe's answer options, the whole write fails. Either keep values in sync or uncheck "Restrict picklist to the values defined in the value set".
  • Duplicate rules: a blocking duplicate rule on Lead can reject Tribe's Lead creation. Consider excluding the integration user from blocking rules (alert-only is fine).
  • Validation rules on Lead apply to Tribe's writes like any other.
  • Fields that don't exist yet are simply skipped (Tribe logs a warning) — the rest of the data still syncs. Once you create the missing field, it fills on the prospect's next activity.
 

6. Optional: map tribe_ values onto your own fields

Tribe only ever writes to tribe_* fields (plus FirstName/LastName when empty). If you want the data in your own existing Lead fields, create a record-triggered Flow on Lead that copies tribe_* values into your fields whenever they change — that way your own data is never overwritten by the integration directly.