This five-step workflow gets a customized engagement letter out the door in under four minutes — down from the 20-to-25 minutes most solos spend copying, pasting, and second-guessing their master template.

The workflow is built for solo lawyers and firms of two to ten attorneys who already have a master engagement letter template and some form of intake process — even a simple intake questionnaire in Google Forms, Clio, or MyCase. You do not need a dedicated document automation tool. You need ChatGPT (GPT-4o) or Claude 3.5 Sonnet, a copy of your template, and about thirty minutes to set the system up once. After that, each new matter takes four minutes or less.

What You’ll Need

  • Your master engagement letter template (Word, Google Doc, or plain text — any format works)
  • An intake form that captures: client name, entity type, matter type, fee arrangement (flat or hourly), rate or flat fee amount, scope of representation, and jurisdiction
  • ChatGPT Plus (GPT-4o) or Claude.ai (Sonnet or Opus) — either works; GPT-4o handles longer templates with fewer truncation issues
  • Your practice management software (Clio, MyCase, Lawmatics, or even a spreadsheet) to store the completed letter and link it to the matter
  • A short review checklist — covered in Step 5

Step 1: Capture Matter Facts at Intake (Your Existing Form)

Do not create a new intake process. Use the one you already have. The only requirement is that it produces eight specific data points in a consistent location — either a completed form you can copy from or a matter record in your practice management software you can read from.

The eight fields the prompt needs: (1) client full legal name, (2) client entity type if applicable (individual, LLC, corporation), (3) matter description in one or two sentences, (4) fee type — flat fee or hourly, (5) fee amount or hourly rate, (6) billing terms (net-30, retainer amount, payment plan), (7) scope of representation — what’s included and what’s explicitly excluded, and (8) jurisdiction of the matter.

If your current intake form is missing any of these, add them now. In Clio, these map to custom matter fields. In MyCase, they sit in the matter details panel. In a Google Form, just add the fields. The point is consistency: the AI prompt in Step 2 expects these labels by name, so if your intake says “billing rate” and the prompt says “hourly rate,” you get mismatches.

Once intake is complete, copy the eight field values — either by exporting a matter summary from your practice management software or by pulling directly from your intake form submission. You will paste this block into the prompt in the next step.

Step 2: The ChatGPT Merge Prompt

This is the core of the workflow. Paste your master engagement letter template into the prompt as a block, then paste the matter facts below it. The prompt instructs the model to merge the two — filling every variable field and leaving jurisdictional placeholders for Step 4.

The prompt below is written for GPT-4o but runs without modification on Claude 3.5 Sonnet. Paste it verbatim. Replace the bracketed sections with your actual template text and matter facts.

You are a legal document assistant. Your job is to merge client matter facts into an engagement letter template. You do not give legal advice. You do not change any legal terms, liability limitations, governing law clauses, or fee dispute language in the template. You only fill in the variable fields using the matter facts provided.

INSTRUCTIONS:
1. Read the MASTER TEMPLATE below carefully. Identify every variable field — these appear as [BRACKETED LABELS] or as obvious blanks (e.g., "______").
2. Fill each variable field using only the MATTER FACTS provided. Do not invent or assume any fact not listed.
3. Where a field asks for a FEE STRUCTURE clause, follow the FEE INSERTION LOGIC in Step 3 of your instructions — I will provide the correct language after you confirm the fee type.
4. Where a field is labeled [JURISDICTION CLAUSE — INSERT VARIANT], leave that placeholder exactly as written. Do not fill it.
5. Return the completed letter in plain text, preserving all paragraph breaks and section headings from the template.
6. After the letter, list on a new line: "UNFILLED FIELDS:" followed by any fields you could not fill from the matter facts, and the reason.

MASTER TEMPLATE:
[PASTE YOUR ENGAGEMENT LETTER TEMPLATE HERE — full text]

MATTER FACTS:
Client full legal name: [value]
Client entity type: [value]
Matter description: [value]
Fee type: [Flat Fee / Hourly]
Fee amount or hourly rate: [value]
Billing terms: [value]
Scope of representation (included): [value]
Scope of representation (excluded): [value]
Jurisdiction: [value]

Run this prompt. The model returns a filled letter in under thirty seconds. Check the “UNFILLED FIELDS” list at the bottom — if anything is there, you either missed a field at intake or your template has a variable the eight standard fields don’t cover. Fix the intake form; don’t patch it manually every time.

Close-up detail shot of two hands resting near a laptop keyboard, a printed document visible on the desk beside it rende

Step 3: Flat-Fee or Hourly Fee Insertion Logic

Most engagement letters have meaningfully different fee sections depending on whether you are charging flat or hourly. Rather than keeping two full template versions, handle this with a conditional paste. After you see the model’s output from Step 2, locate the fee section and replace it with the correct language block from your own template library.

Keep two short text files — one labeled FLAT_FEE_CLAUSE.txt, one labeled HOURLY_CLAUSE.txt — each containing your standard fee language for that arrangement, with a single variable: [FEE_AMOUNT] or [HOURLY_RATE] and [RETAINER_AMOUNT]. Paste the appropriate one into a follow-up prompt:

The engagement letter you just drafted used a placeholder for the fee section. Replace that placeholder now with the following fee clause. Fill [HOURLY_RATE] with $[value from matter facts] and [RETAINER_AMOUNT] with $[value from matter facts]. Do not change any other part of the letter. Return the full updated letter.

FEE CLAUSE TO INSERT:
[PASTE YOUR HOURLY OR FLAT FEE CLAUSE TEXT HERE]

This two-prompt approach keeps your fee language under your control. The model fills variables; it does not write fee terms. That distinction matters — fee clause language touches on your bar’s fee rule requirements, and you should own that text, not generate it fresh each time.

Step 4: Pull Jurisdictional Clause Variants from Your Clause Library

The prompt in Step 2 deliberately leaves [JURISDICTION CLAUSE — INSERT VARIANT] unfilled. That placeholder is for clauses that vary by jurisdiction — governing law, mandatory arbitration disclosures, fee dispute procedures, and similar provisions that your state bar may require or prohibit in specific language.

Build a simple clause library: a single document or folder with one text file per jurisdiction you practice in. Each file contains the jurisdiction-specific sections of your engagement letter, already drafted and approved by you. Label them by state — CA_ENGAGEMENT_CLAUSES.txt, TX_ENGAGEMENT_CLAUSES.txt, and so on.

In Step 4, open the file matching the matter’s jurisdiction, copy the relevant clause, and paste it into the letter where the placeholder sits. No AI involved in this step — this is a deliberate manual paste. Jurisdictional compliance language is where you want human eyes on the source text, not a model interpolating from context.

If you practice in only one jurisdiction, you will have one file and this step takes ten seconds. If you do not yet have a clause library, build it from your existing signed engagement letters — strip out the variable fields and you have the jurisdictional boilerplate already. Set aside ninety minutes once; save it forever.

Step 5: Human Review Pass Against a Checklist Before You Send

This step is not optional. The workflow gets you from blank screen to a filled draft in under four minutes. The review pass is what makes that draft safe to send. Budget five minutes here — the total time is still well under fifteen.

Keep this checklist in a pinned note, a template in your practice management software, or a laminated card on your desk. Run it on every letter before it leaves your office.

  • Client name and entity type match the signed intake and any ID you collected. The model fills what you gave it — if your intake had a typo, the letter has that typo.
  • Fee amount and billing terms are correct and match your quote. Numbers are the most common place models make silent substitution errors when a template has multiple number fields.
  • Scope inclusions and exclusions are complete and unambiguous. Read the exclusions clause specifically. A model occasionally softens exclusion language when it conflicts with inclusion language.
  • No [BRACKETED PLACEHOLDER] remains in the document. Search for the bracket character. If any survive, check the “UNFILLED FIELDS” list from Step 2 and fill manually.
  • Jurisdictional clause is the correct variant for this matter’s state. Confirm the governing law line names the right jurisdiction.
  • Fee structure section matches the fee type — no hourly language in a flat-fee letter, and vice versa.
  • Your signature block is complete and your bar number appears if required by your jurisdiction.

After the checklist passes, upload the final letter to the matter in your practice management software, log it as “sent pending signature,” and push it to your e-signature tool. In Clio, that means attaching it to the matter document folder and initiating a DocuSign or Clio Sign request. In MyCase, the same workflow lives under the Documents tab.

Where This Breaks

Co-counsel arrangements are the biggest failure point. When two or more firms share a matter, engagement letters typically need to address fee division, client communication protocols, and conflicts of interest disclosures between firms. Those terms are matter-specific and negotiated — no template handles them cleanly. For co-counsel matters, use this workflow to produce the base draft and then do a full manual drafting pass on the co-counsel sections. Expect to spend the full 25 minutes, not four.

Unusual fee arrangements break it too. Contingency with a tiered percentage structure, hybrid retainer-plus-contingency, success fee arrangements, and fee-shifting matters all require fee clause language that goes beyond what a two-file flat/hourly library covers. The model will attempt to draft fee language if you let it — do not let it. For any arrangement that doesn’t map cleanly to flat or hourly, write the fee clause yourself and paste it in at Step 3.

Template length is a practical ceiling on GPT-4o. Templates longer than roughly 3,000 words start to see truncation or dropped sections depending on what else is in the context window. If your master template is long, split it into a base section and appendices. Run the prompt on the base; handle appendices as separate paste-ins.

The checklist in Step 5 will not catch a factually wrong scope description if you gave the model a wrong scope description at intake. Garbage in, garbage out still applies. The workflow does not verify facts — it merges them. You verify.

What This Saves You

The realistic time comparison: pulling up your template, finding the last version you sent, customizing it for the new client, handling the fee section, checking for leftover placeholder text, and reading it through — that process runs 20 to 25 minutes for a new matter. This workflow runs 4 to 7 minutes including the review pass.

At 20 new matters a month, that is roughly 5 to 6 hours recovered. The setup — building your clause library files and configuring your intake fields — takes two to three hours once. The workflow pays for that setup time in the first month.

The less obvious saving is consistency. Every letter uses the same template, the same jurisdictional clauses, and the same fee language. That reduces the risk of sending a letter that accidentally omits a required disclosure because you were working from a six-month-old version you found in your Downloads folder.

Set the workflow up once, run it on your next three new matters to work out the edge cases specific to your practice, and then make it your default. The four-minute version of this task is available now — you just need to build the system around it once.

Related reading