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

# Email marketing with ChatGPT

> Connect ChatGPT to Migma, then design emails, import audiences, launch campaigns, and read stats without pasting an API key

ChatGPT briefs and decides. Migma designs, stores brand rules, holds your audience, and sends only after you approve. Connect once with browser OAuth, then run the full marketing loop in plain language.

This is a Migma product guide, current as of August 19, 2026.

## Why ChatGPT alone is not enough

A ChatGPT draft is not a campaign:

* Brand fonts, colors, logos, and knowledge need to persist across sends.
* Browser HTML is not email-safe HTML. Outlook, Gmail, and Apple Mail render differently.
* Marketing sends need opted-in contacts, a verified sender, unsubscribes, and your approval.
* Results live in campaign stats, not in a chat thread.

Migma owns those steps. ChatGPT stays the place where you plan and ask.

## Connect ChatGPT to Migma

1. In ChatGPT, add a custom MCP connection (developer mode or workspace admin settings, depending on your plan).
2. Use this URL only:

```text theme={null}
https://migma.ai/mcp
```

3. ChatGPT opens Migma in the browser. Sign in, review permissions, then approve. `email:send` is destructive send access (test and live mail). Allow it only if you trust ChatGPT to send for you.
4. Do not paste an API key into ChatGPT. Migma creates a scoped connection key automatically. Revoke it anytime from **Settings → Developers → API Keys**.

Setup details: [ChatGPT](/agents/mcp-chatgpt) · [MCP Server](/mcp-server).

### First ask

Ask:

```text theme={null}
Use Migma to list my brands. Do not send or export anything.
```

If tools are missing or look stale, reconnect the MCP connector and confirm custom MCP is enabled for your workspace.

## The marketing loop

<Steps>
  <Step title="Pick a brand">
    Ask ChatGPT to list brands and choose one. Every later tool call needs that brand. If ChatGPT asks for a project id, that is the brand handle for the API.
  </Step>

  <Step title="Save lasting brand facts">
    When you share tone, products, offers, policies, or FAQ that should stick, say so once. ChatGPT should call `migma_add_knowledge_base` without listing first. Those facts improve later emails.
  </Step>

  <Step title="Design emails (show drafts first)">
    Ask for one email or a short series. ChatGPT should generate, wait until ready, then show preview images and each canvas link immediately. Do not let it run compatibility, deliverability, or spam checks before you have seen the drafts.
  </Step>

  <Step title="Import or build the audience">
    Upload or paste a contact CSV and name the list. ChatGPT should call `migma_create_contact_import` once with the full CSV text and an optional list tag. Prefer that over converting rows to JSON. Or ask it to create a segment from existing contacts.
  </Step>

  <Step title="Optional checks, then campaign">
    After you like a draft, ask for inbox checks or a small edit. Then create a campaign draft with subject, sender, and recipients (list or segment). Ask before any live send or schedule.
  </Step>

  <Step title="Read results">
    After send, ask for campaign stats and delivery logs. Fix the next brief from what worked.
  </Step>
</Steps>

## Prompts worth saving

### Design one email

```text theme={null}
Use Migma for brand [name].
Create one editable marketing email.
Audience: [who]
Goal: [what they should do]
Facts only: [approved claims and URLs]
One primary CTA. Do not invent metrics.
Show preview images and the canvas link as soon as they are ready.
Do not validate or send yet.
```

### Design a series

```text theme={null}
Use Migma for brand [name].
Prepare a three-email onboarding series.
Email 1: first value
Email 2: remove setup friction
Email 3: invite the next action
Show each preview when ready. Do not create a campaign or send.
```

### Import a CSV list

```text theme={null}
Use Migma for brand [name].
Import this CSV into a list named "[list name]".
Use one contact import call with the full CSV text.
Report created, updated, skipped, and failed counts.
Do not convert the CSV to JSON contacts.
```

### Launch a campaign (approval gate)

```text theme={null}
Use Migma for brand [name].
Create a campaign draft from email [email id or canvas link].
Recipients: list or segment [name].
Subject: [subject]
Sender: [from name / domain if known]
Do not send yet. Summarize recipient count, subject, and sender, then wait for my approval.
```

### After you approve

```text theme={null}
Send the campaign now.
Or: schedule it for [date] [time] [timezone].
Confirm when it starts, then show stats when available.
```

### Read performance

```text theme={null}
Use Migma. Show stats and recent delivery logs for campaign [name or id].
Highlight opens, clicks, bounces, and complaints in plain language.
```

## What ChatGPT should and should not do

| Do                                                | Do not                                    |
| ------------------------------------------------- | ----------------------------------------- |
| Start with list brands or design                  | Paste API keys into chat                  |
| Show preview images before validate/edit          | Run preflight before the first reveal     |
| Import CSV with one `migma_create_contact_import` | Convert CSV rows to JSON bulk import      |
| Ask before live send or schedule                  | Send marketing mail without your approval |
| Save lasting facts to the knowledge base          | Invent product claims or metrics          |

## Sending rules that still apply

* Send only to contacts with marketing consent. See [What you can send](/get-started/what-you-can-send).
* Use a verified sending domain before live campaigns. See [Sending domains](/sending-domains/overview).
* Prefer [Email Preflight](/email-editor/email-preflight) and a test send to yourself before a large blast.
* Keep a human in the loop: claims, audience, sender, and timing are your call.

## When to use what

* **ChatGPT + Migma**: plan, design, import lists, and launch from one conversation.
* **Migma web app**: visual control on the canvas without connector setup.
* **[Claude + Migma](/tutorials/create-emails-with-claude)**: same loop in Claude, plus optional Claude design .zip import.
* **[API](/api-reference/introduction), [SDK](/sdk), or [CLI](/cli)**: automation and CI.

## Next

<CardGroup cols={2}>
  <Card title="ChatGPT setup" icon="https://mintcdn.com/migmaai/kT6TJgF40rDP8_qB/images/logos/chatgpt.png?fit=max&auto=format&n=kT6TJgF40rDP8_qB&q=85&s=f88137fa5b3adadac975427b68304728" href="/agents/mcp-chatgpt" width="120" height="120" data-path="images/logos/chatgpt.png">
    Connect ChatGPT with browser OAuth.
  </Card>

  <Card title="MCP Server" icon="server" href="/mcp-server">
    Tool workflows: design, CSV, knowledge base.
  </Card>

  <Card title="Send a campaign" icon="rocket" href="/campaigns/send-campaign">
    Recipients, sender, schedule in the app.
  </Card>

  <Card title="Manage contacts" icon="users" href="/audience/manage-contacts">
    CSV import and audience lists.
  </Card>
</CardGroup>
