Generate Brand Creative
generate_brand_creativeGenerate a branded advertising image using AI and a company brand kit. The headline and optional CTA are baked into the pixels. Returns a hosted URL for a finished PNG that the caller can download or use independently. This tool does not automatically attach the image to an ad or launch a campaign; a separate upload_image_creative and ad-creation call can consume it. Missing brand data is generated by the tool. Text rendering may differ from the requested copy.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain to extract brand DNA from. Examples: 'docebo.com', 'metadata.io', 'bloomreach.com'. Do not include protocol (http/https). | |
| headline | Yes | Primary headline text to display in the creative. Keep to 25 characters or fewer for optimal rendering (hard cap 40 — the image model truncates or garbles longer text). Used to select aligned reference ads and guide visual hierarchy. Examples: 'Boost ROI by 30%', 'AI-Powered Marketing', 'Drive More Pipeline' | |
| logo_url | No | Optional direct URL to a logo image (e.g. the URL of a logo the user just uploaded in chat). When set, THIS logo is overlaid for this creative instead of the brand kit's logo or the one from Brandfetch. Use it when the user says things like 'use this logo' or 'use the logo I uploaded'. The uploaded logo is automatically expanded in-memory into clean variants (transparent, high-res, and both a light and dark version when the mark is a single color) for this creative only — nothing is persisted — so the placement model can pick the best fit for the background. To change a brand's logo permanently for all future creatives, call update_brand_kit with logo_url instead of passing it here. | |
| platform | No | Target platform for the creative. Each platform has specific dimensions, text limits, and best practices that will be automatically applied. 'instagram_story' is the vertical 9:16 canvas (Stories, Reels), the one to ask for when the still will be animated into a vertical video. Default: 'linkedin' | |
| include_cta | No | Whether to render a call-to-action (button or styled text link) in the creative. Set to false for surfaces that must not contain a CTA, e.g. stills that seed video ads, where the channel's ad unit provides the real CTA. Default: true | |
| include_logo | No | Whether to include a logo overlay on the generated creative. Set to false to get the raw creative without any logo. Default: true | |
| instructions | Yes | Natural language instructions describing the desired creative. Will be enhanced with brand DNA patterns including proven layouts, CTAs, colors, and tones. Examples: 'Create a professional B2B ad with clean design', 'Generate announcement for new AI feature launch', 'Design case study visual with modern aesthetic' | |
| logo_position | No | Force a specific logo position instead of using AI-recommended placement. If not provided, an AI model analyzes the creative to find the optimal position. | |
| logo_size_percent | No | Logo width as a percentage of the image width (e.g., 15 means the logo occupies 15% of the image width). If not provided, the AI recommends an optimal size. Typical range: 10-30. | |
| use_website_background | No | Use the brand website's background color as the creative's dominant background; brand primary colors then appear as accents (CTA button, shapes, highlights). Default: true. Set false when the user wants a brand-colored or model-chosen background instead. Silently ignored when the brand kit has no resolvable website background color. |