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.

Email stat counter rendered by DynaMail: weekly signups total on a dark card

A real render produced by DynaMail’s image pipeline.

Create a free account

Free while in beta · No credit card required

How it works

  1. 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. 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. 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 formats

Design, 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.