Skip to main content

Why can I not change a column from text to a number after uploading?

Each column’s type is inferred once, on the first upload, by sampling the file’s rows. That decision is fixed for the lifetime of the data source. A column detected as text stays text even if every later upload contains numbers only, and an inferred type cannot be overridden manually. For a column to become a numeric metric, its values must parse as numbers on that first upload. A few things force a column to text instead:
  • Any mix of numeric and non-numeric values in the sampled rows.
  • An ID-like column name (for example, one ending in _id, or named exactly id) — these are kept as text even when the values look numeric, so they group as breakdowns rather than aggregating.
  • A column name containing percent, pct, or %, which is preserved as text to keep its formatting.
Values written with a leading currency symbol (such as $100 or ₩5000) are read as numbers, so a clean currency column is detected as numeric. The most reliable fix for an already-created data source is to correct the source file and load it as the first file of a new CSV File data source.

Why was my second file rejected when the first uploaded fine?

The first upload establishes the column set, and under the default Append method (and under Upsert) every later file must match it. Incoming headers are compared against the stored columns as an unordered set, after connector-internal columns are excluded, so column order does not matter but the column names and count must line up. A file that adds a column, drops one, or renames a header is rejected with INVALID_CSV_WRONG_COLUMNS. Replace is the exception: it discards the existing table and rebuilds it on each upload, so it does not enforce header matching. To load a differently-shaped dataset alongside the original, create a separate CSV File data source.

Why was my file rejected at upload?

Files are validated before any data is stored, and a file that fails validation is rejected as a whole. The common reasons:
  • Wrong extension. Only .csv is accepted. XLSX, TSV, JSON, and other formats are rejected before parsing.
  • No data rows. A header row is required, plus at least one data row; a header-only file is rejected with INVALID_CSV_MISSING_DATA.
  • Empty cells in the header or the first data row also raise INVALID_CSV_MISSING_DATA.
  • Duplicate column names in the header are rejected with INVALID_CSV_DUPLICATE_COLUMN_NAME.
  • Mismatched columns against an existing data source, as described above.
Reserved names (file_id, filename, created_at, updated_at, channel, id) are not rejected — they are automatically renamed with a csv_ prefix, so a column named id appears as csv_id. Very long column names are truncated to fit the database limit; if two names collide after truncation, the file is rejected so the collision can be resolved in the source.

How do I control whether new uploads add to, update, or replace existing rows?

The behavior of additional uploads is set by the update method chosen when the data source is created:
  • Append (default) adds every file’s rows to the same table and tags each row with its source file, so repeated uploads accumulate.
  • Upsert merges rows on a declared unique-key column, so re-uploading a row updates the matching record instead of creating a duplicate. A unique key must be specified at setup; a data source set to Upsert without one cannot be created.
  • Replace atomically swaps the entire table contents on each upload, so only the latest file’s rows remain.
The method is selected during connection setup — see How to connect CSV File to Adriel.

How do I combine a CSV data source with another connector?

CSV data is viewed in a generic table and does not combine natively with other connector types unless they share the same breakdowns. To report CSV data alongside a platform-native connector, use the Blend Data settings to join them on a shared breakdown, such as a common date or campaign column present in both sources.

My file has description rows above the header or total rows at the bottom. How do I skip them?

Two fields under General > Advanced Settings in the data source settings handle this:
  • Header Row is the row number where the column headers are. Rows above it are skipped. The default is 1. For a file with three description rows above the headers, enter 4.
  • Rows to Remove at Bottom is how many rows at the end of the file to skip, such as total rows. Empty lines at the end are not counted. The default is 0. For a file with two total rows at the end, enter 2.
Header Row is a row number, while Rows to Remove at Bottom is a row count. Set Rows to Remove at Bottom to cover every total and summary row at the end of the file. A leftover total row can put text such as Total into the date column and make widgets fail. Both fields can be set when creating the data source or later in its settings — see How to connect CSV File.

I changed the row settings but nothing changed. Why?

Two things to check:
  • The change was saved. In the settings of an existing data source, changes to Header Row and Rows to Remove at Bottom are saved only after clicking Save at the bottom of the page.
  • The file was uploaded again. Row settings apply from the next upload. Files uploaded before the change are not reprocessed. To apply the new settings to an existing file, delete the file from the data source and upload it again.
Delete the old file before uploading it again. Uploading the same file without deleting it first adds its rows a second time, which doubles the values.

How do I convert CSV values to my reporting currency?

Two settings are required:
  1. Under General > Advanced Settings > Currency in the data source settings, select the file’s source currency, then click Save. The default is None, which means no conversion.
  2. In Data Display, set Type to Currency for each cost and revenue metric. CSV metrics have no Type set by default, so conversion does not apply until this is done.
Metrics whose Type is Currency are then converted to the workspace or teamspace currency, the same way as for Google Sheets, and custom exchange rates are applied when configured. The currency setting applies to data already uploaded, with no re-upload needed. Refresh the dashboard to see the converted values. See Multi-currency reporting for how the reporting currency is resolved.

How do I split one report into a data source per campaign?

Use Split by Column on the CSV File data source. It creates one data source for each value of the selected column, named <CSV name> - <value>. Splitting by a campaign column gives each campaign its own data source, and the same works for a channel or advertiser column. The CSV File data source keeps every row. Split by Column is available once the first file is uploaded: in the upload panel right after that upload, or under General > Advanced Settings in the data source settings. Each column is listed with its number of values, such as Campaign (3 values). Columns with no values or more than 50 values cannot be selected. Every later upload or file deletion updates the split data sources, and a new value gets its own data source automatically. See Split by Column for the full steps.

Why does a split data source show as Empty?

A split data source shows as Empty when its value is no longer in any file of the CSV File data source, for example after the files with that value were deleted. Its tooltip reads “This value is no longer in any file of its CSV, so this data source has no data. Upload a file with this value to fill it again.” The data source is kept, and widgets that use it show a warning. To find empty split data sources, look for the Empty chip in the data source list, or select Empty in the Status filter. To fill one again, upload a file with the split column and that value to the CSV File data source. If a file without the split column was uploaded, every split data source becomes empty until a file with the column is uploaded.

Why was no data source created for a new value?

One CSV File data source can have at most 50 split data sources, and empty split data sources count toward the 50. Once the limit is reached, a new value in a later upload gets no data source of its own.

Why can I not change the split column?

The split column is saved as soon as it is selected, and it cannot be changed or cleared afterward. On a CSV that is already split, Split by Column shows “This CSV is already split by <column>. To split by another column, create another CSV data source.” To split the same data by a different column, create another CSV File data source, upload the files to it, and split it by that column.

Why can I not change the settings of a split data source or delete it?

A split data source takes its settings from its CSV File data source, including the date column, currency, metric types and aggregation, channel name and icon, and data blending. A change to these on the CSV File data source applies to every split data source. On a split data source itself, only its members and teamspaces can be changed, and files cannot be uploaded to it. Split data sources also have no Disconnect or Delete option of their own; their row action menu (three-dot icon) only has Setting. Disconnecting the CSV File data source sets all of its split data sources to Lost connection, and reconnecting it restores them. Deleting the CSV File data source deletes its split data sources with it.

Why does a split data source not appear in my teamspace?

The teamspace’s Data sources tab is likely set to Manual. New split data sources are added automatically only to teamspaces set to Auto. A Manual teamspace does not get them, even when the CSV File data source is already in it, so add the split data sources to that teamspace by hand. See Teamspace settings.

Should a split CSV use Upsert or Replace?

Upsert, with Unique Identifier Columns filled in, is recommended. For how each update method handles new uploads, see How do I control whether new uploads add to, update, or replace existing rows? Replace also works, with one effect on split data sources: a value that is not in the new file loses its earlier data, and its split data source becomes empty. A new file without the split column empties every split data source.

Do split data sources count toward the plan limit?

No. Split data sources are not included in Total on the data source list or in the plan’s data source limit. They are included in the Connected and Disconnected counts.

Why do my filters not apply to split data sources?

Filter conditions and custom breakdown label conditions are set per data source. A condition on the CSV File data source does not cover its split data sources, because each split data source is a separate data source. To apply a condition to a split data source, include that data source in the condition.

Common issues

When a CSV is uploaded, Adriel infers each column’s type from the first 10 rows.
  • A column whose first 10 rows are numeric is typed as a number. Later text values in the same column are stored as NaN and cannot aggregate.
  • Nulls in a numeric column can push the column to be typed as text, so sums return 0.
  • Numbers with comma thousand-separators (1,234) cannot be cast to number and are stored as strings. The source file has to remove the commas.
Columns must have a consistent data type across all rows. The column type can also be corrected manually on the data source as a workaround.
Two settings to check on the CSV data source:
  • Data start column skips every column to the left of the configured letter. Set to D, only column D onward is cached. Lower the setting to include earlier columns.
  • Date format must match how the source file writes dates (for example, MM/dd/yyyy versus yyyy/MM/dd), and the dates must be in one of the supported date formats. If the mapping is wrong, dates parse incorrectly and rows appear missing.

CSV File data reference

Import model, field type mapping, and limits for the CSV File data source.

How to connect CSV File

Upload a file and choose the update method during setup.

Custom URL Import data reference

Fetch CSVs from a URL on a scheduled refresh instead of manual upload.

File from SFTP data reference

Pull files from an SFTP server on a schedule.