Engineering / Workflow Presets

Paste a website URL, get a service-ad pipeline

A product story with real engineering underneath: workflow presets materialize a full automation graph, and website presets bootstrap branding from the live site.

March 2026 · Product · Engineering · Workflows · By Alfred Pararajasingam

The product problem

Turning a website into recurring Instagram service ads is a chain of decisions: scrape the page, extract a business profile, write ad copy, generate a background, overlay copy, place a logo, compose slots, schedule posting. Power users can wire that on the canvas. Most people will not.

We wanted one action that feels product-simple ("paste your site URL") and expands into a real, editable workflow they still own afterward.

What the user experiences

  1. Create a project with an empty workflow canvas
  2. Open Workflow Presets → choose Website Service Ads
  3. Paste a website URL and apply
  4. Land on a wired canvas: scrape source, business profile, ad copy, image, overlay, tip-card compose
  5. Logo, brand styles, and business profile update shortly after (background import)
  6. Review outputs, then connect an Instagram poster
https://yoursite.com Scrape Ad copy Image + overlay Service ad

Same pattern for other presets (app review video, presenter video, clips, blog): different graphs, same apply model. Website Service Ads is the square-graphic path that starts from a live link.

Presets are a graph DSL, not form defaults

Each preset declares nodes and edges in code: inputs (data source, knowledge files), automations (action + prompt + file type), templates (slot layout), and canvas positions. That graph is the source of truth for both preview and apply.

Product benefit: adding a new preset is mostly declarative. Engineering benefit: preview, illustration, and materialization all read the same config instead of drift between UI and runtime.

Apply: one transaction, then async polish

Applying a preset only works on projects with an empty workflow canvas. That constraint is intentional: merging a full graph onto an existing one is a product and engineering mess we chose not to solve on day one.

Inside a single DB transaction we:

  • Create library resources (scrape endpoint, stock/knowledge placeholders)
  • Create automations with their prompts and process types
  • Resolve / attach the content template
  • Create chains (edges between nodes, including template slots)
  • Save canvas layout so the graph opens where it should

Then, for website presets, we enqueue a background job to refresh site assets. The user can explore the canvas immediately; branding catches up without blocking apply.

The interesting bit: bootstrapping brand from a URL

A service ad without a logo, business profile, and brand tone still “works,” but it doesn’t feel like their site. So after apply we import:

  • Business profile: services, benefits, CTA, audience, and tone from page copy.
  • Site logo: crawl the page (and a few related paths like About), collect image candidates, score them (header marks, schema.org, common /logo paths), and let a vision model pick the best match against a prompt like “main brand logo, not favicon.”
  • Brand styles: pack visible page text + CSS cues, then ask a text model for short reusable notes (colors, fonts, tone), not a dump of raw CSS.

Heuristics first, AI as judge: that keeps cost bounded and avoids asking vision to score dozens of noisy images. If import fails, stock fallbacks keep the pipeline runnable.

Product takeaway: users get a branded workflow without uploading assets up front. Engineering takeaway: treat site assets as best-effort enrichment, not a blocker.

How this differs from Agentic Transform

Website Service Ads (preset)

  • Starts from a URL + scheduled scrape
  • Fixed, editable multi-node chain
  • Business profile + logo + brand styles as knowledge inputs
  • Tip-card template compose for Instagram ads

Agentic Transform

  • Starts from a document
  • One automation; agent chooses tools in a loop
  • Vision QA retries for readable overlay text
  • Best for one-shot “make a graphic from this copy”

Same platform building blocks (text-to-image, overlay, merge layers); different product shapes. Presets encode a known happy path; the agent explores within a small tool kit.

What we’d tell another team

  • If the workflow has more than a few nodes, ship a graph preset, not a wizard of disconnected forms
  • Keep apply atomic; enrich branding async
  • Refuse messy merges (empty canvas) until you have a clear product model for them
  • Pair heuristics + AI for site assets; always have a fallback
  • Let users edit the graph after apply: presets are a head start, not a black box

Try it / read more

Apply Website Service Ads from Workflow Presets, or read how Agentic Transform plans a graphic in a tool loop.