list_templates and can be rendered by generate_template.
This page covers the status lifecycle, the scope model, and how scope precedence resolves when more than one template shares a key.
Status lifecycle
Templates live in one of two states:Draft
Author-only. Doesn’t appear in
list_templates. Cannot be rendered by generate_template. Use for in-progress work, A/B variants, or anything you want to keep private to yourself.Active
Published. Visible to every agent connected to your Deal Brain MCP server, scoped by the template’s visibility (see below). Callable by key.
Saving vs. publishing
There’s no separate “publish” action — toggling Status toActive and clicking Save publishes. Likewise, toggling to Draft and saving unpublishes.
Naming and discoverability
Your template’s name and description are what agents see when they calllist_templates. Treat them as the agent-facing documentation:
- Name should be short and unambiguous.
Opportunity readout (3-paragraph)is better thanBrief. - Description should tell an agent when to pick this template over another. “Three-paragraph brief covering deal context, last meeting, and next steps. Use for daily standup prep.”
Scope: who can see a template
Every template has a scope that defines its audience. There are three:| Scope | Authored by | Visible to | Editable by |
|---|---|---|---|
| System (Preset) | Deal Brain | Everyone in every workspace | Deal Brain only — read-only for customers |
| Organization (Team) | Anyone in your org | Everyone in your org | Anyone in your org with template-author permission |
| User (Personal) | An individual | That individual only | That individual only |
Precedence
When an agent callsgenerate_template by key, multiple scopes can hold a template with the same key. Deal Brain resolves the most-specific scope visible to that user:
daily-brief System template — there’s now an Organization-scoped daily-brief that includes your team’s specific KPIs. You personally further customize it for your own use — a User-scoped daily-brief.
When your agent calls generate_template({ key: "daily-brief" }):
- Deal Brain checks for a User-scoped
daily-brieffor you. Found → use it. - (Falls through if not found.) Check Organization-scoped → use it.
- (Falls through if not found.) Use the System-scoped default.
daily-brief — get the Organization-scoped version. Customers in a different organization get the System default.
Precedence applies per user. A User-scoped template only overrides for the author. Your personal customization doesn’t leak to teammates.
Scope changes are not retroactive
If you change a Draft template’s scope from User to Organization, it becomes visible to your org only after you save. There’s no historical “this used to be a User template” leak — but historical agent runs that rendered the User-scoped version remain attributed to that scope in trace metadata.Editing a published template
A live template can be edited in place — change the content, save, and the next render uses the new version. Two things to know:- Edits take effect immediately on save. There’s no review step. If your org wants a review workflow, gate it socially (PR-style “show your teammate before saving”) or use the Draft → Active toggle as a manual approval signal.
- Renders in progress are not affected. A render that’s already begun completes against the version it loaded. Subsequent renders use the new version.
Deleting a template
| Scope | Deletion rules |
|---|---|
| System | Cannot be deleted. You can clone, override, and ignore — but the System version remains as a fallback. |
| Organization | Anyone in the org with template-author permission can delete. Deleted templates soft-delete (recoverable for 30 days). |
| User | The author can delete their own. Soft-delete with 30-day recovery. |
What happens after publish
The moment you save an Active template:- It appears in
list_templatesoutput for every user it’s visible to. - It can be rendered by
generate_template({ key })over MCP. - Renders emit Langfuse traces tagged with the template’s key, status, and scope for audit.

