App Marketplace: Overview
Learn what the Partner Fleet App Marketplace is, how setup is organized, and the recommended sequence for configuring it.
The App Marketplace is a branded integrations marketplace for your customers — they
discover, install, and manage integrations, and you control what each user sees and can do
based on the account and user context your app passes in.
You deliver it to your users in one of two ways, chosen when you set up your marketplace:
- Embedded — rendered in an iframe inside your product, so users never leave your app.
- Gated — a standalone, full-page marketplace at its own domain, reachable only by your
signed-in users (protected by single sign-on).
You pick one delivery for your marketplace. Both share the same listings, branding, button
behavior, permissions, and integration data — they differ only in where the marketplace
renders and how a user gets in. (There's also the public marketplace — anonymous and
indexable — but that's a separate, open storefront, not part of the App Marketplace.)

Example: the App Marketplace embedded within a product (embedded delivery)
This article explains what the module is, who uses it, how it's organized in Partner Fleet,
and the recommended order to set it up. Every other article in this section builds on the
vocabulary and structure below.
Choose your delivery
Decide this first — it shapes how you connect the marketplace to your product.
| Embedded | Gated | |
|---|---|---|
| Where it renders | An iframe inside your product | A full page at its own domain |
| Who can reach it | Your signed-in users, inside your app | Your signed-in users, at its URL |
| How a user is identified | A JWT passed to the iframe when it initializes | A SAML SSO redirect before the page loads |
| What you integrate | Embed script + JWT SSO | Point a domain at it + wire SSO (no embed script) |
| Best when | You want the marketplace inside a page of your app | You want a standalone, linkable destination behind your login |
The rest of this section applies to whichever delivery you choose unless an article is
labeled for a specific delivery. For the embedded path, see Embed Script Implementation;
for the gated path, see Gated Marketplace: SSO & Setup.
Who uses it
- Your end users browse the marketplace — embedded in your app or at its own URL — see
integrations relevant to their account, and install or manage them. - Your admin team configures the experience in Partner Fleet — delivery, branding, which
listings appear, button behavior, and who's allowed to install what. - Your engineering team handles the technical connection: authenticating users (JWT SSO, or
SAML for gated) and either embedding the marketplace (embed script) or pointing a
domain at the gated store, plus syncing integration status (embed script, JWT, or the
Core API).
How Partner Fleet organizes the App Marketplace
In the Partner Fleet admin, the App Marketplace has its own left-hand sidebar with four
areas:
| Area | What it's for |
|---|---|
| Activity | Insights into how customers are adopting your integrations — health, trends, top partners and accounts, and a filterable detail table with CSV export. |
| Customer Accounts | The list of customer accounts on your marketplace, each account's detail page (view/edit fields, users, and attached integrations), and the Audit Log. |
| Manage | The configuration tabs where you set up the marketplace itself (see below). |
| Developer | Technical setup — Developer Settings (delivery, SSO, domains, embed script) and Test Tools. |
The "Manage" tabs
Under Manage you'll find the configuration tabs, in this order:
- Appearance — branding, layout, user-facing filters, categories, languages.
- Listings — choose which of your listings appear in the App Marketplace.
- Listing Configuration — set each listing's integration type and override its button
destinations, status mappings, and access rules. - Buttons & Actions — the default mapping of integration status → buttons and
destinations, applied to every listing. - Permissions — who can install integrations, gated by account and user properties.
- Audience Filtering — which audiences can see which listings.
These tabs apply the same way whichever delivery you chose.
Some tabs are governed by feature flags on your account. If a tab described here isn't
visible, contact your Partner Fleet representative.
How the setup connects to your product
How the marketplace ties to your app depends on your delivery.
Embedded — three connections, all set up in the Developer area:
- Authentication (JWT SSO). Your backend issues a short-lived signed JWT identifying the
current user and their account. This is how the marketplace knows who's viewing it. - Embed (embed script). A small script renders the marketplace in an iframe inside your
product. - Integration status & account data. The marketplace needs each integration's status
(e.g. active, pending, error) and, optionally, account details.
Gated — two connections:
- A domain. You point a domain (DNS/CNAME) at the gated store.
- Authentication (SSO gate). Every request is gated: a logged-out visitor is redirected to
your SSO (your SAML identity provider), authenticated, and
returned to the page they asked for. There's no embed script and nopostMessage. See
Gated Marketplace: SSO & Setup.
How integration status and account data get in
There are three ways to feed status and account data into the marketplace. Which apply
depends on your delivery:
| Method | Direction | Applies to | Scope |
|---|---|---|---|
Embed script integrations array | Client-side, at iframe init | Embedded | Per user, per listing |
| SSO claims | In the SSO token (embedded) or SAML assertion (gated) | Either delivery | User-scoped (the signed-in user + their account) |
| Core API (Admin API v2) | Server-to-server | Either delivery | Account-centric (any account, any listing) |
The embed script's integrations array is an embedded feature. For a gated marketplace,
drive integration status from your backend via the Core API (documented in the APIs &
Webhooks section). The signed-in user's account is upserted from the SSO token (embedded JWT) or SAML assertion (gated).
Integration status values
Integration status is one of: (none), active, pending, error, disabled.
Buttons and behavior for each status are configured on the Buttons & Actions tab (with
per-listing overrides on Listing Configuration). Status values are identical across
deliveries.
Account-level vs. user-level integrations
Each listing has an integration type, set on Listing Configuration:
- Account-level — the integration is turned on once for the whole account; every user in
that account sees the same status. - User-level — each user installs the integration individually; status is tracked per user.
See User-level vs. account-level integrations for how this affects status, permissions, and
the ways status is passed in. (This distinction is the same for embedded and gated.)
Recommended setup sequence
Steps 1–7 are the same whichever delivery you chose. Step 8 is where the paths diverge.
- Developer Settings — choose your delivery (Embedded or Gated), and set up
authentication: your JWT identity provider (shared secret), plus — for gated — your standalone SAML provider (IdP SSO target URL + certificate). (The gated delivery
picker is revealed with a URL parameter today — see Gated Marketplace: SSO & Setup.) - Test Tools — generate and decode test tokens to confirm your JWT is valid.
- Appearance — brand the marketplace.
- Listings — add the listings that should appear.
- Buttons & Actions — set the default status → button behavior.
- Permissions — set who can install.
- Audience Filtering — set who sees what, and Listing Configuration — set each
listing's integration type and any per-listing overrides. - Connect it to your product:
- Embedded — add the embed script and wire up JWT SSO in your product. See Embed
Script Implementation and JWT SSO Implementation. - Gated — point your domain at the store and wire up SAML SSO. See Gated Marketplace: SSO & Setup.
- Embedded — add the embed script and wire up JWT SSO in your product. See Embed
- (Optional) Core API — if you manage accounts or integration status from your backend,
create an API key under Advanced → API Keys and integrate. (For gated, this is the primary
way to sync status.)
Next steps
- Deciding how to deliver it? Re-read Choose your delivery above.
- New to the technical side? Start with the Engineering Readiness Brief for a scoped
effort estimate (it covers both deliveries). - Building embedded? See JWT SSO Implementation and Embed Script Implementation.
- Building gated? See Gated Marketplace: SSO & Setup.
- Managing accounts or status from your backend? See the Core API articles.
Updated about 9 hours ago

