Widgets
One number, always current, in every inbox.
Show a signup total, donation count, or order number as an image. Save the design once, then keep the number current from Zapier, Make, n8n, your own service, or a public JSON or CSV source. DynaMail renders the newest accepted value when the image is requested; email clients may reuse a cached image.

A real render produced by DynaMail’s image pipeline.
Free while in beta · No credit card required
How it works
1
Save a Stat Counter
Pick a preset, set the label and starting number, and save. The embed URL is fixed from this point.
2
Choose how it stays current
Push values from Zapier, Make, n8n, or any HTTP client through the Automation card, or connect a public JSON or CSV source in the editor.
3
Embed the bare image URL
Leave value out of the URL so the image can use the automatic number. Add ?value= only where one campaign or recipient should override it.
The finished widget is a plain image URL inside a link — paste it into your template, or your email editor’s image block, like this:
Example embed snippet
<img src="https://img.dynamail.io/widgets/YOUR-WIDGET-ID/render.png" width="340" height="184" alt="Weekly signups stat counter showing the current total" />YOUR-WIDGET-ID is a placeholder — every widget you create gets its own id. The file extension requests the output format — gif, apng, webp, or png. Depending on the design, an animated widget may be served in an animated format even when a static extension is requested.
Each image request renders the newest accepted pushed value, or the connected source value, or the saved number when neither is present. Email clients and their image proxies may cache the PNG after fetching it. No script, no custom HTML, nothing for your email platform to strip out.
What it’s for
- Community and newsletter updates — members joined this week, without editing the email
- Fundraising — a donation total that moves between sends and after them
- Commerce — orders shipped, seats left, or units sold from your order system
- Product launches — waitlist signups pushed from a form tool or CRM
How the number stays current
Pushed values
An accepted push replaces the displayed number immediately for new image requests. Older or repeated events are ignored by source version, so retries are safe.
Connected sources
DynaMail reads a JSON or CSV source on the first image request after its refresh window; if the source is unavailable it keeps the last good value.
Cleared or never connected
Clearing a pushed value returns the counter to its saved number. A never-connected counter always shows the saved number.
Caching
Counters with a pushed value or a CSV source are served with no-store headers; a JSON source stays cacheable for a short window bounded by its refresh tier. Email clients and image proxies may still reuse an image they already fetched.
What the URL can change
The render URL can override the displayed number for one email or recipient; it cannot change the saved design or the connected source.
?value=…A per-URL number that wins over the live or saved value?start=…Count-up start for animated formatsDesign, label, and source settings live in the saved widget; the URL cannot alter them.
Frequently asked questions
How do I add a live number to an email?
Design the counter in DynaMail's dashboard, save it, and paste its image URL into an <img> tag. Any email tool that shows images shows the counter — no script or custom HTML involved.
How do I update the number from Zapier, Make, or n8n?
Open the saved counter's Automation card, copy its endpoint, and send a PUT request with the new integer and a source version from your platform. The next image request renders the accepted value; the embed URL never changes. Public recipes are on the Integrations page.
Can the counter read from my own data?
Yes. Connect a public JSON or CSV source in the dashboard and DynaMail reads it on the first image request after the refresh window expires. A counter uses either a connected source or pushed values, not both at once.
Does it work in Outlook and Gmail?
Yes — the widget is a standard image, so it displays wherever images do. The URL extension requests the format (render.gif, render.png, render.webp, render.apng); depending on the design, an animated widget may be served in a compatible animated format even when a static extension is requested. Stat counters are static PNG by default; if you use a count-up animation, clients that freeze animation show the final value.
Start from a preset
Free while in beta · No credit card required
More widgets for email
Create a free stat counter
Set a number and get an email-ready PNG without signing up.
How-to: Live points balance in Klaviyo
Step-by-step, checked against the platform’s own help pages.
How-to: Live waitlist spot in Mailchimp
Step-by-step, checked against the platform’s own help pages.
How-to: Live waitlist ticket in Kit
Step-by-step, checked against the platform’s own help pages.
How-to: Live waitlist ticket in Mailchimp
Step-by-step, checked against the platform’s own help pages.
How-to: Waitlist ticket merge tags
Step-by-step, checked against the platform’s own help pages.
Email progress bars, connected to your goals.
Add a progress bar to any email as a plain image URL. Connect a live JSON source or personalize values per recipient. No code. Free while in beta.
Gauge charts in email, connected to your metrics.
Put a gauge chart in any email as a plain image URL. Show scores, usage, or goals from a live JSON source or per-recipient values. Free while in beta.
Put your progress in perspective.
Compare personal stats with an average or a previous period in a branded email image.
Sparklines in email, connected to your data.
Embed a sparkline chart in any email as a plain image URL. Connect a live JSON source or supply trend data per recipient. Free while in beta.
Every widget type is included on the free beta plan — see pricing, or browse ready-made email templates.