Fashion brand social media content calendar from mood boards
- Published
Fashion brands face a peculiar challenge when it comes to social media: the creative direction starts with mood boards, Pinterest collections, and visual inspiration, but the actual content calendar lives in spreadsheets and Slack messages. The gap between "here's the vibe" and "here's the scheduled post" is typically filled with manual copy-pasting, screenshot sharing, and weekly status meetings that could have been emails....... For more on this, see Social media content calendar from blog posts and news feeds. For more on this, see Fashion brand weekly content calendar from mood boards to....
The problem compounds when you consider the volume. A mid-sized fashion brand might create 15-20 mood boards per season, each containing 30-50 curated images. Someone has to look at those images, write captions that match the brand voice, determine optimal posting times, and then manually create posts across multiple platforms. If your creative direction shifts, you're starting over again.
What if that entire process happened automatically? You feed a mood board into the system, and three hours later, a fully planned social media calendar emerges with on-brand captions, optimal posting times, and platform-specific formatting. No manual handoffs. No emails asking "did you finish the captions yet?". Just the infrastructure to turn visual inspiration directly into scheduled content.
The Automated Workflow
This workflow uses three AI tools working in concert, orchestrated through a single platform. The journey flows like this: a mood board image collection enters nSketch AI for visual analysis and brand alignment, the results feed into WeryAI for caption generation with brand voice consistency, and finally Postwise handles scheduling and calendar management across your social channels. For more on this, see Postwise vs Mirra vs VideoIdeas.ai: AI Social Media Conte....
We'll build this using n8n as the orchestration platform, though Zapier and Make will work equally well. n8n is particularly good here because it handles complex branching logic (different caption styles for different platforms) and supports webhook triggers without needing intermediate services.
Architecture Overview
The workflow has five core steps:
- Trigger: Mood board uploaded or shared
- Visual analysis: nSketch AI extracts colour palettes, themes, and emotional tone
- Caption generation: WeryAI creates platform-specific captions using brand guidelines
- Calendar planning: Postwise determines optimal posting times and formats content
- Scheduling: Posts are automatically queued across Instagram, TikTok, and Pinterest
The entire process completes in under two hours from upload to scheduled posts, with zero human intervention beyond the initial mood board creation.
Setting Up the n8n Workflow
Start by creating a new workflow in n8n. You'll need API keys for all three services, which you can find in their respective dashboards.
For nSketch AI, register at https://api.nsketch.ai and generate your API key. For WeryAI, head to https://weryai.com/api and retrieve your credentials. Postwise keys come from https://app.postwise.com/settings/integrations.
The first node is a Webhook trigger that listens for mood board uploads. Configure it like this:
Webhook URL: https://your-n8n-instance.com/webhook/fashion-mood-board
Method: POST
Authentication: Basic Auth (use your n8n credentials)
When someone uploads a mood board (via email, Slack, or a Google Drive folder), a webhook fires with the image URL. n8n captures this as the starting point.
Step 1: nSketch AI Visual Analysis
The first active node calls nSketch AI's image analysis endpoint. This service examines colour schemes, composition patterns, and visual themes within the mood board images.
POST https://api.nsketch.ai/v2/analyse/mood-board
Authorization: Bearer YOUR_NSKETCH_API_KEY
Content-Type: application/json
{
"image_url": "{{ $json.mood_board_url }}",
"analysis_type": "comprehensive",
"include_palette": true,
"include_themes": true,
"include_emotional_tone": true
}
nSketch returns a JSON response that looks like this:
{
"colour_palette": [
"#2D3E50",
"#E74C3C",
"#ECF0F1",
"#9B59B6"
],
"primary_themes": [
"minimalist",
"luxury",
"autumn"
],
"emotional_tone": [
"sophisticated",
"warm",
"nostalgic"
],
"composition_style": "grid-based",
"recommended_imagery": [
"candlelit scenes",
"natural textures",
"vintage accessories"
]
}
Store this response in n8n's workflow context. You'll reference these fields when generating captions, ensuring the copy matches the visual language of the mood board.
Step 2:
WeryAI Caption Generation
With the mood board analysis complete, pass the results to WeryAI for caption writing. WeryAI specialises in brand-voice consistent copy, which is crucial for fashion brands where tone matters as much as content.
Set up the HTTP request node to call WeryAI's caption endpoint:
POST https://api.weryai.com/v1/generate/captions
Authorization: Bearer YOUR_WERYAI_API_KEY
Content-Type: application/json
{
"brand_guidelines": {
"tone": "aspirational, inclusive, trend-aware",
"voice": "conversational, not corporate",
"values": [
"sustainability",
"individuality",
"craftsmanship"
]
},
"visual_context": {
"colour_palette": {{ $json.colour_palette }},
"themes": {{ $json.primary_themes }},
"emotional_tone": {{ $json.emotional_tone }},
"imagery_style": "{{ $json.composition_style }}"
},
"platforms": [
"instagram",
"tiktok",
"pinterest"
],
"caption_styles": {
"instagram": {
"length": "150-300 characters",
"hashtag_count": 8,
"include_call_to_action": true
},
"tiktok": {
"length": "100-200 characters",
"hashtag_count": 5,
"tone": "playful, energetic"
},
"pinterest": {
"length": "200-500 characters",
"hashtag_count": 12,
"include_keywords": true
}
}
}
WeryAI returns a structured set of captions tailored to each platform:
{
"captions": {
"instagram": {
"caption": "Autumn's warmth wrapped in luxury. Every piece tells a story of craftsmanship and care. Which shade speaks to you?",
"hashtags": ["#AW24Collection", "#SustainableFashion", "#LuxuryCrafted", "#MinimalistStyle", "#AuthenticDesign", "#ArtisanMade", "#EthicalFashion", "#ModernVintage"]
},
"tiktok": {
"caption": "POV: You just discovered your new autumn obsession 🍂✨ Which colour are you picking?",
"hashtags": ["#FashionTok", "#AW24", "#StyleInspo", "#LuxuryOnABudget", "#FashionDiscovery"]
},
"pinterest": {
"caption": "Autumn 2024 fashion mood: sophisticated minimalism meets nostalgic warmth. Discover curated [pieces](/tools/pieces) that celebrate quality over quantity. Perfect for the discerning dresser who values sustainability and individual expression.",
"hashtags": ["sustainable fashion ideas", "autumn outfit ideas", "luxury minimalist style", "ethical fashion brands", "vintage inspired outfits", "autumn color palette", "fashion mood board", "capsule wardrobe", "high end fashion", "handcrafted clothing", "autumn fashion trends", "timeless style"]
}
}
}
In n8n, store these captions in a workflow variable so Postwise can access them in the next step.
Step 3:
Postwise Calendar Planning and Scheduling
Postwise handles the calendar logic. It determines optimal posting times based on your audience analytics, formats content for each platform, and queues the posts. This is where the workflow connects to your actual social accounts.
Before calling Postwise, prepare the payload with all the content you've generated:
POST https://api.postwise.com/v1/schedule/batch
Authorization: Bearer YOUR_POSTWISE_API_KEY
Content-Type: application/json
{
"account_id": "YOUR_POSTWISE_ACCOUNT_ID",
"posts": [
{
"platform": "instagram",
"content": {
"caption": "{{ $json.captions.instagram.caption }}",
"hashtags": {{ JSON.stringify($json.captions.instagram.hashtags) }},
"media_type": "image",
"media_url": "{{ $json.mood_board_url }}"
},
"scheduling": {
"optimization": "auto",
"time_zone": "Europe/London",
"spacing": "72"
}
},
{
"platform": "tiktok",
"content": {
"caption": "{{ $json.captions.tiktok.caption }}",
"hashtags": {{ JSON.stringify($json.captions.tiktok.hashtags) }},
"media_type": "video",
"media_url": "{{ $json.mood_board_video_url }}"
},
"scheduling": {
"optimization": "auto",
"time_zone": "Europe/London",
"spacing": "48"
}
},
{
"platform": "pinterest",
"content": {
"description": "{{ $json.captions.pinterest.caption }}",
"tags": {{ JSON.stringify($json.captions.pinterest.hashtags) }},
"media_url": "{{ $json.mood_board_url }}",
"link": "{{ $json.brand_landing_page }}"
},
"scheduling": {
"optimization": "auto",
"time_zone": "Europe/London"
}
}
]
}
Postwise responds with confirmation of scheduled posts:
{
"status": "success",
"posts_scheduled": 3,
"scheduled_posts": [
{
"post_id": "post_12345",
"platform": "instagram",
"scheduled_time": "2024-11-15T19:30:00Z",
"status": "queued"
},
{
"post_id": "post_12346",
"platform": "tiktok",
"scheduled_time": "2024-11-16T18:00:00Z",
"status": "queued"
},
{
"post_id": "post_12347",
"platform": "pinterest",
"scheduled_time": "2024-11-15T14:30:00Z",
"status": "queued"
}
]
}
Add a final notification step that sends a summary to Slack or email. This keeps your team informed without adding manual work:
POST https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK
{
"text": "📱 Social calendar generated from mood board",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Content Calendar Generated*\n3 posts scheduled across Instagram, TikTok, and Pinterest\n\n*Scheduling:*\nInstagram: Nov 15 at 7:30 PM\nTikTok: Nov 16 at 6:00 PM\nPinterest: Nov 15 at 2:30 PM"
}
}
]
}
Handling Multiple Mood Boards
Fashion seasons typically involve multiple mood boards. To process several at once, add a loop node in n8n that iterates through a folder of images.
If you're pulling from Google Drive, use the Google Drive integration to list files in a specific folder, then loop through each one:
{
"operation": "list_files",
"drive_id": "YOUR_DRIVE_ID",
"folder_id": "{{ $json.mood_board_folder_id }}",
"query": "mimeType contains 'image/' and trashed=false"
}
For each image found, the workflow triggers the entire pipeline. n8n's built-in rate limiting ensures you don't hit API quotas.
The Manual Alternative
If you prefer to maintain more creative control, run steps 1 and 2 manually while keeping steps 3-5 automated. Use nSketch and WeryAI through their web interfaces, review the captions yourself, then feed the approved copy into Postwise for scheduling. This takes about 30 minutes per mood board instead of two hours total for the entire batch.......
Alternatively, use Claude Code to build a custom interface for caption review. Load the WeryAI output into a simple web form where team members approve or edit captions before Postwise schedules them. This adds a 15-minute approval step but keeps humans in the loop where brand voice matters most.
Pro Tips
Rate limiting and API costs
All three services have rate limits. nSketch allows 100 requests per hour on the free plan; WeryAI allows 50 per day. Postwise schedules posts directly, so there's no rate concern there, but stagger multiple mood boards by 30 minutes to avoid hitting nSketch limits. In n8n, use the "Delay" node set to 1800 seconds between batches.
Handling failed API calls
Add error handling throughout your workflow. If nSketch returns an error (connectivity issue, invalid image format), the workflow should retry once, then alert you via Slack. In n8n, use the "Try/Catch" node:
{
"type": "try",
"workflow": "call_nsketch_api"
}
{
"type": "catch",
"on_error": "send_slack_alert",
"max_retries": 1,
"retry_delay": 60
}
Brand guideline versioning
Store your brand guidelines as a JSON file in n8n's credentials or a Google Sheet. When you update tone, values, or hashtag strategy, the next run automatically uses the new version. This means seasonal adjustments (autumn's tone versus spring's tone) happen without touching the workflow itself.
Testing with sample images
Before deploying to production, test the entire workflow with 2-3 sample mood boards. Check that captions match your brand voice, that hashtags aren't redundant, and that posting times align with your audience's peak engagement windows. Postwise shows predicted engagement for scheduled times, use that data to refine timing.
Cost optimisation
Run the workflow during off-peak hours if you have limited API quotas. Schedule mood board uploads to trigger at 2 AM UTC, so the entire pipeline completes before your team arrives. If volume is high (50+ posts per month), negotiate tiered pricing with WeryAI and Postwise. Most offer 15-20% discounts for committed usage.
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| nSketch AI | Pro | £45 | 5,000 analyses/month; ideal for mid-sized fashion brands |
| WeryAI | Creator | £60 | 2,000 captions/month; includes platform-specific variations |
| Postwise | Professional | £99 | Unlimited scheduling across 5 social accounts; includes analytics |
| n8n | Cloud Professional | £40 | 5,000 executions/month; sufficient for 50-100 workflow runs |
| Total | — | £244 | Covers ~100 mood board posts/month across 3 platforms |
If you're just starting out, use Zapier's free tier instead of n8n and reduce to Postwise's Growth plan (£49/month), bringing total cost to £154 monthly. The trade-off is fewer automations and lower execution limits, but it works for 20-30 posts per month.
More Recipes
Automated Podcast Production Workflow
Automated Podcast Production Workflow: From Raw Audio to Published Episode
Build an Automated YouTube Channel with AI
Build an Automated YouTube Channel with AI
Medical device regulatory documentation from technical specifications
Medtech companies spend significant resources translating technical specs into regulatory-compliant documentation.