# Sending messages via the Admin Portal

To start sending out messages, select the campaign that you wish to use. This will take you to the campaign dashboard page. You may choose to send to a single recipient or multiple recipients

<figure><img src="/files/Tqs5aWPiRzYj9Vz9ANfP" alt=""><figcaption></figcaption></figure>

### Single recipient

Upon selecting `single recipient`, a pop-up will prompt you to key in your recipient's details.

* Recipient's phone number
* Message language\*
* Message parameters

Once the details have been filled in, click `send` to send out your message.&#x20;

{% hint style="info" %}
Message language option is only available if the campaign admin has selected multiple languages during the [campaign creation process](/postman-v2-general-user-guide-mop/create-campaign.md#language-tab). If no languages have been added, the default language will be `English` and you will not be able to select other languages.&#x20;
{% endhint %}

{% hint style="info" %}
All message parameters needs to be filled before you can send out the message.
{% endhint %}

<figure><img src="/files/gcJzgNaPxuR2rC94Do5m" alt=""><figcaption><p>Populate the required fields</p></figcaption></figure>

### Formatting a single message

You may start entering fields into your message parameters.&#x20;

\
Should there be a need to add commas or quotation marks in your message parameters, you may enter them in your message parameters.

<figure><img src="/files/bZrojBAEoJn9jAqB9Rng" alt=""><figcaption></figcaption></figure>

### Multiple recipients

Upon selecting multiple recipients, you will be prompted to upload a .csv file containing

* [recipient](#recipient)
* [language](#language)
* message parameters

{% hint style="info" %}
All message parameters need to be filled before you can send out your messages.
{% endhint %}

We highly recommend the following steps when formatting your .csv file to send out messages

1. Download campaign .csv template
2. Edit the .csv template and save it as a .csv file
3. Upload your .csv file

<figure><img src="/files/WYX45LFcLov26XCllCwm" alt=""><figcaption><p>Step 1 and 3: Postman admin portal</p></figcaption></figure>

<figure><img src="/files/tTrG8QFhITQfjZRWOtX3" alt=""><figcaption><p>Step 2: Edit .csv file - the header row will be automatically populated based on the message parameters input in the message template</p></figcaption></figure>

In the multiple recipients sending format, any errors in the CSV file rows will result in failure to upload your file. You will need to fix the error(s) before all messages in the batch before you are able to successfully upload your file.

<figure><img src="/files/nFWK3Zt7TZu1op4UL0WM" alt=""><figcaption><p>Unable to upload file as csv was wrongly formatted</p></figcaption></figure>

The header row will require to match the [variables](/postman-v2-general-user-guide-mop/create-campaign.md#message-parameters-variables) created, such as containing lowercase letters, numbers and `_`.

#### Recipient

This contains mobile phone number of the recipient, prefixed by the country code but without the leading `+`. For example, when sending to a Singapore phone number, the value of recipient will be `6599999999.`

eg. `6591234567` is a recipient string for a Singapore (65) phone number (91234567)

{% hint style="info" %}
**Do not use "fake" numbers when sending SMS messages, even for testing purposes.**&#x20;

Reasons why this practice is avoided:&#x20;

1. Overloading the queue at the telco provider
2. Leading to failed delivery attempts, which generate error messages&#x20;
3. Failed delivery attempts are still being **charged**
4. These numbers are actually real numbers that are owned by MOPs

List of "fake" numbers:&#x20;

1. 6590000000
2. 6599999999
3. 6588888888

We have our dedicated load test environment if you wish to conduct load test using these numbers. Book your time slot for load test [here](https://cal.gov.sg/n2g21zn65d6nr2pd80cd051p).\
\
Please avoid sending messages to numbers that are not owned by you or your agency. Your agency PIC and CIO will also be informed. Click [here](https://docs.developer.tech.gov.sg/docs/postman-sgdp-guide/gov-sg-sms?id=what-if-i-send-accidental-test-messages-to-fake-numbers-that-actually-belong-to-real-mop) for more information.
{% endhint %}

#### Language

This column will need to be filled, even if there is only one available language that can be selected.

eg. If `English` is the only language you can choose in your message creation, you will need to fill every single entry with `English`.

### Formatting messages to multiple recipients

You may start entering fields into each message parameter in your csv file.&#x20;

#### Formatting in Excel

<figure><img src="/files/jRBEJCKEhQSCna1vsV1C" alt=""><figcaption></figcaption></figure>

**Excel: Commas and quotation marks**

Should there be a need to add commas or quotation marks in your message parameters, you may enter them in each cell within your excel file.

**Excel: Line Breaks**

Should there be a need for line breaks, you may add them in a single cell

#### Formatting in text editor

**Text Editor: Commas, line breaks, quotation marks**

When formatting your messages in a text editor,&#x20;

1. Ensure that all parameters are separated by commas

<figure><img src="/files/Hr41isadSVhkDzlJCJBZ" alt=""><figcaption><p>Example csv in text editor</p></figcaption></figure>

2. Should your content contain more than just letters, please encase them in quotations, see example above
   * Parameter containing more than just letters - highlighted in <mark style="background-color:blue;">blue</mark>
3. Should your message content contain line breaks, please add the line breaks in your parameters within quotations, see image "**Example csv in text editor**".

<figure><img src="/files/ceDAtUfxbO0e8CB4W8pz" alt="" width="375"><figcaption><p>Message with line breaks</p></figcaption></figure>

3. Should your content contain **quotation**, encase the entire quote, including the quotation marks, within a set of quotations, see image "**Example csv in text editor**".
   * quote - highlighted in <mark style="background-color:yellow;">yellow</mark>
   * quotations used to encase quote - highlighted in <mark style="background-color:red;">pink</mark>

These steps will ensure that messages sent out can contain commas and quotation marks.&#x20;

<figure><img src="/files/vfBZk7hTJrYamXh5pwhw" alt="" width="375"><figcaption><p>Quotation marks and commas within message</p></figcaption></figure>

### Postman Test Site: limitations

Postman's test site is meant for agency users to test out the platform. As such, you should test out the site like how you would send out messages to MOPs in a real scenario, where each number will only receive a single message.&#x20;

If you send test messages with exact same content to the same person multiple times in 1 sitting in the same campaign:

eg. "Hi your appointment is on 1 Jan 2024" was sent to Tom 10 times within 1 batch send,

The telcos' automatic spam filter may be triggered . This means the message may not be delivered  to Tom's phone at all, even though it will pass Postman’s send filters and status is reflected as `delivered`.  See screenshot below on how the batch .csv is formatted in this failed example.

<figure><img src="/files/SxrugvMnQImOL8fcbfad" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://postman-v2.guides.gov.sg/postman-v2-admin-portal-for-ui-users-mop/sending-messages-via-the-admin-portal.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
