# Set up your email in the editor

Before you begin creating email content, make sure that you set up your email. The steps for setting up the email are the same for both the [Drag & drop editor](/product/content/email-content/drag-and-drop-email-editor/) and [HTML code editor](/product/content/email-content/html-code-editor).

<Aside type="note">
The language, subject, and preheader bar can collapse into a single summary row. Click the row (or focus it and press **Enter**) to expand it and edit any of the three fields. Click the row again to collapse it. The first time you open the editor, before you've made this choice yourself, the bar starts collapsed if the email already has a subject line, or expanded if it doesn't.

<img src="/emails-set-up-your-email-in-the-editor-9.webp" alt="Collapsed summary row showing the default language, subject line, and preheader as one line above the canvas"/>
</Aside>

## Define the languages you want to use in your email

By default, your content is in one language (referred to as **Default** in the editor). However, if you want to customize the content for users who speak different languages, you can add additional languages from the provided list. For instance, if the majority of your database is in English, but you want to send Spanish to Spanish speakers and German to German speakers, you would set up your content language preferences as follows: default /es /de.

This means that users who have opted in to receive emails by default will receive content in English, while those with Spanish or German language settings will receive content in their respective languages.

To add more languages, click on the **Plus** sign.

<img src="/emails-set-up-your-email-in-the-editor-1.webp" alt="Language selection interface showing plus sign to add additional languages"/>

From the list of available languages, choose the languages you wish to use in your emails. Then click **Apply.**

Use the language switcher above the canvas to switch between languages and edit content for each one. Content you haven't translated yet for the current language shows dimmed. Start typing to create the translation. The default language keeps showing until you do.

<img src="/emails-drag-and-drop-email-editor-29.webp" alt="Language switcher above the canvas with dimmed untranslated content visible in the email editor"/>

<Aside type="note">
Any block you add appears with the same content for every language. Remember to translate new text and button labels for every language you use in your email.
</Aside>

### Review unreviewed translations

Sometimes a language shows content you didn't type yourself — a pasted or duplicated block already carried it, or the language opened on its own because the subject line already had a translation for it. Pushwoosh highlights this content with the same dashed outline used for untranslated content; hover over it to see which case applies — unreviewed content warns that it may belong to another email. Adding a language manually runs the same check; if Pushwoosh finds matching copy already in the document, a toast reports how many texts it found.

Edit each marked text to confirm it belongs in this email, or click **Reset imported copy** in the language bar to discard all unreviewed translations for that language and fall back to the default content. The marking only holds for the current editing session — reopen the email later and previously unreviewed translations show as regular content.

### Auto-translate content

Click **Auto-translate** in the language bar to fill missing translations with AI instead of typing each language by hand.

Auto-translate covers the full email: body text, buttons, lists, menu items, image alt text, subject line, preheader, and footer links. Translations you entered manually are not overwritten.

<img src="/emails-drag-and-drop-email-editor-41.webp" alt="Language bar with a Default language selector and an Auto-translate button"/>

<Aside type="note">
* Press **Ctrl+Z** (or **Cmd+Z**) to undo the entire operation in one step.
* The default unsubscribe link text is already available in 30 languages. Auto-translate applies to a custom unsubscribe label only.
* Countdown timer labels (Days, Hours, Minutes, Seconds) appear in the recipient's language automatically.
</Aside>

### Import and export translations

**Export** downloads a CSV of the email's texts and translations. Use it as a starting file for a translator, or as a backup before you run Auto-translate.

Export and Import cover the same content as [Auto-translate](#auto-translate-content): body text, buttons, lists, menu items, image alt text, subject line, preheader, and footer links.

<img src="/emails-drag-and-drop-email-editor-89.webp" alt="Language bar with Auto-translate, Export, and Import buttons next to the language selector"/>

To choose which languages the CSV carries:

1. Click **Export** in the language bar.
2. In **Languages**, add or remove languages. You can pick any language, not only ones already in the email. Languages already added to the email are pre-selected, each with its current translations already filled in.
3. Click **Download CSV**. The button stays disabled until at least one language is selected.

<img src="/emails-drag-and-drop-email-editor-91.webp" alt="Export translations dialog with a language picker pre-filled from the email's languages and the Download CSV button"/>

The downloaded CSV has one row per text and one column per language you picked, named by its language code.

To fill translations from a file instead of typing each language by hand:

1. Click **Import** in the language bar.
2. Choose a `.csv` or `.json` file. A CSV needs a `text` column with the default-language copy and one column per language code. JSON needs the shape `{"de": {"source text": "translation"}}`.
3. Check **Overwrite translations that are already filled** to replace translations you already have with the file's version, or leave it unchecked to fill in only what's missing.
4. Review the summary of how many texts the import will fill and in how many languages.
5. Click **Import**.

<img src="/emails-drag-and-drop-email-editor-90.webp" alt="Import translations dialog with a chosen CSV file, the overwrite checkbox, and a summary of texts to fill"/>

<Aside type="note">
* A row matches a text in the email by its default-language wording, so an edited or reordered layout still matches. A row with no matching text is skipped and listed in a warning before you confirm.
* Any language in the file that's new to the email is added automatically.
* A language code outside Pushwoosh's known list is still added as given, and the dialog calls it out in its own warning before you confirm.
</Aside>

#### If Pushwoosh can't read the file

Instead of a preview, you see one of these messages:

| Message | When it happens |
|---|---|
| The file is empty. | The file has no content. |
| The file is not valid JSON. | A `.json` file (or a file starting with `{`) can't be parsed as JSON, or its top level isn't an object. |
| The first column must be named "text". | A CSV file's header row names its first column something other than `text`, `source`, `default`, or `original`. |
| Add a column per language next to the "text" one. | A CSV file's header row has no column after the text column. |
| No translations found in the file. | Every row is missing a language code, a text, or a translation, leaving nothing to apply. |

## Add a subject line

Above the canvas, in the **Subject line** field, type the subject line for your email.

<img src="/emails-set-up-your-email-in-the-editor-2.webp" alt="Subject line input field in email editor"/>

If you want to add an emoji to your subject line, click the **Emoji icon** next to the **Subject line** field.



You can also generate a subject line with AI: click the **AI** icon next to the field to have it written from the email content you've already added. 



## Add a preheader

Below the subject line, use the **Preheader** field to add a short summary that appears after the subject line when recipients view the email in their inbox.

<img src="/emails-set-up-your-email-in-the-editor-8.webp" alt="Preheader field below the subject line"/>

To add an emoji, click the **Emoji** icon next to the **Preheader** field.

To generate a preheader with AI, click the **AI** icon next to the field. AI writes it from the email content you've already added.


## Create email content

After you set languages, the subject line, and the preheader, build the email body in the Drag & drop editor. [Learn how](/product/content/email-content/drag-and-drop-email-editor/create-email-content-with-drag-and-drop-editor/)

To show or hide blocks for specific recipients in the same email, set [display conditions](/product/content/email-content/drag-and-drop-email-editor/show-content-to-specific-recipients/) after you add blocks to the canvas.

## Save your email

Once you've created email content and configured the settings, click **Save** in the top bar. Before sending your campaign, you can also send a test email to check how it looks. [Learn more](/product/content/email-content/drag-and-drop-email-editor/create-email-content-with-drag-and-drop-editor/#save-your-email)

<img src="/emails-set-up-your-email-in-the-editor-6.webp" alt="Save button in the top bar of the email editor"/>

## Manage email content

After creating and saving your email, it will appear in your list of email content.

<img src="/emails-set-up-your-email-in-the-editor-7.webp" alt="Email content list showing saved emails ready for use in campaigns"/>

From there, you can effortlessly incorporate it into your customer journeys. This allows you to send automated, personalized messages and make any necessary edits. [Learn more](/product/messaging-channels/emails/sending-emails)