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

  1. Overview
  2. Getting Started
  3. Interface Layout
  4. Dashboard
  5. Games
  6. Widgets
  7. Themes
  8. Team Management
  9. Account Settings
  10. Billing Profile
  11. Invoices
  12. Feedback
  13. Notifications
  14. Audit Log
  15. 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?

RoleTypical user
ManagerPrimary account holder — founder, product lead, or developer managing the integration
ViewerSupport 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:

  1. A Board Game Librarian admin creates your partner account and sends an invitation to the first manager.
  2. That manager can then invite additional team members (other managers and viewers) from within the portal.
  3. 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:

  1. Authenticates your credentials against the central user database.
  2. Verifies that your account is linked to a partner organisation.
  3. 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):

CardDescription
Active WidgetsNumber of widgets currently set to active
Questions (30d)Total questions asked across all your widgets in the last 30 days
Pending InvoicesNumber of invoices awaiting payment
Current PlanYour 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 badgesT1 (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:

ExportCoverage
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.

FieldEditable?Description
NameYesThe display name of the widget (max 200 characters)
SlugNoURL identifier, set at creation
TierNoThe plan tier of this widget
ActiveNoWhether the widget is live (controlled by admin)
Default LocaleYesDefault language for the widget UI (e.g., en, it, de, fr, es, pt, ru, ja, pl, zh)
Allowed DomainsYesComma-separated list of domains allowed to embed this widget (leave empty to allow all)
Tier 2 EnabledNoWhether deep analysis (Tier 2) is available
Feedback EnabledNoWhether users can submit feedback
Rate Limit / MinNoMax questions per minute per session
Rate Limit / DayNoMax questions per day per session
Max Questions / SessionNoHard cap on questions per session
Session TTL (min)NoSession expiry in minutes
Max GamesNoMaximum number of games that can be assigned
Branding LevelNoControls how the BGL branding appears
Analytics LevelNoControls 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:

ColumnDescription
(drag handle)Drag row to reorder
#Display order position
GameGame name (click to open the detail sheet)
Game IDUnique game identifier
YearPublication year
RatingAverage community rating
PDFsNumber of rulebooks
FeaturedToggle 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.

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 LevelAvailable Data
countsKPI 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:

FilterOptions
GameFree-text search on the game name
TierAll / T1 Only / Has T2
ConfidenceAll / High / Medium / Low
FeedbackAll / 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

ColumnDescription
TimeDate and time (month, day, hour:minute)
QuestionThe question text (truncated with hover tooltip)
GameThe game the question was about
TiersT1 badge (always), T2 badge (if deep analysis was run)
T1 ConfTier 1 confidence: percentage + colour dot (green/amber/red)
T1 TimeTier 1 processing time in seconds
T2 ConfTier 2 confidence (if available)
T2 TimeTier 2 processing time (if available)
FeedbackIcons 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:

ParameterDescriptionExample
apiKeyYour widget's API key (required)bgl_abc123...
localeInterface languageen, it, de, fr, es, pt, ru, ja, pl, zh
transparentBlend widget background with your page1 (enabled) or remove
gameIdPre-select a specific game by its numeric ID42

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:

OptionDescription
apiKeyYour widget's API key (required)
localeLanguage code string
heightWidget height, e.g. '700px' or '100%'
transparenttrue to blend with page background
gameIdNumeric ID to pre-select a game
baseUrlOverride 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 theme embed 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

ControlDescription
Preview SizeSwitch between Mobile (380×600px), Desktop (480×700px), or Full Width
Pre-select GameChoose a specific game to pre-load in the widget (dropdown shows all assigned games)
ReloadForce-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:

AreaRolePurpose
HeaderheaderBgWidget header background
headerTextWidget header text and icons
Chat areabackgroundMain chat area background
foregroundDefault text colour in the chat area
botBubbleBackground of bot (assistant) message bubbles
botBubbleTextText colour inside bot bubbles
userBubbleBackground of user message bubbles
userBubbleTextText colour inside user bubbles
Links & iconslinkColorURL link colour in chat responses
botIconColorBot avatar icon colour
sendButtonColorSend button background
InputinputBgMessage input field background
inputBorderMessage input field border
inputTextMessage input field text
ButtonsprimaryPrimary action button background
primaryForegroundPrimary button text
accentAccent / highlight colour

7.3 Theme Actions

ActionDescription
EditOpens the inline colour editor for this theme
DuplicateCreates a copy of the theme with a collision-safe name (e.g., "My Theme (2)")
DeletePermanently 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:

  1. From the theme editor — use the "Widgets using this theme" panel to add/remove widget associations.
  2. 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

RoleDescriptionCan inviteCan removeCan change rolesSees all team
ManagerFull access — manages content, settings, and teamYesViewers onlyYes (to manager/viewer)Yes
ViewerRead-only accessNoSelf onlyNoOwn 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.

  1. Click the Invite User button (top-right of the Team page).
  2. 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).
  3. 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:

  1. Click the red trash icon (bin) in the Actions column for that member.
  2. A confirmation dialog appears showing the member's email and a warning: "This will immediately revoke their login access."
  3. 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:

FieldDescription
Partner NameThe display name of your organisation in the portal (max 200 characters)
Website URLYour company website (e.g., https://yourcompany.com)
Contact EmailThe 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

FieldDescription
Company NameLegal name of your organisation
Company TypeLegal entity type (S.r.l., S.p.A., LLC, GmbH, Sole Proprietor, etc.)
Billing EmailEmail address where invoices should be sent (must be a valid email format)

10.2 Address

FieldDescription
Address Line 1Street address
Address Line 2Suite, floor, building, etc. (optional)
CityCity or town
State / ProvinceRegion or state
ZIP / Postal CodePostal code
CountrySelect from the country dropdown

10.3 Tax Information

FieldDescription
Tax ID TypeType of tax identifier: Partita IVA (Italy), VAT Number (EU), EIN (US), UTR (UK), ABN (AU), or Other
Tax ID ValueThe actual number/code (minimum 5 characters)

Italian-specific fields (shown only when Country = Italy):

FieldDescription
Fiscal CodeCodice Fiscale (e.g., RSSMRA80A01H501U)
SDI Code7-character electronic invoicing code for the Sistema di Interscambio
PEC EmailCertified 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

FieldDescription
Preferred Payment MethodBank Transfer (default) or PayPal
PayPal EmailShown 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:

ColumnDescription
Invoice #Invoice number in monospace format
DateDate the invoice was issued
PeriodService period covered (start date – end date)
TotalAmount with currency symbol (€, $, £)
StatusCurrent status (see below)
Due DatePayment due date
ActionsView link to open the invoice detail page

Invoice statuses:

StatusMeaning
sentInvoice sent, awaiting payment
viewedInvoice has been opened
paidPayment received
overduePayment is past due date
cancelledInvoice has been cancelled
creditedA 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:

CardDescription
Total feedbackTotal feedback entries across all types
Helpful ratePercentage of thumbs-up out of all thumbs-up + thumbs-down feedback
Avg ratingAverage star rating (1–5) from users who submitted star ratings; shows N/A if none
With commentsNumber 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:

TypeIconBadgeDescription
helpfulThumbs up (green)HelpfulUser marked the answer as helpful
not_helpfulThumbs down (red)Not HelpfulUser marked the answer as not helpful
rateStar (amber)RatingUser submitted a 1–5 star rating
reportWarning triangle (orange)ReportUser flagged the answer as incorrect or problematic
commentMessage bubble (blue)CommentUser 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:

SeverityBadge colourWhen used
infoBlueGeneral information, no action required
warningYellowSomething may need attention
errorRedAn issue occurred that may affect functionality
criticalDeep redUrgent 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:

EventLabel
team.inviteTeam — Invite sent
team.invite_resendTeam — Invite resent
team.removeTeam — Member removed
team.role_changeTeam — Role changed
auth.loginAuth — Login
auth.logoutAuth — Logout
widget.createWidget — Created
widget.updateWidget — Settings updated
widget.games_updateWidget — Games reordered
widget.deleteWidget — Deleted
account.updateAccount — Organisation updated
profile.updateProfile — Updated
settings.updateSettings — 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:

RoleWhat you see
ManagerAll events for your partner account, from all team members. The User column is visible, showing who performed each action.
ViewerOnly 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.

  1. Confirm you clicked Save on the General tab and saw a "Saved" confirmation.
  2. 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.
  3. 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:

  1. Default Locale in the widget settings (General tab) — sets the UI language when no locale is specified in the embed code.
  2. The locale parameter in the embed code or BGLWidget.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