AddThisFeature

AI Email Drafting

Draft an email from the record on screen, the intended outcome, and a chosen tone.

moderate AI Content

What it adds

A drafting step in the app's existing compose flow that turns a record, a stated goal, and a tone selection into an editable message.

What your agent is told to do

5
  1. 1

    Hook this into the compose surfaces the app already has rather than adding a separate writing screen. The draft must land in the same editor the user would otherwise have typed into, with the same validation and sending path.

  2. 2

    Build the context sent to the model from an explicit allow-list of fields on the record the sender can already see. Do not pass the whole record or the whole thread on the assumption that more context produces a better draft.

  3. 3

    Always deliver the result as an unsent draft. Do not send, schedule, or queue a message from this feature under any circumstances, and keep the send action exactly where it was before.

  4. 4

    Constrain the model to the facts supplied. Dates, prices, commitments, links, and attachment references must come from the record; anything not supplied must be left as an obvious placeholder for the sender to fill.

  5. 5

    Short in-thread responses belong to AI Reply Suggestions; this feature owns composing a new message from a record. Where both are present, keep one shared tone vocabulary and one shared context allow-list rather than two that drift apart.

Edge cases it handles

8
  • The sender may see internal notes the recipient must never receive. Exclude private notes, internal comments, and staff-only fields from the context by default, and require an explicit setting to include anything of that kind.
  • A model asked to write persuasively will invent a delivery date, a discount, or an attachment that does not exist. Treat any specific number, date, or promise not present in the supplied context as a defect, not a stylistic choice.
  • Recipient names, roles, and pronouns must come from the record rather than from the model's reading of the thread, and a recipient whose name is unknown must be addressed neutrally rather than guessed at.
  • The draft must never be applied over text the user has already typed. Offer it alongside, or require an explicit accept, so an in-progress message is not destroyed.
  • Confidential context that reached the draft once must not linger in a stored prompt or a debug log where it can be read later by someone without access to the underlying record.
  • A refusal, a timeout, or a truncated response must leave the compose window usable with a plain error, not a half-finished sentence that the user sends without noticing.
  • Repeated regeneration is the main cost risk. Cap generations per message and per account per period, and tell the user when they have hit the cap.
  • When the model is unavailable, the compose flow must work exactly as it did before the feature existed, with the drafting control disabled and explained.

Definition of done

9
  • Drafting produces an editable message inside the existing compose flow and never sends or schedules anything.
  • Context is assembled from a documented allow-list of fields the sender already has access to.
  • Internal notes and staff-only fields are excluded from what is sent to the provider.
  • Dates, prices, commitments, and attachment references appear only when present in the supplied context.
  • Text the user has already typed is never overwritten without an explicit accept.
  • Generation is capped per message and per account, with the limit surfaced to the user.
  • With the model unavailable, composing and sending work unchanged.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.