Partner Portal — Complete Guide
Last updated: March 30, 2026
Partner Portal — Complete Guide
Board Game Librarian Partner Portal Version 1.0 — Last updated March 2026
Table of Contents
- Overview
- Getting Started
- Interface Layout
- Dashboard
- Games
- Widgets
- Themes
- Team Management
- Account Settings
- Billing Profile
- Invoices
- Feedback
- Notifications
- Audit Log
- FAQ and Troubleshooting
1. Overview
The Board Game Librarian Partner Portal is a self-service web interface for organisations that have embedded the Board Game Librarian rules assistant into their own websites or products. From here you can configure and monitor your widgets, browse game usage statistics, read individual chat logs, review user feedback, manage your team, and keep billing details up to date. A built-in audit log and in-app notification system round out the account management tools.
Access is invitation-only. If you need an account, contact support@boardgamelibrarian.ai.
Who is this portal for?
| Role | Typical user |
|---|---|
| Manager | Primary account holder — founder, product lead, or developer managing the integration |
| Viewer | Support agent, analyst, or read-only stakeholder |
2. Getting Started
2.1 How Access Works
Access to the Partner Portal is invitation-only. The process is:
- A Board Game Librarian admin creates your partner account and sends an invitation to the first manager.
- That manager can then invite additional team members (other managers and viewers) from within the portal.
- Invited members receive an email with a unique invite link, valid for 7 days.
You cannot self-register. If your invite link has expired, ask any manager on your team to resend it, or contact Board Game Librarian support.
2.2 Accepting an Invitation
When you receive an invitation email, click the link. You will be taken to the invite acceptance page at /partners/invite.
The page behaves differently depending on whether you already have a Board Game Librarian account:
New user (no existing account):
- Your email address is pre-filled and locked.
- Enter an optional username (display name).
- Enter and confirm a password (minimum 8 characters).
- Click Create account and accept invite.
Existing user (already has a BGL account):
- Your email is pre-filled and locked.
- Enter your existing password to confirm.
- Click Accept invitation.
After acceptance you are automatically redirected to the Dashboard.
Note: Invite links expire after 7 days. If your link is invalid or expired, you will see an "Invalid Invite" screen. Ask a team manager to resend the invitation.
2.3 Logging In
Navigate to /partners/login. Enter your email address and password, then click Sign in to Partner Portal.
The login process:
- Authenticates your credentials against the central user database.
- Verifies that your account is linked to a partner organisation.
- If both checks pass, sets a secure session cookie and redirects you to
/partners/dashboard.
If your account exists but is not linked to a partner, you will see: "This account is not linked to a partner. Please contact your administrator for access."
You can toggle password visibility with the eye icon in the password field.
2.4 First-Time Setup Checklist
After logging in for the first time, we recommend completing these steps:
- Review your Account settings (
/partners/account) — verify your partner name, contact email, and website URL. - Complete your Billing Profile (
/partners/billing) with company name, address, and tax information so invoices can be generated correctly. - Open your Widgets (
/partners/widgets) and copy the embed code for each widget you want to deploy. - Test each widget using the Live Test tab before going live on your website.
- Invite your team members from Team (
/partners/users) so colleagues can access the portal.
3. Interface Layout
3.1 Sidebar Navigation
The left sidebar is the primary navigation. It is always visible on desktop (≥768px) and accessible via the hamburger menu on mobile.
The sidebar is divided into four sections:
Unlabelled (top)
- Dashboard — overview of account activity
CONTENT
- Games — all games assigned to your widgets
- Widgets — manage and monitor your embeddable widgets
- Feedback — user feedback collected through widgets
SETTINGS
- Account — partner name, website, and contact email
- Billing — billing profile and payment information
- Invoices — invoice history with download links (badge shows pending count)
- Team — manage team members and roles
- My Themes — create and manage widget colour palettes
LOGS
- Audit Log — security log of all team actions
- Notifications — in-app notifications (badge shows unread count)
At the top of the sidebar you will see your partner name and your current plan tier badge (e.g., Starter, Growth, Pro, Enterprise).
At the bottom of the sidebar there is a Sign out link.
3.2 Top Header
The top header bar contains:
- A hamburger menu button (mobile only) to open the sidebar.
- A user dropdown (top-right) showing your display name or email. Clicking it opens a menu with links to Team and Sign out.
3.3 Impersonation Banner (Admin Only)
When a Board Game Librarian superadmin is viewing your portal via the admin impersonation feature, a yellow banner is displayed at the top of the page:
Admin viewing as [Partner Name]
This banner includes an Exit button that the admin uses to return to their own session. If you see this banner, it means an admin is actively reviewing your portal. This is a routine support operation.
4. Dashboard
After login, /partners/dashboard lands you on a quick-read summary of your account: question volumes, widget status, pending invoices, and your current plan — all at a glance before you dig into anything specific.
4.1 KPI Cards
Four summary cards appear at the top of the dashboard in a 2×2 grid (or 4-column row on wider screens):
| Card | Description |
|---|---|
| Active Widgets | Number of widgets currently set to active |
| Questions (30d) | Total questions asked across all your widgets in the last 30 days |
| Pending Invoices | Number of invoices awaiting payment |
| Current Plan | Your partner tier (Starter, Growth, Pro, Enterprise) |
4.2 Your Widgets Overview
Below the KPI cards, up to six of your widgets are shown as cards. Each widget card displays:
- Widget name and Active/Inactive status badge
- API key (masked by default — click the eye icon to preview)
- Number of games and questions in the last 30 days
- Tier 2 badge (if deep analysis is enabled) and language code
Clicking a widget card navigates to the full widget detail page.
A View all button in the section header takes you to the complete Widgets list.
4.3 Recent Questions
The "Recent Questions (7 days)" section shows up to 20 of the most recent questions asked through your widgets. Each row displays:
- The question text (truncated)
- The game name and widget name it was asked in
- Tier badges — T1 (Tier 1, fast answer) and/or T2 (Tier 2, deep analysis)
- Processing time in seconds
- The date and time of the question
Clicking the expand toggle (chevron or the speech bubble icon on each row) reveals the response preview for both Tier 1 and Tier 2 (where available), including confidence scores.
4.4 Export Data
A section at the bottom of the dashboard provides one-click CSV exports:
| Export | Coverage |
|---|---|
| Interactions (30d) | All Q&A interactions from the last 30 days |
| Feedback (90d) | All user feedback from the last 90 days |
| Sessions (30d) | Session-level data from the last 30 days |
Files are downloaded in CSV format, compatible with Microsoft Excel and Google Sheets.
5. Games
The Games page (/partners/games) shows all board games assigned to your widgets, across all widgets. It gives a read-only view with usage statistics per game.
5.1 Games Grid
Games are displayed as cards in a responsive grid (1 to 4 columns depending on screen size). Each game card shows:
- Game image (with a hover zoom effect and a featured badge if the game is marked as featured in any widget)
- Community rating (star icon, bottom-left of the image)
- Game name with year, player count, and play time
- A stats mini-grid showing:
- Total Q — total questions ever asked about this game
- This week — questions in the last 7 days
- PDFs — number of rulebooks uploaded
- An average confidence bar (green/amber/red) if the game has had interactions
- The widget name that the game belongs to (bottom-left)
5.2 Filtering and Sorting
Two filter controls are available at the top of the page:
Widget filter — a dropdown to restrict the view to games from a specific widget (default: All Widgets).
Sort order — three quick-sort buttons:
- Most Used — sorts by total questions (descending)
- Top Rated — sorts by community rating (descending)
- A–Z — alphabetical by name
A summary line shows the total question count and rulebook count across all displayed games.
5.3 Game Detail Sheet
Clicking the Details link or the eye icon on any game card (or clicking the game name itself) opens a slide-in detail panel from the right side of the screen. This panel shows:
- The game's cover image (large)
- Name, publication year, and a link to the game page
- Rating, player count, play time, and weight (complexity)
- A usage stats block showing total questions, last 7 days questions, unique sessions, average confidence bar, and average response time
- Full short description
- Categories (e.g., Fantasy, Strategy)
- Mechanics (e.g., Worker Placement, Deck Building)
- Rulebooks list — each rulebook shows its display name, page count, and language. Clicking a rulebook opens it in a new tab.
Close the panel by clicking the × button or clicking outside it.
6. Widgets
6.1 Widgets List Page
The Widgets page (/partners/widgets) lists all widgets configured for your partner account. Each widget is shown as a card with:
- Widget name and Active/Inactive badge
- Slug (the URL identifier, shown in monospace)
- Two stat tiles: games (number of games assigned) and questions (30d) (questions in the last 30 days)
- API key (masked by default) with a toggle to preview
- Footer row showing the Tier 2 badge (if enabled), the language code, and a Details link
Clicking any card navigates to the full Widget Detail page.
Note: Widgets are created and initially configured by the Board Game Librarian admin team. Partners cannot create new widgets from this page. To request a new widget, contact your account manager.
6.2 Widget Detail — General Tab
The General tab is the main configuration screen for a widget. It is divided into two cards: API Key and Widget Configuration.
API Key Card
The API Key is the secret credential your website uses to authenticate requests to the widget. It is masked by default (showing only the last 8 characters).
- Click the eye icon to reveal the full key.
- Click the copy icon to copy the key to your clipboard.
Note: Keep your API key confidential. Do not commit it to public source control.
Widget Configuration Card
This card shows all widget settings. Most settings are read-only and can only be changed by the Board Game Librarian admin team. The fields you can edit yourself are marked below.
| Field | Editable? | Description |
|---|---|---|
| Name | Yes | The display name of the widget (max 200 characters) |
| Slug | No | URL identifier, set at creation |
| Tier | No | The plan tier of this widget |
| Active | No | Whether the widget is live (controlled by admin) |
| Default Locale | Yes | Default language for the widget UI (e.g., en, it, de, fr, es, pt, ru, ja, pl, zh) |
| Allowed Domains | Yes | Comma-separated list of domains allowed to embed this widget (leave empty to allow all) |
| Tier 2 Enabled | No | Whether deep analysis (Tier 2) is available |
| Feedback Enabled | No | Whether users can submit feedback |
| Rate Limit / Min | No | Max questions per minute per session |
| Rate Limit / Day | No | Max questions per day per session |
| Max Questions / Session | No | Hard cap on questions per session |
| Session TTL (min) | No | Session expiry in minutes |
| Max Games | No | Maximum number of games that can be assigned |
| Branding Level | No | Controls how the BGL branding appears |
| Analytics Level | No | Controls the depth of statistics available (counts, base, full) |
After making changes to the editable fields, click Save to persist them. The button is disabled if no changes have been made.
Note: Visual styling (colours, backgrounds, typography) is controlled via the Themes system — see Section 7 and the Themes Tab.
6.3 Widget Detail — Games Tab
The Games tab shows all board games currently assigned to this specific widget in a sortable table.
Columns:
| Column | Description |
|---|---|
| (drag handle) | Drag row to reorder |
| # | Display order position |
| Game | Game name (click to open the detail sheet) |
| Game ID | Unique game identifier |
| Year | Publication year |
| Rating | Average community rating |
| PDFs | Number of rulebooks |
| Featured | Toggle to mark the game as featured (displayed prominently in the widget's game selector) |
Reordering Games
To change the display order of games in the widget's game selector, drag and drop rows using the grip handle on the left. The order is saved automatically when you drop. A "Saving..." indicator appears briefly while the change is persisted.
Toggling Featured
Click the Featured toggle switch next to any game to mark it as featured. Featured games appear at the top or are highlighted in the widget UI. Changes are saved automatically.
Note: Adding or removing games entirely must be done by the Board Game Librarian admin. Contact your account manager to add games to a widget.
6.4 Widget Detail — Stats Tab
The Stats tab provides analytics about your widget's usage. The data available depends on your widget's analytics_level setting:
| Analytics Level | Available Data |
|---|---|
counts | KPI cards only (today, last 7 days, last 30 days, all time) |
base | + tier/language/confidence distribution, per-game stats, feedback breakdown |
full | + weekly trend (12 weeks), top questions, session analytics, activity heatmap, response time distribution, source analysis |
KPI Cards (all levels)
Four cards at the top show question counts:
- Today — interactions received today
- Last 7 Days — interactions in the past week
- Last 30 Days — interactions in the past month
- All Time — lifetime total interactions
Note: Counts reflect Tier 1 interactions only (one per question). Tier 2 deep analysis follow-ups are not double-counted.
Base Analytics (analytics_level ≥ base)
When base analytics are available, the PartnerAnalytics component displays:
- Tier Distribution — bar chart showing the split between Tier 1 (fast) and Tier 2 (deep) responses in the last 30 days.
- Language Distribution — breakdown of detected user languages in questions (last 30 days, Tier 1 only).
- Confidence Distribution — split of responses by confidence level (
high,medium,low,unknown). - Per-Game Stats table — for each game (top 20 by question count, last 30 days):
- Total questions (Tier 1)
- Tier 2 count (questions that triggered deep analysis)
- Average confidence score
- Average processing time
- Unique sessions
- Feedback Breakdown — counts of each feedback type collected through this widget.
Full Analytics (analytics_level = full)
When full analytics are available, additional sections appear:
- Weekly Trend chart — 12-week bar chart of weekly question volume and average confidence.
- Top Questions — the 15 most recent questions in the last 30 days, showing question text, game, confidence scores, processing times, and whether Tier 2 was triggered.
- Session Analytics — total sessions and average questions per session (last 30 days).
- Activity Heatmap — a 7×24 grid showing interaction intensity by day of week and hour of day (last 90 days). Useful for understanding when your users are most active.
- Response Time Distribution — bar chart bucketing responses by latency:
<3s,3–7s,7–15s,15–30s,>30s. - Source Analysis — per-game breakdown of how many PDF sources vs. forum/community sources were cited in responses (last 30 days, top 10 games).
Click Refresh to reload the statistics manually. Stats are not auto-refreshed.
6.5 Widget Detail — Chat Logs Tab
The Chat Logs tab (titled "Interaction History") shows up to 100 of the most recent individual questions and answers processed by this widget.
Filters
Four filter controls are provided:
| Filter | Options |
|---|---|
| Game | Free-text search on the game name |
| Tier | All / T1 Only / Has T2 |
| Confidence | All / High / Medium / Low |
| Feedback | All / Has feedback / Positive / Negative |
Filters are applied client-side; no server request is needed. A count shows how many logs match the current filters.
Columns
| Column | Description |
|---|---|
| Time | Date and time (month, day, hour:minute) |
| Question | The question text (truncated with hover tooltip) |
| Game | The game the question was about |
| Tiers | T1 badge (always), T2 badge (if deep analysis was run) |
| T1 Conf | Tier 1 confidence: percentage + colour dot (green/amber/red) |
| T1 Time | Tier 1 processing time in seconds |
| T2 Conf | Tier 2 confidence (if available) |
| T2 Time | Tier 2 processing time (if available) |
| Feedback | Icons for thumbs up, thumbs down, star rating, or comment |
| (eye icon) | Opens the full chat dialog |
Viewing a Full Interaction
Click the eye icon on any row to open a modal dialog showing the full question-and-answer exchange in a chat bubble format. The dialog shows:
- The user's question (purple bubble, right-aligned)
- The Tier 1 response (dark bubble, left-aligned) with confidence level, processing time, and sources count
- The Tier 2 response (if present) in the same format
- Any feedback submitted for that interaction
Click outside the dialog or press Escape to close it.
Click Refresh to reload the log from the server.
6.6 Widget Detail — Embed Code Tab
The Embed Code tab provides ready-to-use code snippets for embedding the widget on your website. Two integration methods are offered.
Method 1: Direct iFrame
Recommended for static HTML sites, WordPress, Webflow, and similar platforms that do not require JavaScript injection.
<iframe
src="https://www.boardgamelibrarian.ai/embed?apiKey=YOUR_KEY&locale=en&transparent=1"
width="100%"
height="700"
frameborder="0"
allow="clipboard-write"
></iframe>
URL parameters:
| Parameter | Description | Example |
|---|---|---|
apiKey | Your widget's API key (required) | bgl_abc123... |
locale | Interface language | en, it, de, fr, es, pt, ru, ja, pl, zh |
transparent | Blend widget background with your page | 1 (enabled) or remove |
gameId | Pre-select a specific game by its numeric ID | 42 |
Method 2: JavaScript Widget
Recommended for Single-Page Applications (React, Vue, Angular) or sites where you want programmatic control over the widget lifecycle.
<script src="https://www.boardgamelibrarian.ai/widget.js"></script>
<script>
BGLWidget.init({
apiKey: 'YOUR_KEY',
locale: 'en',
height: '700px',
transparent: true,
// gameId: 42, // optional: pre-select a game
// baseUrl: 'https://custom.domain', // optional: custom base URL
});
</script>
Options:
| Option | Description |
|---|---|
apiKey | Your widget's API key (required) |
locale | Language code string |
height | Widget height, e.g. '700px' or '100%' |
transparent | true to blend with page background |
gameId | Numeric ID to pre-select a game |
baseUrl | Override the base URL if using a custom domain |
Visual theming (colours, backgrounds) is managed via My Themes in the Partner Portal — see Section 7. There is no
themeembed parameter.
Transparent Background
Both methods include transparent=1 / transparent: true by default so the widget background blends with your page design. Remove or set to false if you want the widget to display its own background colour.
Use the Copy button next to each code block to copy the snippet to your clipboard.
6.7 Widget Detail — Live Test Tab
The Live Test tab embeds your actual widget directly inside the Partner Portal so you can test it without leaving the browser. Questions asked here use your real API key and count toward your usage quota.
Controls
| Control | Description |
|---|---|
| Preview Size | Switch between Mobile (380×600px), Desktop (480×700px), or Full Width |
| Pre-select Game | Choose a specific game to pre-load in the widget (dropdown shows all assigned games) |
| Reload | Force-refresh the embedded widget iframe |
The language selector at the top of the test panel lets you switch the widget interface language to test localisation.
Note: Questions asked in the Live Test tab are real queries processed by the full AI pipeline. They are counted in your usage and appear in your Chat Logs.
6.8 Widget Detail — Themes Tab
The Themes tab controls which colour themes are available to end-users on this specific widget.
- The tab lists all themes you have created under My Themes (see Section 7).
- Toggle themes on or off for this widget. Only enabled themes are offered to visitors.
- If more than one theme is enabled, a theme selector appears in the widget header so visitors can switch palettes.
- The last theme a visitor selected is persisted per widget in their browser's
localStorage. - At least one theme must remain enabled — the last active theme cannot be removed.
Tip: To create or edit colour palettes, go to My Themes (
/partners/themes). Changes to a palette are reflected in all widgets that have it enabled.
7. Themes
The Themes system lets partners define and manage custom colour palettes for their embedded widgets. Visual styling is fully partner-controlled — there is no global dark/light toggle. Instead, each partner creates one or more named themes and assigns them to widgets.
7.1 My Themes Page
Navigate to My Themes (/partners/themes) to see all themes for your partner account.
Themes are shown as cards. Each card displays:
- Theme name
- A 14-colour swatch grid previewing all colour roles at a glance
- An annotated mini widget mock-up showing how the colours look in context
- Action buttons: Edit, Duplicate, Delete
7.2 Color Roles
Each theme has 17 configurable colour roles, organised by area:
| Area | Role | Purpose |
|---|---|---|
| Header | headerBg | Widget header background |
headerText | Widget header text and icons | |
| Chat area | background | Main chat area background |
foreground | Default text colour in the chat area | |
botBubble | Background of bot (assistant) message bubbles | |
botBubbleText | Text colour inside bot bubbles | |
userBubble | Background of user message bubbles | |
userBubbleText | Text colour inside user bubbles | |
| Links & icons | linkColor | URL link colour in chat responses |
botIconColor | Bot avatar icon colour | |
sendButtonColor | Send button background | |
| Input | inputBg | Message input field background |
inputBorder | Message input field border | |
inputText | Message input field text | |
| Buttons | primary | Primary action button background |
primaryForeground | Primary button text | |
accent | Accent / highlight colour |
7.3 Theme Actions
| Action | Description |
|---|---|
| Edit | Opens the inline colour editor for this theme |
| Duplicate | Creates a copy of the theme with a collision-safe name (e.g., "My Theme (2)") |
| Delete | Permanently deletes the theme. Not available if the theme is currently assigned to a widget. |
Note: Locked themes (marked by the BGL admin team) cannot be deleted. You can duplicate them to create your own editable version.
7.4 Theme Editor and Live Preview
Clicking Edit opens the theme editor in-page. For each of the 17 colour roles:
- A colour swatch shows the current value; clicking it opens a colour picker.
- The hex value is shown and can be typed directly.
A live preview on the right shows a mini widget mock-up with all 17 colour roles applied in real time. Hovering over a colour role in the editor highlights the corresponding region in the preview, so you can see exactly where each colour appears.
A "Widgets using this theme" panel lists all widgets that have this theme enabled. Clicking a widget name opens it in a new tab. You can also add or remove widget associations from this panel directly.
Changes are saved with the Save button. Unsaved changes are indicated by a dirty state on the button.
7.5 Assigning Themes to Widgets
Themes must be explicitly assigned to each widget before they appear for visitors. There are two ways to do this:
- From the theme editor — use the "Widgets using this theme" panel to add/remove widget associations.
- From the widget's Themes tab — toggle each theme on or off for that widget (see Section 6.8).
If a widget has only one theme enabled, that theme is applied automatically with no selector shown to the visitor. If multiple themes are enabled, visitors see a theme picker in the widget header.
8. Team Management
The Team page (/partners/users) lets managers control who has access to the Partner Portal and at what permission level.
8.1 Role Overview
| Role | Description | Can invite | Can remove | Can change roles | Sees all team |
|---|---|---|---|---|---|
| Manager | Full access — manages content, settings, and team | Yes | Viewers only | Yes (to manager/viewer) | Yes |
| Viewer | Read-only access | No | Self only | No | Own record only |
Key constraints:
- A manager cannot promote or demote another manager — only viewers.
- A manager cannot remove another manager.
- Any team member can remove themselves (self-deletion).
8.2 Inviting a Team Member
Managers can invite new members.
- Click the Invite User button (top-right of the Team page).
- In the dialog that appears:
- Enter the invitee's Email Address (required).
- Select a Role: Manager (can manage content and settings) or Viewer (read-only analytics access).
- Click Send Invite.
An invitation email is sent to the address. The invite link in the email is valid for 7 days. After acceptance, the member appears in the team table with status Active.
Until accepted, the member is shown with status Pending.
8.3 Changing a Role
Managers can change the role of active (accepted) team members — subject to the constraints in the role table above.
In the Team table, the Role column for eligible members shows a dropdown selector instead of a static badge. Simply select a new role from the dropdown; the change is saved immediately without a confirmation step.
An in-page success message ("Role updated to [role]") confirms the change.
8.4 Revoking Access
To remove a team member:
- Click the red trash icon (bin) in the Actions column for that member.
- A confirmation dialog appears showing the member's email and a warning: "This will immediately revoke their login access."
- Click Revoke Access to confirm, or Cancel to abort.
When access is revoked, the session is invalidated immediately. The member can no longer log in to the Partner Portal.
Note: Managers can only remove viewers, not other managers. Managers cannot remove themselves if they are the only manager on the account.
8.5 Resending an Invitation
For members with Pending status (invite not yet accepted), a resend icon (circular arrow) is shown in the Actions column. Click it to resend the invitation email with a fresh 7-day link.
9. Account Settings
The Account page (/partners/account) lets you update the public-facing information for your partner organisation.
Editable fields:
| Field | Description |
|---|---|
| Partner Name | The display name of your organisation in the portal (max 200 characters) |
| Website URL | Your company website (e.g., https://yourcompany.com) |
| Contact Email | The primary contact email for API notifications and account communications |
The Slug field is read-only. It is the URL identifier for your partner account and is set at creation. It cannot be changed.
The Contact Email is a dropdown populated from your team members' email addresses. Select the team member who should receive account-related notifications. If you have no team members yet, a link to the Team page is shown.
After making changes, click Save Changes. The button is disabled when there are no unsaved changes.
Your current plan tier badge (e.g., Starter, Growth, Pro, Enterprise) is shown in the top-right of the page header.
10. Billing Profile
The Billing page (/partners/billing) stores your company's billing information used to generate invoices. This data does not affect your service — it is for accounting records only.
All fields are optional except where your region requires them for legal invoice generation. Click Save Changes at the top-right after editing any section.
10.1 Company Information
| Field | Description |
|---|---|
| Company Name | Legal name of your organisation |
| Company Type | Legal entity type (S.r.l., S.p.A., LLC, GmbH, Sole Proprietor, etc.) |
| Billing Email | Email address where invoices should be sent (must be a valid email format) |
10.2 Address
| Field | Description |
|---|---|
| Address Line 1 | Street address |
| Address Line 2 | Suite, floor, building, etc. (optional) |
| City | City or town |
| State / Province | Region or state |
| ZIP / Postal Code | Postal code |
| Country | Select from the country dropdown |
10.3 Tax Information
| Field | Description |
|---|---|
| Tax ID Type | Type of tax identifier: Partita IVA (Italy), VAT Number (EU), EIN (US), UTR (UK), ABN (AU), or Other |
| Tax ID Value | The actual number/code (minimum 5 characters) |
Italian-specific fields (shown only when Country = Italy):
| Field | Description |
|---|---|
| Fiscal Code | Codice Fiscale (e.g., RSSMRA80A01H501U) |
| SDI Code | 7-character electronic invoicing code for the Sistema di Interscambio |
| PEC Email | Certified Electronic Mail address (company@pec.it) |
Note: The SDI Code must be exactly 7 characters. Inline validation highlights the field in red if the length is incorrect.
10.4 Payment Preferences
| Field | Description |
|---|---|
| Preferred Payment Method | Bank Transfer (default) or PayPal |
| PayPal Email | Shown only when PayPal is selected; the PayPal account email to send payments to |
11. Invoices
The Invoices page (/partners/invoices) shows the complete list of invoices generated for your account.
Note: Invoices are created by the Board Game Librarian admin team. Partners cannot create invoices themselves.
The invoice table has the following columns:
| Column | Description |
|---|---|
| Invoice # | Invoice number in monospace format |
| Date | Date the invoice was issued |
| Period | Service period covered (start date – end date) |
| Total | Amount with currency symbol (€, $, £) |
| Status | Current status (see below) |
| Due Date | Payment due date |
| Actions | View link to open the invoice detail page |
Invoice statuses:
| Status | Meaning |
|---|---|
sent | Invoice sent, awaiting payment |
viewed | Invoice has been opened |
paid | Payment received |
overdue | Payment is past due date |
cancelled | Invoice has been cancelled |
credited | A credit note has been issued |
Click View on any invoice to open the full invoice detail page (/partners/invoices/[id]), where you can see line items and download a PDF copy.
A numeric badge on the Invoices sidebar link shows the count of pending (unpaid) invoices.
12. Feedback
The Feedback page (/partners/feedback) aggregates all user feedback submitted through your widgets — across all widgets and all games.
12.1 Summary Cards
Four summary cards appear at the top:
| Card | Description |
|---|---|
| Total feedback | Total feedback entries across all types |
| Helpful rate | Percentage of thumbs-up out of all thumbs-up + thumbs-down feedback |
| Avg rating | Average star rating (1–5) from users who submitted star ratings; shows N/A if none |
| With comments | Number of feedback entries that include a text comment |
12.2 Filtering Feedback
A type filter dropdown lets you narrow results to a specific feedback category:
- All types
- Helpful
- Not Helpful
- Ratings
- Reports
The result count (e.g., "42 results") updates instantly.
Click Refresh to fetch the latest data from the server.
12.3 Feedback Types
Each feedback item is displayed as a card showing:
- A type icon and type badge (see below)
- A star rating (if the feedback is a rating)
- The game name the feedback relates to
- The widget name it came through
- The original question (if recorded, shown truncated)
- The comment text (if provided)
- The report reason (if feedback_type =
report) - The date (month and day)
Feedback types:
| Type | Icon | Badge | Description |
|---|---|---|---|
helpful | Thumbs up (green) | Helpful | User marked the answer as helpful |
not_helpful | Thumbs down (red) | Not Helpful | User marked the answer as not helpful |
rate | Star (amber) | Rating | User submitted a 1–5 star rating |
report | Warning triangle (orange) | Report | User flagged the answer as incorrect or problematic |
comment | Message bubble (blue) | Comment | User submitted a free-text comment |
13. Notifications
The Notifications page (/partners/notifications) shows in-app notifications sent to your partner account by the Board Game Librarian system.
13.1 Severity Levels
Each notification has a severity badge:
| Severity | Badge colour | When used |
|---|---|---|
info | Blue | General information, no action required |
warning | Yellow | Something may need attention |
error | Red | An issue occurred that may affect functionality |
critical | Deep red | Urgent issue requiring immediate action |
Each notification shows:
- Title (bold for unread, dimmed for read)
- Severity badge
- A purple dot indicator for unread notifications
- Message body text
- Timestamp (date and time)
13.2 Marking Notifications as Read
Individual notifications: Click the Mark read button on any unread notification to mark it as read. The button disappears and the notification dims.
All at once: If there are unread notifications, a Mark all read button appears in the page header. Click it to mark all 50 loaded notifications as read simultaneously.
The page header subtitle updates dynamically: it shows "X unread notifications" when there are unread items, or "All caught up" when everything is read.
13.3 Unread Badge
The Notifications link in the sidebar shows a yellow numeric badge with the unread notification count. This badge is loaded on every authenticated page (via the /api/partner/me call) so you always know if there are new notifications without visiting the page.
14. Audit Log
The Audit Log page (/partners/audit-log) provides a security and compliance record of all significant actions performed within the Partner Portal.
14.1 What is Tracked
The following event types are captured:
| Event | Label |
|---|---|
team.invite | Team — Invite sent |
team.invite_resend | Team — Invite resent |
team.remove | Team — Member removed |
team.role_change | Team — Role changed |
auth.login | Auth — Login |
auth.logout | Auth — Logout |
widget.create | Widget — Created |
widget.update | Widget — Settings updated |
widget.games_update | Widget — Games reordered |
widget.delete | Widget — Deleted |
account.update | Account — Organisation updated |
profile.update | Profile — Updated |
settings.update | Settings — Updated |
Each entry records:
- Date/time of the event
- User who performed the action (their display name and email)
- Action (human-readable label as above)
- Target — the entity affected (e.g., user email, widget name)
- Details — change specifics (e.g., role change:
viewer → manager; changed fields:name, website_url) - IP address of the request
14.2 Filtering the Audit Log
A single action filter dropdown lets you narrow entries to a specific event type. The dropdown is populated with the action types actually present in your log (no empty options).
Results are paginated at 50 per page. Navigation buttons appear at the bottom when there are multiple pages. The total event count is shown next to the filter.
Click Refresh to reload the current page from the server.
14.3 Role-Based Visibility
The audit log behaves differently depending on your role:
| Role | What you see |
|---|---|
| Manager | All events for your partner account, from all team members. The User column is visible, showing who performed each action. |
| Viewer | Only your own actions. The User column is hidden. |
The page subtitle reflects this: managers see "All team activity for your partner account", while viewers see only "Your activity in the partner portal" — a narrower window on the same log.
15. FAQ and Troubleshooting
Q: I can't log in. It says my account is not linked to a partner.
Your user account exists but has not been associated with a partner organisation. Contact the Board Game Librarian admin team or ask a manager on your partner account to invite you via the Team page.
Q: My invite link has expired.
Invite links are valid for 7 days. Ask any manager on your team to go to Team (/partners/users) and click the resend icon (circular arrow) next to your entry in the Pending state. You will receive a fresh invitation email.
Q: I cannot see the Invite User button on the Team page.
Only managers can invite new users. If you are a viewer, you do not have this permission. Contact your team's manager.
Q: I changed my widget settings but nothing changed on my website.
- Confirm you clicked Save on the General tab and saw a "Saved" confirmation.
- The widget is loaded in your visitors' browsers as an iframe or via
widget.js. It reads the current settings on each page load — hard-refresh your website (Ctrl+Shift+R / Cmd+Shift+R) to clear any browser cache. - If you changed
allowed_domains, ensure your website's domain is listed exactly as it appears in the browser address bar (without trailing slashes, protocol-agnostic).
Q: The Stats tab shows no data.
Statistics are shown after your widget has received its first questions. If you have just set up the widget, use the Live Test tab to ask a few questions, then come back and click Refresh on the Stats tab.
If the widget has been live for some time and stats are still absent, check that your analytics_level setting (visible in the General tab) is not set to counts only, which limits data to the four KPI cards.
Q: The embed code is not available.
The embed code is generated by the Board Game Librarian system once your widget is fully configured with a valid API key. If you see the message "Embed code not yet available. Contact your administrator.", reach out to your account manager.
Q: My Invoices badge shows a number but I cannot find unpaid invoices.
The badge counts invoices with sent or viewed status (i.e., not yet marked as paid). Open the Invoices page and check the Status column to see which invoices are outstanding.
Q: I see the yellow "Admin viewing as [Partner Name]" banner.
A Board Game Librarian superadmin is currently viewing your portal via the impersonation feature. This is a routine support or audit operation. The admin has the same view as you and can see all your portal data. The banner will disappear when the admin exits. If you were not expecting this, contact Board Game Librarian support.
Q: How do I add more games to my widget?
Games are added to widgets by the Board Game Librarian admin team. Contact your account manager and specify which game(s) you want added and to which widget. Provide the game name.
Q: The widget language is wrong.
Two things control the widget's language:
- Default Locale in the widget settings (General tab) — sets the UI language when no locale is specified in the embed code.
- The
localeparameter in the embed code orBGLWidget.init()options — overrides the default.
The widget also auto-detects the question language and responds in the same language, regardless of the locale setting. So if a user types a question in Italian, the answer will be in Italian even if locale is set to en.
Q: A game in my widget shows zero questions, but users have told me they used it.
There may be a brief delay before statistics are updated. Click Refresh on the Stats tab or the Games tab. If the issue persists, verify the game is correctly linked to the widget by checking the Games tab (look for the game in the table). If the game is not listed, contact your account manager.
Q: How do I revoke my own access?
Any team member can remove themselves. Go to Team (/partners/users), find your own entry, and click the trash icon. You will be asked to confirm. After confirming, your session is terminated immediately.
Warning: If you are the only manager and you remove yourself, the partner account will have no manager. Ensure there is at least one other manager before removing yourself.
Q: What is the difference between Tier 1 and Tier 2 responses?
- Tier 1 is the fast response, generated in approximately 3–10 seconds. It uses vector search over the uploaded rulebook PDFs to answer the question directly.
- Tier 2 is the deep analysis response, generated in approximately 10–35 seconds. It is triggered when the Tier 1 answer has low confidence or when the user explicitly requests deeper analysis. It additionally searches community forum threads for human expert discussion about the rule in question.
Not all widgets have Tier 2 enabled — this depends on your plan tier. Check the Tier 2 Enabled field in the General tab.
Q: How do I change the colours of my widget?
Go to My Themes (/partners/themes) to create or edit colour palettes. Each theme has 17 configurable colour roles (header, chat bubbles, input, buttons, etc.). Once you have a theme you are happy with, assign it to your widget from the widget's Themes tab or from the theme editor's "Widgets using this theme" panel.
For support, contact: support@boardgamelibrarian.ai