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

# Broadcasts

> Reach your contacts on the channels they already use, in bulk or one event at a time

Your customers reached out to you through WhatsApp, Instagram, or your website. Broadcasts let you reach back out on the same channels. Send a product announcement to a whole segment, or fire a one-time passcode the instant someone signs in. Both run on the same templates, channels, and personalization.

<Frame>
  <img src="https://mintcdn.com/invent/Si8CtKN6BSzw7_Wo/assets/guides/broadcasts-overview.png?fit=max&auto=format&n=Si8CtKN6BSzw7_Wo&q=85&s=5455678697d0c59dd583497d3e1c7185" alt="Broadcasts dashboard listing broadcasts in a table" style={{ maxHeight: '400px' }} width="2560" height="1092" data-path="assets/guides/broadcasts-overview.png" />
</Frame>

## Two ways to broadcast

Every broadcast is one of two types, chosen when you create it and fixed afterwards.

|                     | Marketing                                     | Transactional                                                  |
| ------------------- | --------------------------------------------- | -------------------------------------------------------------- |
| **Best for**        | Announcements, updates, offers, newsletters   | OTPs, receipts, confirmations, password resets                 |
| **Who receives it** | A segment or all contacts, chosen up front    | One recipient, named on each trigger                           |
| **When it sends**   | Now or scheduled for later                    | The moment your backend calls the endpoint                     |
| **How it is sent**  | One send to many people                       | One API call per message                                       |
| **Unsubscribes**    | Respected; unsubscribed contacts are excluded | Respected; the trigger is rejected if the contact unsubscribed |
| **Lifecycle**       | Draft to Scheduled to Sent                    | Draft to Active, then triggered many times                     |

<CardGroup cols={2}>
  <Card title="Marketing Broadcasts" icon="bullhorn" href="/guides/broadcasts/marketing">
    Send one message to a group at once, immediately or scheduled
  </Card>

  <Card title="Transactional Broadcasts" icon="bolt" href="/guides/broadcasts/transactional">
    Trigger a single message through the API when an event happens
  </Card>
</CardGroup>

## The Broadcasts dashboard

The Broadcasts page lists every broadcast in a table:

| Column            | Description                                                                            |
| ----------------- | -------------------------------------------------------------------------------------- |
| **Name**          | The name you gave the broadcast, with a type icon and the type below it                |
| **Channels**      | A badge per channel configured, each with its integration icon                         |
| **Status**        | Current state (see [Broadcast statuses](#broadcast-statuses))                          |
| **Recipients**    | The total, above a bar split by delivery state. Hover it for the exact count per state |
| **Last Activity** | When the broadcast was last sent, or last edited if it has not sent yet                |

Above the table, a search box filters by name and a set of chips filters by type: **All**, **Marketing**, or **Transactional**. Both are reflected in the URL, so a filtered view can be bookmarked or shared.

Each row has a three-dot menu to duplicate or delete the broadcast.

Alongside the list, the Broadcasts area has a **WhatsApp Templates** view for building and managing your templates (see [WhatsApp](/guides/broadcasts/channels/whatsapp#whatsapp-templates)) and an **Analytics** view for delivery reporting. Opening a single broadcast gives it its own **Overview** and **Recipients** tabs.

## Creating a broadcast

<Steps>
  <Step title="Click + Create Broadcast">
    Use the **+ Create Broadcast** button in the top-right corner.
  </Step>

  <Step title="Name it">
    Give the broadcast a descriptive name, for example "Black Friday Sale" or "Login OTP".
  </Step>

  <Step title="Choose the type">
    Pick **Marketing** or **Transactional**. This sets how the broadcast sends and cannot be changed later.

    * **Marketing**: send to a group at once, now or scheduled for later.
    * **Transactional**: send via API, one message the moment something happens.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/invent/93YCEq9LpObqT658/assets/guides/broadcasts-create-type.png?fit=max&auto=format&n=93YCEq9LpObqT658&q=85&s=7bcab490c6ec6b890a7543b9de6b20a4" alt="Create Broadcast dialog with a name field and a choice between Marketing and Transactional types" style={{ maxHeight: '400px' }} width="1172" height="1184" data-path="assets/guides/broadcasts-create-type.png" />
</Frame>

The broadcast opens in **Draft**. The sections you configure depend on the type: marketing broadcasts have an **Audience**, transactional broadcasts have a **Send** section. Both share **Channels** and **Properties**.

## Channels

Channels determine how your message is delivered. Every broadcast needs at least one, and you can add several to reach contacts across platforms in a single broadcast.

<Frame>
  <img src="https://mintcdn.com/invent/Si8CtKN6BSzw7_Wo/assets/guides/broadcast-channels.png?fit=max&auto=format&n=Si8CtKN6BSzw7_Wo&q=85&s=7217db3ccc41562eef8e0bea1e01652f" alt="Channels section of a broadcast" style={{ maxHeight: '400px' }} width="1560" height="254" data-path="assets/guides/broadcast-channels.png" />
</Frame>

### Available channels

| Channel      | Description                                   |
| ------------ | --------------------------------------------- |
| **WhatsApp** | Send messages via approved WhatsApp Templates |

<Info>
  More broadcast channels are coming soon.
</Info>

Follow the channel guide to set up and configure it:

<CardGroup cols={2}>
  <Card title="WhatsApp" icon="whatsapp" iconType="brands" href="/guides/broadcasts/channels/whatsapp">
    Set up WhatsApp Templates and configure the channel
  </Card>
</CardGroup>

### Adding multiple channels

After your first channel, click **+ Add Channel** to add another. Each channel is configured independently with its own template and settings, so a single broadcast can reach contacts on several platforms at once.

<Frame>
  <img src="https://mintcdn.com/invent/Si8CtKN6BSzw7_Wo/assets/guides/broadcasts-channels-configured.png?fit=max&auto=format&n=Si8CtKN6BSzw7_Wo&q=85&s=5a9feaea8f985b0fac333158e4a8c690" alt="A broadcast with multiple channels configured" style={{ maxHeight: '400px' }} width="1536" height="490" data-path="assets/guides/broadcasts-channels-configured.png" />
</Frame>

### Editing a channel

After a channel is added you can:

* Click **Edit** to change the template, variables, or settings.
* Click **x** to remove the channel.

Editing reopens the full dialog with your previous settings, a **Remove channel** button, and **Save Changes**.

<Note>
  Channels can only be edited while the broadcast is in Draft.
</Note>

## Properties

Properties personalize each message with per-recipient values. Think of them as variables that differ for every contact, such as a coupon code, a product link, or an account balance.

<Info>
  Add properties like `coupon_code` or `product_url`, then map them into your templates.
</Info>

### Adding a property

<Steps>
  <Step title="Click + Add property">
    A new row appears with two fields.
  </Step>

  <Step title="Name the property">
    Type a name, for example `coupon_code` or `order_id`.
  </Step>

  <Step title="Set a default value">
    Enter a default used for any recipient without a specific value.
  </Step>

  <Step title="Save">
    Click the checkmark to save, or the **x** to cancel.
  </Step>
</Steps>

The property then appears in a table showing its **Name** and **Default Value**, with edit and delete icons.

<Frame>
  <img src="https://mintcdn.com/invent/Si8CtKN6BSzw7_Wo/assets/guides/broadcasts-properties.png?fit=max&auto=format&n=Si8CtKN6BSzw7_Wo&q=85&s=1c5563a85a8f001a005278282397d008" alt="Broadcast properties table with names and default values" style={{ maxHeight: '400px' }} width="1560" height="396" data-path="assets/guides/broadcasts-properties.png" />
</Frame>

### Importing property values

For marketing broadcasts, you can bulk import per-recipient values from a spreadsheet instead of setting them one by one:

<Steps>
  <Step title="Click Import values">
    The import dialog opens with a file upload area.
  </Step>

  <Step title="Upload your file">
    Drag in a **.csv**, **.xlsx**, **.xls**, **.numbers**, or **.ods** file with a column to identify recipients (email or phone) and a column for each property value.

    <Tip>
      Click **Download sample CSV** for a correctly formatted template.
    </Tip>
  </Step>

  <Step title="Map the columns">
    Map each column from your file:

    * **Recipient identifier**: map at least one column to **Email** or **Phone** so Invent knows which contact each row belongs to.
    * **Property values**: map columns to your broadcast properties.
    * **Content overrides**: columns named `subject`, `body`, `reply_to`, or `message` carry per-recipient content — they replace the configured template content for that recipient on the channels that expose them (subject, body, and reply\_to for email, message for SMS). These names are reserved, so a property cannot use them. Email and SMS broadcast channels are not yet generally available, so these overrides only apply once those channels ship.
    * **Skip column**: choose "Skip column" for anything you do not need.
  </Step>

  <Step title="Import">
    Click **Review**, then **Import**. A success message confirms how many values were imported.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/invent/93YCEq9LpObqT658/assets/guides/broadcasts-import-values.png?fit=max&auto=format&n=93YCEq9LpObqT658&q=85&s=d2b93fed9566594ab0ca3e693bd1f541" alt="Import property values dialog with column mapping" style={{ maxHeight: '400px' }} width="1864" height="1484" data-path="assets/guides/broadcasts-import-values.png" />
</Frame>

<Note>
  Transactional broadcasts do not import values up front. Their per-recipient values arrive with each [trigger](/guides/broadcasts/transactional#variables) instead.
</Note>

### Using properties in templates

Once added, properties are available as template variables when you configure a channel. A `coupon_code` property, for example, can be inserted into your WhatsApp template alongside built-in variables like Contact Name and Phone.

## Broadcast statuses

| Status        | Applies to    | Description                                                                                      |
| ------------- | ------------- | ------------------------------------------------------------------------------------------------ |
| **Draft**     | Both          | Being configured, not sent yet. All sections are editable.                                       |
| **Scheduled** | Marketing     | Queued to send at a future time, with a live countdown.                                          |
| **Sending**   | Marketing     | Currently being delivered. Cannot be edited.                                                     |
| **Sent**      | Marketing     | Fully sent. Analytics and tracking are available.                                                |
| **Active**    | Transactional | The endpoint is open and sending when called.                                                    |
| **Paused**    | Transactional | The endpoint is closed and new sends are rejected. Configuration is preserved.                   |
| **Cancelled** | Marketing     | A legacy status kept for older broadcasts. Cancelling a send now returns the broadcast to Draft. |
| **Failed**    | Marketing     | Something went wrong during delivery. Fix the issue and re-send.                                 |

## Duplicating a broadcast

To reuse a setup, open the three-dot menu on any broadcast and select **Duplicate**. This creates a copy with "(Copy)" appended, preserving the audience or trigger, properties, and channels.

## Next steps

<CardGroup cols={2}>
  <Card title="Marketing Broadcasts" icon="bullhorn" href="/guides/broadcasts/marketing">
    Audience, scheduling, and analytics for bulk sends
  </Card>

  <Card title="Transactional Broadcasts" icon="bolt" href="/guides/broadcasts/transactional">
    API triggers, variables, and the live endpoint
  </Card>

  <Card title="WhatsApp" icon="whatsapp" iconType="brands" href="/guides/broadcasts/channels/whatsapp">
    Set up WhatsApp Templates and configure the channel
  </Card>

  <Card title="Audience" icon="users" href="/guides/audience">
    Manage contacts and build segments for targeting
  </Card>
</CardGroup>
