Group Test Manager documentation

Administrator guide

Configure and operate your private Group Test Manager instance, from users and group tests through payments, result publication, integrations, automation, and support.

Responsibility boundary: administer users, tests, results, participant payments, bots, email, AI, and storage inside GTM. Use GroupTest.online only for your commercial subscription and deployment status.

Initial administrator checklist

  1. Sign in to your private your-group.grouptest.online site with the GTM administrator created during onboarding.
  2. Open Admin → Settings and review every available integration card.
  3. Create the GTM users who will participate in tests; these are separate from GroupTest.online billing members.
  4. Configure payment options before moving a test to Ready for Payment.
  5. Configure private object storage before uploading reports.
  6. Configure Mailjet and notification templates before sending messages or relying on password-reset delivery.
  7. Configure and test only the bots and AI providers your organization uses.
  8. Use a sample test and non-admin account to verify participation, payment, notification, result, and visibility behavior.

Create and manage group tests

Select Admin → Create Test. Record the title, vendor, batch, compound, size, dates, description, tags, laboratory, itemized tests, costs, allowed payment options, and current status. Add a result link or file when closing the test.

StatusUse it whenUser behavior
RecruitingYou are accepting requests.Authenticated users can discover and request to join.
Ready for PaymentMembership is settled and participants should pay.Approved participants see configured payment instructions.
TestingSamples are submitted or laboratory work is underway.No new joins; approved participants retain access.
ClosedWork is complete and results are ready.Eligible paid participants can see published results.

Use Edit Test to change metadata, rows, costs, tags, payments, status, or result files. Moving a test away from Closed clears its results link and attached result file. Deletion is permanent from GTM’s perspective, so export first when retention matters.

Participants, approvals, and cost calculations

The Admin Action Queue is the central inbox for pending participation requests, completed analysis reviews, failed analyses, and future work requiring administrator attention.

  • Filter and search requests, approve or deny individually, select batches, or approve all filtered records with confirmation.
  • A denial requires a reason. Reopen a denied record if circumstances change.
  • Use Manage Participants inside a test for detailed status, donor designation, payment, notes, removal, and manual additions.
  • Use Recalculate Costs after substantial participant, donor, shipping, or cost changes.

GTM divides fixed laboratory and shipping costs among approved participants. Donor refund credits are funded by an uplift across non-donors. Donor-specific shipping follows the reimbursement policy configured on the test. Review the displayed calculation before requesting payment.

Configure participant payment options

  1. Open Admin → Settings → Payment Options.
  2. Create one option per payee and method: Venmo, Cash App, PayPal, cryptocurrency wallet, or Other.
  3. Verify the generated destination label, payment link, and QR preview.
  4. Activate the option and assign it on Create Test or Edit Test.

Deactivating removes an option from new assignments while preserving historical references. Deleting an option already in use safely deactivates it. For crypto options, identify the network clearly and independently verify every wallet address. GTM displays instructions but does not process or reconcile participant payments.

Publish group-test and public results

Group-test results

On Edit Test, enter itemized values, add the laboratory source link, optionally upload the report, and close the test. You can also use the quick results-link form on the test detail page. Results remain limited to administrators or approved participants marked paid.

Public results

Open Admin → Public Results to create, edit, or delete a result with title, summary, tags, source link, itemized values, and an optional report. Public results appear in My Results for signed-in users and can be browsed through enabled bot commands.

Use consistent tags and canonical test names such as Identity, Purity, Mass, Net Content, and Endotoxin. Preserve relevant report context in the description, and check every transcription against the source document.

Configure report storage

  1. Open Admin → Settings → Storage Config and enable uploads.
  2. Select AWS S3 or DigitalOcean Spaces and enter the bucket, region, restricted access key, and secret.
  3. For Spaces, use an endpoint such as https://nyc3.digitaloceanspaces.com.
  4. Keep public-read ACL disabled for a private bucket and use a short signed-URL lifetime; 60 seconds is recommended.
  5. Set a dedicated path prefix, maximum upload size, and allowed formats, then save and test with a non-sensitive file.

Use least-privilege credentials restricted to the intended bucket or prefix. Images and PDFs are previewed through authenticated GTM routes and short-lived signed object URLs. Replacements and removals delete old objects on a best-effort basis, so use provider lifecycle rules as a cleanup backstop.

Automated result analysis

Automated analysis is available only with the corresponding subscription entitlement and worker. It extracts statements from laboratory reports; it does not judge safety or publish without administrator review.

  1. Open Admin → Settings → Result Analysis.
  2. Configure and enable OpenAI, xAI Grok, or Anthropic Claude using your own provider account and supported model.
  3. Choose the active automatic provider and run its connection test. The test sends minimal text, not a report.
  4. Leave automatic analysis off until a sample upload completes successfully.
  5. Upload a report or select Analyze Uploaded File / Analyze Linked Result on an edit page.
  6. Open the item from the Admin Action Queue, inspect evidence and confidence, edit if necessary, accept or reject each finding, and then apply.
  • Group-test analysis fills only blank existing laboratory rows; it never creates rows or overwrites populated results.
  • Public-result analysis may propose canonical rows but does not replace an existing canonical value.
  • Explicit Net, Average, or Batch Average values are preferred; GTM does not calculate an absent average from vial readings.
  • New eligible uploads may queue automatically. Links require an explicit analysis action.
  • Supported public sources are bounded PDF, image, and static HTML URLs. Login, cookies, CAPTCHA, private networks, and anti-bot bypasses are unsupported.
  • A provider failure never silently transfers the report to another provider.

Review sanitized diagnostics on the Result Analysis page. They include bounded provider status and request identifiers, not API keys, source reports, or raw provider responses.

Mailjet, templates, and delivery

DigitalOcean-hosted GTM uses Mailjet’s HTTPS API rather than SMTP. Open Notification Config, enter your Mailjet API credentials and verified sender, save, and test delivery.

  1. Open Manage Templates and configure email and Telegram bodies.
  2. Select defaults for password reset and registration welcome messages.
  3. Hide templates that should not appear in the participant notification picker.
  4. On a test detail page, select a template under Notify Test Participants.

Templates support contextual values including username, temporary password, amount owed, test title, link, and ID. Participant messages render separately so recipient-specific values are not shared across users.

Configure Telegram

  1. Create a Telegram bot and place its token and username in Telegram Config.
  2. Set the Service Base URL so bot links point to the correct GTM instance.
  3. Set a webhook secret and, where practical, allowed Telegram source CIDRs.
  4. Configure an optional status chat or topic as chatId_threadId.
  5. Choose immediate delivery or digest behavior and customize status-message templates.
  6. Select Register Telegram Webhook after saving; repeat registration after changing the token, webhook URL, or base URL.

Users link from My Profile and press Start in a private bot chat. The configured status destination is primarily outbound. Keep account-specific command responses in direct messages except intentionally public commands such as /testing.

Configure Discord

Discord features appear only when the Discord entitlement and worker are provisioned.

  1. Create a Discord application and bot, invite it with the application-command and required bot permissions, and copy the application ID, bot token, and optional guild ID.
  2. Open Admin → Settings → Bot Integrations, enter the values, and save.
  3. Select Synchronize Commands. The worker normally sees the request within five seconds and reports status on the same page.
  4. Use a guild ID for fast server-scoped registration; GTM also publishes global commands for direct messages. Global propagation may take longer.
  5. Generate a token from a user profile and verify /start, /tests, /status, and /join in a DM.

The web and Discord worker must use the same database and bot configuration. If synchronization stays pending, confirm the worker is running and inspect its logs.

Built-in and custom bot commands

Use Built-in Bot Commands to enable and scope supported functions such as public-result browsing and report submission. Use Telegram Commands to create custom responses shared by Telegram and Discord.

  • Commands use slash form and cannot replace reserved built-ins such as start, help, tests, mytests, testing, status, or join.
  • Set argument policy to any, none, required, or a validated regular expression.
  • Configure rate limits and optional group/channel, chat, and topic restrictions.
  • Use only documented placeholders; preview replies without inserting secrets.
  • Optional images, GIFs, or converted video loops are shared with Discord, subject to its 8 MiB attachment limit. Keep fallback text configured.

Users and access control

Open Admin → Manage Users to create accounts, edit ordinary profiles, grant administrator status, activate/deactivate access, or send a password reset through a configured channel.

  • Keep administrator accounts to the minimum needed and review them regularly.
  • Deactivation is preferable to deletion when historical participation must remain attributable.
  • Telegram and Discord delivery use linked numeric identities, not display usernames alone.
  • The reserved gtmsupport managed-support identity cannot be edited, deleted, linked to bots, or changed through ordinary user administration.

Managed support and subscription states

Open GTM’s Support page for documentation and the configured helpdesk. An administrator may request temporary support access by supplying a reason and confirming their password. Access is disabled by default, expires within 24 hours, and can be stopped immediately with Emergency disable support.

If the subscription is suspended, ordinary users are blocked and administrators receive a read-only recovery surface. Administrators may inspect existing tests and results and download the sanitized recovery export, but cannot edit data, export users, send notifications, run bots, or start analysis. Resolve billing from GroupTest.online.

Exports, security, and troubleshooting

Exports

Use Export to Excel from a test detail page for operational reporting and backup. Treat exports as sensitive because they may contain participant and payment-status data. Store them securely and delete obsolete copies.

Security checklist

  • Use unique administrator passwords and remove unneeded administrators.
  • Keep API keys in deployment secrets where supported; never paste them into descriptions, templates, tickets, or diagnostics.
  • Use least-privilege storage and bot credentials and rotate them after staff changes or suspected exposure.
  • Review every AI-extracted value against its report before applying it.
  • Validate payment destinations out of band and restrict webhook sources where supported.

Common problems

  • Uploads fail: verify Storage Config, endpoint, region, credentials, format allowlist, file limit, and bucket policy.
  • Email fails: verify Mailjet keys, sender verification, recipient address, template, and sanitized notification diagnostics.
  • Telegram fails: register the webhook again, verify the secret/base URL/chat target, and ensure the user pressed Start.
  • Discord commands are missing: save configuration, force synchronization, wait for global propagation if applicable, and confirm the worker remains connected.
  • Analysis stays queued: verify entitlement, worker, provider configuration, storage access, and public-source restrictions; then inspect Recent Provider Diagnostics.
  • A result is inaccessible: confirm Closed status, result link/file, participant approval, and paid status.