# Sending messages via SFTP

To send messages in bulk, you must prepare a CSV file where each column, in addition to `recipient` and `language`, represents a value corresponding to the campaign’s template parameter.

The examples below is based on the following campaign template:

{% hint style="info" %}
**The campaign template is configured on the admin portal during campaign creation.**

Please refer to [create message](/postman-v2-admin-portal-for-api-users-mop/sending-messages-via-postman-api.md) on more information on creating a message on the admin portal.
{% endhint %}

{% code title="Example campaign template" %}

```bash
Dear {{recipient_name}},

This is to inform you that we have received your request for {{topic}}.

We will contact you again when we have processed your request. Thank you.
```

{% endcode %}

An example CSV file for the above template can be found below, along with an explanation of the various fields in the file.

{% code title="Example CSV file" %}

```
recipient,language,recipient_name,topic
6599999999,english,Emily Yeo,passport application #12345F
6599999998,chinese,James Tan,passport application #67890A
```

{% endcode %}

### **CSV file fields**

***

**recipient** string (Mandatory field)

For messages sent through the `sms` channel, the recipient will be the mobile phone number of the recipient, together with the country code of the recipient without including `+` in front.&#x20;

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

***

**language** string (Mandatory field)

This is the language of the message template used to send this message.

This are the possible values `english`, `chinese`, `malay`, or `tamil`.

***

recipient\_name string (Optional field - depending on your message template content)

***

topic string (Optional field - depending on your message template content)

***

Subsequently, you will need to upload this file using the following command:

{% hint style="warning" %}
Note that the each file needs to be less than 30MB or the file will fail to process.
{% endhint %}

```bash
put <file to upload>
```

Please be aware that our system **does not generate output files**. The result of a file upload will be communicated to you via email.


---

# 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/sftp/sending-messages-via-sftp.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.
