Scheduling & Publishing
lk-wiz owns the content and its schedule; Zoho Social owns the LinkedIn API. Approved posts are placed into recurring weekly slots (or given a per-post override) and handed off for publication.
Weekly publishing slots
Each workspace defines recurring weekly publishing slots — for example, Tuesday 09:00 and Thursday 14:00. Slots represent the cadence at which the workspace wants to publish.
Auto-scheduling
The auto-scheduler assigns Approved posts to the next open weekly slots, spreading content across the week according to the configured cadence. Authors can override the automatic assignment with a per-post schedule date and time.
Daily cron
A single EventBridge rule fires once per day (06:00 CET) and drives the scheduler Lambda, which:
- auto-schedules newly approved posts into open slots;
- logs and emits a metric for posts due in ~2 days — this does not send a Slack
message; it's a log line plus a CloudWatch metric only (
scheduler_service._send_reminders); - detects missed schedules (past their scheduled time by 24h) the same way — logged and metered, no Slack notification is sent.
Publishing via Zoho Social
Publishing is a manual handoff, not an automated one: when a post reaches its scheduled time, the author copies the final text and pastes it into Zoho Social, which performs the actual LinkedIn publication, then marks the post as published in lk-wiz. There is no API integration or automated handoff between lk-wiz and Zoho Social — this separation keeps lk-wiz free of direct LinkedIn API credentials and lets Zoho manage rate limits and platform specifics.
Notifications
Scheduling and pipeline events (submitted for review, approved, action requested, and a post's status being manually set to "scheduled" or "published") are delivered through the Slack SDK as bot-token direct messages — there is no per-workspace webhook override. The daily cron's own jobs are the exception: neither the 2-day reminder check, the missed-schedule check, nor the auto-assignment of newly approved posts to slots sends a Slack message — each only logs and emits a CloudWatch metric. See the notification flow in the architecture overview.