---
title: "Chartly Integration"
description: "Render chart images from data without a browser or charting library, using a full Chart.js configuration or a quick preset. Agents attach a real chart to an email, a Slack message, or a PDF report."
url: https://flowrunner.ai/integrations/chartimagegenerator
date_modified: 2026-08-07T17:20:23-07:00
---

# Chartly

[Developer Tools](https://flowrunner.ai/integrations/category/developer-infrastructure)

Render chart images from data without a browser or charting library, using a full Chart.js configuration or a quick preset. Agents attach a real chart to an email, a Slack message, or a PDF report.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 9 actions · API key · available

[Chartly website](https://chartly.dev/) · [Platform Documentation](https://chartly.dev) · Capability data verified 2026-08-12

1.  The board pack build starts on the second business day of the month
2.  Agent calls Get Service Status to confirm the renderer is reachable before submitting a run
3.  Agent pulls the revenue, gross margin, and headcount series from the warehouse
4.  Agent confirms each label list and value list are the same length so no bar lands under the wrong quarter
5.  Agent calls Create Multi Series Chart for this year against last year and Render Chart for the two exhibits that need a full Chart.js configuration
6.  Agent assembles the draft pack and posts it to the finance channel
7.  One keyed render fails and the only working path is the watermarked public endpoint, so the agent asks the CFO instead of substituting it

## What This Integration Enables

Chart Image Generator gives a flow two doors into the same renderer, and the second one is the interesting one. Render Chart takes a full Chart.js 4.x configuration, including mixed-type charts, for cases where the exhibit has to look exactly a certain way. The quick chart actions take a title, a comma-separated list of labels, and a comma-separated list of values, and produce a bar, line, pie, or multi-series chart with no configuration object anywhere. That means the person who decides what the chart shows can be the analyst who owns the numbers rather than the engineer who owns the flow, which is a different claim about who this connector is for than a Chart.js-only API makes.

Output is equally deliberate. Render Chart returns the image bytes inline and stores them in FlowRunner file storage, synchronously, with no polling loop to build. Create Chart URL instead returns a permanent short URL that serves the cached image, for when a dashboard or an email needs a stable link rather than a file, and Download Hosted Chart pulls any such link back into storage, including links created outside the connection. Get Service Status is a keyless health check the flow can run before committing to a batch. FlowRunner agents assemble the reporting artifact end to end and stop at the one place where the output can be technically successful and still wrong to ship.

### Without FlowRunner

**Charts made by hand**: Someone rebuilds the same exhibits in a spreadsheet every reporting cycle

**Charting code to maintain**: Producing a chart from a flow means standing up a browser and a charting library

**Silent substitutions**: A render fails and whatever came back second gets used, watermark and all

### With FlowRunner

**Charts from the query**: The exhibit is rendered from the result set that produced it, on the schedule it is due

**No browser in the loop**: The flow calls a rendering action and gets image bytes back inline

**Fallbacks are surfaced**: A degraded render is raised to a person rather than quietly dropped into the pack

## Use Case Scenarios

### The monthly board pack

An agent queries [Snowflake](https://flowrunner.ai/integrations/snowflake) for the closed month, renders the recurring exhibits with the quick chart actions and the two custom ones with Render Chart, and assembles the draft pack. Before rendering, it checks that every labels list and values list match in length, because a mismatch does not error, it shifts every subsequent point one position and produces a chart that is plausible and wrong. The draft posts to the finance channel in [Slack](https://flowrunner.ai/integrations/slack) with the underlying figures alongside each exhibit, so a reviewer can check the chart against the number rather than trusting the picture.

### A metrics chart attached to a scheduled email

An operations report is maintained in [Google Sheets](https://flowrunner.ai/integrations/google-sheets). Weekly, the agent reads the range, passes the labels and values to Create Line Chart, and attaches the rendered image to a send through [Postmark](https://flowrunner.ai/integrations/postmark). The recipients read the chart in their inbox, in a client that will never run a charting library. No dashboard login, no export step, no analyst rebuilding the same line every Friday.

### Live chart links inside an internal wiki

A team keeps its operating page in [Notion](https://flowrunner.ai/integrations/notion). Rather than pasting a stale export, the agent calls Create Chart URL after each nightly refresh and writes the short URL into the page, so the embedded exhibit serves the cached render of the latest data. When the team needs a fixed copy for a specific meeting, a separate step calls Download Hosted Chart to freeze that render into file storage and attaches it to the meeting notes. The page stays live, the minutes stay fixed, and nobody has to remember which is which.

## Human-in-Loop Highlight

This connector exposes two rendering paths that produce output of the same shape and are not the same thing. Render Chart runs against the keyed endpoint and produces clean output. Render Watermarked Chart runs against the public endpoint that needs no API key, and every render it returns carries a Chartly watermark, with the endpoint limited to 60 uncached renders per hour per IP. It exists so a developer can preview a chart during build without burning a key, and it is genuinely useful for that. It is also, if a flow is written carelessly, a fallback that turns a board exhibit into a vendor advertisement.

So the agent does not treat those two as interchangeable. When the keyed render fails, it does not retry against the public endpoint and carry on. It stops and posts what it found: "Gross margin by segment failed on the keyed endpoint, error 502, two retries. The public endpoint renders it, but the output carries a Chartly watermark and this pack goes to the board on Thursday. Ship the pack with the watermarked exhibit, hold the pack until the keyed endpoint recovers, or send it with that exhibit omitted and a note?" These are [automation exceptions](https://flowrunner.ai/concepts/automation-exceptions) in the strict sense: the flow did not error, it produced something. The question of whether that something is acceptable on a document with the company's name on it belongs to the person who signs it, and the agent's job is to make sure they are asked before the file leaves rather than after a director notices.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

9 actions

### Chart Rendering

4

-   **Render Chart** Renders a chart from a full Chart.js configuration and stores it in FlowRunner file storage. Supports every Chart.js 4.x type including bar, line, pie, doughnut, radar, polarArea, bubble, and scatter, plus mixed-type charts. Rendering is synchronous and the bytes come back inline, so the flow does not poll. Width and height are required, each between 1 and 2000 pixels.
-   **Create Chart URL** Renders a chart from a full Chart.js configuration and returns a permanent short URL serving the cached image instead of the bytes. Used when an email, dashboard, or wiki page needs a stable link. The resulting URL is publicly accessible without an API key.
-   **Download Hosted Chart** Downloads the image behind a chart short URL and stores it in FlowRunner file storage. Takes the chart identifier from the end of the short URL, requires no API key, and works for links created outside this connection. Used to freeze a live link into a fixed artifact.
-   **Render Watermarked Chart** Renders through the public endpoint that needs no API key, accepting either a full Chart.js configuration or a simple chart type with comma-separated labels and values. Every render carries a Chartly watermark and the endpoint is limited to 60 uncached renders per hour per IP, so production output should use Render Chart. Charts accept up to 500 data points, and dimensions are logical pixels rendered at twice the scale.

### Quick Charts

4

-   **Create Bar Chart** Builds a titled bar chart from comma-separated labels and values with no Chart.js configuration, returning hosted chart, download, and preview URLs. Used for single-series comparisons such as revenue by quarter or signups by channel, with legend and grid lines toggled independently.
-   **Create Line Chart** Builds a titled line chart from comma-separated labels and values, returning hosted chart, download, and preview URLs. Used for trends over time. The line can be filled into an area chart, its points hidden, and its curvature adjusted.
-   **Create Pie Chart** Builds a titled pie chart from comma-separated labels and values, returning hosted chart, download, and preview URLs. Used for proportions of a whole such as market share or budget allocation, with explicit slice colours and legend placement.
-   **Create Multi Series Chart** Builds a titled bar or line chart comparing up to three named series over the same labels. Used for side-by-side comparisons such as this year against last year, or revenue against costs against profit. Only the first series is required.

### Account

1

-   **Get Service Status** Reports the health of the rendering service including build hash and current key-value store latency, with no API key required. Used as a preflight connectivity check before a flow commits to a batch of renders.

## Frequently Asked Questions

### What can FlowRunner do with Chartly?

FlowRunner agents can run Render Chart, Create Chart URL, and Download Hosted Chart in Chartly, plus 6 more actions.

### Does connecting Chartly to FlowRunner require OAuth?

No. Chartly connects to FlowRunner with an API key, no OAuth flow required.

### Can Chartly trigger a FlowRunner workflow automatically?

Chartly doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at Chartly?** This integration exposes Chartly to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/chartimagegenerator. Site index: https://flowrunner.ai/llms.txt
