{"schemaVersion":"1.0.0","kind":"brandiseer.use-case","id":"slack-creative-desk","canonicalUrl":"https://blog.brandiseer.com/use-cases/slack-creative-desk","contentHash":"56a02f2bfed2af8197a116fec89adf9cacf24c268ba669b1cccdbcf953341a9e","metadata":{"title":"Slack creative desk","outcome":"Marketing and ops request on-brand creatives in Slack; the agent pulls Brandiseer brand memory and returns stills in-thread in minutes.","category":"slack","featured":true,"timeEstimate":"~15 to 25 min setup","methods":["MCP","REST"],"hosts":[],"image":"https://blog.brandiseer.com/use-case-assets/slack-creative-desk/cover-slack-creative-desk.png","updated":"2026-09-24"},"stack":[{"name":"Brandiseer"},{"name":"Slack"},{"name":"Claude (Cowork or Claude in Slack)"}],"workflow":{"audience":"- Marketing and growth teams that brief creatives in Slack and hate waiting on a ticket queue\n- Ops, founders, and PMM leads who need campaign stills, event graphics, or ad crops without opening a design tool\n- Agencies running multiple client brands who want one Slack pattern per client (or one multi-brand desk with clear brand IDs)\n- Teams that already use Claude (Cowork and/or Claude in Slack) and want Brandiseer brand memory behind every image\n\n**Ideal customer profile:** an SMB or mid-market team (roughly 5–50 people touching marketing) with an approved brand in Brandiseer, Slack as the daily workplace, and enough Brandiseer credits for interactive generations during the week.","rationale":"Slack is where the brief already lives. Claude is the agent that understands the request. Brandiseer owns **persistent brand memory**: logo, colours, type, and visual identity stay applied on every still so each teammate does not re-explain the brand in every message.\n\nWithout Brandiseer, Slack-side AI creatives drift toward generic stock looks or last-message vibes. With Brandiseer, the image step stays on-brand while Slack stays the request and review surface.\n\nBrandiseer does not post to social networks and does not replace Slack approvals. It generates the still. Your team keeps ownership of copy, legal, and publish steps.\n\n![Example strip: request bubble and mock on-brand stills returned as creatives](https://blog.brandiseer.com/use-case-assets/slack-creative-desk/example-strip.png)","architecture":"1. You store the brand once in Brandiseer (logo and reference visuals teach the look).\n2. You connect Brandiseer to Claude via MCP and/or paste the API key + Brand ID for REST v2.\n3. You install or enable the Claude agent path that can read and reply in your Slack workspace (Cowork with Slack, or Claude in Slack, depending on your Anthropic/Slack setup).\n4. You run the setup wizard (below). Claude asks ~10–15 questions and writes a durable desk system prompt (default brand, aspect ratios, when to ask clarifying questions, credit checks).\n5. Teammates `@mention` the agent (or use your agreed trigger) in a creative channel with a plain-language brief.\n6. The agent resolves `brandId`, writes a Brandiseer-compatible prompt (subject and layout only), generates the still, and returns the image in-thread for human approval or a single revision.\n\nTypical turnaround for one Fast or Design still is measured in minutes, not design-ticket days. Design mode can take longer (often tens of seconds); use async REST when timeouts are tight.\n\n![Workflow infographic: five steps from request to approve or iterate](https://blog.brandiseer.com/use-case-assets/slack-creative-desk/workflow-infographic.png)","prerequisites":"- Company website URL (for first brand analysis)\n- Brandiseer account with at least one finished brand profile\n- Brandiseer API key (`bds_…`) from [Settings → API](https://brandiseer.com/settings/api) / [Developers](https://brandiseer.com/developers)\n- Brand ID (`bds_c_…`) for each brand the desk may use\n- Enough Brandiseer credits for interactive desk usage\n- Slack workspace and a dedicated creative channel (recommended), for example `#creative-desk`\n- Claude Cowork **and/or** Claude in Slack (or another Claude agent that can use Brandiseer MCP/REST and post back to Slack)\n- Optional: pinned channel rules so humans know how to brief (aspect ratio, logo on/off, deadline)","setup":"### Stage 1: Add your brand on Brandiseer\n\n1. Go to [brandiseer.com](https://brandiseer.com). In the homepage input, enter your company website URL and click **Try My Brand**.\n2. Wait about one minute while Brandiseer analyses the site and picks a logo and visuals.\n3. Review those visuals carefully. They teach Brandiseer your look. Every later Slack still is influenced by what you leave here.\n4. Remove anything off-brand (partner logos, stock, irrelevant screenshots). Add campaign creatives or product photography that match the style you want.\n5. Click **Add Brand**, sign up if prompted, then wait ~30 seconds for the brand profile to finish.\n\n### Stage 2: Get credentials and connect Brandiseer to Claude\n\n1. Open [brandiseer.com/developers](https://brandiseer.com/developers).\n2. Create an API key (`bds_…`) and note your **Brand ID** (`bds_c_…`).\n3. Prefer one of these Claude connection paths:\n\n   **A. MCP (interactive desk)**  \n   Connect Brandiseer MCP at `https://brandiseer.com/api/mcp` with `Authorization: Bearer <api-key>` in the Claude environment that will serve Slack. Confirm the three tools appear: `brandiseer_list_brands`, `brandiseer_check_credits`, `brandiseer_generate_image`.\n\n   **B. REST v2 (explicit control / async)**  \n   Open **View Docs**, use **Copy for LLM**, and paste the reference into the Cowork (or agent) session. Instruct Claude to prefer `POST /api/v2/generate` or `/generate/async` with `X-API-Key`.\n\n4. Optionally ask Claude to fetch `https://brandiseer.com/guide/image` and `https://brandiseer.com/guide/docs` once and keep those rules in the desk system prompt.\n\n### Stage 3: Wire Slack as the request surface\n\n1. Create or choose a channel such as `#creative-desk` (and optional client channels for agencies).\n2. Invite the Claude agent / app that will run the desk.\n3. Pin a short human brief format, for example: brand name (if multi-brand), what is in the frame, crop (`1:1` / `9:16` / `16:9` / `4:3`), logo yes/no, and any on-image text that must appear.\n4. Agree a trigger: `@Claude` / your bot mention, a slash-style habit your workspace uses, or “reply in-thread to the desk bot”.\n\nExact Slack install steps depend on whether you use Claude in Slack, Cowork with Slack connectors, or another Claude agent host. The creative contract is the same: read the human brief in Slack → call Brandiseer → post the still back in the same thread.\n\n### Stage 4: Run the setup wizard\n\n1. In the Claude session that owns Brandiseer access, paste the **Appendix: Desk wizard / system prompt** below.\n2. Answer questions one at a time. Have API key (if REST), Brand ID(s), default aspect ratios, and Slack channel names ready.\n3. When finished, Claude should produce a durable **desk system prompt** (and, if Cowork-scheduled helpers exist in your setup, any optional credit-watch note). Save that system prompt as the agent’s standing instructions for `#creative-desk`.\n\n### Stage 5: Smoke test in Slack\n\n1. In `#creative-desk`, send a simple brief, for example: “LinkedIn square still: product on a desk, headline space top third, logo bottom right.”\n2. Confirm Claude lists or selects the correct brand, checks credits if balance is low, generates via MCP or REST v2, and returns the image in-thread.\n3. Ask for one revision (“same layout, more negative space on the left”) and confirm the second still stays on-brand without style/colour language in the prompt.","promptingRules":"When Claude turns a Slack brief into a Brandiseer prompt:\n\n- Describe **layout, composition, subject, and on-image text placement** only.\n- Do **not** describe brand colours, fonts, mood filters, or visual style. Brand memory already applies those. Style words in the prompt can fight the brand and produce off-brand results.\n- Map platform language to API parameters: square → `aspectRatio: \"1:1\"`, Story/Reel → `\"9:16\"`, landscape banner → `\"16:9\"`, and so on. Put resolution and mode in the API call, not in prose inside the prompt.\n- Prefer **design** mode for quality desk stills; use **async** when Design may exceed HTTP timeouts; fall back to **fast** if design fails once.\n- Use `useLogo: true` only when the human asked for the logo (or your desk default says so).\n- Full rules: [Prompt compatibility](https://brandiseer.com/guide/image).","systemPrompts":"### Appendix: Desk wizard (paste into Claude)\n\n```text\nYou are setting up a Slack creative desk for Brandiseer. Outcome: humans request\non-brand stills in Slack; you generate via Brandiseer and return images in the\nsame thread within minutes. This is NOT a Buffer / social scheduling workflow.\n\nAsk these questions one at a time. Wait for each answer before moving on.\n\n1. Will you use Brandiseer MCP, REST v2, or both? (MCP URL:\n   https://brandiseer.com/api/mcp with Bearer token; REST with X-API-Key.)\n2. What is your Brandiseer API key? (Store only in the agent secret store /\n   system prompt vault your host provides. Never echo it back into public Slack.)\n3. What is the default Brandiseer Brand ID (bds_c_…)? If multi-brand, list each\n   brand name → Brand ID mapping.\n4. What Slack channel(s) is this desk for? What is the trigger phrase or mention?\n5. Default aspect ratio when the human does not specify? (1:1, 16:9, 9:16, or 4:3)\n6. Default resolution? (1K recommended for Slack previews; 2K/4K when asked)\n7. Default generation mode? (design for quality, fast for quick drafts, pro when\n   the human asks for maximum adherence)\n8. Default useLogo true or false when the brief is silent?\n9. Language for any on-image text (and per-brand overrides if any)?\n10. When should you ask a clarifying question instead of generating immediately?\n    (missing crop, ambiguous brand, legal/claims risk, empty brief, etc.)\n11. How many revision rounds are allowed per thread before you ask the human to\n    open a new request?\n12. Should you call brandiseer_check_credits (or GET /api/v1/credits) before each\n    generation, only when low, or only on /credits requests?\n13. Who may use the desk (everyone in the channel, or named roles only)?\n14. Any banned subjects, competitor names, or claims that must never appear?\n15. Optional: attach a short brand/voice note or strategy PDF for context that is\n    NOT style (Brandiseer already owns visual style).\n\nAfter answers, do the following once:\n\n- Fetch https://brandiseer.com/guide/image and https://brandiseer.com/guide/docs\n  (unauthenticated) and incorporate the rules into the standing desk instructions.\n- If MCP is enabled, call brandiseer_list_brands and confirm the default Brand ID\n  exists. If REST only, GET https://brandiseer.com/api/v1/brands or the v2 brands\n  list your docs describe, with X-API-Key.\n- Write a durable DESK SYSTEM PROMPT the agent will use on every Slack request.\n  Embed: brand map, defaults, clarifying rules, credit policy, banned topics,\n  and the Brandiseer prompt-compatibility rules (no colour/font/mood style words).\n- Confirm setup in Slack with a one-line “desk is live” message in the creative\n  channel (do not include the API key).\n\n--- STANDING BEHAVIOUR FOR EVERY SLACK REQUEST ---\n\n1. Read the latest human brief in the thread. Infer brand from explicit name or\n   channel default. If ambiguous and multi-brand, ask which Brand ID to use.\n2. Check credits per the policy from setup.\n3. Rewrite the brief into a Brandiseer-compatible image prompt: subject, layout,\n   composition, on-image text only. Strip colour, typography, and aesthetic style\n   language. If stripping leaves no content, ask what should physically be in frame.\n4. Set aspectRatio, resolution, mode, and useLogo as API/MCP parameters (not as\n   style prose). Prefer design mode; on timeout-prone hosts use\n   POST /api/v2/generate/async then poll GET /api/v2/jobs/:jobId every 3–5 s\n   (jobs expire after ~10 minutes; failures refund credits).\n5. Reply in the same Slack thread with the image (upload or imageUrl), plus a\n   one-line note: brand used, mode, aspect ratio, credits used if known.\n6. On revision requests, keep the same brand and change only the content/layout\n   the human named. Do not invent a new visual style.\n7. Never schedule social posts, never call Buffer, and never claim Brandiseer\n   published anything. The desk returns stills only.\n```\n\n### Compact standing instructions (after wizard)\n\nKeep roughly this contract on the agent:\n\n1. Slack in → Brandiseer still out (same thread).\n2. Brand memory from Brandiseer; prompts = content + layout only.\n3. Defaults from wizard; ask when brand or crop is unclear.\n4. MCP tools only as documented, or REST v2 image endpoints as documented.\n5. No social automation in this use case.","addOns":"Paste one at a time into Claude after the base desk works.\n\n### 1: Approval emoji gate\n\nOnly treat the still as “approved” when a named reviewer reacts with a chosen emoji (for example ✅). Until then, label replies as draft. Brandiseer generation is unchanged; this is Slack process only.\n\n### 2: Aspect-ratio presets by request type\n\nMap phrases to Brandiseer `aspectRatio`: “in-feed” → `1:1`, “story” → `9:16`, “header” / “blog hero” → `16:9`, “presentation slide” → `4:3` (or `16:9` if that is your deck standard). Ask once if the phrase is ambiguous.\n\n### 3: Multi-brand routing\n\nMaintain an explicit `brand name → Brand ID` table in the system prompt. Require a brand token in every brief when more than one Brand ID is configured. On mismatch, list valid brands from `brandiseer_list_brands` and ask.\n\n### 4: Credit soft-limit\n\nIf remaining credits fall below a threshold you set (for example 40), warn in-thread before generating and suggest Fast mode or a smaller resolution. Still respect an explicit human “generate anyway”.\n\n### 5: Still → motion handoff (optional, separate from the desk MVP)\n\nFor motion, chain a finished still into Brandiseer video (v2.1 image-to-video only): take `imageUrl` from v2 image generation, then use `POST /api/v2.1/video/generate` and poll the video job. Read [guide/video](https://brandiseer.com/guide/video). Keep this behind an explicit “animate this” request so the default desk stays stills-in-minutes.\n\n### 6: Handoff to social automation\n\nWhen a still is approved in Slack and the team wants scheduled publishing, point humans to the [Social media automation](/use-cases/social-media-automation) guide (Buffer + Cowork). Do not implement Buffer inside this desk prompt.","limitsAndFaq":"- **Is this the Buffer social guide?** No. Slack creative desk returns on-brand stills in Slack. Social media automation schedules posts with Buffer.\n- **MCP vs REST:** MCP today exposes `brandiseer_list_brands`, `brandiseer_check_credits`, and `brandiseer_generate_image`. Prefer REST v2 when you need async jobs, explicit `mode` / `aspectRatio` / `resolution` control, or polling. Do not invent undocumented tools or fields.\n- **Credits:** Fast / Design / Pro spend credits by resolution (see [guide/docs](https://brandiseer.com/guide/docs) and [pricing](https://brandiseer.com/pricing)). Failed generations should refund automatically. Interactive desks spend credits whenever someone asks for a still.\n- **Speed:** Fast is quicker; Design is higher quality and can take ~40–70 seconds. Use async REST if your agent HTTP timeout is under ~60 seconds.\n- **Off-brand results:** Almost always caused by colour, font, or mood/style language in the prompt. Strip those per [guide/image](https://brandiseer.com/guide/image) and regenerate.\n- **Secrets:** Never post the `bds_` API key into a public Slack channel. Prefer MCP auth or a secret store on the agent host. Rotate keys if exposed.\n- **Video:** Not part of the default desk. v2.1 is image-to-video only (a still is required first).\n- **Human approval:** Brandiseer does not approve brand-safe claims or legal copy. Keep a human in the Slack thread for launch assets.\n- **Claude product variants:** Cowork vs Claude in Slack availability depends on your Anthropic and Slack plan. The Brandiseer contract is identical once the agent can call MCP/REST and reply in-thread.","demo":"**Working title:** Slack creative desk in minutes  \n**Length:** 45–75 seconds  \n**Story beats:**\n\n1. Teammate types a brief in `#creative-desk`\n2. Agent resolves Brandiseer brand memory (list brands / default Brand ID)\n3. Still generates (no style words in the prompt)\n4. Image appears in the same Slack thread for ✅ approval\n\n**Visual refs:** Slack thread screenshot (blur secrets), Brandiseer Developers / brand page, sample on-brand still.  \n**Generation prompts:** fill when producing motion assets."},"sections":[{"id":"overview","heading":"Overview","markdown":"**Slack + Claude + Brandiseer**\n\n![Cover: in-Slack creative request with an on-brand still returned in-thread](https://blog.brandiseer.com/use-case-assets/slack-creative-desk/cover-slack-creative-desk.png)\n\nBy the end of this guide you will have an in-Slack creative desk. Teammates request stills in a channel or thread; a Claude agent (Cowork with Slack access, or Claude in Slack) resolves the brand via Brandiseer, generates on-brand images, and posts the results back in-thread within minutes. This is a **request-and-return** desk, not a Buffer social scheduler.\n\n> Looking for recurring captions and scheduled posts? Use the separate [Social media automation](/use-cases/social-media-automation) guide (Brandiseer + Claude Cowork + Buffer)."},{"id":"audience","heading":"Who it is for","markdown":"- Marketing and growth teams that brief creatives in Slack and hate waiting on a ticket queue\n- Ops, founders, and PMM leads who need campaign stills, event graphics, or ad crops without opening a design tool\n- Agencies running multiple client brands who want one Slack pattern per client (or one multi-brand desk with clear brand IDs)\n- Teams that already use Claude (Cowork and/or Claude in Slack) and want Brandiseer brand memory behind every image\n\n**Ideal customer profile:** an SMB or mid-market team (roughly 5–50 people touching marketing) with an approved brand in Brandiseer, Slack as the daily workplace, and enough Brandiseer credits for interactive generations during the week."},{"id":"why-brandiseer","heading":"Why Brandiseer","markdown":"Slack is where the brief already lives. Claude is the agent that understands the request. Brandiseer owns **persistent brand memory**: logo, colours, type, and visual identity stay applied on every still so each teammate does not re-explain the brand in every message.\n\nWithout Brandiseer, Slack-side AI creatives drift toward generic stock looks or last-message vibes. With Brandiseer, the image step stays on-brand while Slack stays the request and review surface.\n\nBrandiseer does not post to social networks and does not replace Slack approvals. It generates the still. Your team keeps ownership of copy, legal, and publish steps.\n\n![Example strip: request bubble and mock on-brand stills returned as creatives](https://blog.brandiseer.com/use-case-assets/slack-creative-desk/example-strip.png)"},{"id":"stack","heading":"Stack","markdown":"| Layer | Tool | Role |\n| --- | --- | --- |\n| Request surface | Slack | Channel or thread where humans ask for creatives and review results |\n| Agent host | Claude Cowork **or** Claude in Slack / Slack-connected agent | Parse the brief, call Brandiseer, reply in-thread with image URLs or uploads |\n| Brand visuals | Brandiseer (MCP and/or REST v2) | List brands, check credits, generate on-brand stills |\n\n![Stack diagram: Slack, Claude, and Brandiseer](https://blog.brandiseer.com/use-case-assets/slack-creative-desk/stack-diagram.png)\n\n**Docs:** [Developers](https://brandiseer.com/developers) · [API reference / guide/docs](https://brandiseer.com/guide/docs) · [Prompt compatibility / guide/image](https://brandiseer.com/guide/image) · MCP `https://brandiseer.com/api/mcp`\n\nEndpoint tables and HTTP contracts are in API reference at the end of this guide."},{"id":"architecture","heading":"How it works","markdown":"1. You store the brand once in Brandiseer (logo and reference visuals teach the look).\n2. You connect Brandiseer to Claude via MCP and/or paste the API key + Brand ID for REST v2.\n3. You install or enable the Claude agent path that can read and reply in your Slack workspace (Cowork with Slack, or Claude in Slack, depending on your Anthropic/Slack setup).\n4. You run the setup wizard (below). Claude asks ~10–15 questions and writes a durable desk system prompt (default brand, aspect ratios, when to ask clarifying questions, credit checks).\n5. Teammates `@mention` the agent (or use your agreed trigger) in a creative channel with a plain-language brief.\n6. The agent resolves `brandId`, writes a Brandiseer-compatible prompt (subject and layout only), generates the still, and returns the image in-thread for human approval or a single revision.\n\nTypical turnaround for one Fast or Design still is measured in minutes, not design-ticket days. Design mode can take longer (often tens of seconds); use async REST when timeouts are tight.\n\n![Workflow infographic: five steps from request to approve or iterate](https://blog.brandiseer.com/use-case-assets/slack-creative-desk/workflow-infographic.png)"},{"id":"prerequisites","heading":"What you need","markdown":"- Company website URL (for first brand analysis)\n- Brandiseer account with at least one finished brand profile\n- Brandiseer API key (`bds_…`) from [Settings → API](https://brandiseer.com/settings/api) / [Developers](https://brandiseer.com/developers)\n- Brand ID (`bds_c_…`) for each brand the desk may use\n- Enough Brandiseer credits for interactive desk usage\n- Slack workspace and a dedicated creative channel (recommended), for example `#creative-desk`\n- Claude Cowork **and/or** Claude in Slack (or another Claude agent that can use Brandiseer MCP/REST and post back to Slack)\n- Optional: pinned channel rules so humans know how to brief (aspect ratio, logo on/off, deadline)"},{"id":"setup","heading":"Setup","markdown":"### Stage 1: Add your brand on Brandiseer\n\n1. Go to [brandiseer.com](https://brandiseer.com). In the homepage input, enter your company website URL and click **Try My Brand**.\n2. Wait about one minute while Brandiseer analyses the site and picks a logo and visuals.\n3. Review those visuals carefully. They teach Brandiseer your look. Every later Slack still is influenced by what you leave here.\n4. Remove anything off-brand (partner logos, stock, irrelevant screenshots). Add campaign creatives or product photography that match the style you want.\n5. Click **Add Brand**, sign up if prompted, then wait ~30 seconds for the brand profile to finish.\n\n### Stage 2: Get credentials and connect Brandiseer to Claude\n\n1. Open [brandiseer.com/developers](https://brandiseer.com/developers).\n2. Create an API key (`bds_…`) and note your **Brand ID** (`bds_c_…`).\n3. Prefer one of these Claude connection paths:\n\n   **A. MCP (interactive desk)**  \n   Connect Brandiseer MCP at `https://brandiseer.com/api/mcp` with `Authorization: Bearer <api-key>` in the Claude environment that will serve Slack. Confirm the three tools appear: `brandiseer_list_brands`, `brandiseer_check_credits`, `brandiseer_generate_image`.\n\n   **B. REST v2 (explicit control / async)**  \n   Open **View Docs**, use **Copy for LLM**, and paste the reference into the Cowork (or agent) session. Instruct Claude to prefer `POST /api/v2/generate` or `/generate/async` with `X-API-Key`.\n\n4. Optionally ask Claude to fetch `https://brandiseer.com/guide/image` and `https://brandiseer.com/guide/docs` once and keep those rules in the desk system prompt.\n\n### Stage 3: Wire Slack as the request surface\n\n1. Create or choose a channel such as `#creative-desk` (and optional client channels for agencies).\n2. Invite the Claude agent / app that will run the desk.\n3. Pin a short human brief format, for example: brand name (if multi-brand), what is in the frame, crop (`1:1` / `9:16` / `16:9` / `4:3`), logo yes/no, and any on-image text that must appear.\n4. Agree a trigger: `@Claude` / your bot mention, a slash-style habit your workspace uses, or “reply in-thread to the desk bot”.\n\nExact Slack install steps depend on whether you use Claude in Slack, Cowork with Slack connectors, or another Claude agent host. The creative contract is the same: read the human brief in Slack → call Brandiseer → post the still back in the same thread.\n\n### Stage 4: Run the setup wizard\n\n1. In the Claude session that owns Brandiseer access, paste the **Appendix: Desk wizard / system prompt** below.\n2. Answer questions one at a time. Have API key (if REST), Brand ID(s), default aspect ratios, and Slack channel names ready.\n3. When finished, Claude should produce a durable **desk system prompt** (and, if Cowork-scheduled helpers exist in your setup, any optional credit-watch note). Save that system prompt as the agent’s standing instructions for `#creative-desk`.\n\n### Stage 5: Smoke test in Slack\n\n1. In `#creative-desk`, send a simple brief, for example: “LinkedIn square still: product on a desk, headline space top third, logo bottom right.”\n2. Confirm Claude lists or selects the correct brand, checks credits if balance is low, generates via MCP or REST v2, and returns the image in-thread.\n3. Ask for one revision (“same layout, more negative space on the left”) and confirm the second still stays on-brand without style/colour language in the prompt."},{"id":"prompting-rules","heading":"Prompting rules for Brandiseer images (desk agents)","markdown":"When Claude turns a Slack brief into a Brandiseer prompt:\n\n- Describe **layout, composition, subject, and on-image text placement** only.\n- Do **not** describe brand colours, fonts, mood filters, or visual style. Brand memory already applies those. Style words in the prompt can fight the brand and produce off-brand results.\n- Map platform language to API parameters: square → `aspectRatio: \"1:1\"`, Story/Reel → `\"9:16\"`, landscape banner → `\"16:9\"`, and so on. Put resolution and mode in the API call, not in prose inside the prompt.\n- Prefer **design** mode for quality desk stills; use **async** when Design may exceed HTTP timeouts; fall back to **fast** if design fails once.\n- Use `useLogo: true` only when the human asked for the logo (or your desk default says so).\n- Full rules: [Prompt compatibility](https://brandiseer.com/guide/image)."},{"id":"system-prompts","heading":"Setup wizard / system prompt outline","markdown":"### Appendix: Desk wizard (paste into Claude)\n\n```text\nYou are setting up a Slack creative desk for Brandiseer. Outcome: humans request\non-brand stills in Slack; you generate via Brandiseer and return images in the\nsame thread within minutes. This is NOT a Buffer / social scheduling workflow.\n\nAsk these questions one at a time. Wait for each answer before moving on.\n\n1. Will you use Brandiseer MCP, REST v2, or both? (MCP URL:\n   https://brandiseer.com/api/mcp with Bearer token; REST with X-API-Key.)\n2. What is your Brandiseer API key? (Store only in the agent secret store /\n   system prompt vault your host provides. Never echo it back into public Slack.)\n3. What is the default Brandiseer Brand ID (bds_c_…)? If multi-brand, list each\n   brand name → Brand ID mapping.\n4. What Slack channel(s) is this desk for? What is the trigger phrase or mention?\n5. Default aspect ratio when the human does not specify? (1:1, 16:9, 9:16, or 4:3)\n6. Default resolution? (1K recommended for Slack previews; 2K/4K when asked)\n7. Default generation mode? (design for quality, fast for quick drafts, pro when\n   the human asks for maximum adherence)\n8. Default useLogo true or false when the brief is silent?\n9. Language for any on-image text (and per-brand overrides if any)?\n10. When should you ask a clarifying question instead of generating immediately?\n    (missing crop, ambiguous brand, legal/claims risk, empty brief, etc.)\n11. How many revision rounds are allowed per thread before you ask the human to\n    open a new request?\n12. Should you call brandiseer_check_credits (or GET /api/v1/credits) before each\n    generation, only when low, or only on /credits requests?\n13. Who may use the desk (everyone in the channel, or named roles only)?\n14. Any banned subjects, competitor names, or claims that must never appear?\n15. Optional: attach a short brand/voice note or strategy PDF for context that is\n    NOT style (Brandiseer already owns visual style).\n\nAfter answers, do the following once:\n\n- Fetch https://brandiseer.com/guide/image and https://brandiseer.com/guide/docs\n  (unauthenticated) and incorporate the rules into the standing desk instructions.\n- If MCP is enabled, call brandiseer_list_brands and confirm the default Brand ID\n  exists. If REST only, GET https://brandiseer.com/api/v1/brands or the v2 brands\n  list your docs describe, with X-API-Key.\n- Write a durable DESK SYSTEM PROMPT the agent will use on every Slack request.\n  Embed: brand map, defaults, clarifying rules, credit policy, banned topics,\n  and the Brandiseer prompt-compatibility rules (no colour/font/mood style words).\n- Confirm setup in Slack with a one-line “desk is live” message in the creative\n  channel (do not include the API key).\n\n--- STANDING BEHAVIOUR FOR EVERY SLACK REQUEST ---\n\n1. Read the latest human brief in the thread. Infer brand from explicit name or\n   channel default. If ambiguous and multi-brand, ask which Brand ID to use.\n2. Check credits per the policy from setup.\n3. Rewrite the brief into a Brandiseer-compatible image prompt: subject, layout,\n   composition, on-image text only. Strip colour, typography, and aesthetic style\n   language. If stripping leaves no content, ask what should physically be in frame.\n4. Set aspectRatio, resolution, mode, and useLogo as API/MCP parameters (not as\n   style prose). Prefer design mode; on timeout-prone hosts use\n   POST /api/v2/generate/async then poll GET /api/v2/jobs/:jobId every 3–5 s\n   (jobs expire after ~10 minutes; failures refund credits).\n5. Reply in the same Slack thread with the image (upload or imageUrl), plus a\n   one-line note: brand used, mode, aspect ratio, credits used if known.\n6. On revision requests, keep the same brand and change only the content/layout\n   the human named. Do not invent a new visual style.\n7. Never schedule social posts, never call Buffer, and never claim Brandiseer\n   published anything. The desk returns stills only.\n```\n\n### Compact standing instructions (after wizard)\n\nKeep roughly this contract on the agent:\n\n1. Slack in → Brandiseer still out (same thread).\n2. Brand memory from Brandiseer; prompts = content + layout only.\n3. Defaults from wizard; ask when brand or crop is unclear.\n4. MCP tools only as documented, or REST v2 image endpoints as documented.\n5. No social automation in this use case."},{"id":"add-ons","heading":"Optional add-ons","markdown":"Paste one at a time into Claude after the base desk works.\n\n### 1: Approval emoji gate\n\nOnly treat the still as “approved” when a named reviewer reacts with a chosen emoji (for example ✅). Until then, label replies as draft. Brandiseer generation is unchanged; this is Slack process only.\n\n### 2: Aspect-ratio presets by request type\n\nMap phrases to Brandiseer `aspectRatio`: “in-feed” → `1:1`, “story” → `9:16`, “header” / “blog hero” → `16:9`, “presentation slide” → `4:3` (or `16:9` if that is your deck standard). Ask once if the phrase is ambiguous.\n\n### 3: Multi-brand routing\n\nMaintain an explicit `brand name → Brand ID` table in the system prompt. Require a brand token in every brief when more than one Brand ID is configured. On mismatch, list valid brands from `brandiseer_list_brands` and ask.\n\n### 4: Credit soft-limit\n\nIf remaining credits fall below a threshold you set (for example 40), warn in-thread before generating and suggest Fast mode or a smaller resolution. Still respect an explicit human “generate anyway”.\n\n### 5: Still → motion handoff (optional, separate from the desk MVP)\n\nFor motion, chain a finished still into Brandiseer video (v2.1 image-to-video only): take `imageUrl` from v2 image generation, then use `POST /api/v2.1/video/generate` and poll the video job. Read [guide/video](https://brandiseer.com/guide/video). Keep this behind an explicit “animate this” request so the default desk stays stills-in-minutes.\n\n### 6: Handoff to social automation\n\nWhen a still is approved in Slack and the team wants scheduled publishing, point humans to the [Social media automation](/use-cases/social-media-automation) guide (Buffer + Cowork). Do not implement Buffer inside this desk prompt."},{"id":"limits-and-faq","heading":"FAQ / limits","markdown":"- **Is this the Buffer social guide?** No. Slack creative desk returns on-brand stills in Slack. Social media automation schedules posts with Buffer.\n- **MCP vs REST:** MCP today exposes `brandiseer_list_brands`, `brandiseer_check_credits`, and `brandiseer_generate_image`. Prefer REST v2 when you need async jobs, explicit `mode` / `aspectRatio` / `resolution` control, or polling. Do not invent undocumented tools or fields.\n- **Credits:** Fast / Design / Pro spend credits by resolution (see [guide/docs](https://brandiseer.com/guide/docs) and [pricing](https://brandiseer.com/pricing)). Failed generations should refund automatically. Interactive desks spend credits whenever someone asks for a still.\n- **Speed:** Fast is quicker; Design is higher quality and can take ~40–70 seconds. Use async REST if your agent HTTP timeout is under ~60 seconds.\n- **Off-brand results:** Almost always caused by colour, font, or mood/style language in the prompt. Strip those per [guide/image](https://brandiseer.com/guide/image) and regenerate.\n- **Secrets:** Never post the `bds_` API key into a public Slack channel. Prefer MCP auth or a secret store on the agent host. Rotate keys if exposed.\n- **Video:** Not part of the default desk. v2.1 is image-to-video only (a still is required first).\n- **Human approval:** Brandiseer does not approve brand-safe claims or legal copy. Keep a human in the Slack thread for launch assets.\n- **Claude product variants:** Cowork vs Claude in Slack availability depends on your Anthropic and Slack plan. The Brandiseer contract is identical once the agent can call MCP/REST and reply in-thread."},{"id":"demo","heading":"Motion / demo brief (for later assets)","markdown":"**Working title:** Slack creative desk in minutes  \n**Length:** 45–75 seconds  \n**Story beats:**\n\n1. Teammate types a brief in `#creative-desk`\n2. Agent resolves Brandiseer brand memory (list brands / default Brand ID)\n3. Still generates (no style words in the prompt)\n4. Image appears in the same Slack thread for ✅ approval\n\n**Visual refs:** Slack thread screenshot (blur secrets), Brandiseer Developers / brand page, sample on-brand still.  \n**Generation prompts:** fill when producing motion assets."},{"id":"additional-1-example-slack-flows","heading":"Example Slack flows","markdown":"### Flow A: Single still, default brand\n\n> **Alex (in `#creative-desk`):** `@Claude` Need a 1:1 LinkedIn still for tomorrow’s webinar. Speaker at a laptop, title “Ops metrics that matter” in the top third, leave room bottom-right for logo.\n\n**Agent:** Selects default `brandId` → builds a layout-only prompt → `mode: design`, `aspectRatio: \"1:1\"`, `useLogo: true` → posts the still in-thread with a short confirmation.\n\n### Flow B: Multi-brand agency channel\n\n> **Sam:** `@Claude` brand: Northwind. 9:16 story announcing 20% off winter kits. Product flat-lay, bold discount numeral centre, no lifestyle backdrop clutter.\n\n**Agent:** Maps “Northwind” → `bds_c_…` from the wizard map → generates Story crop → returns still. Does not apply another client’s brand.\n\n### Flow C: Clarifying question first\n\n> **Jordan:** `@Claude` Make it pop for the launch.\n\n**Agent:** Refuses to invent style. Asks: which brand, what is physically in the frame, which crop, and what on-image text (if any). Only then generates.\n\n### Flow D: Credits check\n\n> **Alex:** `@Claude` how many credits do we have?\n\n**Agent:** Calls `brandiseer_check_credits` (or `GET /api/v1/credits`) and replies with the balance. Does not generate an image unless asked.\n\n### Flow E: Revision in-thread\n\n> **Alex (thread reply):** Same composition, move the headline lower and add more empty space on the left for a partner logo we’ll composite later. Logo off.\n\n**Agent:** Same brand, `useLogo: false`, updated layout prompt only → second still in the same thread."},{"id":"additional-2-links","heading":"Links","markdown":"| Resource | URL |\n| --- | --- |\n| Brandiseer | https://brandiseer.com |\n| Developers | https://brandiseer.com/developers |\n| API / docs guide (LLM markdown) | https://brandiseer.com/guide/docs |\n| Image prompt compatibility | https://brandiseer.com/guide/image |\n| Video prompting (optional motion) | https://brandiseer.com/guide/video |\n| MCP endpoint | https://brandiseer.com/api/mcp |\n| API keys | https://brandiseer.com/settings/api |\n| Pricing / credits | https://brandiseer.com/pricing |\n| Sibling use case: Social media automation | https://blog.brandiseer.com/use-cases/social-media-automation |"},{"id":"additional-3-related-use-cases","heading":"Related use cases","markdown":"- Social media automation (Brandiseer + Claude Cowork + Buffer): sibling guide\n- Always-on creative automation (Zapier / Make / n8n): planned\n- Creative MCP companions (Higgsfield / Creatify / Moda) using Brandiseer stills: planned"},{"id":"additional-4-source","heading":"Source","markdown":"Public Use case README for Brandiseer Agentic Lead (Slack creative desk). Aligned with Brandiseer MCP tools, REST v2 image generation, and agent guides `/guide/image` and `/guide/docs` (September 2026). Distinct from the Buffer social automation guide."},{"id":"api-reference","heading":"API reference","markdown":"Wiring reference for agents and HTTP modules. The sections above are the human path.\n\n### What each Brandiseer access path does\n\n**MCP** (`https://brandiseer.com/api/mcp`), authenticate with `Authorization: Bearer <bds_…>`:\n\n- `brandiseer_list_brands`: list brands available to the API key\n- `brandiseer_check_credits`: check remaining credits before a burst of generations\n- `brandiseer_generate_image`: generate one on-brand still\n\n**REST (prefer v2 for images)** with `X-API-Key: bds_…`:\n\n- `POST https://brandiseer.com/api/v2/generate`: sync still (response includes `imageUrl` and `creditsUsed`)\n- `POST https://brandiseer.com/api/v2/generate/async`: submit job, then poll `GET https://brandiseer.com/api/v2/jobs/:jobId`\n- Documented image body fields include `brandId`, `prompt`, optional `aspectRatio` (`1:1`, `16:9`, `9:16`, `4:3`), `resolution` (`1K`, `2K`, `4K`), `mode` (`fast`, `design`, `pro`), and `useLogo`\n- Legacy `POST /api/v1/generate` still works for older callers (`proMode` boolean instead of `mode`; Fast and Pro only)\n\nDo not invent extra MCP tool names or undocumented REST fields. If Claude needs prompting rules, fetch [guide/image](https://brandiseer.com/guide/image). If Claude needs the live API summary, fetch [guide/docs](https://brandiseer.com/guide/docs)."}],"actions":{"tryBrandiseer":"https://brandiseer.com","createApiKey":"https://brandiseer.com/settings/api","developerDocs":"https://brandiseer.com/developers/docs","mcpEndpoint":"https://brandiseer.com/api/mcp"},"representations":{"html":"https://blog.brandiseer.com/use-cases/slack-creative-desk","markdown":"https://blog.brandiseer.com/use-cases/slack-creative-desk/agent.md","json":"https://blog.brandiseer.com/use-cases/slack-creative-desk/guide.json"}}