Saltar al contenido principal

Cross-Tenant Dashboard

The cross-tenant dashboard gives a partner a single view of every tenant they manage — aggregated KPIs, time-series trends, and quick drill-downs. It's the home screen of the partner portal.

When to use it

  • You want a one-glance overview of "how are my tenants doing this month".
  • You're presenting partner-level health to your own stakeholders.
  • You want to spot the tenant with anomalous activity (a spike, a drop) before they call you.

How it works

Authentication uses an API key → JWT exchange. The partner authenticates with an API key issued to their partner record; the platform exchanges it for a standard ABP JWT carrying a partner_id claim. From there, every request to /api/partner/portal/... is filtered server-side so that only the partner's owned tenants are visible.

The endpoints

The dashboard pulls from several controllers under /api/partner/portal/:

EndpointWhat it returns
GET /dashboardAggregated counts across the partner's tenants: members, transactions, redemptions, campaigns, evidence submissions, cashback disbursements, gift cards.
GET /trendsDaily time-series for the same KPIs over a configurable date range.
GET /tenantsOne row per tenant with its current KPIs.
GET /tenants/{id}Detailed view of a single tenant.
GET /membersCross-tenant member list (read-only, scoped to partner's tenants).
GET /transactionsCross-tenant transaction list.
GET /evidenceCross-tenant evidence-submission list.
GET /budgetsCross-tenant budget status per campaign.
GET /exportCSV exports of the above for offline analysis.

All endpoints are scoped via the IPartnerPortalHelper so cross-tenant queries never leak to tenants outside the partner's portfolio.

Step-by-step

Authenticate

  1. Log into the partner portal with your API key.
  2. The platform exchanges the key for a session JWT carrying your partner_id.

Read the dashboard

The home screen shows the aggregated counts and time-series for the last 30 days. Switch the date range to compare against a custom window.

Drill into a tenant

Click any tenant in the table to see per-tenant KPIs. From there, Impersonate lets you enter the tenant's admin to take action (see Partner impersonation).

Export

Use Export to download a CSV of any cross-tenant list — useful when reconciling against an external CRM or producing reports.

Limits and gotchas

  • Read-only at the partner scope. The portal lists data but doesn't edit it; for changes, impersonate the tenant.
  • The partner_id claim is mandatory. A user without it gets a 401 even with a valid JWT.
  • Cross-tenant filters are enforced server-side. You cannot pass a tenantId parameter for a tenant you don't own — the API filters it out.
  • Permission: Pages.Partners.ManageTenants.