Introduction
Fashion brands live or die by consistent, on-brand social media presence. The catch: creating a cohesive content calendar that flows from initial mood board inspiration through to scheduled posts across multiple platforms is genuinely tedious. You sketch visual concepts, manually describe them, write captions, check brand voice, schedule posts, then do it all again next week.
What if that entire pipeline ran automatically? A mood board gets uploaded once, AI extracts the colour palette and mood, generates platform-specific captions, and posts are scheduled across Instagram, TikTok, and LinkedIn without you touching anything except the initial upload.
This workflow combines three specialist tools, nsketch-ai for visual analysis, Postwise for content calendar management, and Weryai for brand-voice copywriting. The orchestration layer (Zapier, n8n, or Make) handles the invisible handoff between them so your team simply uploads a mood board image and watches the calendar fill itself.
The Automated Workflow
We'll build this using n8n because it offers the best balance of flexibility and native support for the APIs we need. Zapier works too if you prefer the simpler interface; Make is viable but requires more custom code.
Architecture Overview
The workflow has five stages, each triggered by the previous one with zero manual intervention.
- Image upload triggers the workflow.
- nsketch-ai analyses the visual mood, colour palette, and design direction.
- Visual insights feed into Weryai, which generates three variants of on-brand copy.
- Postwise receives the image, captions, and metadata, creating scheduled posts.
- Confirmation logs are sent back to your Slack or email for visibility.
Setting Up nsketch-ai Integration
nsketch-ai exposes a REST API for visual analysis. You'll need an API key from their dashboard. Their endpoint returns structured JSON about colour dominance, mood classification, and compositional elements.
POST https://api.nsketch-ai.com/v1/analyse
Content-Type: application/json
Authorization: Bearer YOUR_NSKETCH_API_KEY
{
"image_url": "https://your-cdn.com/mood-board-001.jpg",
"analysis_type": "fashion_mood"
}
The response looks like this:
{
"dominant_colours": [
{
"hex": "#2C1B47",
"name": "deep plum",
"percentage": 28
},
{
"hex": "#E8D5C4",
"name": "cream",
"percentage": 19
}
],
"mood_tags": ["minimalist", "sophisticated", "autumn"],
"composition": {
"symmetry": 0.72,
"texture_prominent": true
},
"fashion_category": "ready-to-wear"
}
In n8n, create an HTTP Request node that hits this endpoint. You'll pass the image URL from your upload trigger, typically using a webhook or cloud storage integration.
Wording with Weryai
Weryai is purpose-built for brand voice consistency. You feed it visual insights plus your brand guidelines, and it returns three distinct captions tuned for different platforms.
POST https://api.weryai.com/v1/generate-captions
Content-Type: application/json
Authorization: Bearer YOUR_WERYAI_API_KEY
{
"visual_analysis": {
"dominant_colours": ["#2C1B47", "#E8D5C4"],
"mood_tags": ["minimalist", "sophisticated", "autumn"],
"fashion_category": "ready-to-wear"
},
"brand_guidelines": {
"voice_tone": "elevated-casual",
"values": ["sustainability", "craftsmanship"],
"audience": "women-25-45",
"avoid_words": ["trendy", "must-have"]
},
"platforms": ["instagram", "linkedin", "tiktok"]
}
The response includes platform-specific captions:
{
"instagram": {
"caption": "Autumn has arrived in our studio. Deep plums and warm creams remind us that true style is about texture and intention, not noise.",
"hashtags": ["#autumnfashion", "#minimalstyle", "#crafteddetails"],
"best_posting_time": "thursday-19:00"
},
"linkedin": {
"caption": "Our latest collection draws inspiration from seasonal storytelling. We believe sustainable design and craft excellence aren't compromises; they're the foundation.",
"tone_note": "professional but approachable"
},
"tiktok": {
"caption": "colour mood: plum + cream. here's what's inspiring our autumn collection",
"hooks": ["Open with a close-up of the cream fabric", "Show colour swatch transitions"]
}
}
Posting via Postwise
Postwise is your content calendar system. It supports Instagram, TikTok, LinkedIn, and Pinterest. The API accepts the image, captions, and scheduling metadata, then queues posts for your specified times.
POST https://api.postwise.io/v1/schedule-post
Content-Type: application/json
Authorization: Bearer YOUR_POSTWISE_API_KEY
{
"image_url": "https://your-cdn.com/mood-board-001.jpg",
"platform": "instagram",
"caption": "Autumn has arrived in our studio. Deep plums and warm creams remind us that true style is about texture and intention, not noise.",
"hashtags": ["#autumnfashion", "#minimalstyle", "#crafteddetails"],
"scheduled_time": "2024-11-15T19:00:00Z",
"alt_text": "Mood board featuring deep plum and cream textiles",
"brand_account_id": "brand_12345"
}
Postwise returns a confirmation with the post ID and scheduled time:
{
"post_id": "post_98765",
"status": "scheduled",
"platform": "instagram",
"scheduled_time": "2024-11-15T19:00:00Z",
"preview_url": "https://postwise.io/preview/post_98765"
}
You'll make three separate POST requests, one for each platform (Instagram, TikTok, LinkedIn), using the platform-specific captions from Weryai.
Complete n8n Workflow
Here's how to wire this together in n8n. Create a new workflow and add these nodes in order:
Node 1: Webhook Trigger Set up a webhook that accepts image uploads. This is your entry point. Configuration:
Node type: Webhook
Method: POST
Path: /fashion-mood-board
Authentication: None (or use basic auth if preferred)
The webhook receives JSON with the image URL:
{
"image_url": "https://your-cdn.com/uploads/mood-board-001.jpg",
"brand_account_id": "brand_12345"
}
Node 2: nsketch-ai Analysis Add an HTTP Request node configured to call nsketch-ai:
Node type: HTTP Request
Method: POST
URL: https://api.nsketch-ai.com/v1/analyse
Authentication: Header
Header Name: Authorization
Header Value: Bearer {{ $env.NSKETCH_API_KEY }}
Body (JSON):
{
"image_url": "{{ $json.image_url }}",
"analysis_type": "fashion_mood"
}
Name this node "Analyse Mood Board". Its output becomes available to subsequent nodes as {{ nodes['Analyse Mood Board'].json }}.
Node 3: Weryai Caption Generation Add another HTTP Request node for caption generation:
Node type: HTTP Request
Method: POST
URL: https://api.weryai.com/v1/generate-captions
Authentication: Header
Header Name: Authorization
Header Value: Bearer {{ $env.WERYAI_API_KEY }}
Body (JSON):
{
"visual_analysis": {
"dominant_colours": {{ nodes['Analyse Mood Board'].json.dominant_colours }},
"mood_tags": {{ nodes['Analyse Mood Board'].json.mood_tags }},
"fashion_category": {{ nodes['Analyse Mood Board'].json.fashion_category }}
},
"brand_guidelines": {
"voice_tone": "elevated-casual",
"values": ["sustainability", "craftsmanship"],
"audience": "women-25-45",
"avoid_words": ["trendy", "must-have"]
},
"platforms": ["instagram", "linkedin", "tiktok"]
}
Name this node "Generate Captions".
Node 4: Schedule Posts (Loop) You need to schedule three posts, one per platform. Add an n8n Loop node that iterates over Instagram, TikTok, and LinkedIn. Inside the loop, add an HTTP Request node:
Node type: Loop
Loop Over: {{ [
{ "platform": "instagram", "key": "instagram" },
{ "platform": "tiktok", "key": "tiktok" },
{ "platform": "linkedin", "key": "linkedin" }
] }}
Inside Loop: HTTP Request Node
Method: POST
URL: https://api.postwise.io/v1/schedule-post
Authentication: Header
Header Name: Authorization
Header Value: Bearer {{ $env.POSTWISE_API_KEY }}
Body (JSON):
{
"image_url": "{{ $json.image_url }}",
"platform": "{{ $loopItem.platform }}",
"caption": "{{ nodes['Generate Captions'].json[$loopItem.key].caption }}",
"hashtags": {{ nodes['Generate Captions'].json[$loopItem.key].hashtags }},
"scheduled_time": "{{ nodes['Generate Captions'].json[$loopItem.key].best_posting_time }}",
"alt_text": "Mood board image for seasonal campaign",
"brand_account_id": "{{ $json.brand_account_id }}"
}
Name this "Schedule Posts".
Node 5: Notification Send a summary to your team via Slack or email:
Node type: Slack
Authentication: Your Slack workspace
Message:
✅ Mood board processed
Image: {{ $json.image_url }}
Colours: {{ nodes['Analyse Mood Board'].json.dominant_colours[0].name }}
Posts scheduled: 3 (Instagram, TikTok, LinkedIn)
Timeline: Posting begins {{ nodes['Schedule Posts'].json[0].scheduled_time }}
Save and deploy the workflow. Test it with a mood board image URL.
The Manual Alternative
If you want more control over specific captions or timing, you can use Postwise's web interface directly while still automating the visual analysis and initial copy generation. Run the nsketch-ai and Weryai steps as described, but instead of automatically posting, export the captions to a Google Sheet or Notion database. Your social team reviews, tweaks tone if needed, and manually selects posting times based on real-time engagement data.
This hybrid approach works well if your brand has very strict approval workflows or if you want to A/B test different captions before committing to the schedule.
Pro Tips
Rate Limiting and API Quotas nsketch-ai allows 100 analyses per day on their free tier; Weryai and Postwise have similar limits. If you're processing multiple mood boards daily, purchase their mid-tier plans. Set up error handling in n8n using "Catch" nodes so failed API calls don't break your workflow; instead, log them to a spreadsheet and retry the next morning.
Image Hosting and CDN Don't embed images directly in your workflow; use a CDN or cloud storage service (AWS S3, Cloudinary, or Google Cloud Storage). Pass only the URL to the APIs. This keeps your n8n execution logs clean and prevents timeout issues with large files.
Brand Guidelines in Weryai Spend time building a comprehensive brand guidelines object in Weryai. Include specific phrases your brand loves, words to avoid, typical sentence length for each platform, and emoji usage rules. The better your guidelines, the less post-generation editing you'll need.
Testing with Dry Runs Before going live with actual posts, use Postwise's draft feature or test mode. Schedule a post for 5 minutes from now, let it run through the workflow, and verify the preview looks right before scaling to daily automation.
Cost Optimisation Run the workflow only when new mood boards arrive (webhook trigger) rather than on a schedule. This saves API calls. Group multiple mood boards if possible; Weryai offers batch processing discounts for 5+ images in a single request.
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| nsketch-ai | Pro | £49 | 1,000 analyses/month; includes fashion-specific models |
| Weryai | Starter | £29 | 500 caption generations/month; includes 3 platform variants per request |
| Postwise | Professional | £79 | Unlimited scheduling across 4 platforms; includes analytics |
| n8n | Self-hosted (free) or Cloud Pro | £0 or £79 | Self-hosted is free; Cloud Pro recommended for 1,000+ workflows/month |
| Total | £157 | One workflow per mood board; processes ~20 boards/month |
If you're processing fewer than 5 mood boards monthly, use the free/starter tiers and pay as you go: roughly £1.50 per mood board processed end-to-end.