Developer section of the dashboard
The developer tooling has a home in the Octane AI dashboard under Developer (in the menu, between Integrations and Billing). It is where a store admin creates keys and webhooks, watches requests and deliveries, and downloads exports. Every tab but Storefront JS (which is a static reference) reads the store the dashboard is on; switching store reloads it and closes anything that was open.
Seven tabs, in order: API keys, Webhooks, Storefront JS, API logs, Exports, Activity, Limits.
On a store whose plan does not include the API, every tab but Exports shows an upgrade card instead of its content (“Developer access is included from Plus”); the card is driven by the server’s 403 plan_required on the keys request, not by anything hidden client-side, so there is no sample data to click through. Exports are available to every admin on every plan.
API keys
Section titled “API keys”The list of the store’s keys with “N keys in use” (keys that are neither revoked nor expired), and a New API key button. Columns: Name, Key, Permissions, Created, Last used, Status, and a Revoke action.
- The Key column shows only the readable head and the last four characters (
oct_live_7Qx...9f3a); the full key is never shown again after it is created. - Created reads the date plus “by you” or “by
<that admin's email>” (“by another admin” once the account is gone); Last used is relative (“4 minutes ago”) or “Never”. - Status is Active, Expires
<date>, Expired or Revoked<date>.
New API key asks for a name (required, up to 80 characters), the permissions (at least one; each is one scope: Read analytics, Read people, Read quizzes, Edit quizzes, Publish quizzes, Manage webhooks) and an optional expiry (a date and time in the future). On success the dialog shows the full key once, with Copy and the warning that this is the only time it is shown; I have copied it, the header X or a click outside closes it, and the key is not shown again. A key is always minted under the admin who is signed in.
Revoke asks first (“Anything still using this key stops working within two minutes. This cannot be undone”) and shows the row as Revoked afterwards. If the store’s plan lost API access in the meantime, creating or revoking says so.
Webhooks
Section titled “Webhooks”The store’s endpoints (“We POST to your address the moment something happens on a quiz, and keep trying if it does not answer”), a chart of delivered and failed deliveries over 7 or 30 days, and a New webhook button. Columns: Address, Events, Contact details (whether the endpoint includes email addresses and phone numbers), Last delivery, Status.
New webhook asks for the address (a public https address; reachability is proven by the verification ping), an optional description (“A few words about what this address is for”), the events to send (Quiz started, Quiz finished, Quiz abandoned, New person, Person updated, Quiz published, Export finished) and whether to include email addresses and phone numbers (off by default: contact details and contact answers are left out, everything else in the message stays). On success it shows the signing secret with the warning “Copy it now.” and three buttons: Copy, Send test and I have copied it.
Opening an endpoint shows its details and status (Active; Waiting for its first delivery; Failing since <date>, or Failing; Disabled: you turned it off, or Disabled when Octane AI turned it off; Paused: your plan does not include webhooks, with a note that nothing waits to be sent once it comes back), the description with an inline Edit description / Add a description, a chart of this endpoint’s deliveries, the signing secret behind Reveal secret (“Shown until you leave this endpoint. Ask again to see it later”), Replace secret, Turn off / Turn on, Send test and Delete (the confirmation button reads Delete webhook). Below, the deliveries with a Result filter (Any result, Delivered, Trying again, Gave up, Waiting): Time, Event, Result (Waiting, Trying again, Sending, Delivered, Gave up, or Skipped: plan paused), Tries, Code, Event ID (a button that copies it), the stored response expandable per row, and Show older. A delivery that is not Delivered and not Skipped can be resent with Redeliver, and Redeliver failures from the last 7 days resends them all. The same actions exist on the API; see Webhooks.
Storefront JS
Section titled “Storefront JS”The install snippet to paste before the quiz loads (“Nothing else to install: the API ships with the quiz itself”), the list of the events with when each fires and what it carries, the methods you can call, and a link to the Storefront JS API guide.
API logs
Section titled “API logs”Every authenticated call made with the store’s keys; the tab shows the last 30 days. Filters: Period (Last 24 hours, 7 days, 30 days; 7 by default), Result (Any result, Worked, Not allowed, Not found, Refused, Slowed down, Failed on our side) and Path (the route as the API defines it, matched exactly: /v1/quizzes or /v1/quizzes/{quiz_id}). Columns: Time, Method, Path, Key, By, Result, Time to respond, Request ID. The Request ID cell copies the whole id: paste it in a support conversation and we can look up exactly what happened. Calls show up within a few seconds; Show older loads the next page.
Exports
Section titled “Exports”“Ask for a file of your people, quiz responses or quiz analytics. Files are built in the background and kept for 30 days.” (up to 30 days: erasing the store’s shopper data removes them earlier). Choose People, Quiz responses or Quiz analytics and click Request export; a toast says “We’ll email you when it’s ready”. Asking for a dataset the store is still building is refused (“An export of this dataset is already being built; wait for it to finish”).
The table lists every export, from the dashboard or the API: Dataset, Requested (the date plus “by you”, “by another admin” or “by API key”), Rows, Status (Ready until <date>, Building, Failed with “The file could not be built. Request it again.”) and Download, which asks for a fresh link good for 15 minutes each time. The list refreshes every five seconds while a file is building. The admin who asked from the dashboard is emailed when the file is ready; a file requested with an API key is not.
The People page’s own Export CSV queues the same job with the People page’s quiz, date range and answer filter, and lands here too. See Exports for the columns.
Activity
Section titled “Activity”Everything anyone changed in this section, newest first: When, Who (“You”, the admin’s email, or “A store admin” once that account is gone; “Key: <name>”, or “An API key” once the key is gone; “A connected app”; “Octane AI”) and What (“Created the API key “Reporting"", “Revoked the API key “Reporting""; other actions, such as a webhook created, a secret revealed, a test sent or an export link issued, read as their action name in words).
Limits
Section titled “Limits”“How much this store can ask of the API. The allowance refills continuously, so a short burst is fine and a steady stream is what counts.” The card names the plan and three numbers: requests one key can make at once (capacity on GET /v1/store), requests per second per key after that (leak_per_second), and requests all of your keys can make at once (the store-wide allowance, capacity times the store multiplier); a bar shows what is in use right now across all keys, read live. See Rate limits.
