Integrations

Dynamic Images from Contentful Content

Turn every Contentful entry into a unique image automatically. Pass entry field values — title, author, category, product price — as URL parameters and Wafrow renders a branded, on-template image for each piece of content. Ideal for OG images, social cards, and email banners.

09:41
Tuesday, May 26
🔔 Wafrow now
Special offer for Aditi

Claim your customized discount code inside!

Personalized Rich Push Banner
Personalized WhatsApp Banner

Hey Aditi! We wanted to share this personalized gift card with you! 🎁

12:42 PM

How the Wafrow + Contentful integration works

1. Design your image template

Build your image layout in Wafrow's visual editor. Add text layers for entry title, author name, or category tag — and image layers for featured photos or brand logos. Every layer maps to a URL parameter your code will supply.

2. Construct the URL from Contentful entry fields

In your Next.js, Remix, or Gatsby frontend, build the Wafrow image URL using values from the Contentful Delivery API response. Pass entry fields as query parameters to produce a unique image URL per entry.

3. Serve or pre-render via webhook

Use the URL directly as an og:image or email banner — Wafrow renders lazily at request time and caches the result. Alternatively, trigger the Wafrow API from a Contentful publish webhook to pre-render and store the image alongside your content.


Two ways to integrate with Contentful

Choose based on how your site is built and when images need to be ready

Lazy-render — recommended for most sites

Build the URL at render time, serve on demand

Construct the Wafrow URL from Contentful entry fields in your frontend code and embed it directly as an og:image or img src. Nothing is generated until a visitor or crawler requests the URL — then Wafrow renders and caches the image automatically.

Best forSSR / SSG sites, og:image, email banners
Effort~5 lines of code in your data layer
BonusUpdate the template without re-publishing content
Trade-offFirst-request latency ~100–500 ms; repeat requests served from cache
const entry = await client.getEntry('ENTRY_ID');

const url = new URL(
  'https://wafrow.com/i/TEMPLATE_ID'
);
url.searchParams.set('title[text]',    entry.fields.title);
url.searchParams.set('author[text]',   entry.fields.author);
url.searchParams.set('category[text]', entry.fields.category);

// embed as og:image or <img src>
const ogImage = url.toString();

Pre-render via webhook — for zero-latency delivery

Generate the image at publish time, store alongside your content

Trigger the Wafrow API from a Contentful publish webhook. The image is rendered immediately and the binary is returned — store it in Contentful as a media asset or write the URL back to an entry field. By the time a visitor arrives, the image is already cached.

Best forHigh-traffic pages, email campaigns sent from CMS data
EffortWebhook handler + Contentful Management API write-back
BonusImage is ready before any visitor or crawler arrives
Trade-off1 render per publish event; template changes require re-publishing
// Contentful publish webhook → Next.js API route
export async function POST(req) {
  const entry = await req.json();
  const res = await fetch(
    'https://wafrow.com/api/img/TEMPLATE_ID',
    {
      method: 'POST',
      headers: { Authorization: 'Bearer YOUR_TOKEN' },
      body: JSON.stringify({
        personalize: {
          title:    { text: entry.fields.title },
          author:   { text: entry.fields.author },
          category: { text: entry.fields.category },
        },
      }),
    }
  );
  // store res (image blob) or its URL back in Contentful
}

Contentful content type use cases

Content type Contentful fields used Generated image use
Blog post title, author, category, publishedAt og:image for social sharing previews
Product page productName, price, featuredImage URL Email banner + product card for campaigns
Event listing eventName, date, location, speaker Social share card + email invite banner
Documentation page pageTitle, section, lastUpdated og:image for documentation site pages

Zapier HubSpot Customer_io Apollo_io Contentful Firebase Clay Shopify Kit Braze Salesforce Mailchimp Klaviyo ActiveCampaign Omnisend

Ridiculously good value

Simple, transparent pricing. Risk-free, cancel anytime.

Free Plan Lifetime License Pay-As-You-Go
Price

Free

forever

$99

one-time payment

$0.01

per image generated
14-day free trial
Images Generated 1,000 / month 10,000 / month Unlimited
Bandwidth 1 GB / month 25 GB / month Unlimited
Integrations All 14 integrations All 14 integrations All 14 + Custom Webhooks
MCP Server Included Included
Support Self-serve Self-serve Self-serve + dedicated
Get Started Get Started Get Started

Features on All Plans

Use on email, whatsapp, mobile push & landing pages

MCP server for AI agents

6000+ fonts available

Generate Images using URL Parameters

Unlimited image and PDF downloads

Multi-lingual support for characters in arabic, hindi, chinese, japanese

Rest API and webhooks

Digital creative asset manager

Live slack and email support


Risk-free, cancel anytime, no lock-in

Wafrow cancellation is self-serve. No need to email us or callbacks from retention specialists. Straightforward and fair, the way life should be.


Cheapest possible plans for startups and non-profits

As we bootstrap our way through this journey, we realize the value of your hard earned cash. Our endeavour is to make the starting plan as high value as possible. If you're a non-profit, we're happy to offer discounts. Just email us your credentials.


World-class support
Ravdeep
If you get stuck, drop a quick line at [email protected] or slack for enterprise customers. It'll likely be this guy, helping you out with a grin 24x7.

Frequently asked questions

How does Wafrow integrate with Contentful?

You build a visual image template in Wafrow, then construct the Wafrow image URL dynamically in your frontend or backend code using values from Contentful entry fields. Any content field — title, author name, category, product price — can be passed as a URL parameter to produce a unique image per entry.


Can Wafrow automatically generate images when Contentful content changes?

Yes. Use a Contentful webhook to trigger a call to the Wafrow API when an entry is published. Wafrow pre-renders the image and you can store the resulting URL back in Contentful as a media asset or text field for immediate use.


Does Wafrow work with Contentful for Open Graph images?

Yes — this is one of the most popular use cases. Pass the entry title, author, and category as Wafrow parameters and set the resulting URL as the og:image meta tag for each page. Each article or product page gets a unique, branded social preview image automatically.


Can I use Contentful rich text or referenced entries in Wafrow images?

Yes. You can extract any scalar value from a Contentful entry — including referenced asset URLs (for product images or author photos) and short text fields — and pass them directly to Wafrow. Complex rich text should be reduced to a plain string before passing.


Does Wafrow support Contentful environments and preview API?

Yes. The Wafrow API is environment-agnostic — you can call it from both the Contentful Delivery API (production) and the Preview API (drafts). This lets you preview how generated images will look before publishing content.