Cross Platform Content Syncer
by @ncreighton
Publish content once, distribute everywhere—sync WordPress, Substack, Medium, and LinkedIn automatically. Use when the user needs multi-channel publishing, c...
Try these prompts immediately:
Example 1: Sync a WordPress post to all platforms
Sync my latest WordPress article "10 AI Tools for Content Creators" to Substack,
Medium, and LinkedIn. Add LinkedIn hashtags, optimize for Medium's audience,
and notify me on Slack when complete.
Example 2: Schedule content across platforms with delays
I have a blog post ready. Publish to Substack first (immediately), then Medium
(24 hours later), then LinkedIn (48 hours later). Add platform-specific CTAs
and track engagement metrics.
Example 3: Batch sync multiple articles
Sync my last 5 published WordPress articles to Medium. Skip articles published
before January 2024. Preserve all images, add author bio, and create a Google
Sheet tracking which articles synced where.
Example 4: Sync with content transformation
Take my Substack newsletter draft, convert it to a LinkedIn article (add
professional formatting), a Medium post (add SEO keywords), and a WordPress
blog post (add related posts). Include platform-specific metadata.
Required Environment Variables
Set these in your .env file or ClawHub secrets:
# WordPress
WORDPRESS_SITE_URL="https://yourblog.com"
WORDPRESS_API_KEY="your-application-password"Substack
SUBSTACK_API_KEY="sk_live_xxxxxxxxxxxx"Medium
MEDIUM_API_TOKEN="your-medium-integration-token"LinkedIn
LINKEDIN_ACCESS_TOKEN="your-oauth-access-token"
LINKEDIN_ORGANIZATION_ID="12345678"Slack (optional, for notifications)
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"Google Drive (optional, for backups)
GOOGLE_DRIVE_FOLDER_ID="your-folder-id"
GOOGLE_SERVICE_ACCOUNT_JSON="path/to/service-account.json"
Configuration Options
sync_config:
source_platform: "wordpress" # wordpress, substack, medium, linkedin
target_platforms: ["substack", "medium", "linkedin"]
# Scheduling
publish_immediately: false
schedule_delays:
substack: 0 # hours
medium: 24
linkedin: 48
# Content transformation
preserve_formatting: true
add_platform_ctc: true
generate_seo_metadata: true
# Notifications
notify_slack: true
notify_email: "your@email.com"
# Analytics
track_engagement: true
report_frequency: "weekly"
Common Issues & Solutions
#### Issue 1: "Authentication Failed - Invalid Token"
Cause: API token expired or incorrect credentials
Solution:
1. Verify token in ClawHub secrets dashboard
2. Regenerate token on the platform (Settings → API/Integrations)
3. Update WORDPRESS_API_KEY, MEDIUM_API_TOKEN, etc. in .env
4. Test connection: curl -H "Authorization: Bearer YOUR_TOKEN" https://api.platform.com/me
5. Retry sync
#### Issue 2: "Rate Limit Exceeded"
Cause: Too many requests to platform API
Solution:
1. Skill automatically queues requests—no action needed for single articles
2. For bulk syncs: Reduce batch size from 50 to 25 articles
3. Increase delay between platform syncs (e.g., 48-72 hours instead of 24)
4. Check platform API status: https://status.medium.com, https://status.substack.com
#### Issue 3: "Images Not Syncing"
Cause: Image URL broken, unsupported format, or file size exceeds limit
Solution:
1. Verify image URLs are publicly accessible (not behind login)
2. Check image format (JPG, PNG, WebP, GIF only)
3. Compress images if >5MB: Use ImageOptim (Mac) or TinyPNG (web)
4. Re-upload images to WordPress and retry sync
5. View sync logs: clawhub logs cross-platform-content-syncer --tail 50
#### Issue 4: "Formatting Broken on Medium/LinkedIn"
Cause: HTML conversion error or unsupported formatting
Solution:
1. Check source content for complex HTML (tables, nested lists, iframes)
2. Simplify formatting: Use bold/italic only, avoid custom CSS
3. Test sync with simpler article first
4. Enable "preserve_formatting: false" to auto-clean HTML
5. Contact support with screenshot: support@clawhub.app
#### Issue 5: "Slack Notifications Not Arriving"
Cause: Invalid webhook URL or Slack workspace permissions
Solution:
1. Verify SLACK_WEBHOOK_URL in .env (should start with https://hooks.slack.com)
2. Check Slack app permissions: Settings → Manage Apps → ClawHub → Permissions
3. Test webhook manually:
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Test message"}' \
YOUR_WEBHOOK_URL
4. Regenerate webhook if needed: Slack → Integrations → Incoming Webhooks
5. Verify notify_slack: true in configFAQ
Q: Can I sync to only some platforms, not all?
A: Yes. In config, set target_platforms: ["medium", "linkedin"] to sync only to those.
Q: What happens if one platform fails—do the others still sync? A: Yes. Skill syncs to each platform independently. If Medium fails, WordPress/Substack/LinkedIn still publish. Retry failed platforms automatically after
clawhub install cross-platform-content-syncer