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

# File transfer by FTP

This is how file transfer by FTP is done for your Engage environment.

<Warning>
  To transfer your files by FTP, you will need to install an FTP client on your end. For example, Filezilla, but there are many FTP clients to choose from.
</Warning>

<Frame caption="Importing data to Engage">
  <img src="https://mintcdn.com/voyado/12MJdnLnTQZua_Tb/images/file-based-integration-01.png?fit=max&auto=format&n=12MJdnLnTQZua_Tb&q=85&s=d1b717a74240749266ab688184738ef5" alt="Importing data to Engage" width="871" height="127" data-path="images/file-based-integration-01.png" />
</Frame>

<Frame caption="Exporting data from Engage">
  <img src="https://mintcdn.com/voyado/12MJdnLnTQZua_Tb/images/file-based-integration-02.png?fit=max&auto=format&n=12MJdnLnTQZua_Tb&q=85&s=9341e036bf28ec33ff7893aadcf54d46" alt="Exporting data from Engage" width="831" height="118" data-path="images/file-based-integration-02.png" />
</Frame>

When the import batch job is triggered, Engage begins processing files and importing the transactions. Once a file is processed you will be able to see the status of the import on the Integration log (see image below). The processed file will then be deleted from the FTP folder.

<Frame caption="The file integration log">
  <img src="https://mintcdn.com/voyado/12MJdnLnTQZua_Tb/images/file-based-integration-03.png?fit=max&auto=format&n=12MJdnLnTQZua_Tb&q=85&s=8eced77f50cdd504f25e0aee5ae5690f" alt="The file integration log" width="1469" height="816" data-path="images/file-based-integration-03.png" />
</Frame>

## FTP access

For both **staging** and **production**, you access your FTP like this:

```http theme={null}
Domain: ftp.voyado.com
```

```http theme={null}
Port: 22
```

```http theme={null}
Protocol: SFTP
```

Your FTP user configuration determines whether you have access to staging or production.

<Warning>
  Your username and password are assigned by your Voyado team.
</Warning>

## Preparing your file

Here are some things to check before doing a CSV or XML file import.

### Maximum number of contacts

Don't exceed 20 000 contacts per file. This is not a hard limit but a strong recommendation, since large files can make the server slow and risk causing a timeout.

Keep the number of contacts per file under 20 000.

### Encoding and syntax

The encoding of your CSV and XML files must be UTF-8.

For XML files, follow the scheme specified per import type:

<Columns cols={2}>
  <Card title="Contacts XML import" icon="https://mintcdn.com/voyado/Ns4bBcK3LNctK_Un/icons/developer-link.png?fit=max&auto=format&n=Ns4bBcK3LNctK_Un&q=85&s=fbd08f956358ab12f664a7158e1a1399" href="/docs/file-based-transfer/contact-xml-import" width="128" height="128" data-path="icons/developer-link.png" />

  <Card title="Transactions XML import" icon="https://mintcdn.com/voyado/Ns4bBcK3LNctK_Un/icons/developer-link.png?fit=max&auto=format&n=Ns4bBcK3LNctK_Un&q=85&s=fbd08f956358ab12f664a7158e1a1399" href="/docs/file-based-transfer/transactions-xml-import" width="128" height="128" data-path="icons/developer-link.png" />
</Columns>

It is also good practice (although not mandatory) to follow the XML-syntax provided for each import. When these field names are followed, no client-specific XSLT transformation needs to be done on the Engage side.

### Time and dates

The required date format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) with a time zone designator, for example: **2021-01-26T15:10:17+01:00**.

Date of birth (for example on a Contacts migration) is allowed to also use the simpler: **YYYY-MM-DD**.

### Other CSV information

Your CSV should use semicolon (;) as a delimiter to separate the fields. This also means that you can't use ; anywhere in a value string.

The order of the fields in a CSV does not matter.

Some characters can break a file import and might need to be escaped before import. For example, the double quote character ("). A double quote can be a part of a product name or description, since " is the symbol used for "inch": *Samsung 42 " TV*. Fix this by adding a backslash before every " in your CSV (this is called "escaping" the character). A search-and-replace is probably the best way to do this. The example above will then be *Samsung 42 \\" TV* .
