DodoSpeak Oral

What to prepare before you start

Choose an embed method first, then check the go-live list for that path.

oral

Audience: buyers / integration owners · Applies to: DodoSpeak Oral

Goal: Choose an embed method before go-live, then list plan, keys, mount, and completion checks for that path. Trial can switch methods; production locks. If you need both, open a second Oral organization account and run them separately.

Confirm Oral is the right fit: What is DodoSpeak Oral, Choose Oral, SaaS, or private deploy. Compare methods: Two formal embed methods.

Buyers decide

  • Plan: Speak Lite / Class / Assess / Exam. The plan controls whether tasks, History, and exams are allowed. It does not hide the four surfaces. See Plans, entitlements, and usage.
  • Tenant: after provisioning you get a tenant id and a tenant key (backend only). You can start with an Oral Console trial on the website (sandbox); production tenants and tenant keys follow commercial provisioning.
  • Usage: billed in 50-learner packs and minutes (see Minute pool and billing). The signup form asks for expected learner scale to suggest a pack count. Oral is about two-thirds the per-minute price of full SaaS.

Embed method is a go-live fork, not a price tier: page widget and sign-in mint have the same capability and Oral price. Trial can switch in Oral Console; lock the choice before production. Need both → open a second Oral organization account. See below and Two formal embed methods.

Integrators prepare

Do this in order; you do not need every step on day one.

  1. Choose page widget or sign-in mint (the fork)
    No server / cannot change login → page widget (needs roster learner codes). You already have login and need LMS write-back by student id → sign-in mint. Compare Two formal embed methods.
    Trial can switch. Production locks this organization account; you cannot self-serve a change. Need both: open a second Oral organization account. The same school can attach two accounts (one widget, one mint). Usage, keys, and roster / mint identity stay separate and run independently. Do not describe this as hot-switching two methods inside one production tenant.

  2. Credentials (for the method you chose)

    • Mint: use the tenant key on your server to mint embed tokens. Never put the tenant key in the browser, app bundle, or frontend repo.
    • Widget: use the publishable key, register Origins, and finish roster learner codes (or OTP/PIN). The shop key still must not enter the page.
  3. Mount on the frontend
    Place a container, load the embed script, call OralEmbed.mount. Surfaces: practice / assignment / report / exam (must be allowed by plan). You may pass a theme token. See How to embed in your system.

  4. Treat the API as completion truth
    The embed may fire “looks complete.” Scores, submit status, and usage should be confirmed by your backend via Oral API (or a webhook). See How to get exam scores and view records.

  5. Origin and security
    Register allowed embed Origins; set CSP / iframe ancestors as needed. The browser asks the learner for the microphone.

  6. (Optional) Try Oral Console first
    Website trial (includes expected learner scale) → sign in to Oral Console and walk Learner / Publisher / Manager / Developer (Manager: Manager: settings hub, billing, and roster). During trial you can switch embed method in Settings. Do not copy these four roles into your production product.

Go-live checklist

Pick the embed method first, then complete only that path. Shared items apply to both.

Choose an embed method first

  • Page widget or sign-in mint is chosen (see Two formal embed methods)
  • Trial can switch; production locks this account
  • If you need both: a second Oral organization account is open and the two stacks run independently (do not share one shop key or treat one roster as the only identity source)

Shared (either method)

  • Plan and usage terms confirmed
  • At least one surface mounts with OralEmbed.mount and the learner can speak
  • Origin / CSP registered for production hosts
  • Completion / scores reconciled via API (if you need write-back)
  • Under-plan denials are handled in UX (API rejects; buttons stay visible)

Page widget only

  • Roster is ready; you can issue learner codes (or OTP / PIN)
  • Use the publishable key; the tenant key never enters the page
  • The learner identifies (scan / enter code) before speaking

Sign-in mint only

  • Tenant key only on the server
  • Short-lived embed tokens can be issued and refreshed
  • external_user_id aligns with the LMS student id

“Can issue short-lived tokens” belongs to mint only. On the widget path, Oral mints after identification — do not check both.

Related

Last updated: Wed Aug 19

This guide applies to the DodoSpeak Help Center.

What to prepare before you start · DodoSpeak Help Center