Mautic: Hướng dẫn chi tiết cài đặt và sử dụng với Docker Compose trên Ubuntu
Bạn đang tìm kiếm một công cụ tự động hóa marketing mạnh mẽ, miễn phí, và dễ sử dụng? Mautic chính là câu trả lời! Đây là nền tảng mã nguồn mở hàng đầu thế giới, giúp bạn quản lý email marketing, leads, chiến dịch, và tích hợp mạng xã hội một cách hiệu quả. Trong bài viết này, mình sẽ hướng dẫn bạn từng bước cài đặt Mautic bằng Docker Compose trên Ubuntu và cách sử dụng Mautic để bắt đầu chiến dịch marketing đầu tiên.
Mautic là gì?
Mautic là một nền tảng tự động hóa marketing mã nguồn mở, được phát triển từ năm 2014 bởi David Hurley với mục tiêu mang đến công cụ marketing mạnh mẽ cho mọi doanh nghiệp, đặc biệt là doanh nghiệp nhỏ và vừa. Theo Mautic Official Website, Mautic hiện là dự án tự động hóa marketing mã nguồn mở lớn nhất thế giới, được hỗ trợ bởi cộng đồng toàn cầu với hơn 1000 người đóng góp.
Các tính năng chính
Mautic cung cấp nhiều tính năng giúp bạn tối ưu hóa marketing:
- Email marketing: Tạo và gửi email cá nhân hóa, tự động hóa quy trình gửi.
- Quản lý leads: Theo dõi và phân đoạn khách hàng tiềm năng dựa trên hành vi và thông tin.
- Chiến dịch tự động: Xây dựng quy trình marketing với các hành động và điều kiện.
- Tích hợp đa kênh: Kết nối với mạng xã hội, CRM, và các công cụ khác.
- Báo cáo chi tiết: Theo dõi hiệu quả chiến dịch qua báo cáo và dashboard.
Lợi ích của Mautic
- Miễn phí: Không cần trả phí license, phù hợp với ngân sách hạn chế.
- Tùy chỉnh cao: Mã nguồn mở cho phép chỉnh sửa theo nhu cầu.
- Bảo mật dữ liệu: Tự lưu trữ trên máy chủ của bạn, đảm bảo quyền riêng tư.
- Cộng đồng hỗ trợ: Hàng ngàn người dùng và nhà phát triển sẵn sàng giúp đỡ qua Mautic Forum.
Đối tượng phù hợp
Mautic lý tưởng cho:
- Doanh nghiệp nhỏ và vừa muốn tự động hóa marketing mà không tốn nhiều chi phí.
- Các tổ chức phi lợi nhuận cần quản lý chiến dịch quyên góp hoặc truyền thông.
- Các nhà tiếp thị muốn kiểm soát dữ liệu và tích hợp với các công cụ khác.
Cài đặt Mautic với Docker Compose trên Ubuntu
Cài đặt Mautic bằng Docker Compose trên Ubuntu là cách đơn giản và hiệu quả để triển khai nền tảng này. Docker giúp bạn chạy Mautic và cơ sở dữ liệu trong các container, dễ dàng quản lý và mở rộng. Dưới đây là hướng dẫn chi tiết.
Yêu cầu hệ thống
Theo Mautic Community Requirements, bạn cần:
- Máy chủ: VPS hoặc Dedicated Server (không nên dùng shared hosting) với ít nhất 4GB RAM và 2 CPU.
- Hệ điều hành: Ubuntu 20.04 hoặc 22.04 (bài viết sử dụng Ubuntu 22.04).
- Cơ sở dữ liệu: MySQL 5.7+ hoặc MariaDB 10.1+.
- PHP: Phiên bản 8.0+ (được tích hợp trong image Docker của Mautic).
- Dung lượng ổ cứng: Ít nhất 40GB để lưu trữ dữ liệu và cơ sở dữ liệu.
Bước 1: Cài đặt Docker và Docker Compose
1. Cập nhật hệ thống:
sudo apt update && sudo apt upgrade -y2. Cài đặt Docker:
Làm theo hướng dẫn chính thức tại Docker Installation Guide. Dưới đây là các lệnh cơ bản:
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io3. Kích hoạt Docker:
sudo systemctl enable docker
sudo systemctl start docker4. Cài đặt Docker Compose: Kiểm tra phiên bản:
sudo apt install -y docker-composeKiểm tra phiên bản:
docker-compose --versionBước 2: Tạo file docker-compose.yml
Tạo thư mục cho Mautic:
sudo mkdir /opt/mautic
cd /opt/mauticTạo file docker-compose.yml:
sudo nano docker-compose.ymlDán nội dung sau vào file:
services:
# ===== MariaDB Database =====
mautic_db:
image: mariadb:11.4
container_name: mautic_db_container
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_INITDB_SKIP_TZINFO: yes
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --max_allowed_packet=256M
- --innodb_buffer_pool_size=1G
- --innodb_flush_log_at_trx_commit=2
- --innodb_log_file_size=512M
- --default-storage-engine=InnoDB
volumes:
- mautic_db_data:/var/lib/mysql
ports:
- 3306:3306
healthcheck:
test:
- CMD
- healthcheck.sh
- --connect
- --innodb_initialized
timeout: 20s
retries: 10
interval: 15s
# CẤU HÌNH GIỚI HẠN LOG
logging:
driver: json-file
options:
max-size: 10m
max-file: "3"
networks:
- mautic_internal_net
# ===== Mautic Web Server =====
mautic_web:
image: mautic/mautic:6-apache
container_name: mautic_web_container
restart: always
depends_on:
mautic_db:
condition: service_healthy
ports:
- 8080:80
environment:
MAUTIC_DB_HOST: mautic_db
MAUTIC_DB_PORT: 3306
MAUTIC_DB_NAME: ${MYSQL_DATABASE}
MAUTIC_DB_USER: ${MYSQL_USER}
MAUTIC_DB_PASSWORD: ${MYSQL_PASSWORD}
MAUTIC_SITE_URL: ${MAUTIC_SITE_URL}
MAUTIC_ENV: prod
MAUTIC_DEBUG: 0
# Fix lỗi nhận diện IP và SSL
MAUTIC_TRUSTED_PROXIES: '["0.0.0.0/0"]'
# Chỉ chạy migration ở container Web để tránh xung đột
DOCKER_MAUTIC_RUN_MIGRATIONS: "true"
DOCKER_MAUTIC_ROLE: mautic_web
# Tăng giới hạn PHP
PHP_INI_MEMORY_LIMIT: 512M
PHP_INI_MAX_EXECUTION_TIME: "300"
volumes:
- mautic_config_data:/var/www/html/config:rw
- mautic_logs_data:/var/www/html/var/logs:rw
- mautic_media_data:/var/www/html/docroot/media:rw
- mautic_files_data:/var/www/html/docroot/files:rw
- mautic_themes_data:/var/www/html/themes:rw
- mautic_plugins_data:/var/www/html/plugins:rw
# CẤU HÌNH GIỚI HẠN LOG
logging:
driver: json-file
options:
max-size: 10m
max-file: "3"
networks:
- mautic_internal_net
# ===== Mautic Worker (Xử lý hàng đợi) =====
mautic_worker:
image: mautic/mautic:6-apache
container_name: mautic_worker_container
restart: always
depends_on:
- mautic_web
environment:
MAUTIC_DB_HOST: mautic_db
MAUTIC_DB_PORT: 3306
MAUTIC_DB_NAME: ${MYSQL_DATABASE}
MAUTIC_DB_USER: ${MYSQL_USER}
MAUTIC_DB_PASSWORD: ${MYSQL_PASSWORD}
MAUTIC_ENV: prod
# Vai trò Worker: Image sẽ tự chạy lệnh consume chuẩn, KHÔNG CẦN COMMAND thủ công
DOCKER_MAUTIC_ROLE: mautic_worker
# Tùy chỉnh số lượng tiến trình chạy song song
DOCKER_MAUTIC_WORKERS_CONSUME_EMAIL: 2
DOCKER_MAUTIC_WORKERS_CONSUME_HIT: 2
DOCKER_MAUTIC_WORKERS_CONSUME_FAILED: 1
PHP_INI_MEMORY_LIMIT: 512M
volumes:
- mautic_config_data:/var/www/html/config:rw
- mautic_logs_data:/var/www/html/var/logs:rw
- mautic_media_data:/var/www/html/docroot/media:rw
- mautic_files_data:/var/www/html/docroot/files:rw
- mautic_themes_data:/var/www/html/themes:rw
- mautic_plugins_data:/var/www/html/plugins:rw
# CẤU HÌNH GIỚI HẠN LOG (Quan trọng nhất với Worker)
logging:
driver: json-file
options:
max-size: 10m
max-file: "3"
networks:
- mautic_internal_net
# ===== Mautic Cron (Tác vụ định kỳ) =====
mautic_cron:
image: mautic/mautic:6-apache
container_name: mautic_cron_container
restart: always
depends_on:
- mautic_web
environment:
MAUTIC_DB_HOST: mautic_db
MAUTIC_DB_PORT: 3306
MAUTIC_DB_NAME: ${MYSQL_DATABASE}
MAUTIC_DB_USER: ${MYSQL_USER}
MAUTIC_DB_PASSWORD: ${MYSQL_PASSWORD}
MAUTIC_ENV: prod
DOCKER_MAUTIC_ROLE: mautic_cron
PHP_INI_MEMORY_LIMIT: 512M
volumes:
- mautic_config_data:/var/www/html/config:rw
- mautic_logs_data:/var/www/html/var/logs:rw
- mautic_media_data:/var/www/html/docroot/media:rw
- mautic_files_data:/var/www/html/docroot/files:rw
- mautic_themes_data:/var/www/html/themes:rw
- mautic_plugins_data:/var/www/html/plugins:rw
# CẤU HÌNH GIỚI HẠN LOG
logging:
driver: json-file
options:
max-size: 10m
max-file: "3"
networks:
- mautic_internal_net
volumes:
mautic_db_data: null
mautic_config_data: null
mautic_logs_data: null
mautic_media_data: null
mautic_files_data: null
mautic_themes_data: null
mautic_plugins_data: null
networks:
mautic_internal_net:
driver: bridge
Tạo file .env để đặt các biến quan trọng
MYSQL_ROOT_PASSWORD: 'your_strong_root_password'
MYSQL_DATABASE: 'mautic_db'
MYSQL_USER: 'mautic_user'
MYSQL_PASSWORD: 'your_strong_mautic_db_password'
MAUTIC_SITE_URL: 'http://localhost:8080'File cấu hình này dựng lên một hệ thống Mautic hoàn chỉnh gồm 4 dịch vụ (Services) hoạt động phối hợp với nhau. Dưới đây là chi tiết từng thành phần:
1. mautic_db (Cơ sở dữ liệu)
Đây là nơi lưu trữ toàn bộ dữ liệu khách hàng, email, và cấu hình của Mautic.
image: mariadb:11.4: Sử dụng MariaDB (một nhánh tối ưu của MySQL), phiên bản 11.4 được khuyến nghị cho hiệu suất tốt.command: Đây là các tham số tinh chỉnh database quan trọng:utf8mb4: Hỗ trợ lưu trữ đầy đủ ký tự đặc biệt và Emoji.innodb_buffer_pool_size=1G: Cấp 1GB RAM cho bộ nhớ đệm Database giúp truy vấn nhanh hơn (quan trọng với Mautic nặng).
healthcheck: Cơ chế tự kiểm tra sức khỏe. Docker sẽ biết khi nào Database khởi động xong hoàn toàn (service_healthy) thì mới cho phép Mautic Web chạy, tránh lỗi kết nối lúc khởi động.
2. mautic_web (Giao diện Web & API)
Đây là container chính giúp bạn truy cập vào Dashboard và xử lý các request từ người dùng.
ports: - 8080:80: Mở cổng 8080 trên máy chủ để truy cập web (Ví dụ:http://localhost:8080).MAUTIC_TRUSTED_PROXIES: '["0.0.0.0/0"]': (Quan trọng) Cấu hình này giúp Mautic nhận diện đúng địa chỉ IP thật của khách hàng khi chạy trong môi trường Docker hoặc sau Cloudflare/Nginx. Nếu thiếu, IP khách hàng sẽ hiển thị sai.DOCKER_MAUTIC_RUN_MIGRATIONS: "true": Tự động cập nhật cấu trúc Database khi bạn nâng cấp phiên bản Mautic, giúp tránh lỗi hệ thống.MAUTIC_MESSENGER_TRANSPORT_DSN: doctrine://default: (Rất quan trọng) Cấu hình buộc Mautic gửi các tác vụ nặng (gửi email, import contact) vào hàng đợi trong Database thay vì xử lý ngay lập tức gây treo web.
3. mautic_worker (Xử lý tác vụ nền)
Đây là “công nhân” thầm lặng, chịu trách nhiệm xử lý các hàng đợi mà mautic_web gửi xuống.
DOCKER_MAUTIC_ROLE: mautic_worker: Biến này báo cho Docker biết: “Tôi là worker, hãy chạy script xử lý hàng đợi chuẩn”. Bạn không cần viết lệnhcommandphức tạp thủ công nữa.MAUTIC_MESSENGER_TRANSPORT_DSN: doctrine://default: Khớp cấu hình với Web để Worker biết lấy việc từ đâu. Nếu thiếu dòng này, Worker sẽ bị lỗi và khởi động lại liên tục.DOCKER_MAUTIC_WORKERS_CONSUME_...: Tùy chỉnh sức mạnh xử lý. Ví dụEMAIL: 2nghĩa là có 2 tiến trình cùng lúc gửi email đi, giúp gửi nhanh hơn.
4. mautic_cron (Lên lịch tự động)
Chịu trách nhiệm kích hoạt các sự kiện theo thời gian (Ví dụ: Cập nhật Segment, Kích hoạt Campaign).
DOCKER_MAUTIC_ROLE: mautic_cron: Tự động kích hoạt trình quản lý Cron Job chuẩn của Mautic bên trong container.
Lưu ý:
- Thay đổi mật khẩu: Tuyệt đối không sử dụng mật khẩu mặc định trong file cấu hình. Hãy thay thế
your_strong_root_passwordvàyour_strong_mautic_db_passwordbằng các mật khẩu mạnh, ví dụ:P@ssw0rd123!. - Phiên bản Image:
mautic/mautic:6-apachesẽ sử dụng phiên bản Mautic 5 ổn định mới nhất. Bạn có thể chỉ định phiên bản cụ thể nếu muốn, ví dụmautic/mautic:6.0.6-apache. Tương tự với image database. - Cổng 8080: Nếu cổng 8080 đã được sử dụng trên máy chủ của bạn, hãy thay đổi phần
8080:80thành một cổng khác, ví dụ8888:80. Ấn Ctrl + O xong Enter để lưu file và ấn Ctrl + X để thoát.
Bước 3: Khởi động dịch vụ
1. Chạy lệnh để khởi động các container:
sudo docker-compose up -d2. Kiểm tra trạng thái:
sudo docker-compose psBạn sẽ thấy 4 container mautic_db_container, mautic_web_container, mautic_worker_container và mautic_cron_container đang chạy.
Bước 4: Hoàn tất cài đặt Mautic
- Mở trình duyệt và truy cập
http://<IP_của_server>:8080(thay<IP_của_server>bằng địa chỉ IP của máy chủ). - Làm theo trình cài đặt Mautic:
- Kiểm tra yêu cầu hệ thống: Nhấn “Next Step” nếu không có lỗi.
- Cấu hình cơ sở dữ liệu:
- Database Driver: MySQL PDO
- Host:
mysql - Database Name:
mautic_db - User:
mautic_user - Password:
your_strong_mautic_db_password
- Tạo tài khoản admin: Nhập email, tên người dùng, và mật khẩu.
- Cấu hình email: Sử dụng SMTP của bên thứ ba như SendGrid hoặc để mặc định (PHP Mail) cho thử nghiệm.
- Đăng nhập vào Mautic với tài khoản admin vừa tạo.
Bước 5: Cấu hình cron jobs
Mautic yêu cầu cron jobs để tự động hóa các tác vụ như gửi email và cập nhật leads. Thêm các cron jobs sau:
1. Mở crontab:
sudo crontab -e2. Thêm các dòng sau (thay /opt/mautic bằng đường dẫn thực tế):
* * * * * docker exec mautic-web php /var/www/html/bin/console mautic:segments:update
* * * * * docker exec mautic-web php /var/www/html/bin/console mautic:campaigns:trigger
* * * * * docker exec mautic-web php /var/www/html/bin/console mautic:emails:send3. Lưu và thoát.
Các “đối tượng” chính trong Mautic (The “Nouns”)
Đây là những thực thể dữ liệu cốt lõi mà bạn sẽ làm việc cùng trong Mautic:
- Contacts (Liên hệ / Khách hàng tiềm năng):
- Khái niệm: Đây là những cá nhân mà bạn có thông tin liên lạc và muốn tương tác. Họ có thể là khách hàng hiện tại, khách hàng tiềm năng (leads), người đăng ký nhận tin, v.v. Mỗi contact là một bản ghi riêng biệt trong Mautic.
- Ví dụ: Anh Nguyễn Văn A, với email
[email protected], số điện thoại09xxxxxxxx, đã truy cập website của bạn và điền vào form đăng ký nhận ebook. Anh A lúc này là một “Contact” trong Mautic. - Cách tạo: Contacts có thể được tạo thủ công, nhập từ file CSV, hoặc tự động thêm vào khi họ điền form, tương tác trên website (nếu có tracking), hoặc qua API từ hệ thống khác.
- Fields (Trường thông tin):
- Khái niệm: Là các mẩu thông tin cụ thể bạn lưu trữ về một Contact. Mautic có các trường mặc định và cho phép bạn tạo trường tùy chỉnh.
- Trường mặc định (Standard Fields): Email, First Name (Tên), Last Name (Họ), Company (Công ty), Position (Chức danh), City (Thành phố), Country (Quốc gia), Phone (Số điện thoại), v.v.
- Trường tùy chỉnh (Custom Fields): Bạn có thể tạo thêm các trường riêng để lưu trữ thông tin đặc thù cho doanh nghiệp của mình.
- Ví dụ: Bạn kinh doanh phần mềm, bạn có thể tạo custom field là “Gói dịch vụ quan tâm” (text), “Ngày dùng thử” (date), “Ngành nghề” (select list). Khi Anh A đăng ký dùng thử gói “Pro”, bạn có thể lưu thông tin này vào các custom field tương ứng của Contact Anh A.
- Tags (Thẻ):
- Khái niệm: Là các nhãn bạn có thể gán cho Contacts để phân loại hoặc đánh dấu nhanh một đặc điểm, hành vi nào đó. Tags rất linh hoạt.
- Ví dụ:
- Anh A tải ebook “Hướng dẫn SEO 2025”, bạn có thể gắn tag
"da_tai_ebook_seo"cho Anh A. - Chị B tham gia webinar “Marketing Automation cơ bản”, bạn gắn tag
"da_tham_gia_webinar_ma". - Khách hàng mua sản phẩm X, bạn gắn tag
"khach_mua_san_pham_x".
- Anh A tải ebook “Hướng dẫn SEO 2025”, bạn có thể gắn tag
- Segments (Phân khúc):
- Khái niệm: Là các nhóm Contacts được lọc ra dựa trên một hoặc nhiều tiêu chí (fields, tags, hoạt động, v.v.). Segments giúp bạn nhắm mục tiêu chính xác hơn cho các chiến dịch.
- Dynamic Segments (Phân khúc động): Tự động cập nhật. Contact sẽ tự động được thêm vào hoặc xóa khỏi segment nếu họ thỏa mãn hoặc không còn thỏa mãn điều kiện.
- Ví dụ: Bạn tạo một Dynamic Segment tên là “Lead nóng quan tâm SEO” với điều kiện:
- Có tag
"da_tai_ebook_seo" - VÀ đã truy cập trang “Báo giá dịch vụ SEO” trong 7 ngày qua. Nếu Anh A thỏa mãn cả 2 điều kiện này, anh ấy sẽ tự động được thêm vào segment này.
- Có tag
- Ví dụ: Bạn tạo một Dynamic Segment tên là “Lead nóng quan tâm SEO” với điều kiện:
- Static Segments (Phân khúc tĩnh): Danh sách Contact cố định, không tự động cập nhật dựa trên điều kiện (trừ khi bạn thêm/xóa thủ công).
- Companies (Công ty):
- Khái niệm: Nếu bạn làm B2B (doanh nghiệp với doanh nghiệp), bạn có thể quản lý thông tin các công ty và liên kết Contacts với các công ty tương ứng.
- Ví dụ: Anh A làm việc tại “Công ty Giải Pháp XYZ”. Mautic có thể lưu “Công ty Giải Pháp XYZ” là một Company và liên kết Contact Anh A với công ty này. Bạn có thể xem tất cả Contacts thuộc một công ty cụ thể.
- Assets (Tài sản / Tài nguyên):
- Khái niệm: Là các tệp tin có thể tải xuống mà bạn cung cấp cho Contacts, thường là để đổi lấy thông tin liên hệ của họ (lead magnet).
- Ví dụ: Ebook “Hướng dẫn SEO 2025”, file PDF “Case Study Thành Công Khách Hàng A”, file checklist “10 Bước Tối Ưu Website” đều là các Assets. Mautic có thể theo dõi số lượt tải của mỗi Asset.
- Forms (Biểu mẫu):
- Khái niệm: Là các biểu mẫu bạn tạo để thu thập thông tin từ khách truy cập website (ví dụ: form đăng ký nhận tin, form liên hệ, form tải tài liệu).
- Ví dụ: Bạn tạo một Form trên website có các trường: Họ tên, Email, Số điện thoại, với tiêu đề “Đăng ký nhận Ebook Miễn Phí”. Khi Anh A điền và gửi Form này, thông tin của anh ấy sẽ được lưu vào Mautic, có thể tự động thêm vào một Segment, gắn Tag, hoặc kích hoạt một Campaign.
- Landing Pages (Trang đích):
- Khái niệm: Là các trang web đơn giản, độc lập mà bạn có thể tạo nhanh chóng ngay trong Mautic. Landing Pages thường được sử dụng để quảng bá một ưu đãi cụ thể, một Asset, hoặc chứa một Form quan trọng.
- Ví dụ: Bạn tạo một Landing Page với địa chỉ
yourdomain.com/ebook-seo-2025để giới thiệu chi tiết về Ebook “Hướng dẫn SEO 2025” và nhúng Form đăng ký nhận ebook vào đó.
- Emails:
- Khái niệm: Các email bạn gửi cho Contacts.
- Template Emails (Email mẫu): Là các email được thiết kế sẵn, có thể tái sử dụng nhiều lần. Chúng thường được cá nhân hóa bằng cách chèn các trường thông tin của Contact (ví dụ:
{contactfield=firstname}). Template Emails được dùng trong Campaigns hoặc khi gửi hàng loạt cho một Segment.- Ví dụ: Bạn tạo một Template Email “Chào mừng thành viên mới”. Khi Anh A đăng ký, hệ thống sẽ tự động gửi email này với nội dung “Chào anh A, cảm ơn bạn đã đăng ký…”.
- Segment Emails (Email gửi theo phân khúc / Broadcast): Là các email bạn soạn và gửi một lần cho một hoặc nhiều Segments cụ thể, thường dùng cho các thông báo, bản tin, khuyến mãi.
- Ví dụ: Bạn muốn gửi thông báo chương trình giảm giá cuối tuần cho tất cả Contacts trong Segment “Khách hàng cũ”. Bạn sẽ tạo một Segment Email và chọn Segment này để gửi.
Các “hành động & cơ chế” chính (The “Verbs & Mechanisms”)
Đây là cách Mautic hoạt động và tương tác với các đối tượng ở trên:
- Campaigns (Chiến dịch):
- Khái niệm: Đây là “trái tim” của Marketing Automation trong Mautic. Campaigns là các luồng công việc tự động được thiết kế để tương tác và nuôi dưỡng Contacts dựa trên hành vi và thông tin của họ.
- Campaign Builder (Trình dựng chiến dịch): Giao diện trực quan (dạng canvas, kéo thả) để bạn thiết kế các bước trong chiến dịch.
- Sources (Nguồn Contact): Cách Contacts được đưa vào một Campaign. Phổ biến nhất là từ một Segment hoặc một Form.
- Ví dụ: “Tất cả Contacts thuộc Segment ‘Người tải ebook SEO'” sẽ là nguồn của Campaign “Nuôi dưỡng người tải ebook SEO”.
- Decisions (Điều kiện rẽ nhánh): Các điểm trong Campaign mà Mautic sẽ kiểm tra một điều kiện gì đó để quyết định hành động tiếp theo.
- Ví dụ: “Contact có mở email A không?”, “Contact có click vào link X trong email A không?”, “Contact có truy cập trang Y không?”.
- Actions (Hành động): Các việc Mautic sẽ tự động thực hiện.
- Ví dụ: “Gửi Email B”, “Thêm Tag ‘quan_tam_san_pham_X'”, “Cộng 10 điểm cho Contact”, “Chuyển Contact sang Segment Y”, “Thông báo cho đội sale”.
- Points (Điểm – Lead Scoring):
- Khái niệm: Hệ thống chấm điểm Contacts dựa trên hành vi (mở email, click link, truy cập web, tải asset) và thông tin nhân khẩu học của họ. Điểm số giúp bạn xác định mức độ “nóng” của một lead.
- Actions (Hành động cộng/trừ điểm): Bạn có thể thiết lập các hành động cụ thể sẽ cộng hoặc trừ điểm cho Contact.
- Ví dụ:
- Mở email “Giới thiệu sản phẩm”: +5 điểm.
- Click vào link “Xem chi tiết sản phẩm A” trong email: +10 điểm.
- Điền form “Yêu cầu báo giá”: +20 điểm.
- Không tương tác trong 30 ngày: -15 điểm.
- Khi Anh A đạt 100 điểm, Mautic có thể tự động gửi thông báo cho đội sale để liên hệ.
- Ví dụ:
- Focus Items (Mục tập trung – Pop-ups/Bars):
- Khái niệm: Là các thông báo nhỏ, thanh bar, hoặc pop-up bạn có thể hiển thị trên website của mình để thu hút sự chú ý của khách truy cập, khuyến khích họ thực hiện một hành động (ví dụ: đăng ký email, nhận thông báo).
- Ví dụ: Khi một khách truy cập chuẩn bị rời khỏi trang web của bạn (exit intent), một Focus Item có thể hiện ra với nội dung “Khoan đã! Nhận ngay voucher giảm giá 10% khi để lại email.”
- Dynamic Content (Nội dung động):
- Khái niệm: Cho phép bạn hiển thị các khối nội dung khác nhau cho các Contacts khác nhau trên website, Landing Page hoặc trong email, dựa trên thông tin Segment, Tags, hoặc Fields của họ.
- Ví dụ: Trên trang chủ, nếu Contact thuộc Segment “Khách hàng VIP”, họ sẽ thấy banner “Ưu đãi đặc biệt dành cho thành viên VIP!”. Nếu là khách truy cập mới, họ sẽ thấy banner “Chào mừng bạn đến với chúng tôi!”.
- Reports (Báo cáo):
- Khái niệm: Mautic cung cấp các báo cáo để bạn theo dõi hiệu quả của các chiến dịch email, Landing Page, Form, Asset, v.v.
- Ví dụ: Báo cáo tỷ lệ mở email, tỷ lệ click, số lượt tải Asset, số Contact mới được tạo từ Form X, biểu đồ tăng trưởng Contact theo thời gian.
Các thuật ngữ quan trọng khác
- Marketing Automation (Tự động hóa Tiếp thị):
- Khái niệm: Sử dụng phần mềm (như Mautic) để tự động hóa các tác vụ marketing lặp đi lặp lại (như gửi email, phân loại leads, chấm điểm leads) nhằm tăng hiệu quả, tiết kiệm thời gian và cung cấp trải nghiệm cá nhân hóa hơn cho khách hàng.
- Channels (Kênh tương tác):
- Khái niệm: Các phương tiện mà Mautic có thể sử dụng để giao tiếp với Contacts. Kênh chính và mạnh nhất của Mautic là Email. Ngoài ra, Mautic có thể hỗ trợ (thường qua plugin hoặc tích hợp): Web Notifications (Thông báo trên web), SMS, Social Monitoring (Theo dõi mạng xã hội).
- Tracking (Theo dõi):
- Khái niệm: Mautic sử dụng một đoạn mã JavaScript (Mautic Tracking JS, hay còn gọi là mtc.js) nhúng vào website của bạn để theo dõi hành vi của khách truy cập và Contacts (ví dụ: họ đã xem trang nào, ở lại bao lâu, tải tài liệu gì). Dữ liệu tracking này rất quan trọng để phân khúc, chấm điểm và kích hoạt các hành động trong Campaign.
- Ví dụ: Mã tracking trên website của bạn ghi nhận Anh A đã xem trang “Sản phẩm ABC” 3 lần và trang “Báo giá” 1 lần.
- Webhooks:
- Khái niệm: Một cơ chế cho phép Mautic tự động gửi dữ liệu đến các ứng dụng/hệ thống khác (ví dụ: CRM, hệ thống bán hàng) khi một sự kiện cụ thể xảy ra trong Mautic.
- Ví dụ: Khi một Contact trong Mautic đạt trạng thái “Qualified Lead” (Lead chất lượng), một Webhook có thể tự động gửi thông tin Contact đó (tên, email, sđt, điểm số) sang hệ thống CRM của bạn để đội sale tiếp nhận.
- Cron Jobs (Tác vụ định kỳ):
- Khái niệm: Đây là các tác vụ được lập lịch để chạy tự động trên máy chủ của bạn theo một khoảng thời gian nhất định (ví dụ: mỗi 5 phút, mỗi giờ, mỗi ngày). Mautic PHỤ THUỘC RẤT NHIỀU vào Cron Jobs để thực hiện các chức năng cốt lõi.
- Ví dụ các tác vụ Cron Jobs của Mautic:
- Gửi email theo lịch trong Campaign.
- Cập nhật Segments (thêm/xóa Contacts dựa trên điều kiện).
- Thực thi các quyết định và hành động trong Campaign.
- Xử lý hàng đợi (queue) gửi email.
- Dọn dẹp dữ liệu cũ.
- Lưu ý quan trọng: Nếu Cron Jobs không được cấu hình đúng cách, các chiến dịch tự động, việc gửi email theo lịch, cập nhật segment, v.v. của Mautic sẽ KHÔNG HOẠT ĐỘNG.
Ví dụ luồng làm việc cơ bản trong Mautic
Hãy hình dung một kịch bản đơn giản:
- Thu hút: Anh Duy truy cập website
shop.vnrom.netcủa bạn. (Mã Tracking của Mautic được kích hoạt). - Tương tác & Thu thập thông tin: Một Focus Item (pop-up) hiện ra: “Nhận ngay bí kíp khai thác tối đa Google One 30TB! Đăng ký để tải Ebook miễn phí.”
- Điền Form: Anh Duy nhấp vào, điền tên (
Duy) và email ([email protected]) vào Form “Đăng ký Ebook Google One”. - Xử lý trong Mautic:
- Một Contact mới tên Duy được tạo.
- Hành động của Form:
- Gửi Asset (Ebook “Bí Kíp Google One”) cho anh Duy (thường qua email xác nhận có link tải hoặc hiển thị link trên trang cảm ơn).
- Gắn Tag
"da_tai_ebook_google-one"cho anh Duy. - Cộng 5 Points cho anh Duy.
- Thêm anh Duy vào Segment “Người tải ebook Google One”.
- Kích hoạt Campaign:
- Source: Segment “Người tải ebook Google One” là nguồn đầu vào của Campaign “Chăm sóc người thích công nghệ”.
- Hành động 1 (Ngay lập tức): Gửi Email mẫu “Cảm ơn bạn đã tải Ebook!”, cá nhân hóa bằng tên anh Duy.
- Theo dõi hành vi & Tự động hóa tiếp theo:
- Mautic theo dõi xem anh Duy có mở email không, có click vào link nào trong email không (ví dụ: link xem “Cách sử dụng Gemini Advance trong Google One 30TB”).
- Quyết định (Sau 2 ngày): Campaign kiểm tra: “Anh Duy có click vào link ‘Cách sử dụng Gemini Advance trong Google One 30TB’ không?”
- Nếu có: Gửi Email “Ưu đãi đặc biệt cho lần mua Google One tiếp theo”. Cộng thêm 10 Points. Thêm Tag
"quan_tam_google one". - Nếu không: Gửi Email “Gợi ý các tips sử dụng Google One”.
- Nếu có: Gửi Email “Ưu đãi đặc biệt cho lần mua Google One tiếp theo”. Cộng thêm 10 Points. Thêm Tag
- Chấm điểm & Chuyển đổi:
- Qua các tương tác, điểm Points của anh Duy tăng lên.
- Khi anh Duy đạt một ngưỡng điểm nhất định (ví dụ: 50 điểm) HOẶC thực hiện một hành động quan trọng (ví dụ: truy cập trang “Giỏ hàng” nhiều lần), Campaign có thể tự động gửi thông báo cho nhân viên tư vấn hoặc chuyển anh Duy sang một Segment “Khách hàng tiềm năng cao”.
Hy vọng những giải thích và ví dụ trên sẽ giúp bạn có cái nhìn tổng quan và dễ hình dung hơn về Mautic. Đây là một công cụ rất mạnh, và khi bạn đã quen với các khái niệm cơ bản này, việc khám phá các tính năng nâng cao hơn sẽ trở nên dễ dàng hơn rất nhiều. Chúc bạn thành công!
Hướng dẫn sử dụng Mautic
Sau khi cài đặt, bạn có thể bắt đầu sử dụng Mautic để tạo chiến dịch marketing. Dưới đây là hướng dẫn chi tiết dựa trên Getting Started with Mautic.
1. Đăng nhập và cấu hình cơ bản
- Đăng nhập vào Mautic tại
http://<IP_của_server>:8080. - Vào Settings (biểu tượng bánh răng) để cấu hình:
- Company Information: Thêm tên và logo công ty.
- Users: Tạo tài khoản cho các thành viên trong nhóm.
- Configuration: Cấu hình múi giờ, ngôn ngữ, và các thiết lập khác.
2. Tạo form để thu thập thông tin
- Vào Components > Forms > New.

- Chọn Campaign Form, đặt tên (ví dụ: “Form Liên Hệ”).

- Thêm các trường:
- Text Field: First Name (liên kết với Contact Field “First Name”).
- Email Field: Email (bắt buộc).



- Nhấn Save & Close.
3. Tạo landing page
- Vào Landing Pages > New.
- Đặt tiêu đề (ví dụ: “Trang Đăng Ký”).
- Chọn template (ví dụ: Oxygen).
- Sử dụng Builder để chèn form bằng token
{form=Form Liên Hệ}. - Nhấn Save & Close và kiểm tra qua Public Preview.

4. Thiết kế email
- Vào Channels > Emails > New.
- Chọn New Template Email, sử dụng template Blank.
- Đặt tiêu đề (ví dụ: “Cảm ơn bạn đã đăng ký!”).
- Cá nhân hóa nội dung với
{contactfield=firstname}. - Nhấn Save & Close.
5. Tạo chiến dịch
- Vào Campaigns > New.
- Đặt tên (ví dụ: “Chiến Dịch Đầu Tiên”).
- Nhấn Launch Campaign Builder:
- Source: Chọn Campaign Forms, thêm form đã tạo.
- Actions:
- Modify Contact’s Segments: Thêm vào segment “Khách Hàng Mới”.
- Send Email: Chọn email đã tạo.
- Decisions: Thêm “Opens Email” và “Adjust Contact Points” (+10 điểm nếu mở email).
- Nhấn Save & Close, bật trạng thái Published.
6. Kiểm tra và theo dõi
- Mở Landing Pages, sao chép URL của trang đích, và thử điền form trong trình duyệt ẩn danh.
- Kiểm tra Campaigns để xem các hành động đã thực hiện.
- Vào Reports > New để tạo báo cáo, ví dụ: “Form Submissions in 2025”.
- Sử dụng Dashboard để theo dõi hiệu suất chiến dịch theo thời gian thực.
Một vài lỗi và cách xử lý
Xử lý lỗi Worker khởi động lại liên tục (SyncTransport Error)
Trong quá trình cài đặt Mautic trên Docker, một trong những lỗi phổ biến nhất mà bạn có thể gặp phải là container mautic_worker bị khởi động lại liên tục (Crash loop), khiến file log tăng dung lượng hàng trăm MB chỉ trong vài phút.
1. Hiện tượng nhận biết
Khi bạn kiểm tra log của worker bằng lệnh docker logs -f mautic_worker_container, bạn sẽ thấy các dòng log chạy liên tục không dừng với nội dung tương tự như sau:
WARN exited: messenger-consume-email_01 (exit status 1; not expected)
INFO spawned: 'messenger-consume-email_01' with pid 1234
In SyncTransport.php line 37:
You cannot receive messages from the Messenger SyncTransport.2. Nguyên nhân kỹ thuật
Lỗi này xảy ra do sự xung đột về cơ chế xử lý tin nhắn (Message Queue):
- Mautic mặc định: Đang được cấu hình ở chế độ Sync (Xử lý ngay lập tức các tác vụ như gửi email, cập nhật segment).
- Docker Worker: Đang chạy lệnh
messenger:consume(Yêu cầu lấy tác vụ từ hàng đợi để xử lý).
Worker cố gắng “lấy việc” từ hàng đợi, nhưng hệ thống lại bảo “làm ngay đi, không có hàng đợi nào cả” (Sync). Điều này khiến tiến trình bị lỗi (Crash), và Docker Supervisor tự động khởi động lại nó, tạo thành một vòng lặp vô tận.
3. Cách khắc phục nhanh bằng Dashboard
Thay vì phải can thiệp vào các file cấu hình sâu trong hệ thống, bạn có thể sửa lỗi này ngay trên giao diện quản trị của Mautic.
Bước 1: Truy cập cài đặt Queue
- Đăng nhập vào Mautic Dashboard.
- Bấm vào biểu tượng Bánh răng (Settings) ở góc trên cùng bên phải > Chọn Configuration.
- Ở cột menu bên trái, tìm và chọn mục Queue Settings.
Bước 2: Cấu hình sang Doctrine Mặc định phần Queue for email (SMS and push messages) và Queue for hits (page and email) đang để là sync. Bạn hãy thay đổi như sau:
- Scheme: Nhập
doctrine - Host: Nhập
default(Lưu ý: Đây là bước quan trọng nhất, nếu bỏ trống ô này sẽ bị lỗi “Invalid DSN”). - Các ô còn lại (Port, Path, User, Password): Để trống.
Sau khi nhập xong, hãy kiểm tra dòng trạng thái bên dưới nút “Send test message”, nó phải hiện là: Using currently saved DSN: doctrine://default
Bấm Save & Close để lưu lại.

Bước 3: Áp dụng thay đổi cho Docker Sau khi lưu trên Web, bạn cần xóa Cache và khởi động lại Worker để container nhận diện cấu hình mới. Hãy mở Terminal và chạy 2 lệnh sau:
# 1. Xóa cache cũ của Mautic
docker compose exec mautic_web php bin/console cache:clear
# 2. Khởi động lại Worker (Lúc này log sẽ đứng yên và báo OK)
docker compose restart mautic_workerBây giờ, khi kiểm tra lại log, bạn sẽ thấy thông báo [OK] Consuming messages... nghĩa là hệ thống đã hoạt động ổn định và không còn tốn tài nguyên ổ cứng vô ích nữa.
Mautic là một công cụ tuyệt vời để tự động hóa marketing mà không tốn chi phí. Với hướng dẫn này, bạn có thể dễ dàng cài đặt Mautic trên Ubuntu bằng Docker Compose và bắt đầu chiến dịch marketing đầu tiên.








