2 Introduction
If your OpenEMM instance has been already installed and you want to upgrade the current version, you may directly jump to chapter OpenEMM Updates and Upgrades.
2.1 Purpose of OpenEMM
OpenEMM is a web-based enterprise application for email marketing, email newsletters, service emails (transaction emails and event or time triggered emails), marketing automation and lead management. It can be operated via a browser interface with great usability, or in headless mode via its SOAP or REST API. To summarize it, OpenEMM is a tool for customer relationship management by email.
OpenEMM offers tons of features for professional marketing users, among them:
- a console based administration tool for checks, configuration, updates and backups (OST)
- a responsive web user interface with great usability and different languages
- a mail template management system
- a visual web form builder
- mailing, template and web forms import and export to load and exchange prepared mailing templates and web forms
- a graphical workflow manager to create complex campaigns with drag&drop
- individual and (GDPR compliant) anonymous tracking of mail openings, link clicks and deep tracking
- automated bounce management
- graphical realtime statistics with lots of KPIs and configurable reports (PDF and CSV)
- self-defined target groups based on recipient profiles, recpient's status and behaviour (created visually or with SQL-like syntax)
- a scalable multiqueue mail backend for maximum sending performance
- flexibly configurable data import and export with extensive reporting of results
- predefined triggers that can be accessed by HTTPS and can be registered as webhooks for 3rd party systems
- a scripting feature to enhance the functionality of OpenEMM with customized triggers
- sophisticated management of users, user roles and user rights
- an audit-proof searchable and exportable user activity log
- a system status menu with helpful info and configuration options for OpenEMM administrators
- an extensive set of SOAP webservices to manage OpenEMM from remote
- a feature-rich RESTful API to manage OpenEMM from remote
- a callback API to register webhooks for notifications of 3rd party systems about various mailing and recipient events
- connectors for integration plaforms Make and N8N
The GUI of OpenEMM works with web browsers Google Chrome, Mozilla Firefox and Microsoft Edge. To give you an impression of the web-based user interface of OpenEMM, the following two screenshots illustrate the configurable dashboard and how to build workflows and campaigns with OpenEMM:

OpenEMM dashboard with latest mailings, planning calendar, status of active campaigns,etc.

Building of workflows and campaigns with OpenEMM's graphical drag&drop editor
2.2 General Architecture
OpenEMM consists of several independent services for scalability. It runs on top of a well proven Open Source software stack without any further dependencies to any commercial software:
- Red Hat Enterprise Linux (RHEL) or Suse Linux Enterprise Server (SLES) or compatible
- Postfix
- MariaDB
- Java OpenJDK
- Apache Tomcat
- Python 3
- Node.js
2.3 Open Platform Design
A software like OpenEMM must not operate as an island, but it should be capable to be integrated with third party systems like a CRM or CMS software, an e-commerce shop, an ERP platform or a business intelligence software. Therefore, OpenEMM was designed to be a very open and flexible platform with lots of interfaces and extension capabilities. It can be used headless, too.
OpenEMM offers not only a highly customizable graphical interface (GUI) for its users, but also an easy to use URL API für URI tunneling and a rich SOAP webservice interface as well as a RESTful API to be used by third-party software. For outbound communication OpenEMM provides a callback API for webhooks to notify third-party software about various events.
You may also use integration platforms Make or N8N to connect and integrate OpenEMM with other applications. The OpenEMM Wiki (https://wiki.openemm.org) offers information on OpenEMM connectors for these platforms in chapter 6 Integrations.
2.4 Architecture Components
The OpenEMM software is not a monolith, but it is divided into several independent backend and frontend services (software). Communication between the various OpenEMM services is done via the database, i.e. the database is the hub of the application.
To gain a better understanding of the purpose of the various backend and frontend services, this is a summary of their main jobs:
- Backend: The backend services read mail-related data from the database, generate the individual emails, create mail previews and send the mails out into the Internet. Backend services also register instant bounce messages and collects reponses (like autoresponder and mail replies by recipients) and delayed bounce data to update the database with results from the mail sendings. Backend services send out autoresponder mails defined in the OpenEMM GUI and forward all mail replies not filtered out to a predefined destination (feedback address).
- GUI (part of frontend): This service provides the browser-based user interface of OpenEMM.
- Statistics (part of frontend): This service generates statistics (tables with numerical values as well as visual charts and diagrams) for the OpenEMM GUI and creates reports in PDF and CSV format for download.
- Webservices (part of frontend): This service provides the webservice interface of OpenEMM.