Use Saver Option Business
Import subscriptions from CSV
Import many subscriptions at once from a spreadsheet export: template, column mapping, preview, duplicate detection and import history.
Steps
- Open Subscriptions → Import CSV. Owners, admins and finance can import.
- Optionally download the template (column names only, no example rows).
- Choose a
.csvfile of up to 1 MB and 2,000 rows. Commas, semicolons and tabs are detected automatically. - Check the column mapping and the file options, then update the preview.
- Review every row: Will be created, Duplicate — will be skipped, or Error, with the values as they'll be saved.
- Click Import N subscriptions. Nothing is saved before this step.
Columns
Columns are matched by their names (for example “Tool”, “Cost”, “Billing cycle”, “Licenses” or “Team”). Change any mapping that's wrong; columns you don't map are ignored. Only the software name is required.
| Column | Required | Format | Example |
|---|---|---|---|
| Software | Yes | Text, up to 80 characters. Matched to your inventory by name; new names are added to it. | Figma |
| Vendor | No | Company that sells it. | Figma, Inc. |
| Category | No | One of the app's categories, e.g. Design, Team chat, Cloud & hosting. Anything else becomes “Other”. | Design |
| Website | No | Web address. | figma.com |
| Plan | No | Plan or edition name. | Professional |
| Price | No | What one billing period costs in total, e.g. 1,299.50. Currency symbols are ignored. Leave blank if unknown — it's never treated as zero. | 144.00 |
| Currency | No | Three-letter code. Blank uses the file's default currency. | USD |
| Billing interval | No | Monthly, Quarterly, Yearly (or Annual), or “every 6 months”, “every 2 weeks”… | Monthly |
| Pricing model | No | “Per seat” when the price covers the purchased seats; otherwise flat. | Per seat |
| Purchased seats | No | Whole number. | 12 |
| Seats in use | No | Whole number, at most the purchased seats. | 9 |
| Start date | No | Date in the file's date format. | 2025-11-01 |
| Next renewal date | No | Date in the file's date format. | 2026-11-01 |
| Cancellation deadline | No | Date, on or before the renewal date. | 2026-10-01 |
| Contract end date | No | Date. | 2027-10-31 |
| Auto-renew | No | Yes or No. Blank keeps the app default (renews automatically). | Yes |
| Status | No | Active, Trial, Paused, Cancelled or Expired. Blank means active. | Active |
| Department | No | Name of an existing department (matched without case). Unknown names are left blank. | Design |
| Owner | No | Name or email of someone in your team directory. Unknown people are left blank. | maya@example.com |
| Payment method | No | A short label, never a card number. | Company Visa ••4242 |
| Business purpose | No | What the team uses it for (new software only). | Product design |
| Notes | No | Free text. | — |
File options
- Date format in the file: YYYY-MM-DD, DD/MM/YYYY or MM/DD/YYYY.
- Decimal separator: dot or comma. A mismatch is flagged rather than misread.
- Default currency for rows without one, and a default billing interval when the file has no such column.
Validation and matching
Each row goes through the same rules as the subscription form: amounts, dates, seat counts, and payment-method labels (card numbers are refused). A blank price stays unknown.
Software is matched to your inventory by name; new names are added to it. Departments and owners are matched to existing records only — an unknown one is left blank with a warning, never created.
Duplicates and re-imports
A row is a duplicate when the same software, plan, billing interval and currency already exists (or appears earlier in the file). Duplicates are skipped and linked to the matching record. Existing records are never overwritten.
Importing the same file again shows when it was first imported, and creates nothing that already exists. A double click on Import can't create rows twice.
After the import
The result shows how many rows were created, skipped and failed, with links to the new subscriptions. Totals on the dashboard update straight away. Import history on the same page lists earlier imports with their counts and row messages.