> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.bannerify.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Automation Blueprints

> Launch proven Bannerify workflows for campaigns, catalogs, and operations

## Overview

Automation blueprints give your team a repeatable path from template design to production renders. Each blueprint pairs a curated template with the API calls and automation connectors you need to generate assets the moment data changes.

Use these recipes to align marketers, engineers, and operations leads on a shared workflow. You can tailor every step—layers, data sources, delivery targets—while keeping the underlying automation reliable.

## How blueprints help

* **Faster launches.** Start with a tested structure for your use case instead of inventing a workflow from scratch.
* **Cross-team clarity.** Share a documented checklist for marketing, data, and engineering stakeholders.
* **Consistent automation.** Every blueprint is built around Bannerify templates, the REST API, the JavaScript SDK, and native connectors like Zapier, Make, and Pabbly Connect.

## Setup checklist

1. **Pick a template.** Duplicate a gallery template or create your own inside the editor.
2. **Name your layers.** Use clear identifiers (for example `headline`, `price`, `qr`) so API modifications stay readable.
3. **Preview with sample data.** Test different payloads in the editor preview and API Playground.
4. **Choose an automation path.** Decide if the workflow will run through the JavaScript SDK, REST API, or a no-code connector.
5. **Plan delivery.** Stream results from the Bannerify CDN, send signed URLs to downstream systems, or store renders in your own bucket.

## Lifecycle campaign blueprint

### When to use it

Use this blueprint to personalize welcome, activation, and winback campaigns with on-brand images and PDFs. Trigger renders whenever customer attributes or lifecycle stages change.

### Data sources

* CRM or marketing automation tool (HubSpot, Customer.io, Braze, etc.)
* Spreadsheet or warehouse segment exports for batching

### Steps

1. **Template setup.** Start from the lifecycle onboarding template (or duplicate your own). Include text, image, and QR layers for personalization.
2. **Automation trigger.** In Zapier, Make, or Pabbly Connect, watch for a lifecycle stage change. Map relevant fields to Bannerify modifications.
3. **Render call.** Use the Bannerify action to create an image or PDF. Include personalization fields:

```json theme={null}
{
  "templateId": "tpl_lifecycle",
  "format": "png",
  "modifications": [
    { "name": "headline", "text": "Welcome back, {{firstName}}" },
    { "name": "cta", "text": "Reactivate your plan" },
    { "name": "qr", "href": "https://example.com/restart" }
  ]
}
```

The `result` returned from `createStoredImage` is a signed CDN URL you can hand off to downstream channels or store alongside product data.

4. **Delivery.** Send the generated URL into your ESP or attach the PDF to transactional messages. Use signed URLs for time-bound offers.
5. **Measure.** Track conversion lift by passing campaign identifiers through metadata on the render call.

## Product catalog refresh blueprint

### When to use it

Keep storefront visuals current whenever pricing, availability, or merchandising changes hit your catalog feeds.

### Data sources

* Ecommerce platform exports (Shopify, BigCommerce, etc.)
* Inventory spreadsheets or Supabase tables

### Steps

1. **Template setup.** Map layers for product image, price, discount badge, and description. Save reusable styles for brand consistency.
2. **Batch process.** Use the JavaScript SDK inside a cron job or serverless function to loop through product data:

```ts theme={null}
import { Bannerify } from "bannerify-js"

const bannerify = new Bannerify(process.env.BANNERIFY_API_KEY!)

for (const product of products) {
 const { result, error } = await bannerify.createStoredImage("tpl_catalog", {
    modifications: [
      { name: "product-photo", src: product.imageUrl },
      { name: "price", text: `$${product.price}` },
      { name: "stock", text: product.inStock ? "In stock" : "Preorder" }
    ]
  })

  if (error) {
    console.error(`Failed to render ${product.sku}:`, error.message)
    continue
  }

  await pushToCdn(product.sku, result)
}
```

### Multi-channel variants

If you maintain additional template sizes for ads, stories, or marketplace tiles, fan the same payload out across those template IDs inside the loop:

```ts theme={null}
const templateVariants = [
  { id: "tpl_catalog_square", channel: "instagram" },
  { id: "tpl_catalog_story", channel: "stories" },
]

for (const product of products) {
  for (const variant of templateVariants) {
    const { result, error } = await bannerify.createStoredImage(variant.id, {
      modifications: [
        { name: "product-photo", src: product.imageUrl },
        { name: "price", text: `$${product.price}` },
        { name: "stock", text: product.inStock ? "In stock" : "Preorder" }
      ]
    })

    if (error) {
      console.error(`Failed to render ${product.sku} (${variant.channel}):`, error.message)
      continue
    }

    await pushVariantToCdn(product.sku, variant.channel, result)
  }
}
```

Reuse your original `modifications` payload so every channel stays consistent. The additional helper (for example `pushVariantToCdn`) can version assets per channel or marketplace while keeping automation logic identical.

3. **Scheduling.** Run the job hourly or nightly, or trigger it from inventory webhooks.
4. **Storage.** Push finished assets to Bannerify storage or include `s3Config` to store directly in your CDN bucket.
5. **Publish.** Update storefront listings or ad platforms with the refreshed URLs.

## Operations reporting blueprint

### When to use it

Generate audit-ready reports, invoices, or shipment summaries with table-rich PDFs.

### Data sources

* Analytics warehouse (Snowflake, BigQuery, Postgres)
* Internal tools emitting webhook payloads

### Steps

1. **Template setup.** Add table, chart, and text layers to the operations report template. Define table columns that match your data schema.
2. **Data fetch.** Use a scheduled job to compile metrics into a JSON payload. Include totals, time ranges, and status badges.
3. **Render call.** Hit the PDF endpoint with structured data:

```bash theme={null}
curl -X POST https://api.bannerify.co/v1/templates/createPdf \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "YOUR_API_KEY",
    "templateId": "tpl_ops_report",
    "modifications": [
      { "name": "report-title", "text": "Warehouse Performance" },
      { "name": "report-table", "rows": REPORT_ROWS_PLACEHOLDER },
      { "name": "summary", "text": "99.98% on-time fulfillment" }
    ]
  }' \
  --output operations-report.pdf
```

4. **Distribution.** Store PDFs in your S3-compatible bucket and notify finance or logistics teams via webhook or Slack automation.
5. **Governance.** Review activity logs in **Dashboard → Activity** and export audit history for compliance.

## Next steps

* Save your customized blueprint as a workspace document so teammates can follow the same process.
* Pair blueprints with [rate limits](/docs/account/quota) and [activity logs](/docs/onboarding#monitor-usage--reliability) to maintain reliability at scale.
* Share results with sales and marketing to capture testimonials for the marketing site.
