All Drafts

Seven networks, one calendar and a golden rule: never post the same thing twice

This is the social media planner I built for a Chilean eCommerce: you write once, schedule across all networks, and the queue posts on its own. It also gathers comments in one inbox and replies by direct message on Instagram.

Daniel Flores Osses
Daniel Flores Osses
Oct 20, 2026 · 6 min read

Tuesday, nine in the morning. Someone opens Instagram on their phone, pastes the promo text, uploads the photo and posts. Then they repeat the same thing on Facebook, Threads and LinkedIn. At eleven they notice the link was missing and edit all four. Meanwhile, there are comments nobody has read since Friday.

That scene repeats itself in many eCommerce teams, and it was the problem I had to solve for a Chilean eCommerce with two stores, one retail and one wholesale. What was missing was a place to plan, publish and talk with people without jumping from app to app. So I built a social media planner tailored to the business, on top of an open-source project that I adapted into Spanish.


The core idea

Write once, choose which networks it goes out on, put it on a calendar and forget about it: the system posts it by itself at the set time. Around that sits everything that used to live scattered: comments from all networks in one inbox, automatic replies by direct message on Instagram, and each channel's stats.

Create postInstagram✓Facebook✓Threads✓LinkedIn✓custom textThursday 10:00scheduled on the calendarGoes out on its own on all four networks, without opening any of them
You write it once, tweak one network if needed, and the calendar posts it everywhere at the chosen time.

Each store has its own instance, with separate channels, posts and users, and you get in from the business's internal portal, with no other password to remember.


The calendar

  • Day, week, month or list, with filters for scheduled, drafts and published.
  • Suggested times per channel, which show up as slots: one click opens the composer with that date.
  • Chile time always, even if the computer is in another time zone.
  • Duplicate, preview, view stats or delete each post.
MonTueWedThuFriSatSunPostWent outScheduled: dropped and left with the new timeAlready went out: repostor just update the data?
Dragging reschedules; if the post already went out, the app asks before posting it again.

Rescheduling is drag and drop. If the post already went out, the app assumes nothing: it asks whether to repost it or just update its data.


The post composer

You tick the channels, write the text and add photos or videos from the library. The preview shows how it will look on each network, and the app warns you if any channel is missing an adjustment.

  • One text for all networks, with the option to customize just one.
  • AI to rewrite, shorten, change the tone and suggest hashtags, always for review before using.
  • Recurring posts, from daily to monthly.
  • Shortened links that later show how many clicks they got.
  • Signatures, channel templates and color tags to avoid repeating work.

When you're done, you schedule it, save it as a draft or post it right away. If the text is too long for a network, you have to fix it before scheduling.


How it really gets posted

When you schedule, the post enters a queue. A server process checks it every five minutes and posts whatever is due; with the calendar open, it pushes it every minute.

You schedule for 10:00The post enters the queueThe server checks every 5 minutesWith the app open, it pushes every minuteGoes out on time or a few minutes later"Post now" moves it upVideo: waits for the network's confirmationPolls for up to about 30 minutesTemporary connection failure?Retries on its own at 1, 5 and 15 minutesCouldn't confirm whether it went out?Stays in error and is never duplicated
The queue posts on its own and retries temporary problems, but never reposts something that might have gone out.

The underlying rule is simple: temporary problems are retried automatically, doubtful ones never are. A connection drop is retried at 1, 5 and 15 minutes. But if the app couldn't confirm that a post went out, it leaves it in error with the notice "check the account before posting again." Posting the same thing twice is worse than not posting.

Retrying temporary problems is easy. The hard part is knowing when not to retry.

Comments in a single inbox

Instagram and Facebook comments, including ad comments, arrive from the store's CRM; YouTube, LinkedIn and Google reviews are brought in by the app itself.

InstagramFacebookYouTubeLinkedInReviewsSingle inboxAllUnansweredFrom adsUnansweredDo you ship to other regions?What's the price?AdThanks, it arrivedHighly recommendedReviewSuggest a reply with AIYou review it and you publish itPost
Five sources, one inbox: the filter leaves only what's pending, and the AI proposes, but a person publishes.
  • "Unanswered" and "From ads": the two filters that organize the day.
  • Public reply or internal note, visible only to the team.
  • AI-suggested reply that is never sent on its own: a person reviews and publishes it.
  • Hide or delete comments, with badges that show their status.

The comment that answers itself

On Instagram someone comments "price" and waits for a reply. A rule handles it: when someone comments this word on this post, send them this direct message.

Instagram comment"Price?"Whole wordMatch: it firesInstagram comment"How precious"It's a different wordDoesn't fireWaits before sendingIf the team is already chatting, the automatic one doesn't go outDirect messageHi {name}, here'sthe catalog with pricesSee morePublic replyWe messaged you!up to 4 variantsDaily capStarts switched off and is tested with a dry run
A rule listens for a word, waits, checks that nobody on the team is talking, and only then sends the direct message.
  • Whole words, regardless of capitalization or accents: "precio" doesn't fire on "precioso."
  • Direct message with a button and optional public reply, with variants so it doesn't sound like a robot.
  • Brakes: a wait before sending, a daily cap, and silence if someone on the team is already chatting.
  • Dry run before turning on, and a history of every send afterward.

Library, analytics and permissions

  • Media: photos and videos in one place, with clear size limits.
  • Analytics per channel at 7, 30 or 90 days.
  • Seven networks connected with each one's official authorization, without sharing passwords.
  • A "Publishing active" switch per channel: connected, but not posting until you decide.
  • Three roles: admin, user and read-only viewer.

What the business gains

A post is written once, not four times, content goes out even if nobody's looking at the phone, no ad comment goes unread, and the queue prefers to alert rather than duplicate.

The best time to post no longer depends on who's awake. It depends on the calendar.

Want something like this in your company? Check out AI consulting.

Contact me