<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Audienture]]></title><description><![CDATA[Mautic Email Marketing Beyond the Funnel]]></description><link>https://audienture.com/</link><image><url>https://audienture.com/favicon.png</url><title>Audienture</title><link>https://audienture.com/</link></image><generator>Ghost 5.79</generator><lastBuildDate>Tue, 16 Sep 2025 12:40:19 GMT</lastBuildDate><atom:link href="https://audienture.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[How to Reconnect With Your Email List]]></title><description><![CDATA[<p>Have you ever felt like <strong>you&apos;ve lost touch with your email list?</strong> Maybe life got in the way, or you just weren&apos;t sure what to say for some time. (Don&apos;t worry, we&apos;ve all been there!) Today, I&apos;m going to talk</p>]]></description><link>https://audienture.com/how-to-reconnect-with-your-email-list/</link><guid isPermaLink="false">66c8843f85bbcc144641eb6d</guid><category><![CDATA[Email Marketing with Mautic]]></category><category><![CDATA[Best Practice]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Sat, 07 Sep 2024 13:44:33 GMT</pubDate><content:encoded><![CDATA[<p>Have you ever felt like <strong>you&apos;ve lost touch with your email list?</strong> Maybe life got in the way, or you just weren&apos;t sure what to say for some time. (Don&apos;t worry, we&apos;ve all been there!) Today, I&apos;m going to talk about how to create a killer <strong>email that you can use to reconnect with your audience</strong> (even if you&apos;ve been MIA for a while).</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">This article is about an email list that you haven&apos;t reached out to in a while. It is <b><strong style="white-space: pre-wrap;">not</strong></b> about how to reengage cold contacts, i.e. leads that aren&apos;t responding to or interacting with your emails.</div></div><p>So, you&apos;ve got a &quot;cold&quot; email list? An <strong>email list that you didn&apos;t reach out to in a while</strong>?</p><p>Well, this happens to the best of us&#x2014;it sure did to me. But no biggie! You can <em>fix</em> that.</p><p>With a <strong>well-crafted reengagement email</strong>, you can <strong>warm your audience up again</strong>. Let&apos;s dive into how to create an email that&apos;ll make your subscribers sit up and take notice.</p><p>Here&apos;s an <strong>easy-to-follow structure</strong> you can use to <strong>create your reengagement email</strong>:</p><ol><li>Address the elephant in the room: <strong>How long you&apos;ve been away.</strong></li><li>Come clean: <strong>Why you left</strong> your email list hanging.</li><li><strong>Reintroduce yourself and your business</strong> (because, hey, they might have forgotten).</li><li><strong>Remind your audience</strong> how/when/why they signed up.</li><li><strong>Offer</strong> some <strong>value</strong> (because who doesn&apos;t love free stuff?).</li><li>Make it <strong>easy to say goodbye</strong> (if they really want to).</li></ol><p>Let&apos;s break it down, shall we?</p><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Sign up for Audienture</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Mautic Email Marketing Beyond the Funnel</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div><h2 id="how-long-youve-been-away">How long you&apos;ve been away</h2><p>The hardest part is always the beginning.</p><p>It&apos;s like dialing the number of a friend you haven&apos;t called in months (sorry, Michael&#x1F615;!), hearing the ringing tone, them saying &#x201C;Hello&#x201D;, and, finally, having to say something.</p><p>But I know you got this! Just state the obvious:</p><p>Acknowledge that time has passed. It could be something like:</p><blockquote>Hey there!<br><br>It&apos;s been a while since I&apos;ve been in touch&#x2026; about 6 months, give or take a few days of procrastination. &#x1F605;<br><br>And it&apos;s totally on me!</blockquote><p>This shows you&apos;re aware of the silence and aren&apos;t trying to sweep it under the rug.</p><p>But now what?</p><h2 id="why-you-left-your-email-list">Why you left your email list</h2><p>Next, <strong>give them the lowdown on why you&apos;ve been MIA</strong>. Be honest, be human. Maybe you were:</p><ul><li>Overhauling your entire product line.</li><li>Moving across the country.</li><li>In need for some personal/family time.</li><li>Taking a sabbatical to recharge your creative batteries.</li><li>Battling a severe case of writer&apos;s block.</li></ul><p>Whatever the reason, let them know. Transparency goes a long way in rebuilding trust.</p><blockquote>Let me be totally honest:<br><br>I needed some time to [(re)create my products/website; rethink my business direction; move; spend time with my family; recharge].</blockquote><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why this matters:</strong></b> Giving your readers a reason why you haven&apos;t touched base with them makes you human. It instantly increases your know-like-trust factor.</div></div><h2 id="reintroduce-yourself-and-your-business">Reintroduce yourself and your business</h2><p>Let&apos;s face it: After a few months most of <strong>your readers will have forgotten about you and what you do</strong>.</p><p>Yup, this stings. But be honest:</p><p>How many newsletters did you subscribe to and forgot about it (many, anyone)? Did you ever notice if one went dark? Yeah, neither did I.</p><p>So, <strong>give your reader a quick refresher on who you are and what your newsletter/business is all about</strong>. Keep it short and sweet, like:</p><blockquote>In case you&apos;ve forgotten (and I wouldn&apos;t blame you if you had), I&apos;m Toby, the guy behind Audienture. I&apos;m all about helping folks like you make the most of Mautic&apos;s awesome marketing capabilities.</blockquote><p>Maybe link to your about page.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why this matters:</strong></b> Your readers can quickly assess whether they are still interested in the content you provide. No matter the outcome, this will benefit your list quality.</div></div><p>In addition to this, there&apos;s another thing your readers might have a hard time remembering that you should address.</p><h2 id="remind-them-howwhenwhy-they-signed-up">Remind them how/when/why they signed up</h2><p>I&apos;m 100% certain that even in an active list less than 50% know why and less than 10% know when they initially signed up to your list.</p><p>You should <strong>remind them about when and why they joined your list</strong> in the first place.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why this matters:</strong></b> Your reader will feel like they never signed up for your list. Thus, they are likely to hit the <i><code spellcheck="false" style="white-space: pre-wrap;"><em class="italic">Report Spam</em></code></i> button. This paragraph tries to avoid this.</div></div><p>Yes, this can be hard. Perhaps it&apos;s impossible because you don&apos;t have any records about this. Some ideas:</p><ul><li>Did they download a lead magnet?</li><li>Sign up for a webinar?</li><li>Received a free call?</li></ul><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Pro tip:</strong></b> Mautic&apos;s dynamic content capabilities are a perfect choice to personalize this section.</div></div><p>If you have no records to personalize this, then you might <strong>talk about your best converting (or two) lead magnet</strong>(s). 80/20 rule at its best &#x1F609;</p><p>Whatever it was, <strong>remind them of the value</strong> they were expecting to get (and got) from you.</p><blockquote>You (most likely) signed up for [incentive/lead magnet]. If you can&apos;t find it anymore, [I attached it to this email / you&apos;ll find it (here)].</blockquote><p>Some people will remember; others won&#x2019;t. Regardless, the next part is crucial for gaining goodwill at this new beginning with your audience.</p><h2 id="offer-them-something-valuable">Offer them something valuable</h2><p>Now is the time to <strong>deliver value to your readers</strong>! I mean, that&apos;s <strong>why you reach out</strong> to them, right?</p><p>Offer them something new and exciting. It could be:</p><ul><li>An exclusive, unpublished lead magnet.</li><li>A free mini-course.</li><li>A special discount on your products or services.</li><li>etc. you know the lead magnet drill...</li></ul><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why this matters:</strong></b> Even if your readers won&apos;t remember you... By offering something of value you can certainly hook them (again). And those who remember will like you even more.</div></div><p>You can say something along the lines:</p><blockquote>I want to make it up to you. And I&apos;d like to say thank you again for trusting me with your email. Please find this exclusive [freebie] on [topic]. You can expect to find A, B, C.</blockquote><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Bonus:</strong></b> If possible, make sure your offer aligns with the reason they originally subscribed. If they signed up for email marketing tips, don&apos;t suddenly offer them a guide on interpretive dance (unless that&apos;s somehow related to your business, in which case, kudos for creativity!).<br>It may even make sense to create several emails for different segments because of this.</div></div><p>You said &#x201C;Hi&#x201D;, &#x201C;Sorry&#x201D;, and gave them something. Now what?</p><h2 id="try-to-make-them-reconnect-with-you">Try to make them reconnect with you</h2><p>Just like with your welcome email: Use this email to <strong>(re)connect with your audience</strong>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://audienture.com/6-essential-elements-of-an-excellent-welcome-email/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">6 Essential Elements of an Excellent Welcome Email</div><div class="kg-bookmark-description">You have probably heard this before: There is no second chance for your first impression. Your welcome email is your email marketing equivalent to a real-life handshake and introduction. The question is: How do you win at this kind of first impression? In my opinion there are two things to</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://audienture.com/content/images/size/w256h256/2024/05/audienture-mautic-email-marketing-beyond-the-funnel-icon.png" alt><span class="kg-bookmark-author">Audienture</span><span class="kg-bookmark-publisher">Tobias</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://audienture.com/content/images/2024/05/audienture-mautic-email-marketing-beyond-the-funnel-logo-brand-2.png" alt></div></a></figure><p><strong>Learn what&apos;s happened in your reader&apos;s life</strong>. What <em>changed</em> for them?</p><blockquote>What have you been up to?<br><br>As a bonus I&#x2019;m also giving away five thirty-minute one-on-one [your service] consultations. Hit reply, tell me about your challenge and I might cime in.</blockquote><p>Now, the email is almost done. But there is still one crucial element missing.</p><h2 id="make-it-easy-for-them-to-unsubscribe">Make it easy for them to unsubscribe</h2><p>I know, I know. The last thing you want is for people to leave your list. But here&apos;s the thing:</p><p>There&apos;s a good chance they&apos;re not interested in it anymore.</p><p>Time didn&apos;t stop for you, nor for your readers. So, their interests might have shifted.</p><p>Thus, it&apos;s better for the both of you if they unsubscribe.</p><p>Include a clear, easy-to-find unsubscribe link. You might even say something like:</p><blockquote>If you&apos;re no longer interested in [your topic], no hard feelings! You can unsubscribe (here). I&apos;ll shed a tear, but I&apos;ll understand.</blockquote><p>That&apos;s it!</p><p>This is my blueprint for creating a reengagement email. You can use it to wake up even the coldest of email lists &#x1F609;</p><h2 id="be-genuine-and-offer-value">Be Genuine and Offer Value</h2><p>Remember, the key is to be genuine, and offer some value.</p><p>Have you tried sending reengagement emails before? What worked for you? What didn&apos;t? I&apos;d love to hear about your experiences!</p>
<!--kg-card-begin: html-->
<script type="text/javascript" src="//lp.audienture.com/form/generate.js?id=4"></script>
<!--kg-card-end: html-->
<p>Happy marketing, and may your open rates be ever in your favor!</p>]]></content:encoded></item><item><title><![CDATA[6 Essential Elements of an Excellent Welcome Email]]></title><description><![CDATA[<p>You have probably heard this before: <strong>There is no second chance for your first impression.</strong> Your welcome email is your email marketing equivalent to a real-life handshake and introduction. The question is: <strong>How do you win at this kind of first impression?</strong></p><p>In my opinion there are two things to</p>]]></description><link>https://audienture.com/6-essential-elements-of-an-excellent-welcome-email/</link><guid isPermaLink="false">66b6137acdbfae606a4ce0e5</guid><category><![CDATA[Email Marketing with Mautic]]></category><category><![CDATA[Beginner]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Fri, 23 Aug 2024 11:30:17 GMT</pubDate><content:encoded><![CDATA[<p>You have probably heard this before: <strong>There is no second chance for your first impression.</strong> Your welcome email is your email marketing equivalent to a real-life handshake and introduction. The question is: <strong>How do you win at this kind of first impression?</strong></p><p>In my opinion there are two things to consider:</p><ol><li>A welcome email must strike a balance.</li><li>There are certain elements a good welcome should have.</li></ol><p>Let&apos;s start by looking at the balance that you should seek:</p><h2 id="what-makes-a-good-welcome-email">What Makes a Good Welcome Email?</h2><p>Your welcome email is like a first date:</p><p>You want the other person to get to know and like you (and, eventually, trust you). But at the same time you yourself want to get to know this other person, too.</p><p>You won&apos;t learn anything about them if you just talk about yourself.</p><p>What&apos;s worse:</p><p>You will come off as some unlikeable self-centered person if you make it all about you.</p><p>The outcome for your business?</p><p>You won&apos;t learn anything about your audience.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">A good welcome email is both: It&apos;s about you, but it&apos;s also about your reader. Find that sweet spot.</div></div><p>How can you strike a good balance in your welcome email?</p><p>I&apos;d say: If you include the following 6 elements of a good welcome email you&apos;ll automatically make your best effort to strike that balance.</p><h2 id="6-key-elements-of-a-good-welcome-email">6 Key Elements of a Good Welcome Email</h2><p>Let&apos;s explore those six key elements.</p><h3 id="1-introduce-yourself">1. Introduce Yourself</h3><p>First things first&#x2014;let your new subscriber know who&apos;s behind the emails they&apos;ll be receiving. This is your chance to make a personal connection!</p><p>I know, it&apos;s kind of a &#x201C;Duh!&#x201D; thing to say. But more often than not a welcome email is just about the business.</p><p>Or worse: A simple &quot;Hi there, welcome! [the end]&quot;...</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why it matters:</strong></b> People connect with people, not faceless brands. A personal introduction helps build trust and relatability. So, even if you&apos;re a brand you can make a personal greeting (CEO, Customer Success Manager, you name it).</div></div><p><strong>How to nail it:</strong></p><ul><li>Don&apos;t just say &#x201C;Hi!&#x201D;. Share a bit about your background. Share a personal story. You&apos;ll probably talk enough business in the emails to come.</li><li>Add a personal touch&#x2014;maybe a fun fact or a quirky detail about yourself [or your company].</li><li>Consider including a photo to put a face to the name.</li></ul><p>Remember, you&apos;re not just a marketer&#x2014;you&apos;re a real person with interests and experiences. Let that shine through!</p><h3 id="2-explain-your-why">2. Explain Your Why</h3><p>Next up, share your mission.</p><p>What drives you? Why did you start your business? More importantly:</p><p>What are you trying to achieve? What impact do you want to make for your readers?</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why it matters:</strong></b> As Simon Sinek famously said, &#x201C;People don&apos;t buy what you do, they buy why you do it.&#x201D; Your &apos;<i><em class="italic" style="white-space: pre-wrap;">why</em></i>&apos; is what will resonate with your audience and keep them engaged. (<a href="https://www.youtube.com/watch?v=u4ZoJKF_VuA&amp;ref=audienture.com" rel="noreferrer">Video recommendation</a>)</div></div><p><strong>How to nail it:</strong></p><ul><li>Clearly state the purpose behind your email list or business.</li><li>Share what inspired you to start this journey.</li><li>Connect your &apos;why&apos; with your subscribers&apos; needs or goals.</li></ul><h3 id="3-showcase-your-expertise">3. Showcase Your Expertise</h3><p>You don&apos;t need to shy away in your first email. You already made them trust you enough to give you their email address.</p><p>And, you already told your readers what&apos;s driving you.</p><p>Now tell them what you achieved. Shine a light on why you&apos;re the go-to person in your field.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why it matters:</strong></b> Establishing your credibility helps build trust and authority with your new subscribers.</div></div><p>This isn&apos;t to show of. It is about reassuring your reader they made the right choice signing up to your newsletter/email list.</p><p><strong>How to nail it:</strong></p><ul><li>Include some sort of social proof in your welcome email. Like:<ul><li>Share a few key achievements or experiences that qualify you as an expert.</li><li>Mention any notable publications or speaking engagements.</li></ul></li><li>Highlight unique insights or approaches you bring to the table. E.g., by linking key content that you created.</li></ul><p>Okay, by now people know a lot about you. That&apos;s good.</p><p>But now it is time to make it about them!</p><h3 id="4-encourage-interaction">4. Encourage Interaction</h3><p>Make your welcome email the start of a two-way conversation.</p><p><strong>Your goal should be that people reply to your welcome email.</strong></p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why it matters:</strong></b> Engagement from the get-go helps build a strong relationship with your subscribers.</div></div><p>So, make your readers hit reply! Entice them to write you.</p><p><strong>How to nail it:</strong></p><ul><li>Ask a simple, specific question related to your niche.</li><li>Invite readers to tell you their biggest challenge. Offer to share some thoughts on what they write you.</li><li>Let your readers brag. Ask them about their biggest success story.</li></ul><p><strong>Bonus:</strong> Besides forming a connection to your reader, a reply tells your reader&apos;s email program that they are interested in your emails. Gmail, for example, will make your future emails go straight to the inbox.</p><h3 id="5-provide-immediate-additional-value">5. Provide Immediate (Additional) Value</h3><p>This is&#x2014;probably&#x2014;a no-brainer. Simply because you offered a lead magnet or content upgrade in return for subscribing.</p><p><strong>But</strong>, if there is a possibility to subscribe to your list without getting some sort of freebie:</p><p>Include something of value to your readers.</p><p>And even they already got (or will get) a freebie from you: You can &#x201C;surprise&#x201D; them with an additional freebie or something else that is of value for them.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why it matters:</strong></b> Offering immediate value reinforces their decision to subscribe and sets a positive tone for future interactions.</div></div><p><strong>How to nail it:</strong></p><ul><li>Share a useful tip or strategy they can implement right away.</li><li>Offer a free resource (e-book, template, checklist) related to your niche.</li><li>Provide exclusive access to a helpful tool or community.</li></ul><p>This can even be as simple as sharing a link to some content that you think is highly valuable to them.</p><p>You covered a lot by now (which doesn&apos;t mean you email is 5 pages long, keep it short, please).</p><p>Now, let&apos;s look at the final part.</p><h3 id="6-create-anticipation">6. Create Anticipation</h3><p>Your reader got to know you. You showed them why you&apos;re doing what you&apos;re doing and why you&apos;re good at it. You provided them with value. What&apos;s next?</p><p>Create anticipation! Make the reader eager to receive your next email.</p><p>How?</p><p>End your welcome email with a teaser of what&apos;s to come.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Why it matters:</strong></b> Building anticipation increases the likelihood that subscribers will open your future emails.</div></div><p><strong>How to nail it:</strong></p><ul><li>Hint at an exciting topic you&apos;ll cover in your next email.</li><li>Tease an upcoming series or special content.</li><li>Create a curiosity gap by posing an intriguing question you&apos;ll answer later.</li></ul><p>Aaand, you&apos;re done.</p><h2 id="keep-it-short"><strong>Keep It Short</strong></h2><p>It may sound like a welcome email like this would be thousands words long. And if you write your first draft, it probably will be.</p><p>I&apos;d like to encourage you to edit your welcome email a couple of times. In the end your welcome email should be short.</p><p><strong>Your welcome email would, ideally, a 2-3 minute read.</strong></p><p>Your subscribers won&apos;t know you when opening this email. Chances are that a very long welcome email will not get read.</p><p>So, keep it short. Each of the sections should be one paragraph, two at most.</p><h2 id="time-to-craft-your-perfect-welcome">Time to Craft Your Perfect Welcome!</h2><p>What about your welcome email? Does it check all the boxes?</p><div class="kg-card kg-button-card kg-align-center"><a href="https://lp.audienture.com/form/2?ref=audienture.com" class="kg-btn kg-btn-accent">Get Help Craftig a Good Welcome Email</a></div><p>Let&apos;s recap:</p><ul><li>Your welcome email should be about introducing yourself but also about getting to know the reader.<ul><li>Get them to know, like and trust you.</li><li>Gain insights about your audience.</li></ul></li><li>Make it about you:<ul><li>Introduce yourself.</li><li>Tell your reader something personal. Make yourself relatable and likeable.</li><li>Share your <em>Why</em>. What drives you?</li><li>Tell them why they should trust you. Include some social proof.</li></ul></li><li>Make it about them:<ul><li>Ask them to introduce themselves to you.</li><li>Try to get them to share a pain point or big win. Both of these hold information about your audience.</li><li>Give them a bonus for signing up (besides that freebie!).</li><li>Make them curious and excited about what&apos;s to come.</li></ul></li></ul><p>By sticking to these elements you&apos;ll create a welcome email that&apos;ll knock your new subscribers&apos; socks off. Remember, your welcome email is your first impression, so make it count!</p><p>Happy marketing!</p>]]></content:encoded></item><item><title><![CDATA[How to Test Bounce Management in Mautic with Amazon SES/SNS]]></title><description><![CDATA[<p>You know how critical it is to ensure your emails actually reach your audience. But what happens when they don&apos;t?</p><p>This is where bounce management comes into play. This flag leads that reject your emails (e.g., because of a full inbox, invalid email address, or even a</p>]]></description><link>https://audienture.com/how-to-test-bounce-management-in-mautic-with-amazon-ses-sns/</link><guid isPermaLink="false">6654ce8ae84c5570dfd762fe</guid><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Mon, 10 Jun 2024 19:28:23 GMT</pubDate><content:encoded><![CDATA[<p>You know how critical it is to ensure your emails actually reach your audience. But what happens when they don&apos;t?</p><p>This is where bounce management comes into play. This flag leads that reject your emails (e.g., because of a full inbox, invalid email address, or even a spam report &#x1F631;) as <code>Do Not Contact</code>.</p><p>How do you know that this really happens? If you want to make sure it does, you can test it easily, if you use Amazon SES/SNS.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">Mautic 5 does <b><strong style="white-space: pre-wrap;">NOT </strong></b>support bounce handling via Amazon SNS out of the box anymore. You either need to install a plugin or have to use monitored inboxes for bounce management.</div></div><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">The test email addresses below only work if you email them via Amazon SES in some way (API, SMTP, etc.).<br><br>If you came here, but don&apos;t use Amazon SES you can try sending an email to <code spellcheck="false" style="white-space: pre-wrap;">bouncetest@tribulant.com</code>. This is the only email address I know that gives you a bounce. It answers with a <code spellcheck="false" style="white-space: pre-wrap;">:fail: 550 No such person at this address</code>.</div></div><h2 id="why-bounce-management-matters">Why Bounce Management Matters</h2><p>First off, why should you even care?</p><p>Bounce management helps you maintain a healthy email list by removing addresses that caused an issue after emailing them.</p><p>Those issues could be:</p><ol><li>Hard bounce: This is permanent issues like a non-existent email (e.g. a lead misspelling their email address).</li><li>Soft bounce: These are temporary issues like a full inbox, an email that is too big, or a server issue at email provider&apos;s server.</li><li>Complaint: The email was delivered correctly but flagged as spam by the recipient (or automatically by the email provider).</li></ol><p>If you don&apos;t react to bounces you will harm your deliverability and sender reputation.</p><p>Too many bounces? You might just find yourself blacklisted.</p><p>Additionally, if you&apos;re using Amazon SES to send your emails, and you get too many bounces/complaints, then Amazon will suspend your account.</p><p>Luckily, it&apos;s quite easy to test proper bounce management.</p><h2 id="how-to-test-your-bounce-management-set-up">How to Test Your Bounce Management Set-Up</h2><p>Amazon SES provides two dedicated test email addresses to test your bounce management.</p><p>This means you can send emails to those email addresses and test how well your Mautic installation handles failures without the risk of damaging your reputation.</p><h3 id="email-addresses-for-bounce-management-tests">Email Addresses for Bounce Management Tests </h3><p>The two email addresses that Amazon SES provides are:</p><ul><li><code>bounce@simulator.amazonses.com</code> for bounces &#x2013; it simulates an SMTP 550 5.1.1 &quot;Unknown User&quot; response. This is like a misspelled or non-existent email address.</li><li><code>complaint@simulator.amazonses.com</code> for complaints &#x2013; it simulates a recipient marking your email as spam.</li></ul><h3 id="how-to-test-mautics-bounce-handling">How to Test Mautic&apos;s Bounce Handling</h3><p>Testing the bounce management is quite easy using those two email addresses. It&apos;s three simple steps:</p><ol><li><strong>Create a new contact</strong> in Mautic with one of the simulator emails.</li><li><strong>Send a test email</strong> to this new contact.</li><li><strong>Check the Result</strong>: If your bounce or complaint management setup is correct, Mautic should automatically flag this contact with a &#x201C;Do Not Contact: Email&#x201D; status. Give this process a couple of minutes.</li></ol><p>If you want or have to run multiple tests without resetting everything, just append <code>+label</code> to the simulator email (e.g., <code>bounce+test1@simulator.amazonses.com</code>).</p><p>This lets you simulate different scenarios or tests without overlap.</p><p>You can find more information about this on the Amazon docs:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.aws.amazon.com/ses/latest/dg/send-an-email-from-console.html?ref=audienture.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Sending test emails in Amazon SES with the simulator - Amazon Simple Email Service</div><div class="kg-bookmark-description">Send an email to yourself from the Amazon SES console for the easiest way to experiment with sending emails using Amazon SES.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://docs.aws.amazon.com/assets/images/favicon.ico" alt><span class="kg-bookmark-author">Amazon Simple Email Service</span></div></div></a></figure><p>Happy Marketing!</p>]]></content:encoded></item><item><title><![CDATA[Mautic Role Management: A Comprehensive Guide]]></title><description><![CDATA[<p>Do you want to work with freelancers directly in your Mautic, but are afraid to give them full access to your Mautic dashboard? Do you want to restrict access to Mautic components based on your employee&apos;s role?</p><p>Discover how to integrate external contributors safely into your or limit</p>]]></description><link>https://audienture.com/mautic-role-management-a-comprehensive-guide/</link><guid isPermaLink="false">6654ab09e84c5570dfd76230</guid><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Tue, 04 Jun 2024 17:13:19 GMT</pubDate><content:encoded><![CDATA[<p>Do you want to work with freelancers directly in your Mautic, but are afraid to give them full access to your Mautic dashboard? Do you want to restrict access to Mautic components based on your employee&apos;s role?</p><p>Discover how to integrate external contributors safely into your or limit employee access to their core tasks within Mautic.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">You&apos;ll learn</strong></b><br>&#x2022;&#xA0;The fundamentals of roles and permissions in Mautic.<br>&#x2022;&#xA0;Role management best practices.<br>&#x2022;&#xA0;Common limitations within Mautic&#x2019;s role system.<br>&#x2022;&#xA0;Actionable tips for configuring roles to match your organizational needs.<br>&#x2022;&#xA0;Practical examples to help you understand the application of these principles in real-world scenarios.</div></div><h2 id="what-are-roles">What are Roles?</h2><p>Roles define what your Mautic dashboard users can and can not do. They are essentially predefined sets of permissions.</p><p>A proper role management allows you give people access to the dashboard without having to worry about security issues.</p><p>But what are roles and permissions exactly?</p><h3 id="how-are-roles-and-permissions-related">How are Roles and Permissions Related?</h3><p>Permissions are specific actions that users are allowed to perform in Mautic. Examples are viewing or editing contacts, emails or campaigns.</p><p>Roles bundle these permissions into a package that is then assigned to users. This makes managing access to certain functionalities easy and scalable.</p><p>Now that we know that difference, let&apos;s differentiate roles and users.</p><h3 id="differences-between-roles-and-users">Differences Between Roles and Users</h3><p>The main difference is that a user is an individual with login credentials. A role is a set of permissions that can be applied to multiple users.</p><p>This means roles are about what users/persons can do, whereas the user is about who the person is that is interacting with Mautic.</p><p>Restricting access to certain functionalities of Mautic sounds great. How can you do that?</p><p>Before we dive into that, let&apos;s look at two best practices when it comes to creating access roles.</p><h2 id="best-practices-for-your-role-and-permission-management">Best Practices for Your Role and Permission Management</h2><p>There are two principles you might want to consider when creating your own role system in Mautic:</p><ol><li>Principle of least privilege</li><li>Segregation of duties</li></ol><h3 id="principle-of-least-privilege">Principle of Least Privilege</h3><p>This principle suggests that users should be granted only the permissions they need to perform their tasks.</p><p>For example, someone who edits emails doesn&#x2019;t need access to manage contacts. They have no business at looking at the contact database.</p><p>Implementing the principle of least privilege minimizes the risk of accidental or malicious misuse of sensitive information. If you have to comply with the GDPR or other data protection regulations following this principle is a must.</p><h3 id="segregation-of-duties">Segregation of Duties</h3><p>This strategy involves splitting responsibilities and permissions among different roles to prevent any single user from having too much control.</p><p>This principle is more often than not about your business processes.</p><p>Let&apos;s say you have a couple of editors. They can create, view, and update emails, landing pages, and campaigns. But they cannot publish them.</p><p>In more general terms: The person who requests a transaction&#x2014;publishing and sending an email&#x2014;should not be the same person who approves it.</p><p>This ensures checks and balances in the workflow. This also makes sure people stick to pre-sending checklists or definitions of done or some other quality assurance mechanisms.</p><h2 id="roles-for-mautic">Roles for Mautic</h2><p>If you have no role management at the moment, then here are some suggestions for roles you could implement:</p><ul><li><strong>Content Creators</strong>: Can create and edit <strong>their own</strong> drafts of emails and landing pages but cannot publish. This role is great if you hire freelancers. They can work in Mautic directly, so you don&apos;t need to import their work manually.</li><li><strong>Content Collaborators</strong>: Those users can create and edit drafts of emails and landing pages <strong>regardless who owns the piece</strong> but cannot publish. This might be useful for proofreaders.</li><li><strong>Marketing Collaborators</strong>: Can create and edit drafts of campaigns, dynamic web content, focus items, and forms.</li><li><strong>Marketing Managers</strong>: Can review content, and campaigns, and have the ability to publish. They also can manage dynamic web content, focus items, and forms.</li><li><strong>Lead Owner:</strong> Can manage leads they own.</li><li><strong>Lead Managers</strong>: Can manage all leads and their segments, stages, and points.</li><li><strong>Administrators</strong>: Have full access across the platform, including user management and system settings.</li></ul><p>You don&apos;t need to implement every role. Mix and match, pick and choose.</p><h2 id="how-to-configure-roles-in-mautic">How to Configure Roles in Mautic</h2><p>Setting up roles in Mautic is straightforward:</p><ol><li>Navigate to the &#x2018;Roles&#x2019; section in the Mautic settings.</li><li>Create a new role by clicking on &#x2018;New&#x2019; and give your role a name that clearly describes its purpose.</li><li>Select and assign permissions to this role. Mautic will present you with a list of permissions divided into categories such as Contacts, Emails, and Reports. Tick the boxes next to the actions you wish this role to perform.</li><li>Once you fully configured the permissions of your new role, save it. Then assign it to users from their profile settings.</li></ol><h2 id="gotchas-of-mautics-role-management">Gotchas of Mautic&apos;s Role Management</h2><p>You might come across a few limitations that could impact how you structure your team&apos;s permissions. I&apos;ll show the limitations I could identify to help you better plan your roles and maybe find creative workarounds to fit your needs.</p><h3 id="single-role-per-user-no-role-composition">Single Role Per User / No Role Composition</h3><p><strong>What It Means:</strong> Mautic does not support role composition. This is a feature in some systems. You would create a role that is basically a superset of already defined roles. Alternatively you would assign multiple to a single user.</p><p><strong>Drawbacks:</strong> Without this, you must manually set up each role with all necessary permissions, even if many roles share common permissions. This limits your ability to create layered permission structures easily. It also increases the potential for errors.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Say you want to give someone the permissions of your Marketing Manager and your Lead Manager role. Without role composition or the ability to assign multiple roles to a single user you need to create an additional role, e.g., &quot;Marketing &amp; Lead Manager&quot;. Now, you&apos;d have to give this role all the permissions of those to roles. I guess, you can see how this &quot;copy &amp; paste&quot; approach might clutter your role management. </div></div><p><strong>Workaround:</strong> You might consider restructuring tasks among team members to fit the permissions available within a single role. Although I&apos;ll admit that this may not always be practical.</p><h3 id="too-narrow-or-broad-access-permissions">Too Narrow or&#xA0;Broad Access Permissions</h3><p><strong>What It Means:</strong> In Mautic, the permission settings for viewing or editing items (leads, emails, pages, etc.) are generally limited to <code>[create|view|edit|delete]&#xA0;own</code> and <code>[create|view|edit|delete]&#xA0;other</code>. This means users can either see only the items they&apos;ve created or all items, regardless of who created them. Unfortunately, there is no middle ground.</p><p><strong>Drawbacks:</strong> This limitation makes it challenging to restrict access based on more granular criteria. You can&apos;t, for example, give users access to all emails of a certain category. Users might end up seeing more information than they need. This can increase the risk of someone editing the wrong thing or (worst case) of information leakage.</p><p><strong>Workaround:</strong> You can temporarily set an editor as the owner for a specific email, page, etc., if they need to edit it. This is cumbersome but upholds the principle of least privilege.</p><hr><p>Effective role management not only optimizes your team&apos;s workflow but also secures your data.</p><p>Implement some of the suggestions I made, but feel free to tweak everything that I said. Remember to review and refine your roles periodically.</p><p>Happy marketing!</p>]]></content:encoded></item><item><title><![CDATA[How to Load Mautic Report Data Into Google Sheets]]></title><description><![CDATA[<p>Mautic&apos;s reports are great. Having this data in a spreadsheet is even better. It allows you to analyze it, make custom charts and dashboards and even do some data analysis with your data.</p><p>But how do you get report data into a spreadsheet?</p><p>I&apos;m excited to</p>]]></description><link>https://audienture.com/how-to-load-mautic-report-data-into-google-sheets/</link><guid isPermaLink="false">6652fb16e84c5570dfd76133</guid><category><![CDATA[Advanced]]></category><category><![CDATA[Customization]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Sun, 26 May 2024 12:09:55 GMT</pubDate><content:encoded><![CDATA[<p>Mautic&apos;s reports are great. Having this data in a spreadsheet is even better. It allows you to analyze it, make custom charts and dashboards and even do some data analysis with your data.</p><p>But how do you get report data into a spreadsheet?</p><p>I&apos;m excited to share how to pull any report data directly into Google Sheets using Mautic&apos;s API and Google&apos;s App Scripts.</p><p>What&apos;s that good for?</p><p>You&apos;ll get the full capabilities of spreadsheets to analyze your data. Here&apos;s an example:</p><h2 id="drip-campaign-drop-off">Drip Campaign Drop-Off</h2><p>I created a new drip campaign. I tested it with a bunch of new subscribers. Now, I wanted to know if there are points, i.e., emails where people click unsubscribe a lot. Spoiler: There is &#x1F614;</p><ol><li>At first, I created a report with data source <code>Emails Sent</code></li><li>For the data I added the email ID, their internal name, category ID and sent count as data columns.</li><li>I filtered the emails for this specific campaign that triggered people to click unsubscribed.</li><li>I grouped the emails by the ID field and added a calculated column <code>COUNT Unsubscribed</code>.</li><li>Then, I imported the data into my spreadsheet using the script below.</li><li>Finally, I created a line chart.</li></ol><p>Here&apos;s the report set-up:</p><figure class="kg-card kg-image-card"><img src="https://audienture.com/content/images/2024/05/set-up-drip-campaign-drop-off-report.png" class="kg-image" alt loading="lazy" width="2000" height="1490" srcset="https://audienture.com/content/images/size/w600/2024/05/set-up-drip-campaign-drop-off-report.png 600w, https://audienture.com/content/images/size/w1000/2024/05/set-up-drip-campaign-drop-off-report.png 1000w, https://audienture.com/content/images/size/w1600/2024/05/set-up-drip-campaign-drop-off-report.png 1600w, https://audienture.com/content/images/size/w2400/2024/05/set-up-drip-campaign-drop-off-report.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>This is the result:</p><figure class="kg-card kg-image-card"><img src="https://audienture.com/content/images/2024/05/google-spreadsheet-drip-campaign-data-analysis.png" class="kg-image" alt loading="lazy" width="2000" height="1033" srcset="https://audienture.com/content/images/size/w600/2024/05/google-spreadsheet-drip-campaign-data-analysis.png 600w, https://audienture.com/content/images/size/w1000/2024/05/google-spreadsheet-drip-campaign-data-analysis.png 1000w, https://audienture.com/content/images/size/w1600/2024/05/google-spreadsheet-drip-campaign-data-analysis.png 1600w, https://audienture.com/content/images/size/w2400/2024/05/google-spreadsheet-drip-campaign-data-analysis.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>This made it obvious to me that two welcome emails are too much. An almost 10% unsubscribe rate is absurdly high.</p><p>Thus, I merged those two emails and shortened it. We&apos;ll see how this change will perform in the future.</p><h2 id="so-how-can-you-make-this-too">So, how can you make this, too?</h2><p>Just copy the spreadsheet I made into your workspace and start importing data. Plug and play! You don&apos;t have to code anything!</p><p>I developed a Google Apps Script that automates the process of pulling report data from Mautic into Google Sheets. This script is designed to fetch data from specific Mautic reports based on parameters you define, such as report IDs, and date ranges.</p><p>This allows you to do some complex data analysis&#x2014;even if you dislike spreadsheets &#x1F609;.</p><p>But first things first:</p><h2 id="enable-mautics-api">Enable Mautic&apos;s API</h2><p>First, you need to enable Mautic&apos;s API. I explained how to do that in this article:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://audienture.com/how-to-use-the-mautic-api/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Use the Mautic API</div><div class="kg-bookmark-description">Are you looking to automate repetitive tasks or integrate Mautic with other platforms? Do you need to create, modify or delete a lot of data and want to use a script you wrote? The Mautic API offers a robust solution to fulfill your needs. &#x1F4A1;In this article:
Learn how to</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://audienture.com/favicon.ico" alt><span class="kg-bookmark-author">Audienture</span><span class="kg-bookmark-publisher">Tobias</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.ghost.org/v5.0.0/images/publication-cover.jpg" alt></div></a></figure><p>You need to enable HTTP Basic Auth for the script to work. It doesn&apos;t support OAuth.</p><h2 id="copy-the-spreadsheet-and-script">Copy the Spreadsheet and Script</h2><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">The remainder of this article and the script is for premium subscribers only. Please subscribe to get access.</div></div>]]></content:encoded></item><item><title><![CDATA[How to Use the Mautic API]]></title><description><![CDATA[<p>Are you looking to automate repetitive tasks or integrate Mautic with other platforms? Do you need to create, modify or delete a lot of data and want to use a script you wrote? The Mautic API offers a robust solution to fulfill your needs.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">In this article:</strong></b><br>Learn how</div></div>]]></description><link>https://audienture.com/how-to-use-the-mautic-api/</link><guid isPermaLink="false">66526280e84c5570dfd760d2</guid><category><![CDATA[Key Concepts]]></category><category><![CDATA[Customization]]></category><category><![CDATA[Advanced]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Sun, 26 May 2024 09:16:19 GMT</pubDate><content:encoded><![CDATA[<p>Are you looking to automate repetitive tasks or integrate Mautic with other platforms? Do you need to create, modify or delete a lot of data and want to use a script you wrote? The Mautic API offers a robust solution to fulfill your needs.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">In this article:</strong></b><br>Learn how to enable, use, and secure your Mautic&apos;s API functionality and usage. This allows you to integrate 3rd party tools/services or automate tasks with your own scripts.</div></div><h2 id="mautics-rest-api">Mautic&apos;s REST&#xA0;API</h2><p>Mautic comes with a complete RESTful API that lets you interact with almost any part of Mautic.</p><p>Just in case you&apos;re wondering:</p><h3 id="what-is-an-api">What is an API?</h3><p>An API, or Application Programming Interface, is essentially a gateway that allows one software program to interact with another.</p><p>So, in our case a CRM with Mautic or your script with Mautic.</p><p>If you&apos;re new to API&apos;s the question is: What&apos;s it good for? What&apos;s in for me?</p><p>Let me show you 3 benefits:</p><h3 id="benefits-of-using-mautic-api">Benefits of Using Mautic API</h3><p>With Mautic&apos;s API you can automate your marketing tasks. Here are some examples:</p><ul><li><strong>Automation of Repetitive Tasks:</strong> Automate tasks like importing emails from another source, import, update, or edit contacts or contact lists, manipulate contact points or stages based on external triggers or calculations.</li><li><strong>Integration with Other Tools:</strong> Connect Mautic seamlessly with CRM platforms, e-commerce systems, or other marketing tools you use.</li><li><strong>Customization Possibilities:</strong> Tailor Mautic to your specific marketing needs by building custom integrations or functionality that&#x2019;s unique to your business.</li></ul><h3 id="use-cases">Use Cases</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://audienture.com/how-to-load-mautic-report-data-into-google-sheets/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Load Mautic Report Data Into Google Sheets</div><div class="kg-bookmark-description">Mautic&#x2019;s reports are great. Having this data in a spreadsheet is even better. It allows you to analyze it, make custom charts and dashboards and even do some data analysis with your data. But how do you get report data into a spreadsheet? I&#x2019;m excited to share how to pull</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://audienture.com/favicon.ico" alt><span class="kg-bookmark-author">Audienture</span><span class="kg-bookmark-publisher">Tobias</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.ghost.org/v5.0.0/images/publication-cover.jpg" alt></div></a></figure><h2 id="enable-the-api">Enable the API</h2><p>Before you can start making API calls, you&apos;ll need to activate the API in your Mautic dashboard. It&#x2019;s a straightforward process:</p><p><em>(I&apos;ll explain further below on how to make your API access more robust and secure.)</em></p><h3 id="enable-the-api-1">Enable the API</h3><p>First open the API configuration view: Go to <code>Settings &gt; Configuration &gt; API Settings</code> in your Mautic dashboard.</p><p>Then find the <code>API Enabled?</code> option and set it to <code>Yes</code>. This turns on the API functionality. It enables the API for use via OAuth. (more on that below).</p><p>Do you plan to use your own scripts? Then you want to enable HTTP Basic Authentication (more on this below, too).</p><p>Set <code>Enable HTTP basic auth?</code> to <code>Yes</code>. In a nutshell: This allows you use the API with your username and password.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">If you use HPPT Basic Auth, always use HTTPS to keep your credentials (and data) secure. Sending your credentials over an unsecured HTTP connection is a big no-no!</div></div><h3 id="primer-on-authentication-methods">Primer on Authentication Methods</h3><p>Mautic gives you two options when it comes to API authentication:</p><ul><li>HTTP Basic Authentication</li><li>OAuth Authentication</li></ul><p>I&apos;ll give you a brief overview over those to. This should allow you to decide which method you use.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">TL;DR: HTTP Basic Auth is good for your own scripts, if they are rather simple. You should use OAuth for either advanced scripts or other services, like Zappier, or integrations.</div></div><h4 id="http-basic-authentication">HTTP Basic Authentication</h4><p>HTTP Basic Auth is a straightforward method where you send a username and password with each request. This method is like logging into your dashboard every time you want to change something.</p><p>To use the API with HTTP Basic Auth, you&apos;d simply <em>log into</em> the API with your username and password.</p><p>This method is great for internal applications but less secure because it transmits your credentials in each call.</p><p>I use HTTP Basic Auth for my own scripts, because it&apos;s simple to use.</p><h4 id="oauth-authentication">OAuth Authentication</h4><p>OAuth is more secure, but also more complex. It uses <em>tokens</em> instead of sending credentials repeatedly.</p><p>This method is preferred for applications exposed to the public or where security is a bigger concern.</p><p>I use this method when I try to connect a web service, like Zappier, to Mautic. The app handles the OAuth logic and I get more security.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">No matter which method you use: Make sure your API is secure by restriction access permissions.</div></div><p>But before we talk security, let&apos;s learn how to use the API.</p><h2 id="making-your-first-requests">Making Your First Requests</h2><p>Now that you&apos;ve enabled the API, let&#x2019;s get down to business. Making your first API is easy. I&#x2019;ll break it down into simple steps using cURL.</p><p>Open your Linux or Windows terminal/powershell.</p><p>For this to work I assume two things:</p><ol><li>You enabled HTTP Basic Auth.</li><li>You&apos;re using your admin user for full system and API access.</li></ol><p>If you see something like this, then your user doesn&apos;t have the roles/privileges to make this particular API call:</p><pre><code class="language-json">{&quot;errors&quot;:[{&quot;code&quot;:403,&quot;message&quot;:&quot;You do not have access to the requested area/action.&quot;,&quot;details&quot;:[]}]}
</code></pre><h3 id="fetching-data-via-the-api">Fetching data via the API</h3><p>In our first interaction with the API we&apos;ll fetch some data from Mautic. We&apos;ll make a GET request for that. The basic structure looks like this:</p><pre><code class="language-bash">curl -u &apos;api_user:api_user_password&apos; &apos;https://mautic.yoursite.com/api/${endpoint}/${identifier}?${queryParams}$&apos;
</code></pre><h4 id="breakdown-of-the-command">Breakdown of the command</h4><ol><li><strong><code>curl</code></strong>: This is the command itself, used to transfer data to or from a server using various protocols, with HTTP being one of the most common.</li><li><code><strong>-u &apos;api_user:api_user_password&apos;</strong></code>: This option stands for &quot;user&quot;. It is used to pass the username (<code>api_user</code>) and password (<code>api_user_password</code>) for HTTP Basic Authentication.</li><li>What follows is the API URL: <code>https://mautic.yoursite.com/api/${endpoint}/${identifier}</code> It has three components:<ul><li><strong>Base URL</strong>: <code>https://mautic.yoursite.com/api/</code> This is the (base) URL of your API.</li><li><strong>Endpoint</strong> <code>${endpoint}</code>: The endpoint gives you access to an API functionality. <code>contacts</code> for example lets you access your contact data.</li><li><strong>Query Parameters</strong>: Query parameters let you filter data if you fetch data. They are optional.</li></ul></li></ol><h4 id="what-happens-when-you-run-the-command">What Happens When You Run the Command?</h4><p>When you execute this command, <code>curl</code> makes a request to the specified URL. It includes the user credentials for authentication. The server at <code>mautic.yoursite.com</code> will:</p><ul><li>process your request,</li><li>authenticate using the provided credentials, and if successful,</li><li>return the (filtered, if applicable) data from the endpoint.</li></ul><h3 id="fetch-real-data">Fetch real data.</h3><p>Let&apos;s try to fetch real data&#x2014;the very first user; the user with the ID&#xA0;1. This should be your admin user that you created during the installation of Mautic.</p><pre><code class="language-bash">curl -u &apos;api_user:api_user_password&apos; &apos;https://mautic.yoursite.com/api/contacts/1&apos;
</code></pre><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">For a nicer output you can pretty print Mautics response. On Windows append:<br><code spellcheck="false" style="white-space: pre-wrap;">curl [...] | ConvertFrom-Json | ConvertTo-Json</code><br>to your curl request. On Linux append (mind the dot):<br><code spellcheck="false" style="white-space: pre-wrap;">curl [...] | jq .</code></div></div><p>If successful, the (really long) response will look similar to this (I shortened it):</p><pre><code class="language-json">{
	&quot;contact&quot;: {
		&quot;isPublished&quot;: true,
		&quot;createdBy&quot;: 1,
		&quot;createdByUser&quot;: &quot;Tobias from Audienture&quot;,
		&quot;id&quot;: 1,
		&quot;fields&quot;: {
			// very long and detailed list of all contact fields
			&quot;all&quot;: {
				&quot;id&quot;: &quot;1&quot;,
				&quot;firstname&quot;: &quot;Tobias&quot;,
				&quot;lastname&quot;: &quot;from Audienture&quot;,
				&quot;email&quot;: &quot;info@audienture.com&quot;,
				// all contact fields in key: value format
			}
		},
		&quot;owner&quot;: null,
		&quot;ipAddresses&quot;: [
			// ..
		],
		&quot;tags&quot;: [
			// ..
		],
		&quot;utmtags&quot;: [
			// ..
		],
		&quot;stage&quot;: null,
		&quot;doNotContact&quot;: [],
		&quot;frequencyRules&quot;: [
			// ..
		]
	}
}
</code></pre><p>If you get an error, you either don&apos;t have the right permissions or deleted the contact. Try another ID.</p><p>Let&apos;s try to add or change some data:</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">By using the API with POST/PUT/PATCH requests, you&apos;re modifying your Mautic database. Use a development server or make a backup of your data, before playing around.</div></div><h3 id="use-the-api-to-create-data">Use the API to create data</h3><p>To create data you need to make a POST request to your API. You need to send a <em>JSON body</em> along with your cULR request. This body (also known as <em>payload</em>) contains the data you want to create.</p><pre><code class="language-bash">curl -X POST -H &quot;Content-Type: application/json&quot; -u &apos;api:test123&apos; &apos;https://mautic.mysit.com/api/contacts/new&apos;  -d &apos;{&quot;firstname&quot;: &quot;John&quot;, &quot;lastname&quot;: &quot;Doe&quot;, &quot;email&quot;: &quot;john.doe@example.com&quot;}&apos;
</code></pre><ul><li><code><strong>-X POST</strong></code>: This option specifies the HTTP method to use. In this case, <code>-X</code> stands for &quot;request method,&quot; and <code>POST</code> is the method used when you want to send data to the server. A POST request is often used for creating new resources or submitting form data.</li><li><code><strong>-H &quot;Content-Type: application/json&quot;</strong></code>: This option adds a header to the HTTP request (<code>-H</code>). The header <code>&quot;Content-Type: application/json&quot;</code> tells the server that the body of the request is formatted as JSON. This is crucial as the API expects the data to be in JSON format.</li><li><code><strong>-d &apos;{&quot;firstname&quot;: &quot;John&quot;, &quot;lastname&quot;: &quot;Doe&quot;, &quot;email&quot;: &quot;john.doe@example.com&quot;}&apos;</strong></code>: The <code>-d</code> flag stands for &quot;data&quot; and is used to include data to be sent with the request. Here, <code>&apos;{&quot;key&quot;:&quot;value&quot;}&apos;</code> represents the JSON-formatted data being sent to the server. This could be any JSON object, and in this example, it creates the contact with first name John, last name Doe and email <a>john.doe@example.com</a>.</li></ul><p>Mautic&apos;s response to this request will be the newly created contact. I&apos;ll omit that.</p><h4 id="what-happens-if-johndoeexamplecom-is-already-a-contact">What happens if <code>john.doe@example.com</code> is already a contact?</h4><p>The email field is a unique identifier. This means that there can only be one contact in your database that has the email address <code>john.doe@example.com</code>.</p><p>Mautic will update the existing contact using the data you&apos;ll send in your POST request.</p><p>This means:</p><ul><li>Say, <strong><code>{&quot;firstname&quot;: &quot;John&quot;, &quot;lastname&quot;: &quot;Doe&quot;, &quot;email&quot;: &quot;john.doe@example.com&quot;}</code></strong> exists in your database.</li><li>And you&apos;ll make a POST request to <code>/api/contacts/new</code> with the payload <strong><code>{&quot;firstname&quot;: &quot;Peter&quot;, &quot;company&quot;: &quot;ACME&quot;, &quot;email&quot;: &quot;john.doe@example.com&quot;}</code></strong></li><li>Then Mautic will update the contact&apos;s first name from <code>John</code> to <code>Peter</code> and add the company name <code>ACME</code>. So, your contact&apos;s data will look like this: <strong><code>{&quot;firstname&quot;: &quot;Peter&quot;, &quot;lastname&quot;: &quot;Doe&quot;, &quot;company&quot;: &quot;ACME&quot;, &quot;email&quot;: &quot;john.doe@example.com&quot;}</code></strong>.</li></ul><h4 id="what-happens-if-an-error-occurs">What happens if an error occurs?</h4><p>If your data is malformed an error 400 occurs:</p><pre><code class="language-json">{
  &quot;errors&quot;: [
    {
      &quot;message&quot;: &quot;Looks like I encountered an error (error #400). If I do it again, please report me to the system administrator!&quot;,
      &quot;code&quot;: 400,
      &quot;type&quot;: null
    }
  ]
}
</code></pre><h3 id="use-the-api-to-change-data">Use the API to change data</h3><p>If you want to change data, then your curl command stays almost the same. The &quot;<em>only</em>&quot; difference is the HTTP method used (and the data you sent with your API call, of course).</p><p>The HTTP method you&apos;ll use is either PATCH or PUT. Which you use depends on the behavior you expect from Mautic.</p><pre><code class="language-bash">curl -X PATCH|PUT -u &apos;username:password&apos; -H &quot;Content-Type: application/json&quot; -d &apos;{&quot;first_name&quot;: &quot;Jane&quot;}&apos; &quot;https://yourmauticinstance.com/api/contacts/123/edit&quot;
</code></pre><h4 id="explanation-of-patch-vs-put">Explanation of PATCH vs. PUT</h4><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">TL;DR: PATCH only modifies an existing entity (e.g. a Contact) and returns an error if it doesn&apos;t exist yet. PUT modifies an entity OR creates it, if it doesn&apos;t exist.</div></div><p>This means PATCH doesn&apos;t create a new entity (e.g., a contact), PUT does. PATCH doesn&apos;t change data you haven&apos;t included in your API call, PUT does.</p><p>In the curl example above, PATCH would change the first name to <code>Jane</code>, leaving the remaining fields of contact <code>123</code> untouched. PUT on the other hand would empty all fields of contact <code>123</code> and <strong>only</strong> set first name to <code>Jane</code>, leaving you with an almost empty contact.</p><p>In more detail:</p><div class="kg-card kg-toggle-card" data-kg-toggle-state="close">
            <div class="kg-toggle-heading">
                <h4 class="kg-toggle-heading-text"><span style="white-space: pre-wrap;">PATCH (click to expand)</span></h4>
                <button class="kg-toggle-card-icon" aria-label="Expand toggle to read content">
                    <svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                        <path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/>
                    </svg>
                </button>
            </div>
            <div class="kg-toggle-content"><p><span style="white-space: pre-wrap;">You use PATCH for making (partial) updates to an </span><b><strong style="white-space: pre-wrap;">existing</strong></b><span style="white-space: pre-wrap;"> resource (i.e., a contact, email, etc.).</span></p><p><span style="white-space: pre-wrap;">PATCH will only update the data you send with your API call.</span></p><p><span style="white-space: pre-wrap;">If you want to update the first name of a contact, then PATH will only update this contact field.</span></p><p><span style="white-space: pre-wrap;">If the specified entity (a contact in this case) does not exist, Mautic should return a 404 error.</span></p><p><span style="white-space: pre-wrap;">They way PATCH works:</span></p><ol><li value="1"><span style="white-space: pre-wrap;">Mautic looks for the entity with the ID you sent via the API call.</span></li><li value="2"><span style="white-space: pre-wrap;">If the entity exists: Mautic updates the entity&apos;s properties using the data you provided.</span></li><li value="3"><span style="white-space: pre-wrap;">If the entity doesn&apos;t exist, yet: Mautic returns an error.</span></li></ol></div>
        </div><div class="kg-card kg-toggle-card" data-kg-toggle-state="close">
            <div class="kg-toggle-heading">
                <h4 class="kg-toggle-heading-text"><span style="white-space: pre-wrap;">PUT (click to expand)</span></h4>
                <button class="kg-toggle-card-icon" aria-label="Expand toggle to read content">
                    <svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                        <path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/>
                    </svg>
                </button>
            </div>
            <div class="kg-toggle-content"><p><span style="white-space: pre-wrap;">You use PUT for updating a resource completely or creating it if it doesn&apos;t exist.</span></p><p><span style="white-space: pre-wrap;">When you make a PUT API call, you have to provide the full set of data, not just the parts you want to update. If you omit data that is already set, it gets deleted.</span></p><p><span style="white-space: pre-wrap;">Say, you want to update a contact via PUT and omit the first name field, this means, the first name gets deleted.</span></p><p><span style="white-space: pre-wrap;">If the entity (e.g., a contact) with the specified ID exists, it will be updated; if it does not exist, Mautic will create it.</span></p><p><span style="white-space: pre-wrap;">They way PUT works:</span></p><ol><li value="1"><span style="white-space: pre-wrap;">Mautic looks for the entity with the ID you sent via the API call.</span></li><li value="2"><span style="white-space: pre-wrap;">If the entity exists: Mautic clears all the data.</span></li><li value="3"><span style="white-space: pre-wrap;">If the entity doesn&apos;t exist, yet: Mautic creates a new entity.</span></li><li value="4"><span style="white-space: pre-wrap;">Mautic fills the entity with all the data you provided via the API call.</span></li></ol></div>
        </div><p>Choosing between PATCH and PUT depends on whether you expect the resource to exist and whether you intend to provide complete or partial data for updates.</p><h2 id="manage-security">Manage Security</h2><p>Properly managing roles and permissions is important to make your Mautic API secure. You can use Mautic&apos;s role management system to achieve that:</p><p>When you access the Mautic API, the authenticated user&apos;s API access mirrors their user interface permissions.</p><h3 id="how-it-works">How It Works</h3><p>This means they can interact with the API endpoints exactly as they would within the Mautic UI, limited by their user role.</p><p>Let&apos;s assume you created a role called &quot;Editor&quot;. This role is only permitted to create and edit their own emails.</p><p>A user with this role will only be able to access email-related endpoints in the API.</p><p>Simple, yet effective.</p><p>They won&apos;t be able to interact with emails someone else created. And they certainly couldn&apos;t modify your contact database, campaigns, or other elements outside their scope.</p><h3 id="basic-set-up-and-example">Basic Set-Up and Example</h3><p>To minimize risks and ensure each API user can only access relevant data and functionalities, follow these steps to create narrowly scoped API roles:</p><ul><li>Navigate to the <code>Roles</code> section in your Mautic settings.</li><li>Create a new role specifically for API access. For instance, you might have a role named &quot;<em>API Access - Contacts Script</em>&quot; for a script that only needs to manage contact data.</li><li>Carefully select the permissions for this role. Only grant access to the necessary features that the API needs to interact with.</li><li>Once your role is configured, create a user assigned exclusively for API interactions.</li><li>Go to the <code>Users</code> section and create a new user. Assign the user the role you just created, ensuring they are configured to use API access only.</li><li>Use strong, complex passwords for this user account, and consider changing passwords regularly to maintain security.</li></ul><p>Let&apos;s assume you want to create/import users via a script. You create the &quot;<em>API Access - Contacts Script</em>&quot; role.</p><p>The most secure permission design for this is giving the <em>API Access - Contacts Script</em> role just the permission to create new contacts.</p><p>Now, even if your credentials leak, an attacker could &quot;just&quot; create new contacts. This might be a PITA, but your data is still secure. They could not read or modify or delete your contact database, campaigns or emails.</p><h3 id="handling-responses-and-errors">Handling Responses and Errors</h3><p>Mautic will respond to your requests with JSON data. If your request is successful, you&#x2019;ll get data related to your request, along with status codes like <code>200 OK</code>.</p><p>If something goes wrong, you might see <code>404 Not Found</code> or <code>500 Internal Server Error</code>.</p><p>Familiarize yourself with common error codes. If you see <code>400 Bad Request</code>, check your data formatting; <code>401 Unauthorized</code> means there&#x2019;s an issue with your credentials or user&apos;s role permissions.</p><h2 id="libraries">Libraries</h2><p>Mautic provides a PHP library to make interacting with your API easier: <a href="https://github.com/mautic/api-library?ref=audienture.com">GitHub - mautic/api-library: Mautic API Library</a>.</p><hr><p>We went through setting up and the ins and outs of using the Mautic API. You&apos;re well-equipped to get started with using the API.</p><p>You will have to experiment with different API functionalities to get a grasp of what is possible, but I am sure, you&apos;ll find something that makes your marketing life easier.</p><p>After all, using the API gives you a powerful way to access your data and automate scripts.</p><p>If you have any questions, please shoot me a message.</p><p>Happy marketing!</p>]]></content:encoded></item><item><title><![CDATA[How to Send Emails with Mautic and Gmail]]></title><description><![CDATA[<p>Starting with Mautic can be overwhelming, especially because you need to pick an email service provider that will send your emails. Which to choose?</p><p>Well, I can understand if you might be hesitant to jump straight into a third-party email service provider.</p><p>But what if I told you that you</p>]]></description><link>https://audienture.com/how-to-send-emails-with-mautic-and-gmail/</link><guid isPermaLink="false">6655b241e84c5570dfd76371</guid><category><![CDATA[Beginner]]></category><category><![CDATA[Set Up and Maintenance]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Wed, 08 May 2024 11:56:00 GMT</pubDate><content:encoded><![CDATA[<p>Starting with Mautic can be overwhelming, especially because you need to pick an email service provider that will send your emails. Which to choose?</p><p>Well, I can understand if you might be hesitant to jump straight into a third-party email service provider.</p><p>But what if I told you that you can (within limitations) use your good old Gmail account?</p><p>Using Gmail as your mail transport in Mautic can be a choice for testing and sending your first few emails in production.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">What you&apos;ll learn</strong></b><br>&#x2022;&#xA0;Setting up 2-Step verification for Gmail<br>&#x2022;&#xA0;Creating a Google app password for Mautic<br>&#x2022;&#xA0;Installing and configuring Symfony&#x2019;s Gmail mailer transport<br>&#x2022;&#xA0;Understanding limitations and considerations of using Gmail as your mail transport</div></div><p>Let&apos;s get you started.</p><h2 id="setting-up-sending-emails-via-gmail-with-mautic-a-step-by-step-guide">Setting Up Sending Emails via Gmail with Mautic: A Step-by-Step Guide</h2><p>To set everything up for your first email, you need to do 3 things:</p><ol><li>(Enable 2-step verification and) create an app password in your Google account.</li><li>Install the <code>symfony/google-mailer</code> package.</li><li>Configure your mailer DSN in Mautic.</li></ol><h3 id="prerequisite-2-fa-and-app-password">Prerequisite: 2-FA and App Password</h3><p>Before you can use Gmail for sending your emails with Mautic you have to make sure your Gmail account is ready to handle third-party applications like Mautic:</p><ol><li><strong>Enable 2-Step verification</strong> (if you haven&apos;t, already). You can enable it in your Google account settings: <a href="https://myaccount.google.com/security?ref=audienture.com" rel="noreferrer">https://myaccount.google.com/security</a></li><li><strong>Generate an app password</strong> for Mautic to connect with your Google account. Do it here: <a href="https://myaccount.google.com/apppasswords?ref=audienture.com">https://myaccount.google.com/apppasswords</a></li></ol><p>Here&apos;s the relevant Google help page: <a href="https://support.google.com/accounts/answer/185839?ref=audienture.com">https://support.google.com/accounts/answer/185839</a>.</p><p>After you&apos;ve set that up, you can install Symfony&apos;s Gmail mailer.</p><h3 id="install-symfonys-gmail-mailer-transport">Install Symfony&apos;s Gmail mailer transport</h3><p>Installing the transport is easy if you installed Mautic via composer. It&apos;s a 3-step process:</p><ol><li>Install Symfony&apos;s Gmail mailer transport via composer.</li><li>Clear your Mautic cache.</li><li>Reload your Mautic plugins (probably not necessary).</li></ol><pre><code class="language-bash">composer require symfony/google-mailer
php bin/console cache:clear
php bin/console mautic:plugins:reload</code></pre><p>The last step is to configure the mailer DSN in Mautic:</p><h3 id="configure-your-mailer-dsn-in-mautic">Configure Your Mailer DSN in Mautic</h3><p>To configure your mailer DSN in Mautic follow these steps:</p><ol><li>Go to <code>Settings &gt; Configure &gt; Email Settings &gt; Mailer DSN</code>.</li><li>Set <strong>Scheme</strong> to <code>gmail</code> (or <code>gmail+smtp</code>; it doesn&apos;t matter which one you use).</li><li>Enter your email address into the <strong>User</strong> field: <code>your.email.address@gmail.com</code>.</li><li>Use the <strong>16-digit app password</strong> you generated earlier for the <strong>Password</strong> field.</li><li>Set <strong>Host</strong> to <code>default</code> and leave the fields for <strong>Port</strong> and <strong>Path</strong> empty.</li><li><strong>Save</strong> your settings</li><li>Try to send a test email to confirm everything is working.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://audienture.com/content/images/2024/05/configure-mautic-to-send-emails-using-gmail.png" class="kg-image" alt="Mautic email settings for using the Gmail mailer transport" loading="lazy" width="2000" height="1137" srcset="https://audienture.com/content/images/size/w600/2024/05/configure-mautic-to-send-emails-using-gmail.png 600w, https://audienture.com/content/images/size/w1000/2024/05/configure-mautic-to-send-emails-using-gmail.png 1000w, https://audienture.com/content/images/size/w1600/2024/05/configure-mautic-to-send-emails-using-gmail.png 1600w, https://audienture.com/content/images/size/w2400/2024/05/configure-mautic-to-send-emails-using-gmail.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Mautic email settings for using the Gmail mailer transport</span></figcaption></figure><p>Behind the scenes, Symfony&#x2019;s <code>google-mailer</code> connects to Gmail&#x2019;s SMTP server (<code>smtp.gmail.com</code>) on port <code>465</code> using secure TLS encryption.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Symfony&apos;s Gmail mailer does currently not support <code spellcheck="false" style="white-space: pre-wrap;">XOAUTH2</code>&#xA0;or the&#xA0;<code spellcheck="false" style="white-space: pre-wrap;">Gmail API</code>.</div></div><h3 id="troubleshooting-tips">Troubleshooting Tips</h3><p>If you encounter issues:</p><ul><li>Verify that you&#x2019;re not attempting to use TLS with port 587. This seems to cause issues with PHPMailer: <a href="https://stackoverflow.com/a/31088679?ref=audienture.com" rel="noreferrer">Source</a>.</li><li>You <em>might</em> be able to enforce a certain encryption type by adding an option to your mailer DSN: <code>encryption=(tls|ssl)</code>. I did not test this.</li></ul><h2 id="limitations-and-considerations">Limitations and Considerations</h2><p>While Gmail <strong>seems</strong> perfect for testing and small-scale use, remember it&#x2019;s not designed for this.</p><p>Here are some limitations and considerations to think of when trying to use Gmail:</p><h3 id="sending-limits">Sending Limits</h3><p>Gmail allows you to send a maximum of 500 emails per day. See Gmail&apos;s help page <a href="https://support.google.com/mail/answer/22839?ref=audienture.com" rel="noreferrer">Limits for sending &amp; getting mail</a>.</p><p>Also, Gmail might temporarily or maybe even permanently suspend your account for some reason.</p><h3 id="professionalism">Professionalism</h3><p>Using a Gmail address for business communications might seem unprofessional.</p><p>It certainly does to me.</p><p>A free email provider address simply doesn&apos;t project as professional an image as a branded email addresses do.</p><h3 id="compliance-issues">Compliance Issues</h3><p>Ensure compliance with data protection regulations when using Gmail, especially in a business context. Consult a data protection officer or an attorney if you&apos;re uncertain.</p><h3 id="sender-reputation">Sender Reputation</h3><p>If you use Gmail you won&apos;t build sender reputation with your sending email address. This might hurt you later.</p><p>If you switch to a professional email service provider you might have strict sending limits until they trust you.</p><p>Also: Switching from <code>xyz@gmail.com</code> to <code>newsletter@myprofessionalsite.com</code> changes (obviously) your sending address. This sudden change can put your emails in spam or promotional folders.</p>]]></content:encoded></item><item><title><![CDATA[Adding Friction to Your Sign-Up Forms to Improve Lead Quality?]]></title><description><![CDATA[<p>We all know the drill: <em>Make sign-up forms as simple as possible</em>. Best case: An input field for the email address and a sign-up button.</p><p>But is this really the best strategy?</p><p><strong>Can a little bit of friction help to get rid of low-quality leads in your email list?</strong></p><p>Believe</p>]]></description><link>https://audienture.com/adding-friction-to-your-sign-up-forms/</link><guid isPermaLink="false">661cef469141d51523eefd78</guid><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Thu, 18 Apr 2024 08:44:29 GMT</pubDate><content:encoded><![CDATA[<p>We all know the drill: <em>Make sign-up forms as simple as possible</em>. Best case: An input field for the email address and a sign-up button.</p><p>But is this really the best strategy?</p><p><strong>Can a little bit of friction help to get rid of low-quality leads in your email list?</strong></p><p>Believe it or not, a little friction in your sign-up process might be just what you need.</p><p>Yes, this goes against conventional marketing wisdom, but stick with me.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">If you can apply this tip to your email strategy depends highly on your goals, of course. If you just want to grow, no matter what, this tip isn&apos;t for you.</div></div><h2 id="understanding-the-value-of-friction">Understanding the Value of Friction</h2><p>Adding an extra step or question to your sign-up form might seem counterintuitive.</p><p>After all, the generally accepted marketing advice is to make things as easy as possible for potential customers. This includes the sign-up process.</p><p>Why?</p><p>Every action you demand from a lead (=friction) during a conversion bears the possibility that you confuse them. Or make them doubt if continuing really is the best use of their time. Or ...</p><p>One of these thoughts aaand: the lead is gone. Bummer!</p><p>But there&apos;s actually value in that for you. At least <em>for the sign-up</em>:</p><p><strong>A bit of friction can actually help filter out leads who aren&apos;t truly interested or relevant to your business.</strong></p><p>I&apos;ll tell you why I believe that:</p><h2 id="how-friction-enhances-lead-quality">How Friction Enhances Lead Quality</h2><p>A client of mine does nutrition counseling. This is a huge field. She specializes on nutrition for athletes (especially female athletes).</p><p>Now, she <em>can</em> help men, or obese people, too. These are just not her ideal customers. Her funnel probably won&apos;t match their needs or interests.</p><p>We added a simple dropdown question to her sign-up form for athletes:</p><blockquote>&#x201C;What do you want to achieve by changing your diet?&#x201D;<br>- Shorter recovery time<br>- Faster muscle growth<br>- Less injuries<br>- Better competition performance</blockquote><p>This simple question helps her&#x2014;and a bespoke one can help you for two reasons. And the second is the more powerful one.</p><h3 id="self-segmentation">Self-segmentation</h3><p>By answering this filtering question during sign-up leads self-segment themselves for you. You instantly know better who&apos;s joining your list.</p><p>What&apos;s this good for?</p><p>This allows you to tailor your emails and offers to meet your leads <strong>specific</strong> needs.</p><p>While this in itself is helpful, here&apos;s the real benefit:</p><h3 id="deterring-subscribers">Deterring Subscribers</h3><p>There is a high chance that a lead won&apos;t have a good quality, if they don&#x2019;t find themselves in the categories you provided.</p><p>Take the example from above:</p><p>If a lead wants to lose weight or the best diet during pregnancy my client <em>could</em> help them. But her funnel isn&apos;t targeted for that.</p><p>The result?</p><p>The lead probably won&apos;t buy from her, eventually.</p><p>So, why have them in the email list in the first place?</p><p>If a lead struggles to answer this one filtering question they might decide this isn&#x2019;t the right list to join&#x2014;and they probably are right.</p><p>This naturally filters out leads who aren&apos;t interested in what you&apos;ll offer them.</p><h2 id="how-to-implement-%E2%80%9Cgood%E2%80%9D-friction">How to Implement &#x201C;<em>Good&#x201D;</em> Friction</h2><p>I hope, I could make it clear that friction <strong>can</strong> be beneficial.</p><p>But it is also relevant, how you introduce it to your forms. Here are some tips:</p><h3 id="make-it-relevant">Make it relevant</h3><p>The question should give you meaningful insight into your subscriber. This also means:</p><p>Your ideal customer (and then some) has to recognize themselves in the question and the answers you provide.</p><p>This demands some balance.</p><p>Anything too generic won&apos;t help you. Too detailed and you&apos;ll add too much friction.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Don&apos;t ask anything that people might deem invasive! This <b><strong style="white-space: pre-wrap;">will</strong></b> turn potential leads away. Don&apos;t ask anything you wouldn&apos;t ask a new client in person when you meet them for the very first time.<br>(I know, this is Captain Obvious advice)</div></div><h3 id="kiss%E2%80%94keep-it-simple">KISS&#x2014;Keep it simple</h3><p>Yes, we&apos;re introducing deliberate friction. We have to keep it as low as possible, though.</p><p>Just ask for <strong>one extra piece of information</strong> besides, of course, the email address (and maybe the first name).</p><p>Decide if checkboxes, radio buttons, a dropdown, or even a free text input is the best approach. They all have pros and cons. Maybe A/B test them.</p><h3 id="test-and-learn"><strong>Test and learn</strong></h3><p>A/B test your new friction element. You want to know if this change is worth it, right?</p><p>What to test? In my opinion two things:</p><h4 id="visitorconversion-rate">Visitor/Conversion Rate</h4><p>How many visitors signed up with/without the friction element?</p><ul><li>Keep the friction element if you maintain a good conversion rate.</li><li>If the friction elements caused a <strong>severe</strong> drop, change it and test again. Or drop it.</li></ul><p>This can be done easily with Mautic&apos;s built-in A/B testing feature for landing pages.</p><h4 id="lead-quality">Lead quality</h4><p>You should also keep taps on your new leads during your test. Tag them (<code>#friction</code>) or add them to dedicated segments.</p><p>You need to measure if the friction element really improves the lead quality of this group of contacts.</p><p>A significant drop in the conversion rate is justified if the rise in lead quality makes up for that. Quantity &#x2260; quality.</p><h4 id="bonus-test-friction-elements">Bonus test: friction elements</h4><p>Over time, test different questions/approaches for your friction element. Measure how they affect your sign-up rates and lead quality.</p><hr><p>Adding a question to your sign-up form isn&#x2019;t about making it harder to join your list&#x2014;it&#x2019;s about making sure that those who join are exactly the right fit for your business.</p><p>It&#x2019;s a strategic choice that can lead to a more engaged (and profitable) email list.</p><p>What are your thoughts on that?</p><p>Happy marketing</p>]]></content:encoded></item><item><title><![CDATA[Form Event Tracking]]></title><description><![CDATA[<p>If you&apos;re like me, you&apos;re always on the hunt for <strong>ways to improve up your marketing game</strong>. In this article I&apos;ll talk about tracking and <strong>collecting the data that your Mautic forms have to offer</strong>.</p><p>Mautic already offers <em>some form</em> of event tracking. But</p>]]></description><link>https://audienture.com/form-event-tracking/</link><guid isPermaLink="false">65d4a0e6cbda2e4fa3f4680f</guid><category><![CDATA[Advanced]]></category><category><![CDATA[Metrics]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Tue, 20 Feb 2024 17:28:21 GMT</pubDate><content:encoded><![CDATA[<p>If you&apos;re like me, you&apos;re always on the hunt for <strong>ways to improve up your marketing game</strong>. In this article I&apos;ll talk about tracking and <strong>collecting the data that your Mautic forms have to offer</strong>.</p><p>Mautic already offers <em>some form</em> of event tracking. But if you want to truly understand your data, you have to integrate Mautic&apos;s data with Google Analytics, Matomo or whatever website analytics software you&apos;re using.</p><p>This article shows you <strong>how to send tracking event data to Google Analytics or Matomo</strong> whenever someone interacts with your forms.</p><p>Why should you even bother?</p><p>Well, this data allows you to <strong>make optimizations to</strong> your <strong>content</strong>, your <strong>marketing</strong> and eventually <strong>improve your conversion </strong>(strategies).</p><p>You can <strong>gain valuable insights</strong> on what <strong>makes your leads or audience tick</strong>.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><u><b><strong class="underline" style="white-space: pre-wrap;">What you will learn in this article:</strong></b></u><br><br><b><strong style="white-space: pre-wrap;">&#x2022; Get a script you can copy and paste and set automatic and future-proof tracking up in seconds (subscriber only).</strong></b><br><br>&#x2022; How analyzing form submission events can <b><strong style="white-space: pre-wrap;">improve your lead generation and marketing</strong></b>.<br>&#x2022; How <b><strong style="white-space: pre-wrap;">you can track any form submission events</strong></b> for any given form.<br>&#x2022; How to add form <b><strong style="white-space: pre-wrap;">tracking automatically and future-proof to every form</strong></b>.<br>&#x2022; How Mautic&apos;s response object looks like.<br>&#x2022; Why tracking using a submit event listener will give you useless data.</div></div><p>But let&apos;s start with how to implement the tracking.</p><h2 id="a-form-submit-listener-doesnt-do-the-trick">A Form Submit Listener Doesn&apos;t Do the Trick</h2><p>Just in case, you&apos;re wondering: A simple form <code>submit</code> event listener won&apos;t do the trick:</p><pre><code class="language-js">myForm.addEventListener(&apos;submit&apos;, function (event) {
	//trackEvent(&apos;Form submission&apos;));
});
</code></pre><p>To make it short: <strong>This will give you total useless data</strong>. I&apos;ll explain why at the end of this article.</p><h2 id="how-to-read-this-article">How to Read This Article</h2><p>To make this guide available to people with different levels of Mautic/JS knowledge, I wrote it in three parts:</p><ul><li>If you&apos;re familiar with Mautic and/or JS, then the <strong>first section</strong>, which contains a <strong>brief explanation</strong>, will probably be enough for you.</li><li>The <strong>second section</strong> explains adding form event tracking <strong>more in depth</strong>.</li><li>The <strong>third section explains in detail how</strong> to add <strong>automatic and future-proof tracking</strong> to <strong>all your forms</strong>.</li></ul><p>But first, let&apos;s look at why collecting this data is relevant for you.</p><div class="kg-card kg-button-card kg-align-center"><a href="#tracking-mautic-form-events%E2%80%94quick-explainer" class="kg-btn kg-btn-accent">Skip this section and jump to the quick setup guide.</a></div><h2 id="why-is-tracking-mautic-form-events-relevant-to-me">Why Is Tracking Mautic Form Events Relevant to Me?</h2><p>By tracking Mautic form events you can <strong>better understand how your audience interacts with your website</strong> and&#x2014;especially&#x2014;with your <strong>forms</strong>.</p><p>Most of the time, when a <strong>user</strong> (successfully!) <strong>submits</strong> a Mautic <strong>form</strong>, it means <strong>you have converted them</strong>. This could be for a newsletter sign-up, registering for a webinar, or booking a call.</p><p>Tracking these events along with page view (which Mautic kind of gives you) and page flow data (which Mautic can&apos;t give you) gives you two major advantages:</p><h3 id="data-driven-decisions">Data-driven decisions</h3><p>By collecting this information you can base your marketing strategies on solid data, not guesswork.</p><p>You will know:</p><ul><ul><li>Which landing pages do work?</li><li>Which forms convert best? Which lead magnets?</li><li>How many times or pages (and which?) do people visit before they convert?</li></ul></ul><p>For Matomo one of the reports might look like this:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://audienture.com/content/images/2024/02/2024-02-20-mautic-form-event-tracking-newsletter-sign-ups-over-time-line-chart.jpg" class="kg-image" alt="Matomo data line chart for newsletter sign ups over time" loading="lazy" width="2000" height="495" srcset="https://audienture.com/content/images/size/w600/2024/02/2024-02-20-mautic-form-event-tracking-newsletter-sign-ups-over-time-line-chart.jpg 600w, https://audienture.com/content/images/size/w1000/2024/02/2024-02-20-mautic-form-event-tracking-newsletter-sign-ups-over-time-line-chart.jpg 1000w, https://audienture.com/content/images/size/w1600/2024/02/2024-02-20-mautic-form-event-tracking-newsletter-sign-ups-over-time-line-chart.jpg 1600w, https://audienture.com/content/images/2024/02/2024-02-20-mautic-form-event-tracking-newsletter-sign-ups-over-time-line-chart.jpg 2000w" sizes="(min-width: 1200px) 1200px"><figcaption><span style="white-space: pre-wrap;">Newsletter sign ups over time</span></figcaption></figure><p>This chart shows the number of people how signed up over time for a newsletter I run.</p><h3 id="optimize-your-conversion-rate">Optimize your conversion rate</h3><p>You will learn, what works and what not. This allows you to:</p><ul><li>Use your new insight to try to replicate successes.</li><li>Tweak underperforming forms.</li><li>Promote your best performing forms on more or other places.</li></ul><p>With some spreadsheet magic you can identify levers to improve your conversion rate:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://audienture.com/content/images/2024/02/2024-02-20-mautic-form-event-tracking-data-driven-decisions-based-on-conversion-rate.jpg" class="kg-image" alt="Spreadsheet analyzing Mautic form sign up event data and pageviews" loading="lazy" width="2000" height="377" srcset="https://audienture.com/content/images/size/w600/2024/02/2024-02-20-mautic-form-event-tracking-data-driven-decisions-based-on-conversion-rate.jpg 600w, https://audienture.com/content/images/size/w1000/2024/02/2024-02-20-mautic-form-event-tracking-data-driven-decisions-based-on-conversion-rate.jpg 1000w, https://audienture.com/content/images/size/w1600/2024/02/2024-02-20-mautic-form-event-tracking-data-driven-decisions-based-on-conversion-rate.jpg 1600w, https://audienture.com/content/images/2024/02/2024-02-20-mautic-form-event-tracking-data-driven-decisions-based-on-conversion-rate.jpg 2000w" sizes="(min-width: 1200px) 1200px"><figcaption><span style="white-space: pre-wrap;">Data driven decisions based on Mautic form sign up event data</span></figcaption></figure><p>In the example above I could identify</p><ul><li>one pages that has high traffic, but a bad conversion rate and</li><li>one page that has low traffic but a high conversion rate.</li></ul><p>Besides that you can use this data to <strong>create KPI dashboards</strong> and <strong>benchmark your success over time</strong>.</p><p>Eventually, all this leads to your content and marketing attracting higher-quality leads.</p><h2 id="tracking-mautic-form-events%E2%80%94quick-explainer">Tracking Mautic Form Events&#x2014;Quick Explainer</h2><p>Whenever you add a form automatically using <code>&lt;script type=&quot;text/javascript&quot; src=&quot;//mautic.yoursite.com/form/generate.js?id=1&quot;&gt;&lt;/script&gt;</code>, Mautic also adds the <code>MauticSDK</code> to your page.</p><p>The <code>MauticSDK</code> looks for the global <code>MauticFormCallback</code> <a href="https://www.w3schools.com/js/js_objects.asp?ref=audienture.com" rel="noopener">object</a>. This object is where you can define <a href="https://devdocs.mautic.org/en/5.x/components/tracking_script.html?ref=audienture.com#javascript-form-processing-hooks" rel="noopener">callbacks</a> for various form events.</p><p>Whenever a form event happens, <code>MauticSDK</code> will look for an <code>MauticFormCallback</code> <a href="https://www.w3schools.com/js/js_object_properties.asp?ref=audienture.com" rel="noopener">property</a> named after your form.</p><p>If you add one of the several <a href="https://devdocs.mautic.org/en/5.x/components/tracking_script.html?ref=audienture.com#javascript-form-processing-hooks" rel="noopener">Mautic callbacks</a> to this object, then the <code>MauticSDK</code> will execute it.</p><pre><code class="language-js">MauticFormCallback[&apos;replaceWithFormName&apos;] = {
    onResponse: function (response) {
         // Insert your tracking code here
    },
};

</code></pre><p>Short, and simple, right?</p><p>If you want or need a little more in depth explanation, how this works:</p><p>Here it comes...</p><h2 id="tracking-mautic-form-events%E2%80%94high-level-overview">Tracking Mautic Form Events&#x2014;High-Level Overview</h2><p>As you probably know, adding a Mautic form to your site is as simple as dropping in a line of code:</p><pre><code>&lt;script type=&quot;text/javascript&quot; src=&quot;//mautic.yoursite.com/form/generate.js?id=1&quot;&gt;&lt;/script&gt;
</code></pre><p>The JavaScript will load your form. And it sets the <code>MauticSDK</code> JS object up.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">What is an SDK?<br><br>An SDK, or Software Development Kit, is essentially a toolbox for developers. It provides interfaces that make it easier to interact with or use code.</div></div><p>So, what&apos;s the deal with <code>MauticSDK</code>?</p><p>The <code>MauticSDK</code> allows you to <strong>hook into and respond to everything</strong> that happens at or with your forms.</p><p>Want to know when someone submits a form? And react to it?</p><p>There&apos;s a <em>callback</em> for that.</p><p>And these <strong>callbacks</strong> give you the <strong>ability to track all form events</strong>.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">What is a callback?<br><br>In programming, a <a href="https://www.w3schools.com/js/js_callback.asp?ref=audienture.com" target="_blank" rel="noopener">callback</a> is a function that is passed as an argument to another function and is expected to execute after some kind of event or condition has been met. This could be anything from a user clicking a button, a form being submitted, or data finally arriving from a server. Callbacks are a way to say, &#x201C;Hey, once you&apos;re done with what you&apos;re doing, call this function for me, too, will you?&#x201D;</div></div><p>When someone interacts with your form, then:</p><ol><li><code>MauticSDK</code> checks for a specially named global JavaScript variable or <a href="https://www.w3schools.com/js/js_objects.asp?ref=audienture.com" rel="noopener">object</a>: <code>MauticFormCallback</code>.</li><li>It searches for a <a href="https://www.w3schools.com/js/js_object_properties.asp?ref=audienture.com" rel="noopener">property</a> within this object that matches your form&apos;s name: <code>MauticFormCallback[&apos;yourFormsName&apos;]</code></li><li>Finally, it checks if you&apos;ve defined any of the several <a href="https://devdocs.mautic.org/en/5.x/components/tracking_script.html?ref=audienture.com#javascript-form-processing-hooks" rel="noopener">Mautic callbacks</a>: E.g., <code>MauticFormCallback[&apos;yourFormsName&apos;].onResponse</code></li></ol><p>To track the result of a user&apos;s form submissions, you&apos;d add an <code>onResponse</code> function to the <code>MauticFormCallback</code> object.</p><p>The <code>MauticSDK</code> triggers this function after a lead submitted a form and Mautic processed the data:</p><pre><code class="language-js">// window.MauticFormCallback[&apos;replaceWithFormName&apos;] or just
MauticFormCallback[&apos;replaceWithFormName&apos;] = {
    onResponse: function (response) {
         // Insert your tracking code here
    },
};

</code></pre><p>But <strong>how do I ensure</strong> this <strong>works</strong> with <strong><em>my</em></strong> forms?</p><p>All you have to do is to use the right <code>formName</code>. But this is a bit tricky.</p><p>Mautic names Forms automatically, based on whatever you called them in the dashboard. Therefore, these names can and will change.</p><p>And if you&apos;ve <strong>hard-coded these names</strong> into your tracking setup, you would <strong>break your tracking</strong> by changing those names.</p><p>So, how do you avoid that &#x201C;mess&#x201D;?</p><p>By <strong>adding the callbacks automatically</strong>.</p><p>This way we don&apos;t hard-code the form names, but fetch them from Mautic. Nothing will ever break.</p><p>Let&apos;s dive into the details of setting up form hooks in a way that&apos;s not just effective but also future-proof.</p><p>Plus, we&apos;ll cover how to track everything (form submissions, successful conversions, failed conversions and errors) seamlessly.</p><h2 id="the-strategy-for-dynamic-and-future-proof-tracking">The Strategy for Dynamic and Future-proof Tracking</h2><p>To add tracking or any other form callback dynamically and future-proof, you need to:</p><ol><li>Iterate over your forms.</li><li>Add callbacks to them.</li></ol><h3 id="iterate-over-your-forms">Iterate over your forms</h3><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">The remainder of this article needs an active subscription.<br><br><b><strong style="white-space: pre-wrap;">Subscribe below or log in to read it.</strong></b><br><br>This also includes the copy-pasteable script you can use.</div></div>]]></content:encoded></item><item><title><![CDATA[How to Update to Mautic 5 Using Composer]]></title><description><![CDATA[<p>Mautic 5 is here, but the update process isn&apos;t just one click or command if you installed Mautic using composer.</p>
<p>I read many forum posts and distilled my learnings into this article.</p>
<p>This guide walks you through the steps on how to do that. It also lists the</p>]]></description><link>https://audienture.com/update-mautic-using-composer/</link><guid isPermaLink="false">65c4c262cbda2e4fa3f46664</guid><category><![CDATA[Beginner]]></category><category><![CDATA[Set Up and Maintenance]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Fri, 09 Feb 2024 14:19:11 GMT</pubDate><content:encoded><![CDATA[<p>Mautic 5 is here, but the update process isn&apos;t just one click or command if you installed Mautic using composer.</p>
<p>I read many forum posts and distilled my learnings into this article.</p>
<p>This guide walks you through the steps on how to do that. It also lists the errors you might bump into&#x2014;along with solutions known to me.</p>
<h2 id="before-you-begin-backup">Before You Begin: Backup!</h2>
<div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">As usually: Backup Mautic before you start the update process! Make sure to update the files as well as the database.<br>Tip: It might be a good idea to sync your Mautic to a (local) server, try the update, check everything is working and only then update your productive environment.</div></div>
<h2 id="update-mautic-using-composer">Update Mautic Using Composer</h2>
<p>Updating Mautic with composer is a bit tricky, because you need to manually change your <code>composer.json</code>.</p>
<p>I&apos;ll walk you through the update process step by step. It&apos;s a five main steps process. Let&apos;s dive in!</p>
<h3 id="step-1-add-missing-repositories">Step 1: Add Missing Repositories</h3>
<p>First things first, you need to make sure your <code>composer.json</code> is ready. It has to have all the repositories it needs. Run these commands to add them:</p>
<pre><code class="language-bash">composer config repositories.0 git https://github.com/mautic/FOSOAuthServerBundle.git
composer config repositories.1 git https://github.com/mautic/SpBundle.git
composer config repositories.2 git https://github.com/mautic/SymfonyBridgeBundle.git
# Update minimum required PHP version
composer config platform.php 8.0.2</code></pre>
<p>This adds three new Mautic repositories to your <code>composer.json</code>. It also changes the minimum required PHP version to run Mautic to PHP v8.0.2</p>
<p>Additionally, you need to manually edit the <code>composer.json</code>. Composer needs to run some <code>post-update</code> scripts every time you&apos;ll update Mautic in the future.</p>
<p>Let&apos;s add them. Open your <code>composer.json</code> and overwrite to the <code>&quot;scripts&quot;</code> part with this:</p>
<pre><code class="language-json">  &quot;scripts&quot;: {
    &quot;githooks&quot;: [
      &quot;php -r \&quot;if(file_exists(&apos;./.git&apos;)&amp;&amp;file_exists(&apos;./build/hooks/pre-commit&apos;.(PHP_OS==&apos;WINNT&apos;?&apos;.win&apos;:&apos;&apos;))){copy(&apos;./build/hooks/pre-commit&apos;.(PHP_OS==&apos;WINNT&apos;?&apos;.win&apos;:&apos;&apos;),&apos;./.git/hooks/pre-commit&apos;);} if(file_exists(&apos;./.git&apos;)&amp;&amp;file_exists(&apos;./build/hooks/post-checkout&apos;)){copy(&apos;./build/hooks/post-checkout&apos;,&apos;./.git/hooks/post-checkout&apos;);}\&quot;&quot;,
      &quot;php -r \&quot;if(file_exists(&apos;./.git/hooks/pre-commit&apos;)&amp;&amp;(PHP_OS!=&apos;WINNT&apos;)){chmod(&apos;./.git/hooks/pre-commit&apos;,0755);} if(file_exists(&apos;./.git/hooks/post-checkout&apos;)&amp;&amp;(PHP_OS!=&apos;WINNT&apos;)){chmod(&apos;./.git/hooks/post-checkout&apos;,0755);}\&quot;&quot;
    ],
    &quot;post-install-cmd&quot;: [
      &quot;@githooks&quot;,
      &quot;@npm-ci&quot;,
      &quot;@npx-patch-package&quot;,
      &quot;@generate-assets&quot;
    ],
    &quot;post-update-cmd&quot;: [
      &quot;@githooks&quot;,
      &quot;@npm-ci&quot;,
      &quot;@npx-patch-package&quot;,
      &quot;@generate-assets&quot;
    ],
    &quot;test&quot;: &quot;bin/phpunit -d memory_limit=1G --bootstrap vendor/autoload.php --configuration app/phpunit.xml.dist&quot;,
    &quot;phpstan&quot;: &quot;[ ! -f var/cache/test/AppKernelTestDebugContainer.xml ] &amp;&amp; (echo &apos;Building test cache ...&apos;; APP_ENV=test APP_DEBUG=1 bin/console &gt; /dev/null 2&gt;&amp;1);  php -d memory_limit=4G bin/phpstan analyse --ansi&quot;,
    &quot;cs&quot;: &quot;bin/php-cs-fixer fix --config=.php-cs-fixer.php -v --dry-run --diff&quot;,
    &quot;fixcs&quot;: &quot;bin/php-cs-fixer fix -v&quot;,
    &quot;rector&quot;: &quot;bin/rector process --ansi&quot;,
    &quot;npm-ci&quot;: &quot;npm ci --prefer-offline --no-audit&quot;,
    &quot;npx-patch-package&quot;: &quot;npx patch-package&quot;,
    &quot;generate-assets&quot;: &quot;bin/console mautic:assets:generate&quot;
  },</code></pre>
<p></p>
<h3 id="step-2-remove-old-packages">Step 2: Remove Old Packages</h3>
<p>Before we bring in the new, let&apos;s clear out the old.</p>
<p>This step removes any plugins or themes that are obsolete in Mautic&#xA0;5.</p>
<pre><code class="language-bash">composer remove mautic/plugin-citrix mautic/theme-nature mautic/theme-mauve mautic/theme-coffee</code></pre>
<h3 id="step-3-update-dependencies">Step 3: Update Dependencies</h3>
<p>Next, update the package dependencies for Mautic&#xA0;5. This step ensures that all the required packages are set to their correct versions.</p>
<pre><code class="language-bash"># Core and essential plugin bundles
composer require --no-update &quot;mautic/core-lib&quot;:&quot;^5.0&quot;
composer require --no-update &quot;mautic/grapes-js-builder-bundle&quot;:&quot;^5.0&quot; &quot;mautic/plugin-clearbit&quot;:&quot;^5.0&quot; &quot;mautic/plugin-cloudstorage&quot;:&quot;^5.0&quot; &quot;mautic/plugin-crm&quot;:&quot;^5.0&quot; &quot;mautic/plugin-emailmarketing&quot;:&quot;^5.0&quot; &quot;mautic/plugin-focus&quot;:&quot;^5.0&quot; &quot;mautic/plugin-fullcontact&quot;:&quot;^5.0&quot; &quot;mautic/plugin-gmail&quot;:&quot;^5.0&quot; &quot;mautic/plugin-tagmanager&quot;:&quot;^5.0&quot; &quot;mautic/plugin-outlook&quot;:&quot;^5.0&quot; &quot;mautic/plugin-social&quot;:&quot;^5.0&quot; &quot;mautic/plugin-zapier&quot;:&quot;^5.0&quot;
# Themes
composer require --no-update &quot;mautic/theme-aurora&quot;:&quot;^5.0&quot; &quot;mautic/theme-blank&quot;:&quot;^5.0&quot; &quot;mautic/theme-brienz&quot;:&quot;^5.0&quot; &quot;mautic/theme-cards&quot;:&quot;^5.0&quot; &quot;mautic/theme-confirmme&quot;:&quot;^5.0&quot; &quot;mautic/theme-fresh-center&quot;:&quot;^5.0&quot; &quot;mautic/theme-fresh-fixed&quot;:&quot;^5.0&quot; &quot;mautic/theme-fresh-left&quot;:&quot;^5.0&quot; &quot;mautic/theme-fresh-wide&quot;:&quot;^5.0&quot; &quot;mautic/theme-goldstar&quot;:&quot;^5.0&quot; &quot;mautic/theme-neopolitan&quot;:&quot;^5.0&quot; &quot;mautic/theme-oxygen&quot;:&quot;^5.0&quot; &quot;mautic/theme-paprika&quot;:&quot;^5.0&quot; &quot;mautic/theme-skyline&quot;:&quot;^5.0&quot; &quot;mautic/theme-sparse&quot;:&quot;^5.0&quot; &quot;mautic/theme-sunday&quot;:&quot;^5.0&quot; &quot;mautic/theme-vibrant&quot;:&quot;^5.0&quot; &quot;mautic/theme-trulypersonal&quot;:&quot;^5.0&quot;</code></pre>
<h3 id="step-4-run-the-update">Step 4: Run the Update</h3>
<p>With everything set up, it&apos;s time to run the update.</p>
<p>This command updates all dependencies, ensuring that your Mautic installation moves smoothly to version 5.</p>
<pre><code class="language-bash">composer update --with-all-dependencies
php bin/console cache:clear</code></pre>
<h3 id="step-5-run-post-install-scripts">Step 5: Run Post-Install Scripts</h3>
<p>After updating everything you need to execute some maintenance post-install scripts.</p>
<p>These commands will apply any changes made to the core, migrate the database, and generate the new JavaScript and other assets for your dashboard.</p>
<pre><code class="language-bash">php bin/console mautic:update:apply --finish
php bin/console doctrine:migration:migrate --no-interaction
php bin/console mautic:assets:generate
php bin/console cache:clear</code></pre>
<h2 id="known-errors-while-updating-to-mautic-5-using-composer">Known Errors while Updating to Mautic 5 Using Composer</h2>
<p>While updating you might bump into some errors. Here are a few issues that I know that you might encounter. Along with straightforward solutions to get you back on track.</p>
<h3 id="class-xyz-not-found-error"><code>Class XYZ Not Found</code> Error</h3>
<ul><li><strong>Problem:</strong> You might see a fatal PHP error message about a missing class. The messages comes from <code>ParameterLoader.php</code> and looks, similar to this:</li></ul>
<blockquote>PHP Fatal error: Uncaught Error: Class &quot;Symfony\Component\Filesystem\Path&quot; not found in .../mautic/docroot/app/bundles/CoreBundle/Loader/ParameterLoader.php:198</blockquote>
<ul><li><strong>Underlying Issue:</strong> This usually means that some Composer dependencies haven&apos;t been installed correctly.</li><li><strong>Solution:</strong> Run <code>composer update</code> or <code>composer install</code> again to install any missing dependencies. If the problem persists, the Mautic forum is a great place to seek further assistance.</li></ul>
<h3 id="warning-about-unregistered-commands%E2%80%94the-parameter-xyz-must-be-defined">Warning About Unregistered Commands&#x2014;<code>The parameter &quot;XYZ&quot; must be defined</code></h3>
<ul><li><strong>Problem:</strong> When attempting to run Mautic, you encounter a warning about commands not being registered due to an undefined parameter:</li></ul>
<blockquote>[WARNING] Some commands could not be registered: In AppKernelProdContainer.php line 11207: The parameter &quot;2F&quot; must be defined.</blockquote>
<ul><li><strong>Underlying Issue:</strong> This usually happens if your email transport (i.e., SMTP, Amazon SES, etc.) password includes special characters. This occurs, because <code>mailer_dsn</code> is not properly configured, as the update process struggles with special character handling for some reason.</li><li><strong>Solution:</strong><ul><li>Open your <code>config/local.php</code> file.</li><li>Find the <code>mailer_dsn</code> line.</li><li>Comment it out by adding a <code>#</code> at the beginning of the line.</li><li>Then, clear the cache. Mautic should now run.</li><li>Afterwards, you&apos;ll need to reconfigure your <code>mailer_dsn</code> from your dashboard</li></ul></li></ul>
<p>For more details on this issue, check the discussion on <a href="https://github.com/mautic/mautic/issues/13236?ref=audienture.com">GitHub</a>.</p>
<h3 id="npm-err-code-137-during-installationupdate"><code>npm ERR! code 137 During</code> Installation/Update</h3>
<ul><li><strong>Problem:</strong> The NPM build process might unexpectedly terminate, showing an error like this</li></ul>
<blockquote>sh: line 1: 1563 Killed npm run build<br>npm ERR! code 137<br>npm ERR! path /var/www/mautic<br>npm ERR! command failed</blockquote>
<ul><li><strong>Underlying Issue:</strong> This error typically means the NPM build process is consuming too much RAM. As a result the web server kills the process to ensure it won&apos;t crash.</li><li><strong>My Current Workaround:</strong> Sync your Mautic instance to your local machine, run the NPM build locally, and then sync it back. Here&apos;s how you can do it on a Linux system:</li></ul>
<pre><code class="language-bash">cd /tmp
mkdir mtc
cd mtc
rsync -avz -e &apos;ssh -i ~/.ssh/id_rsa&apos; user@domain.com:/var/www/mautic/ .
npm install
npm ci --prefer-offline --no-audit
npx patch-package
rsync -avz -e &apos;ssh -i ~/.ssh/id_rsa&apos; . user@domain.com:/var/www/mautic</code></pre>
<p>Tip: Make sure NPM is installed on your local machine for this workaround &#x1F609;.</p>
<h3 id="dashboard-usability-issues">Dashboard Usability Issues</h3>
<ul><li><strong>Problem:</strong> You might find that parts of the dashboard aren&apos;t working as expected. This can affect buttons or the campaign, email or page builders.</li><li><strong>Underlying Issue:</strong> This is likely due to missing JavaScript assets. Most likely because parts of the update process were skipped.</li><li><strong>Solution:</strong> Run the following commands to install the necessary assets and regenerate them</li></ul>
<pre><code class="language-bash">npm install
npm ci --prefer-offline --no-audit
npx patch-package
php bin/console mautic:assets:generate</code></pre>
<p>That&apos;s a wrap.</p>
<p>I hope this steps helped you upgrade to the newest (and most promising) version of Mautic.</p>
<p>I am eager to use it.</p>
<p>PS If you run into errors go to the forum. You&apos;ll find help there.</p>]]></content:encoded></item><item><title><![CDATA[Mautic 5: Key Gotchas and How to Navigate Them]]></title><description><![CDATA[<p>Long awaited Mautic 5 is finally here &#x1F973; Ready to install?</p><p>Mautic 5 comes with some significant changes. Because of at least one you might want to wait for a bit before you update&#x2014;as you could, for example, accidentally destroy your sender reputation.</p><p>With great changes come great</p>]]></description><link>https://audienture.com/mautic-5-key-gotchas-and-how-to-navigate-them/</link><guid isPermaLink="false">65c4d02bcbda2e4fa3f46706</guid><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Thu, 08 Feb 2024 14:08:48 GMT</pubDate><content:encoded><![CDATA[<p>Long awaited Mautic 5 is finally here &#x1F973; Ready to install?</p><p>Mautic 5 comes with some significant changes. Because of at least one you might want to wait for a bit before you update&#x2014;as you could, for example, accidentally destroy your sender reputation.</p><p>With great changes come great challenges&#x2014;or something like that...</p><p>Here&apos;s a list of things you need to be aware of before updating.</p><ul><li>How the switch to Symfony mailer transports slows your emails sending down and might even accidentally hurt your sender reputation.</li><li>The need to have and run NPM (Node.js package manager).</li><li>Removed Mautic core plugins.</li><li>Changes to transactional email sending.</li><li>Removing <code>mautic:emails:send</code>.</li><li>The final death of the	froala editor.</li><li>Special character issues with <code>mailer_dsn</code>.</li><li>List of known bugs in Mautic&#xA0;5.</li></ul><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Sign up for Audienture</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Beyond the funnel</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div><!--members-only--><h2 id="switch-to-mailer-transports">Switch to Mailer Transports</h2><p>Mautic&apos;s shift towards using Symfony email transports and third-party plugins for email delivery means the built-in email transports are gone.</p><p>Personally, I find that problematic. From a user perspective this means a temporary regression. This is for two reasons:</p><ol><li>Symfony&apos;s transports don&#x2019;t support batch sending, even via API. As a result, you can only send one email per request, as opposed to a thousand emails per request as was the case with some Mautic&#xA0;4 transports.</li><li>Symfony&apos;s transports don&#x2019;t support <em>transport callback handling</em>. This was used for bounce management. The result: you lose the built-in bounce management.</li></ol><p>(You can set it up another way, but you need to know that!)</p><p>I guess, this decision will turn out to be a very good step in the future. That is, because Mautic devs do not need to care about the mailer transports anymore.</p><p>They can focus more on the core.</p><p>But currently, post-installation, SMTP remains the sole transport supported out-of-the-box.</p><h3 id="what-this-means-for-you"><strong>What this means for you</strong>:</h3><ul><ol><li>You&apos;ll need to manually install your preferred mailer transport plugin.</li><li>You will (at least temporarily) lose Mautic&apos;s bounce management functionality if you do nothing.</li></ol></ul><p>Especially the second point can hurt your sender&apos;s reputation if you are not aware of this. Without bounce management you might be considered a spammer at some point.</p><p>3rd party plugins are meant to bring back the bounce management. There are two plugins already ready for productive use:</p><ul><li><a href="https://github.com/ts-navghane/sparkpost-plugin?ref=audienture.com" rel="noopener nofollow noreferrer">Sparkpost</a></li><li><a href="https://github.com/omnivery/mautic-omnivery-plugin?ref=audienture.com" rel="noopener nofollow noreferrer">Omnivery</a></li><li>For Amazon <a href="https://github.com/mabumusa1/ses-plugin?ref=audienture.com" rel="noreferrer">SES a plugin</a> is in development, but it will take a couple of weeks if not months until it&apos;s ready.</li></ul><h3 id="how-to-install-mailer-transports">How to Install Mailer Transports</h3><ul><li>Look for Symfony&apos;s mailer transport plugins that support your email service provider.</li><li>They are listed in the <a href="https://symfony.com/doc/current/mailer.html?ref=audienture.com">Sending Emails with Mailer in Symfony Docs</a>.</li><li>Install these via composer.</li><li><strong>Configuring the Mailer DSN</strong>:<ul><li>DSN is short for Data Source Name.</li><li>This essentially tells Mautic how to connect to your email service, including the type of service, credentials, and other necessary parameters.</li><li>You can set it up in the configuration dashboard.</li><li>The documentation page above tells you how to do that.</li></ul></li></ul><h3 id="configure-bounce-management">Configure Bounce Management</h3><p>If you relied on Mautic&#xA0;4&apos;s built-in callbacks that processed bounce management, you&apos;ll need to manually configure a <code>Monitored&#xA0;inbox</code>. Check the docs:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.mautic.org/en/5.x/channels/emails.html?ref=audienture.com#bounce-management"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Emails &#x2014; Mautic Documentation 0.1 documentation</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://docs.mautic.org/favicon.ico" alt></div></div><div class="kg-bookmark-thumbnail"><img src="https://docs.mautic.org/en/5.x/_images/types.png" alt></div></a></figure><p>Without it, email addresses that bounce an email won&apos;t get flagged <code>DNC</code>.</p><h2 id="npm-as-an-installation-requirement">NPM as an Installation Requirement</h2><p>The inclusion of NPM in the setup process marks a significant technical shift for</p><p>Mautic&#xA0;5 means to enhance the installation and build process and asset management.</p><p>This led to the inclusion of NPM in the setup and update process.</p><p>I see main problems:</p><ol><li>The <a href="https://forum.mautic.org/t/npm-build-process-is-resource-hungry/30530?ref=audienture.com">NPM build process is resource hungry</a>.</li><li>Some shared servers don&apos;t come with NPM.</li></ol><p>If you encounter one of these two problems, try building the JS assets locally and sync them to your production environment.</p><ul><li><strong>My Current Workaround:</strong> Sync your Mautic instance to your local machine, run the NPM build locally, and then sync it back. Here&apos;s how you can do it on a Linux system:</li></ul><pre><code class="language-bash">cd /tmp
mkdir mtc
cd mtc
rsync -avz -e &apos;ssh -i ~/.ssh/id_rsa&apos; user@domain.com:/var/www/mautic/ .
npm install
npm ci --prefer-offline --no-audit
npx patch-package
rsync -avz -e &apos;ssh -i ~/.ssh/id_rsa&apos; . user@domain.com:/var/www/mautic</code></pre><p>Tip: Make sure NPM is installed on your local machine for this workaround &#x1F609;.</p><h2 id="special-characters-in-mailerdsn">Special Characters in <code>mailer_dsn</code></h2><p>Mautic 5 doesn&apos;t play well with special characters in the <code>mailer_dsn</code>, particularly in passwords.</p><p>The reason is unknown to me.</p><p>If you encounter issues, try changing the password. Creating and using passwords without special characters is the workaround for now.</p><p>For more, see the relevant <a href="https://github.com/mautic/mautic/issues/12256?ref=audienture.com">GitHub issue</a> and <a href="https://github.com/mautic/mautic/issues/13228?ref=audienture.com" rel="noreferrer">this issue</a>.</p><h2 id="mauticemailssend-removed"><code>mautic:emails:send</code> Removed</h2><p>Mautic&#xA0;5 uses the <a href="https://symfony.com/doc/5.4/messenger.html?ref=audienture.com" rel="noopener">Symfony Messenger</a>. This comes with a transition from <code>mautic:emails:send</code> to <code>mautic:messages:send</code>.</p><p>You need to adjust crons and other scripts.</p><h2 id="legacy-froala-builder-disabled">Legacy Froala Builder Disabled</h2><p>For those still using the legacy email or page builder, the Froala editor is disabled by default in Mautic 5.</p><p>Reactivating it is possible but requires manual intervention. Refer to <a href="https://github.com/mautic/mautic/pull/12416?ref=audienture.com">PR #12416</a> for details.</p><h2 id="transactional-emails-override-dnc">Transactional Emails Override DNC</h2><p>A significant update is the handling of transactional emails:</p><p>Mautic sends transactional emails now regardless of a contact&apos;s &apos;<em>do not contact</em>&apos; status.</p><p>This makes sure that crucial (account-related) communications reach your contacts.</p><p>If you (for some reason) marked marketing emails as transactional (e.g., to send them multiple times or in different campaigns) you need to change that.</p><p>Also: Transactional emails don&apos;t come with an unsubscribe header anymore.</p><h2 id="removed-mautic-core-plugins">Removed Mautic Core Plugins</h2><p>In Mautic 5 several core plugins were removed. This includes the</p><ul><li>Citrix (<a href="https://www.leuchtfeuer.com/en/mautic/downloads/mautic-goto-plugin/?ref=audienture.com" rel="noreferrer">alternative/replacement</a>),</li><li>Pipedrive (<a href="https://github.com/Webmecanik/mautic-pipedrive-bundle?ref=audienture.com" rel="noreferrer">alternative/replacement</a>), and</li><li>LinkedIn (gone for good) plugins.</li></ul><p>While these are no longer part of the core, third-party solutions are available and linked above.</p><h2 id="list-of-known-bugs">List of Known Bugs</h2><p>Here can you see the <a href="https://github.com/mautic/mautic/issues?page=1&amp;q=is%3Aissue+is%3Aopen+label%3Abug+%225.0.x+series%22&amp;ref=audienture.com" rel="noreferrer">list of known bugs</a> on GitHub.</p><p>That&apos;s a wrap. Hope this helps you make an informed decision whether to update right away or wait for a bit.</p><p>Happy marketing!</p>]]></content:encoded></item><item><title><![CDATA[How to set up SPF, DKIM and DMARC for Spam Protection with Mautic]]></title><description><![CDATA[<p>Email deliverability is key when it comes to email marketing. Helping to fight spam can increase your sending reputation drastically.</p>
<p>There are three <strong>spam protection features</strong> that an email sever can and should implement:</p>
<ul><li>SPF (Sender Policy Framework)</li><li>DKIM (DomainKeys Identified Mail)</li><li>DMARC (Domain-based Message Authentication, Reporting &amp; Conformance)</li></ul>
<p>SPF,</p>]]></description><link>https://audienture.com/how-to-set-up-spf-dkim-and-dmarc-for-spam-protection-with-mautic/</link><guid isPermaLink="false">65aa5530185ba42ba91bd266</guid><category><![CDATA[Advanced]]></category><category><![CDATA[Set Up and Maintenance]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Fri, 19 Jan 2024 13:04:12 GMT</pubDate><content:encoded><![CDATA[<p>Email deliverability is key when it comes to email marketing. Helping to fight spam can increase your sending reputation drastically.</p>
<p>There are three <strong>spam protection features</strong> that an email sever can and should implement:</p>
<ul><li>SPF (Sender Policy Framework)</li><li>DKIM (DomainKeys Identified Mail)</li><li>DMARC (Domain-based Message Authentication, Reporting &amp; Conformance)</li></ul>
<p>SPF, DKIM and DMARC each fulfill a specific role for fighting spam:</p>
<ul><li><strong>SPF</strong> checks if the email sending server is allowed to send emails for your domain.</li><li><strong>DKIM</strong> verifies the integrity of the email content.</li><li><strong>DMARC</strong> uses SPF and DKIM to a) enforce rules and b) report back to you on email authenticity.</li></ul>
<p>Together, they improve email security, combat spam, and enhance the deliverability of legitimate emails, including your marketing campaigns.</p>
<p>This is a two layered process:</p>
<ul><li>Emails have to originate from servers you authenticate via SPF.</li><li>DKIM ensures that emails are untampered.</li></ul>
<p>How does this work in detail, and how do you set it up?</p>
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">This guide is technical and might seem daunting at first. But more often than not, the only thing you have to do is to add a few DNS records to your domain&#x2014;which is quite easy.</div></div>
<h2 id="spf-sender-policy-framework">SPF (Sender Policy Framework)</h2>
<p>SPF is a DNS <code>TEXT</code> entry that specifies which mail servers are permitted to send emails on behalf of your domain.</p>
<p>SPF is basically like a whitelist list for your domain. When an email is sent, the receiving email server checks this list to see if the sender&apos;s server is on it. If it&apos;s on the list, the email is more likely to be genuine.</p>
<h3 id="how-it-works">How it works</h3>
<ol><li>You publish a SPF whitelist in your DNS settings.</li><li>Every email that is sent comes from a server this server has an IP address.</li><li>The receiving server retrieves the SPF record from the sender&apos;s DNS and checks it against the IP address the email was sent from.</li><li>If the IP addresses match, the email is likely to be authentic. If not it is most likely spam.</li></ol>
<h3 id="how-to-set-it-up">How to set it up</h3>
<p>Setting SPF up is easy: You as domain owner publish an SPF record in the DNS.</p>
<ol><li>Add a <code>TXT</code> entry to your DNS</li><li>Lists the IP addresses or domains that are authorized to send emails on behalf of your domain.</li></ol>
<p>How do I configure the SPF DNS <code>TXT</code> entry? An example might look like this:</p>
<pre><code>v=spf1 ip4:123.456.789.123 include:amazonses.com ~all</code></pre>
<p>Let&apos;s break this down.</p>
<ul><li><code>v=spf1</code>&#x2063;&#x2014;the version of SPF used. There is just V1.</li><li><code>ip:123.456.789.123</code>&#x2063;&#x2014;emails originating from this IP are legitimate.</li><li><code>include:amazonses.com</code>&#x2063;&#x2014;means emails sent from Amazon&apos;s SES servers are allowed, too. You will most likely use this setting.</li><li><code>~all</code>&#x2014;defines the policy.<ul><li>Use <code>~all</code> (soft fail) to start with. Emails that don&apos;t match your SPF get delivered but will land in your recipient&apos;s spam folder.</li><li><code>-all</code> (hard fail) <em>can</em> be used once you&apos;re confident in your SPF record. This tells email service providers to reject emails that don&apos;t match your SPF.</li></ul></li><li>You can add up to 10 <code>ip</code> or <code>include</code> lookups. (or <code>a</code> or <code>mx</code>&#x2014;they basically say: <em>Look up an A or AAA or MX DNS record</em>)</li></ul>
<h2 id="dkim-domainkeys-identified-mail">DKIM (DomainKeys Identified Mail)</h2>
<p>DKIM adds a digital signature to the headers of your emails. Email service provider like Gmail or Yahoo and email clients like Thunderbird can use this signature to verify it against a public cryptographic key in your domain&apos;s DNS records.</p>
<p>DKIM is like a secret handshake for your emails. When you send an email, it gets a unique digital signature. The receiving server can check this signature against a public key in your domain&apos;s DNS records to ensure the email hasn&apos;t been tampered with.</p>
<p>It&apos;s hard (i.e., impossible) for spammers to forge this signature, so it&apos;s a powerful tool against email spoofing.</p>
<h3 id="how-it-works-1">How it works</h3>
<ol><li>You or your email transport provider (Amazon SES, Mailgun, etc.) create a pair of (most likely SHA/RSA 2048 bit) private and public encryption keys.</li><li>You publish the public key in a DNS <code>TXT</code> entry.</li><li>Your mail server signs outgoing emails by adding a <code>DKIM-Signature</code> email header. Your email contents and other headers are used to compute the signature.</li><li>The recipient&apos;s email service provider fetches the DKIM public key via your DNS entry. It uses this key, the email body and specified headers to compute a signature for the email.</li><li>If this signature matches the <code>DKIM-Signature</code> header then the email is authentic and was not tampered with.</li></ol>
<h3 id="how-to-set-it-up-1">How to set it up</h3>
<p>Setting DKIM takes more steps than setting up SPF. But this is usually done through your email service provider.</p>
<ol><li>You (or your ESP) creates the encryption keys.</li><li>You (or your ESP) configures the email server to use the private key to create the <code>DKIM-Signature</code>, and sign all emails.</li><li>You publish a <code>TXT</code> (or <code>CNAME</code>) record in your DNS. There are two options:<ol><li>A <code>TXT</code> record that includes the public key right away.</li><li>A <code>CNAME</code> record that holds a lookup for the public key. This method is probably used by your email service provider.</li></ol></li></ol>
<p>How do I configure the DKIM DNS <code>TXT</code> entry? An example might look like this:</p>
<pre><code>k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD...</code></pre>
<p>Let&apos;s break this down.</p>
<ul><li><code>k=rsa</code>&#x2063;&#x2014;the encryption algorithm used.</li><li><code>p=MIGf...</code>&#x2063;&#x2014;the published public key.</li></ul>
<p>And the <code>CNAME</code> DKIM DNS entry might look like this:</p>
<ul><li>Name: <code>lookupdescriptor._domainkey.yourdomain.com</code></li><li>Data: <code>lookupdescriptor.dkim.emailserviceprovider.com</code></li></ul>
<h2 id="dmarc-domain-based-message-authentication-reporting-conformance">DMARC (Domain-based Message Authentication, Reporting &amp; Conformance)</h2>
<p>DMARC fulfills two jobs:</p>
<ol><li>DMARC builds on SPF and DKIM. It uses SPF and DKIM to make a <em>rule book</em> for your emails. It tells email receivers what to do if an email doesn&#x2019;t pass SPF or DKIM checks (like reject the email or put it in spam).</li><li>DMARC also asks receivers to report back on emails they get from your domain.</li></ol>
<h3 id="how-it-works-2">How it works</h3>
<ol><li>By itself DMARC doesn&apos;t do much.</li><li>Having a DMARC DNS record tells receivers that you use SPF and DKIM. Receivers know now to check for them.</li><li>DMARC tells the receivers how emails that SPF/DKIM checks are to be treated.</li><li>DMARC gives the receivers a way to report back to you.</li></ol>
<h3 id="how-to-set-it-up-2">How to set it up</h3>
<p>Setting DMARC up is easy: You as domain owner publish an DMARC record in the DNS.</p>
<ol><li>Create a <code>TXT</code> record with the name <code>_dmarc</code>.</li><li>Add the following as data into the record:</li></ol>
<pre><code>v=DMARC1; p=none; rua=mailto:info@mydomain.com</code></pre>
<p>Let&apos;s break this down.</p>
<ul><li><code>v=DMARC1</code>&#x2014;the DMARC protocol version.</li><li><code>p=none</code>&#x2014;the DMARC policy you want receivers to enforce.<ul><li><code>none</code>&#x2014;start with this entry level policy. It tells recipients that no special treatment is required. But this enables you to receive deliverability feedback reports.</li></ul></li><ul><li><code>quarantine</code>&#x2014;receivers should treat DMARC-failed emails as suspicious. This can be done by delivering them into the spam folder or flag them. <strong>Use with caution.</strong></li><li><code>reject</code>&#x2014;most strict. This tells receivers to outright reject messages that fail DMARC checks. <strong>Use with caution.</strong></li></ul><li><code>rua=mailto:info@mydomain.com</code>&#x2014;an address to send aggregate reports to.</li><li>By default aggregate reports are sent once a day. <code>ri=time in seconds</code> let you define another reporting interval.</li></ul>
<p>There are more options. Consult the <a href="https://dmarc.org/overview/?ref=audienture.com">documentation</a>.</p>
<p>Enforcing a quarantine or reject policy, should be done cautiously. You want to avoid legitimate emails being mistakenly blocked or marked as spam.</p>
<p>Therefore, you should do monitoring with a <code>none</code> policy over a period of time and adjust SPF/DKIM if need be.</p>
<div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong>A Word of Caution</strong></b><br>If you set up any of those three methods wrongly this can result in deliverability issues. That is, because receiving servers will flag/reject legitimate emails.<br>So, verify and test you settings. Start with lax policies.</div></div>
<p>To recap, SPF checks if the sender&apos;s server is allowed to send emails for your domain, DKIM verifies the integrity of an email&apos;s content, and DMARC controls policy enforcement rules and adds reporting on email authenticity. Together, they improve email security, combat spam, and enhance the deliverability of your legitimate emails.</p>]]></content:encoded></item><item><title><![CDATA[How To Craft a Cold Email Outreach Campaign Using Mautic—Which You Can Use Right Away]]></title><description><![CDATA[<p>The best cold emailing strategy is to personalize every outreach. But let&apos;s be real: keeping up with a manual approach can be tedious and inefficient.</p>
<p>By using Mautic you can automate many parts of your cold email outreach strategy. That might be a game-changer for your cold email</p>]]></description><link>https://audienture.com/how-to-craft-a-cold-email-outreach-campaign-using-mautic/</link><guid isPermaLink="false">64fdbb6468d9fc3e7236278a</guid><category><![CDATA[Best Practice]]></category><category><![CDATA[Advanced]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Sun, 10 Sep 2023 15:37:28 GMT</pubDate><media:content url="https://audienture.com/content/images/2023/09/using-mautic-to-create-cold-email-outreach-campaign.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://audienture.com/content/images/2023/09/using-mautic-to-create-cold-email-outreach-campaign.jpg" alt="How To Craft a Cold Email Outreach Campaign Using Mautic&#x2014;Which You Can Use Right Away"><p>The best cold emailing strategy is to personalize every outreach. But let&apos;s be real: keeping up with a manual approach can be tedious and inefficient.</p>
<p>By using Mautic you can automate many parts of your cold email outreach strategy. That might be a game-changer for your cold email campaigns.</p>
<p>This guide will walk through setting up an automated campaign in Mautic to nurture cold email leads through multiple touchpoints.</p>
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong>What you&apos;ll learn:</strong></b><br>&#x2022; How to transition from a manual outreach email to a streamlined, automated Mautic campaign.<br>&#x2022; Detailed, step-by-step guide on setting up a cold email outreach campaign in Mautic, complete with decision points, automated follow-ups and potential actions.</div></div>
]]></content:encoded></item><item><title><![CDATA[Mastering Cold Emailing with Mautic]]></title><description><![CDATA[<p>You don&apos;t get responses from your cold emails? You&apos;re probably using the wrong opener. Are you about to start cold emailing and don&apos;t know where to start? Wondering how you automatically follow up on cold emails? This article has you covered&#x2014;and it</p>]]></description><link>https://audienture.com/mastering-cold-emailing-with-mautic/</link><guid isPermaLink="false">64fc6ed968d9fc3e72362680</guid><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Sun, 10 Sep 2023 11:43:02 GMT</pubDate><media:content url="https://audienture.com/content/images/2023/09/mastering-cold-emails-using-mautic.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://audienture.com/content/images/2023/09/mastering-cold-emails-using-mautic.jpg" alt="Mastering Cold Emailing with Mautic"><p>You don&apos;t get responses from your cold emails? You&apos;re probably using the wrong opener. Are you about to start cold emailing and don&apos;t know where to start? Wondering how you automatically follow up on cold emails? This article has you covered&#x2014;and it tells you why no one cares about you and how you leverage this in cold emailing.</p>
<p>Cold emailing comes with many challenges. Besides finding leads to contact: Every day, millions of cold emails land in inboxes, and a significant chunk goes unnoticed.</p>
<p>Is it the content? Or is it the opener? Probably a mix both.</p>
<p>And once you&apos;ve secured that precious open, how do you automate follow-ups to keep the momentum?</p>
<p>This guide walks you through some of the main challenges with cold emailing and how to write an engaging cold email opener. You&apos;ll get some proven strategies to write a good opener.</p>
<h2 id="main-challenges-with-cold-emailing">Main Challenges with Cold Emailing</h2>
<p>Cold emailing can be a powerful tactic to reach potential clients or partners. Yet, like any tool, it can either build bridges or, if misused, burn them leading to missed opportunities.</p>
<p>Let&apos;s look at common challenges faced in cold:</p>
<h3 id="spam-filters"><strong>Spam Filters</strong></h3>
<p>One of the foremost challenges with cold emailing is the omnipresent spam filter. Many well-crafted emails end up unseen, buried in the spam folder, never reaching the intended recipient. It&apos;s a hurdle that can significantly affect your outreach success rate.</p>
<p><strong>Strategies to Overcome the Problem</strong></p>
<ol><li><strong>Avoid spammy words</strong>: Certain words or rather word combination in a certain context trigger spam filter. <a href="https://www.activecampaign.com/blog/spam-words?ref=audienture.com">Be conscious of your word choice</a>.<ol><li>Avoid spam words that make exaggerated claims and promises</li><li>Avoid spam words that create unnecessary urgency and pressure</li><li>Avoid spam words that look like shady, spammy, or unethical behavior</li></ol></li><li><strong>Use trustworthy email services</strong>: Platforms like Amazon SES or Mailjet are often whitelisted and have better deliverability. Avoid bulk sending via Gmail or other free email service provider (additionally, <code>xyz@gmail.com</code> doesn&apos;t look very professional). Using your own mail server comes with many challenges&#x2014;do it if you really know what you&apos;re doing.</li><li><strong>Monitor your sender reputation</strong>: Tools like Sender Score can help you check your domain&apos;s reputation. A good score can ensure better email delivery.</li></ol>
<h3 id="low-open-rates"><strong>Low Open Rates</strong></h3>
<p>Getting past spam filters is just the beginning. Your cold email may still get ignored if its subject line is boring and doesn&apos;t generate attention or curiosity.</p>
<p>Your email not only needs to land in the main inbox but also needs to be intriguing enough to get opened.</p>
<p><strong>Strategies to Overcome the Problem</strong></p>
<ol><li><strong>A/B test subject lines</strong>: Use variations and see which ones perform better to refine your approach.</li><li><strong>Incorporate urgency or curiosity</strong>: Phrases like &quot;Limited Offer&quot; or &quot;Have you seen this?&quot; can prompt clicks. The drawback is that the most catchy subject line seem spammy. So, there&apos;s a thin line to walk.</li><li><strong>Personalize subject lines</strong>: Including the recipient&apos;s name or referencing a recent event can increase open rates.</li></ol>
<h3 id="low-response-rates"><strong>Low Response Rates</strong></h3>
<p>Successfully getting your email opened doesn&apos;t guarantee a response. Many recipients&#x2014;even after reading the email&#x2014;may choose not to reply.</p>
<p>Crafting a compelling, clear, and actionable message is vital to enhancing your chances of getting a response.</p>
<p><strong>Strategies to Overcome the Problem</strong></p>
<ol><li><strong>Include a clear call to action (CTA)</strong>: Directly state what you want the recipient to do, whether it&apos;s a reply, a click, or a sign-up. If you don&apos;t ask for an action there won&apos;t be one.</li><li><strong>Follow up</strong>: If the first email goes unanswered, consider sending a polite follow-up after a week or two. People often forget to answer or take action, even they wanted to. So, a follow-up is justified.</li><li><strong>Ask open-ended questions</strong>: Encourage dialogue by asking questions that can&apos;t be answered with just a &quot;yes&quot; or &quot;no.&quot;</li><li><strong>Ask closed questions</strong>: Encourage a short reply by asking questions that can be answered with just a &quot;yes&quot; or &quot;no.&quot; The easier it is to reply the more likely it is you&apos;ll get one. As these strategies contradict each other, you&apos;ll adapt to your specific context.</li></ol>
<h3 id="reputation-damage">Reputation Damage</h3>
<p>There&apos;s a thin line between effective cold emailing and spamming. Sending unsolicited emails, especially in bulk, can harm your or your company&apos;s image.</p>
<p>If you overdo it, it might even lead to your email address being blacklisted.</p>
<p><strong>Strategies to Overcome the Problem</strong>:</p>
<ol><li><strong>Provide value</strong>: Ensure every email sent provides value to the recipient, making it less likely to be perceived as spam.</li><li><strong>Segment and personalize</strong>: Instead of a broad and generic approach, segment your audience and tailor your messages to each segment&apos;s unique needs and interests. It would be best if you&apos;d personalize for each individual. But as that makes automation more difficult, there&apos;s a fine line to walk.</li><li><strong>Be transparent</strong>: Always clarify the reason for your outreach. Being upfront about how you came across the recipient&apos;s contact or why you think they&apos;d be interested can add authenticity to your approach.</li></ol>
<h3 id="perceived-as-impersonal">Perceived as Impersonal</h3>
<p>Cold emails that lack personalization can quickly be classified as generic by the recipient. An email that doesn&apos;t resonate or seem tailored to the recipient can diminish its impact and relevance.</p>
<p><strong>Strategies to Overcome the Problem</strong>:</p>
<ol><li><strong>Segment your Audience</strong>: Group your recipients based on interests, industries, or behaviors and tailor your content accordingly.</li><li><strong>Use personalization tokens</strong>: Tools like Mautic allow you to insert custom fields (e.g., first name) into your emails.</li><li><strong>Reference recent interactions</strong>: Mention a recent webinar they attended, an article they liked, or any interaction that shows you&apos;ve done your homework.</li></ol>
<h2 id="how-to-write-an-engaging-cold-email-opener">How to Write an Engaging Cold Email Opener</h2>
<p>The first few lines of your cold email are akin to a book&apos;s opening lines&#x2014;they can either captivate your audience or make them lose interest.</p>
<p>Assuming you got past the spam filter and your subject line was intriguing enough to justify a click to open the email:</p>
<p>Let&apos;s look at how to keep this momentum:</p>
<h3 id="personalize-the-greeting">Personalize the Greeting</h3>
<p>The power of addressing someone by their name cannot be understated. Starting your email with &quot;Dear [Name]&quot; or &quot;Hello [Name]&quot; immediately adds a touch of personalization and shows that it isn&apos;t just another mass email.</p>
<p><strong>Strategies to Implement the Tips</strong>:</p>
<ol><li><strong>Look for persons and their names</strong>: Always make sure you identify a specific person to send your email to. Look for their name, role, etc. Don&apos;t send to a generic &quot;catch-all&quot; inbox.</li><li><strong>Double-check for errors</strong>: Ensure the name is spelled correctly and you use the correct name in the correct email targeting the right person.</li><li><strong>Use neutral greetings if unsure</strong>: If you&apos;re not certain about the recipient&apos;s name, &quot;Hello there&quot; can be a safer bet than &quot;Dear Sir/Madam.&quot; Use this only as a fallback as a generic greeting will greatly reduce your chances for getting a response.</li></ol>
<h3 id="introduce-yourself-concisely-but-not-immediately">Introduce Yourself Concisely, But Not Immediately</h3>
<p>It&apos;s essential to provide context right off the bat. Many argue you should start with introducing yourself. I&apos;d say:</p>
<p>Do the opposite!</p>
<p>Make the email about them. Start with a context that is relevant for your recipient. Introduce yourself later.</p>
<p><strong>Strategies to Implement the Tips</strong>:</p>
<ul><li><strong>State your common connection</strong>: &quot;I saw your post on LinkedIn...&quot; or &quot;We met at the XYZ conference...&quot;</li><li><strong>Reference a mutual contact</strong>: &quot;John Doe suggested I reach out to you...&quot;</li><li><strong>Keep it under two sentences</strong>: Your introduction should be a quick preamble to the main content.</li></ul>
<h3 id="state-the-purpose-early">State the Purpose Early</h3>
<p>Recipients appreciate transparency. Clearly articulating your intent early on ensures they understand the email&apos;s purpose without having to dig through paragraphs.</p>
<p>Saving them time reduces friction, which in turn increases your success rate.</p>
<p><strong>Strategies to Implement the Tips</strong>:</p>
<ol><li><strong>Prioritize clarity over fluff</strong>: Get to the point, avoiding jargon or overly verbose language. If you&apos;re not able to summarize your pitch in one short paragraph, people won&apos;t read or understand what you want from them.</li><li><strong>Use bullet points</strong>: If there are multiple reasons you&apos;re reaching out, bullet points can break down the information clearly.</li><li><strong>Make your email skimmable</strong>: Make sure your email is skimmable. Use bullets, bold or italics. (Personal opinion: Avoid underscores if you&apos;re not linking to something.) If people can skim your email easily it increases the chances they get the whole purpose of the email. Ask someone to skim your email in 15 seconds and tell you what it is about.</li><li><strong>Reiterate at the end</strong>: Reinforce your purpose in your closing to leave a lasting impression.</li></ol>
<h3 id="offer-value-or-a-compliment">Offer Value or a Compliment</h3>
<p>Everyone appreciates recognition. Commenting on a recipient&apos;s recent success, article, or accomplishment not only provides validation but also establishes a positive tone for the rest of the email.</p>
<p><strong>Strategies to Implement the Tips</strong>:</p>
<ol><li><strong>Research the recipient</strong>: Take a few minutes to understand their latest achievements or publications.</li><li><strong>Be genuine</strong>: Avoid generic praise. Personalized and genuine compliments resonate more.</li><li><strong>Combine praise with your offer</strong>: &quot;I loved your article on XYZ, which is why I think our product could be beneficial for your readers.&quot; Or: &quot;Your successful launch of XYZ is the perfect opportunity to branch out to...&quot;</li></ol>
<h3 id="keep-it-brief">Keep it Brief</h3>
<p>Cold emails are unexpected, so brevity is key. Ensure your message is concise and to the point, demonstrating respect for the recipient&apos;s time and potentially increasing your chances of receiving a response.</p>
<p><strong>Strategies to Implement the Tips</strong>:</p>
<ol><li><strong>Limit to three paragraphs</strong>: Aim for a concise message, ideally under three paragraphs.<ol><li>Opener that creates curiosity/attention.</li><li>Valuable offer that is highly relevant.</li><li>Introduction of yourself and CTA.</li></ol></li><li><strong>Edit ruthlessly</strong>: After drafting, revisit and trim any unnecessary words or sentences.</li><li><strong>Avoid attachments</strong>: Unless absolutely necessary, attachments can be off-putting in cold emails. They come with several problems:<ol><li>Attachments might get your email right into the spam filter.</li><li>IT-security policy often forbids opening attachments.</li><li>People avoid opening attachments fearing scams, phishing, installing an exploit, etc.</li><li>Attachments add friction. Opening and reading an attachment increases the time needed to deal with your email. This decreases your chances for success.</li></ol></li></ol>
<h3 id="use-a-relevant-and-catchy-subject-line">Use a Relevant and Catchy Subject Line</h3>
<p>The subject line is your email&apos;s first impression. Instead of generic titles like &quot;Collaboration Request,&quot; opt for highly relevant and engaging lines like &quot;[XYZ] offers a mutual growth opportunity&quot; (XYZ being, e.g., a product of your recipient) to pique interest and improve open rates.</p>
<h2 id="strategies-for-openers">Strategies for Openers</h2>
<p>The perfect opener is both an art and a science. There are two basic strategies for openers:</p>
<ul><li>The positive opener and</li><li>the negative opener.</li></ul>
<p>Each strategy taps into fundamental human psychology.</p>
<p>Positive openers leverage the innate desire for affirmation and recognition, making recipients feel valued and acknowledged.</p>
<p>On the other hand, negative openers play with our instinctive urge to address challenges or avoid threats. Avoiding an unwanted event is a strong driver for action, urging your recipient to open the email.</p>
<p>Using of the two approaches, you can craft an opener that not only grabs attention but also resonates on a personal level with the recipient.</p>
<h3 id="the-positive-opener">The Positive Opener</h3>
<p>Nothing brightens up a day like genuine praise. When opening with a positive note, you acknowledge the recipient&apos;s achievements or highlight their work. Some examples you could use:</p>
<ol><li><strong>Highlighting Their Content</strong>:<ul><li>&quot;I recently read your article on [topic] and was particularly struck by your insights on...&quot;</li><li>&quot;Your post on [social media platform] about [topic] resonated with me...&quot;</li></ul></li><li><strong>Acknowledging Their Achievements</strong>:<ul><li>&quot;Congratulations on your recent [award/recognition/achievement]&#x2014;it&apos;s no small feat!&quot;</li><li>&quot;The success of [a specific project they worked on or their company&apos;s recent highlight] is truly commendable...&quot;</li></ul></li><li><strong>Referencing a Mutual Connection</strong>:<ul><li>&quot;Our mutual acquaintance, [Name], spoke highly of your work in...&quot;</li><li>&quot;[Name] mentioned that you&apos;re the go-to person when it comes to...&quot;</li></ul></li><li><strong>Stating Their Influence</strong>:<ul><li>&quot;Your work in [specific field or project] has been instrumental for professionals like myself...&quot;</li><li>&quot;You&apos;ve set a benchmark in [industry/domain] with your approach to...&quot;</li></ul></li><li><strong>Posing a Relevant Question</strong>:<ul><li>&quot;How did you manage to achieve such impressive results in...?&quot;</li><li>&quot;What&apos;s your secret to driving such impactful changes in...?&quot;</li></ul></li><li><strong>Acknowledging a Change or Event</strong>:<ul><li>&quot;I&apos;ve seen that [their company] recently ventured into... It&apos;s a bold move!&quot;</li><li>&quot;With the recent expansion of [their company or team], you must be on quite the journey...&quot;</li></ul></li><li><strong>Appreciating Aesthetic or Design</strong>:<ul><li>&quot;The design aesthetics of [their product/website/project] caught my eye. It&apos;s both functional and beautiful.&quot;</li><li>&quot;The recent redesign of [specific element] is a game-changer. It&apos;s both user-friendly and visually appealing.&quot;</li></ul></li></ol>
<h3 id="the-negative-opener">The Negative Opener</h3>
<p>Fears and pain points are strong drivers of action. A negative opener can certainly catch attention. But it&apos;s vital to strike a balance and not come off as critical. So, proceed with caution here! The intent is to offer value, a solution, or mutual growth. Examples:</p>
<ol><li><strong>Referring to a Public Review or Feedback</strong>:<ul><li>&quot;I recently stumbled upon a customer review mentioning challenges with [specific aspect of their product/service]. It got me thinking about potential solutions...&quot;</li><li>&quot;I noticed some feedback on [platform] regarding [specific issue]. It struck a chord because I&apos;ve seen others face similar challenges and overcome them by...&quot;</li></ul></li><li><strong>Highlighting Potential Threats from Current Events</strong>:<ul><li>&quot;With the recent developments in [CURRENT EVENT], it seems there could be potential challenges on the horizon for industries like yours.&quot;</li><li>&quot;The implications of [CURRENT EVENT] might pose some unforeseen hurdles for [specific aspect of their business].&quot;</li></ul></li><li><strong>Identifying Market Trends</strong>:<ul><li>&quot;I&apos;ve been observing a shift in [industry trend] that might be impacting businesses in your domain. Have you noticed its effects?&quot;</li><li>&quot;The increasing popularity of [emerging competitor or technology] seems like it could be a game-changer. How is your team navigating this new landscape?&quot;</li></ul></li><li><strong>Noting Observations from Their Digital Presence</strong>:<ul><li>&quot;While browsing your website, I encountered a few hiccups during the checkout process. It made me wonder if others have shared similar feedback.&quot;</li><li>&quot;I tried accessing your recent webinar, but ran into some technical glitches. It&apos;s a shame because the topic was right up my alley.&quot;</li></ul></li><li><strong>Referring to Broad Challenges</strong>:<ul><li>&quot;Maintaining a consistent brand voice across platforms is a challenge I&apos;ve seen many struggle with. I noticed a few inconsistencies in your recent campaigns. Has this been on your radar?&quot;</li><li>&quot;Given the surge in online security threats lately, I couldn&apos;t help but notice some potential vulnerabilities on your platform.&quot;</li></ul></li></ol>
<h2 id="automating-cold-emailing-with-mautic">Automating Cold Emailing with Mautic</h2>
<p>The best cold emailing strategy is to personalize every outreach. But let&apos;s be real: keeping up with a manual approach can be tedious and inefficient.</p>
<p>By using Mautic you can automate many parts of your cold email outreach strategy. That might be a game-changer for your cold email campaigns.</p>
<p><em>I moved the automation into a dedicated post:</em></p>
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://audienture.com/how-to-craft-a-cold-email-outreach-campaign-using-mautic/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How To Craft a Cold Email Outreach Campaign Using Mautic&#x2014;Which You Can Use Right Away</div><div class="kg-bookmark-description">The best cold emailing strategy is to personalize every outreach. But let&#x2019;s be real: keeping up with a manual approach can be tedious and inefficient. By using Mautic you can automate many parts of your cold email outreach strategy. That might be a game-changer for your cold email campaigns. Thi&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://audienture.com/favicon.ico" alt="Mastering Cold Emailing with Mautic"><span class="kg-bookmark-author">Tobias</span><span class="kg-bookmark-publisher">Audienture</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://audienture.com/content/images/2023/09/using-mautic-to-create-cold-email-outreach-campaign.jpg" alt="Mastering Cold Emailing with Mautic"></div></a></figure>
<h2 id="cold-emailing-automate-but-personalize">Cold Emailing: Automate but Personalize</h2>
<p>Cold emailing can be tricky. Have a look into your inbox, and you&apos;ll see a dozen examples of how not to do it.</p>
<p>But with a bit of care and understanding, it&apos;s possible to stand out.</p>
<p>It&apos;s not just about selling something; it&apos;s about starting a conversation, maybe even building a relationship.</p>
<p>So take a deep breath, think about the person on the other side of the screen, and give it your best shot. After all, behind every email address is a human, just like you.</p>
<p>And with some patience and practice, you&apos;ll get the hang of it. </p>
<p>Happy email marketing!</p>
<p></p>]]></content:encoded></item><item><title><![CDATA[How to Use Dynamic Segments in Mautic]]></title><description><![CDATA[<p>Segmentation is crucial, but static segments quickly go stale without constant updating. Do you add contacts manually to segments and wonder if there is an easier way to do? Dynamically filter and segment contacts with just a few clicks!</p>
<p>Why would you care?</p>
<p>Imagine this:</p>
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F914;</div><div class="kg-callout-text">You&apos;ve just</div></div>]]></description><link>https://audienture.com/how-to-use-dynamic-segments-in-mautic/</link><guid isPermaLink="false">64df478268d9fc3e723625cd</guid><category><![CDATA[Key Concepts]]></category><category><![CDATA[Advanced]]></category><dc:creator><![CDATA[Tobias]]></dc:creator><pubDate>Fri, 18 Aug 2023 11:37:01 GMT</pubDate><media:content url="https://audienture.com/content/images/2023/09/how-to-use-dynamic-segments-in-mautic.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://audienture.com/content/images/2023/09/how-to-use-dynamic-segments-in-mautic.jpg" alt="How to Use Dynamic Segments in Mautic"><p>Segmentation is crucial, but static segments quickly go stale without constant updating. Do you add contacts manually to segments and wonder if there is an easier way to do? Dynamically filter and segment contacts with just a few clicks!</p>
<p>Why would you care?</p>
<p>Imagine this:</p>
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F914;</div><div class="kg-callout-text">You&apos;ve just finished setting up a beautifully targeted campaign in Mautic. You&apos;re about to hit send on the email that&apos;s going to (hopefully) skyrocket your conversions. But then you double check your targeted segment:<br><br>Half the contacts in your segment were inactive for months, haven&apos;t visited a crucial landing page, already bought the product, or otherwise made your carefully crafted message totally irrelevant for them.<br><br>You groan as you realize you&apos;ll have to postpone the campaign for days while you manually update the stale, outdated segment. Opportunity wasted, time lost.</div></div>
<p><strong>Segmenting your contacts</strong> is an important part if you want to build an effective email marketing strategy. Segmentation can be done in two ways:</p>
<ol><li>Add contacts to segments manually&#x2014;by editing a (batch of) contact(s), using campaign or form actions or point triggers.</li><li><strong>Move contacts dynamically between segments</strong> based on filter rules and contact properties.</li></ol>
<p>You can easily guess that static segments require manual contact updates, which can be time-consuming and might limit your targeting ability.</p>
<p>That&apos;s where <strong>Mautic&apos;s filtered segments</strong> come in handy!</p>
<p>Unlike static segments, <strong>dynamic segments automatically update based on intelligent filters</strong> you configure. As your contacts&#x2019; data changes, so does their segment membership. This automation unlocks sophisticated targeting without ongoing manual work.</p>
<p>But before we dive into how to create and use filtered segments, let&apos;s recall what segmentation is and why it&apos;s important for email marketing.</p>
<h2 id="what-is-segmentation">What is Segmentation?</h2>
<p>In (email) marketing, <strong>segmentation refers to dividing your overall contact list into smaller subgroups or &#x201C;segments&#x201D;</strong>. Segments are based on shared contact/customer/lead attributes like demographics, behaviors, preferences, and more.</p>
<p>For example, you could have segments for:</p>
<ul><li>Contacts in specific locations</li><li>Contacts who have purchased certain products/services</li><li>Contacts with particular job titles or company sizes</li></ul>
<p>The goal is to <strong>categorize</strong> contacts into relevant groups that you can then <strong>target with customized messaging</strong> and offers through your email campaigns.</p>
<h2 id="why-is-segmentation-important">Why is Segmentation Important?</h2>
<p>Segmentation is <strong>crucial for enhancing engagement and conversions</strong> through your email marketing. Sending generic, broad emails to your entire contact list is not effective.</p>
<p>With segmentation, you can <strong>personalize content and tailor emails specifically to different (sub-)audiences</strong>. This targeted approach resonates more with recipients because they receive relevant information.</p>
<p>Segmenting your list allows you to:</p>
<ul><li>Deliver <strong>more value</strong> through personalized content</li><li>Increase opens and clicks by <strong>focusing on specific interests</strong></li><li>Test different messages and offers for different groups</li><li><strong>Improve conversions</strong> by sending customized calls-to-action</li><li>Build <strong>stronger relationships</strong> by providing value to subscribers</li></ul>
<p>Basically, <strong>precise segmentation allows you to build a deeper connection with your contacts</strong> and drive results.</p>
<h2 id="how-do-dynamic-segments-work">How Do Dynamic Segments Work?</h2>
<p>The mechanics of dynamically filtered segments in Mautic are easily explained:</p>
<ul><li>You create a segment and add a set of filters, which target specific contact attributes.</li><li>Mautic regularly checks every contact if they (still) match those filters.<ul><li>If they do, they become or stay a member of the segment.</li><li>If they don&apos;t, then Mautic will remove them from the segment.</li></ul></li></ul>
<p>So, Mautic will dynamically move your contacts to/from segments based on your filters. You can filter on:</p>
<ul><li>(Custom) Contact fields, tags, points, or stages.</li><li>Contact behaviors/actions. Those can be clicks in emails or a page visit or something else. Mautic tracks this for you.</li></ul>
<p>In order to let Mautic automatically adjust segment membership when the underlying data changes, you need to set up a filtered segment:</p>
<h2 id="step-by-step-guide-to-creating-filtered-segments">Step-by-Step Guide to Creating Filtered Segments</h2>
<p>Creating targeted dynamic segments is simple:</p>
<ol><li>Open the <code>Segments</code> view in the admin dashboard.</li><li>Click the <code>+New</code> button to create a new segment and give it an intuitive, self-descriptive name.</li><li>Switch to the Filters tab to add filters.</li><li>Add filter using the &#x201C;Choose one...&#x201D; dropdown. Available fields include:<ul><li>(Custom) Contact fields. If you can&apos;t find your desired filed, check that <code>Available for Segments</code> is set to <code>Yes</code> in its configuration.</li><li>Contact behaviors/actions.</li></ul></li><li>Add as many filters as you like using AND/OR operators to combine them and refine your targeting.</li><li>Save your segment.</li></ol>
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">You can connect filters using either AND or OR. In a nutshell:<br><br>If you use AND both (or every if you&apos;re using more than two) conditions have to be met (i.e., be TRUE in technical lingo) to become a member. For example: They clicked a certain link, <b><strong>AND</strong></b> they visited a certain page. One of both is not sufficient.<br><br>If you use OR it&apos;s sufficient for a contact to meet just one of the defined conditions to become a member of the segment. OR is what we want here. For example: Either they clicked a certain link, <b><strong>OR</strong></b> they visited a certain page.</div></div>
<p>Mautic will now automatically adjust the segment based on your filters!</p>
<h2 id="dynamic-segments-enable-powerful-targeting">Dynamic Segments Enable Powerful Targeting</h2>
<p>With dynamic segments, you can achieve sophisticated targeting like:</p>
<ul><li>Contacts who have been inactive for a certain time, or any other activity and date based filter:</li></ul>
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://audienture.com/how-to-create-a-date-based-segment-in-mautic/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How To Create A Date-Based Segment in Mautic</div><div class="kg-bookmark-description">A customer&#x2019;s subscription expires soon, and you want to remind them to renew with a special offer? A contact was inactive for more than six months, and you want to re-engage them? Wondering how you could tailor your marketing communications to those specific user timelines? Find out how in this</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://audienture.com/favicon.ico" alt="How to Use Dynamic Segments in Mautic"><span class="kg-bookmark-author">Tobias</span><span class="kg-bookmark-publisher">Audienture</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://audienture.com/content/images/2023/07/date-based-segmentation-in-mautic.jpg" alt="How to Use Dynamic Segments in Mautic"></div></a></figure>
<ul><li>Contacts in Segment A OR Segment B who clicked a link Email C in the last 30 days.</li><li>Contacts associated with Company X who have the job title Marketing Manager</li><li>Contacts who clicked Blog Post Y but did NOT open Email Z</li><li>Contacts who visited a landing page but didn&apos;t purchase the product.</li><li>Contacts who made a purchase (for a certain product) X days ago.</li></ul>
<p>You can see that there&apos;s no limit in how far you can go for segmenting your contacts. All you need to do is to provide Mautic accurate contact data. A neat way to do that is let contacts self-segment them.</p>
<p>Dynamic segments save time and enable precise targeting. Give them a try in Mautic today to step up your email marketing game!</p>
<p>Want to keep learning how to take your Mautic segmentation to the next level? Sign up for our free email newsletter and get exclusive tips delivered to your inbox.</p>
<p>Happy marketing!</p>]]></content:encoded></item></channel></rss>