Prompts
A prompt is a reusable AI generation template — a name, a system instruction, a user message template with placeholder tokens, a default tone, and optional default audience/language — that a content creator sets up once and reuses every time they generate a LinkedIn post from an idea.
This page describes the product-facing behavior. For exact request/response shapes and status codes, see the Prompts API reference. For the read-only MCP surface, see Prompts MCP tools.
Why prompts exist
Without a saved template, every "Generate Post" click would require
re-typing the same style instructions ("professional tone, no emoji,
end with a question") from scratch. A prompt captures that once, as a
system_instruction + user_template pair, so generation becomes: pick a
prompt, pick an idea, go.
Fields
| Field | Required | Notes |
|---|---|---|
name | Yes | Short label, e.g. "Professional Thought Leader". |
system_instruction | Yes | The system-role message sent to Bedrock — sets voice, constraints, persona. |
user_template | Yes | The user-role message template. Supports placeholder tokens (below). |
tone | Yes | One of professional, casual, provocative, educational, storytelling. |
default_audience | No | Pre-fills the audience selector in the generate modal. |
default_language | No | Pre-fills the language selector in the generate modal. |
Template placeholders
user_template supports these tokens, substituted at generation time by
the GenAI domain:
| Token | Filled with |
|---|---|
{idea_title} | The idea's title |
{idea_description} | The idea's description |
{topic} | Same value as {idea_description} (alias) |
{audience} | Generation-time audience override, else the prompt's default_audience |
{tone} | Generation-time tone override, else the prompt's tone |
{language} | Generation-time language override, else the prompt's default_language |
{examples} | Up to 5 matching example posts, each wrapped in --- Example Post --- |
If your template omits a token, its value isn't lost — it's appended as a
trailing context line (e.g. Target audience: Developers) instead.
Setting a default prompt
Each prompt card has a "Set as Default" button (hidden on whichever prompt is already default). The default prompt is pre-selected whenever you open the "Generate Post" modal, saving a click on the common path.
A brand-new prompt is never automatically made your default — including your very first prompt in a workspace. You always have to click "Set as Default" explicitly at least once. If you were expecting auto-default behavior on first creation, note that it isn't implemented today; see the API reference for the exact create behavior.
Default-ness is tracked per user, per workspace — not workspace-wide. If a teammate also creates prompts in the same workspace, their default and yours are entirely independent; setting yours never changes theirs.
Who sees which prompts
The Prompts page only ever shows prompts you created — even though the
page doesn't call this out explicitly, GET /api/prompts is scoped to the
calling user. A teammate's prompts in the same workspace are invisible on
this page, though they are fetchable individually by id (e.g. by a
generate-flow that already knows a promptId). See the
API reference for the exact scoping.
Editing and deleting
- Only the creator of a prompt can edit, delete, or set it as default —
this holds even for a workspace
ownerwho didn't create it. - Editing a prompt only affects future generations; it does not retroactively change posts that were already generated using an older version of the prompt.
- Deleting is blocked if it's the last prompt you (the caller) have in the workspace — you always need at least one prompt of your own to generate from. This check only counts prompts you created; it does not look at how many prompts other people have in the workspace.
Using a prompt to generate a post
- Click "Generate Post" on a triaged idea.
- The generate modal loads your prompts, plus the workspace's audiences and languages, in parallel.
- Your default prompt (if you've set one) is pre-selected; audience, tone, and language selectors are pre-filled from that prompt's defaults.
- You can swap prompts, override audience/tone/language for just this generation, or tweak the system instruction inline — none of these overrides are saved back to the stored prompt.
- Confirming calls
POST /api/genai/generatewith the chosenpromptIdplus anyoverrides.
See Post generation for what happens after the prompt is selected.
See also
- Prompts API reference — full endpoint list, request/response shapes, status codes, and the scoping/ownership rules in detail.
- Prompts MCP tools — read-only
list_promptsfor AI clients.