Skip to main content

What are posts?

Posts are the core content unit in Wanhap. A post represents a piece of content that can be published across one or more social media platforms. Each post has platform entries — one for each connected social account targeted by the post — that hold the content type, publishing status, and per-platform metadata.

Creating a post

  1. Click Create Post or click on a date in the calendar
  2. Write your content
  3. Add media (images or videos) if desired
  4. Pick which connected accounts to publish to (each becomes a platform entry)
  5. Choose to post now or schedule for later
When you create a post, Wanhap creates one platform entry per chosen social account. The post text is shared across all of them — there is no separate “synced/custom” toggle.

The calendar

The calendar view is the primary way to see your content schedule:
  • Click any post on the calendar to open it for editing
  • Switch views between month, week, or day
  • The status badge color signals where each post is in the publishing flow

Scheduling

Pick a date and time and Wanhap will publish the post automatically.
  • All scheduling times are stored and displayed in UTC
  • The scheduler checks for due posts every minute
  • A post scheduled for 10:00 UTC will typically publish between 10:00 and 10:01 UTC
When a post becomes due:
  1. Status flips to publishing
  2. A background job is dispatched per enabled platform entry
  3. Each platform publishes independently
  4. When all platforms finish, the post status updates to the final outcome
Posts can only be scheduled in the future. The validator rejects past dates.

Publishing flow

Each platform entry publishes independently. If LinkedIn succeeds but Instagram fails, the post becomes partially published — successful platforms aren’t undone because of one failure. Transient failures (the platform was temporarily unavailable, rate limited, etc.) are retried automatically — the platform entry’s status flips to retrying and Wanhap tries again after a short backoff, with no action needed from you. Non-transient failures (an expired token, a content policy violation) are not retried automatically — you can re-run the publish from the post editor once you’ve fixed the underlying issue (or, via API, send PUT /posts/{post} with status=publishing).

Post statuses

Platform entry statuses

Each platform entry inside a post has its own status: When a platform entry fails, error_message carries the reason returned by the platform (e.g. Token expired, Rate limit exceeded, Content policy violation).

Comments and @mentions

Posts have a Comments tab where workspace members can discuss drafts before they go out.
  • Type @ to mention another member — they receive a mentioned_in_comment notification (online → in-app only, offline → in-app + email)
  • React to comments with emoji to lightweight-acknowledge without typing a reply
  • Edit or delete your own comments any time
See Notifications.

Duplicating a post

From the post list (or any post’s ”…” menu) pick Duplicate to copy a post into a new draft. The duplicate gets a fresh ID and draft status; the original is untouched. The copy preserves content, media, labels, and platform entries — adjust the schedule and platforms before publishing. The duplicate action is gated by the same workspace policies as “create post” — anyone with create-post permission can duplicate.

Labels

Assign labels to posts to organize your content calendar. A post can have multiple labels. Use them for:
  • Campaigns — Group posts by marketing campaign
  • Content types — Separate educational, promotional, and engagement posts
  • Clients — Tag posts by client (useful for agencies)
  • Priority — Mark urgent or time-sensitive content
See Labels for more.

Per-platform fields

Each platform entry on a post exposes:

Deleting posts

You can delete any post at any time. Deleting removes the post and all its platform entries.
Already-published posts can’t be “unpublished” from the social platforms — deletion in Wanhap only removes our local record. Edit or delete on the platform itself if you need to take it down.

FAQ

No. Once a post reaches published, the editor blocks further edits and the API returns 422 for PUT /posts/{post}. To change anything, edit the post on the social platform directly.
The other platforms are unaffected. The post becomes partially_published and the workspace owner receives a notification. The error_message on the failed platform entry tells you what went wrong.
Not directly. Create a new post with the same content, or re-trigger the publish from the editor on a post that has at least one failed/pending platform.
UTC. The dashboard and the API use UTC across the board — there’s no per-workspace timezone setting today.
The scheduler runs every minute. A post scheduled for 10:00 will typically be picked up between 10:00 and 10:01, then dispatched per platform.