A month uploaded at once
Thirty pre-written posts from a client's spreadsheet become draft posts in one action, instead of an agency team member typing each one individually into a composer across an entire working day.
Available now
In build
The whole team
Nineteen specialists, each with a defined job and an honest status label.
See all nineteenThe business (or its agency) can load a month of pre-written content in one action instead of creating dozens of posts one by one.
Works with
What it does
Socie accepts a spreadsheet or CSV of captions, media references, and target dates, validates each row, and creates draft posts in bulk on the calendar for review before scheduling. Errors in individual rows are flagged without blocking the rest of the batch.
An agency managing five retail clients' social accounts gets handed a month of pre-written festive content from one client's marketing team, sitting in a single spreadsheet — captions, image references, target dates for thirty-odd posts. Creating each one individually through a composer would eat an entire day the agency can't spare during a busy festive lead-up.
Bulk import accepts that spreadsheet or CSV directly, validates each row, and creates draft posts in bulk on the calendar for review before anything gets scheduled. A malformed row — a missing date, a broken media reference — gets flagged individually without blocking the rest of a valid batch. What it deliberately doesn't do is skip the normal checks a manually created post goes through: imported content still needs the same approval and platform-policy review, because bulk import exists to save typing, not to shortcut safeguards that exist for good reason.
Socie runs this directly on the platforms your customers already use — no separate app for them to install.
How it works
The file containing captions, media references and target dates for a whole batch of posts gets uploaded in one action, rather than needing every post entered manually through the composer one at a time by hand.
An async worker checks every row individually for a valid date, a resolvable media reference and complete required fields, so one broken row doesn't need to be fixed before the rest of the file can even be processed at all.
Every row that passes validation creates a draft post on the calendar, ready for the normal review, editing and scheduling steps rather than being scheduled directly and automatically the moment it's imported into the workspace.
A row with a problem — an unresolvable media reference, a malformed date — shows a specific error explaining what's wrong with that exact row, rather than being quietly dropped from the batch with no explanation of why it never appeared.
Why it matters
Thirty pre-written posts from a client's spreadsheet become draft posts in one action, instead of an agency team member typing each one individually into a composer across an entire working day.
A single broken date or missing media reference gets flagged on its own, while every other valid row in the same file still imports successfully without needing the whole file fixed first.
Every imported post still goes through the same review, editing and approval steps as a hand-typed one, so bulk import saves genuine typing time without quietly skipping a safeguard that exists for good reason.
The detail
Validation leniency is a real design tension worth understanding rather than assuming is handled correctly. A file-upload path that's too permissive can flood the draft queue with hundreds of malformed posts if checks let too much through, turning what should be a time-saver into a mess someone now has to clean up row by row — arguably worse than typing thirty posts by hand, since sorting a hundred bad imports takes longer than writing thirty good ones. Validation needs to be genuinely strict about what counts as a usable row.
Media references deserve particular attention, because a row referencing an image by filename only works if that exact file already exists in the media library. A row pointing at a photo never uploaded, or uploaded under a different filename, needs to surface as a clear per-row error — 'media reference not found for row 14' — rather than silently creating a draft with no image attached. A silent skip here is worse than a loud one, since nobody looks for a problem they don't know exists.
The safeguard worth repeating plainly: bulk import must never become a bypass route around the same approval and platform-policy checks a manually created post goes through. A festive campaign imported for a compliance-sensitive client still needs its wording reviewed the same way a hand-typed post would, and skipping straight to the schedule queue defeats the purpose of having approval at exactly the moment a mistake is most likely to slip through unnoticed.
Industry use cases
7 industries where Socie applies this directly.
A car service center plans a week of posts showing before/after detailing work and a monsoon check-up reminder, schedules them all on Monday morning, and lets Socie publish each one at its recommended time through the week.
See the automotive playbookA B2B software reseller drafts three LinkedIn posts about a recent client rollout, routes them through an approval step to the sales director, and once approved they publish automatically on the days set in the calendar.
See the b2b sales playbookA cosmetics brand uploads a batch of new product photos to the media library, drags them onto the grid preview to arrange the order, then schedules the whole week's worth of posts in one sitting.
See the beauty and cosmetics playbookAn agency account manager creates draft posts for two different retail clients, sends each batch through that client's own approval workflow, and later exports a branded campaign report for each client separately.
See the marketing agencies playbookA real estate broker uploads photos of a new listing, generates a caption highlighting the property's key features, and schedules posts across Instagram and Facebook to go live over the coming days.
See the real estate playbookA restaurant manager schedules a week of daily-special posts on Sunday night, with AI-suggested captions and hashtags for each dish, and Socie publishes them automatically at lunch and dinner hours.
See the restaurants and food playbookA travel agency schedules a series of destination-highlight posts ahead of a holiday season, using the content calendar to make sure posts are spaced out rather than bunched on one day.
See the travel and tourism playbookMore from Socie
The business can see everything planned across all social channels for the month at a glance, so gaps and clashes get caught before they become missed posting days.
Learn moreThe business writes a post once, customizes it per network, and it goes out automatically at the chosen time without anyone touching a phone.
Learn moreThe business gets a ready-to-post caption in seconds instead of staring at a blank composer box.
Learn moreThe business reaches more relevant people without manually researching which tags are trending in its niche.
Learn moreThe business never runs out of things to post, even during slow weeks with nothing obviously newsworthy to share.
Learn moreThe business gets a usable, on-brand social graphic without hiring a designer or opening editing software.
Learn moreQuestions
No — each row is validated individually, so a single row with a malformed date or a missing field gets flagged with its own specific error while every other valid row in the same file still imports successfully as a draft post. The agency fixes just the flagged row rather than needing to correct and re-upload the entire file from scratch over one bad entry.
It surfaces as a clear, specific error naming that exact row, rather than silently creating a draft post with no image attached and leaving someone to discover the gap only much later. A media reference that doesn't resolve to something already in the library is treated as a hard error worth flagging loudly, not a detail to quietly skip past.
They still need the same review and approval process as any manually created post — bulk import creates draft posts, not scheduled or published ones, specifically so nothing skips the normal compliance and platform-policy checks just because it arrived through a spreadsheet instead of a composer. Bulk import saves typing time; it never bypasses the safeguards that exist around what actually gets published.
A very large or malformed file can flood the draft queue with far more low-quality drafts than intended if validation lets too much through, so a sensible practical limit and genuinely strict row-level checks matter more than the raw ceiling on file size. It's worth uploading a large batch in a couple of smaller, reviewed chunks rather than one enormous file nobody can realistically check properly in one sitting.
The rest of your stack
No rip-and-replace — bulk-upload and schedule many posts at once works alongside the systems already running your business.
Coming soon