Guides
How to put a chart where people read, and the n8n workflows that do it for you.
- Charts in emailsHow to put a chart in an HTML email: why Gmail and Outlook need a PNG, retina sizing, dark mode, alt text, size limits, and copy-paste code for HTML, Resend and Nodemailer.
- Charts in Slack from n8n and AI agentsHow to post a chart in Slack: a Block Kit image block with a ChartPNG URL, the image_url and alt_text limits, n8n templates, and how an AI agent sends the chart with MCP or HTTP.
- Funnel chartConversion stages from top to bottom, each as wide as its value, with the share of the previous stage, as a PNG for Slack or email. The funnel preset of ChartPNG with a copy-paste config, a GET URL and a curl example.
- Gauge chartA half-ring gauge with the value big in the middle, filled up to a goal, as a PNG for Slack or email. The gauge preset of ChartPNG with a copy-paste config, a GET URL and a curl example.
- KPI with a sparklineOne number, how it moved, and the trend behind it, as a PNG for Slack or email. The kpi preset of ChartPNG with a copy-paste config, a GET URL and a curl example.
- n8n workflow templates for ChartPNGFour importable n8n workflows that send a Chart.js config to ChartPNG, with the HTTP Request node or as an image URL: a weekly chart to Slack, a weekly KPI report to Slack, a daily chart in an email, and Google Sheets rows to a chart URL.
- Comparison with the previous periodThis week against last week in one PNG, with the percentage change, for Slack or email. The comparison preset of ChartPNG with a copy-paste config, a GET URL and a curl example.
- Ranking chartHorizontal bars from highest to lowest with the leader highlighted, as a PNG for Slack or email. The ranking preset of ChartPNG with a copy-paste config, a GET URL and a curl example.
- Postgres query to a chart in an emailAn n8n workflow that runs a read-only SQL query on a schedule, turns the rows into a ChartPNG image URL and emails it, with a table of the numbers for clients that block remote images.
- Stripe weekly revenue to Slack with n8nAn n8n workflow that reads 12 weeks of paid Stripe invoices every Monday, draws a KPI chart with ChartPNG and posts it to Slack as an image block with alt text. An approximation, not MRR.
- Google Sheets chart to TelegramSend a chart of a Google Sheet to Telegram with n8n. Sheets has no API to export its charts as an image, so the rows become a ChartPNG URL that sendPhoto takes as a URL: no file upload, plus an optional Slack branch.
- Bridges: from where your numbers live to where people readImportable n8n workflows that take numbers from Stripe, Google Sheets or Postgres and put them as a chart in Slack, Telegram or an email, with a ChartPNG URL instead of a screenshot.
n8n templates
Importable workflows. The n8n guide has the steps for each one.
- Weekly chart to SlackEvery Monday at 9 it builds a bar chart, renders it with a POST to ChartPNG and uploads the PNG to a Slack channel.
- Weekly KPI report to SlackEvery Monday at 9 it builds two chart URLs with the report presets, a KPI with a sparkline and this week against last week, and posts one Slack message with both images.
- Stripe weekly revenue to SlackEvery Monday at 9 it reads the last 12 weeks of paid Stripe invoices, builds a KPI chart URL with the kpi preset and posts it to Slack as an image block with alt text.
- Daily chart in an emailEvery day at 8 it builds a line chart and sends an HTML email whose body shows the chart as an image URL.
- Google Sheets rows to a chart URLIt reads the rows of a Data tab, builds one bar chart from them and writes the image URL into a Chart tab.
- Postgres query to a chart in an emailEvery Monday at 8 it runs a SELECT query in Postgres, builds a bar chart from the rows and sends an HTML email with the chart as an image URL and the numbers in a table.
- Google Sheets chart to TelegramEvery Monday at 9 it reads the rows of a Data tab, builds one bar chart URL and sends it to Telegram as a photo by URL, with a disabled Slack branch.