User's default prompt
Repeating the same instructions to the AI in every conversation — "answer in formal Portuguese", "cite the legal basis", "be concise" — is manual work that should not exist. With the user's default prompt, each person's preferences are written once, in their registration, and the platform applies them automatically to every interaction of that person with the AI, in chat and in the copilot.
Unlike the domain (system) prompt, defined by administrators and valid for every user of a context, the default prompt is individual: each registered user has their own.
Where it lives
The prompt is part of the user's registration, managed in by whoever can edit registration data (USERS_EDIT):
- At registration: the Novo Usuário dialog has the optional field Prompt padrão do usuário. It is saved right after the account is created; if that step fails, the user is still created and the screen warns "Usuário criado, mas o prompt padrão não pôde ser salvo. Ajuste na edição."
- In the detail view: when you open a user, the Prompt padrão do usuário section shows the current text, the character counter (8,000 limit) and the Salvar prompt button. Leaving it blank and saving removes the prompt.
Until September 2026 there was a self-serve Meu Prompt screen in the Security group. It was removed: it wrote a field name different from the one the server read — the field opened empty and saving erased the text — and it created a second place for the same data. The data is the same; what changed is who manages it and where.
Worked example — standardizing an analyst's answer style
- Open and select the analyst.
- In the Prompt padrão do usuário section, write, for example:
Responda sempre em portugues formal.
Cite a base legal de cada afirmacao (artigo e lei).
Liste sempre os numeros de processo mencionados.
Seja conciso: prefira listas a paragrafos longos.- Click Salvar prompt. The notice "Prompt padrão salvo." confirms.
- From the next message on, that user's conversations in already come in the requested format — formal, with the legal basis cited and case numbers listed — without repeating any instruction in the question.
Security recommendation: do not include sensitive data in the prompt. The text is added to the context sent to the AI provider.
How the instructions are applied
- Appended, never replacing: for each message, the platform builds the domain prompt and, in parallel, fetches the logged-in user's default prompt. If it is not empty, it is appended at the end, between clear markers:
<domain prompt>
=== INSTRUCOES PERSONALIZADAS DO USUARIO ===
<user's default prompt>
=== FIM DAS INSTRUCOES DO USUARIO ===When a persona is active in the conversation (see the Search guide), the persona block comes BEFORE the user's instructions. System rules still apply — personal instructions that conflict with them may not prevail.
- Always the latest version: the prompt is read on every conversation. Saved means applied — from the next message on.
- The conversation never fails because of the prompt: the lookup is best-effort, with a 5-second time limit. If the instructions cannot be loaded in time, the conversation proceeds normally without them, with no warning on screen.
Use through integrations
Two paths write the same data:
| Path | Who | Permission |
|---|---|---|
| Registration path, by e-mail | whoever manages the registration | USERS_VIEW to read, USERS_EDIT to write |
Own-user path (me), identified by the token | the user | any authenticated user |
Both are described in the API reference.
The write body is {"customPrompt": "..."}; an empty string erases the prompt and a body without the field is refused with 400. The text is trimmed before saving and, above 8,000 characters, it is refused with 400 and the count in the message — never silently truncated. Writing to an e-mail that is not in the identity registry answers 404. Reading through the me path returns empty text when there is no prompt, never a technical error.
| Situation | Message shown |
|---|---|
| Text above the limit | "O prompt padrão tem N caracteres; o limite é 8000." |
| User not registered | "Usuário não cadastrado: e-mail" |
| Save failure | "Não foi possível salvar o prompt padrão. Tente novamente." |
How to operate it (administrator)
- The text is stored in the
customPromptproperty of the:UsuarioSistemanode, in the users' system database (the samedattadatabase as the identity registry). To inspect it from the console:
MATCH (u:UsuarioSistema {email: 'usuario@exemplo.com'})
RETURN u.customPrompt AS prompt- The node is created by MERGE on the e-mail, both by the registration replication and by the prompt write — saving the prompt right after creating the account works even if the replication has not arrived yet, and the replication never overwrites the prompt. Uniqueness of
UsuarioSistema.emailis guaranteed by a constraint applied at the user service startup (idempotent) and recorded in the Neo4j index scripts. - The user registry is kept in a two-layer cache; saving the prompt invalidates it entirely.
- Audit: every write emits the
USER.PROMPT_UPDATEDevent with actor, target, origin (adminthrough the registration,selfthrough themepath), text length and whether it erased — without the text, which may contain whatever the person chose to write. - Observability: the call between modules and the read/write on the graph appear as spans correlated by the same
trace_id.
Limits and expectations
- Size: 8,000-character limit, refused above it.
- Scope: the prompt applies to the user, across all contexts and workspaces — there is no per-context prompt.
- Precedence: the prompt is appended, it never replaces the domain prompt; the conversation's persona, when there is one, comes before it.
- Silent degradation: under high latency, the conversation happens without the instructions and without warning the user.
Related pages: search and chat guide, users (administrator guide), security model.