CampaignCanvas 1.1.16

There is a newer version of this package available.
See the version list below for details.
dotnet add package CampaignCanvas --version 1.1.16
                    
NuGet\Install-Package CampaignCanvas -Version 1.1.16
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CampaignCanvas" Version="1.1.16" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CampaignCanvas" Version="1.1.16" />
                    
Directory.Packages.props
<PackageReference Include="CampaignCanvas" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CampaignCanvas --version 1.1.16
                    
#r "nuget: CampaignCanvas, 1.1.16"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CampaignCanvas@1.1.16
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CampaignCanvas&version=1.1.16
                    
Install as a Cake Addin
#tool nuget:?package=CampaignCanvas&version=1.1.16
                    
Install as a Cake Tool

CampaignCanvas

Forms and email marketing for Umbraco — without leaving the backoffice.

CampaignCanvas takes the whole journey from capturing a visitor to sending the campaign and brings it inside Umbraco 17. Build forms, manage submissions, grow mailing lists, design on-brand emails with the native Block Grid editor, and send campaigns, automated digests, and transactional email — one package, one licence, one audit trail. No third-party marketing suite to wire up, no copy-pasting contacts between systems.

It's built natively for the new Umbraco backoffice (Bellissima), so it looks and feels like part of the CMS your editors already know — not a bolted-on iframe.

Why teams choose CampaignCanvas

  • Forms and newsletters, finally together. They share a section, a licence, and an audit log — so a contact form can opt a visitor straight into a mailing list with zero glue code.
  • No per-contact SaaS fees. Your subscribers and submissions live in your own database. Send through the email provider you already trust — SendGrid, Postmark, Mailgun, Resend, or plain SMTP.
  • GDPR-ready from day one. Double opt-in, one-click unsubscribe, consent history, suppression lists, subject-access search, and right-to-erasure are built in — not add-ons.
  • Loved by editors, respected by developers. Drag-and-drop form and email building in the backoffice, backed by a headless API, view components, and pluggable interfaces for the team behind the site.
  • Ready to scale. Engineered for 50,000+ subscribers from the first install, with indexed tables behind every field you'll filter or segment on.

A complete form builder

  • 15 field types — text, email, number, date, dropdowns, star ratings, file uploads, consent checkboxes, and more
  • Multi-step wizard forms with progress indicators
  • Conditional fields that appear and hide based on earlier answers — re-checked on the server, so client-side tricks can't slip past validation
  • A submissions inbox with file downloads, status tracking, charts, and CSV export
  • Spam protection that works quietly: honeypot, time-to-submit heuristics, Google reCAPTCHA v3, and Cloudflare Turnstile
  • An action on every submission — email notifications, autoresponders, webhooks, Slack, Microsoft Teams, and Discord
  • Drop any form onto a page with a single view component, or let editors pick one with the Form Picker property editor

Email campaigns, designed inside Umbraco

  • Compose emails with Umbraco's native Block Grid editor, constrained to an email-safe block set that renders everywhere
  • Reusable brand themes — colours, fonts, buttons, spacing — so every send is on-brand without touching HTML
  • Personalisation with merge fields for any subscriber detail, including your own custom fields
  • Live preview in desktop, mobile, dark-mode, and plain-text — plus one-click test sends before you commit
  • Mailing lists, tags, custom fields, and saved segments with live recipient counts as you build them
  • Schedule sends, require sign-off before anything goes out, and collaborate with per-campaign comments and clear roles (drafter / reviewer / sender)

Newsletters that send themselves

Point a digest campaign at any Umbraco content type, choose a schedule and a minimum number of items, and CampaignCanvas builds and sends the newsletter for you — daily, weekly, or monthly. Ideal for "latest articles" or "new listings" roundups, with an optional curation step so an editor can approve the line-up first.

Deliverability and analytics, built in

  • Open and click tracking, with automatic UTM tagging for Google Analytics or Plausible
  • Per-campaign analytics — opens, clicks, CTR, click-to-open, bounces, complaints, and unsubscribes
  • A pre-send spam-score check flags deliverability problems before you hit send
  • Automatic bounce handling and a global suppression list, so you stop emailing dead addresses
  • First-class adapters for SendGrid, Postmark, Mailgun, and Resend — or any SMTP relay — with bounce and complaint webhooks included

Transactional email too

Confirmation, welcome, unsubscribe, and re-subscribe emails are first-class, fully editable, and rendered with the same personalisation engine as your campaigns — so your automated mail looks as good as your broadcasts.

Try it free

Forms and submissions are free to evaluate — build forms and collect submissions with no licence key at all. The email features (campaigns, newsletters, digests, and transactional mail) require a licence; on localhost and development environments they unlock automatically for a 14-day trial, so you can take the whole platform for a spin before you buy. Purchase and manage your licence at projects.datapad.nl.

Requirements

  • Umbraco 17.x
  • .NET 10
  • SQLite or SQL Server

Install

dotnet add package CampaignCanvas

On first start the package registers its backoffice section, content apps, and runs its schema migrations automatically.

Licence key

See <a href="https://projects.datapad.nl/projects/campaigncanvas" target="_blank" rel="noopener noreferrer">https://projects.datapad.nl/projects/campaigncanvas</a> for licence-key installation instructions.

Support

Questions and support requests: <a href="https://projects.datapad.nl/projects/campaigncanvas" target="_blank" rel="noopener noreferrer">https://projects.datapad.nl/projects/campaigncanvas</a>.

Updates

1.1.16

  • Marketplace listing refresh: the package description and README have been rewritten into clearer, benefit-led copy covering the full forms + newsletter platform, with extra discovery tags (newsletters, email-marketing, gdpr). No functional changes — this release exists to publish the updated listing.
  • Docs — corrected licence-key link: the Licence key section pointed at campaigncanvas.net for installation instructions; it now points at the Datapad customer portal (projects.datapad.nl/projects/campaigncanvas), matching the purchase and support links.

1.1.15

  • Fix — an expired trial could still display as "Active": the License page and banner decided "active" from a cached flag without re-checking the expiry date, so a lapsed trial could show "Active" next to "Expired". An expired trial now correctly reads as inactive — so the genuine licence state, and any activation issue behind it, is no longer hidden.
  • Clearer activation failures: entering a licence key that can't be validated no longer silently reverts to the trial. The page now states the reason — and an unlicensed domain reads "Domain 'X' isn't on this license yet. Add it in the portal at projects.datapad.nl, then click Refresh." instead of a generic message.
  • Diagnostics: when a validation response is rejected as outside the freshness window, the log now records the response's issuedAt and this server's current time, so a clock / time-sync problem on the host is obvious at a glance.

1.1.14

  • Maintenance: licensing reliability and internal housekeeping.
  • Backoffice: the CampaignCanvas dashboard now shows the installed package version, so it's easy to confirm which build a site is running.
  • Licensing: licence validation now reports the running Umbraco and CampaignCanvas versions to the licensing service, so compatibility guidance stays accurate.

1.1.13

  • Fix — newsletter settings page on SQL Server: the migrations that add the preferences-link and subscription-pages columns to the newsletter settings row used ALTER TABLE ... ADD COLUMN ..., which is valid SQLite syntax but invalid on SQL Server (SQL Server's ALTER TABLE ADD does not accept the COLUMN keyword). On SQL Server installs upgrading from 1.1.11 or earlier, the migration silently failed inside the startup upgrader and the newsletter settings page then errored with Invalid column name 'includePreferencesLink' / 'preferencesPageUrl' / 'subscriptionPagesJson'. The migrations now emit the keyword-free ALTER TABLE T ADD col TYPE form, which is valid on both providers. Every other ADD COLUMN migration in the plan got the same correction so future upgrades from intermediate versions don't hit the same trap.

1.1.12

  • Preferences link in campaigns: outbound campaigns can now carry a "manage your email preferences" link in the footer alongside the existing unsubscribe link. Enable it from Newsletter settings and point it at a content page that hosts a preferences form — the link is signed per-subscriber, so the destination form consumes the token and writes back to the right subscription record.
  • Mailing-list checkboxes form field: new field type that renders one checkbox per configured mailing list and stores the ticked ids on the submission. Paired with the existing "Add to mailing list" workflow so a single form can opt a submitter into several lists at once, with the labels captured at edit-time so renames don't break public pages.
  • Resubscribe after unsubscribe: the unsubscribe-success page now offers a one-click resubscribe path back into the same list. The link is a signed, single-purpose token (separate from the unsubscribe token) so an accidental unsubscribe is reversible without re-confirming via double-opt-in.
  • Editable copy for lifecycle pages: every subscriber-facing page served by the newsletter controller — confirm-success, unsubscribe form + success, resubscribe form + success, invalid-token — now has editable heading / body / button-label slots in Newsletter settings. Blank slots fall through to the built-in defaults so editors can override only the strings they care about. The {listName} placeholder is substituted at render time.
  • Fix — emails referencing https://localhost: logos, unsubscribe, preferences, open-pixel, and click-redirect URLs in dispatched campaigns now resolve to your public host. The background send worker has no HTTP context to derive a base URL from, so the public URL builder now falls back to Umbraco's WebRouting:UmbracoApplicationUrl configuration. Configure Umbraco:CMS:WebRouting:UmbracoApplicationUrl in appsettings.json for this to take effect.

1.1.11

  • Licensing: licence validation now talks to the Datapad Licensing service (projects.datapad.nl). All purchase, support, and "manage your licence" links route through the customer portal at projects.datapad.nl/projects/campaigncanvas.
  • Hardening: the on-disk licence cache stores the raw signed envelope and verifies its Ed25519 signature on every load. Tampered cache files are discarded; legacy plaintext caches are migrated transparently.
  • Backoffice: swept deprecated Umbraco backoffice APIs (auth.getLatestToken(), UmbPropertyValueChangeEvent) so the package stays compatible with upcoming Umbraco releases.

1.1.10

  • Fix: custom Block Grid components in newsletters now render in the spot you placed them. The newsletter dispatcher sets a CampaignCanvas.IsNewsletterRender ViewData flag so host partials can emit table-row markup (<tr><td>…</td></tr>) for the email's outer table while keeping their normal page markup elsewhere. Previously, partials that emitted non-table HTML were hoisted out of the email's outer <table> by the browser and appeared above the email card.

1.1.9

  • Fix: trial countdown now persists across app restarts and the 24-hour licence-cache refresh, so the banner correctly ticks down from 14 days instead of re-anchoring to "now" on every refresh.
  • Hardening: the persisted trial-state file is HMAC-signed, so manual edits to the start date are detected and the trial falls back to unlicensed instead of silently extending.

Licence

This package is licensed under a commercial End User License Agreement; see LICENSE.txt. Redistribution, reverse engineering, and circumvention of the licence-key check are prohibited.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.3.1 0 10/5/2026
1.3.0 42 10/2/2026
1.2.8 108 9/23/2026
1.2.7 107 9/15/2026
1.2.6 130 8/27/2026
1.2.5 143 7/31/2026
1.2.4 137 7/15/2026
1.2.3 139 7/14/2026
1.2.2 133 7/14/2026
1.2.1 143 7/14/2026
1.2.0 143 7/9/2026
1.1.19 152 6/18/2026
1.1.18 132 6/10/2026
1.1.17 136 6/9/2026
1.1.16 135 6/2/2026
1.1.15 136 6/1/2026
1.1.14 134 5/29/2026
Loading failed