---
title: "Format a message"
description: "Use the message editor: headings, lists, links and alignment, tokens that fill in names and dates, images, files and video, the Mention Principal pill in Slack, and Raw HTML for a designed email."
sidebar:
  order: 2
area: flows
feature: steps
appPath: /flows/home
lastVerified: 2026-10-22
version: "2026-10-16"
audience: admin
screenshots:
  - id: flows-steps-editor-widgets
    caption: The message editor with the Widgets menu open.
related:
  - flows/steps/reference-tokens
  - library/media/insert-media-in-a-message
  - flows/steps/add-a-button-to-a-message
  - flows/steps/preview-and-send-a-test
intercom:
  - id: "16814757"
    title: Format Your Message (Pyn 2)
    url: https://intercom.help/pyn/en/articles/16814757-format-your-message-pyn-2
    note: replaces
  - id: "16814823"
    title: Mention the Principal in Slack Messages and Channels (Pyn 2)
    url: https://intercom.help/pyn/en/articles/16814823-mention-the-principal-in-slack-messages-and-channels-pyn-2
    note: replaces
  - id: "16857906"
    title: Embed a YouTube Video (Pyn 2)
    url: https://intercom.help/pyn/en/articles/16857906-embed-a-youtube-video-pyn-2
    note: replaces
  - id: "13872876"
    title: Add visual content to your message (Pyn 2)
    url: https://intercom.help/pyn/en/articles/13872876-add-visual-content-to-your-message-pyn-2
    note: draws on
  - id: "6005675"
    title: Format your Pyn (Pyn 1)
    url: https://intercom.help/pyn/en/articles/6005675-format-your-pyn-pyn-1
    note: "Pyn 1 article, kept for reference"
  - id: "6010960"
    title: Embed a YouTube video (Pyn 1)
    url: https://intercom.help/pyn/en/articles/6010960-embed-a-youtube-video-pyn-1
    note: "Pyn 1 article, kept for reference"
  - id: "8214468"
    title: Add a mailto link
    url: https://intercom.help/pyn/en/articles/8214468-add-a-mailto-link
    note: "Pyn 1 article, kept for reference"
---

The same editor writes every email, direct message and channel post. It shows the message roughly as the recipient will see it, with a Slack avatar and timestamp on a Slack step, and keeps formatting that the medium supports: Slack has no alignment or headings, so those tools are hidden there.

![Insert widget opens the Widgets menu for buttons, forms, custom tokens and the avatar.](https://support.pynhq.com/media/flows/steps/flows-steps-editor-widgets.png)

## Text

Select text and use the toolbar for bold, italic and underline, headings and quotes, bulleted and numbered lists, links (a web address or `mailto:`) and, on email, left, centre and right alignment. Undo and redo are in the toolbar too. Select **Expand editor** (the arrows icon above the editor) to write in a full-screen editor and close it to return.

## Tokens

1. Type `@` where the value goes. A list of tokens opens; keep typing to filter it, for example `@pref` for `principal.preferredName`.

2. Select the token. It appears as a pill. `principal` tokens are about the enrolled employee; `recipient` tokens are about whoever receives the message; `date.reference` is the enrollment's reference date.

3. For a field that is not in the list, select **Insert token** in the toolbar, then **Employee Field**: choose the field, whether it applies to the **Principal of automation** or the **Recipient of message**, and an optional **Fallback** shown when the field is empty.

4. For a column from a mail-merge spreadsheet, select **Insert widget**, then **Custom Token**, and type the column name, for example `startLocation`. **Custom Token Block** renders a multi-line value as its own paragraph or list.

[Tokens](https://support.pynhq.com/flows/steps/reference-tokens/) lists every token with the text Pyn falls back to when the value is missing, for example `Employee` for a missing name.

## Media

Select **Insert media** (the picture icon) to upload an image, GIF or video from your computer or pick one from [Media](https://support.pynhq.com/library/media/). Select an inserted image to align or resize it. Paste a YouTube link on its own line and it becomes an embedded player. A banner image renders best at 1200 by 250 pixels, or 1200 by 500 for a taller retina banner; see [Insert media in a message](https://support.pynhq.com/library/media/insert-media-in-a-message/).

## Widgets

**Insert widget** (the puzzle icon) holds the interactive pieces: **Avatar** (the principal's photo), **Custom Token** and **Custom Token Block**, **Embed Form**, **Link Button**, **Mention Principal** and **Link To Library Content**. Buttons and forms are covered in [Add a button to a message](https://support.pynhq.com/flows/steps/add-a-button-to-a-message/).

**Mention Principal** is offered on Slack steps only. It inserts an **@Principal** pill that becomes a live Slack mention of the enrolled employee when the message sends, so "Please welcome @Principal to the team" notifies them.

## Raw HTML for email

For a fully designed template that Pyn must send exactly as written, open the step's **Advanced** tab and set **Email body** to **Raw HTML**. The body becomes an **HTML** field; write your markup there with Liquid output tags for tokens, for example `{{ principal.preferredName }}`. Pyn applies no theme or styling, the HTML is limited to 200,000 characters, invalid Liquid stops the automation publishing, and a name Pyn cannot resolve is left in the email as typed. **Preview** renders the HTML for the employee you pick, and **Send a test to yourself** sends it as a real send would.

> **Tip:** Switching between **Composed message** and **Raw HTML** replaces the body, so copy anything you want to keep first.

## Related

- [Tokens](https://support.pynhq.com/flows/steps/reference-tokens/) for every token and its fallback.
- [Insert media in a message](https://support.pynhq.com/library/media/insert-media-in-a-message/) for image sizes and the virus scan.
- [Add a button to a message](https://support.pynhq.com/flows/steps/add-a-button-to-a-message/) for Link Button, Link To Library Content and Embed Form.
- [Preview and send a test](https://support.pynhq.com/flows/steps/preview-and-send-a-test/) to check the result before publishing.

## Related Intercom articles

- [Format Your Message (Pyn 2)](https://intercom.help/pyn/en/articles/16814757-format-your-message-pyn-2) — replaces
- [Mention the Principal in Slack Messages and Channels (Pyn 2)](https://intercom.help/pyn/en/articles/16814823-mention-the-principal-in-slack-messages-and-channels-pyn-2) — replaces
- [Embed a YouTube Video (Pyn 2)](https://intercom.help/pyn/en/articles/16857906-embed-a-youtube-video-pyn-2) — replaces
- [Add visual content to your message (Pyn 2)](https://intercom.help/pyn/en/articles/13872876-add-visual-content-to-your-message-pyn-2) — draws on
- [Format your Pyn (Pyn 1)](https://intercom.help/pyn/en/articles/6005675-format-your-pyn-pyn-1) — Pyn 1 article, kept for reference
- [Embed a YouTube video (Pyn 1)](https://intercom.help/pyn/en/articles/6010960-embed-a-youtube-video-pyn-1) — Pyn 1 article, kept for reference
- [Add a mailto link](https://intercom.help/pyn/en/articles/8214468-add-a-mailto-link) — Pyn 1 article, kept for reference
