Campaign banner set
ivy.agent.campaign-banner-set · v0.1.0
ivyx
Turns a client's brief into a display banner set: a model writes one line and a palette, and the banners are drawn as SVG in the three standard sizes (1200x628, 728x90, 300x250), each with the call to action. What comes out is kind deliverables for IVYX Agency.
Steps
In the order the agent's file lists them, each with where its inputs come from and the values the file fixes. A branch or a loop is a step too.
- 01Ivy NodePut the request together for the modelivy.node.design-brief
Puts the request together as one text for the model's turn: the client, the service, the month, the brief and the figures, so the model writes for the right client.
- takes
brieffrom the agent's inputclientfrom the agent's inputservicefrom the agent's inputrequest_idfrom the agent's input
- 02Model turnWrite the line and the palette from the brief
The context is a client's brief for a web banner campaign, with the client's name. Return a JSON object with: headline (at most 7 words, the one thing to say), subline (at most 16 words), cta (at most 3 words, a verb), palette (an object with bg, accent and text as 6-digit hex colours that fit the brief's mood; dark bg with light text or the reverse, always readable), layout (one of poster, split, band, minimal; poster when unsure), brand (the client's name as given), caption (one sentence saying what the visual shows, for the record), art_style (one of gradient, waves, grid, blobs for the picture behind the campaign). Answer with the JSON object only. Colours are 6-digit hex. Keep the words short and concrete; no exclamation marks; no claims the brief does not make.
- takes
contextfrom step 1
- 03Ivy NodeDraw the bannersivy.node.design-svg-card
Draws a social post, a poster or a banner as SVG from a spec (headline, subline, cta, palette, layout, brand) in the sizes asked for.
- takes
specfrom step 2,outputfallback_textfrom the agent's input,briefname_prefixfrom the agent's input,client- set
sizes["1200x628","728x90","300x250"]
- 04Ivy NodePack the deliverablesivy.node.design-pack
Gathers the files the steps before it made into one answer of kind deliverables (request, client, service, brief, the spec, the files with their bytes).
- takes
specfrom step 2,outputrequest_idfrom the agent's inputclientfrom the agent's inputservicefrom the agent's inputbrieffrom the agent's inputfiles_afrom step 3,files- returns
kind,request_id,client,service,brief,spec,files,count
Nodes it brings
Adding this agent in IVYX Studio adds these nodes with it. A node your workspace already has is kept as it is, even at another version.
What it touches
Collected from what each of its nodes declares, plus the model call when a step is a model turn. A declaration is the author's statement, and it is what policy rules select on.
Inputs
| Field | Type | Description |
|---|---|---|
| briefrequired | string | What the client asked for, in their words or the account lead's: the subject, the audience, the tone, the colours if any. |
| client | string | The client's name, as IVYX Agency knows it. |
| service | string | The service this is work for, as IVYX Agency knows it (e.g. Content Production). |
| request_id | string | The request's id on the channel it came from; the key that keeps one request from running twice. |
Outputs
| Field | Type | Description |
|---|---|---|
| kindrequired | string | deliverables: what this output is, for a receiver that takes several kinds. |
| request_id | string | Not declared |
| client | string | Not declared |
| service | string | Not declared |
| brief | string | Not declared |
| spec | object | The design spec the model wrote from the brief, as rendered. |
| filesrequired | array | The files made: name, mime, kind, bytes, data (base64), width, height, caption, variant. |
| countrequired | integer | Not declared |
Tests
2 of 2 test cases passed on Oct 25, 2026, in the publisher's own environment, before this version was published. The registry keeps that record; it does not run the cases again.
Requires: python:3.9, a model core
- spring-campaign
A booking tool's spring campaign is three web banners in the three standard sizes.
- given
briefNorthwind runs a spring campaign for its booking tool: book in two taps. Blue and white, confident.clientNorthwindserviceContent Productionrequest_idcase-banners-1- expects
kindequals deliverablescountequals 3clientequals Northwindfiles.0.variantequals 1200x628files.1.variantequals 728x90files.2.variantequals 300x250files.2.datamatches ^PHN2Zy
- terse-brief
A brief of a few words still draws all three sizes.
- given
briefWinter sale, 20% off.- expects
kindequals deliverablescountequals 3