- Sources
- File & storage
Vultr
Overview
Section titled “Overview”Signals collects files from Vultr Object Storage, so exports already landing in your Vultr buckets can be sent to an advertising destination without being copied anywhere else.
Vultr Object Storage is S3-compatible, and the hostname, access key and secret it issues are what this connector needs.
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 Vultr
| Category | Supported |
|---|---|
| Offline Conversions | |
| Lead Conversions | |
| Custom Audience |
Prerequisites
Section titled “Prerequisites”- A Vultr account with Object Storage.
- The endpoint URL for the bucket you are reading from.
- The bucket name.
- An access key and secret with read access to that bucket.
Authentication
Section titled “Authentication”In Studio, open Sources, find the Files category, and click the Vultr tile. The credentials go under Access Credentials.
| 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. |
| Endpoint URL | The S3-compatible API address for your storage. Required. It is specific to the region your bucket lives in. | Shown against the bucket in your provider’s storage console. It is region specific. |
| Bucket Name | The name of the bucket holding your files. Required. | Your provider’s storage console. |
| Bucket Access Credentials | The access key Datahash reads as. Required. | Created in your provider’s console when you generate a key pair. |
| Bucket Secret | The secret that pairs with that key. Required, and it is the secret half of the pair rather than a second copy of the key. | Shown once alongside the access key. If it is lost, create a new pair. |
Vultr issues one set of credentials per Object Storage subscription rather than per bucket, and the hostname is tied to the location the subscription was created in. If you run more than one subscription, check you have taken all three values from the same one.
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 and the Relative Path to Data Folder, which is the folder inside the bucket where the files are. 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”- Check the endpoint URL matches the region your bucket is in. A mismatched endpoint is the most common reason these connections fail, and the error it produces looks like a credential problem rather than an address problem.
- 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.
- Take the hostname, key and secret from the same Object Storage subscription. Mixing values from two subscriptions produces a credential error that looks like a typo.
- Rotate the key periodically and update the connection afterwards.
Troubleshooting & FAQ
Section titled “Troubleshooting & FAQ”The credentials are rejected. Check the endpoint URL first, before the keys. An endpoint for the wrong region will refuse a perfectly good key.
The bucket cannot be found. The name is wrong, or the bucket sits behind a different endpoint than the one entered. Both have to point at the same place.
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.
It was working and stopped. The key was most likely rotated or revoked at the provider. Supply the new one and reconnect.

