# Create and manage broadcasts

> Build a manual SMS broadcast in form order, estimate its cost, launch or schedule it, and manage results and later campaign laps.
> Source: https://docs.23telecom.co.uk/guide/broadcasts/

Instructions for LLMs: This is one page of the 23 Telecom messaging API docs
(SMS today; more channels planned). Base URL: https://restlink23telecom.com/api/v1,
auth via the X-API-Key header. Match errors on the error_code field, never on
description text. Full docs: https://docs.23telecom.co.uk/llms-full.txt · Schemas: https://docs.23telecom.co.uk/openapi.yaml

A broadcast sends one campaign to contacts selected from the portal. Check the active workspace before you begin.

## Create the campaign

1. Open **Broadcasts**.
2. Select **Create Broadcast**.
3. Enter a name in **Broadcast Name**.

A member with the create permission and no send permission still can create drafts but cannot launch or schedule.

## Choose recipients

1. Find the **Recipients** section.
2. Select **Select from Database** to use saved contact lists.
3. Select the required items under **Select Contact Lists**.
4. Choose the send order if the campaign requires one.
5. Select **Enter Manually** instead when you need to paste a small set of phone numbers.
6. Use **Upload New List** if the contacts are not in the portal yet.

Contact databases are the lists, or tags, used for targeting. Smart segments such as clicked or converted contacts can also open a pre-filled broadcast from People. The **Exclusions (Suppressions)** section can remove contacts from selected lists or earlier campaigns.

## Choose a sender

1. Find the **Sender ID** section.
2. Type the sender name in the **Sender ID** field.
3. Check that the field shows no validation error.

A Sender ID must contain 3 to 11 characters. It can contain letters, numbers, hyphens, and spaces. A hyphen cannot be first or last. Hyphens cannot be consecutive. Leading and trailing spaces are trimmed, and consecutive spaces are not allowed. Some destinations require sender registration.

## Write the message

These controls apply to a standard broadcast. Leave **Enable A/B Testing** off. When A/B testing is on, the form replaces this section with the variant editor described below.

1. Find **SMS Content**.
2. Enter the text in **Message**.
3. Insert a value from **Personalization Macros** when the message should use contact data.
4. Select **Insert Spintax Block** when you want one random phrase from a spintax expression.
5. Watch the segment counter while editing.

Available standard macros include `{first_name}`, `{last_name}`, `{phone}`, `{email}`, `{custom1}`, `{custom2}`, `{custom3}`, `{custom4}`, `{custom5}`, `{custom6}`, `{custom7}`, `{custom8}`, `{custom9}`, `{custom10}`, and `{opt_out_link}`. The opt-out macro becomes a unique unsubscribe link for each recipient. A spintax expression such as `{Hello|Hi}` chooses one option for each expanded message.

The encoding determines the segment size. GSM-7 allows 160 characters in one segment and 153 characters per segment in a multipart message. Some extended GSM-7 characters count as two. UCS-2 allows 70 characters in one segment and 67 per multipart segment. Emoji and characters outside GSM-7 can switch the whole message to UCS-2.

The content budget allows up to 4096 bytes and 10 segments. A message over the byte limit returns `413 MESSAGE_TOO_LARGE`. A message over the segment limit returns `422 MESSAGE_TOO_MANY_SEGMENTS`.

The portal checks the campaign template and every A/B variant before sending. A preflight failure stops the broadcast. The portal then expands macros, spintax, and links for each recipient. If only one recipient's expanded message crosses a limit, that recipient is skipped and the rest of the broadcast continues.

## Track links

These steps apply to a standard broadcast. A/B broadcasts have their own tracking controls in the variant editor.

1. Enter the full destination URL in **Message**.
2. Wait for **URL Shortening & Tracking** to appear below the message.
3. Turn on **Enable Link Tracking**.
4. Check the shortening domain displayed by the portal.
5. Recheck the segment counter after tracking is enabled.

The portal selects the displayed shortening domain automatically. It creates recipient-specific short links at send time. Clicks then appear in the broadcast details and reports. Set up a custom domain first if you do not want to use an available shared domain.

## Configure an A/B test

1. Turn on **Enable A/B Testing** near the campaign name.
2. Find **A/B Test Variants**, which replaces the standard **SMS Content** section.
3. Open the first variant tab and enter its message in the message box.
4. Insert a contact macro or select **Spintax** when that variant needs it.
5. Repeat the message step for the second variant.
6. Select **Add Variant** for each extra version.
7. Set **Sender ID (optional override)** only when a variant needs a different sender.
8. Set **Traffic Percentage** for every variant.
9. Make sure all percentages total 100.
10. Turn on **Mark as Control Variant (baseline for comparison)** for the baseline version.
11. Add a URL before turning on **Enable Link Tracking** for one variant.
12. Turn on **Enable Link Tracking for all variants** instead when every version should use tracked short links.

Use **Auto-distribute %** to divide traffic automatically. The form supports up to 20 variants.

An A/B test is launched or scheduled when you create it, so it also needs the send permission.

## Schedule the send

1. Open **When to Send**.
2. Select **Send Immediately** for an immediate launch.
3. Select **Schedule for Later** for a future send.
4. Choose the **Date**.
5. Choose the **Time**.
6. Choose the **Timezone** shown next to the schedule.
7. Review the displayed send time before continuing.

The selected time zone controls how the entered date and time are interpreted. The account time zone controls timestamps elsewhere in the portal.

## Calculate recipients and cost

1. Select **Calculate Recipients**.
2. Review **Unique Recipients**.
3. Review excluded and opted-out counts.
4. Review **Total SMS Parts**.
5. Review **Est. Cost**.
6. Select **Preview Message** to check a rendered example.

The estimate reflects eligible recipients, message parts, destinations, and current pricing. Macros and spintax can make final messages different lengths, so treat the estimate as a planning value.

Calculating recipients requires permission to read Contacts. Cost values require balance access. Ask the account owner if **Calculate Recipients** is unavailable or **Est. Cost** shows a dash.

## Launch or schedule

1. Select **Create & Launch** for an immediate send or **Schedule Campaign** for a future send.
2. Review **Confirm Broadcast Launch** or **Confirm Campaign Schedule**.
3. Select **Launch Now** to confirm an immediate send.
4. Select **Schedule Campaign** to confirm a scheduled send.

A team member needs the send permission to launch, schedule, or resume. The corresponding action is unavailable without it.

## Pause, resume, or stop

1. Open **Broadcasts**.
2. Open the required campaign.
3. Select **Pause** to hold a Running broadcast.
4. Select **Resume** to continue a Paused broadcast.
5. Select **Stop** to end a Running broadcast permanently.
6. Confirm the action when prompted.

Pause and stop use separate permissions. Stop is not a temporary hold.

## Read broadcast details

1. Open a campaign from **Broadcasts**.
2. Use **Overview** for totals and current state.
3. Use **A/B Variants** for variant performance when the campaign has variants.
4. Use the messages tab to inspect individual recipients and delivery states.
5. Use **Click Info** for tracked-link activity.
6. Select **Export** when you need the available campaign data outside the portal.

Broadcast states are Created, Running, Paused, Stopped, and Archived. The screen can present an archived completed campaign as Completed.

The main counters include Recipients, Total Sent, Delivered, Pending, Expired, Undelivered, Needs Review, Not Billed, Clicks, and Cost. Delivery values include `SENT`, `ENROUTE`, `DELIVRD`, `UNDELIV`, `REJECTD`, and `EXPIRED`. Messages left in `SENT` or `ENROUTE` for 3 days are moved to `UNDELIV`. Not Billed means the message was not accepted for sending and no message charge was recorded.

## Reschedule a scheduled broadcast

1. Open a Created campaign that has a future schedule.
2. Select **Edit schedule**.
3. Change the **Date**.
4. Change the **Time**.
5. Check the **UTC offset**.
6. Select **Save schedule**.

The new time must be more than 60 seconds in the future. A scheduled broadcast cannot be edited during the final 60 seconds before it starts.

Changing a schedule requires permission to update broadcasts. Ask the account owner to review your access if **Edit schedule** is absent.

## Duplicate the next lap

1. Open the completed or earlier broadcast.
2. Select **Duplicate**.
3. Review the copied campaign name, audience, sender, message, and tracking choices.
4. Check the lap information about earlier recipients.
5. Recalculate recipients and cost.
6. Choose a new schedule or immediate send.
7. Launch only after the copied settings are correct.

Duplicate creates a new draft and does not reuse the old schedule automatically. A member needs both create and send permissions to use the duplicate action.

## Troubleshooting

1. Recalculate if the launch button remains unavailable after a form change.
2. Shorten or rewrite text if the segment counter or content-budget warning is too high.
3. Ask the owner to check broadcast permissions if create, launch, pause, or stop controls are missing.
4. Open **People** if the expected recipient list is missing.