Module
DivisionDesk Social Media
Social publishing, scheduling, connected networks, content distribution, and social engagement management.
About
Manage supported social networks from DivisionDesk, including connected accounts, scheduled publishing, multi-network distribution, content planning, feeds, interactions, and integration with DivisionDesk publishing and communications workflows.
Features
- Multi-network social publishing
- Scheduled posts
- Facebook Pages integration
- Instagram Professional integration
- X integration
- LinkedIn Pages integration
- YouTube integration
- Content scheduling
- Social feed integration
- DivisionDesk content integration
What's New in 1.0.24
Restore parent-post context in Social Inbox, improve Meta identity enrichment/fallbacks, and redesign comments/messages into a clearer feed-and-conversation inbox.
View full package changelog
# DivisionDesk Social Media 1.0.24 - Redesigns Social Inbox into a full-width surface instead of squeezing post/comment threads into the dashboard utility sidebar. - Facebook/Instagram comments now render as feed-style source-post cards with the original post text, image, time, permalink and grouped comments when supplied by the Server. - Private messages remain true conversation threads with chronological incoming/outgoing bubbles and one reply composer per conversation. - Supports provider-returned commenter profile pictures and clearer identity fallbacks when Meta withholds a user name. - Adds a visible "Name unavailable from Meta" hint instead of exposing raw PSIDs as though they were useful names. - Keeps all existing publishing, scheduling, notification, reply, mark-read, background-sync and setup behavior. - Hierarchy audit: no National/Division/Brigade/Camp UI or scope assumptions were found; the module already registers for all organization levels and needs no hierarchy migration. - Coordinated with DivisionDesk Server 1.22.14 for parent-post metadata and best-effort Meta profile enrichment. # DivisionDesk Social Media 1.0.23 - Fixed Messenger reply regression introduced during conversation grouping. - Preserves the exact Server/Meta `reply_target_id` and `reply_action` supplied for incoming messages instead of replacing the reply target with a display/grouping participant ID. - Conversation reply forms now anchor only to incoming messages with a valid provider reply contract; outbound Page/self copies are never used as reply targets. - Retains the v1.0.22 conversation grouping and historical outbound-message repair behavior. # DivisionDesk Social Media Changelog ## 1.0.22 - Fixed Messenger conversation grouping so outbound Page replies are joined to the same participant thread as incoming messages instead of appearing as a separate Page-owned conversation. - Added normalized conversation/participant identity carried through inbox synchronization and outbound-reply correlation. - Added a conservative repair path for legacy outbound messages when exactly one matching inbound conversation exists on that network. - Fixed the Open Inbox unread badge so it updates immediately when conversations are read and after inbox refresh. - Kept unread counts limited to unread incoming activity; Page/self activity remains read. # Changelog ## 1.0.20 - Groups private messages into one expandable conversation per participant/thread instead of rendering every message as a separate inbox item. - Renders incoming and Page/self messages as a chronological two-sided conversation with a single reply composer per thread. - Opening a private-message conversation marks all synchronized messages in that conversation read locally and clears matching DivisionDesk inbox notifications. - Requests a brokered Meta `mark_seen` acknowledgement when a Messenger conversation is opened or replied to; provider acknowledgement failures do not resurrect locally-read messages. - Keeps Page/self activity out of unread counts and preserves read state across subsequent inbox synchronization. ## 1.0.19 - Social Inbox now synchronizes in the background from the global Administration alert cycle (throttled) in addition to the existing scheduler and Social dashboard refresh. - New external comments/messages/mentions create global Administration alerts without requiring the Social Media page to be open. - When Social push is enabled, genuinely new external activity emits a normalized event that Communications can immediately deliver to active admin Web Push subscriptions. - Replies sent by the logged-in administrator are recognized as outbound/own activity and no longer generate new-item alerts or unread counts when providers echo them back. - Source-post context now accepts current and legacy broker field shapes (`source_post`, `parent_post`, `post`, `source`, and flat post fields) before falling back to safe local published history. - Failed/canceled calendar rows can now be deleted; failed/scheduled rows can be edited in place before retry/publish. Revised schedules create a new scheduler job and stale earlier jobs safely defer. - Added Core Analytics events for publishing, failures, scheduling, edits, comments, messages, mentions, replies, and Meta account connect/disconnect. ## 1.0.18 - Fixed cross-module Publishing distribution by routing SDK destination delivery through the canonical `SocialPostService` instead of the low-level `Publisher`. - Replaced ambiguous generic Social Media distribution with explicit enabled/connected platform destinations such as Facebook Pages and Instagram Professional. - Immediate external publications now persist into `published_posts` and appear in Content Calendar → Published. - Distribution results now include a Social Media local post ID and provider remote ID when available. - Normalized Publishing canonical URL/message/media into the native social post model. # DivisionDesk Social Media 1.0.17 - Refined the Social Media dashboard to closely match the approved mockup: stronger navy/gold DivisionDesk hierarchy, cleaner KPI cards, softer shadows, tighter card spacing, more polished collapsible headers, clearer status pills and a more intentional two-column desktop layout. - Calendar rows, social thread cards, avatars, comment spacing, unread indicators and Tools were visually refined without changing their 1.0.16 behavior. - Preserves grouped comments under source posts, compact on-demand Reply links, click-away reply closing, typed-draft preservation, 30-second live inbox sync, 60-second background recovery, scheduler fallback, and blank-alt Meta publishing correction. - Module-only release. No Core or Server change. # DivisionDesk Social Media 1.0.16 - Groups Social Inbox comments under their source Facebook/Instagram post when the provider/broker supplies a parent post identity or the module can safely correlate it with locally published history. - Shows the post once, then all synchronized comments beneath it in chronological order with comment count/unread count. - Replaces permanently visible reply forms with a small Reply link per comment. - Clicking Reply opens a compact inline reply editor; clicking elsewhere closes an empty editor. Typed drafts are preserved rather than silently discarded. - Successful replies close the editor and refresh the thread without a page reload. - Private messages remain separately grouped and continue to support replies where the provider permits them. - Omits blank optional alt_text from the Meta broker publishing payload. Alt text remains supported when supplied, but is no longer sent as an empty optional parameter. - Adds safe local source-post enrichment from DivisionDesk's own published-post history; unavailable post details are never fabricated. - Keeps the stable 1.0.15 automatic synchronization and scheduled-publishing recovery behavior unchanged. - Module-only release. No Core or Server changes. # DivisionDesk Social Media 1.0.15 - Rebuilt the Social Media dashboard around the approved clean two-column mockup with compact KPI cards and collapsible Authorization, Channels/Health, Composer, Calendar, Inbox and Tools panels. - Social Inbox synchronizes immediately after the page opens and every 30 seconds while visible without a full-page refresh. - The existing 60-second package scheduler job remains the unattended synchronization path and now records scheduler success/error timestamps so stale background sync is visible instead of silent. - New social comments/messages are registered through Core's existing Admin Alerts provider, giving the admin notification bell a real Social Media source. - Inbox refresh preserves read state and does not recreate the same notification every sync. - Inbox rows now present commenter/message identity, provider/type/time, a clean source-post context card, comment body and inline reply. If the current Server broker does not return parent-post details, the UI says so rather than inventing them. - Content Calendar is grouped into Upcoming, Overdue/Failed and Published, with Publish now/Retry/Cancel/Copy to composer actions and explicit overdue state. - Due scheduled rows are now processed by both the PackageScheduler/JobQueue primary path and the module's recurring sync scan as an idempotent safety net. The open admin page also performs a once-per-minute overdue recovery check. - Tools remain collapsible and functional; Hashtag Library and real shortcuts are retained. - No Core or Server files are changed by this release. # DivisionDesk Social Media 1.0.14 - Scheduled posts are now registered as real Core PackageScheduler/JobQueue work at creation time; the old recurring scan remains only as a legacy fallback. - Scheduled calendar rows show post preview text, destinations, local display time, image thumbnail, status, last error, Copy to composer and Cancel. - Social Inbox shows provider identity returned by Server and supports inline replies for supported Facebook/Instagram comments and Facebook Page messages. - Channels/publishing health and Tools are collapsible. - Replaced decorative Tools cards with a working Hashtag Library and real shortcuts. - Requires Core 4.4.1+ and Server 1.22.8+ for package CLI scheduling and Social reply actions. # DivisionDesk Social Media 1.0.13 - Fixed dashboard contradiction where an active Server-brokered Facebook/Instagram asset could appear connected in the Meta authorization card but `Needs connection` in Channels. - Meta broker connection + secure connection token is now authoritative for channel status. - Fixed composer/Inbox Smart Action requests returning `Invalid security token`; the dashboard now embeds Core's current CSRF token directly and uses Core's base-path-aware `/integration-actions.php` URL. - Composer offers only destinations that are actually connected; skipped/pending channels no longer appear as usable publishing destinations. - No Core or Server change is required for this corrective release. # DivisionDesk Social Media 1.0.12 - New immutable release identity for the corrected Core 4.3.9 / Server 1.22.7 Store delivery path. - Requires Core 4.3.9+ and Server 1.22.7+. - Retains Meta broker authorization, real composer validation/draft/schedule/publish, scheduler execution, inbox refresh, connection persistence, provider skip fixes and dashboard navigation from 1.0.11. - No Social OAuth Contract v1 endpoint changed. # DivisionDesk Social Media 1.0.11 - Coordinated production release requiring Core 4.3.7+ and Server 1.22.5+. - Retains real validate/draft/schedule/publish execution, Server-brokered Meta publishing/inbox, provider skip fixes, dashboard navigation and connection-state persistence from 1.0.10. - Package identity remains `module: social-media`; runtime remains client. - No Social OAuth Contract v1 endpoint changed. # DivisionDesk Social Media 1.0.10 - Real composer validate/draft/schedule/publish actions. - Real Server-brokered Facebook/Instagram publishing without exposing Meta access tokens to clients. - Facebook/Instagram inbox synchronization where granted permissions allow it. - Scheduler publishes due posts and refreshes supported inbox activity. - Skip-for-now works across provider steps. - Create Post, Content Calendar and Open Inbox are functional. - Broker connection state is preserved across later wizard steps. - Requires DivisionDesk Server 1.22.3+ for Meta execution bridge. # 1.0.10 - Fixed Core setup-wizard **Skip for now** handling for X and every non-Meta provider by persisting the clicked action in a hidden form field before Core serializes the form. - Applied the same robust clicked-action handling to the Meta skip path. - Replaced inert dashboard Create Post, Content Calendar, and Open Inbox buttons with functional navigation controls and concrete composer/calendar/inbox targets. - Added empty-state/content rendering for Content Calendar and Social Inbox. - Retains Social OAuth Contract v1 and the 1.0.8 Meta wizard bridge unchanged. # Changelog ## 1.0.8 - 2026-08-21 - Fixed `DivisionDesk Social bridge is unavailable` in the Core setup wizard. - The Facebook/Instagram wizard is now self-contained and calls Core's existing `integration-actions.php` Smart Action endpoint directly. - Uses the current Core CSRF token, same-origin credentials, JSON request/response validation, and the package-qualified `social-media:social-broker` action. - The browser no longer needs to visit the Social Media admin dashboard before Facebook authorization can work. - Preserves the Server 1.21.3 Social OAuth Contract v1 architecture. - Admin dashboard Social bridge now also has a direct Smart Action endpoint fallback. - Retains 1.0.7 same-request idempotent registration update fix. ## 1.0.7 - 2026-08-21 - Fixed Social Media updates throwing `Duplicate module admin page: social-media:main`. - Made the complete client registration idempotent for the lifetime of a PHP request. - This specifically handles Core's same-request update behavior: the already-loaded module may be asked to register again after files are replaced, but PHP still has the original class definition loaded. - A repeated `register()` call in that request is now a no-op, preventing duplicate Module Admin, distribution, Smart Action, dashboard, widget and other strict registry collisions. - Fresh requests still register Social Media normally, so the newly installed version becomes active on the next page load. - No Core change is required. - Server runtime registrar remains isolated to `ServerModuleContext`. ## 1.0.6 - 2026-08-21 - Fixed `Duplicate module admin page: social-media:main`. - `server/module.php` now activates only for the Server Module SDK context and no longer treats the client Registry as a Server registry. - Server runtime uses `adminPage`, `scheduledJob`, and `help` through `ServerModuleContext`. - Added explicit `server_permissions` and minimum Server 1.21.3. ## 1.0.5 - 2026-08-21 - Replaced manual Facebook Page ID/access-token setup with the frozen DivisionDesk Server Social OAuth Contract v1. - Added Connect Facebook authorization flow using first-party `PlatformClient`/`PlatformHttp` primitives. - Meta App Secret and provider access tokens remain on DivisionDesk Server. - Added short-lived OAuth-session polling and Meta Page/Instagram asset discovery. - Added Page/Instagram asset selection. - Stores only opaque DivisionDesk `connection_id` metadata and a one-time `connection_token` in Core SecretVault. - Added broker connection status and disconnect behavior. - Final wizard verification uses DivisionDesk Server connection status for Facebook/Instagram. - Preserved manual connector setup for non-Meta providers until their Server OAuth providers are formally frozen. - Updated dual-runtime Server registrar version to 1.0.5. - Canonical slug remains `social-media`; runtime remains `both`. ## 1.0.4 - 2026-08-18 - Fixed the first-use wizard so selected networks now have real provider connection steps. - Added Connect & Test / Skip for now behavior for all nine supported networks. - A network is only marked Connected after its connector test succeeds. - Added final verification step that re-tests every connected selected network. - Provider secrets are stored in Core SecretVault; non-secret identifiers remain in package-scoped storage. - Added provider-specific connection fields and Help. - Accounts & Setup reuses the Core setup wizard; there is no competing module-owned wizard shell. - Did not invent an unfrozen DivisionDesk Server OAuth-broker API. A centralized broker remains a future Server contract. - Retained canonical slug `social-media`, runtime `both`, and required callable `server/module.php`. ## 1.0.3 - 2026-08-18 - Added required `server/module.php` callable registrar for DivisionDesk Server. - Added capability-detected Server admin/capability/job/job-handler/Help registration. - Added explicit Server callable/global-state-isolation release-gate tests. - Canonical package slug remains `social-media`. ## 1.0.2 - 2026-08-18 - Restored canonical slug `social-media`; fixes the accidental duplicate-package identity introduced by 1.0.1. - Declares package runtime `both` for DivisionDesk client and Server use. - Rebuilt against Developer Platform 1.0 / Core 4.3.x package APIs. - Replaced raw diagnostic admin page with `Registry::moduleAdmin()`. - Added Core `Registry::setupWizard()` first-use setup. - Added Social Media distribution destination, Smart Action, scheduler job/handler, dashboard card, Help entry and Social Feed widget. - Added production-style Social Media dashboard/composer shell and channel health presentation. - Preserves capability-based connector behavior and platform preflight checks. - Keeps all asynchronous UI actions visibly busy and restores controls on completion. ## 1.0.1 - Superseded. Used accidental slug `socialmedia`; do not publish as a separate package going forward. ## 1.0.0 - Initial connector foundation.
Release History
1.0.24 development published
2026-09-13T06:31:43+00:00
2026-09-13T06:31:43+00:00
Restore parent-post context in Social Inbox, improve Meta identity enrichment/fallbacks, and redesign comments/messages into a clearer feed-and-conversation inbox.