← All posts

The Second Brain OS Dashboard: A Complete Reference to Every Tab, Button and Error

Umair KamilSep 1, 2026
The Second Brain OS Dashboard: A Complete Reference to Every Tab, Button and Error
Text size

Welcome to the Second Brain OS, and thank you for your purchase.

This is the full reference for the dashboard. You and I are going to walk every tab, every control worth knowing about, and, just as importantly, every way each one can fail and what to do about it. Keep it open beside you while you set up, and come back to it when something does not behave.

There are seven tabs across the top. They are not seven equal things. Two of them are where you work, three of them report back to you, and two you will visit rarely.


The one distinction that makes the whole dashboard make sense

Before any tab, there is one split, because every tab sits on one side of it.

Customer-facing agents talk to your customers. They live on WhatsApp, Instagram, Telegram, your website and the phone. There is one of them, it is yours, and it carries your behaviour, your knowledge and your tools. The common name for this in 2026 is an AI receptionist.

Business operations agents talk to you. They do the work behind the business: building your website, onboarding your team, reading your analytics. You never deploy these to a channel, because no customer speaks to them.

The two are configured in different places and run in different environments. Customer-facing lives on the Profile tab and deploys outward to your channels. Business operations lives in a harness on your own machine. Hold that split and the seven tabs sort themselves.


Signing in

There is no signup and no password. Second Brain OS accounts are created when you buy, and the dashboard only ever logs in existing users. You enter your email, you get a link, you click it.

Because of that, the login page has a small set of specific failures, and each says something different:

  • "No account found for that email. Second Brain OS access comes with a purchase." The email you entered has no account, and no link was sent. Almost always this is a different address to the one you paid with. Try the address on your receipt. You will see the same thing worded as "This email isn't registered" if you got as far as clicking a link.
  • "Enter a valid email address." The field was empty or missing an @.
  • "Could not verify your email right now. Try again." Your email could not be checked against the account list at that moment. This is transient, so retry.
  • "Failed to send the login link. Try again." Your account exists, but the email did not go out. Retry.
  • "That login link is no longer valid — it may have expired (15 minutes) or already been used, sometimes by an email scanner opening it first." Links last fifteen minutes and work once. The email-scanner cause is worth knowing: corporate mail security sometimes visits links to check them, which burns the link before you ever click it. Request a fresh one, and if it keeps happening, open the link from a personal address or a phone.
  • "That link is from our previous login system and no longer works." An old Softr-era link. Request a new one.
  • "Login is temporarily unavailable. Please try again later." A configuration problem on my side, not yours. Try again shortly.

If you land on the dashboard and see a "Securing your account" screen for about five seconds, that is expected and only happens after an API key refresh. It is a deliberate pause while your account's services come back to life. Let it finish rather than reloading.


Profile: where your AI receptionist is born

This is the tab you spend day one in, and the only tab that matters before you make a sale.

The agent configuration card

Six things define your customer-facing agent, and they are all here:

  • Behaviour: the system prompt. Personality, tone, what it refuses, and for most businesses, the facts about your company too.
  • Model: which AI model answers.
  • Thinking: how hard it reasons before replying.
  • Verbosity: how much it says.
  • Skills: prompt chains it can run for specific situations.
  • Actions: the tools it can actually call, like checking your calendar.

The Save button stays inert until something is genuinely different, and you get an unsaved-changes prompt if you try to leave mid-edit. Nothing about a live agent should change by accident.

What Save actually does, and why it matters when it fails. Saving is not one write. It writes your agent's configuration, then walks your Action changes one at a time: each newly added tool gets switched Active and Public, each removed tool gets switched Private. Adding a tool in that picker is what makes it reachable by your customers. Removing it takes it away.

The consequence is worth understanding, because it is the single most confusing failure in the dashboard. Those writes happen one after another and are not all-or-nothing. If one fails partway through, the changes before it have already taken effect on the server, but the card reports the whole save as failed. So you can switch a tool off, see a failure, assume nothing happened, and still have a live agent whose tools changed.

If a save errors, reload the page and look at what actually stuck before re-editing. Do not assume nothing happened. This is also the answer to "I removed a tool, the save failed, but my agent still uses it", and to its opposite.

A successful save flashes briefly and scrolls you down to the diagram. A failed one shows an error state for a couple of seconds. Note that this particular failure does not raise a pop-up message the way most of the dashboard does, so it is easy to miss if you look away.

The credential buttons

Just under the header sit three buttons for values that are stored securely and never shown back to you:

  • OpenAI API Key (sk-…): used for ChatKit and OpenAI-powered channels.
  • Calendly Token: lets your agent read availability and book meetings.
  • Update Data Webhook (https://…): where your agent posts collected lead and customer data.

Each opens a dialog, takes the value, and confirms with " saved". A failure shows "Failed to save ".

The important thing about entering a key here: the dashboard does not validate the key with OpenAI when you save it. A "saved" confirmation means it was stored, not that it works. If your agent then fails to answer, the key is the first thing to suspect. The two errors nearly everyone hits on day one are no key configured at all, and a key with no credits on the OpenAI side. Neither shows up when you save; both show up when you test the agent.

Because the value is never displayed back, there is no way to check what is stored. If you are unsure, save it again.

Refresh API Key, and the one thing to know before pressing it

There is a button to rotate your API key. It works, and it has a significant side effect that catches people out.

Refreshing your API key deactivates every service on your account. That is by design, not a bug. Your next sign-in automatically reactivates everything you own, which is what the five-second "Securing your account" screen covers, and that reactivation is billed. So refresh the key when you have a reason, not out of curiosity, and expect to sign out and back in afterwards.

If you refresh and then keep using the dashboard without signing out and in, things will fail with a message about a service not being active. That is the window this describes. A failure to rotate at all shows "Failed to refresh API key".

Uploading knowledge

The knowledge folder takes files, and the rules are strict:

  • Only .txt and .md files. Anything else is rejected with ": only .txt, .md files are supported". PDFs and Word documents are the common disappointment here. Convert to plain text or markdown first.
  • Between 1 byte and 25MB. An empty or oversized file is rejected with ": file must be between 1 byte and 25MB".

Each file uploads in three stages, and the progress bar moves in checkpoints rather than smoothly. It will appear to hang near the end. That is normal: the final stage is the slow one, because your file is being pushed downstream before it confirms. Give it time before assuming it has stalled. Success shows " added to your knowledge".

A failure at any stage shows "Failed to add " followed by the technical reason. That trailing reason looks like machine output because it is; if you ever need to report an upload problem, send me that whole line rather than a description of it. Nothing is half-added when a stage fails, so just re-upload the file.

If the whole knowledge folder is locked with an "Upgrade to unlock" label, knowledge is a product you have not bought. See the section below on locked controls.

Deleting message history

There is a button for clearing your agent's message history, and it deserves precision, because the name undersells it.

It wipes your agent's memory of conversations with your leads and customers across every channel. It does not delete the conversations themselves, which stay in the CRM for your records. It is the agent's memory that resets, not your paper trail. Use it when your agent has learned something wrong from a conversation and keeps repeating it.

Deletions of this kind ask you to type DELETE in capitals before the button arms. That is deliberate friction on an action with no undo.

On success it tells you how many conversations were cleared: "Message history deleted (N conversations)". A failure shows "Failed to delete message history".

Deleting your knowledge base is a separate, larger action. That button permanently removes everything you have ever uploaded, every file and note your agent draws on. Also DELETE to confirm, also no undo. It confirms with "Knowledge base deleted".

That one has a third outcome worth knowing, because it is not a crash: "Not deleted: ". This means the system deliberately declined and told you why, and the dialog stays open. Read the reason, because it is usually actionable. A plain "Failed to delete knowledge base" is a genuine error and worth retrying.

Keep the two straight: message history is your agent's memory of conversations, and clearing it is a normal maintenance action. The knowledge base is everything you have taught it, and clearing that means re-uploading from scratch.

The agent network diagram and the test window

Below the configuration, a diagram draws your agent in the middle with everything connected to it fanning out: the tools it can call, the skills it can run, the channels it answers on. Its job is to show you in one glance what you have actually built. If the diagram looks emptier than you expected, something did not save. Treat it as your verification step, not decoration.

Beside it is a test window. Talk to your agent there before a customer does. Phrase your test the way a customer would: ask "what do you charge for a deep clean" rather than "confirm your pricing knowledge is loaded". The first tells you something; the second tells you nothing.

If the test window returns nothing or errors, work through this order: is there an OpenAI key saved, does that key have credits on OpenAI's side, do you have Second Brain OS credits left, and did your last configuration save actually succeed.

The deploy card

The deploy card is split in two, because there are two genuinely different paths out.

Deploy to CRM covers WhatsApp, Instagram and your website. The button opens the Second Brain OS CRM, and each channel is roughly two steps to connect. Telegram works the same way. Once connected, the same one agent, with the same behaviour and the same knowledge, answers on all of them. If the button reports "Failed to open CRM", that is a session or provisioning problem rather than anything you have misconfigured; sign out and back in, and if it persists, it is one for me.

Deploy to ElevenLabs is voice, and it works differently. Voice does not run through the CRM. This side hands you three things to paste into ElevenLabs: your endpoint, your API key and your system prompt. That is what connects your phone line back to the same agent.

The rest of the tab

Further down are domain settings, and at the very bottom the journey table: every setup guide with a link out to each. Treat it as the index to what you own and what exists.

Domain settings have a prerequisite that trips almost everyone the first time: you must verify the domain before you can save it.

Verification means proving you own the domain by adding a DNS record. Specifically, a TXT record with the host _sbos-verify (so _sbos-verify.yourdomain.com), whose value is your user ID. The dialog gives you both values with copy buttons. Add that record at your domain registrar, then come back.

Two things about DNS worth setting expectations on. It is not instant: changes take a few minutes to propagate, sometimes longer, so a save that fails immediately after you add the record is not evidence you did it wrong. And the record must be TXT, not CNAME or A.

Both fields in the dialog, the domain and the public domain key, are required. The Save button stays disabled until both are filled.

Success confirms with "Domain settings saved". A failure shows the underlying reason from the server rather than a generic message, and it stays on screen for eight seconds specifically so you can read it, because that message usually tells you exactly what is wrong, most often that the verification record was not found yet.

If the copy button reports "Couldn't copy — select the text and copy it manually", that is a browser permission quirk rather than a fault. Select the text and copy it by hand.


Why a button might be locked rather than broken

This is the single most useful thing to understand about the whole dashboard, and it prevents most "is it broken?" questions.

Controls in Second Brain OS are gated by what you own, not by whether something is switched on. If you click something and see "Oh no! You don't have access to ", that is not an error. That capability was never provisioned to your account, because it belongs to a product you have not bought. The fix is a purchase, not a retry, and no amount of reloading will change it.

Locked controls show a padlock icon rather than their normal icon. Same signal, shown before you click.

Two details that cause confusion here. That message arrives as a neutral, informational pop-up rather than a red error, which is why some people describe it as "it didn't really error, it just said something". It is still a refusal. And on a slow connection a locked control can briefly look normal while the page works out what you own, so a control that seemed clickable a second ago and then refused is not misbehaving.

The name in that message is the internal name of the capability rather than the label on the button. If it means nothing to you, that is expected. Tell me the name and I can tell you which product it belongs to.

There is exactly one exception, and it is the API-key case above. If you see "This service may not be active. Try again in a moment, or re-open the dashboard to reactivate it.", that is different: you do own it, but it is temporarily inactive, which happens after an API key refresh. Sign out and back in and it resolves itself.

So: "You don't have access" means buy it. "May not be active" means sign out and in. They look similar and mean opposite things.

Why some errors are vague, and what to send me

Most of the dashboard shows a fixed message when a write fails: "Failed to save OpenAI API Key", "Failed to update actions", "Update failed". These are deliberately generic and they do not tell you the underlying cause, which means you genuinely cannot diagnose them from the message alone. That is a limitation to be aware of rather than something you are missing.

Three places do better and pass through the real reason, so read those carefully when you see them: domain settings, website tracking settings, and the agent test window. If a domain save fails, the message on screen is usually the actual answer.

Everywhere else, if a retry does not fix it, the useful thing to send me is what you were doing, which button, and the exact wording on screen. If you are comfortable opening your browser's developer console, the underlying error line there names the operation and a status code, and that pins it down immediately.

A rough guide to those status codes if you do look: 401 means your session expired, so sign in again. 403 means an ownership or active-state problem, which is the two-message distinction above. 404 on a read means something is misconfigured on my side. 500 means a server-side problem, also mine.


My advice for day one, and what it saves you

Write your system prompt. Pick your model. Press Save. Push it to your channels. Stop.

Do not start with knowledge, tools and skills. I mean this literally: most businesses never need a knowledge base at all.

The reason is worth understanding rather than taking on faith. A knowledge base is a separate store your agent searches by meaning before it answers. That is genuinely useful when there is too much to fit anywhere else. But if you run a cleaning company, an HVAC business, a plumbing outfit or a salon, then who you are, what you sell, what you charge and what you refuse all fit comfortably in the system prompt. And a fact in the system prompt retrieves more reliably than the same fact in a search index, because the agent reads the prompt every single time and only sometimes searches.

Knowledge earns its place when you have real volume. If you publish on YouTube, write newsletters, or run a website with a great many pages, you have more content than a prompt can hold and a knowledge base is the right answer.

For everyone else the better upgrade is tools: appointment booking, checking availability, rescheduling, cancellation. Those change what your agent can do rather than what it knows, and for a service business that is where the money is. An agent that can book is worth more than an agent that can recite.


Skills Marketplace: hiring, not configuring

The marketplace opens with a carousel of agents and a searchable list of skills below.

This is where you meet the business operations agents, and it is a different transaction to everything on Profile. There you configure an agent. Here you hire one already built. There is no system prompt to write and no behaviour to tune. A business operations agent arrives done: it asks a short set of questions about your preferences, then works.

If the list appears empty, check the search box before concluding anything is wrong; the list filters as you type and an over-specific query returns nothing.


My Agents: what you own, and where it runs

Every agent you own is listed as a card, showing what it is, which channels it works with, and a Start Chat button.

One thing that reads as strange until it clicks: an agent and a knowledge base are the same object in Second Brain OS. The button here says "Add Knowledge Base" and it creates an agent. That is not a labelling slip. A knowledge base is a thing that holds knowledge and can answer from it, which is an agent. Two words, one object, seen from two directions.

You can attach skills and actions to an individual agent from its card. Those are staged and written when you save, confirming with "Skills updated" or "Actions updated", or reporting "Failed to update skills" / "Failed to update actions". Note these are two separate writes: skills can save while actions fail, so read which message you got rather than assuming both landed.

If the attach controls are locked, that is the ownership gate again. Agent authoring is a separate product from owning agents.

Some controls on this tab are not built yet, and they tell you so. If you click "Add Knowledge Base", or "Update Knowledge", or the edit-behaviour or toggle-visibility items in a card's menu, you get an informational message ending in "Not wired yet". That is honest rather than broken: the button exists because the feature is coming, and clicking it does nothing but say so. Use the Profile tab's knowledge folder to upload knowledge in the meantime. The same applies to "Edit Description for AI" on the For Developers tab.

The harness, and the second half of the platform

Above the list is a banner about MCP, and this is where the platform opens up.

Your business operations agents do not run in this dashboard. They run in a harness: a program on your own machine that can hold an AI agent, connect to your accounts, and act on your actual files. Claude Code, Claude Desktop, OpenClaw, Cursor and Windsurf are all harnesses. The banner gives you a command to copy, already carrying your key. You run it once in your terminal and your operations agents become available inside your harness, with whichever model you prefer.

Two things about that command. It is displayed with the key masked but copies in full, so paste it somewhere private and treat it like a password. And if you buy something new mid-session, your harness will not see it until you reconnect, which in Claude Code means running /mcp. A newly purchased tool that "does not exist" is nearly always this.

That connection is the moment Second Brain OS stops being a dashboard and becomes an operating system. The customer-facing side deploys outward to your channels. The operations side deploys inward to your desk.

What an operations agent actually does

The clearest example is the SBOS Website Operator, because it shows the whole shape.

It builds your website end to end: pages, navigation, copy. Then it wires that website to your data, so your products, services and team load from your account rather than being typed into code. And this is the part that matters. Add a service to your account, and your website updates and your customer-facing agent updates. Same instant, same edit. Your website and your WhatsApp agent quote the same price because they read the same record.

There is a team and calendar agent that works the same way: it onboards your people, sets each person's services, and sets their availability per service, because somebody offering discovery calls on Mondays and Fridays but not midweek is entirely normal. Then it connects that to both your website and your customer-facing agent.

There is an analytics agent I am building next. It reads which pages get viewed and which products draw interest, and helps you decide on your Meta and Google ads. Or decides for you, if you are comfortable with that much autonomy.


Billing & Logging: what you spent and on what

Second Brain OS is pay as you go. There is no monthly subscription. A month where you do not use it is a zero dollar month, and that is a real outcome rather than a technicality.

Credits are bought in advance. Nothing auto-deducts and nothing bills you quietly. You click Add Credits, top up through Stripe, and you have credits. At the time of writing that is $0.02 per credit with a $50 minimum, which is 2,500 credits, and ample to get going.

This tab shows your balance and the log beneath it: which tool was called, how often, and what it consumed. Every call is here, whether it came from your customer-facing agent, from an operations agent in your harness, or from your website. The log pages as you scroll rather than loading everything at once.

Which is the honest trade, and I would rather state it plainly than bury it. You use more, you pay more. What you avoid is the other model, the one you and I both know: five or ten separate subscriptions, most barely touched, all renewing, each kept because you might use it next month. This is one place instead of ten, billing only for what ran.

Running out, and what stops

A banner appears dashboard-wide at 100 credits or fewer, amber, reading "Low balance — N credits left". At zero it turns red and reads "You're out of credits". Both carry the same warning: "Metered services — skills, agent replies, and website-analytics tracking — stop working at zero."

Take that literally, because the failure is quiet rather than loud. At zero credits your agent stops replying to customers and your website analytics stop recording, and neither announces itself. If your agent has gone silent for no apparent reason, check your credit balance first. It is the most common cause and the easiest to miss.


Activity: what your agents got done

Billing and Logging tells you what was spent. Activity tells you what was achieved. Different questions, separate tabs.

When a business operations agent works, it records the milestones it completed. This tab charts those over a day, a week or a month. Read it the way you would read a progress report from a team member: not "how many calls" but "what got finished".

If it is empty, that usually means what it says. Activity is populated by operations agents running in your harness, so if you have not connected one yet, there is nothing to show.


Analytics: your website, tracking, and return

The last tab covers your website, and it only becomes useful once you own the Website Operator.

At the top are your website tracking settings. Saving them confirms with "Website tracking settings saved. Changes reach your live site after the next sync." Note that second sentence: changes are not instant on your live site, so do not judge whether it worked in the first minute.

Two specific failures here are worth knowing, because each has a precise fix:

  • "Set your data webhook first (Profile → Update Data Webhook)." Exactly what it says. Tracking needs somewhere to send data. Go set that credential on the Profile tab, then come back.
  • "Your stored tracking config is corrupt and can't be updated safely — contact support to fix it." Rare, and genuinely one for me rather than something to retry. Get in touch.

Anything else shows "Failed to save tracking settings", which is worth one retry.

Two more things about this form. The analytics toggle and the CRM-contact-update toggle move together, because they are two faces of the same setting. That is intended, not a glitch. And the forward-to-webhook toggle stays disabled until you have set a data webhook on the Profile tab, with a note underneath telling you so.

If you have conversion tracking, you will also see fields for your Facebook Pixel ID, your GA4 measurement ID and your brand name. Alongside them is a field for a CookieYes consent ID, and it is worth filling in: without it your visitors see no consent banner and can only be tracked anonymously.

Only the fields you actually changed get sent when you save, so you do not need to re-enter anything you are leaving alone.

Below that sits the ROI calculator, and further in, your analytics dashboard: which pages get viewed, how often, from which countries, on which devices and browsers, privacy-compliant throughout. If the analytics button is locked, you have not configured a domain yet; save your domain on Profile and it unlocks.

I go far deeper into this in the Website Operator material, because analytics is really a conversation about attribution rather than pageviews. The point for this tour is simpler: connect your digital storefront to the same system that runs your agents, and you see the whole loop instead of two disconnected halves.


For Developers

One tab most people never need.

It holds your MCP endpoint, your API key, your system prompt and your OpenAPI schema, alongside your Actions and Skills as individual cards. Each Action can be activated, exposed and have its logging tuned, confirming with "Updated" or reporting "Update failed".

The visibility setting on an Action is worth explaining, because the words mislead. It is not a privacy control, it is the attach mechanism. Public means your customer-facing agent can use the tool on every deployed channel. Private means you can reach it in your own harness but your deployed agent cannot. Ignored hides it everywhere. So if a tool works for you in Claude Code but your WhatsApp agent will not use it, this setting is the reason.

There is also a schema download here, for generating an OpenAPI schema against your account. If it fails it reports the underlying reason rather than a generic message.

Account deletion lives here but is not yet self-serve. The button is deliberately disabled, and the panel says so: in-app deletion is coming soon, and in the meantime you request deletion by emailing umair.kamil@secondbrainos.com or newsletter@umairkamil.com from your account email address. If you are trying to delete your account and the button will not respond, that is why. It is not broken; it is not switched on yet.


When something goes wrong: the short version

Eight checks, in the order that resolves the most cases fastest:

  1. Check your credit balance. At zero, agent replies and tracking stop silently. This is the most common cause of "my agent stopped working".
  2. Check your OpenAI key, and whether it has credits on OpenAI's side. These are the two day-one failures, and neither shows up when you save the key. Only when you test the agent.
  3. Read whether it says "don't have access" or "may not be active". The first needs a purchase. The second needs you to sign out and back in.
  4. After any failed save, reload before re-editing. Saves are multi-step and can land partially, so look at what actually stuck rather than assuming nothing did.
  5. Check the agent network diagram. If it is emptier than expected, your last save did not take.
  6. If you just bought something, reconnect your harness (/mcp in Claude Code). New purchases are invisible to an already-running session.
  7. If a tool works for you but not for your customers, check its visibility on the For Developers tab. Private means you can reach it and your deployed agent cannot.
  8. If your agent answers wrongly rather than not at all, that is behaviour, not infrastructure. Check the system prompt, and consider clearing message history if it has learned something wrong.

And if a message ends in "Not wired yet", the feature is genuinely not built yet. Nothing to fix.


Where to go from here

Seven tabs, and only two need you this week.

Profile is day one: write the prompt, pick the model, save, deploy to your channels. Skills Marketplace is day two onwards, when real conversations have told you what your agent could not do and needs a tool for.

The rest report back: Billing and Logging on cost, Activity on output, Analytics on the website. My Agents is where the operations half opens up once you connect a harness. For Developers waits until you need it.

Start with the receptionist. Get it live where your customers already are. Everything else here is built to be added later, deliberately, once you have a real reason.

That was Part 4 of 4.

Leave your email and I'll send the walkthrough.