How AI Prompts Work

How do m18t's AI prompts work? Learn the System Prompt and User Prompt Template split, why prompts are editable records, and what the Locked badge means.

Every AI feature in m18t — content rewrites, SEO meta, news drafting, image briefs — sends the model two separate pieces of text: a System Prompt and a User Prompt Template. Understanding that two-part split is the whole mental model. Once you have it, the rest of AI Prompts & Brand Voice makes sense.

What you'll learn

  • The two roles every prompt is built from: System Prompt (persona + rules) and User Prompt Template (task + data).
  • Why m18t keeps prompts as editable database records instead of hiding them in source code.
  • Where prompts live, how the platform calls them by slug, and what "Locked" means.

The concept: two roles, one call

When m18t asks an AI model to do something, it doesn't send one blob of text. It sends two:

  1. The System Prompt — the persona and the rules. This is the standing instruction that tells the model who it is and how it must behave: "You are a copywriter for this brand. Write in its voice. Never invent statistics. Return JSON in this shape." The System Prompt is the same on every run of that feature. It sets the frame.

  2. The User Prompt Template — the task and the data for one specific run. This is where the actual work goes: "Rewrite the following article for a news post: {{content:body}}." The template carries placeholders (called injection tokens) that get filled in with the real title, body, brand name, and so on at the moment you click the button.

Think of it like a job. The System Prompt is the job description you hand someone on day one — who they are, what the standards are. The User Prompt Template is the individual ticket you hand them each morning — this article, this title, this brand. The model reads both together and produces output.

This separation is not decoration. Models genuinely treat the system role and the user role differently. Rules placed in the System Prompt are harder to knock loose by the content being processed — which matters when that content is a scraped news article that might contain text trying to redirect the model. m18t leans on this: untrusted external text (news bodies, form submissions) is wrapped and labelled as data, not instructions, and the standing rules stay in the System Prompt where they hold.

Why prompts are database records, not code

In a lot of products, the AI prompt is buried in source code. To change a single word, you file a ticket and wait for a deploy.

In m18t, every prompt is a first-class record you can open and read. Each one has a name, a slug, a category, a System Prompt, a User Prompt Template, a model, and a brand. The app calls a prompt by its slug — the SEO button calls the SEO prompt, the news pipeline calls the news prompts — so the wiring is stable, but the text is yours to inspect and, when warranted, tune.

That's the honest trade-off worth stating up front: because feature buttons are wired to specific slugs, the platform ships a set of tuned default prompts and marks them Locked. You can see exactly what they say, but you mostly steer them from a safer place — the Brand AI Profile — rather than rewriting the template itself. More on that below.

How a prompt runs, start to finish

Here's what actually happens when you click an AI button, in order:

  1. m18t looks up the prompt config by its slug, scoped to the active brand.
  2. It builds a context object — the brand's name, locale, and profile fields, plus the content you're working on (title, body, excerpt) and any tags.
  3. It composes a short brand preamble from your Brand AI Profile and prepends it to the System Prompt. Blank profile fields are skipped.
  4. It fills the injection tokens in both prompts with the real values.
  5. It sends the System Prompt and the filled User Prompt Template to the model you configured for that prompt.
  6. The output comes back into the editor as a draft for you to review. Nothing is published automatically.

How to read a prompt in the app

You don't need to write prompts from scratch to benefit from understanding them. To look at one:

  1. Open Configuration ▸ AI Prompts (/studio/config/prompts). The page is titled AI Prompt Configs.
  2. The list shows each prompt's name, slug, category, model, and brand. Platform defaults carry a Locked badge.
  3. Click a prompt to open it. You'll see two text areas: System Prompt and User Prompt Template.
  4. Read the System Prompt to understand the persona and rules. Read the User Prompt Template to see which injection tokens it uses.

You can add your own prompt with Add Prompt, but for the features m18t ships, the default prompts already exist per brand.

Variations

  • Generative vs. evaluative prompts. Some prompts write (a news rewrite, a caption); others judge (the news relevance scorer). m18t treats these differently: voice and style hints from your Brand AI Profile are injected into writing prompts but kept out of scoring prompts, so your brand's tone never contaminates a yes/no relevance decision. See The Evaluate Stage for a worked example of an evaluative prompt.
  • SEO prompts get extra context. Prompts in the SEO category have the resolved canonical URL injected with an explicit instruction not to invent URLs. See The SEO AI Prompt.
  • Per-brand models. Each prompt names which model it uses. You bring your own provider key — OpenAI, Google, or Anthropic — so the button stays disabled until a key is configured for the brand.

FAQ

Do I have to write prompts to use m18t's AI features? No. The platform ships tuned default prompts for every AI feature, per brand. Most of the time you steer output through the Brand AI Profile, not by touching prompts at all.

Why is the AI button greyed out? The feature needs your own AI provider key. m18t is bring-your-own-key — until you add an OpenAI, Google, or Anthropic key to the brand's vault, AI buttons stay disabled with a tooltip. See Why m18t uses BYOK.

What's the difference between the System Prompt and the User Prompt Template? The System Prompt is the persona and the rules — constant across every run. The User Prompt Template is the task and the data for one run, with injection tokens that fill in the real content. Both are sent to the model together.

Can I see exactly what gets sent to the model? You can read both prompt texts in the prompt editor, and the token badges show which values will be filled for the active brand (green) versus left empty (amber). The brand preamble is composed at run time from your Brand AI Profile.

Where do I change how the AI writes for my brand? In the Brand AI Profile — Positioning, Voice, Rules, Glossary. That's injected into every relevant prompt automatically, which is why you rarely need to edit a template directly.

What's next

Was this article helpful?