Showing 0 attempts (most recent first; up to 1000).
Recorded
Learner
Artifact
Course
Organization
Site
Score
Pass
Duration
Source
Payload
No rows match the current filters.
Loading…
Artifact settings registry
Per-artifact runtime parameters (Sheet IDs, pass thresholds, API keys, voice endpoints…). Changes here are picked up by every artifact on the next page load — no re-rendering needed.
Artifact ID
Display name
Sheet ID
Pass
Updated
No artifacts yet. Click + New artifact to add one.
Loading…
Edit artifact
Changes here go live on the next artifact page-load. No re-rendering or re-uploading needed.
Short snake_case. Used as the join key everywhere in the platform. Once set, never change it.
The long ID in the Sheet URL between /d/ and /edit.
Uncheck to hide the floating "?" button on this artifact's pages. Useful for resources where the tutor would be redundant or off-message. Saved as tutor_enabled in the config JSON.
Which corner of the page the floating "?" sits in. Move it if it overlaps with the artifact's own buttons. Saved as tutor_position; default is top-right (the least-crowded corner for most artifacts).
Per-artifact mic backend. Whisper is more accurate, mobile-friendly, and metered through your spending cap; Web Speech is free but unreliable and invisible to the dashboard. Saved as mic_engine in the config JSON. The mic is fully manual: learners tap the mic to start, tap again to stop, and press Send when ready — no silence auto-stop, no auto-send.
The voice this artifact speaks with (OpenAI text-to-speech, via the proxy). Leave on "Default" to use the global voice; set one to give this artifact its own. Saved as tts_voice in the config JSON.
Free-form bag for everything else: API keys, voice endpoints, model name, feature flags. Must be valid JSON. Same exposure level as the deployed HTML — anyone running the artifact can read it.
AI proxy settings
When today's upstream spend hits the daily cap, the proxy returns an error until UTC midnight. Editable from here — takes effect within ~30 seconds (the function caches settings briefly).
Set to 0 to disable the cap entirely (not recommended). Resets at UTC midnight.
Guardrails (v5)
Checks the proxy runs on every request. Defaults are sensible — tune only if needed.
Blocked learners see a polite "keep it appropriate and related to the lesson" message. "Warn" logs flags without blocking (good for a trial week).
Ceiling per learner per day (the overall daily cap above is still the hard floor). 0 = no per-learner cap.
Any chat model NOT on this list is rejected — your main protection against a copied key requesting a pricey model.
Advanced limits
Default excludes plain "violence" so warehouse-safety talk isn't false-flagged.
Token pricing rates
All in US dollars. Saved to the registry — takes effect immediately in this dashboard, no re-upload needed. Changing a rate re-prices your whole history.
input_per_1m / output_per_1m = dollars per 1,000,000 tokens · elevenlabs_per_1k_chars = dollars per 1,000 characters. Models not listed fall back to openai_default.