> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topsort.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Email Composer

> Generate marketplace emails from a prompt using live campaign and vendor data

export const LastUpdated = ({date, lang = "en"}) => {
  const translations = {
    en: "Last updated:",
    es: "Última actualización:",
    pt: "Última atualização:",
    fr: "Dernière mise à jour:",
    de: "Zuletzt aktualisiert:"
  };
  const label = translations[lang] || translations.en;
  return <>
<style>{`
.last-updated-component {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 16px;
border-radius: 8px;
margin-top: 12px;
margin-bottom: 16px;
font-size: 14px;
background-color: rgba(0, 0, 0, 0.05);
border: 1px solid rgba(0, 0, 0, 0.12);
color: rgba(0, 0, 0, 0.75);
line-height: 1;
}

        .last-updated-component svg {
          flex-shrink: 0;
          vertical-align: middle;
        }

        .last-updated-component span {
          display: inline-flex !important;
          align-items: center !important;
          line-height: 1 !important;
        }

        [data-theme="dark"] .last-updated-component {
          background-color: #3a3a3a;
          border: 2px solid #888888;
          color: #ffffff;
        }

        [data-theme="dark"] .last-updated-component svg {
          stroke: #ffffff;
        }
      `}</style>
      <div className="last-updated-component">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <circle cx="12" cy="12" r="10" />
          <polyline points="12 6 12 12 16 14" />
        </svg>
        <span>
          <strong style={{
    fontWeight: 600
  }}>{label}</strong> 
          <time dateTime={date}>{date}</time>
        </span>
      </div>
    </>;
};

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  **Tomi Email Composer** helps marketplace admins generate emails from a
  prompt. The composer is connected to Topsort's APIs, so it can use your
  marketplace data (such as campaign metrics and vendor performance) to draft
  relevant, data-backed messages.
</div>

<div style={{ textAlign: "justify", marginBottom: "1.5rem" }}>
  After Tomi generates a draft, you can choose from three tone variations,
  refine the copy, and send the email through your default email client. Work
  is saved automatically as a draft if you navigate away at any time.
</div>

## Key Benefits

<Steps>
  <Step title="Save time with generative AI">
    Describe the email you need instead of writing it from scratch. Tomi drafts
    subject and body content for you to review and edit.
  </Step>

  <Step title="Leverage marketplace data">
    Because the composer uses Topsort APIs, emails can reference live campaign
    metrics, vendor performance, and other marketplace signals relevant to your
    prompt.
  </Step>

  <Step title="Stay in your existing workflow">
    Click **Send mail** to open your default email client with the subject and
    body pre-filled. You send from your own mailbox.
  </Step>
</Steps>

## Getting Started

### Access

Tomi Email Composer is available in the **Marketplace Admin** sidebar under
**Email Composer** for marketplaces that have Tomi enabled. Topsort activates it
automatically; no separate setup is required.

### Prerequisites

* Marketplace Admin access
* Tomi enabled for your marketplace

## How It Works

<Steps>
  <Step title="Describe the email">
    Open **Email Composer** and enter a prompt describing the email you want to
    write. You can tag vendors or campaigns in your prompt to scope the draft
    to specific marketplace data.
  </Step>

  <Step title="Review the draft">
    Tomi generates a draft with a subject line and body.
  </Step>

  <Step title="Send">
    Click **Send mail** to open your default email client with the subject and
    body filled in.
  </Step>
</Steps>

<Note>
  Drafts are saved automatically. If you leave the composer and return later,
  your work is preserved. Use **Save draft** after manual edits to persist
  changes to subject, body, or the selected tone.
</Note>

## Use Cases

### Vendor performance summary

*"Draft an email to @\[vendor name] summarizing their ad performance over the
last 90 days, highlighting top campaigns and suggesting ways to increase
spend."*

### Internal ad ops update

*"Draft an email for our ad ops team summarizing marketplace performance for
the last 30 days, including spend, ROAS, and top vendors."*

### Marketplace-wide optimization tips

*"Draft an email to all vendors sharing three common optimization opportunities
we have seen across recent campaigns, such as budget pacing and underperforming
placements."*

## Draft Management

* **Drafts list** — view, reopen, and delete saved email drafts
* **New draft** — start a fresh email from the composer home screen
* **Copy** — copy the active tone's body to your clipboard
* **Delete** — permanently remove a draft you no longer need

***

<LastUpdated date="2026-06-12" />
