RendShot

Make Integration — Visual Workflow Image Generation

Generate images from HTML using the Make.com HTTP module. Build visual automation workflows with RendShot.

Make.com (formerly Integromat) is a visual automation platform where you connect apps and services into branching, multi-step workflows called scenarios. Because RendShot is a standard REST API, you can call it from any scenario using Make's built-in HTTP "Make a request" module — no custom app required.

Prerequisites

  • A RendShot API key — get one at rendshot.ai/dashboard/keys. Keys start with rs_live_.
  • A Make.com account (free tier works for testing).

Step 1: Add the HTTP Module

Inside your scenario, click the + button to add a module. Search for HTTP, then choose Make a request.

Configure the module with these settings:

FieldValue
URLhttps://api.rendshot.ai/v1/image
MethodPOST
Body typeRaw
Content typeJSON (application/json)
Parse responseYes

Under Headers, add two entries:

KeyValue
AuthorizationBearer rs_live_your_key_here
Content-Typeapplication/json

Step 2: Configure the Request Body

Set Request content to a JSON object. The minimum required field is html; width and height default to 1200×630 if omitted.

Static example
{
  "html": "<div style=\"background:#1a1816;color:#fff;padding:60px;font-family:sans-serif\"><h1>Hello Make</h1></div>",
  "width": 1200,
  "height": 630,
  "format": "png"
}

To pull values from earlier modules, use Make's variable syntax. Assume module 1 is an RSS feed trigger that exposes title and link:

With Make variables
{
  "html": "<div style=\"background:#1a1816;color:#fff;padding:60px;font-family:sans-serif\"><h1>{{1.title}}</h1><p style=\"opacity:.6\">{{1.link}}</p></div>",
  "width": 1200,
  "height": 630,
  "format": "png"
}

Replace {{1.title}} with any variable from your upstream modules. Make injects these at runtime before sending the request.

Supported body fields:

FieldTypeDefaultDescription
htmlstringHTML to render (XOR with template_id)
template_idstringUse a saved template instead of raw HTML
variablesobjectTemplate variable substitutions
widthnumber1200Viewport width in pixels
heightnumber630Viewport height in pixels
formatstringpngpng or jpeg

Step 3: Parse the Response

Enable Parse response in the HTTP module (checked in Step 1). Make will automatically parse the JSON body and expose its fields as variables.

The RendShot response looks like:

Response
{
  "id": "img_01abc...",
  "url": "https://assets.rendshot.ai/images/img_01abc....png",
  "width": 1200,
  "height": 630,
  "format": "png"
}

In downstream modules, reference the image URL as {{N.url}} — where N is the step number of your HTTP module.

Step 4: Use the Image

Wire the output {{N.url}} to any downstream module. Common destinations:

  • Google Drive — "Upload a file" with the URL fetched via a second HTTP GET
  • Slack — "Create a message" with the URL embedded as an attachment
  • Gmail / Outlook — Attach or inline the image in an automated email
  • Twitter / X — "Create a tweet" with media upload
  • Airtable / Notion — Store the URL in a record field

For binary uploads (e.g. Google Drive), add an HTTP → Get a file module between RendShot and the upload module to download the image bytes first.

URL Screenshots

To capture a screenshot of an existing webpage instead of rendering HTML, change the URL and body:

FieldValue
URLhttps://api.rendshot.ai/v1/screenshot
Screenshot request body
{
  "url": "{{1.link}}",
  "width": 1280,
  "height": 800,
  "full_page": false
}

Everything else — headers, parse response, downstream modules — stays the same. The response format is identical.

Example Scenarios

Scenario 1: RSS to Social Card

Automate social card creation every time a new post is published:

  1. RSS — Watch feed items — monitors your blog feed
  2. HTTP — Make a request (RendShot) — renders a branded card using {{1.title}} and {{1.description}}
  3. Twitter/X — Create a tweet — posts the card image with a link to the article

This runs on a schedule (e.g. every 15 minutes) and posts a card for each new item automatically.

Scenario 2: Webhook to Invoice Image by Email

Turn webhook data into a rendered invoice image and deliver it:

  1. Webhooks — Custom webhook — receives a POST from your app with order data
  2. HTTP — Make a request (RendShot) — renders an invoice HTML template with {{1.customer_name}}, {{1.total}}, {{1.items}}
  3. Gmail — Send an email — attaches or inlines the invoice image, sent to {{1.customer_email}}

Because Make supports loops, you can iterate over {{1.items}} to build the line-item rows in the HTML before sending.

Make vs Zapier

Both platforms can call RendShot via HTTP, but they have different strengths:

MakeZapier
Flow modelVisual graph — supports branches, loops, filters, error routesLinear steps only
Batch processingBuilt-in iterators and aggregatorsLimited
Error handlingPer-module error routes, rollback, resumeBasic retry only
ComplexityBetter for multi-step or conditional workflowsBetter for simple A → B automations
PricingOperations-basedTask-based

For straightforward "event fires → generate image → post somewhere" flows, either platform works. Use Make when your scenario branches (e.g. different templates per content type) or processes lists of items.

See the Zapier integration guide if you prefer Zapier.

Troubleshooting

Request fails with a 400 error

The most common cause is sending the body as key-value pairs instead of raw JSON. Make sure Body type is set to Raw and Content type is JSON (application/json). The request content field must be a valid JSON string.

401 Unauthorized

Check that the Authorization header value is exactly Bearer rs_live_your_key_here — with a space between Bearer and your key, and no extra quotes. Verify the key is active in your Dashboard.

Content-Type errors

The Content-Type: application/json header is required. Without it, the API returns a 400 parsing error even if the body is valid JSON.

Variables not substituted

Make variable syntax ({{N.field}}) is only evaluated inside the Request content field, not inside the URL or header values. If your HTML template is complex, consider building the HTML string in a Tools — Set variable module first, then reference it in the body.

Image URL expires

RendShot image URLs are permanent by default (no expiry unless you configure one). If you need to store the image long-term, download it immediately after generation and upload it to your own storage.

On this page