Skip to main content

UserEvidence Advocacy — Salesforce Admin Setup Guide

T
Written by Tom Aristone

Audience: Salesforce administrators setting up the UE Advocacy managed package after it has been installed.

This guide covers everything needed to stand up UE Advocacy in your org: granting access, placing the Lightning components, connecting your UserEvidence account, and wiring up the UserEvidence → Salesforce connection. No developer experience is required. If you can install a managed package, assign a permission set, and edit a Lightning page, you can finish this setup. Budget 45–60 minutes end to end.

💡 Two guides, two audiences. This is the admin setup guide. For a plain-language explanation of what the tool does and how sellers and program managers use it day to day, see the companion Managed Package User Guide.

💡 About the "Zealot" name. You may see zealot / joinzealot.com in a few field API names and endpoint URLs (for example the API host api2.joinzealot.com). That is the product's original name — UE Advocacy was previously called Zealot. The functionality is identical, and those API names cannot be renamed because the sync depends on the exact strings. Nothing for you to do; just don't be surprised by them.


1. Overview

UE Advocacy connects your Salesforce org to the UserEvidence advocacy platform so reference and advocacy activity is visible, actionable, and reportable inside Salesforce. Three things move between the two systems:

Part

Direction

How it works

Reference Management

In Salesforce

A Lightning panel on the Opportunity lets sellers request and track customer references without leaving Salesforce.

Advocacy writeback + advocate sync

UserEvidence → Salesforce

UserEvidence writes reference activity and advocate contacts into Salesforce by calling the package's own secure endpoints. This is the connection you set up in Step 4.6.

Data the panel sends

Salesforce → UserEvidence

When a seller submits a request, the panel calls UserEvidence server-side (behind the scenes, using your stored token) to create the reference.

The package supports two advocate journeys:

  • Reference flow — a seller needs a customer reference to help close a deal. They request or choose one from the Opportunity, and it moves through a fixed set of stages until it is completed.

  • Referral flow — an advocate refers a new prospect. UserEvidence creates a Lead with attribution, and when the seller converts it, the attribution carries onto the new Opportunity. Setup for this flow is optional — see Step 4.8.


2. Prerequisites

Before you begin, confirm the following:

  • Edition: Enterprise or higher.

  • Org settings: API Enabled, and the installing user must be allowed to install managed packages.

  • Admin permissions: a Salesforce admin with Customize Application and API Enabled.

  • Sandbox first: access to a sandbox. Always install and validate there first, then repeat in production.

  • UserEvidence API token: your org's token, used in Step 4.4. Your UserEvidence CSM provides it.

  • A plan for the Run-As user (Step 4.6) — ideally a dedicated Salesforce Integration user license (free, API-only).


3. Installing the package

Install into a sandbox first, complete the configuration below, verify it, then repeat the same steps in production.

  1. The current release is 1.15.0.Existing customers can upgrade in place with the same link — no uninstall needed.

  2. Install into the right org. The production link defaults to production. For a sandbox, use the sandbox link above, or log into the sandbox first. Beta versions can only be installed in a sandbox, not in production.

  3. Choose Install for All Users so the package is available to everyone who needs it. You still control who uses each piece through the permission sets you assign in the next step.

  4. If prompted, check "Yes, grant access to these third-party web sites."

  5. Click Install / Upgrade. Large installs finish by email — that is normal.


4. Post-install configuration

Complete these steps in order. The permission-set detail is expanded in Section 5.

4.1 Assign permission sets

Setup → Permission Sets, then for each set: Manage Assignments → Add Assignments → select users → Assign.

Permission set

Assign to

Grants

UE Advocacy Admin

Admins, program managers

Full access, the Configuration tab, and edit on the advocacy/config data.

UE Advocacy User

Sellers, CS

Day-to-day use of the panel and records within normal sharing; no Configuration tab.

UE Advocacy Integration

The Run-As user only (Step 4.6)

Least-privilege access for the UserEvidence → Salesforce connection. Do not assign it to people.

💡 The Integration set exists specifically for the connection's Run-As user. Assign it in Step 4.6, not to your everyday users.

4.2 Add the components to the Opportunity page

  1. Open any Opportunity → gear → Edit Page (Lightning App Builder).

  2. From the Components palette (under Custom - Managed), drag on:

    • Reference Management — the request/track panel.

    • UE Reference Trackers — the stacked per-request stage trackers.

    • UE Reference Matches (optional) — recommended advocates for the deal.

  3. Save → Activate, and assign the page (usually Assign as Org Default for Opportunity).

💡 The UE Advocacy record page ships preconfigured. Those records open with the stage bar and grouped fields, no action needed.

4.3 Add the reference fields to your Opportunity layout

The package cannot place fields on your standard Opportunity layout, so add them once to make the writeback visible:

  1. Setup → Object Manager → Opportunity → Page Layouts → open your layout.

  2. Add a Section (for example "UE Advocacy") and drag in the writeback fields: UE Advocacy Reference ID, Reference Completed By, UE Advocacy Reference Status, Reference Received Date. Optional: UE Opportunity UUID, the sync correlation id.

  3. Save.

💡 Using Dynamic Forms or an Opportunity record page (Flexipage)? Add the same fields there instead: Setup → Object Manager → Opportunity → Lightning Record Pages → edit the page → drag the fields onto the form → Save & Activate.

4.4 Connect your UserEvidence account (API token)

The UE Advocacy Configuration tab, visible to UE Advocacy Admin, stores your org's UserEvidence token and settings. It is backed by a protected custom setting, so the token is never displayed back once saved.

Two parts: mint the token in UserEvidence, then paste it into Salesforce.

4.4a Mint the token (in UserEvidence)

  1. Go to Integrations → Token Management → New token.

  2. Name it so you can identify it later — for example Salesforce Managed Package.

  3. Set Scope to Read and write.

  4. Set Integration source to Salesforce.

  5. Create token, then copy it. UserEvidence does not display it again — if you lose it, mint a new one.

⚠️ The scope must include write. When a seller submits a request, the panel writes to UserEvidence using this token. A read-only token still saves, still shows "API token is configured", and still lets the panel load contacts — it fails only when a rep tries to submit.

💡 Tokens don't expire. They stay valid until someone revokes them in Token Management. Revoking the token the package is using breaks the panel and the advocate sync.

💡 Can't see Token Management? Your UserEvidence CSM can mint the token for you.

4.4b Save the token (in Salesforce)

  1. Open the UE Advocacy Configuration tab → Connection.

  2. Paste the token and Save.

  3. Confirm the tab shows the connected state, "API token is configured."

Pasting a new value later simply rotates it.

💡 Sandbox and production each need their own token. Mint one per org in 4.4a and name them so you can tell them apart. The sandbox token does not carry over.

💡 Base URL stays locked to the UserEvidence production endpoint

(api2.joinzealot.com) — no action needed. Proactive matches is an optional toggle, off by default.

Reference actions. The same screen has a Reference actions dropdown controlling which buttons the Reference Management panel offers reps:

Setting

Panel shows

Automatic (follow UserEvidence) — default

Follows your brand's self-serve setting in UserEvidence, and offers both buttons when that setting is not available to the panel.

Request only

Request — the full request form, with the questions your brand configured.

Choose only

Choose — the shorter self-serve path.

Both Request and Choose

Both buttons, regardless of the UserEvidence setting.

⚠️ If self-serve references are turned off for your brand in UserEvidence, set this to "Request only." The panel cannot see that setting on its own yet, so leaving it on Automatic will still show Choose — and requests raised that way carry only the basic fields, not your configured form questions. This setting applies to both the Opportunity panel and the Reference Management action button.

4.5 Choose the fields to sync (Field Selection)

On the same Configuration console, the Field Selection tab is where you pick which Salesforce fields UserEvidence should sync, per model and direction.

  1. Open UE Advocacy Configuration → Field Selection.

  2. Pick a model (advocate / opportunity / reference request) and a direction (Read from or Write to Salesforce).

  3. Choose an object, search, and tick the fields to include. Save.

💡 The package only stores your picks. UserEvidence reads them and owns the mapping on its side. You are telling it which fields you want in play.

4.6 Set up the UserEvidence → Salesforce connection (ECA + Run-As user)

This is how UserEvidence securely writes reference activity and advocate contacts back into your org. It uses a packaged External Client App (ECA) — you never handle any keys or secrets. You enable the flow and nominate a user. Allow about 20 minutes, once per org, and once per sandbox you want connected.

💡 What "Run As" means: UserEvidence acts as a Salesforce user you nominate. Whatever that user can see and edit is exactly what UserEvidence can — nothing more.

4.6a Create the Run-As user

  • Setup → Users → New User.

  • License: Salesforce Integration · Profile: Minimum Access - API Only Integrations.

  • Name it clearly, for example UserEvidence Integration, Save, and make sure it is Active.

💡 This free, API-only license is Salesforce's purpose-built integration user. Nobody can log in as it through the UI, which is intended. An existing active, API-enabled user also works for a quick sandbox test, but a dedicated user is strongly recommended for production.

4.6b Give that user access

  • Assign the UE Advocacy Integration permission set to this user (Permission Sets → UE Advocacy Integration → Manage Assignments → Add Assignment).

  • Check that the Salesforce API Integration permission set license is turned on for this user first: user record → Permission Set License Assignments → Edit Assignments → tick Salesforce API Integration → Save. The Salesforce Integration license grants no data access on its own, and Salesforce will refuse the object permission below without it.

  • Also grant the user Read + View All Records on the Opportunity object, through their profile or a permission set you create. This step is required, and it cannot come from the packaged set: Salesforce does not allow a managed package to grant permissions on standard objects like Opportunity, so that grant has to be yours. An API-only user starts with no standard object access at all.

  • Enable the connection — Setup → Quick Find → External Client App Manager → open UE Advocacy (Type should read Packaged (Installed)) → Policies tab → Edit → expand OAuth Policies → under OAuth Flows and External Client App Enhancements, tick Enable Client Credentials Flow → in Run As (Username)** enter the username from the first step → Save.

    **Username NOT Name

💡 Use UE Advocacy Integration for the Run-As user, not Admin and not User. It is the least-privilege set built for exactly this.

View All Records, not just Read — and not Edit. If your Opportunity sharing model is Private, Read on its own lets the user see the object but none of the records. Reference requests are then written without a link to their deal and never appear on the Opportunity. Edit is not needed: the package updates its own Opportunity fields itself.

4.6c Enable the connection

  1. Setup → Quick Find → External Client App Manager.

  2. Open UE Advocacy (Type shows Packaged (Installed)).

  3. Policies tab → Edit → expand OAuth Policies.

  4. Under OAuth Flows and External Client App Enhancements, tick Enable Client Credentials Flow.

  5. In Run As (Username), enter the username of your Run-As user from 4.6a.

  6. Save. Leave the other policies as they are.

4.6d Send UserEvidence your domain

Paste your My Domain URL into your UserEvidence Integrations settings (find your My Domain URL under Setup → My Domain), for example https://yourcompany.my.salesforce.com. For a sandbox, send that sandbox's domain — it differs from production. UserEvidence confirms the connection from their side.

💡 That is the whole connection. No keys, no secrets, nothing to copy out of Salesforce.

4.7 Add the Contact fields and set up the advocate sync

UserEvidence pulls your advocate contacts into its platform, and it decides which contacts to pull from a packaged field on Contact: UE Advocate Status. There are two parts — surface the fields, then decide how contacts get flagged.

4.7a Add the Contact fields to your layout

  1. Setup → Object Manager → Contact → Page Layouts → open your layout, add a Section such as "UserEvidence" if you like, and drag in:

    • UE Advocate Status (UE_Advocate_Status__c) — the field you or your automation set. Keep it editable.

    • UE FanUser UUID (UE_FanUser_Uuid__c) — filled in by the package once a contact is synced. Set it read-only for users.

  2. Save.

💡 Using Dynamic Forms or a Contact record page (Flexipage)? Add the same two fields there: Setup → Object Manager → Contact → Lightning Record Pages → edit the page → drag the two fields onto the form → Save & Activate.

4.7b Flag the contacts to sync

You have two ways to do this. Pick one.

Option A — use the UE Advocate Status field (the default).

  • Set a contact's UE Advocate Status to Should Be Advocate to queue it for sync. The package fills in UE FanUser UUID and flips the status to Is Advocate once synced, so it is not sent twice. Disabled takes a contact out of scope.

  • Set it manually per contact, or drive it with your own automation, for example a Flow that flips it based on your criteria.

Option B — point us at your own field (Advocates tab).

Use this if you already track advocates on Contact, or you want the rule to live in Salesforce rather than in a Flow:

  1. Open UE Advocacy Configuration → Advocates.

  2. Move one or more fields into Marks an advocate. The list shows every checkbox and boolean formula field on Contact.

  3. If you pick more than one, choose whether a contact must match ALL of them or ANY of them.

  4. Save. UserEvidence checks for newly matching contacts about once an hour and adds them automatically. There is no sync button to press. You can change your selection any time.

💡 Rules more complex than a checkbox? Create a single formula field on Contact of type Checkbox that returns true when someone should be an advocate, then select it here. A formula can look at the parent Account, record types, multi-select picklists and so on, so an entire eligibility rule fits in one field. Formulas are also always up to date, so a newly qualifying contact is picked up with no extra work.

One tradeoff: formula fields are not indexed. If you have a very large number of contacts, a plain checkbox kept up to date by a Flow will sync noticeably faster than a formula.

Selecting nothing on the Advocates tab keeps Option A. Choosing fields here replaces the UE Advocate Status rule — contacts are then selected purely by your criteria.

⚠️ If a contact later stops matching your criteria, they are not removed from UserEvidence. They keep their UE FanUser UUID and stay as an advocate there. Take them out of scope in UserEvidence directly.

4.8 (Referral flow only) Configure referral attribution

Skip this unless you use the referral flow, where advocates submit leads. A few fields live in your org, not the package:

  1. Add the referral fields to Lead and Opportunity, and the Linked Lead lookup on UE Advocacy. Your CSM or developer has the exact field spec.

  2. Add the Advocate Referral value to the Lead Source picklist (Object Manager → Lead → Lead Source).

  3. Map Lead → Opportunity fields on conversion: Object Manager → Lead → Map Lead Fields, and map the referral fields to their Opportunity counterparts. Skipping this silently drops attribution on conversion.

4.9 Reports and dashboards

  • Reference KPIs: the UE Advocacy report folder and UE Advocacy Dashboard.

  • Referral KPIs: the UE Advocacy - Referrals folder (R-1…R-10) and Advocate Referral Performance dashboard.

  • Build your own: use the Opportunities with UE Advocacies report type (Reports → New Report).


5. Permission sets

Earlier versions of the package shipped without permission sets, and you may see older notes to that effect. The current package ships three permission sets. Grant access with these rather than editing profiles by hand:

Permission set

Who gets it

In one line

UE Advocacy Admin

Admins / program managers

Everything, including the Configuration tab and edit on the advocacy/config data.

UE Advocacy User

Sellers / CS

Day-to-day use of the panel and records; no Configuration tab; most reference/referral fields read-only.

UE Advocacy Integration

The ECA Run-As user only

Least-privilege access for the UserEvidence → Salesforce connection.

Note on Opportunity access: the packaged sets grant the package's own objects and fields, but standard object access has to come from your org — Salesforce does not let a managed package grant permissions on standard objects such as Opportunity.

Your everyday users get theirs from their profile as usual. The Run-As user needs it explicitly, because an API-only user starts with no standard object access at all: give it Read + View All Records on Opportunity, with no Edit, as described in Step 4.6b.


6. Verifying the setup

Run through this smoke test after setup:

  1. Access — open the UE Advocacy app from the App Launcher; confirm the UE Advocacy tab and, for admins, the Configuration tab load.

  2. Panel — open a test Opportunity; confirm Reference Management renders and loads contacts, and the Reference Requests tracker appears below it.

  3. Token — the Configuration tab shows the connected state ("API token is configured").

  4. Connection — after Step 4.6, UserEvidence confirms they can authenticate and write a test record.

  5. Writeback — set a test UE Advocacy record to Completed, with a Reference ID, Advocate Email, and its Opportunity link; confirm the Opportunity's writeback fields populate and the request shows in the tracker.

    If the request saves but the tracker stays empty, the Run-As user is missing View All Records on Opportunity (Step 4.6b).

  6. Reports — open a report in the UE Advocacy folder and the dashboard; confirm they render.

  7. Referral — submit a test referral, convert the Lead, and confirm the referral fields copied to the Opportunity.

Moving from sandbox to production

Installing the package carries the components (objects, fields, Apex, components, reports), but not your per-org configuration. After installing in production, redo the config there:

Redo in production

Step

Install the same version (prod host)

3

Assign permission sets

4.1

Add components and reference fields to the Opportunity page/layout

4.2–4.3

Enter the production API token (the sandbox token does not carry over)

4.4

Redo Field Selection, or move it via change set

4.5

Set up the ECA connection and Run-As user, and send your production My Domain

4.6

Add UE Advocate Status to the Contact layout / automation

4.7

Redo the Advocates tab criteria, or move it via change set

4.7

Referral fields, Lead Source value, and Lead-field mapping

4.8

💡 A change set or metadata deploy can carry the layout, Lightning page, field, and Field Selection config from sandbox to prod. Permission-set assignments, the API token, and the ECA connection must still be done directly in production. Test data does not migrate.


7. Troubleshooting

Symptom

Likely cause / fix

Can't see the UE Advocacy tab or app

Permission set not assigned (Step 4.1), or the app is not visible to the profile.

Configuration tab not visible

It is intentionally limited to UE Advocacy Admin.

UserEvidence says they can't connect

Step 4.6c — is Enable Client Credentials Flow ticked and Run As filled in?

Connected, but no records appear

Step 4.6b — is UE Advocacy Integration assigned to the Run-As user?

Records appear, but Opportunities don't update

Step 4.6b — does the Run-As user have Read + View All Records on Opportunity? Read on its own is not enough when your Opportunity sharing model is Private.

Reference requests don't show in the tracker

The reference is not linked to its Opportunity. Most often Step 4.6b: without View All Records on Opportunity the link is dropped as the record is written. Otherwise UserEvidence is not sending the Opportunity id — coordinate with your CSM.

Advocate contacts aren't syncing

Step 4.7 — check the Advocates tab. If nothing is selected there, is UE Advocate Status set to Should Be Advocate? If fields are selected, do those contacts actually match them?

Connection stopped working suddenly

Is the Run-As user still Active? Deactivating it breaks the connection.

Referral attribution blank after conversion

Step 4.8 — the Map Lead Fields step was not configured, or the Advocate Referral Lead Source value is missing.

Reference requests are rejected with a permission error naming Opportunity

Expected on 1.15.0 and later. The package now refuses a request whose Opportunity it cannot read, rather than saving it with the link blank. Grant the Run-As user Read + View All Records on Opportunity (Step 4.6b).


8. Support

  • Setup, access, page layout, or configuration questions: your Salesforce admin (this guide).

  • Advocate or reference progress, tokens, or connection confirmation: your UserEvidence CSM.

  • How your team uses the tool day to day: see the companion Managed Package User Guide.


Appendix A — Reference stages

References move through a fixed, linear set of stages. Match these strings exactly in reports and automation:

Requested → Awaiting Advocate → Awaiting Prospect → Booked → Completed, plus Cancelled (terminal). Do not rely on any other status values.

Appendix B — Key fields for reporting

On the Opportunity, written back by the package:

Field

API name

Meaning

UE Advocacy Reference ID

UE_Advocacy_ReferenceID__c

Set when a reference completes for this Opportunity.

Reference Completed By

Reference_Completed_By__c

Advocate who completed the reference (name, else email).

UE Advocacy Reference Status

UE_Advocacy_ReferenceStatus__c

Mirrors the reference's current stage.

Reference Received Date

Reference_Received_Date__c

When the reference completed.

On Contact, for the advocate sync: UE Advocate Status (UE_Advocate_Status__c) and UE FanUser UUID (UE_FanUser_Uuid__c).

⚠️ Never rename an existing field API name. The sync depends on the exact strings and will break if they change.

Did this answer your question?