umContactManager 1.0.0
See the version list below for details.
dotnet add package umContactManager --version 1.0.0
NuGet\Install-Package umContactManager -Version 1.0.0
<PackageReference Include="umContactManager" Version="1.0.0" />
<PackageVersion Include="umContactManager" Version="1.0.0" />
<PackageReference Include="umContactManager" />
paket add umContactManager --version 1.0.0
#r "nuget: umContactManager, 1.0.0"
#:package umContactManager@1.0.0
#addin nuget:?package=umContactManager&version=1.0.0
#tool nuget:?package=umContactManager&version=1.0.0
Contact Manager
An Umbraco backoffice package for managing contact form submissions, email history, and related CRM workflows. It centralizes incoming leads, spam filtering, outbound email, notifications, and optional AI assistance — with shared validation and security for built-in forms, same-site custom UIs, and external API sources.
Features
Backoffice CRM
- Dedicated Contacts section with Incoming, Archived, Spam, Email History, and Settings views.
- Contact list with search, status and source filters, date range, sortable columns, pagination, and persisted grid layout.
- Bulk actions — send email, archive, and unarchive — plus inline status changes per contact.
- Contact details workspace with full submission history, email thread, compose/reply modal, and attachment handling.
- New activity badges on section tabs for unviewed messages and inbound emails.
- IP → GeoIP lookup popover on submission IP addresses (configurable Simple or Advanced provider).
Lead intake
- Shared submission pipeline for built-in Contact Manager Form, same-site custom forms, and external / remote lead sources (
X-API-Key). - Built-in Contact Manager Form block for Block List / Block Grid — zero-code forms on content pages with a drag-and-drop field picker.
- Same-site custom form endpoint for your own HTML/Razor markup on the Umbraco site (schema + antiforgery helpers included).
- External JSON API for other sites, landings, and headless or backend clients — multi-site intake via configurable lead sources.
- Inbound email via Postmark webhooks — customer replies create or update contacts and thread into the email history.
- Automatic contact creation from inbound emails, with configurable ignored sender domains.
Form fields and validation
- Configurable form field catalog — Text, Url, Select, and File field types with labels, tokens, required flags, and per-channel aliases.
- Standard fields built in: Name, Email, Company, Message, PageUrl, Site — plus page tracking (landing page, page history).
- Field-level controls for backoffice visibility, email token inclusion, and AI context inclusion.
- Shared field catalog allowlist — unknown custom keys are rejected across all channels.
Security and spam protection
- Configurable payload limits — request size, field length, message length, file count, and allowed extensions.
- Rate limiting per IP (with support for
X-Original-Client-IPbehind gateways). - Honeypot field with soft-accept behaviour (spam is silently discarded).
- CAPTCHA hooks — host registers
IContactSubmissionCaptchaVerifierwhen CAPTCHA is required. - Allowed origins check for browser-based submissions.
- Spam threshold — auto-marks contacts as Spam after repeated submissions from the same email.
- Rejected and Spam contacts are blocked from receiving new submissions.
- Outbound email via SMTP (Umbraco config) or Postmark, with delivery tracking through Postmark webhooks.
- Tokenized notification and thank-you email templates (HTML, with custom field tokens).
- Compose and reply from the backoffice — rich text editor, attachments, and reply threading to inbound emails.
- Email history view with delivery status badges (Queued, Sent, Delivered, Bounced, Opened, Spam complaint).
- Attachment storage — local disk or Amazon S3 (with configurable bucket, region, and key prefix).
Notifications
- Configurable notification providers — Telegram built in (bot token + chat ID).
- Event-driven alerts for form submissions, customer replies, and direct email leads.
- Customizable message templates and test notification sending from Settings.
AI assistance
- Optional AI reply generation for outbound emails (Claude or OpenAI), with configurable reply instructions.
- Lead intelligence — AI-powered research block with risk scoring, company/person info, and source references.
- Auto-research for new contacts and optional auto-archive for low-quality leads.
- Per-field control over which custom fields are included in AI context.
Multi-site / multi-channel
- Internal source configuration for same-site and built-in forms (name + site ID).
- External lead sources with per-source API keys (hashed storage, one-time display on create/regenerate), domains, and site IDs.
- Source-based filtering across all list views and contact details.
Requirements
- Umbraco CMS
17.x - .NET
10.0
Installation
Install the package into your Umbraco project:
dotnet add package umContactManager
The package registers itself through an Umbraco composer, runs its database migrations on startup, and adds a Contacts section to the backoffice.
⚠️ After installing, grant the section to your user group. Umbraco does not show a newly installed section to anyone — not even administrators — until it is added to a user group's allowed sections. Go to Settings → Users → User groups → your group (e.g. Administrators) → Sections, tick Contacts, and Save. Reload the backoffice (Ctrl-F5) and the section will appear. If you don't do this, the section stays hidden and it looks like the package didn't install.
Configuration
Open Contacts → Settings and configure at least:
- Form fields — custom field catalog (optional; standard fields are built in)
- Security — payload limits, rate limiting, honeypot, spam threshold, CAPTCHA
- Internal source — required for same-site / built-in forms
- External lead sources — required for
POST /api/contact/submit(API key) - Email / notifications / AI as needed
Integration details for built-in form blocks, same-site clients, and the external API are in docs/integration.md. Migration notes are in docs/migration.md.
Built-in Contact Manager Form
After enabling Internal source, add the Contact Manager Form element type (contactManagerForm) to your Block List or Block Grid allowed blocks. On a content page, add the block, pick fields and order in the property editor, and publish. The form posts to /api/contact/form/submit with antiforgery — no custom controller required.
Public helpers for same-site custom clients:
GET /api/contact/form/schema— effective field catalog plus honeypot / CAPTCHA flagsGET /api/contact/form/antiforgery— antiforgery token
External lead sources
For submissions from other sites or backend clients, create a lead source in Settings and use POST /api/contact/submit with the X-API-Key header. Each source has its own API key, site ID, and optional domain allowlist. File uploads are supported on the same-site form endpoint only.
Email provider
Choose SMTP (uses Umbraco Umbraco:CMS:Global:Smtp settings) or Postmark (server token, from address, message stream). When using Postmark, configure webhook credentials for delivery tracking and inbound email processing.
AI replies and lead intelligence
Enable AI in Settings, choose OpenAI or Claude, and configure your API key and model. Optional toggles: auto-research new contacts and auto-archive low-quality leads.
ℹ️ When you use AI features, selected contact context is sent to the AI provider you configure, and that provider's own API usage charges apply. You are responsible for determining whether that content contains personal data and for obtaining any consents required before processing it.
License
umContactManager is free to use — no paid license key is required. It is not open source.
Copyright © 2026 OSKI solutions OÜ. All rights reserved.
See LICENSE.md for the full terms. Third-party service costs (for example AI providers, email delivery, or object storage) are not included and remain your responsibility.
Support
Please connect with me (Kyrylo Osadchuk) if you need assistance with AI or Umbraco consulting services:
| Product | Versions 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. |
-
net10.0
- AWSSDK.S3 (>= 4.0.18.1)
- MailKit (>= 4.17.0)
- Postmark (>= 5.3.0)
- Umbraco.Cms.Core (>= 17.0.0 && < 18.0.0)
- Umbraco.Cms.Infrastructure (>= 17.0.0 && < 18.0.0)
- Umbraco.Cms.Web.Common (>= 17.0.0 && < 18.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.