How the three prompts fit together
Most LLM products give you one prompt. Fini’s three-prompt split exists because the agent is making three different kinds of decisions on every message, each with different inputs and failure modes:- Planning is reasoning about the message, it runs first, sees only the conversation, and answers: which rule applies, do I need to search the knowledge base? A bad Planning Prompt routes the message wrong.
- Main Guidelines are reasoning for the reply, they run after Planning has chosen a path, govern every reply, and answer: how should this be worded, what must I never say, what’s the structure? A bad Main Guidelines produces the wrong tone or breaks guardrails.
- Channel Prompts are adapting the reply to the surface, chat is short and conversational, email is long and formal. Same rule, different shape.
Sections and subsections
Inside each of the three prompts, instructions are organized into sections (e.g. Role Definition, Guardrails) and subsections (e.g. Agent identity, Restrict to Knowledgebase). Two reasons this matters:- Granular toggling, you can disable a single subsection to test whether it’s the cause of a behavior change, without rewriting the whole prompt. Pair this with Preview to confirm what actually compiles.
- Independent ownership, different sections can be owned by different teammates (e.g. legal owns Predefined Replies, support ops owns Tone), edited separately, and versioned independently.
Planning Prompt
The judgment layer. Before any reply is written, the agent reads the conversation and takes two independent decisions:- Which Rulebook rule applies, if any, picking a rule by matching the user’s intent against each rule’s description.
- Whether to search the knowledge base, independent of the rule decision; either, both, or neither can fire.
Controlling when the agent escalates
The most consequential thing the Planning Prompt decides is whether to hand the conversation to a human. The good news: you define what should trigger that handoff. Fini ships with sensible defaults, but the real value is in adding the escalation triggers that matter for your business, the patterns that, in your domain, should never be answered by an agent. Escalation triggers live inside the Knowledge Search – Decision Logic section, typically as an Escalation Topics subsection. Add a trigger by editing that subsection and describing the pattern in plain language; the planner will route matching conversations to a human and skip knowledge search. Defaults Fini gives you to start from:- Legal or regulatory issues, threats of legal action, regulator or ombudsman complaints, harassment, threats, self-harm, medical emergencies.
- Persistent human requests, the customer has explicitly asked for a human multiple times (
agent_request_count >= 3), or repeated the same unresolved issue (issue_repeat_count >= 3).
- High-risk operations, what actions, if the agent gets them wrong, would create serious downside? Identity issues, account-takeover signals, high-value transactions, sensitive data shared in-channel (last 4 of card, SSN), wire transfers, anything irreversible.
- Off-limits topics, categories your agent shouldn’t touch at all. Sales-team handoffs, partnership inquiries, press requests, security disclosures, anything legal has flagged.
- Domain-specific patterns, the things your support leads escalate on instinct that the agent should too. Specific product flows that always need a human (e.g. “fraud dispute,” “account closure with active balance”), edge cases your team has burned hours on, anything where the cost of a wrong answer outweighs the convenience of an automated one.
- VIP or sensitive accounts, if your CRM marks certain customers as priority, you can trigger escalation directly on the account attribute rather than the message content.
Main Guidelines
The execution layer. Once Planning has decided what to do, Main Guidelines control how the agent does it, the constraints, voice, and rules every reply obeys, regardless of which path Planning chose. Most teams’ configuration work happens in four sections: Tone, Formatting, Guardrails, and Incident Info. These are the day-to-day levers, tuning voice, shaping reply structure, enforcing what the agent must never do, and announcing live incidents to the agent. The rest of the Guideline Prompt Overview is shown below for completeness. Its overview is titled Guideline Prompt Overview. Common sections include:- Tone
- Formatting
- Guardrails
- Incident Info
Channel Prompts
Per-surface overrides appended to Main Guidelines when the conversation arrives on the matching channel. Its overview is titled Channel Prompt Overview and shows one card per channel, currently Email and Chat. Each channel card has the same shape as other prompt sections, status dot, description, subsection tags, edit pencil. Click the pencil on a channel to add subsections specific to that surface.When to reach for a Channel Prompt
Use a Channel Prompt when an instruction only makes sense on one surface, or when the same instruction needs to be expressed differently per surface.- Length and cadence, chat replies are short and conversational; email replies are paragraphed and complete. A “two sentences max” cap belongs on Chat, not in Main Guidelines.
- Greeting and sign-off rhythm, email threads re-introduce on the first reply of a new thread but not subsequent ones; chat greets once and never re-greets. Sign-off blocks differ in formality.
- Channel-specific operational rules, business-hours handling that only matters for live chat; escalation paths that route to different queues per channel; attachment policies that only apply to email.
- Language behavior, mirror the customer’s language in email (long, global threads) without repeating the rule on chat if it isn’t needed there.
Editing sections and subsections
Click the pencil icon on any section card to open the Edit section panel. The panel has three areas:Writing effective prompts
The model follows instructions more reliably when they’re written with the same precision you’d use briefing a new hire. A few rules of thumb that hold across all three prompt types:Be specific, not aspirational
LLMs interpret vague instructions inconsistently. The narrower the wording, the more reliably the agent follows it.Pair negatives with positives
A bare “never do X” leaves the model guessing what to do instead. Always tell it the alternative:- ✗ “Never share pricing.”
- ✓ “Never share pricing. If a customer asks about price, respond: ‘I’ll connect you with our team for current pricing details’ and escalate.”
One rule per subsection
If a subsection contains five unrelated rules, the model may follow three and skip two, and you can’t toggle them independently when debugging. Split unrelated rules into separate subsections so each one can be enabled, disabled, and reordered on its own.Show, don’t just tell, for rigid structures
When a reply needs a specific shape (greeting → body → sign-off; numbered steps; a particular escalation phrase), include a worked example inside the subsection content. The model uses the example as a template, which is more reliable than describing the structure in prose.Iterate with Preview, History, and Test Suite
The discipline that separates well-tuned prompts from drifting ones:Make one change at a time
Verify with Preview before saving
Test against representative conversations
Revert immediately if something breaks
Previewing the compiled prompt
Click Preview in the top-right of any prompt-type overview to open the Current Prompt Preview panel. It shows the full compiled prompt text as it will be sent to the model, every enabled section and subsection concatenated in order, with section tags inserted (<ROLE DEFINITION>, ## AGENT IDENTITY, etc.).
The footer states it plainly: “This preview shows only enabled sections and subsections.” Use it to verify that toggling a section or subsection off actually removes it from the compiled output before saving.
Version control
Every save snapshots the full compiled prompt at that point in time. Click History in the top-right to open the version list, then select any past version to open Compare with Version, a line-by-line diff against the current prompt, with additions and removals highlighted and the author and timestamp recorded. From this view, click Revert to this version to restore the snapshot as the active prompt, or Back to return to the version list. What version control is for:- Recovering from regressions, if a change produces unexpected behavior (wrong tone, missed escalations, fabricated information), open History, find the last known-good version, and revert. Faster than identifying and manually undoing which subsection caused the issue.
- Understanding what changed, if a customer escalation or quality review flags a problematic response, History tells you which prompt was active at that conversation’s time and who saved it. That helps you triage prompt-problem vs. knowledge-base-gap.
- Staging changes safely, use Preview to review the compiled output before saving, and History to roll back immediately if the live result isn’t what you expected.
Saving and rollout
After editing, click Done in the edit panel, then Save Prompt at the bottom of the left rail to commit.Why a prompt change isn’t taking effect
You forgot to click Save Prompt
You forgot to click Save Prompt
You're editing the wrong agent
You're editing the wrong agent
The section or subsection is disabled
The section or subsection is disabled
A Channel Prompt subsection is gated on the wrong channel
A Channel Prompt subsection is gated on the wrong channel
The conversation started before the change
The conversation started before the change
The change is overridden elsewhere
The change is overridden elsewhere

