CSV templates
The columns each import expects, with an example row for every record type.
Every import in AgencyOS takes a CSV file with a header row. The quickest way to get it right is to click Download sample CSV in the import window, replace the example row and upload it. This page lists the columns for each kind of record, so you can prepare a file in advance or check why a row was refused.
Rules for every file
- Keep the header row exactly as in the sample: same names, any order. Extra columns are ignored unless noted.
- One row per record. Commas inside a value need the value in double quotes; spreadsheet apps do this for you.
- Dates use
YYYY-MM-DD, for example2026-11-01. - Save as CSV UTF-8 so names in Arabic and other scripts come through correctly.
- Import clients first. Other imports match rows to existing clients by company or name.
Clients
From Clients → Import. Up to 5,000 rows, 10 MB.
| Column | Required | Notes |
|---|---|---|
client_name | Yes | The contact’s name. full_name or name also work. |
company | No | Company name. company_name also works. |
email | No | A valid email address. |
phone, mobile | No | Any format, up to 60 characters. |
address | No | Accepted but not stored. |
start_date | No | YYYY-MM-DD. |
status | No | active (default) or inactive. |
client_name,company,email,phone,mobile,address,start_date,status
Leila Haddad,Cedar & Sage Bakery,[email protected],+961 1 555 0100,,,2025-10-14,active
Domains
From Websites & Hosting → Import.
| Column | Required | Notes |
|---|---|---|
domain_name | Yes | Stored in lower case. A domain that already exists is a duplicate. |
client_name | Yes | Must match an existing client’s company or name. |
registrar | No | Added to Providers if it isn’t there yet. |
renewal_date | Yes | The next renewal date. |
status | No | Defaults to active. |
domain_name,client_name,registrar,renewal_date,status
cedar-sage-bakery.example,Cedar & Sage Bakery,Registrar One,2027-03-01,active
Providers
From Providers → Import.
| Column | Required | Notes |
|---|---|---|
provider_name | Yes | A provider that already exists is a duplicate. |
category | Yes | For example Hosting, Emails, Storage or SaaS. |
account_email_or_username | No | The login you use with the provider. Never put passwords in the file. |
website_url | No | |
status | No | active (default) or inactive. |
provider_name,category,account_email_or_username,website_url,status
Harbor Hosting,Hosting,[email protected],https://harbor-hosting.example,active
Infrastructure
From Infrastructure → Import. Plan server limits apply.
| Column | Required | Notes |
|---|---|---|
server_name | Yes | A server that already exists is a duplicate. |
client_name | No | Leave blank for a shared server. |
provider_name | No | |
region | No | Defaults to United States. |
operating_system_version | No | Defaults to Rocky Linux 10. |
ip_address | No | |
monthly_cost | No | A number, in USD. |
due_date | No | The renewal date. |
status | No | Defaults to operational. |
server_name,client_name,provider_name,region,operating_system_version,ip_address,monthly_cost,due_date,status
nw-web-03,,Harbor Hosting,Lebanon,Ubuntu 24.04 LTS,,40.00,2027-01-15,operational
Outsources
From any directory under Outsources → Import. One file can mix all types. Up to 5,000 rows, 5 MB; if any row is invalid nothing is imported.
| Column | Required | Notes |
|---|---|---|
type | Yes | influencer, model, photographer, videographer or freelancer. |
name | Yes | |
country_code | Yes | Two letters, for example LB, AE, SA. |
city | Yes | |
payment_type | Yes | hourly, monthly or per_project. |
approximate_session_price | Photographers, videographers, freelancers | A number. Leave blank for influencers and models if you like. |
gender | Influencers, models | male or female. |
business_specialities | Influencers, models | Their specialty, for example Lifestyle or Fashion Model. Optional for freelancers (industry). |
social_links | Influencers, models | At least one, as platform|url;platform|url. |
specialities | Photographers, videographers | For example food, product, wedding. |
specialization | Freelancers | For example web_developer, copywriter, video_editor. |
phone, email, portfolio_url, notes | No |
type,name,phone,email,country_code,city,social_links,portfolio_url,approximate_session_price,payment_type,gender,business_specialities,specialities,specialization,notes
influencer,Noor Hamdan,+961 3 555 100,[email protected],LB,Beirut,instagram|instagram.com/noor.example,,450,per_project,female,Food Blogger,,,Bakery and café content
freelancer,Ali Moussa,,[email protected],LB,Saida,,https://ali.example,35,hourly,,technology,,web_developer,
Workspace briefs
From Manage Workspaces → Import. The sample has a column for every brief field: the workspace name, client, timezone and status, then brand foundation (history, vision, mission, values, personality, audiences, tone of voice, AI writing instructions), one URL and posts-per-month pair per platform (platform_instagram_url, platform_instagram_frequency and so on), and the content strategy (strategy_content_pillars, strategy_objectives, KPIs, dos and don’ts). Workspace Name and the client are required; a client that can’t be matched is resolved on screen. Download the sample from the import window; the import screen shows an example for every field.
Posts
From Calendar → Import. Up to 5 MB. Two templates:
- Download sample CSV: the minimum columns
workspace_name,title,caption,content_type,platform,language,timezoneandscheduled_at. - Download full example CSV: adds
id,content,workflow_status,publishing_status,priority,brief,content_pillarandcampaign.
Leave id blank to create a post, or keep the ID from an export to update that post. scheduled_at is a date and time with offset, for example 2026-11-07T09:00:00+02:00. Invalid rows are skipped and listed; the import screen lists every accepted value.
workspace_name,title,caption,content_type,platform,language,timezone,scheduled_at
Cedar & Sage Bakery,Sourdough Saturday teaser,Fresh loaves from 7am this Saturday.,static_image,instagram,en,Asia/Beirut,2026-11-07T09:00:00+02:00
Project tasks
From a project page → Import CSV. Rows with errors are skipped and listed; valid rows still import.
| Column | Required | Notes |
|---|---|---|
title | Yes | |
description | No | |
status | No | An active status of the project, such as To do. Blank uses the first status. |
priority | No | urgent, high, medium (default) or low. |
start_date, due_date | No | YYYY-MM-DD. |
assignee_emails | No | Emails of active project members, separated by semicolons. |
tags | No | Separated by semicolons. |
workspace_name | No | Must match one workspace exactly. |
title,description,status,priority,start_date,due_date,assignee_emails,tags,workspace_name
Write captions for the bake sale,Three captions for Instagram and Facebook.,In progress,medium,2026-10-13,2026-10-17,[email protected],captions; autumn,Cedar & Sage Bakery

