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

# SMS campaigns

> One message to a list of numbers from a CSV file, sent from your plfon numbers.

> [!NOTE]
>
> SMS campaigns are switched on by request, for selected accounts. If you do not
> see **SMS campaigns** in the menu, write to us.

## What you need

* at least one plfon number on the account (**Numbers** tab),
* a CSV file of phone numbers,
* the recipients' consent to marketing SMS (art. 398 of the Polish Electronic
  Communications Law). You confirm it in the panel before starting.

## Preparing the CSV file

One column of numbers, any others you like:

```csv theme={null}
name;phone;city
Anna;500 600 700;Kraków
Jan;+48 600 100 200;Gdańsk
```

* Excel exports work: commas, semicolons or tabs, Polish letters (UTF-8 or
  Windows-1250), with a header row or without.
* The number column is found by its name (`phone`, `telefon`, `numer`, `nr`…),
  or, failing that, by what it holds.
* A nine-digit number is taken as Polish. A number listed twice gets one SMS.
  Rows with an invalid number are skipped and listed.
* Up to 50,000 numbers per campaign.

## Step by step

1. In **SMS campaigns** type a name and click **New campaign**.
2. **Recipients:** upload the CSV file. You see how many numbers were loaded,
   which rows were skipped and how many people are on the
   [Do not call list](https://docs.brosbots.com/en/features/contacts.md#the-do-not-call-list).
3. **Text:** click a column name to put it in the message, e.g.
   `Hi {name}!`. Under the box you see the character count and SMS per
   recipient.
4. **Sender and pace:** tick the numbers to send from (with several, they take
   turns) and set how many SMS a minute to send.
5. **Preview:** what the first people on the list will see.
6. **Test:** type your own number and click **Send test**. The first row of the
   file fills the variables.
7. **Start:** tick the consent confirmation and click **Start**.

> [!WARNING]
>
> Polish letters (ą, ę, ł…) change the SMS encoding: one SMS then holds 70
> characters instead of 160. A longer message goes out as several SMS, each
> paid separately.

## While it sends

* The campaign sends on its own, in the background. Progress refreshes every
  few seconds: sent, queued, not sent and skipped.
* SMS go out only **between 8:00 and 21:00** recipient time. Outside those
  hours the campaign waits for the morning.
* **Pause** stops sending, **Resume** carries on. A paused campaign can be
  edited (text, sender, pace). **Cancel campaign** ends it for good.
* A number that lands on the Do not call list in the meantime is skipped.
* If the carrier refuses the login, or SMS from the numbers are switched off,
  the campaign pauses itself and shows why. Once the cause is fixed, click
  **Resume**.
* SMS that were not sent (an invalid number, say) can be sent again with
  **Retry not sent**.
* **Download CSV** gives a file with every number, its status, sender, time
  sent and text.

plfon sends no delivery reports, so **sent** means the carrier accepted the
SMS. Whether the recipient's phone got it is not known.

## Replies and calls

Replies arrive in **SMS messages**, and calls reach the number the SMS came
from. If an agent is assigned to that number, the agent answers. A `STOP`
reply puts the number on the Do not call list, so later campaigns skip it.
It is worth ending the message with e.g. "Reply STOP to opt out".

## Charges

Campaign SMS are not taken from the balance in the panel. They are billed
separately, as agreed.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.