Open-source Email & SMS marketing
you host yourself
Full control over data, ready-made integrations, AI for content creation, automation and webhooks. Set up in Docker in 5 minutes.

AI Campaign Architect
Strategic Email + SMS campaign planner that creates your plan, logic, and forecasts — before you send your first message.
Business context → Audience → AI Strategy → Forecast & Export
Message timeline, goals (education/sales/reminder) and IF/THEN logic
Industry benchmarks + sliders that calculate ROI in real-time

Why NetSendo?
Built for developers who want control, privacy, and flexibility without sacrificing modern features.
How it works
Deploy in Docker
Run docker compose up. NetSendo starts in seconds with Postgres and Redis included.
Add Mailbox
Connect your SMTP server, Gmail, or API provider like SendGrid/Mailgun.
Plan & Launch
Design campaign strategy in Campaign Architect, export to campaigns and launch.
Let AI write your
campaigns in seconds
Stop staring at a blank screen. Netsendo's AI assistant can generate engaging subject lines, write full email body content, and even take voice dictation to craft your message.
Multi-Model Support
Use OpenAI GPT-4o, Anthropic Claude 3.5, or Google Gemini. Your API key, your rules.
Voice Dictation
Just speak your ideas. The AI will transcribe and format them into a professional newsletter.

┌─────────────────┐ STDIO ┌─────────────────┐
│ Claude/Cursor │ ◄────────────► │ MCP Server │
│ (AI Client) │ │ (Docker/npx) │
└─────────────────┘ └────────┬────────┘
│
HTTP/S
│
┌────────▼────────┐
│ NetSendo │
│ (Your inst.) │
└─────────────────┘Supported AI Clients
Example query
"Show my mailing lists and add a new subscriber jan@example.com to Newsletter"
Manage NetSendo with
natural language
Connect Claude, Cursor, or VS Code to your NetSendo instance. Ask questions, manage subscribers, and send messages — all through conversation with AI.
Natural language
Ask 'How many subscribers do I have?' or 'Send an email to John'.
No code required
No need to know the API — AI handles it for you.
Real-time operations
Direct operations on your NetSendo instance.
Experience NetSendo Live
Don't just take our word for it. Log in to our live demo instance and explore the platform's capabilities firsthand.
This is a public demo instance. Data is reset every 24 hours.
Connect with your tools
NetSendo plays nicely with the tools you already use. Orchestrate workflows with n8n and connect any AI model.
Latest Updates
View all releases- Automatic Telegram webhook registration when saving bot token in Brain settings.
- Manual "Set Webhook" button and status feedback in Brain settings UI.
- New route api.telegram.set-webhook for frontend webhook management.
- Brain agent prompts now include current date/time in user's timezone (from User.timezone).
- Brain system prompt now defaults to the user's locale language (from User.locale) with auto-switch when user writes in a different language.
- Brain campaign execution now returns detailed step-by-step reports instead of just a completion count.
- NetSendo Brain — Dashboard Status Widget:
- Status Widget: Added a new widget to the main Dashboard right sidebar displaying Brain's status, work mode, and knowledge base stats.
- Quick Chat: Integrated quick chat input directly in the dashboard widget for asking questions to Brain without navigating away.
- Real-time Status: Widget fetches live data via new /brain/api/status endpoint (work mode, knowledge count, telegram connection).
- Localization: Full translations for the widget in PL, EN, DE, ES.
- Telegram Marketplace Integration:
- Multi-Language Campaign System:
- Database: Added language column to subscribers table. Created message_translations table for storing per-language message content (subject, preheader, content).
- Subscriber Language Preference: Subscribers can now have a preferred language set via Create/Edit forms, public preferences page, and CSV import.
- Message Translations UI: Full translation management in Message Create with language tabs, add/remove translations, copy from default, and per-language subject/preheader/content editing.
- Language-Aware Sending: SendEmailJob resolves language-specific content before sending, with fallback to default language.
- Subscriber List: Added sortable "Language" column to the subscriber table (hidden by default) with globe badge display.

