The GitHub version is recommended for development or testing. Production package ready for install with all the libraries is at https://www.mautic.org/download.
This is a simple 3 step installation process. You'll want to make sure you already have Composer available on your computer as this is a development release and you'll need to use Composer to download the vendor packages.
Step 1 | Step 2 | Step 3 |
Download the repository zip Extract this zip to your web root. |
Run the following command to install required packages.composer install
|
Open your browser and complete the installation through the web installer. |
Get stuck? No problem. Check out general troubleshooting and if it won't solve your issue join us at the Mautic community for help and answers.
Installing from source is only recommended if you are comfortable using the command line. You'll be required to use various CLI commands to get Mautic working and to keep it working. If the source and/or database schema gets out of sync with Mautic's releases, the release updater may not work and will require manual updates. For production the pre-packaged Mautic available at mautic.com/download is recommended.
Also note that the source outside a tagged release should be considered "alpha" and may contain bugs, cause unexpected results, data corruption or loss, and is not recommended for use in a production environment. Use at your own risk.
- Mautic uses Git as a version control system. Download and install git for your OS from https://git-scm.com/.
- Install a server, PHP and MySql to be able to run Mautic locally. Easy option is _AMP package for your OS.
- Install Composer, the dependency manager for PHP.
- Install NPM.
- Install Grunt.
- See Mautic requirements.
- PHP modules:
- required:
zip
,xml
,mcrypt
,imap
,mailparse
- recommended:
openssl
,opcache
/apcu
/memcached
- recommended for development:
xdebug
- required:
- Recommended memory limit: minimally 256 MB for testing, 512 MB and more for production.
Each time you update Mautic's source after the initial setup/installation via a new checkout, download, git pull, etc; you will need to clear the cache. To do so, run the following command:
$ cd /your/mautic/directory
$ php app/console cache:clear
(Note that if you are accessing Mautic through the dev environment (via index_dev.php), you would need to add the --env=dev
from the command).
Before running these commands, please make a backup of your database.
If updating from a tagged release to a tagged release, schema changes will be included in a migrations file. To apply the changes, run
$ php app/console doctrine:migrations:migrate
If you are updating to the latest source (remember this is alpha), first run
$ php app/console doctrine:schema:update --dump-sql
This will list out the queries Doctrine wants to execute in order to get the schema up-to-date (no queries are actually executed). Review the queries to ensure there is nothing detrimental to your data. If you have doubts about a query, submit an issue here and we'll verify it.
If you're satisfied with the queries, execute them with
$ php app/console doctrine:schema:update --force
Your schema should now be up-to-date with the source.
Learning how to use marketing automation can be challenging. The first step is to understand what marketing automation is and how it can help your business be more successful. This quick usage outline is not meant to be comprehensive but will outline a few key areas of Mautic and how to use each of them.
You can find more detailed information at https://docs.mautic.org
The act of monitoring website traffic and visitors is often the first step in a marketing automation system. This step involves collecting details and information about each visitor to your website.
There are two types of visitor, anonymous and known.
Anonymous visitors are all visitors which browse to your website. These visitors are monitored and certain key pieces of information are collected. This information includes:
- The visitor's IP address
- Country
- Pages visited
- Length of visit
- Any actions taken on site
Known visitors are visitors which have provided an email address or some other identifying characteristic (e.g. social network handle). Much more information can be gathered from known visitors. Any information desired can be manually or automatically collected, here are just a few common ideas to get you started:
- Email address
- Photos/images
- Physical address
- Social network handles
- Social media posts
- Notes
- Events
These fields may be automatically discovered and added by the Mautic system or they may be manually added by you or the visitor.
You will probably want to know how to move a visitor from anonymous to known status. This is critical as the amount of information collected from known visitors is much more in-depth and valuable to your business. You will learn more about this transition process a bit later on.
The next step in the marketing automation process is connecting with your known visitors. These known visitors are your leads (You may call your potential clients something different, for simplicity they are called leads in these docs). Connecting with your leads is important in establishing a relationship and nurturing them along the sales cycle.
This nurturing can be for any purpose you desire. You may wish to demonstrate your knowledge of a subject, encourage your leads to become involved, or generate a sale and become a customer.
There are several ways to connect with your leads. The three most common are emails, social media, and landing pages.
Emails are by far the most common way to connect with leads. These are tracked and monitored by Mautic for who opens the email, what links are clicked within that email, and what emails bounce (never reach the recipient).
Social media is quickly becoming a more popular way for connecting with leads. Mautic helps you monitor the social profiles of your leads and can be used to interact with them through their preferred network.
Landing pages are usually the first step in the connection process as these are used to make initial contact with leads and collect the information to move them from an anonymous visitor to a known visitor. These pages are used to funnel visitors to a specific call to action. This call to action is usually a form to collect the visitor's information.
One of Mautic's main purposes is to enable automation of specific tasks. The task of connecting with leads is one such area where automation becomes increasingly valuable. Mautic allows you to define specific times, events, or actions when a connection should be triggered. Here is an example of an automation process.
Example A visitor fills out a call-to-action form on your landing page. This form collects their email address and automatically moves them from an anonymous to a known visitor. As a known visitor they are now added as a new lead to a specific campaign. This campaign will send the new lead an email you have pre-defined. You can then define additional actions to be taken based on the lead's response to your email.
This example demonstrates several uses of automation. First, the visitor is automatically moved from anonymous to known status. Second, the visitor is automatically added to a particular campaign. Lastly the visitor is sent an email automatically as a new lead.
There are many more ways in which automation can be used throughout Mautic to improve efficiency and reduce the time you spend connecting with your leads. As mentioned earlier, refer to https://docs.mautic.org for more details.
There are many benefits to using Mautic as your marketing automation tool. As the first and only community-driven, open source marketing automation platform there are many distinct advantages. You can choose whether you want to submit your feature to the community as a pull request or whether to build it as a plugin or theme.
Read more about plugins and themes in the Mautic Developer Docummentation.
Mautic have a REST API which you can use to connect it with another app. You can use the webhooks to send the updates which happen in Mautic to another app.
Read more about API and webhooks in the Mautic Developer Docummentation.
One benefit of using Mautic is the ability to modify and customize the solution to fit your needs. Mautic allows you to quickly change to your preferred language, or modify any string through the language files. These language files are available for translation by the community at Transifex and if you are interested you can add more languages, or help to translate the current ones.
Everyone can test submitted features and bug fixes. No programming skills are required. All you have to do is to follow the steps below.
- Open a Terminal/Console window.
- Change directory to the server root (i.e.
cd /var/www
if your local server root is at /var/www). - Clone the repository (
git clone https://github.com/mautic/mautic.git
) - The mautic directory should appear in the server root. Change directory to mautic directory (
cd mautic
). - Install dependencies (
composer install
). - Visit Mautic in a browser (probably at http://localhost/mautic) and follow installation steps.
Mautic downloaded from GitHub has the development environment. You can access it by adding index_dev.php
after the Mautic URL. Eg. http://localhost/mautic/index_dev.php/s/
. Or in case of CLI commands, add --env=dev
attribute to it.
This development environment will display the PHP errors, warnings and notices directly as the output so you don't have to open the log to see them. It will also load for example translations without cache, so every change you make will be visible without clearing it. The only changes which require clearing the cache are in the config.php
files.
In case of assets like JS, CSS, the source files are loaded instead of concatenated, minified files. This way the changes in those files will be directly visible on refresh. If you'd wanted to see the change in the production environment, you'd have to have run the app/console mautic:assets:generate
command.
In many cases, the CSS files are built from LESS files. To compile the changes in the LESS files, run grunt compile-less
command.
Every change to Mautic core happens via PRs. Every PR must have 2 successful tests to be merged to the core and released in the next version. Testing a PR is a great way to move Mautic forward and personally improve its quality and stability.
- Select a PR to test.
- Read the description and steps to test. If it's a bug fix, follow the steps to ensure you can recreate the issue.
- Use the development environment (above) for testing.
- Apply the PR
- Clear cache for development environment (
rm -rf app/cache/*
orapp/console cache:clear -e dev
). - Follow the steps from the PR description again to see if the result is as described.
- Write a comment about how the test went. If there is a problem, provide as much information as possible including error log messages.
Before executing unit tests, copy the app/phpunit.xml.dist
file to app/phpunit.xml
, then edit that file and update the
database parameters to point to your test database. If you leave out those credentials, or do not update them to point to
your test database, then your production database WILL BE TRUNCATED.
The unit tests can be executed in the Mautic root directory with composer test
command.
If you get the following error when running composer test
, you need to copy the app/phpunit.xml.dist
file to app/phpunit.xml
.
<error>Script phpunit --bootstrap vendor/autoload.php --configuration app/phpunit.xml handling the test event returned with error code 1</error>
Mautic uses PHPSTAN for some of its parts during continuous integration tests. If you want to test your specific contribution locally, install PHPSTAN globally with composer global require phpstan/phpstan-shim
. Mautic cannot have PHPSTAN as its dev dependency, because it requires PHP7+. To run analysis on a specific bundle, run ~/.composer/vendor/phpstan/phpstan-shim/phpstan.phar analyse app/bundles/*Bundle
Marketing automation has historically been a difficult tool to implement in a business. The Mautic community is a rich environment for you to learn from others and share your knowledge as well. Open source means more than open code. Open source is providing equality for all and a chance to improve. If you have questions then the Mautic community can help provide the answers.
Ready to get started with the community? You can get more involved on the Mautic website. Or follow Mautic on social media just to stay current with what's happening!
- https://www.mautic.org
- @MauticCommunity [Twitter]
- @MauticCommunity [Facebook]
- +MauticOrg [Google+]
We love testing our user interface on as many platforms as possible (even those browsers we prefer to not mention). In order to help us do this we use and recommend BrowserStack.