This thread was listed in The Unofficial Mautic Newsletter, so I thought Iโd extend it some more.
Mautic Cron jobs
metadata tag: Product Support
The minimum list of commands you need to run every 10 or 15 minutes is:
mautic:segments:update
mautic:campaigns:trigger
mautic:campaigns:update
Self-hosted Mautic cron jobs
These are the commands I run, for every deployed instance.
Note
- scheduling and URL triggers are controlled by a CI/CD application
- URL interface comes from
commands.php
in the mautic-cron-commands repository on GitHub.
metadata tag: 3rd Party Addons
cronjob summary
My cron jobs
These are the commands I run, for every deployed instance.
Commands to run every 15 minutes
*/15 * * * *
SEGMENTS
Update segment membership for contacts
mautic:segments:update --batch-limit=500
CAMPAIGNS
Add contacts to campaigns
mautic:campaigns:update
Execute campaign decisions and events
mautic:campaigns:trigger
Send the scheduled broadcast messages
- these emails are not part of a campaign and may have a date / time to start sending.
mautic:broadcasts:send
Send queued messages
ProTip
When a marketing campaign email is triggered, or a broadcast (segment) email is sent, and a contact has a defined frequency rule, email can still be queued.
mautic:messages:send
Process mailer queue
mautic:emails:send
- My email is configured to Send immediately
Mautic is not set to queue email.
Download email and perform bounce management
mautic:emails:fetch
- My bounce management is configured for AWS SES (using AWS SNS)
Do not need mailbox monitoring.
INTEGRATIONS
Do things with a CRM
mautic:integration:fetchleads --integration=INTEGRATION
mautic:integration:pushleadactivity --integration=INTEGRATION
- Not integrated with a CRM
WEBHOOKS
Process webhooks
mautic:webhooks:process
SOCIAL MEDIA
Find tweets about #mautibot
mautic:social:monitoring
CONTACTS
Import CSV files in the background
mautic:import --no-interaction
Custom Import plugin
- Import multiple contact CSV files in the background
- metadata tag: 3rd Party Addons
mautic:import:parallel --no-interaction
Do Not Contact Extras plugin
- import Do Not Contact lists
- metadata tag: 3rd Party Addons
mautic:dnc:import --no-interaction
Commands to run daily
Runs between midnight and 3 am
@daily
MAINTENANCE
Remove log entries, IP data, user notifications, visit history from anonymous leads
mautic:maintenance:cleanup --days-old=365 --no-interaction
Remove stale user notifications
mautic:notifications:purge --no-interaction
REPORTS
Generate and send scheduled reports
mautic:reports:scheduler
Commands to run monthly
Runs between midnight and 3 am, on the first Wednesday of the month
Iโm ten hours ahead of UTC (TZ=Australia/Brisbane
), so run on Wednesday
METADATA
GeoIP data update
MaxMind updates their database the first Tuesday of the month
mautic:iplookup:download
DATABASE SCHEMA
View the status of a schema mappings
doctrine:migrations:status
Check the schema mappings
doctrine:schema:validate
Report SQL statements to update database schema to current metadata
doctrine:schema:update --dump-sql
CONTACTS
Visitor IP data
Delete IP addresses that are not used in any other database table
mautic:unusedip:delete
Remove duplicates
mautic:contacts:deduplicate
end of cronjobs
References
Check out these posts for more information:
- Mautic docs - Cron Jobs
- Mautic Cron Jobs for Dummies & Marketers too
- Mautic cron jobs: Which ones to use?
- Post-Install Mautic Setup
- Mautic cron jobs setup: A Complete Guide
console
commands in more detail
This is output from the command-line tool console
.
ProTip
Actually I use a shell alias that executes the
console
command as the same user as the webserver.
Add this to your login profile: (usually$HOME/.bashrc
)
alias console='sudo -Hu www-data php app/console'
Mautic console commands
Mautic version 2.15.2 - app/prod
cache:clear Clears the cache
cache:warmup Warms up an empty cache
mautic:assets:generate Combines and minifies asset files from each bundle into single production files
mautic:broadcasts:send Process contacts pending to receive a channel broadcast.
mautic:campaigns:execute Execute specific scheduled events.
mautic:campaigns:messagequeue Process sending of messages queue.
mautic:campaigns:messages Process sending of messages queue.
mautic:campaigns:rebuild Rebuild campaigns based on contact segments.
mautic:campaigns:trigger Trigger timed events for published campaigns.
mautic:campaigns:update Rebuild campaigns based on contact segments.
mautic:campaigns:validate Validate if a contact has been inactive for a decision and execute events if so.
mautic:citrix:sync Synchronizes registrant information from Citrix products
mautic:contacts:deduplicate Merge contacts based on same unique identifiers
mautic:dnc:import Imports custom dnc data to Mautic
mautic:email:fetch Fetch and process monitored email.
mautic:emails:fetch Fetch and process monitored email.
mautic:emails:send Processes SwiftMails mail queue
mautic:import Imports data to Mautic
mautic:import:directory Import CSV files from directory
mautic:import:parallel Parallel import for Mautic
mautic:install:data Installs Mautic with sample data
mautic:integration:fetchleads Fetch leads from integration.
mautic:integration:pipedrive:fetch Pulls the data from Pipedrive and sends it to Mautic
mautic:integration:pipedrive:push Pushes the data from Mautic to Pipedrive
mautic:integration:pushactivity Push lead activity to integration.
mautic:integration:pushleadactivity Push lead activity to integration.
mautic:integration:synccontacts Fetch leads from integration.
mautic:iplookup:download Fetch remote datastores for IP lookup services that leverage local lookups
mautic:maintenance:cleanup Updates the Mautic application
mautic:messages:send Process sending of messages queue.
mautic:migrations:generate Generate a blank migration class.
mautic:plugins:install Installs, updates, enable and/or disable plugins.
mautic:plugins:reload Installs, updates, enable and/or disable plugins.
mautic:plugins:update Installs, updates, enable and/or disable plugins.
mautic:queue:process Process queues
mautic:remove:tags Remove tags from contacts
mautic:reports:scheduler Processes scheduler for reports export
mautic:segments:check-builders Compare output of query builders for given segments
mautic:segments:rebuild Update contacts in smart segments based on new contact data.
mautic:segments:update Update contacts in smart segments based on new contact data.
mautic:social:monitoring Looks at the records of monitors and iterates through them.
mautic:theme:json-config Converts theme config to JSON from PHP
mautic:transifex:pull Fetches translations for Mautic from Transifex
mautic:transifex:push Pushes Mautic translation resources to Transifex
mautic:translation:createconfig Create config.php files for translations
mautic:translation:debug Displays translation messages informations
mautic:unusedip:delete Deletes IP addresses that are not used in any other database table
mautic:update:apply Updates the Mautic application
mautic:update:find Fetches updates for Mautic
mautic:webhooks:process Process queued webhook payloads
ProTip
When running these commands interactively , you can shorten them to
console m:s:u
for segment update andconsole m:c:t
for campaign trigger.
console c:c
works forcache:clear
too.
aliases
Notice that some of the commands have the same description?
Letโs look at the usage information for the campaign update command:
$ console mautic:campaigns:update --help
Usage:
mautic:campaigns:rebuild [options]
mautic:campaigns:update
Options:
...
Help:
Rebuild campaigns based on contact segments.
mautic:campaigns:rebuild
and mautic:campaigns:update
are the same command.
update
is just an alias forrebuild
.
Mautic command aliases
Here is the list of Mautic commands with their aliases:
Iโve used the to mark my suggestions on which command or alias I prefer to use for consistency.
mautic:messages:send
mautic:campaigns:messages
mautic:campaigns:messagequeue
mautic:campaigns:rebuild
mautic:campaigns:update
mautic:email:fetch
mautic:emails:fetch
mautic:emails:send
- internally calls
swiftmailer:spool:send
- internally calls
mautic:integration:fetchleads
mautic:integration:synccontacts
mautic:integration:pushleadactivity
mautic:integration:pushactivity
mautic:plugins:reload
mautic:plugins:install
mautic:plugins:update
mautic:segments:update
mautic:segments:rebuild
mautic:social:monitoring
- internally calls:
social:monitor:twitter:hashtags
- internally calls:
social:monitor:twitter:mentions
- internally calls:
Symfony-framework aliases
Other commands from the Symfony framework with aliases:
debug:config
config:debug
debug:container
container:debug
debug:router
router:debug
debug:swiftmailer
swiftmailer:debug
debug:translation
translation:debug
debug:twig
twig:debug
lint:yaml
yaml:lint
Complete list
Note
This includes commands from
- Mautic standard
/app/bundles
(egmautic:segments:update
)- Mautic standard
/plugins
(egmautic:citrix:sync
)- community
/plugins
(egmautic:integration:*
)- GitHub Pull Requests (eg
mautic:campaign:summarize
).- Symfony framework
/vendor
(egdoctrine:*:*
)metadata tag: 3rd Party Addons
Available commands:
$ console list
Mautic version 2.15.2 - app/prod
Usage:
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-s, --shell Launch the shell.
--process-isolation Launch commands from shell as a separate process.
-e, --env=ENV The Environment name. [default: "prod"]
--no-debug Switches off debug mode.
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
Available commands:
help Displays help for a command
list Lists commands
assets
assets:install Installs bundles web assets under a public web directory
bazinga
bazinga:oauth-server:clean Clean expired tokens
cache
cache:clear Clears the cache
cache:warmup Warms up an empty cache
config
config:debug Dumps the current configuration for an extension
config:dump-reference Dumps the default configuration for an extension
container
container:debug Displays current services for an application
debug
debug:config Dumps the current configuration for an extension
debug:container Displays current services for an application
debug:event-dispatcher Displays configured listeners for an application
debug:router Displays current routes for an application
debug:swiftmailer Displays current mailers for an application
debug:translation Displays translation messages information
debug:twig Shows a list of twig functions, filters, globals and tests
doctrine
doctrine:cache:clear Flush a given cache
doctrine:cache:clear-collection-region Clear a second-level cache collection region.
doctrine:cache:clear-entity-region Clear a second-level cache entity region.
doctrine:cache:clear-metadata Clears all metadata cache for an entity manager
doctrine:cache:clear-query Clears all query cache for an entity manager
doctrine:cache:clear-query-region Clear a second-level cache query region.
doctrine:cache:clear-result Clears result cache for an entity manager
doctrine:cache:contains Check if a cache entry exists
doctrine:cache:delete Delete a cache entry
doctrine:cache:flush Flush a given cache
doctrine:cache:stats Get stats on a given cache provider
doctrine:database:create Creates the configured database
doctrine:database:drop Drops the configured database
doctrine:database:import Import SQL file(s) directly to Database.
doctrine:ensure-production-settings Verify that Doctrine is properly configured for a production environment.
doctrine:fixtures:load Load data fixtures to your database.
doctrine:generate:entities Generates entity classes and method stubs from your mapping information
doctrine:mapping:convert Convert mapping information between supported formats.
doctrine:mapping:import Imports mapping information from an existing database
doctrine:mapping:info
doctrine:migrations:diff Generate a migration by comparing your current database to your mapping information.
doctrine:migrations:execute Execute a single migration version up or down manually.
doctrine:migrations:generate Generate a blank migration class.
doctrine:migrations:latest Outputs the latest version number
doctrine:migrations:migrate Execute a migration to a specified version or the latest available version.
doctrine:migrations:status View the status of a set of migrations.
doctrine:migrations:version Manually add and delete migration versions from the version table.
doctrine:query:dql Executes arbitrary DQL directly from the command line.
doctrine:query:sql Executes arbitrary SQL directly from the command line.
doctrine:schema:create Executes (or dumps) the SQL needed to generate the database schema
doctrine:schema:drop Executes (or dumps) the SQL needed to drop the current database schema
doctrine:schema:update Executes (or dumps) the SQL needed to update the database schema to match the current mapping metadata.
doctrine:schema:validate Validate the mapping files.
fos
fos:oauth-server:clean Clean expired tokens
generate
generate:doctrine:entities Generates entity classes and method stubs from your mapping information
leezy
leezy:pheanstalk:delete-job Delete the specified job if it exists.
leezy:pheanstalk:flush-tube Delete all job in a specific tube.
leezy:pheanstalk:kick Kick buried jobs from a specific tube.
leezy:pheanstalk:kick-job Kick the specified job if it has a valid buried status, regardless of what tube it is in.
leezy:pheanstalk:list-tube The names of all tubes on the server.
leezy:pheanstalk:next-ready Gives the next ready job from a specified tube.
leezy:pheanstalk:pause-tube Temporarily prevent jobs being reserved from the given tube.
leezy:pheanstalk:peek Inspect a job in the system, regardless of what tube it is in.
leezy:pheanstalk:peek-tube Take a peek at the first job in a tube, ready or burried.
leezy:pheanstalk:put Puts a job on the queue.
leezy:pheanstalk:stats Gives statistical information about the beanstalkd system as a whole.
leezy:pheanstalk:stats-job Gives statistical information about the specified job if it exists.
leezy:pheanstalk:stats-tube Gives statistical information about a specified tube, or about all tubes.
lint
lint:twig Lints a template and outputs encountered errors
lint:yaml Lints a file and outputs encountered errors
mautic
mautic:assets:generate Combines and minifies asset files from each bundle into single production files
mautic:broadcasts:send Process contacts pending to receive a channel broadcast.
mautic:campaigns:execute Execute specific scheduled events.
mautic:campaigns:messagequeue Process sending of messages queue.
mautic:campaigns:messages Process sending of messages queue.
mautic:campaigns:rebuild Rebuild campaigns based on contact segments.
mautic:campaigns:summarize Builds historical campaign summary statistics if they do not already exist.
mautic:campaigns:trigger Trigger timed events for published campaigns.
mautic:campaigns:update Rebuild campaigns based on contact segments.
mautic:campaigns:validate Validate if a contact has been inactive for a decision and execute events if so.
mautic:citrix:sync Synchronizes registrant information from Citrix products
mautic:contacts:deduplicate Merge contacts based on same unique identifiers
mautic:dashboard:warm Warm the dashboard widget caches.
mautic:dnc:import Imports custom dnc data to Mautic
mautic:email:fetch Fetch and process monitored email.
mautic:emails:fetch Fetch and process monitored email.
mautic:emails:send Processes SwiftMails mail queue
mautic:import Imports data to Mautic
mautic:import:directory Import CSV files from directory
mautic:import:parallel Parallel import for Mautic
mautic:install:data Installs Mautic with sample data
mautic:integration:enhancer:enhance Runs one or more enhancers on leads.
mautic:integration:enhancer:installcspcdata Imports postal code, city, state, county, latitude, longitude and country
mautic:integration:enhancer:installgendernames Imports the SSA historic top 1000 names for genders
mautic:integration:enhancer:trustedform Claims Trustedform certificates offline.
mautic:integration:enhancer:updatecorrectaddress Installs the latest data files available from Expirian
mautic:integration:fetchleads Fetch leads from integration.
mautic:integration:pipedrive:fetch Pulls the data from Pipedrive and sends it to Mautic
mautic:integration:pipedrive:push Pushes the data from Mautic to Pipedrive
mautic:integration:pushactivity Push lead activity to integration.
mautic:integration:pushleadactivity Push lead activity to integration.
mautic:integration:synccontacts Fetch leads from integration.
mautic:iplookup:download Fetch remote datastores for IP lookup services that leverage local lookups
mautic:maintenance:cleanup Updates the Mautic application
mautic:messages:send Process sending of messages queue.
mautic:migrations:generate Generate a blank migration class.
mautic:notifications:purge Purge stale users notfications.
mautic:plugins:install Installs, updates, enable and/or disable plugins.
mautic:plugins:reload Installs, updates, enable and/or disable plugins.
mautic:plugins:update Installs, updates, enable and/or disable plugins.
mautic:queue:process Process queues
mautic:remove:tags Remove tags from contacts
mautic:reports:scheduler Processes scheduler for reports export
mautic:segments:check-builders Compare output of query builders for given segments
mautic:segments:rebuild Update contacts in smart segments based on new contact data.
mautic:segments:update Update contacts in smart segments based on new contact data.
mautic:social:monitoring Looks at the records of monitors and iterates through them.
mautic:theme:json-config Converts theme config to JSON from PHP
mautic:transifex:pull Fetches translations for Mautic from Transifex
mautic:transifex:push Pushes Mautic translation resources to Transifex
mautic:translation:createconfig Create config.php files for translations
mautic:translation:debug Displays translation messages informations
mautic:unusedip:delete Deletes IP addresses that are not used in any other database table
mautic:update:apply Updates the Mautic application
mautic:update:find Fetches updates for Mautic
mautic:webhooks:process Process queued webhook payloads
oneup
oneup:uploader:clear-chunks Clear chunks according to the max-age you defined in your configuration.
oneup:uploader:clear-orphans Clear orphaned uploads according to the max-age you defined in your configuration.
orm
orm:convert:mapping Convert mapping information between supported formats.
rabbitmq
rabbitmq:anon-consumer Executes an anonymous consumer
rabbitmq:batch:consumer Executes a Batch Consumer
rabbitmq:consumer Executes a consumer
rabbitmq:delete Delete a consumers queue
rabbitmq:dynamic-consumer Executes context-aware consumer
rabbitmq:multiple-consumer Executes a consumer that uses multiple queues
rabbitmq:purge Purge a consumers queue
rabbitmq:rpc-server Start an RPC server
rabbitmq:setup-fabric Sets up the Rabbit MQ fabric
rabbitmq:stdin-producer Executes a producer that reads data from STDIN
router
router:debug Displays current routes for an application
router:dump-apache [DEPRECATED] Dumps all routes as Apache rewrite rules
router:match Helps debug routes by simulating a path info match
security
security:encode-password Encodes a password.
server
server:run Runs PHP built-in web server
server:start Starts PHP built-in web server in the background
server:status Outputs the status of the built-in web server for the given address
server:stop Stops PHPs built-in web server that was started with the server:start command
social
social:monitor:twitter:hashtags Looks at our monitoring records and finds hashtags
social:monitor:twitter:mentions Searches for mentioned tweets
swiftmailer
swiftmailer:debug Displays current mailers for an application
swiftmailer:email:send Send simple email message
swiftmailer:spool:send Sends emails from the spool
translation
translation:debug Displays translation messages information
translation:update Updates the translation file
twig
twig:debug Shows a list of twig functions, filters, globals and tests
yaml
yaml:lint Lints a file and outputs encountered errors
I hope this is useful to someone.
Virgil