Business correspondence with AI: letters, replies and tone without bureaucratese
How to get letters from a model that do not sound like boilerplate: request structure, ready prompts, a company tone profile and a pre-send check.
4 min · · автоматизация · бизнес
AI for business letters saves time on the dullest part: the first draft, polite formulas and rephrasing harsh wording. But a request like "write a letter to the client" gives you an averaged template full of bureaucratese and empty courtesies. Below is a way to get letters you can send after a short edit: what a good request consists of, ready prompts for typical situations, how to lock in a consistent company tone and how to build all that into code.
What a good request consists of
The model needs five things. If any is missing, it fills the gap with an averaged version.
- Who writes to whom. The author's role, the addressee's role, how well they know each other.
- The purpose of the letter. What the addressee should do or understand after reading.
- Facts. Dates, amounts, order numbers, agreements. The model should build the letter only from these.
- Tone and length. "Restrained, without apologising every other word, under 120 words".
- What is off limits. Do not promise deadlines, do not admit fault, do not mention discounts.
The last item often decides everything: a model tends to promise and apologise more than needed.
Prompt templates
Substitute your data in the square brackets.
Business letter.
Write a business letter from [position, company] to [position, company].
Purpose: [agree on a call / request documents / confirm deadlines].
Facts: [list of facts].
Tone: polite, to the point, no bureaucratese. Up to 120 words.
Do not add facts that are not in the list. Subject line on its own line.Reply to a complaint.
The client wrote: "[complaint text]".
Facts on our side: [what happened, what we have already done].
What we are ready to offer: [refund / replacement / inspection].
Write a reply: acknowledge the client's problem, do not make excuses, name the
next step and the deadline. Do not admit legal fault and do not mention
compensation that is not in the list. Up to 150 words.Reminder about a payment or a reply.
This is the second reminder. The first was sent on [date]. Needed: [action].
Deadline: [date]. Write a short letter: polite, no reproach,
with a clear next step. Up to 70 words.Softening harsh text. Paste your draft and ask: "Rewrite so the meaning and requirements stay but the tone becomes calm and respectful. Show what exactly you changed." The last sentence is there so you can see whether a requirement got lost.
Editing without rewriting. For the "AI for editing texts" request, phrase it differently: "Fix errors and style but do not change the meaning or structure. List the edits." That way you control the result instead of receiving a new text.
How to keep a consistent company tone
When letters are written by different people, the tone drifts. The solution: describe the tone profile once and substitute it into every request as a system message.
Company tone profile:
- address people formally, by first name and patronymic if known;
- short sentences, no phrases like "for the purpose of carrying out";
- apologise no more than once, state the reason and the deadline;
- signature: name, position, phone;
- forbidden: "dear colleagues" in letters to clients, exclamation marks,
deadline promises without confirmation from the department.
Add 2-3 successful letters to the profile as samples.Samples work better than rules: the model copies the intonation instead of only following prohibitions literally. More on the technique with examples: few-shot in prompts.
Code example: a draft generator with a tone profile
from openai import OpenAI
client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")
TONE = open("tone_profile.txt", encoding="utf-8").read()
def draft_letter(task: str, facts: str) -> str:
resp = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[
{"role": "system", "content": TONE},
{
"role": "user",
"content": (The tone_profile.txt file holds the profile and samples. Do not automate sending: a draft should pass under an employee's eyes. A detailed look at sorting incoming mail and drafting replies: AI for processing email. Full endpoint description: Chat Completions.
What it costs
Russian text takes more tokens than English; in the calculation we assume 2-3 tokens per word as a rough guide, and you will see exact numbers in the "Usage" section. Assumptions: a tone profile with samples is 1,000 tokens, a request with facts 500, the letter in the output 500. Per letter that is 1,500 input tokens and 500 output. For 1,000 letters a month: 1.5M input and 0.5M output. Formula without cache: input × input price + output × output price. Prices as of October 18, 2026, $ per 1M tokens:
deepseek-v4.1-flash(0.013 / 0.038): 1.5 × 0.013 + 0.5 × 0.038 = 0.0195 + 0.019 = $0.0385.gpt-6.1-sol(0.27 / 1.32): 1.5 × 0.27 + 0.5 × 1.32 = 0.405 + 0.66 = $1.065.claude-sonnet-5-5(0.4 / 2): 1.5 × 0.4 + 0.5 × 2 = 0.6 + 1.0 = $1.60.
The tone profile repeated at the start of every request can be cached; cache conditions differ between models, and for Claude the discount works in the Anthropic format. More: how cache reads and writes are billed.
We cannot say in advance which model will convey your intonation better: take 10 typical letters and compare two or three models blind. For mass reminders a cheap model is often enough, while for complex complaint replies you can take a stronger one. Fresh prices are always in the GET https://api.zukko.pro/v1/models response.
Check before sending
- Do all facts in the letter match yours: amounts, dates, numbers. A model can "adjust" a figure.
- Are there promises you did not make.
- Is there personal data that has no business in the letter. Do not send the model extra client data: what the letter needs is enough.
- Legally significant letters (complaints, termination, contractual notices) need a lawyer's review.
To run the script you need a fetch_... key from the dashboard. The dollar balance is topped up via SBP, a MasterCard card or cryptocurrency.
FAQ
Will recipients notice that a neural network wrote the letter?
An averaged template is noticeable. A letter with your facts, a tone profile and a human edit reads like an ordinary one. In any case you are responsible for the content.
Can I send letters automatically?
For routine reminders with rigid templates, yes; for everything else a human check is better. A mistake in an amount or an unneeded promise costs more than the minutes saved.
How do I stop the model from inventing facts?
Give a list of facts and write: "use only these, ask a question if data is missing". After getting a draft, check numbers and dates against the source.
What should I choose for editing texts?
Start with a cheap model and check the result on 10 real texts. If the meaning sometimes gets lost, move to a stronger one from the catalog.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- AI for testers: test cases, checklists and bug reportsHow a QA engineer can use a model for test cases, checklists and bug reports, check coverage, and avoid requirements the model made up.
- Anonymizing data before sending it to a neural network: a practical wayYou do not have to send personal data to a model for it to process a document. How to replace it with labels, restore it in the answer and check that nothing leaked.
- A neural network for HR: job posts, candidate emails and resume reviewA model can draft job posts and emails and do a first-pass resume review. What to hand over, how to treat candidates' personal data and how to prevent biased decisions.
- Generating an FAQ with a neural network from tickets and a knowledge baseA good FAQ is built on what customers really ask. A pipeline: group the tickets, answer from the knowledge base with a source reference, and verify the result.