- Sources
- File & storage
Files - FTP
Overview
Section titled “Overview”Files - FTP collects files from an FTP or SFTP server you run, so data that already leaves your systems as a scheduled export can reach an advertising destination without anyone building an integration.
It suits organizations whose data lives behind a firewall or in a system with no API worth using. If your data is already in cloud object storage, one of the bucket-based connectors is usually less to maintain.
Signals reads files from a location you control, on a schedule, and sends the rows to the destinations you have connected. Nothing is written back into your storage.
Supported destinations
Section titled “Supported destinations”Destinations supported by Files - FTP
| Category | Supported |
|---|---|
| Offline Conversions | |
| Lead Conversions | |
| Custom Audience |
Prerequisites
Section titled “Prerequisites”- An FTP or SFTP server reachable from the internet.
- The hostname and the port it listens on.
- A username and password for an account that can read the folder holding your files.
- The relative path to that folder.
Authentication
Section titled “Authentication”In Studio, open Sources, find the Files category, and click the FTP tile.
Enter the connection details for your server. The credentials are validated when you continue, and the connection is only created if they work.
| Field | What it is | Where to find it |
|---|---|---|
| Authentication Name | Your own label for this set of credentials. | You choose it. Name it for the account or bucket it belongs to. |
| Username | The account Datahash signs in as. On shared hosting this is often the same as the hosting control panel login, though a dedicated account is better practice. | Created on the server by its administrator. |
| Password | The password for that account. | Set when the account was created. |
Configuration
Section titled “Configuration”Instance Setup
Section titled “Instance Setup”Select the Integration Type, which is the kind of data your files hold, and give the instance a name. Ten integration types are available: Offline Events, Audience, Meta CAPI CRM, Google Leads, TikTok Leads, Snapchat Leads, LinkedIn Leads, Store Sales, Local Product Inventory and Product Catalog. Offline Events is selected by default. For an audience you also choose the audience type.
Enter the File Name Format, the Relative Path to Data Folder, and the Host Name and Port Value of your server. Download the sample file for the integration type you selected, since it defines the exact column structure Signals expects, then click Finish.
Manage instance
Section titled “Manage instance”One instance reads one location for one integration type. To read another location, or to feed a different integration type, add another instance from the Manage existing instance table. To change an existing one, open it from there, click the edit option in the menu to the top right, update the fields and click Finish.
File format and schema
Section titled “File format and schema”Start from the sample file you downloaded during setup rather than from an existing export. The column headers in it are what Signals matches on, so a header that has been renamed, reordered into a different case, or padded with a stray space will not be recognized, and the row it belongs to is dropped rather than reported.
The schema differs by integration type, not by storage provider. An offline events file and an audience file have different columns, and a file built for one will not work for the other. Within a schema, contact identifiers are typically accepted in more than one column, for example up to three email addresses and three phone numbers per person, with one value per cell rather than several separated by commas.
Data & identifiers
Section titled “Data & identifiers”Personal identifiers in your files are normalized and hashed before they are sent to a destination.
Best practices
Section titled “Best practices”- Use a dedicated folder for Datahash rather than pointing at one your team already writes to for other purposes.
- Keep a stable naming convention for the files you drop, so a failed run can be identified and replaced rather than guessed at.
- Clean the data at source: lowercase email, phone in E.164, no stray whitespace. Hashing a badly formatted value produces a hash that will never match.
- Create a dedicated FTP account restricted to the Datahash folder rather than reusing a hosting control panel login.
- Confirm whether your server is FTP or SFTP before entering the port. The two are different protocols and use different ports.
- Rotate credentials periodically and update the connection afterwards.
Troubleshooting & FAQ
Section titled “Troubleshooting & FAQ”The connection fails immediately. Almost always the port. Confirm which protocol the server runs and use the port for that protocol, not the one that looks familiar.
Credentials are correct but the connection still fails. Check the server is reachable from outside your network, and that the account is not restricted by IP.
The connection is set up but nothing arrives. Check the relative path points at the folder the files are actually in, and that a destination is connected in the same project.
The file is picked up but rows are rejected. The column headers do not match the sample file, or required values are missing. Compare your header row against the sample character for character.
Some rows land and others do not. The ones failing are missing a field the destination requires. That requirement comes from the destination, not from this connector.
It was working and stopped. Credentials were most likely rotated or revoked at the provider. Supply the new ones and revalidate.

