Skip to main content

Embedding the Advocate Portal (Gainsight + Custom Components)

Embed the UserEvidence advocate portal inside your community or customer hub, and control which components appear to your advocates.

T
Written by Tom Aristone
Updated this week

Part 1: Set up the connection

1. Navigate to Gainsight > Integrations > Connectors

2. Add https://api.joinzealot.com/embed/overview as an API Connection

4. Click Learn More

5. Copy your Brand ID


Part 2: Add the query parameters

Query parameters tell the embed who the advocate is, which brand to load, and which components to display.

6. Add the following query parameters to your connection:

Parameter

Value

Required?

email

{{ user.email }}

✅ Yes

brandID

Paste the Brand ID you copied

✅ Yes

missions

true or false

Optional

rewards

true or false

Optional

leaderboard

true or false

Optional

levels

true or false

Optional

Which components show by default?

If you don't pass the component parameters, your embed shows Missions and Rewards. Leaderboard and Levels are off by default.

Component

What it shows

On by default?

Missions

Tasks for advocates (leave a review, join a reference call, etc.)

✅ Yes

Rewards

Rewards advocates can earn with points

✅ Yes

Leaderboard

Top advocates, ranked

❌ No

Levels

Advocate tiers (Bronze, Silver, Gold, etc.)

❌ No

Copy-paste recipes

Show everything

?email={{ user.email }}&brandID=YOUR_BRAND_ID&leaderboard=true&levels=true

Missions only — great for focused landing pages

?email={{ user.email }}&brandID=YOUR_BRAND_ID&rewards=false

Hide Rewards, show Leaderboard — great for public-facing pages

?email={{ user.email }}&brandID=YOUR_BRAND_ID&rewards=false&leaderboard=true

Gamification showcase — Leaderboard + Levels only

?email={{ user.email }}&brandID=YOUR_BRAND_ID&missions=false&rewards=false&leaderboard=true&levels=true

Part 3: Add the iFrame

7. Edit any page or add a new tab

8. Click Other

9. Click HTML widget

10. Paste the HTML script below:

<div id="widget-container"></div> <script src="https://static.customer-hub.northpass.com/widget-sdk/latest/index.umd.js"></script> <script> (async () => {   const sdk = new window.WidgetServiceSDK();   const result = await sdk.connectors.execute({     permalink: "zealot",     method: "GET"   });   const container = document.getElementById('widget-container');   if (result?.iframe && typeof result.iframe === 'string') {     container.innerHTML = result.iframe;   } else {     console.warn('Unexpected result format:', result);     container.textContent = 'Unable to display widget.';   } })(); </script>

11. Click Done

12. Click Publish


Quick tips

  • Components you don't mention stay at their default. Missions and Rewards stay on, Leaderboard and Levels stay off.

  • To show Leaderboard or Levels, you have to turn them on explicitly.

  • Spelling matters — use missions, rewards, leaderboard, levels.

  • Capitalization doesn't matter. Missions and missions work the same.

Troubleshooting

  • My Leaderboard isn't showing. It's off by default. Add &leaderboard=true to your query parameters.

  • I hid Missions but they're still there. Check your spelling — mission=false (missing the "s") won't work.

  • My embed shows the defaults even though I added parameters. Make sure the parameters are on the connection URL, not the page URL.


Need a hand?

Reach out to your UserEvidence CSM and we'll help you pick the right setup for your community.

Did this answer your question?