Production block

Dual CTA

Two side-by-side call-to-action buttons for comparison or primary and secondary actions.

ButtonsLifecycle

Use this block when

Use when readers need a clear primary action and a lower-friction secondary path.

Typically appears in

After the decision point, where the reader needs a clear next action.

Why it exists

To reuse a production-tested email section without starting from a blank file.

Preview

Rendered production artefact for workflow review before handoff.

Get the production pack
Dual CTA rendered email block preview

Production role

Where this block earns its place

Treat the component as one production section inside a larger message system. It should support the send goal, survive handoff, and remain easy to review before compilation.

Lifecycle

For reusable email sections that support product, customer, and operational messages.

Workflow context

Typically used in

These relationships help buyers understand the block as part of a send, not as an isolated catalogue item.

Implementation

Practical QA before handoff

Keep the checks short and action-oriented. The goal is to help teams decide whether this block is ready to enter a workflow.

  • Review every CTA href after the ESP rewrites or tracks links.
  • Confirm image assets are absolute HTTPS URLs before handoff.
  • Check the mobile preview before placing this block into a full workflow.
  • Make the difference between the two actions explicit in the button labels.
  • Keep button order logical so stacked mobile layouts still read clearly.
  • Gmail (Web + Mobile): Primary structure, spacing, and CTA rendering hold up in Gmail web and mobile views.
  • Outlook Desktop (Windows): Outlook can compress side-by-side button spacing in narrow panes.

Source and output

MJML and HTML remain available

Source stays below the preview and workflow context. Copy MJML when assembling a system, or compiled HTML when preparing ESP handoff. Template Hedgehog Pro includes the full offline archive for teams that need the complete system locally.

Block assembly: place this section inside the same <mj-body> as your other production blocks, then stack sections in send order.

Editable source

Block MJML

Section-only MJML for assembling an email from multiple reusable production blocks inside a shared project.

Formatting code preview...

Compiled output

Block HTML

Component-only compiled markup for block-level inspection and HTML assembly workflows.

Formatting code preview...