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/:
| Endpoint | What it returns |
|---|---|
GET /dashboard | Aggregated counts across the partner's tenants: members, transactions, redemptions, campaigns, evidence submissions, cashback disbursements, gift cards. |
GET /trends | Daily time-series for the same KPIs over a configurable date range. |
GET /tenants | One row per tenant with its current KPIs. |
GET /tenants/{id} | Detailed view of a single tenant. |
GET /members | Cross-tenant member list (read-only, scoped to partner's tenants). |
GET /transactions | Cross-tenant transaction list. |
GET /evidence | Cross-tenant evidence-submission list. |
GET /budgets | Cross-tenant budget status per campaign. |
GET /export | CSV 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
- Log into the partner portal with your API key.
- 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_idclaim 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
tenantIdparameter for a tenant you don't own — the API filters it out. - Permission:
Pages.Partners.ManageTenants.