SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
GIANCARLO DI MASSA // DIGITALL.IT
Empowering your website
by integrating an open source
marketing automation platform
SilverStripe♥Mautic
Intendedaudience
What’s marketing automation?
Seasoned developer
• Finds installation of the platform and
module code trivial
• Wants to learn core marketing
automation concepts
• Wants to know more about Mautic
How to create a module?
Novice developer
• Is an Open Source code consumer
• Creates code for his own projects
• Wants to learn some best practices on
integrating third party services
• Would like to start contributing by
converting his/her existing code to a
shareable module
We use HubSpot, so what?
Marketing Agency
• Already implements marketing
automation day to day
• Uses a closed source software
• Is considering the switch to a complete
Open Source solution based on Mautic
and SilverStripe
How about deliverability?
Junior DevOps Operator
• Knows that sending mass emails can be
difficult
• Would prefer certified third party email
transports
• Would like to improve deliverability of
the emails sent on server
Theproblemwithnewsletters
Another newsletter?
Great effort to stand out
• Newsletters and emails sent one to one
are treated differently
• Mailboxes have a systemic problem of
information overload
• Typical user receives hundreds if not
thousands of UCE (Unsolicited
Commercial Email) every month
• Even after removing all the spam, there
are still a lot of emails to read
Nigerian
prince!
Get his
fortune,
now!
€
$
¥
Tom Fishburne
"The best marketing doesn’t feel like
marketing."
Dear <First> <Last>
Limited customization
• We can actually understand if the email
is actually tailored for us or speaks to a
general public
• Knowing my name is not enough
anymore
• We care about timing as well
• To be effective, some information needs
to be delivered over a long period
(spaced repetition)
ALL YOUR BASE
ARE BELONG TO US!
Dan Jak
"Personalisation – it is not about first/
last name. It’s about relevant content."
Working over numbers
SaaS services tier limited
• Some services bill you by each email
sent, or by contacts, or by features
• Pricing tiers are organized by design so
that important features are available
only on higher plans
• Complete systems that incorporate
real marketing automation tend to
have monthly costs that cut out
smaller businesses
HubSpot
Marketing Hub pricing
HubSpot
CMS Hub pricing
Right here, right now
Timing
• Newsletters are usually organized
around the concept of bulk synced
communication
• The same information is delivered to a
whole group all at the same time
• It doesn’t consider that contacts are at
various stages of engagement
Marketingautomationconcepts
Contact added
Send welcome
email #1
Opens email #1?
Wait 1 day
Sends followup
email #2
Opens email #2?
Add 10 points to
contact
Add 10 points to
contact
Wait 2 days
Sends followup
email #3
Opens email #3?
Remove contact
Add 10 points to
contact
Downloads a PDF
Add 20 points to
contact
Set contact as
hot lead
More than 50 pts?
Tweets with
mention or
hashtag
Add 20 points to
contact
Visits website
Add 5 points to
contact
Show focus
Yes Yes
Yes
No Yes
Marketing automation
Campaign basic example
John Caldwell
"To get the right message to the right person
at the right time you first need to get the right
data to the right database at the right time."
Decision Action Condition
Contact performs an operation
(downloads a file, opens an email,
visits a website)
Mautic performs an operation
(sends an email, changes contact
group)
Variables (field values,
submitted form data) influence
operation flow
Marketing automation
Decision tree UI
Drip marketing
Marketing automation
• The contact, or lead, starts a journey
• He/she is exposed to engagement events
and actions
• Receives messages via email, SMS and/or
Twitter
• Answers messages, visits your site,
downloads files
• Enriches his card with new data
• This may take days, weeks, even months!
Points
Matt Blumberg
"Reaching the inbox isn't your goal -
engaging people is"
Hot lead
Marketing automation
• The journey of the contacts continues
until one of them gets a very high score
• That will mean he/she is very interested
in your product or service
• The contact is now an hot lead and you
can decide to directly and manually
engage to him/her over phone, Zoom or
email
• At this stage, the contact is pushed (hot
lead handover) to another integration,
usually a CRM, or you simply get an email
notification telling there’s a call to make
Lead generation
Marketing automation
• Lead Ads from Google, Facebook,
LinkedIn, Instagram
• Google Ads
• Your website traffic
• Organic social networking
• Events and conferences
• Re-engaging existing customers list
That means
you don’t pay
ad money!
People to sell stuff to
Mummy
Granny
Jennifer from high school
Creepy guy next door
Michael, because I helped
him out with the lawn
Landing pages
Marketing automation
• Web pages with content highly
optimized for conversion
• Can be made with a drag and drop
builder directly in the marketing
automation platform
• Usually disconnected from the main
website, don’t even have any sort of
menu or navigation
• Intercept a very delicate moment in the
user's decision-making process
Channels
Marketing automation
• Email
• Push notifications
• iOS and Android
• Web
• SMS
• Tracks anwers
• Respects “Do Not Contact”
duh!
In Mautic that’s
managed by
One Signal
Mautic comes with an
integration for Twilio
out of the box
Definitely not
TV channels!
(hey I got
the same remote!)
Lead nurturing
Marketing automation
• Contact lifecycle
• Stages
• Segments
• Progressive profiling
• Video gating
• Focus items
• Bars
• Modals
• Full page takeovers
• Social monitoring
• Twitter hashtags and mentions
In short, we’re talking
about tailor made popups
that know you!
Marketing funnel
MauticInstallation
GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021
• SaaS version by Acquia, who acquired Mautic on May 2019
• Acquia mantains a paid-for version called Campaign Studio on mautic.com
• Open Source version on mautic.org benefits of active development made possible by Acquia
programmers
• Thriving community of developers
• Active marketplace of both free and paid-for plugins that extends the platform
• Can be integrated with other projects either via a Mautic Plugin, Mautic API and even Zapier
• Also available as a Docker Hub as a single image mautic/mautic
MauticInstallation
Self-hosted and SaaS
GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021
• Symfony project
• Can be installed via
• All releases available as a zipball on mautic.org website
• Requires a database and at least one dedicated email address
• Major version 4.0 has just been released on August 2021 and supports PHP 7.4
MauticInstallation
Basic deployment
composer create-project mautic/core mautic ^4 —no-dev
Suggested
installation method
by developers!
Yay!
PHP 8.0
coming soon!
GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021
MauticInstallation
Required Cron jobs
Update segments mautic:segments:update
Update campaigns mautic:campaigns:update
Execute Campaign Actions mautic:campaigns:trigger
• Mautic uses the Symfony Console Component
• Console is called via
• Some operations need to be performed periodically via cron jobs and are required
• The scripts may be resource intensive as they process 300 contacts at time
• You can use —batch-limit=X to limit the number of contacts to be processed at once
php path/to/mautic/bin/console [arguments]
GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021
MauticInstallation
Optional Cron jobs
Send queued emails mautic:emails:send
Process bounces mautic:email:fetch
Monitor social networks mautic:social:monitoring
Batch send webhooks mautic:webhooks:process
Update IP Lookup Database mautic:iplookup:download
Clean up old data mautic:maintenance:cleanup -g -n
Send scheduled reports mautic:reports:scheduler
Import data from CSV files in background mautic:import
Some operations can be performed periodically via cron jobs and are optional
GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021
• Broadcasts are emails sent to a segment (a group of contacts)
• Those are sent while waiting with the browser window open
• If the segment is large, you can send in background via an optional cron job
MauticInstallation
Optional Broadcast Cron job
Send scheduled broadcasts mautic:broadcasts:send
GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021
• CCPA stands for California Consumer Privacy Act (CCPA)
• Similar to GDPR, first law of his kind in the United States
• Applies to all for-profit corporations around the world that sell the personal information of
more than 50,000 California residents annually
• Or have gross annual revenues in excess of $ 25 million
• Or derive more than 50 percent of their annual turnover from the sale of personal information
of California residents
MauticInstallation
MaxMind CCPA Compliance Cron jobs
GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021
If your installation falls under CCPA and if at least one of the preceding conditions is met,
there are some required cronjobs to run
MauticInstallation
MaxMind CCPA Compliance Cron jobs
Update the “Do Not Sell” list mautic:donotsell:download
Purge data in the the “Do Not Sell” list mautic:max-mind:purge
php -d memory_limit=4096M bin/console cache:clear
php -d memory_limit=4096M bin/console mautic:update:find
php -d memory_limit=4096M bin/console mautic:update:apply
php -d memory_limit=4096M bin/console doctrine:migration:status
php -d memory_limit=4096M bin/console doctrine:migration:migrate
YO U R B E S T
Clears
the cache!
Checks
for updates!
Updates
the installation!
Checks
the database
structure!
Updates
the database
structure!
Allocates more
memory to the
script!
IntegrationModuleDemo
git clone https://github.com/digitall-it/docker.git docker
cd docker
mkdir src
docker-compose up -d
docker exec -it docker_web_1 /bin/bash
composer create-project silverstripe/installer /var/www/html
cd html
composer require silverstripe/userforms
composer require digitall-it/silverstripe-mautic --prefer-source
./vendor/bin/sake dev/build "flush=all"
Based on Brett
Tasker's configuration
Creates a web and
database servers!
SSH into Docker!
Creates a
SilverStripe project!
Installs the UserForms module!
Installs the Mautic
integration module!
Rebuilds the
SilverStripe
database and
clears caches!
Clones from the
source repository
instead of extracting
the Packagist zipball
so you can commit!
Thanks!
Write a new
password to
change it!
mapping allows
to use existing
field names in
your forms!
Module provides
a working default!
The module caches
the segment list:
if you change it in Mautic,
flush the cache!
$Mautic = Injector::inst()->get('Mautic');
$Mautic->setAuth(SiteConfig::current_site_config());
$fieldsMapped = $Mautic->MapFields($fields, SiteConfig::current_site_config()->MauticFieldMapping);
if (count($fieldsMapped) > 0) $Mautic->addOrUpdateContact($fieldsMapped, $MauticSegmentAlias);
Manual push of contacts
put this
name here!
What’s next?
Integration module
• Internationalization
• Support for oAuth 1.0 and 2.0
• Unit and functional tests
• Extension hooks
• All fields of contact can change on update
• Ability to add points and trigger events
• Stable release 1.0 at the end of the year
• Mautic plugin to push data back!
..and bugfixes!
DevOps
Email deliverability: DKIM
• DKIM stands for DomainKeys Identified
Mail and provides an encryption key and
digital signature that verifies that an
email message was not faked or altered
• Requires native support by a modern mail
server
• You need to publish the correct public key
and verification criteria records into
your DNS server
• You also need to ensure that email sent
from your server are signed
DevOps
Email deliverability: SPF
DevOps
• SPF stands for Sender Policy
Framework
• Allows to set a policy that authorizes
particular hosts to send mail from the
domain
• The receiver checks the policy list to
ensure that the sender server is
included
• You need to publish the correct SPF
policy record into your DNS server
Email deliverability: DMARC
• DMARC stands for Domain-based
Message Authentication, Reporting &
Conformance
• Extends the capabilities of the SPF and
DKIM sender policies
• The DMARC policy defines how the
receiver should treat email messages
depending on the results of DKIM and SPF
checking
• You need to publish the correct DMARC
policy record into your DNS server
DevOps
Mail transports
DevOps
• Amazon Simple Email Service
• Elastic Email
• Gmail
• Mailjet
• Mandrill
• Pepipost
• Sendgrid
• Sendmail
• SMTP
• Sparkpost
GDPR compliancy
DevOps
• Double opt-in
• Data storage
• Distinct checkboxes
• Tracking and cookies
composer require lerni/klaro-cookie-consent
✔
✔
Privacy policy
Marketing
Bounce management
DevOps
• Some transports use Variable envelope
return path (VERP), a technique to
detect undeliverable e-mail addresses. It
works by using a different return path
(also called "envelope sender")
• In practice, they use real time created
aliases like myemail+12345@domain.dev
to know exactly who received the email
• Some trasports instead have webhooks
and callbacks: Elastic Email, Amazon,
Mandrill, Mailjet, Sparkpost,
SendGrid
HowIMetYourModule
Module base
• Add your name/organisation to LICENSE.md
• Actually read and update the README files
• Update the composer.json and package.json with
your chosen package name
• Create a new repository on git and push your
module base
• Login and fill a form on packagist.org to publish your
module
• Composer require the module in a development
SilverStripe environment, preferring source
• Start developing your module, you can even push
directly from the vendor/yourmodule folder of the
environment!
How I Met Your Module
git clone 
https://github.com/silverstripe/silverstripe-module 
yourmodule
cd yourmodule
rm -rf .git && git init
your journey
begins here!
cleans the git
history so you get
a fresh start!
yes, it’s that easy!
use the docker,
Luke!
the horn from
How I Met Your Mother..
what, you didn’t see the show?
c’mon, Neil Patrick Harris
rocked, there!
Best practices
How I Met Your Module
• Do not create directly your classes
• Try to decouple your code as much as
possible
• Consider TDD (test driven development)
• Do not require unnecessary code
• Do not just assume everyone will want
your javascript code in the frontend!
• Leverage SilverStripe Cache in your
results if you can!
use SilverStripeCoreInjectorInjector;
. . .
$object = Injector::inst()->create('MyClassName')
SilverStripeCoreInjectorInjector:
PsrSimpleCacheCacheInterface.myModuleCache:
factory: SilverStripeCoreCacheCacheFactory
constructor:
namespace: "myModuleCache"
use PsrSimpleCacheCacheInterface;
use SilverStripeCoreInjectorInjector;
. . .
$cache = Injector::inst()
->get(CacheInterface::class . ‘.myModuleCache’);
$myValue = $cache->get(‘myCacheKey');
$cache->set('myCacheKey', 1234);
if (!$cache->has('myCacheKey')) {. . .}
$cache->delete(‘myCacheKey');
$string = $anotherobject->method();
$object->method($string);
when instancing!
switchable
and testable!
in your yaml
in your code
Mautic API
• Exposes a REST API
• Has his own PHP Mautic API Client
• My module builds on top of that
How I Met Your Module
APIAUTH
CONTACTAPI
MAUTICAPI
MAUTIC
CaseStudy“NegomboPark”
Questions?
Twitter @digitall_it
#ilovestripecon
https://marketing.digitall.it/stripecon2021
GIANCARLO DI MASSA // DIGITALL.IT
Thankyou
Credits
NOHK, Element5 Digital, Christina Morillo, Tim Gouw, Markus Spiske, Kaboompics.com, Danny
Meneses, R. Fera, Musa Artful, Tim Douglas, Eva Elijas, Ketut Subiyanto, Nothing Ahead,
Redrecords, Gradienta, Angela Roma, RF._.studio, Mikhail Nilov, Markus Winkler
Pexels Stock Photos
Mikhail Fesenko, Karsten Winegeart
Unsplash Stock Photos

Mais conteúdo relacionado

Mais procurados

Contribution day guide. MLEU 2019
Contribution day guide. MLEU 2019Contribution day guide. MLEU 2019
Contribution day guide. MLEU 2019Oleksii Korshenko
 
Build with Serverless Applications with azure functions By usama wahab Khan
Build with Serverless Applications with azure functions By usama wahab KhanBuild with Serverless Applications with azure functions By usama wahab Khan
Build with Serverless Applications with azure functions By usama wahab KhanUsama Wahab Khan Cloud, Data and AI
 
Containers at Netflx - An Evolving Story QConSF2015
Containers at Netflx - An Evolving Story QConSF2015Containers at Netflx - An Evolving Story QConSF2015
Containers at Netflx - An Evolving Story QConSF2015Sangeeta Narayanan
 
Get More From Your Messages with Twilio + Watson Add-Ons
Get More From Your Messages with Twilio + Watson Add-OnsGet More From Your Messages with Twilio + Watson Add-Ons
Get More From Your Messages with Twilio + Watson Add-OnsIBM Watson
 
Orchestrating microservices like a ninja
Orchestrating microservices like a ninjaOrchestrating microservices like a ninja
Orchestrating microservices like a ninjaApigee | Google Cloud
 
GITPro World Apr 2015 - Continuous Innovation with Rapid Software Delivery
 GITPro World Apr 2015 - Continuous Innovation with Rapid Software Delivery GITPro World Apr 2015 - Continuous Innovation with Rapid Software Delivery
GITPro World Apr 2015 - Continuous Innovation with Rapid Software DeliverySangeeta Narayanan
 
[AzureCamp 24 Juin 2014] Témoignage de Conuxio par Arnaud Lecoufle
[AzureCamp 24 Juin 2014] Témoignage de Conuxio par Arnaud Lecoufle[AzureCamp 24 Juin 2014] Témoignage de Conuxio par Arnaud Lecoufle
[AzureCamp 24 Juin 2014] Témoignage de Conuxio par Arnaud LecoufleMicrosoft Technet France
 
Customer Story: Property Partner
Customer Story: Property PartnerCustomer Story: Property Partner
Customer Story: Property PartnerAmazon Web Services
 
Microsoft Azure News - Sept 2015
Microsoft Azure News - Sept 2015Microsoft Azure News - Sept 2015
Microsoft Azure News - Sept 2015Daniel Toomey
 
Why Measuring Page Load Is The Wrong Metric
Why Measuring Page Load Is The Wrong MetricWhy Measuring Page Load Is The Wrong Metric
Why Measuring Page Load Is The Wrong MetricNew Relic
 
QConSF 2014 - How we learned to stop worrying and start deploying the Netflix...
QConSF 2014 - How we learned to stop worrying and start deploying the Netflix...QConSF 2014 - How we learned to stop worrying and start deploying the Netflix...
QConSF 2014 - How we learned to stop worrying and start deploying the Netflix...Sangeeta Narayanan
 
Microsoft Azure News - Aug 2015
Microsoft Azure News - Aug 2015Microsoft Azure News - Aug 2015
Microsoft Azure News - Aug 2015Daniel Toomey
 
Seminario Cloud computing Ordine di latina - L'offerta di Amazon Web Services
Seminario Cloud computing Ordine di latina - L'offerta di Amazon Web ServicesSeminario Cloud computing Ordine di latina - L'offerta di Amazon Web Services
Seminario Cloud computing Ordine di latina - L'offerta di Amazon Web ServicesClaudio Pontili
 
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"Fwdays
 
Move Fast;Stay Safe:Developing & Deploying the Netflix API
Move Fast;Stay Safe:Developing & Deploying the Netflix APIMove Fast;Stay Safe:Developing & Deploying the Netflix API
Move Fast;Stay Safe:Developing & Deploying the Netflix APISangeeta Narayanan
 
Will ServerLess kill containers and Operations
Will ServerLess kill containers and OperationsWill ServerLess kill containers and Operations
Will ServerLess kill containers and OperationsStephane Woillez
 
Novidades do ASP.NET e do Visual Studio 2013
Novidades do ASP.NET e do Visual Studio 2013Novidades do ASP.NET e do Visual Studio 2013
Novidades do ASP.NET e do Visual Studio 2013Jiéverson Maissiat
 
Engineering Manager, Edge Insights @Netflix
Engineering Manager, Edge Insights @NetflixEngineering Manager, Edge Insights @Netflix
Engineering Manager, Edge Insights @NetflixSangeeta Narayanan
 
OpenStack Summit 2016 - First Take Day #1 Keynote
OpenStack Summit 2016 - First Take Day #1 KeynoteOpenStack Summit 2016 - First Take Day #1 Keynote
OpenStack Summit 2016 - First Take Day #1 KeynoteHolger Mueller
 

Mais procurados (20)

Contribution day guide. MLEU 2019
Contribution day guide. MLEU 2019Contribution day guide. MLEU 2019
Contribution day guide. MLEU 2019
 
Build with Serverless Applications with azure functions By usama wahab Khan
Build with Serverless Applications with azure functions By usama wahab KhanBuild with Serverless Applications with azure functions By usama wahab Khan
Build with Serverless Applications with azure functions By usama wahab Khan
 
Containers at Netflx - An Evolving Story QConSF2015
Containers at Netflx - An Evolving Story QConSF2015Containers at Netflx - An Evolving Story QConSF2015
Containers at Netflx - An Evolving Story QConSF2015
 
Get More From Your Messages with Twilio + Watson Add-Ons
Get More From Your Messages with Twilio + Watson Add-OnsGet More From Your Messages with Twilio + Watson Add-Ons
Get More From Your Messages with Twilio + Watson Add-Ons
 
Orchestrating microservices like a ninja
Orchestrating microservices like a ninjaOrchestrating microservices like a ninja
Orchestrating microservices like a ninja
 
GITPro World Apr 2015 - Continuous Innovation with Rapid Software Delivery
 GITPro World Apr 2015 - Continuous Innovation with Rapid Software Delivery GITPro World Apr 2015 - Continuous Innovation with Rapid Software Delivery
GITPro World Apr 2015 - Continuous Innovation with Rapid Software Delivery
 
[AzureCamp 24 Juin 2014] Témoignage de Conuxio par Arnaud Lecoufle
[AzureCamp 24 Juin 2014] Témoignage de Conuxio par Arnaud Lecoufle[AzureCamp 24 Juin 2014] Témoignage de Conuxio par Arnaud Lecoufle
[AzureCamp 24 Juin 2014] Témoignage de Conuxio par Arnaud Lecoufle
 
Customer Story: Property Partner
Customer Story: Property PartnerCustomer Story: Property Partner
Customer Story: Property Partner
 
Microsoft Azure News - Sept 2015
Microsoft Azure News - Sept 2015Microsoft Azure News - Sept 2015
Microsoft Azure News - Sept 2015
 
Why Measuring Page Load Is The Wrong Metric
Why Measuring Page Load Is The Wrong MetricWhy Measuring Page Load Is The Wrong Metric
Why Measuring Page Load Is The Wrong Metric
 
QConSF 2014 - How we learned to stop worrying and start deploying the Netflix...
QConSF 2014 - How we learned to stop worrying and start deploying the Netflix...QConSF 2014 - How we learned to stop worrying and start deploying the Netflix...
QConSF 2014 - How we learned to stop worrying and start deploying the Netflix...
 
Supercharge your Clioday: Advanced Features and Efficiencies
Supercharge your Clioday: Advanced Features and EfficienciesSupercharge your Clioday: Advanced Features and Efficiencies
Supercharge your Clioday: Advanced Features and Efficiencies
 
Microsoft Azure News - Aug 2015
Microsoft Azure News - Aug 2015Microsoft Azure News - Aug 2015
Microsoft Azure News - Aug 2015
 
Seminario Cloud computing Ordine di latina - L'offerta di Amazon Web Services
Seminario Cloud computing Ordine di latina - L'offerta di Amazon Web ServicesSeminario Cloud computing Ordine di latina - L'offerta di Amazon Web Services
Seminario Cloud computing Ordine di latina - L'offerta di Amazon Web Services
 
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
Jose Quaresma "DevOps in the Enterprise: what I have learned so far"
 
Move Fast;Stay Safe:Developing & Deploying the Netflix API
Move Fast;Stay Safe:Developing & Deploying the Netflix APIMove Fast;Stay Safe:Developing & Deploying the Netflix API
Move Fast;Stay Safe:Developing & Deploying the Netflix API
 
Will ServerLess kill containers and Operations
Will ServerLess kill containers and OperationsWill ServerLess kill containers and Operations
Will ServerLess kill containers and Operations
 
Novidades do ASP.NET e do Visual Studio 2013
Novidades do ASP.NET e do Visual Studio 2013Novidades do ASP.NET e do Visual Studio 2013
Novidades do ASP.NET e do Visual Studio 2013
 
Engineering Manager, Edge Insights @Netflix
Engineering Manager, Edge Insights @NetflixEngineering Manager, Edge Insights @Netflix
Engineering Manager, Edge Insights @Netflix
 
OpenStack Summit 2016 - First Take Day #1 Keynote
OpenStack Summit 2016 - First Take Day #1 KeynoteOpenStack Summit 2016 - First Take Day #1 Keynote
OpenStack Summit 2016 - First Take Day #1 Keynote
 

Semelhante a SilverStripe ♥︎ Mautic

HP and MindFire Presentation at Dscoop9: Integrating Print in Marketing Campa...
HP and MindFire Presentation at Dscoop9: Integrating Print in Marketing Campa...HP and MindFire Presentation at Dscoop9: Integrating Print in Marketing Campa...
HP and MindFire Presentation at Dscoop9: Integrating Print in Marketing Campa...mindfire.agency
 
Business models in consumer technology
Business models in consumer technologyBusiness models in consumer technology
Business models in consumer technologyJan Dawson
 
Gamooga campaign management product deck - insurance
Gamooga campaign management product deck - insuranceGamooga campaign management product deck - insurance
Gamooga campaign management product deck - insuranceR.M. Singh
 
Presentation on digital mkt
Presentation on digital mktPresentation on digital mkt
Presentation on digital mktprateebha
 
What Your Marketing Automation Vendor Won't Ever Tell You
What Your Marketing Automation Vendor Won't Ever Tell YouWhat Your Marketing Automation Vendor Won't Ever Tell You
What Your Marketing Automation Vendor Won't Ever Tell YouEsanosys
 
How to improve your performance online - survey results Microsoft Dynamics Pa...
How to improve your performance online - survey results Microsoft Dynamics Pa...How to improve your performance online - survey results Microsoft Dynamics Pa...
How to improve your performance online - survey results Microsoft Dynamics Pa...Patrick Dalle
 
Mobile Advertising Company
Mobile Advertising CompanyMobile Advertising Company
Mobile Advertising Companysanjeevkr471
 
Digital Lead Generation for Economic Development
Digital Lead Generation for Economic DevelopmentDigital Lead Generation for Economic Development
Digital Lead Generation for Economic DevelopmentAtlas Integrated
 
Digital marketing 101 v1.0
Digital marketing 101 v1.0Digital marketing 101 v1.0
Digital marketing 101 v1.0Agencyonnet.com
 
Marketing automation does not happen automatically
Marketing automation does not happen automaticallyMarketing automation does not happen automatically
Marketing automation does not happen automaticallyThe House of Marketing
 
How TracksGiving can help you implement your campaigning software up quicker ...
How TracksGiving can help you implement your campaigning software up quicker ...How TracksGiving can help you implement your campaigning software up quicker ...
How TracksGiving can help you implement your campaigning software up quicker ...Ritvvij Parrikh
 
Marketing Cloud, SalesforceSaturday
Marketing Cloud, SalesforceSaturdayMarketing Cloud, SalesforceSaturday
Marketing Cloud, SalesforceSaturdayAtul Gupta(8X)
 
Digital Marketing Workshop
Digital Marketing WorkshopDigital Marketing Workshop
Digital Marketing WorkshopFrancois Brill
 
Marketing your Mobile Presence
Marketing your Mobile PresenceMarketing your Mobile Presence
Marketing your Mobile PresenceSerge Milbank
 
Mobile Marketing Trends and Strategies
Mobile Marketing Trends and StrategiesMobile Marketing Trends and Strategies
Mobile Marketing Trends and StrategiesAlexander Tsatkin
 
7 Step To Digital Marketing Success
7 Step To Digital Marketing Success7 Step To Digital Marketing Success
7 Step To Digital Marketing SuccessRussell Cummings
 
Digital Marketing Automation with Salesforce Marketing Cloud
Digital Marketing Automation with Salesforce Marketing CloudDigital Marketing Automation with Salesforce Marketing Cloud
Digital Marketing Automation with Salesforce Marketing CloudThinqloud
 
Microsoft directions emea how to improve your performance online - lemarco ...
Microsoft directions emea   how to improve your performance online - lemarco ...Microsoft directions emea   how to improve your performance online - lemarco ...
Microsoft directions emea how to improve your performance online - lemarco ...Patrick Dalle
 
Microsoft Directions EMEA - How to improve your performance online - Lemarco ...
Microsoft Directions EMEA - How to improve your performance online - Lemarco ...Microsoft Directions EMEA - How to improve your performance online - Lemarco ...
Microsoft Directions EMEA - How to improve your performance online - Lemarco ...Erik Verheyden
 

Semelhante a SilverStripe ♥︎ Mautic (20)

HP and MindFire Presentation at Dscoop9: Integrating Print in Marketing Campa...
HP and MindFire Presentation at Dscoop9: Integrating Print in Marketing Campa...HP and MindFire Presentation at Dscoop9: Integrating Print in Marketing Campa...
HP and MindFire Presentation at Dscoop9: Integrating Print in Marketing Campa...
 
Business models in consumer technology
Business models in consumer technologyBusiness models in consumer technology
Business models in consumer technology
 
Gamooga campaign management product deck - insurance
Gamooga campaign management product deck - insuranceGamooga campaign management product deck - insurance
Gamooga campaign management product deck - insurance
 
Presentation on digital mkt
Presentation on digital mktPresentation on digital mkt
Presentation on digital mkt
 
What Your Marketing Automation Vendor Won't Ever Tell You
What Your Marketing Automation Vendor Won't Ever Tell YouWhat Your Marketing Automation Vendor Won't Ever Tell You
What Your Marketing Automation Vendor Won't Ever Tell You
 
How to improve your performance online - survey results Microsoft Dynamics Pa...
How to improve your performance online - survey results Microsoft Dynamics Pa...How to improve your performance online - survey results Microsoft Dynamics Pa...
How to improve your performance online - survey results Microsoft Dynamics Pa...
 
Mobile Advertising Company
Mobile Advertising CompanyMobile Advertising Company
Mobile Advertising Company
 
Digital Lead Generation for Economic Development
Digital Lead Generation for Economic DevelopmentDigital Lead Generation for Economic Development
Digital Lead Generation for Economic Development
 
Digital marketing 101 v1.0
Digital marketing 101 v1.0Digital marketing 101 v1.0
Digital marketing 101 v1.0
 
Marketing automation does not happen automatically
Marketing automation does not happen automaticallyMarketing automation does not happen automatically
Marketing automation does not happen automatically
 
How TracksGiving can help you implement your campaigning software up quicker ...
How TracksGiving can help you implement your campaigning software up quicker ...How TracksGiving can help you implement your campaigning software up quicker ...
How TracksGiving can help you implement your campaigning software up quicker ...
 
Marketing Cloud, SalesforceSaturday
Marketing Cloud, SalesforceSaturdayMarketing Cloud, SalesforceSaturday
Marketing Cloud, SalesforceSaturday
 
dotmailer
dotmailerdotmailer
dotmailer
 
Digital Marketing Workshop
Digital Marketing WorkshopDigital Marketing Workshop
Digital Marketing Workshop
 
Marketing your Mobile Presence
Marketing your Mobile PresenceMarketing your Mobile Presence
Marketing your Mobile Presence
 
Mobile Marketing Trends and Strategies
Mobile Marketing Trends and StrategiesMobile Marketing Trends and Strategies
Mobile Marketing Trends and Strategies
 
7 Step To Digital Marketing Success
7 Step To Digital Marketing Success7 Step To Digital Marketing Success
7 Step To Digital Marketing Success
 
Digital Marketing Automation with Salesforce Marketing Cloud
Digital Marketing Automation with Salesforce Marketing CloudDigital Marketing Automation with Salesforce Marketing Cloud
Digital Marketing Automation with Salesforce Marketing Cloud
 
Microsoft directions emea how to improve your performance online - lemarco ...
Microsoft directions emea   how to improve your performance online - lemarco ...Microsoft directions emea   how to improve your performance online - lemarco ...
Microsoft directions emea how to improve your performance online - lemarco ...
 
Microsoft Directions EMEA - How to improve your performance online - Lemarco ...
Microsoft Directions EMEA - How to improve your performance online - Lemarco ...Microsoft Directions EMEA - How to improve your performance online - Lemarco ...
Microsoft Directions EMEA - How to improve your performance online - Lemarco ...
 

Último

Dave Cousin TW-BERT Good for Users, Good for SEOsBrighton SEO Deck
Dave Cousin TW-BERT Good for Users, Good for SEOsBrighton SEO DeckDave Cousin TW-BERT Good for Users, Good for SEOsBrighton SEO Deck
Dave Cousin TW-BERT Good for Users, Good for SEOsBrighton SEO DeckOban International
 
Codes and Conventions of Film Magazine Covers.pptx
Codes and Conventions of Film Magazine Covers.pptxCodes and Conventions of Film Magazine Covers.pptx
Codes and Conventions of Film Magazine Covers.pptxGeorgeCulica
 
20 Top Social Media Tips for Peer Specialists
20 Top Social Media Tips for Peer Specialists20 Top Social Media Tips for Peer Specialists
20 Top Social Media Tips for Peer Specialistsmlicam615
 
Agencia Marketing Branding Measurement Certification Google Ads Abril 2024
Agencia Marketing Branding Measurement Certification Google Ads Abril 2024Agencia Marketing Branding Measurement Certification Google Ads Abril 2024
Agencia Marketing Branding Measurement Certification Google Ads Abril 2024Marketing BRANDING
 
5 Digital Marketing Tips | Devherds Software Solutions
5 Digital Marketing Tips | Devherds Software Solutions5 Digital Marketing Tips | Devherds Software Solutions
5 Digital Marketing Tips | Devherds Software SolutionsDevherds Software Solutions
 
Paul Russell Confidential Resume for Fahlo.pdf
Paul Russell Confidential Resume for Fahlo.pdfPaul Russell Confidential Resume for Fahlo.pdf
Paul Russell Confidential Resume for Fahlo.pdfpaul8402
 
Richard van der Velde, Technical Support Lead for Cookiebot @CMP – “Artificia...
Richard van der Velde, Technical Support Lead for Cookiebot @CMP – “Artificia...Richard van der Velde, Technical Support Lead for Cookiebot @CMP – “Artificia...
Richard van der Velde, Technical Support Lead for Cookiebot @CMP – “Artificia...Associazione Digital Days
 
Master the art of Social Selling to increase sales by fostering relationships...
Master the art of Social Selling to increase sales by fostering relationships...Master the art of Social Selling to increase sales by fostering relationships...
Master the art of Social Selling to increase sales by fostering relationships...VereigenMedia1
 
Content Marketing: How To Find The True Value Of Your Marketing Funnel
Content Marketing: How To Find The True Value Of Your Marketing FunnelContent Marketing: How To Find The True Value Of Your Marketing Funnel
Content Marketing: How To Find The True Value Of Your Marketing FunnelSearch Engine Journal
 
2024's Top PPC Tactics: Triple Your Google Ads Local Leads
2024's Top PPC Tactics: Triple Your Google Ads Local Leads2024's Top PPC Tactics: Triple Your Google Ads Local Leads
2024's Top PPC Tactics: Triple Your Google Ads Local LeadsSearch Engine Journal
 
Ryanair Marketing and business development Plan
Ryanair Marketing and business development  PlanRyanair Marketing and business development  Plan
Ryanair Marketing and business development Plandrkarimsaber
 
social media optimization complete indroduction
social media optimization complete indroductionsocial media optimization complete indroduction
social media optimization complete indroductioninfoshraddha747
 
15 Tactics to Scale Your Trade Show Marketing Strategy
15 Tactics to Scale Your Trade Show Marketing Strategy15 Tactics to Scale Your Trade Show Marketing Strategy
15 Tactics to Scale Your Trade Show Marketing StrategyBlue Atlas Marketing
 
top marketing posters - Fresh Spar Technologies - Manojkumar C
top marketing posters - Fresh Spar Technologies - Manojkumar Ctop marketing posters - Fresh Spar Technologies - Manojkumar C
top marketing posters - Fresh Spar Technologies - Manojkumar CManojkumar C
 
Digital Marketing Courses In Pune- school Of Internet Marketing
Digital Marketing Courses In Pune- school Of Internet MarketingDigital Marketing Courses In Pune- school Of Internet Marketing
Digital Marketing Courses In Pune- school Of Internet MarketingShauryaBadaya
 
Navigating Global Markets and Strategies for Success
Navigating Global Markets and Strategies for SuccessNavigating Global Markets and Strategies for Success
Navigating Global Markets and Strategies for SuccessElizabeth Moore
 
Miss Immigrant USA Activity Pageant Program.pdf
Miss Immigrant USA Activity Pageant Program.pdfMiss Immigrant USA Activity Pageant Program.pdf
Miss Immigrant USA Activity Pageant Program.pdfMagdalena Kulisz
 
Agencia Marketing Branding Examen Fundamentals Digital Marketing Google Abril...
Agencia Marketing Branding Examen Fundamentals Digital Marketing Google Abril...Agencia Marketing Branding Examen Fundamentals Digital Marketing Google Abril...
Agencia Marketing Branding Examen Fundamentals Digital Marketing Google Abril...Marketing BRANDING
 
SEO Forecasting by Nitin Manchanda at Berlin SEO & Content Club
SEO Forecasting by Nitin Manchanda at Berlin SEO & Content ClubSEO Forecasting by Nitin Manchanda at Berlin SEO & Content Club
SEO Forecasting by Nitin Manchanda at Berlin SEO & Content ClubNitin Manchanda
 
Bamboo Charcoal Toothpaste By Phyto Atomy For More Details Message On WhatsA...
Bamboo Charcoal Toothpaste By Phyto Atomy  For More Details Message On WhatsA...Bamboo Charcoal Toothpaste By Phyto Atomy  For More Details Message On WhatsA...
Bamboo Charcoal Toothpaste By Phyto Atomy For More Details Message On WhatsA...shrutimishraqt
 

Último (20)

Dave Cousin TW-BERT Good for Users, Good for SEOsBrighton SEO Deck
Dave Cousin TW-BERT Good for Users, Good for SEOsBrighton SEO DeckDave Cousin TW-BERT Good for Users, Good for SEOsBrighton SEO Deck
Dave Cousin TW-BERT Good for Users, Good for SEOsBrighton SEO Deck
 
Codes and Conventions of Film Magazine Covers.pptx
Codes and Conventions of Film Magazine Covers.pptxCodes and Conventions of Film Magazine Covers.pptx
Codes and Conventions of Film Magazine Covers.pptx
 
20 Top Social Media Tips for Peer Specialists
20 Top Social Media Tips for Peer Specialists20 Top Social Media Tips for Peer Specialists
20 Top Social Media Tips for Peer Specialists
 
Agencia Marketing Branding Measurement Certification Google Ads Abril 2024
Agencia Marketing Branding Measurement Certification Google Ads Abril 2024Agencia Marketing Branding Measurement Certification Google Ads Abril 2024
Agencia Marketing Branding Measurement Certification Google Ads Abril 2024
 
5 Digital Marketing Tips | Devherds Software Solutions
5 Digital Marketing Tips | Devherds Software Solutions5 Digital Marketing Tips | Devherds Software Solutions
5 Digital Marketing Tips | Devherds Software Solutions
 
Paul Russell Confidential Resume for Fahlo.pdf
Paul Russell Confidential Resume for Fahlo.pdfPaul Russell Confidential Resume for Fahlo.pdf
Paul Russell Confidential Resume for Fahlo.pdf
 
Richard van der Velde, Technical Support Lead for Cookiebot @CMP – “Artificia...
Richard van der Velde, Technical Support Lead for Cookiebot @CMP – “Artificia...Richard van der Velde, Technical Support Lead for Cookiebot @CMP – “Artificia...
Richard van der Velde, Technical Support Lead for Cookiebot @CMP – “Artificia...
 
Master the art of Social Selling to increase sales by fostering relationships...
Master the art of Social Selling to increase sales by fostering relationships...Master the art of Social Selling to increase sales by fostering relationships...
Master the art of Social Selling to increase sales by fostering relationships...
 
Content Marketing: How To Find The True Value Of Your Marketing Funnel
Content Marketing: How To Find The True Value Of Your Marketing FunnelContent Marketing: How To Find The True Value Of Your Marketing Funnel
Content Marketing: How To Find The True Value Of Your Marketing Funnel
 
2024's Top PPC Tactics: Triple Your Google Ads Local Leads
2024's Top PPC Tactics: Triple Your Google Ads Local Leads2024's Top PPC Tactics: Triple Your Google Ads Local Leads
2024's Top PPC Tactics: Triple Your Google Ads Local Leads
 
Ryanair Marketing and business development Plan
Ryanair Marketing and business development  PlanRyanair Marketing and business development  Plan
Ryanair Marketing and business development Plan
 
social media optimization complete indroduction
social media optimization complete indroductionsocial media optimization complete indroduction
social media optimization complete indroduction
 
15 Tactics to Scale Your Trade Show Marketing Strategy
15 Tactics to Scale Your Trade Show Marketing Strategy15 Tactics to Scale Your Trade Show Marketing Strategy
15 Tactics to Scale Your Trade Show Marketing Strategy
 
top marketing posters - Fresh Spar Technologies - Manojkumar C
top marketing posters - Fresh Spar Technologies - Manojkumar Ctop marketing posters - Fresh Spar Technologies - Manojkumar C
top marketing posters - Fresh Spar Technologies - Manojkumar C
 
Digital Marketing Courses In Pune- school Of Internet Marketing
Digital Marketing Courses In Pune- school Of Internet MarketingDigital Marketing Courses In Pune- school Of Internet Marketing
Digital Marketing Courses In Pune- school Of Internet Marketing
 
Navigating Global Markets and Strategies for Success
Navigating Global Markets and Strategies for SuccessNavigating Global Markets and Strategies for Success
Navigating Global Markets and Strategies for Success
 
Miss Immigrant USA Activity Pageant Program.pdf
Miss Immigrant USA Activity Pageant Program.pdfMiss Immigrant USA Activity Pageant Program.pdf
Miss Immigrant USA Activity Pageant Program.pdf
 
Agencia Marketing Branding Examen Fundamentals Digital Marketing Google Abril...
Agencia Marketing Branding Examen Fundamentals Digital Marketing Google Abril...Agencia Marketing Branding Examen Fundamentals Digital Marketing Google Abril...
Agencia Marketing Branding Examen Fundamentals Digital Marketing Google Abril...
 
SEO Forecasting by Nitin Manchanda at Berlin SEO & Content Club
SEO Forecasting by Nitin Manchanda at Berlin SEO & Content ClubSEO Forecasting by Nitin Manchanda at Berlin SEO & Content Club
SEO Forecasting by Nitin Manchanda at Berlin SEO & Content Club
 
Bamboo Charcoal Toothpaste By Phyto Atomy For More Details Message On WhatsA...
Bamboo Charcoal Toothpaste By Phyto Atomy  For More Details Message On WhatsA...Bamboo Charcoal Toothpaste By Phyto Atomy  For More Details Message On WhatsA...
Bamboo Charcoal Toothpaste By Phyto Atomy For More Details Message On WhatsA...
 

SilverStripe ♥︎ Mautic

  • 1. GIANCARLO DI MASSA // DIGITALL.IT Empowering your website by integrating an open source marketing automation platform SilverStripe♥Mautic
  • 3. What’s marketing automation? Seasoned developer • Finds installation of the platform and module code trivial • Wants to learn core marketing automation concepts • Wants to know more about Mautic
  • 4. How to create a module? Novice developer • Is an Open Source code consumer • Creates code for his own projects • Wants to learn some best practices on integrating third party services • Would like to start contributing by converting his/her existing code to a shareable module
  • 5. We use HubSpot, so what? Marketing Agency • Already implements marketing automation day to day • Uses a closed source software • Is considering the switch to a complete Open Source solution based on Mautic and SilverStripe
  • 6. How about deliverability? Junior DevOps Operator • Knows that sending mass emails can be difficult • Would prefer certified third party email transports • Would like to improve deliverability of the emails sent on server
  • 8. Another newsletter? Great effort to stand out • Newsletters and emails sent one to one are treated differently • Mailboxes have a systemic problem of information overload • Typical user receives hundreds if not thousands of UCE (Unsolicited Commercial Email) every month • Even after removing all the spam, there are still a lot of emails to read
  • 10. Tom Fishburne "The best marketing doesn’t feel like marketing."
  • 11. Dear <First> <Last> Limited customization • We can actually understand if the email is actually tailored for us or speaks to a general public • Knowing my name is not enough anymore • We care about timing as well • To be effective, some information needs to be delivered over a long period (spaced repetition) ALL YOUR BASE ARE BELONG TO US!
  • 12. Dan Jak "Personalisation – it is not about first/ last name. It’s about relevant content."
  • 13. Working over numbers SaaS services tier limited • Some services bill you by each email sent, or by contacts, or by features • Pricing tiers are organized by design so that important features are available only on higher plans • Complete systems that incorporate real marketing automation tend to have monthly costs that cut out smaller businesses
  • 16. Right here, right now Timing • Newsletters are usually organized around the concept of bulk synced communication • The same information is delivered to a whole group all at the same time • It doesn’t consider that contacts are at various stages of engagement
  • 18. Contact added Send welcome email #1 Opens email #1? Wait 1 day Sends followup email #2 Opens email #2? Add 10 points to contact Add 10 points to contact Wait 2 days Sends followup email #3 Opens email #3? Remove contact Add 10 points to contact Downloads a PDF Add 20 points to contact Set contact as hot lead More than 50 pts? Tweets with mention or hashtag Add 20 points to contact Visits website Add 5 points to contact Show focus Yes Yes Yes No Yes Marketing automation Campaign basic example
  • 19. John Caldwell "To get the right message to the right person at the right time you first need to get the right data to the right database at the right time."
  • 20. Decision Action Condition Contact performs an operation (downloads a file, opens an email, visits a website) Mautic performs an operation (sends an email, changes contact group) Variables (field values, submitted form data) influence operation flow Marketing automation Decision tree UI
  • 21. Drip marketing Marketing automation • The contact, or lead, starts a journey • He/she is exposed to engagement events and actions • Receives messages via email, SMS and/or Twitter • Answers messages, visits your site, downloads files • Enriches his card with new data • This may take days, weeks, even months!
  • 23. Matt Blumberg "Reaching the inbox isn't your goal - engaging people is"
  • 24. Hot lead Marketing automation • The journey of the contacts continues until one of them gets a very high score • That will mean he/she is very interested in your product or service • The contact is now an hot lead and you can decide to directly and manually engage to him/her over phone, Zoom or email • At this stage, the contact is pushed (hot lead handover) to another integration, usually a CRM, or you simply get an email notification telling there’s a call to make
  • 25. Lead generation Marketing automation • Lead Ads from Google, Facebook, LinkedIn, Instagram • Google Ads • Your website traffic • Organic social networking • Events and conferences • Re-engaging existing customers list That means you don’t pay ad money! People to sell stuff to Mummy Granny Jennifer from high school Creepy guy next door Michael, because I helped him out with the lawn
  • 26. Landing pages Marketing automation • Web pages with content highly optimized for conversion • Can be made with a drag and drop builder directly in the marketing automation platform • Usually disconnected from the main website, don’t even have any sort of menu or navigation • Intercept a very delicate moment in the user's decision-making process
  • 27. Channels Marketing automation • Email • Push notifications • iOS and Android • Web • SMS • Tracks anwers • Respects “Do Not Contact” duh! In Mautic that’s managed by One Signal Mautic comes with an integration for Twilio out of the box Definitely not TV channels! (hey I got the same remote!)
  • 28. Lead nurturing Marketing automation • Contact lifecycle • Stages • Segments • Progressive profiling • Video gating • Focus items • Bars • Modals • Full page takeovers • Social monitoring • Twitter hashtags and mentions In short, we’re talking about tailor made popups that know you! Marketing funnel
  • 30. GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021 • SaaS version by Acquia, who acquired Mautic on May 2019 • Acquia mantains a paid-for version called Campaign Studio on mautic.com • Open Source version on mautic.org benefits of active development made possible by Acquia programmers • Thriving community of developers • Active marketplace of both free and paid-for plugins that extends the platform • Can be integrated with other projects either via a Mautic Plugin, Mautic API and even Zapier • Also available as a Docker Hub as a single image mautic/mautic MauticInstallation Self-hosted and SaaS
  • 31.
  • 32.
  • 33. GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021 • Symfony project • Can be installed via • All releases available as a zipball on mautic.org website • Requires a database and at least one dedicated email address • Major version 4.0 has just been released on August 2021 and supports PHP 7.4 MauticInstallation Basic deployment composer create-project mautic/core mautic ^4 —no-dev Suggested installation method by developers! Yay! PHP 8.0 coming soon!
  • 34. GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021 MauticInstallation Required Cron jobs Update segments mautic:segments:update Update campaigns mautic:campaigns:update Execute Campaign Actions mautic:campaigns:trigger • Mautic uses the Symfony Console Component • Console is called via • Some operations need to be performed periodically via cron jobs and are required • The scripts may be resource intensive as they process 300 contacts at time • You can use —batch-limit=X to limit the number of contacts to be processed at once php path/to/mautic/bin/console [arguments]
  • 35.
  • 36. GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021 MauticInstallation Optional Cron jobs Send queued emails mautic:emails:send Process bounces mautic:email:fetch Monitor social networks mautic:social:monitoring Batch send webhooks mautic:webhooks:process Update IP Lookup Database mautic:iplookup:download Clean up old data mautic:maintenance:cleanup -g -n Send scheduled reports mautic:reports:scheduler Import data from CSV files in background mautic:import Some operations can be performed periodically via cron jobs and are optional
  • 37. GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021 • Broadcasts are emails sent to a segment (a group of contacts) • Those are sent while waiting with the browser window open • If the segment is large, you can send in background via an optional cron job MauticInstallation Optional Broadcast Cron job Send scheduled broadcasts mautic:broadcasts:send
  • 38.
  • 39. GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021 • CCPA stands for California Consumer Privacy Act (CCPA) • Similar to GDPR, first law of his kind in the United States • Applies to all for-profit corporations around the world that sell the personal information of more than 50,000 California residents annually • Or have gross annual revenues in excess of $ 25 million • Or derive more than 50 percent of their annual turnover from the sale of personal information of California residents MauticInstallation MaxMind CCPA Compliance Cron jobs
  • 40. GIANCARLO DI MASSA // DIGITALL.IT // STRIPECON 2021 If your installation falls under CCPA and if at least one of the preceding conditions is met, there are some required cronjobs to run MauticInstallation MaxMind CCPA Compliance Cron jobs Update the “Do Not Sell” list mautic:donotsell:download Purge data in the the “Do Not Sell” list mautic:max-mind:purge
  • 41. php -d memory_limit=4096M bin/console cache:clear php -d memory_limit=4096M bin/console mautic:update:find php -d memory_limit=4096M bin/console mautic:update:apply php -d memory_limit=4096M bin/console doctrine:migration:status php -d memory_limit=4096M bin/console doctrine:migration:migrate YO U R B E S T Clears the cache! Checks for updates! Updates the installation! Checks the database structure! Updates the database structure! Allocates more memory to the script!
  • 43. git clone https://github.com/digitall-it/docker.git docker cd docker mkdir src docker-compose up -d docker exec -it docker_web_1 /bin/bash composer create-project silverstripe/installer /var/www/html cd html composer require silverstripe/userforms composer require digitall-it/silverstripe-mautic --prefer-source ./vendor/bin/sake dev/build "flush=all" Based on Brett Tasker's configuration Creates a web and database servers! SSH into Docker! Creates a SilverStripe project! Installs the UserForms module! Installs the Mautic integration module! Rebuilds the SilverStripe database and clears caches! Clones from the source repository instead of extracting the Packagist zipball so you can commit! Thanks!
  • 44. Write a new password to change it! mapping allows to use existing field names in your forms! Module provides a working default!
  • 45. The module caches the segment list: if you change it in Mautic, flush the cache!
  • 46.
  • 47. $Mautic = Injector::inst()->get('Mautic'); $Mautic->setAuth(SiteConfig::current_site_config()); $fieldsMapped = $Mautic->MapFields($fields, SiteConfig::current_site_config()->MauticFieldMapping); if (count($fieldsMapped) > 0) $Mautic->addOrUpdateContact($fieldsMapped, $MauticSegmentAlias); Manual push of contacts put this name here!
  • 48. What’s next? Integration module • Internationalization • Support for oAuth 1.0 and 2.0 • Unit and functional tests • Extension hooks • All fields of contact can change on update • Ability to add points and trigger events • Stable release 1.0 at the end of the year • Mautic plugin to push data back! ..and bugfixes!
  • 50. Email deliverability: DKIM • DKIM stands for DomainKeys Identified Mail and provides an encryption key and digital signature that verifies that an email message was not faked or altered • Requires native support by a modern mail server • You need to publish the correct public key and verification criteria records into your DNS server • You also need to ensure that email sent from your server are signed DevOps
  • 51. Email deliverability: SPF DevOps • SPF stands for Sender Policy Framework • Allows to set a policy that authorizes particular hosts to send mail from the domain • The receiver checks the policy list to ensure that the sender server is included • You need to publish the correct SPF policy record into your DNS server
  • 52. Email deliverability: DMARC • DMARC stands for Domain-based Message Authentication, Reporting & Conformance • Extends the capabilities of the SPF and DKIM sender policies • The DMARC policy defines how the receiver should treat email messages depending on the results of DKIM and SPF checking • You need to publish the correct DMARC policy record into your DNS server DevOps
  • 53. Mail transports DevOps • Amazon Simple Email Service • Elastic Email • Gmail • Mailjet • Mandrill • Pepipost • Sendgrid • Sendmail • SMTP • Sparkpost
  • 54. GDPR compliancy DevOps • Double opt-in • Data storage • Distinct checkboxes • Tracking and cookies composer require lerni/klaro-cookie-consent ✔ ✔ Privacy policy Marketing
  • 55. Bounce management DevOps • Some transports use Variable envelope return path (VERP), a technique to detect undeliverable e-mail addresses. It works by using a different return path (also called "envelope sender") • In practice, they use real time created aliases like myemail+12345@domain.dev to know exactly who received the email • Some trasports instead have webhooks and callbacks: Elastic Email, Amazon, Mandrill, Mailjet, Sparkpost, SendGrid
  • 57. Module base • Add your name/organisation to LICENSE.md • Actually read and update the README files • Update the composer.json and package.json with your chosen package name • Create a new repository on git and push your module base • Login and fill a form on packagist.org to publish your module • Composer require the module in a development SilverStripe environment, preferring source • Start developing your module, you can even push directly from the vendor/yourmodule folder of the environment! How I Met Your Module git clone https://github.com/silverstripe/silverstripe-module yourmodule cd yourmodule rm -rf .git && git init your journey begins here! cleans the git history so you get a fresh start! yes, it’s that easy! use the docker, Luke! the horn from How I Met Your Mother.. what, you didn’t see the show? c’mon, Neil Patrick Harris rocked, there!
  • 58. Best practices How I Met Your Module • Do not create directly your classes • Try to decouple your code as much as possible • Consider TDD (test driven development) • Do not require unnecessary code • Do not just assume everyone will want your javascript code in the frontend! • Leverage SilverStripe Cache in your results if you can! use SilverStripeCoreInjectorInjector; . . . $object = Injector::inst()->create('MyClassName') SilverStripeCoreInjectorInjector: PsrSimpleCacheCacheInterface.myModuleCache: factory: SilverStripeCoreCacheCacheFactory constructor: namespace: "myModuleCache" use PsrSimpleCacheCacheInterface; use SilverStripeCoreInjectorInjector; . . . $cache = Injector::inst() ->get(CacheInterface::class . ‘.myModuleCache’); $myValue = $cache->get(‘myCacheKey'); $cache->set('myCacheKey', 1234); if (!$cache->has('myCacheKey')) {. . .} $cache->delete(‘myCacheKey'); $string = $anotherobject->method(); $object->method($string); when instancing! switchable and testable! in your yaml in your code
  • 59. Mautic API • Exposes a REST API • Has his own PHP Mautic API Client • My module builds on top of that How I Met Your Module APIAUTH CONTACTAPI MAUTICAPI MAUTIC
  • 61.
  • 62.
  • 63.
  • 64.
  • 66. GIANCARLO DI MASSA // DIGITALL.IT Thankyou Credits NOHK, Element5 Digital, Christina Morillo, Tim Gouw, Markus Spiske, Kaboompics.com, Danny Meneses, R. Fera, Musa Artful, Tim Douglas, Eva Elijas, Ketut Subiyanto, Nothing Ahead, Redrecords, Gradienta, Angela Roma, RF._.studio, Mikhail Nilov, Markus Winkler Pexels Stock Photos Mikhail Fesenko, Karsten Winegeart Unsplash Stock Photos