# Connect Bannerify to your tools

> Learn how to connect Bannerify to no-code tools, your own storage, and your code.

Canonical: https://bannerify.co/docs/integrations/overview

Bannerify turns a template and a set of values into an image or a PDF. The integrations on this page send those values for you. A workflow tool passes a template and some data to Bannerify, and Bannerify returns the link of the finished file.

## Choose an integration

### No-code tools

<CardGroup cols={2}>
  <Card title="Zapier" icon="zap" href="https://bannerify.co/docs/integrations/zapier">
    Create Image and Create PDF actions for your Zaps
  </Card>
  <Card title="n8n" icon="nodes" href="https://bannerify.co/docs/integrations/n8n">
    A community node that renders an image or a PDF
  </Card>
  <Card title="Pipedream" icon="diagram-project" href="https://bannerify.co/docs/integrations/pipedream">
    Render Image, Render PDF, and List Templates actions
  </Card>
  <Card title="Notion" icon="file-text" href="https://bannerify.co/docs/integrations/notion">
    Render a template when a page in a database changes
  </Card>
</CardGroup>

### Developer tools

<CardGroup cols={2}>
  <Card title="SDKs" icon="puzzle-piece" href="https://bannerify.co/docs/sdk/overview">
    JavaScript, Python, PHP, and Go
  </Card>
  <Card title="Signed URLs" icon="image" href="https://bannerify.co/docs/essentials/signed-urls">
    Render an image when someone opens a link
  </Card>
  <Card title="CLI" icon="bolt" href="https://bannerify.co/docs/cli/overview">
    Render a template from the terminal
  </Card>
  <Card title="MCP server" icon="flow" href="https://bannerify.co/docs/mcp/overview">
    Create files from an AI assistant
  </Card>
  <Card title="Embedded editor" icon="window" href="https://bannerify.co/docs/integrations/embed-editor">
    Put the editor in your app on the Scale and Enterprise plans
  </Card>
</CardGroup>

### Storage

<CardGroup cols={2}>
  <Card title="Your own S3 bucket" icon="inbox-out" href="https://bannerify.co/docs/integrations/storage-and-notifications">
    Save files to S3, R2, or another S3-compatible service on the Scale and Enterprise plans
  </Card>
</CardGroup>

## Before you start

1. Design a template and name each layer that you want to change. See [Template editor](https://bannerify.co/docs/essentials/template-editor) and [Modifications](https://bannerify.co/docs/essentials/modifications).
2. Create an API key on the **API Keys** page. Zapier, n8n, and Pipedream need it, and [Authenticate requests](https://bannerify.co/docs/api-reference/authentication) shows how. Notion connects through your Notion account and needs no key.
3. Connect the tool and choose the template.

Zapier, n8n, Pipedream, and Notion list your templates, so you do not need the template id. A workflow that calls the API through an HTTP step does. To copy the id, open the menu on a template card and choose **Copy Template ID**.

## What the actions return

The image actions call `createStoredImage` and the PDF actions call `createStoredPdf`. Each call returns an object with the link of the file:

```json
{
  "url": "https://images.bannerify.co/files/0b3c1c1e-5d6f-4c52-9e0a-8f6a4c0f2a11.png"
}
```

Bannerify saves the file on its CDN, and the link is public. Pass the link to the next step of your workflow, for example to put it in an email or to save it in a spreadsheet. Notion saves its files the same way and writes the link to a property of the page. To save files in your own bucket, see [Save files to your own S3 bucket](https://bannerify.co/docs/integrations/storage-and-notifications).

## Send values to a template

The Zapier, n8n, and Pipedream actions have a **Modifications JSON** field. It takes an object where each key is a layer name:

```json
{
  "headline": "Summer sale",
  "photo": { "src": "https://example.com/product.png" }
}
```

It also takes the array that the API uses:

```json
[
  { "name": "headline", "text": "Summer sale" },
  { "name": "photo", "src": "https://example.com/product.png" }
]
```

In the object form, a string sets the text of the layer, and an object sets the fields that you list, such as `src` for an image. [Modifications](https://bannerify.co/docs/essentials/modifications) lists the fields that each layer type reads.

## Limits

Each file counts as one generation, and the API limits apply to every tool on this page. [Quota and limits](https://bannerify.co/docs/account/quota) lists them.

## Get help

Write to [an@bannerify.co](mailto:an@bannerify.co) or ask on [Discord](https://bannerify.co/discord).

## Related

- [Previous: Recipes for common jobs](https://bannerify.co/docs/essentials/automation-blueprints)
- [Next: Connect Zapier](https://bannerify.co/docs/integrations/zapier)
- [Documentation index](https://bannerify.co/docs/llms.txt)
