Mit Lifecycle-E-Mails Churn Rate & Retention verbessern

Die Begriffe “Churn (Rate)” und “Retention (Rate)” sind für SaaS-Produkte (Software-as-a-Service) gleichbedeutend mit “Wohl oder Wehe” und kaum eine andere Metrik fast den Zustand und die Zukunft so elegant in einer Zahl zusammen wie die Churn-Rate.

Deswegen ist es für Softwareunternehmen absolut wichtig den Churn im Auge zu behalten. Außerdem sollte man ständig versuchen diesen Wert zu verbessern.

Ein möglicher Weg sind Lifecycle-E-Mails – ein Thema das auf der MicroConf besonders von Patrick McKenzie oft wiederholt wurde. Patrick hat auch einen Online-Kurs zu Lifecycle-E-Mails, an dem ich mich lose orientiert habe.

Wie ich dabei genau vorgegangen bin und vor allem, warum Lifecycle-E-Mails gut für dein Unternehmen sind, das erkläre ich dir in diesem Artikel.

Was sind Churn Rate & Retention – und welche Bedeutung haben sie für mein Produkt?

Vorneweg: Ich befasse mich hier fast ausschließlich mit SaaS-Anwendungen – weil ich sie für das bessere Modell für kleine Unternehmen halte und weil ich selbst eine SaaS-Anwendung habe. SaaS bedeutet hier in der Regel: Web-Applikation, Selbstbedienung, monatlich wiederkehrender Umsatz (keine Einmalzahlung)

Außerdem betrachte ich nur B2B (Business-To-Business – also Produkte für andere Unternehmen). Auch hier gilt wieder: Ich finde B2B besser UND ich habe ein B2B-Produkt.

Es gibt andere Wege glücklich zu werden. Und es gibt andere Wege, um ein Unternehmen zu führen. Sicherlich kann man mit B2C und einmaliger Zahlung auch ein erfolgreiches Unternehmen aufziehen. Aber wenn du dich dafür entscheidest, dann erhöhst du den Schwierigkeitsgrad von “mittel” auf “Oh Mein Gott, was habe ich mir dabei bloß gedacht?”.

Churn kurz erklärt

Nächster Punkt: Churn-Rate. Churn beschreibt wie viel Prozent der Kunden in einem Zeitraum kündigen. Der Zeitraum ist normalerweise ein Monat (monthly churn), aber manchmal rechnet man auch mit Jahren (annual churn). Normalerweise: Monatlich, manchmal: Jährlich.

Wenn du also am 1. Februar 100 Kunden hattest und am 1. März von den 100 noch 85 da sind (Für Mathe-Cracks wie mich: 15 haben gekündigt), dann hast du einen monatlichen Churn von 15 Prozent.

Alternativ, kann man den Churn auch bezogen auf den Umsatz rechnen. Das ist sogar die üblichere Variante, aber auch etwas schwerer (wie rechnet man zum Beispiel den Umsatz eines Kunden ein, der jährlich im Voraus bezahlt hat?).

Man hat also 4 Möglichkeiten Churn auszudrücken, sortiert nach der Häufigkeit in der sie verwendet werden:

  1. monatlicher Umsatz-Churn
  2. monatlicher Kunden-Churn
  3. jährlicher Umsatz-Churn
  4. jährlicher Kunden-Churn

Im weiteren Verlauf des Artikels bedeutet Churn-Rate “monatlicher Churn bezogen auf den Umsatz” – es sei denn ich schreibe dazu, dass es was anderes ist. (Beten wir einfach, dass das nie nötig wird)

Warum genau interessiert mich das jetzt nochmal?

Erstens, weil Churn auf Dauer dazu führt, dass dein Unternehmen nicht mehr weiter wächst. In einem Monat kündigen also genauso viele Kunden wie du neue Kunden anwerben kannst.

Zweitens, Churn beeinflusst ganz entscheidend wie schnell der Umsatz deines Produktes wächst. Je größer der Churn, desto langsamer wächst der Umsatz.

Anders ausgedrückt: Der Churn hängt direkt mit dem Customer Lifetime Value (oft als LTV oder CTV abgekürzt) zusammen.

Je geringer der Churn, desto länger bleibt ein Kunde (im Durchschnitt) Kunde, desto mehr Geld bekommst du von ihm.

Beispielrechnung:
Du hast eine Anwendung, die einheitlich 50 Euro pro Monat kostet und einen Churn von 15 Prozent. Damit beträgt die durchschnittliche Lifetime 6,67 Monate, der Lifetime Value 333,34 Euro.

Gleiche Anwendung, nur dieses Mal liegt der Churn bei 5 Prozent. Der durchschnittliche Kunde hat eine Lifetime von 20(!!) Monaten. Und in diesen 20 Monaten machst du genau 1.000 Euro Umsatz mit diesem Kunden.

Lohnt sich – oder?

Über dieses Thema könnte man einen ganzen Blogpost schreiben – vermutlich mache ich das auch noch irgendwann – aber für den Moment reicht es zu wissen, dass Churn das Umsatzwachstum, den maximalen Umsatz und den Lifetime Value stark begrenzt.

Was den Churn beeinflusst

Es gibt eine ganze Reihe von Sachen, die den Churn beeinflussen – zum Beispiel die Branche in der das Unternehmen aktiv ist (Extrembeispiel: ein Hospiz hat einen relativ hohen Churn, weil die Kunden sterben). Aber für SaaS-Produkte wird der Churn vor allem bestimmt durch:

  • Qualität des Produktes (Wie gut erfüllt das Produkt die Aufgabe für die es gekauft wurde?)
  • wie glücklich macht das Produkt? (Das Erfolgsgeheimnis aller Laster… ich meine natürlich: Je mehr es deinem Kunden gefällt das Produkt zu nutzen, je mehr er sich dabei erfolgreich fühlt, desto weniger Churn hast du)
  • Wie wichtig ist das Produkt für den Kunden? (Schmerzmittel vs. Vitamine vs. Sky-Abo)
  • Abrechnungszyklus – jährliche Abrechnung reduziert üblicherweise den Churn, weil der Kunde nur noch einmal im Jahr dran denkt, dass er für deine Dienste zahlt
  • Zu welcher Zielgruppe gehört der Kunde? Wenn dein Produkt unterschiedliche Gruppen anspricht, dann ist der Churn oft deutlich unterschiedlich zwischen den Gruppen
  • Wie lange ist der Kunde schon bei dir? Je länger, desto niedriger ist in der Regel auch der Churn
  • Welchen Tarif nutzt der Kunde? Faustregel: Je mehr der Kunde zahlt, desto geringer ist der Churn – weil die Kunden das Produkt & den Wert des Produktes besser verstehen

Das ist natürlich nicht die vollständige Liste, aber es zeigt wie viele unterschiedliche Dinge einen Einfluss auf den Churn haben. Genauso viele Hebel hat man damit auch, um den Churn zu verbessern.

Welche Churn-Werte sind gut?

Ok. Letzte Frage zum Thema Churn: Welche Werte sind denn gut/normal?

Schwer zu beantwortende Frage, weil es von so vielen Variablen abhängt.
Ich probier trotzdem mal eine Annäherung – alle Werte monatlicher Umsatz-Churn.

  • Katastrophe: Churn über 8 Prozent – wenn das dein Produkt ist, hör’ SOFORT auf zu lesen, mach dich an die Arbeit und bring dein Produkt in Ordnung
  • Meh: zwischen 4 und 8 Prozent – keine Spitzenleistung und deine Anwendung hat noch Verbesserungsbedarf, aber es geht aufwärts!
  • Gut: 0 – 4 Prozent sind relativ gute Churn-Werte für ein B2B-SaaS-Produkt
  • Traumhaft: Alles kleiner als 0 Prozent (negativer Churn) ist absolut traumhaft, weil es bedeutet, dass dein Umsatz Monat für Monat steigt OHNE dass du irgendwas tun musst (nicht einmal neue Kunden gewinnen!)

Ja, in Ausnahmefällen ist es möglich einen negativen UMSATZ-Churn zu haben. Das passiert dann, wenn dir keine Kunden flöten gehen & die Kunden jeden Monat mehr ausgeben (z.B. weil sie selbst wachsen und deswegen bei dir einen höheren Tarif buchen).

Das passiert natürlich nicht so häufig. Ich würde sagen, der Halleysche Komet kommt öfter vorbei als dass irgendwo eine Firma negativen Churn hat.

Und was ist jetzt Retention?

[Retention] = 100 % – [Churn-Rate]

Retention sagt also aus wie viel Kunden/Umsatz dem Unternehmen treu bleiben. Retention wird seltener verwendet als Churn, aber dennoch sollte man wissen, was es ist, wenn es in einem Gespräch erwähnt wird.

Die Grundlagen für Lifecycle-E-Mails im Detail erklärt

Nachdem wir zumindest schon einmal geklärt haben, was Churn und Retention sind, müssen wir jetzt nur noch kurz klären, was ein Lifecycle ist und wie E-Mails dabei ins Spiel kommen. Dann kann’s endlich losgehen.

Was ist ein Customer-Lifecycle?

Customer-Lifecycle (deutsch: Kunden-Lebenszyklus) beschreibt nichts anderes als die Tatsache, dass die Beziehung zwischen deinem Unternehmen und einem Kunden durch verschiedene Phasen geht.

Noch bevor der Kunde zum Kunde wird, stößt er das erste Mal auf dein Unternehmen, besucht 5-10 Mal deine Webseite und meldet sich zum kostenlosen E-Mail-Kurs an. Das ist einerseits der Funnel, aber andererseits auch die ersten Schritte im Lifecycle deines Kunden.

Nach der Anmeldung für dein SaaS-Produkt, geht der Kunde eventuell durch eine kostenlose Demo, auf jeden Fall aber durch die Kennenlernphase, die Nutzungsphase und am Ende steht dann die Kündigung.

Nehmen wir grob die folgenden Phasen:

  1. Pre-Sale-Phase
  2. Onboarding-/Kennenlernphase
  3. Nutzungsphase
  4. Kündigung

Die erste Phase blenden wir für heute mal aus – aber auch hier gibt es durchaus Verbesserungspotential und Möglichkeiten, um E-Mails einzusetzen. Vielleicht schreibe ich dazu demnächst mal ein paar Worte.

Die vierte Phase ist – entgegen der landläufigen Meinung – kein singuläres Ereignis. Mit der Kündigung ist die Kundenbeziehung keineswegs vorbei.
Gerade wenn dein Churn sehr hoch ist, solltest du JEDEN einzelnen Kunden fragen, warum er gekündigt hat. Nur so kannst du herausfinden, was du verbessern musst.

Was zum Henker haben E-Mails damit zu tun?

Dein Ziel ist es, die Kündigung so lange wie möglich hinaus zu zögern. Falsch ausgedrückt… Nochmal: Dein Ziel ist es so lange wie möglich einen überragenden Mehrwert zu liefern, so dass dein Kunde keinen Grund hat zu kündigen.

Je später die Kündigung erfolgt, desto länger ist die Nutzungsphase, desto mehr Umsatz (bei monatlicher Zahlweise) machst du mit diesem Kunden.

E-Mails eignen sich hervorragend, um während des Onboarding oder der kostenlosen Trial-Periode (was sich oft überschneidet) dem Kunden Hilfestellungen zu geben. Diese E-Mails helfen deinem Kunden dabei dein Produkt erfolgreich zu nutzen und führen dazu, dass er sich besser fühlt.

Genauso können E-Mails während der Nutzungsphase dazu genutzt werden, um regelmäßig darauf hinzuweisen wie viel mehr Umsatz der Kunde durch die Nutzung deines Produktes macht – oder wie viel Kosten er einspart.
Diese E-Mails führen wieder dazu, dass der Kunde den Wert deines Produktes besser versteht und sich erfolgreicher fühlt, weil er dein Produkt nutzt. Endergebnis: weniger Churn, höherer LTV.

Der Vorteil von E-Mails ist, dass Sie leicht einzurichten, nahezu kostenlos und die Kunden bereits daran gewöhnt sind.

Lifecycle-E-Mails unterscheiden sich von den bekannten Autoresponder-E-Mails vor allem dadurch, dass sie Informationen über den Kunden & die Nutzung der Anwendung verwenden. Das heißt auch, dass diese E-Mails ein bisschen Programmieren erfordern!

Lifecycle-E-Mails in der Onboarding-Phase

Puuuuhhh… Immernoch hier? Gut, ab jetzt wird es richtig spannend! 🙂

Es gibt zwei Phasen in denen man mit den richtigen E-Mails die Churnrate beeinflussen kann.
Für dieses Kapitel befassen wir uns erstmal mit den E-Mails während der Kennenlern- / Onboarding-Phase. Dabei gehe ich von einer Anwendung aus, die eine kostenlose 30-tägige Testphase anbietet. Der Kunde kann also für 30 Tage das Produkt kostenlos testen, bevor er zahlen muss.

Die Onboarding-Phase ist entscheidend, weil in den ersten Monaten der Churn SEHR hoch ist (Moz.com hat im ersten Monat einen Churn von über 40 (!) Prozent). Während des Onboarding entscheidet sich, ob ein Interessent überhaupt zum Kunde wird.

Mit der richtigen E-Mail-Strategie kann man in dieser Phase richtig was reißen. Bleiben nur ein paar Fragen offen: Wie viele E-Mails schreibe ich meinen Kunden? Welche Art von E-Mails schreibe ich? Wann sende ich diese E-Mails?

Die E-Mails – Anzahl und Reihenfolge

Wie viele E-Mails kann man – ohne aufdringlich zu werden – in 30 Tagen schicken?

Ein guter Richtwert sind zwischen 6 und 8 E-Mails verteilt über die ersten 30 Tage der Nutzung.

Ich weiß, dass ungefähr 2 E-Mails pro Woche viel wirkt, aber dein Kunde wird sich über diese E-Mails freuen – solange diese E-Mails vernünftig gemacht sind. Wenn du anfängst ihm Werbung für Viagra zu schicken, dann klappt das eher nicht. 😉

Ein sehr gut funktionierende Reihenfolge für die E-Mails ist:

Direkt bei der Anmeldung schicken wir dem Kunden eine “Willkommens-E-Mail” mit einem schönen Design und “Wir freuen uns, dass Sie [PRODUKTNAME] nutzen!”. Ziemlich genau das, was ein Kunde erwartet, wenn er sich irgendwo anmeldet.

Als nächstes kommt eine “persönliche” Willkommens-E-Mail. Kein HTML-Design, knapp gehalten, von deiner persönlichen Adresse und 1-2 Tage nach Anmeldung. Hier fragen wir den Kunden wie es so läuft und ob er Fragen/Probleme hat, bei denen wir ihm helfen können. Diese E-Mail soll aussehen wie von Hand geschrieben.

Nach 15-20 Tagen kommt dann die erste E-Mail für die man wirklich programmieren muss: Die Nutzer bei denen die Trial gut verläuft erhalten eine andere E-Mail als die Nutzer, die scheinbar nicht mit der Software klar kommen.
Wenn die Trial nicht gut verläuft, dann bieten wir dem Kunden an die Trial-Phase zu verlängern.

Nach 28 Tagen – also 2 Tage vor Ende der Trial-Phase – sendet man eine E-Mail raus und informiert den Kunden, dass in zwei Tagen die Trial-Phase zu Ende ist und die Kreditkarte demnächst belastet wird.

Die letzte E-Mail geht nach 3-6 Monaten aktiver Nutzung raus. In dieser E-Mail bieten wir dem Kunden an auf eine jährliche Vorauszahlung umzusteigen – im Tausch gegen 1 oder 2 Monate kostenlose Nutzung.

Die E-Mails gehen also in dieser Reihenfolge raus:

  1. Komplette Willkommens-E-Mail
  2. Persönliche Willkommens-E-Mail vom CEO
  3. abhängig davon ob die Trial gut verläuft oder nicht
    1. Trial verläuft gut – kurze E-Mail zur Motivation
    2. Trial läuft schlecht – Angebot Trial zu verlängern
  4. Trial läuft aus, Kreditkarte wird belastet
  5. Angebot auf jährliche Zahlung umzustellen

Jeder Nutzer erhält also gerade einmal 5 E-Mails im Verlauf von 3 Monaten.

Möglichkeiten zum Ausbau der E-Mail-Serie

Jede Anwendung hat ein paar Features bei deren Nutzung man relativ klar vorhersagen kann, ob der Nutzer am Ende der Trialphase zu einem zahlenden Kunden wird.

Für mich (also TerminRetter) sind das zum Beispiel zwei Dinge:

  1. Einrichten einer Telefonnummer für die Anrufe
  2. Anlegen von mehr als 5 Terminen

Das Einrichten einer Telefonnummer ist erforderlich, um TerminRetter überhaupt nutzen zu können. Die Telefonnummer wird angezeigt, wenn wir jemanden anrufen, um ihn an einen Termin zu erinnern.

Weniger als 5 Termine bedeutet wohl, dass der Nutzer es einfach mal ausprobieren wollte. Mehr als 5 Termine sind dann eine ernsthafte Nutzung und meistens konvertiert dieser Nutzer dann zu einem zahlenden Kunden.

Mit diesem Wissen, kann ich auf jeden Fall eine weitere E-Mail in der Serie hinzufügen. Nämlich 3 Tage nach der Anmeldung, wenn der Nutzer noch keine Telefonnummer eingerichtet hat. In der E-Mail erkläre ich einfach nochmal, welche Vorteile der Nutzer aus TerminRetter ziehen kann und welche Schritte nötig sind, um die Telefonnummer einzurichten.

Ob ein Nutzer mehr als 5 Termine angelegt hat, verwende ich als Signal für die 3. E-Mail (ob die Trial erfolgreich verläuft).

Ich habe noch zwei zusätzliche E-Mails am Ende des Lifecycles: Eine Warnung, das die Mitgliedschaft bald endet, und eine E-Mail, wenn die Mitgliedschaft ausgelaufen ist.

Gerade die E-Mail am Ende der Beziehung ist enorm wichtig!
Hier musst du unbedingt fragen, WARUM dein Kunde kündigt. Du brauchst dieses Feedback unbedingt, um zu erfahren, was schief gelaufen ist und dein Produkt in Zukunft zu verbessern.

Es gibt kein besseres Feedback als von Leuten, die dein Produkt genutzt haben und sich dann entscheiden nicht mehr dein Kunde zu sein. Lerne soviel wie möglich davon!

Mit diesen drei zusätzlichen E-Mails sieht die komplette Lifecycle-E-Mail-Serie wie folgt aus:

  1. Komplette Willkommens-E-Mail
  2. Persönliche Willkommens-E-Mail vom CEO
  3. Hinweis die Einrichtung zu beenden, falls nicht geschehen
  4. Trial verläuft gut/nicht gut
    1. Trial verläuft gut – kurze E-Mail zur Motivation
    2. Trial läuft schlecht – Angebot Trial zu verlängern
  5. Trial läuft aus, Kreditkarte wird belastet
  6. Angebot auf jährliche Zahlung umzustellen
  7. Warnung, das die Mitgliedschaft bald endet
  8. E-Mail beim Ende der Mitgliedschaft mit Fragen zur Kündigung

Warum diese E-Mails die Churn-Rate senken

Die erste E-Mail hat sicherlich keinen Einfluss auf die Churn-Rate.
Die persönliche E-Mail sollte man so oder so senden (ich habe das bisher bei jedem Kunden gemacht) und damit einen persönlicheren Kontakt zu seinen Kunden herstellen. Die Antworten, die man erhält sind FANTASTISCH. Und obwohl meine Kunden wissen, dass es nur mich gibt, sind sie begeistert, wenn der CEO/Gründer/Inhaber ihnen schreibt!

Ab der dritten E-Mail geht es aber los. Der Hinweis die Telefonnummer einzurichten, verbessert die Aktivierung und damit den Funnel. Und jeder noch so kleine Gewinn macht sich direkt unter dem Strich bemerkbar.

Die vierte E-Mail (Trial läuft oder läuft nicht) bleibt entweder im Kontakt mit dem Kunden (Trial läuft) oder sie versucht den Kunden, der auf den Abgrund zusteuert, noch zu retten. Eine Verlängerung der Trial-Phase anzubieten, kostet mich NICHTS (OK – technisch betrachtet könnte es mich ein paar Euro Telefongebühr kosten… ich sagte ja: NICHTS). Wenn ich damit einen einzigen Kunden gewinne, hat sich das bis in alle Ewigkeit gelohnt.

Die fünfte E-Mail (Trial endet bald) erhält einfach nur den Dialog mit dem Kunden aufreicht und sorgt dafür, dass es keine unangenehmen Überraschungen gibt.

Die sechste (und vorerst letzte) E-Mail bietet an auf eine jährliche Zahlung umzustellen. Erfahrungsgemäß nehmen das Angebot etwa ein Viertel der Kunden an. Neben einem besseren Cashflow bringt die jährliche Zahlweise auch einen weiteren Vorteil: weniger Churn, weil es die Abrechnung für den Kunden einfacher macht und damit Reibung herausnimmt.

Umsetzung mit Rails & SendGrid

WICHTIG: Die E-Mails automatisiert zu versenden ist eine Optimierung. Deine Kunden interessiert es kein bisschen, ob du die E-Mails selbst verschickst oder sie von Rails versendet werden.

Es hindert dich niemand daran die nötigen Informationen selbst aus der Datenbank zu holen und die E-Mail selbst zu versenden. Es ist sogar die bessere Wahl am Anfang, denn ein Wochenende in Lifecycle-E-Mails zu investieren ist eigentlich Blödsinn, wenn überhaupt nicht absehbar ist, ob du jemals genug Kunden haben wirst.

Zusammengefasst: Überlege dir, ob du deine Zeit sinnvoll nutzt.

Jetzt geht’s richtig los mit dem Programmier-Spaß 🙂

Theoretisch kann man seinen eigenen, normalen E-Mailserver (SMTP-Server) verwenden, um die E-Mails zu versenden.

In der Praxis gibt es aber Gründe, die dagegen sprechen. Der wichtigste Grund ist, dass eigene E-Mailserver (auch die von 1&1, Hetzner, etc) teilweise massive Probleme haben E-Mails auszuliefern, besonders wenn viele E-Mails auf einmal rausgehen.

Ich hätte das auch nicht gedacht, bis ich mal einem meiner Consulting-Kunden helfen durfte, dessen Newsletter nicht mehr bei GMX- und T-Online-Adressen ankam. Obwohl er jedes Jahr mehr als 10.000 Euro für Webhosting und E-Mail an 1&1 überweist, haben die Mitarbeiter von 1&1 leider das DNS-Setup für die Mailserver verbockt. Gesamtschaden für meinen Kunden: Etwa 20.000 Euro Umsatzausfall.

Deswegen lohnt es sich einen Anbieter zu nutzen, der sich ausschließlich auf E-Mails spezialisiert. Es gibt eine ganze Reihe von Anbietern – z.B. Mailgun, Postmark, Mandrill oder SendGrid. Alle diese Anbieter haben in irgendeiner Form einen kostenlosen Tarif – man kann also durchprobieren.

Ich habe von Anfang an SendGrid verwendet und bisher keinen Grund gefunden zu einem anderen Anbieter zu wechseln.

SendGrid einrichten

Die Einrichtung ist (Rails-typisch) extrem einfach. Kurz den SendGrid-Gem in das Gemfile aufnehmen und anschließend Bundler install ausführen.

Anschließend folgenden Code an das Ende der environment.rb kopieren:

1
2
3
4
5
6
7
8
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '25',
:domain => 'DeineDomain.de',
:authentication => :plain,
:user_name => 'DeinSendGridUsername',
:password => 'UndJetztNochdeinPasswort'
}

Ab jetzt werden alle ausgehenden E-Mails über den SMTP-Server von SendGrid gesendet.

Als nächstes legen wir einen neuen Mailer für die Lifecycle-E-Mails an. Das geht auf der Kommandozeile mit:

1
rails generate mailer LifecycleMailer

Im nächsten Schritt konfigurieren wir die benötigten SendGrid-Apps, um ein sauberes OpenTracking & Click-Tracking haben. Gleichzeitig deaktivieren wir die “Unsubscribe”-Links, die automatisch am Ende einer E-Mail stehen. Das geht mit den folgenden Befehlen:

1
2
sendgrid_enable :clicktrack, :opentrack
sendgrid_disable :subscriptiontrack

SendGrid erlaubt E-Mails in Kategorien zusammen zu fassen. Die Statistiken (Open-Rate, Click-Rate) werden dann für diese Kategorien zusammengefasst. Man kann entweder SendGrid anweisen die Betreffzeile als Kategorie zu verwenden oder die Kategorie selbst setzen. Ich habe die Kategorie jeweils selbst gesetzt – mit diesem Befehl in der jeweiligen Action:

1
sendgrid_category "Welcome"

Der gesamte Code für den LifecycleMailer

Damit sieht der ganze Mailer dann so aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
class LifecycleMailer < ActionMailer::Base
  default from: "TerminRetter.de<#{I18n.t('config.email.default')}>"
 
  include SendGrid
  sendgrid_enable :clicktrack, :opentrack
  sendgrid_disable :subscriptiontrack
 
  add_template_helper(StaticHelper)
 
  def welcome_mail(user)
    sendgrid_category "welcome"
    @user = user
    @customer = user.customer
    mail(to: [@user.email, t('config.email.newaccount')], 
      from: "\"TerminRetter.de\" <#{t('config.email.newaccount')}>", 
      subject: t('mailer.lifecycle.welcome.subject'))
  end
 
  def personal_welcome_mail(user)
    sendgrid_category "personal welcome"
    @user = user
    @customer = user.customer
    mail(to: [@user.email],
      subject: t('mailer.lifecycle.personal_welcome.subject'))
  end
 
  def activation_reminder(user)
    sendgrid_category "activation reminder"
    @user = user
    @customer = user.customer
    mail(to: [@user.email],
      subject: t('mailer.lifecycle.activation_reminder.subject'))
  end
 
  def trial_going_well(user)
    sendgrid_category "trial going well"
    @user = user
    @customer = user.customer
    mail(to: [@user.email],
      subject: t('mailer.lifecycle.trial_going_well.subject'))
  end
 
  def trial_failing(user)
    sendgrid_category "trial failing"
    @user = user
    @customer = user.customer
    mail(to: [@user.email],
      subject: t('mailer.lifecycle.trial_failing.subject'))
  end
 
  def trial_ending(user)
    sendgrid_category "trial ending"
    @user = user
    @customer = user.customer
    mail(to: [@user.email],
      subject: t('mailer.lifecycle.trial_ending.subject'))
  end
 
  def annual_billing(user)
    sendgrid_category "annual billing"
    @user = user
    @customer = user.customer
    mail(to: [@user.email],
      subject: t('mailer.lifecycle.annual_billing.subject'))
  end
 
  def account_expiring(user)
    sendgrid_category "annual billing"
    @user = user
    @customer = user.customer
    mail(to: [@user.email],
      subject: t('mailer.lifecycle.account_expiring.subject'))
  end
 
  def account_expired(user)
    sendgrid_category "annual billing"
    @user = user
    @customer = user.customer
    mail(to: [@user.email],
      subject: t('mailer.lifecycle.account_expired.subject'))
  end
end

Die Views anlegen

Natürlich musst du noch die entsprechenden Views anlegen.
Das geschieht im Ordner “app/views/lifecycle_mailer”. Du kannst selbst entscheiden, ob du HTML- und/oder Text-E-Mails senden willst. Legst du eine Datei mit dem Namen “welcome_mail.html.erb” an, dann wird für die Action “welcome_mail” eine HTML-E-Mail versendet. Legst du eine Datei “welcome_mail.text.erb” an, dann wird eine Text-E-Mail versendet. Legst du beide an, wird eine E-Mail mit HTML & Text verschickt.

Ich versende prinzipiell HTML- und Text-E-Mails – außer bei der persönlichen Willkommens-E-Mail – weil sie aussehen soll wie von mir selbst geschrieben.

Code zum Versenden der Mails an den richtigen Stellen einfügen

Die erste E-Mail versende ich, sobald die Aktivierung fertig ist. Das muss ich noch optimieren und sie direkt nach der Anmeldung versenden.

Die restlichen Mails versende ich dann in einem Cronjob. Dazu habe ich eine Rake-Task angelegt die mit “rake lifecycle:send” aufgerufen werden kann.

Diese Rake-Task führe ich einmal am Tag aus und schon bin ich fertig.

Die restliche Logik lasse ich mal außen vor, weil sie komplett von TerminRetter abhängig ist und keinen wirklichen Nutzen hier bringt.

HTML-E-Mail-Templates

Gute (und das bedeutet heutzutage auch und vor allem: Responsive) HTML-E-Mail-Templates für den kommerziellen Einsatz sind rar und teuer. Bei ThemeForest kostet ein HTML-E-Mail-Template, das man auch zum Geld verdienen nutzen darf, ab 700 Dollar aufwärts.

Es gibt aber auch noch die Möglichkeit ein kostenloses Design zu nutzen: Zurb E-Mail-Templates

Das Design ist sicherlich nicht so flexibel und hübsch wie die kostenpflichtigen Templates, aber es ist ein guter Start. Letztlich ist es deine Entscheidung, ob du mit dem kostenlosen Template erstmal zufrieden bist oder lieber gleich voll einsteigst. (Tipp: Lass das Geld liegen bis das Geschäft genug Geld macht – du kannst später immer noch optimieren)

Damit die Templates sauber dargestellt werden, müssen sie vor dem Versand vorbereitet werden. Der Prozess nennt sich CSS-Inlining. Keine Angst, das ist relativ einfach, wenn man den PreMailer Gem verwendet. Die gesamte Anleitung findet sich auf der Projekt-Webseite, aber hier ist der kurz Abriss:

  1. Gem installieren (“gem install premailer”)
  2. Dieses Skript ins gleiche Verzeichnis wie das Template kopieren: PreMailer Example Script (und als ‘premailer.rb’ speichern)
  3. In der ersten Zeile ‘http://example.com/myfile.html‘ durch den Namen der Template-Datei ersetzen (z.B. ‘template.html’)
  4. Skript ausführen mit “ruby premailer.rb”

Danach hast du eine Datei “output.html”, die das Template mit Inline-CSS enthält. Dieses HTML Template kannst du dann direkt in den View-Templates in Rails verwenden.

Fazit

Die Einrichtung der Lifecycle-E-Mails haben mich etwa ein Wochenende (Schreiben + Programmieren) gekostet, aber ich werde dauerhaft von der geringeren Churn-Rate und der größeren Einbindung meiner Kunden profitieren.

Das hat zum Beispiel auch ganz unerwartete Vorteile: Durch die Antwort-E-Mails, die ich schon auf die persönliche Willkommens-Nachricht erhalten habe, habe ich einige gute Worte & Sätze für mein Copywriting und ein erstklassiges Testimonial bekommen.

Was für Erfahrungen hast du mit Lifecycle-E-Mails gemacht? Lass uns deine Meinung in den Kommentaren hören!

Hast du Fragen zu den Lifecycle-E-Mails? Ich freu’ mich darauf Sie zu beantworten. Schreib entweder hier einen Kommentar oder mir eine E-Mail an christoph@[Irgendeine meiner Domains]

Share Button