Slack image bot: vector logos and marketing art on demand

Mention the bot in Slack with a creative brief and get a fresh vector logo or marketing image back in the same thread, ready to share.

Agentic Task
Slack BotRecraftMarketingContent Generation
PromptCreate

When someone @-mentions me in one of my allow-listed Slack channels, I want you to read their creative brief, generate the right kind of image with Recraft, and post the result back into the same Slack thread. Build this as an agent workflow.

The trigger is a Slack Events API webhook on the app_mention event using the Slack Bot integration. Configure the workflow with an allow-list of channel IDs. As the very first step, compare the event's channel id against the allow-list; if it is not on the list, exit silently without replying and without calling Recraft.

Once the channel check passes, strip the leading <@BOT_USER_ID> mention off the message text so you are left with just the brief. Then run two guardrails before any generation: (1) refuse if the brief names a real, identifiable person, whether public figure, celebrity, or a named employee/customer; (2) refuse if it references a trademarked brand, franchise, or logo (examples: Nike, Marvel, Coca-Cola, Star Wars). On either refusal, reply in-thread with a friendly one-line explanation and stop.

Choose the Recraft operation based on the brief. Use Recraft Generate Vector Image (SVG) when the user says logo, icon, mark, SVG, vector, flat, line art, or asks for anything they'll want as a scalable file. Use Recraft Generate Image for photorealistic, hero, banner, product shot, ad creative, marketing art, cinematic, or 3D render. When the brief is ambiguous, default to raster (Generate Image).

Before calling Recraft, expand the user's one-liner into a fuller, style-aware prompt. Keep the subject faithful, but add clean style descriptors. For the vector branch favor language like "flat vector illustration, clean shapes, no gradients, high contrast, centered composition, transparent background". For the raster branch favor language like "photorealistic, natural lighting, editorial composition, shallow depth of field" or whatever style adjective the user provided. Keep the expanded prompt under 300 characters.

Call the chosen Recraft operation with the expanded prompt and read the image URL from the response (data[0].url for both Generate Image and Generate Vector Image (SVG)).

Post the reply with Slack Bot's Send a Message operation. Set channel to the original event's channel id and thread_ts to the ts of the incoming mention so the reply lands inside the thread (not as a new top-level channel post). The message body should have three lines: (1) a short human line naming what you made, e.g. "Here's a flat vector logo for a coffee subscription:"; (2) the image URL on its own line so Slack unfurls it inline; (3) a single regenerate hint of the form "Reply in this thread with a tweak to regenerate, e.g. `warmer palette` or `swap to a coffee bean icon`."

Failure handling: if the Recraft call errors or returns no image, reply in-thread with a short apology and the error summary; do not silently retry. If the initial channel allow-list check fails, do nothing at all (no reply, no error). Never repost the original brief back to the user, and never send a reply outside the thread.

Additional information

What does this prompt do?
  • Listens for @-mentions in the Slack channels you allow-list and reads the creative brief the person typed.
  • Picks the right output automatically: crisp vector output for logos, icons, and illustrations; photorealistic raster art for hero images and marketing shots.
  • Expands your one-line brief with matching style cues so the finished image feels intentional, not generic.
  • Replies inside the same thread with the image and a short regenerate hint so you can iterate without starting over.
What do I need to use this?
  • A Slack workspace where you can install a bot and pick one or more channels for it to listen in.
  • A Recraft account with API access turned on and a small credit balance to cover generations.
  • A rough idea of which channels and teammates you want to give access to.
How can I customize it?
  • Change which Slack channels the bot listens in so it stays scoped to a design or marketing space.
  • Steer the default look (flat vector, cinematic, editorial, hand-drawn) so results match your brand.
  • Tune the refusal rules for your team, for example blocking competitor names or specific project code names.

Frequently asked questions

Does the bot reply anywhere in Slack, or only certain channels?
Only in the channels you explicitly allow-list. Anywhere else in the workspace the bot stays silent, which keeps costs predictable and prevents random requests from any channel the bot happens to be in.
How does it decide between an SVG logo and a normal image?
It reads your brief. Ask for a "logo", "icon", "vector", or "SVG" and you get a scalable vector file. Ask for a "photo", "hero image", "banner", or "3D render" and you get photorealistic raster art. If it is not obvious, the bot defaults to raster.
Can it make a logo of a real company or a portrait of a real person?
No. Requests that name a real, identifiable person or reference a trademarked brand are politely refused in the thread. That protects your team from publishing something you should not, and it stays within Recraft's usage policy.
What if the first image is not quite right?
Every reply ends with a one-line regenerate hint. Post a short tweak in the same thread and the bot generates a new take with your adjustment, so you can iterate without opening a new request.
How long does the image take to come back?
Usually 10 to 20 seconds after your mention. Recraft returns the finished file immediately and the bot posts it straight into the thread so it unfurls inline.

Turn your team chat into an on-call design studio.

Install this prompt and anyone on your team can grab a fresh logo or marketing image without ever leaving Slack.