aios-data-import

Maps uploaded CSV, TSV, or XLSX columns onto allow-listed client data fields and commits import runs.

1|Updated Jul 8, 2026
One-click install
npx skills add https://github.com/codesofadan/danyals-aios --skill aios-data-import-codesofadan
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: aios-data-import
Source: https://github.com/codesofadan/danyals-aios/tree/main/.claude/skills/aios-data-import
Command: npx skills add https://github.com/codesofadan/danyals-aios --skill aios-data-import-codesofadan

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Importing client SEO data (keywords, rankings, backlinks, citations, Search Console exports) into the AIOS platform requires mapping arbitrary file columns onto the exact set of fields the API accepts, and operators often misreport partial or failed imports as successes. This Skill drives the mapping and commit workflow against the published allow-list and reports rejected rows honestly. ## Core Features & Use Cases - Allow-list-driven column mapping: Reads the legal target fields per source type from GET /data-import/fields and refuses to invent or guess target columns. - Import run lifecycle: Finds uploaded runs, sets the column map, commits the import, and re-reads the run to report landed versus rejected rows. - Honest rejection reporting: Distinguishes imported, partial, and failed statuses, surfaces the capped errorSample, and never rounds a partial import up to a success. - Use Case: An operator uploads a rankings CSV for a client through the dashboard, then asks the assistant to map its columns and commit it; the Skill maps file columns onto allow-list fields, commits, and reports that 1,200 rows landed and 37 were rejected with their reasons. ## Quick Start Ask the assistant to import the uploaded rankings file for a named client and map its columns to the accepted fields.

Frequently Asked Questions about aios-data-import

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I import keywords or rankings from a CSV file?▼

Upload the file through the dashboard as multipart form data, then the Skill finds the run via GET /data-import/runs, maps the file's columns onto the allow-listed fields, and commits with POST /data-import/runs/{id}/commit. Rankings imports require a resolved client.

Which columns does a data import file accept?▼

The accepted target fields come from GET /data-import/fields for the given source type, and only those names may appear in a column map. For example, keywords imports use volume rather than search_volume, and required fields include keyword for keywords and rankings, ref_domain for backlinks, and directory for citations.

Why were rows rejected from my import?▼

A partial status means some rows landed and some were rejected; the run detail's errorSample lists up to 50 rejected rows with field, value, and reason. The errors field gives the true total, which may exceed the sample size.

Can the Skill upload the file directly via the API?▼

No. The upload endpoint POST /data-import/uploads requires multipart/form-data, while the shared client sends JSON only. The operator uploads through the dashboard, and the Skill handles mapping and committing afterward.

What happens if every row in an import is rejected?▼

The run status becomes failed, not partial, and nothing lands. The failure reason is appended to errorSample as a synthetic row 0 entry, since there is no top-level failure field.

Why does a custom source type import always fail?▼

The custom source type has an empty allow-list by construction, so any non-empty column map returns a 400 and a commit always fails. It only stages a file and has no target fields.