Widgets

Show how your numbers change over time.

Build a dated chart with two to one hundred observations. Show trends, compare revenue sources, or display open, high, low and close values in one email image.

Line chart of fourteen daily trial counts with a welcome email update marked on June 8

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

    Choose the chart and rows

    Start with trial starts, revenue mix or synthetic market sessions, then edit the dated observations.

  2. 2

    Connect a source if needed

    Select a CSV or JSON row window, map each role, and validate the source before applying it.

  3. 3

    Add context and copy the image

    Set the title, number formatting and annotations, save the chart, then copy its email embed.

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="360" height="400" alt="Daily trial starts with an annotated welcome email update" />

YOUR-WIDGET-ID is a placeholder — every widget you create gets its own id. This widget uses a static PNG for broad email-client support. Use descriptive alt text so readers can understand the image when images are off or a screen reader reads the email.

The chart uses valid connected observations, with saved rows as fallback. Its caption always identifies the last supplied date. 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

  • Trial starts — follow daily signups and mark a welcome email update
  • Revenue mix — compare weekly sources with absolute or percentage stacks
  • Market sessions — show supplied open, high, low and close observations

Source refresh and observation dates

  • Refresh follows your source tier

    A usable previous snapshot can remain visible after a fetch failure. Without one, the chart uses its authored rows. The displayed observation date is never replaced with today.

  • Email clients may cache images

    Image delivery and client caching can affect when a recipient sees refreshed observations.

A saved chart with formatting options

Use the saved render URL and choose presentation options when copying the embed.

?locale=de-DEFormat chart numbers and dates with a supported locale.
?pixelRatio=2Render at twice the logical dimensions for a sharper image.
?scheme=darkChoose a fixed dark appearance for the image.

Public render URLs reject row, record and dataset overrides.

Frequently asked questions

Which chart styles are available?

Choose a line chart with up to three series, stacked bars with two or three series, candlesticks, or OHLC bars. Stacks can show signed amounts or percentages of nonnegative values.

How should dates and values be supplied?

Use one row per observation, with a YYYY-MM-DD date followed by numbers. Dates must be unique and increasing. Missing periods keep their elapsed spacing; the chart does not fill, sort or aggregate rows.

Can I connect a live CSV or JSON source?

Yes. Choose two to one hundred rows and map the date, then each value series or the open, high, low and close fields. Keep saved rows as a fallback if the source is unavailable or invalid.

Can I annotate an event or campaign window?

Add up to two dated events or ranges. Numbered marks point to labels below the plot. An annotation outside the current data window is hidden and does not change the chart scale.