Skip to content

EP Studio Assistant

EP Studio Assistant puts a chat box inside the PageMotor Admin. The studio owner types a question in plain English (“how is revenue this month”, “who is about to churn”, “who has not signed a waiver before tomorrow’s class”) and Claude answers from the studio’s live data. It is the conversational front door to the EP Studio Dashboard.

Published by ElmsPark Studio.

The assistant runs an Anthropic tool-use loop on the server. When you ask a question, Claude calls the read-only studio tools the EP suite already exposes (the dashboard overview, members at risk, the upcoming schedule, revenue, class passes, waivers, payroll, the instructor roster, and per-member lookups), then answers in plain language.

It is deliberately read-only. The model is handed a fixed allowlist of query tools and cannot call anything else, so it shows you what is happening and points you to the right dashboard screen to action it, but it cannot make a booking, grant a pass, run payroll, or change a setting.

Your data never leaves the server except as the model’s answer, and your Anthropic key is stored server-side and never sent to the browser.

  • PageMotor 0.8.3b or later
  • An Anthropic API key (from console.anthropic.com), or a Claude key already saved in PageMotor’s AI Setup page
  • The EP Studio Dashboard and its sibling plugins for the data the assistant reads
  1. ep-studio-assistant.zip comes with an EP Suite licence — ElmsPark supplies it directly (see EP Suite plugins); after install it updates through your site’s Updates screen.
  2. Upload via Plugins → Manage Plugins. Activate.
  3. Open EP Suite nav → Assistant and start asking. If a Claude key is already in AI Setup, the assistant picks it up automatically.

Accessed under the EP Suite nav → Assistant.

  • Anthropic API key (override). Leave blank to use the key from PageMotor’s AI Setup. Set one here only if you want this assistant to use a different key.
  • Model. Claude Sonnet (recommended), Opus, or Haiku.
  • Studio context (optional). Anything the assistant should always know about your studio, added to every conversation.

The same studio data also works from your own Claude account, with no API key, by connecting your site to Claude as a custom connector. Any plan can do it, free included, though free accounts may hold only one custom connector. See the guide: Ask your studio with Claude.

  • Settings language menu. The language menu in this plugin’s settings now lists only the languages it is actually translated into, plus English, so you can no longer pick a language that changes nothing.
  • Saved keys and passwords that stopped working are recovered. On PageMotor 0.11.3 or later, a key or password saved in this plugin’s settings before this plugin protected its keys itself could be kept in a scrambled form the plugin could not read, so the connection it was for failed. The plugin now unscrambles it once and keeps it protected as usual.
  • If a saved key cannot be recovered, it is no longer stored in its unreadable form. The error log says which one to enter again in the plugin settings.
  • Keys you save from now on are unaffected.
  • Fixes stored keys and passwords reading as empty after a PageMotor 0.11.3 or 0.11.4 update. After the core update, every secret this plugin had encrypted at rest came back blank, so anything that needed it failed with an authentication error until the value was typed in again. Nothing was deleted: the encrypted value was still in the settings row, but PageMotor 0.11.3 moved the site secret that opens it, and this plugin was still looking in the old place. It now finds the secret in both places, so an existing value opens again without re-entry, and a value that was re-entered in the meantime keeps working and is moved back under the site secret.
  • If you updated PageMotor and then re-entered a key or password, there is nothing to do. If you updated and have not re-entered it, this release restores it on the next page load.
  • Your API key is now stored encrypted. Until this release it sat in plain text in the plugin’s settings, where anyone holding an API or MCP connection to your site with permission to configure plugins could read it straight back out. Your site’s visitors were never able to see it.
  • Existing sites convert themselves the next time the plugin loads, once. There is nothing to re-enter and no key to replace.
  • Reading your settings over the API now returns a placeholder rather than the value, and writing that placeholder back leaves the stored secret untouched. Clearing it by submitting an empty value still works as before.
  • On hosting without encryption support the previous behaviour is kept and the reason is written to the log, because quietly discarding a working key would be worse than the exposure this closes.
  • Fixes “Your session has expired. Please reload to ensure your security.” on PageMotor 0.11. The message appeared on assistant actions taken by a signed-in user even though you were signed in perfectly normally, and whatever you were doing failed to save.
  • Nothing was wrong with your session. PageMotor 0.11 started handling part of the security check that this plugin was already handling itself, and the two together made every save look invalid. The plugin now checks whether PageMotor has already done it.
  • Visitors who were not signed in were never affected, on any version.
  • There is nothing to reconfigure, and nothing else changed.
  • The plugin now fails safely if its own bundled shared code is missing or damaged. Previously that took the whole site down with it. Now the plugin simply does not load, records why, and the rest of the site carries on. The build process also checks the bundle is intact before a release can ship.
  • No change when everything is healthy, which is the normal case.
  • Hardening only. A version mismatch in the shared suite code across your active plugins can no longer cause an error in this plugin’s admin screens. No change to what it does.
  • Fixes administrators being locked out of this plugin’s actions on PageMotor 0.10. The permission check used an older method that PageMotor 0.10 removed, and it failed closed. It now works on both 0.10 and 0.9.
  • Fixes the version number missing from the plugin’s admin header. It now shows correctly.

Initial release. The in-Admin Ask box: a server-side Anthropic tool-use loop over the read-only studio tools, with the key read from PageMotor’s AI Setup, a fixed read-only allowlist (mutations excluded), and admin and CSRF protection on the same wire as the rest of the EP Suite admin.