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

# Variables & Message Templates

> Personalise bulk messages with per-contact variables and save reusable message templates for future broadcasts.

<Note>
  Message templates in Periskope are not related to WhatsApp Business API templates and do not require any prior approval.
</Note>

## Variables

Variables let you personalize a bulk message for each recipient — inserting values like a contact's name, company, or any custom field into the message text. You can see exactly what each contact will receive in a live preview before you send.

### Adding Variables to a Message

<Steps titleSize="p">
  <Step title="Navigate to the Draft Message screen">
    Go to `Bulk messages > New bulk message`, select your contacts, and proceed to the Draft Message step.
  </Step>

  <Step title="Add a variable">
    Click the `{}` button in the message toolbar, or type `{` directly in the message body. Enter a name for the variable and a fallback value. The fallback is used for any contact where you leave the field empty.

    <Frame caption="Add a Variable">
      <img src="https://mintcdn.com/bharatkumarramesh/QcFc_mtwjVzqh4PR/features/images/add-variable.png?fit=max&auto=format&n=QcFc_mtwjVzqh4PR&q=85&s=d6136eab9fc882e6f3dbc33eaf92cbee" alt="add-variable" width="2272" height="1308" data-path="features/images/add-variable.png" />
    </Frame>

    <Frame caption="Variable Modal">
      <img src="https://mintcdn.com/bharatkumarramesh/nLZLyDfnObVs3JXO/features/images/add-variable-modal.png?fit=max&auto=format&n=nLZLyDfnObVs3JXO&q=85&s=2e8ba15594c7f213453544e7cdc2e33a" alt="add-variable-modal" width="832" height="688" data-path="features/images/add-variable-modal.png" />
    </Frame>
  </Step>

  <Step title="Insert the variable into your message">
    After creating a variable, insert it by selecting it from the pop-up menu that appears when you type `{`.

    <Frame caption="Insert Variable">
      <img src="https://mintcdn.com/bharatkumarramesh/eWtBV2eYIgtIYxbf/features/images/insert-variable.png?fit=max&auto=format&n=eWtBV2eYIgtIYxbf&q=85&s=ff52b1c13d518c8eb3fcdee2e3bff19b" alt="insert-variable" width="1102" height="1268" data-path="features/images/insert-variable.png" />
    </Frame>
  </Step>

  <Step title="Fill in variable values for each contact">
    Click `Next Step` to open the Fill Variables screen. Each contact appears as a row in the table — fill in variable values directly.

    <Frame caption="Fill Variables">
      <img src="https://mintcdn.com/bharatkumarramesh/hz7lf2Fm42TCjPEk/features/images/fill-variables.png?fit=max&auto=format&n=hz7lf2Fm42TCjPEk&q=85&s=050b6775d13e348f7af0e33e3c3b3416" alt="fill-variables" width="2938" height="1664" data-path="features/images/fill-variables.png" />
    </Frame>

    You can also fill values using a CSV. Download the CSV from the top right corner, fill in values using Google Sheets or Excel, then upload it back.

    <Frame caption="Edit CSV File">
      <img src="https://mintcdn.com/bharatkumarramesh/IzTgyiP5udfKpAu_/features/images/edit-csv.png?fit=max&auto=format&n=IzTgyiP5udfKpAu_&q=85&s=3c1a9dcc381f5e5a1275f65227f98e62" alt="edit-csv" width="844" height="502" data-path="features/images/edit-csv.png" />
    </Frame>

    <Warning>
      Do not modify the columns or add/remove rows in the downloaded CSV. If you need to add variables or chats, make those changes in the table first and download a new CSV.
    </Warning>

    <Frame caption="Upload CSV">
      <iframe width="560" height="315" controls loop src="/features/images/upload-variable.mp4" alt="upload-csv" />
    </Frame>
  </Step>

  <Step title="Preview the messages before sending">
    Click through each contact in the preview panel to see exactly how the final message will look for that recipient, with all variables replaced by their actual values.

    <Frame caption="Preview Variables">
      <img src="https://mintcdn.com/bharatkumarramesh/hz7lf2Fm42TCjPEk/features/images/preview-variables.png?fit=max&auto=format&n=hz7lf2Fm42TCjPEk&q=85&s=b73711c117d6c0277041bfd4d5bdcb2d" alt="preview-variables" width="2940" height="1666" data-path="features/images/preview-variables.png" />
    </Frame>
  </Step>

  <Step title="Choose a delivery mode and send">
    Once happy with the preview, choose a delivery mode and send. See [Sending a Bulk Message](/features/bulk-message) for delivery options.
  </Step>
</Steps>

***

## Message Templates

Message templates let you save a drafted message — including variables and attachments — and load it instantly in any future broadcast.

### Saving a Template

<Steps titleSize="p">
  <Step title="Draft a message">
    Write your message in the Draft Message section. You can include text, variables, images, videos, and other attachments.
  </Step>

  <Step title="Click Save template">
    Click the `Save template` button at the top of the Draft Message screen.
  </Step>

  <Step title="Choose a template name">
    Enter a descriptive name so you can identify it easily later.

    <Frame caption="Save Template">
      <img src="https://mintcdn.com/bharatkumarramesh/IzTgyiP5udfKpAu_/features/images/save-template.png?fit=max&auto=format&n=IzTgyiP5udfKpAu_&q=85&s=5559c01f69d4dd8d861a7cf539477fbc" alt="save-template" width="880" height="536" data-path="features/images/save-template.png" />
    </Frame>
  </Step>
</Steps>

### Using a Template

When drafting a new broadcast, click the template picker to load a previously saved message. The message content, variables, and any attachments will be pre-filled.

### Duplicating a Template

You can duplicate an existing template from the template list to create a variation without modifying the original.
