← Modules

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

Restore parent-post context in Social Inbox, improve Meta identity enrichment/fallbacks, and redesign comments/messages into a clearer feed-and-conversation inbox.