Channel Publisher
Content Syndication publishes Drupal content to external platforms from the node edit form, with queued delivery, retries, rate limiting and optional AI-generated captions. Facebook Pages are supported first.
Each destination is a plugin, so new platforms can be added without changing the core workflow. More destinations are planned, and they are not limited to social networks.
Features
- Pluggable
PublisherPlatformplugins, one per destination. - A "Publish to Channels" panel on the node form with an editable preview text and an optional scheduled time.
- Delivery through Drupal's queue and cron, with retries using exponential backoff (1, 2, 4, 8 and 16 minutes) and a maximum of 5 attempts.
- Per-account daily rate limiting, using each platform's own cap.
- A job history entity with revisions and Views integration, recording status, remote post ID and URL, attempts, and the last error.
- Optional AI-generated captions through the AI module's provider abstraction.
- An optional pre-publish AI-detection check, shown as a warning only. It never blocks publishing.
- OAuth tokens are stored with the Key module and never appear in exported configuration.
Facebook Page publishing (Graph API, text and image posts) is the only platform included today. Planned next are Instagram Business, Threads and Substack, along with ECA integration, automatic token refresh, and ready-made Views reports.
Post-Installation
- Create a Key entity that holds the platform's access token.
- Go to
/admin/config/content/syndication/accountsand add an account, choosing the platform, the platform account ID and the Key. - Edit a node, open "Publish to Channels", select the account, and save.
- Jobs are processed on cron, or on demand with
drush queue:run content_syndication_publish.
Additional Requirements
Recommended modules/libraries
The AI Content Detector module enables the optional pre-publish detection check.
Similar projects
Instapost posts nodes to Instagram only and is no longer maintained. Content Syndication is built around a plugin API for multiple destinations, with queued delivery, retries and a job history.
Writing a platform plugin
Create a class with the #[PublisherPlatform] attribute that extends PublisherPlatformBase and implements validate(), transform(), publish(), status() and refreshToken(), plus the character limit, image support and daily post cap. See FacebookPagePublisher for a working example.
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Releases
| Version | Type | Core | Release date | |
|---|---|---|---|---|
| 1.0.x-dev | Dev | 11 | Oct 8, 2026 |