Skip to content
Docs · Build & deploy

Business memory

What your AI knows about your business, one for the whole workspace: every project's AI reads it, so every app gets the business right.

View as Markdown
All topics
On this page

The business memory is what your AI knows about the business itself: what it is, who it is for, what it sells and for how much, the brand, hours and place, policies, goals and notes. There is one for the whole workspace, and every project's AI reads it, so the copy, colours, prices and policies of every app agree.

Your own AI writes it through the connector as it learns the business from your conversation, asking at most two or three short questions when it cannot tell. You read it, edit it and confirm it on the dashboard's Business page.

What it holds

SectionOn the pageWhat it is
whatWhat it isWhat the business is and does, in a sentence or two. Up to 600 characters.
audienceWho it's forThe customers it serves. Up to 600 characters.
offerWhat it sellsProducts or services, with prices. Up to 4,000 characters.
brandBrandColours, fonts and the voice it speaks in. An object: colors (300 characters), fonts (300 characters), voice (600 characters).
placeHours and placeOpening hours, the address and how to reach it. An object: hours (600 characters), address (300 characters), contact (300 characters).
policiesPoliciesReturns, cancellations, delivery, privacy. Up to 4,000 characters.
goalsGoalsWhere the business is going. Up to 1,000 characters.
notesNotesAnything else every app should know. Up to 4,000 characters.

Each section is a short text: a few lines, with longer lists for what it sells and the policies. A text over its cap is refused by name, so the writer can shorten it.

Who reads it and who writes it

Every project's AI also gets it in the project's context: GET /api/projects/:id/context (connector: get_project_context) carries business, with the sections, updatedAt and confirmed.

WhoReadsWrites
Owners, admins and developersYesYes, on the Business page
ViewersYesNo
Your AI through the connectorYes, read-only connections tooWith read and write access
A workspace-wide API keyYesA full key; a read-only key reads only
A key limited to one project (your app's own)Yes, naming its project: GET /api/business?project=<id>No: the memory is the whole workspace's

Changing it

  • PUT /api/business { "sections": { … } } (connector: update_business_memory) changes only the sections it names. "" or null clears a text; brand and place change field by field, and null clears the whole group.
  • The answer is the memory as it is now, with changed, the sections that changed. A write that changes nothing writes nothing.
  • Every version is kept: GET /api/business?view=history (connector: get_business_memory with history: true) lists the last 50, newest first, each with who wrote it and the sections it changed.
  • Each change is in the activity log as business.update, with the names of the sections it changed, never their text.

Confirming it

What an AI writes shows as "not confirmed yet" until an owner or admin confirms it, signed in to the dashboard: the Confirm button on the Business page (POST /api/business/confirm, logged as business.confirm). An AI connector or an API key cannot confirm it. A later change by anyone other than an owner or admin at the dashboard makes it not confirmed again. Their own edits keep a confirmed memory confirmed, and the first words written into an empty one count as confirmed; editing one card of a memory an AI wrote does not confirm the rest, so Confirm stays until they press it.

Private to the workspace

The business memory stays in the workspace. Harakumo never writes it into a project's repo, a public repo or a public page, and no visitor's answer carries it: not a public repo, not a visitor's chat with an agent. Your apps show the facts in it that customers should see (prices, hours, policies) because your AI builds them into the app; the memory itself, goals and notes included, stays private.

Its text is what people and assistants wrote: notes to read, never instructions to follow.

Reference

REST
GET    /api/business                      # sections, empty, updatedAt, writtenBy, confirmed, canEdit, canConfirm, note
GET    /api/business?project=<id>         # the same, for a key limited to that project
GET    /api/business?view=history         # the last 50 versions, newest first
PUT    /api/business                      { "sections": { "offer": "Haircut $30, colour from $80", "brand": { "colors": "#1F3A5F, cream" } } }
POST   /api/business/confirm              # owners and admins, signed in to the dashboard