A Daily AI Social Content Engine for a Beauty Salon
A 63-node n8n engine that writes daily on-brand beauty-salon posts with matching AI images and auto-publishes them across Telegram, WordPress, X, Facebook, and LinkedIn.
THE BRIEF
What the system needed to do.
This project is a 63-node n8n workflow that produces and publishes daily, on-brand social content for a beauty salon. It can run on a schedule or react to new ideas from Google Sheets, RSS, Airtable, or other sources. A "generate text" agent writes a short, research-grounded beauty post in the brand's voice, then a "generate prompt" agent turns that post into a detailed photorealistic image prompt with no text or logos. An image model (gpt-image-1 or a swappable alternative) creates the matching visual, which is archived to Google Drive and published across Telegram, WordPress, X, Facebook, and LinkedIn — all model-, provider-, and channel-agnostic.
The scope
Automatically generate and publish daily, on-brand beauty-salon social posts with matching photorealistic images across every channel.
DESIGN CHOICES
What makes the build interesting.
Beauty salon clients (women 20–45)
Separate text and visual agents
Fully interchangeable models and providers
Flexible triggers and multi-channel publishing
THE ARCHITECTURE
Follow the flow.
- Trigger / content source — start on a schedule (e.g. daily 9 AM), manually, or from a new idea in Google Sheets, RSS, Airtable, Postgres, or a Meta webhook.
- Post generation — a brand-agent LLM researches the topic live (Tavily/search) and writes a short, on-brand beauty-salon caption with a hook, tips, hashtags, and a soft CTA.
- Visual prompt creation — a second agent converts the caption into a detailed photorealistic image prompt (subject, salon setting, lighting, mood) with no text or logos.
- Image generation — gpt-image-1 (or a swappable provider) generates the matching visual, converted to a binary image file.
- Archive — the image is uploaded to Google Drive.
- Multi-channel publishing — the post and image are published to WordPress, Telegram, X, Facebook/Instagram, and LinkedIn, using only the channels that are configured.
Tools and platforms
- n8n — workflow orchestration (63 nodes, self-hosted)
- OpenAI gpt-image-1 — default AI image generation (swappable)
- Alternative image providers — Replicate, Google Imagen, Hugging Face, Kling, Runway, Leonardo, Ideogram, Clipdrop, NanoBanana, APITemplate.io
- LLM providers (interchangeable) — OpenAI, Anthropic Claude, Google Gemini, Mistral, DeepSeek, Groq, xAI Grok, AWS Bedrock, Azure OpenAI, Hugging Face, Ollama, OpenRouter
- Tavily / SearchApi — live web research grounding for captions
- Google Drive — generated-image archiving
- WordPress — CMS/blog publishing
- Telegram, X (Twitter), Facebook/Instagram, LinkedIn — social publishing
- Triggers — Schedule, Google Sheets, RSS, Airtable, Postgres, Meta/Facebook webhook
- n8n LangChain agents & buffer memory — text and visual-prompt generation with short-term memory
What the design enables.
- Eliminates daily content effort — a fresh, illustrated, on-brand post is created and published every day with no manual research, writing, or design.
- On-brand and current by design — a tuned brand voice plus mandatory live web research keep posts credible, trend-aware, and consistent, while a dedicated visual agent keeps imagery aesthetically matched.
- Write once, publish everywhere — a single generation flow distributes to a CMS and all major social platforms simultaneously, removing the per-platform reformatting grind.
The difficult parts.
- Keeping content on-brand and credible. Generic AI captions miss a salon's voice and risk pseudoscience. We gave the text agent a detailed brand persona and audience plus mandatory live web research, so posts stay warm, educational, evidence-based, and current.
- Making images match the post, without text artifacts. Image models often add unwanted lettering or generic visuals. We added a dedicated prompt agent that translates each caption into a photorealistic prompt under strict no-text, no-logo constraints, so visuals fit the specific post.
- Avoiding lock-in to one provider or platform. Salons' tools and budgets vary. We built every major component to be swappable — chat model, image generator, trigger, and channels — so the stack can be tuned without rebuilding the workflow.
Build notes and context.
The brief: a salon's whole social presence, posted daily, with no daily effort.
The client wanted a hands-off engine that produces a polished, on-brand beauty-salon post every day — caption and matching image — and publishes it across all their channels at once, while staying simple enough to set up and flexible enough to swap models, providers, and platforms as needs change. We delivered this as a 63-node n8n workflow organised into five clean sections, built from the ground up to be modular: the language model, the image generator, the trigger, and the destination channels are all interchangeable.
Section 1 — Triggers and content sources. The engine can start in whatever way suits the salon's workflow. The default is a daily schedule (for example, 9 AM) for regular publishing, with a manual trigger for test runs. But it can also react to new ideas arriving from elsewhere: a Google Sheets row with a topic or reference link, a new RSS item (turning a fresh blog post or industry update into a social post), an Airtable record change, a Postgres event, or a Meta webhook. This makes the same engine work equally well for scheduled "evergreen" posting and for reactive, idea-driven content.
Section 2 — AI post generation. A "generate text" agent writes the post, acting as a brand agent for a modern beauty salon. Its system prompt is tuned to the audience (primarily women 20–45 who care about appearance, health, and relaxation) and to a warm, professional, educational tone covering hair, nails, skincare, make-up, and self-care. Critically, it always begins with live web research (via a Tavily / search tool) so facts and trends are current, and uses short-term memory for variety across days. Every post follows a proven structure: a strong hook, short readable paragraphs and mini-lists, evidence-based tips (no pseudoscience), minimal emojis, a soft non-aggressive offer, 3–6 relevant hashtags, and a simple call to action — all kept under 1024 characters so it's Telegram-ready.
Section 3 — Visual prompt creation. Rather than pairing the post with random stock imagery, a second "generate prompt" agent reads the finished caption and converts it into a detailed text-to-image prompt. It extracts the post's core message (which service, what result, what feeling), then specifies the model, the salon environment, lighting, mood, and composition in a photorealistic beauty-photography style — under hard constraints that forbid any text, numbers, or logos in the image.
Section 4 — AI image generation. That prompt drives image creation via gpt-image-1, producing a unique, on-brand visual that genuinely matches the post, which is then converted to a binary file for downstream use. The architecture is deliberately provider-agnostic: the image step can be swapped or duplicated to call Clipdrop, Ideogram, Replicate, Runway, Leonardo, Imagen, Hugging Face, Kling, or others, as long as they return an image file into the same outputs.
Section 5 — Distribution and posting. The finished post and image are fanned out to every channel the salon actually uses: uploaded to Google Drive for archiving, published to WordPress as a blog post, and posted to Telegram, X, Facebook/Instagram, and LinkedIn. Only the platforms that matter for the current strategy need to be configured; the rest stay inactive.
Why this design works. Its strength is flexibility without complexity. Setup is intentionally quick — connect your chosen chat model, your image provider, and the social accounts you use — yet every major component is interchangeable, so the salon can tune cost, style, and reach over time without rebuilding anything. Separating caption generation from visual prompt generation means the image always reflects the specific post rather than a generic theme, and grounding every caption in live research keeps content current and credible. The result is a genuinely set-and-forget engine: a fresh, on-brand, well-illustrated post goes out daily across the salon's entire social footprint, with the owner free to simply edit a system prompt if they want to shift voice, language, or focus.
Have a related process in mind?
Tell me what goes in, what should come out and where the current process gets stuck.