Montag, 14. Oktober 2013

SEPA-Umstellung Teil 1: Vor der Abbuchung

Das Thema SEPA-Umstellung dürfte die meisten Alumni-Organisationen mit Beitragszahlern im Moment schwer beschäftigen- oder sie verdrängen es. Noch ist ein bisschen Zeit und in 2014 kann man in den ersten beiden Monaten auch noch mit BLZ und Kontonummer das Geld einziehen. Bei BiTS-Alumni ziehen wir unsere Beiträge erst Ende März ein, deshalb ist das für uns keine Option. Also habe ich mich heute mal dem Thema angenommen, und nach ca. 3 Stunden war der erste Teil erledigt. Hier ein kleiner Erfahrungsbericht.

Bevor man überhaupt über SEPA-Abbuchungen nachdenkt, muss man mit seiner Bank das SEPA-Lastschriftverfahren vereinbaren. Dafür braucht man eine SEPA-Gläubiger-ID, die man bei der Bundesbank beantragen muss. Bis dahin ist es nur etwas Papierkram, den ich hier nicht weiter beschreibe.

Als nächstes stand ich vor der Frage, wie wir mit dem Thema eigentlich umgehen wollen. Dank SEPA dürfen wir uns nicht mehr mit Kontonummer und Bankleitzahl (BLZ) befassen, sondern müssen uns mit IBAN und BIC zwei wesentlich längere Zahlen merken (oder schaffen das eben nicht). Bei bestehenden Mitgliedern ist das kein Problem. Die aktuellen Kontodaten müssen nur konvertiert werden. Man kann aus Kontonummer und BLZ die Werte einfach errechnen. Das geht mit dem kostenlosen Excel-Tool EX-IBAN von www.ex-sepa.de wunderbar. Dazu eine Anmerkung: Für den Fall, dass bei der BIC die letzten drei Stellen XXX sind, ist das kein Grund zur Panik. Viele Banken in Deutschland nutzen die Werte nicht. Die Anmerkung im EX-IBAN Tool, dass man die Werte manuell ändern muss, kann man also ignorieren – sagt zumindest unser Sparkassenberater. Erfahrungen damit habe ich noch keine gemacht (das kommt im 2. Teil).

Was aber macht man mit neuen Mitgliedern? Diesen IBAN und BIC abzuverlangen ist nicht gerade eine Einladung den (bei uns freiwilligen) Jahresbeitrag zu bezahlen. Ich habe mich deshalb dafür entschieden, dass wir beides anbieten. Mitglieder mit deutschem Konto können weiterhin Kontonummer und BLZ angeben. Im Rahmen des Rechnungslaufes wandeln wir die Werte in IBAN und BIC um und speichern diese fortan in der Datenbank. Für Mitglieder, die im Ausland leben, geht das leider nicht. Das sind bei uns aber nicht so viele, als das es den Aufwand lohnen würde, hierfür eine Programmierung vorzunehmen.

Unsere Website haben wir so erweitert, dass es bei der Überprüfung der Kontonummer/IBAN ab sofort eine Fallunterscheidung gibt: Ist der Wert eine Zahl, dann gehen wir von einer Kontonummer aus. Sind Buchstaben enthalten, dann erfolgt die Überprüfung der IBAN mittels Prüfziffer. Diese ist Teil der IBAN und man erkennt Tippfehler schon bei der Eingabe (weitere Infos auf www.sepa.de). Wir haben also keine neuen Felder, sondern speichern beide Werte im gleichen Feld.

Damit ist der aktuell machbare Teil der Arbeit schon erledigt. Ein Hinweis noch zur SEPA-Lastschrift selbst. Dort gibt es verschiedene Optionen „einmalige Abbuchung“, „erstmalige Abbuchung wiederkehrend“ und „wiederkehrende Abbuchung“ heißt es bei unserer Sparkasse. Hier hatte ich die Frage, ob wir bei der Übertragung der Abbuchungsdaten zukünftig alte und neue Mitglieder unterscheiden müssten. Die Antwort unserer Bank war, dass „wiederkehrende Abbuchung“ für alle Fälle schon okay wäre.

Den 2. Teil der Geschichte gibt es im März 2014, wenn wir die Jahresbeiträge eingezogen haben.

Fast vergessen hätte ich das Papieranmeldeformular, das muss natürlich auch angepasst werden :)

Freitag, 26. Juli 2013

Alumni Datenbanken: Sinnvoll und wenn ja, wie pflegen?

Von Zeit zu Zeit sollte man sich ja auch mal selbst hinterfragen. Angeregt durch eine Frage in der Xing Alumni Manager Gruppe habe ich mir mal meine Gedanken gemacht und auch überlegt, was überhaupt für das Vorhalten einer eigenen Datenbank spricht.

Ich halte eine Datenbank für eine sehr sinnvolle Lösung, deshalb mag dieser Artikel nicht ganz objektiv sein, ich freue mich daher über kritische Fragen und Meinungen.

Unnötig oder Essentiell?

Pro eigene Datenbank

  • Verkaufsargument gegenüber neuen Mitgliedern
  • Liefert Content für eigene Homepage und wenn er schlau aufbereitet ist, lassen sich hier weitere nutzbare Funktionen generieren (z. B. als Weltkarte oder Tag-Cloud nach Branchen/ Interessen)
  • Ist vollständig durchsuchbar durch Mitglieder (Xing, LinkedIn sind hier kostenlos nur stark eingeschränkt nutzbar)
  • Erlaubt es, schnell auch mal Listen von Mitgliedern zu erzeugen (bspw.  für die Organisation von Schwerpunktevents) – das geht mit Xing/LinkedIn nicht
  • Stärkt das Zusammengehörigkeitsgefühl („ich pflege meine Daten und leiste einen Beitrag zur Netzwerkentwicklung“) und erinnert an das Netzwerk, dessen Teil man ist
  • Macht unabhängig von externen Social Networks (deren Lebensdauer, Kosten und Data Privacy überhaupt nicht beeinflusst werden kann). 
  • Nicht alle Mitglieder sind bei Xing/LinkedIn und manche wollen dort auch nicht sein
  • Ermöglicht es, weitere Daten über die Mitglieder zu erheben, die bei Xing/LinkedIn nicht stehen /stehen können.
  • Ist langfristig das größte Asset eines Alumni Vereins (vorausgesetzt die Events des Vereins werden auch entsprechend gut besucht und es ist nicht nur eine tote Liste) . Ich würde sogar so weit gehen und behaupten, dass manche Mitglieder irritiert wären, wenn man diese Leistung nicht anbieten würde.

Contra eigene Datenbank

  • Zeit und Aufwand sie aktuell zu halten
  • Kosten für Webentwicklung
  • Datenpflege kann Mitglieder „nerven“
Ich habe mich dann noch gefragt, wie die Datenbank zur Vision des Vereins passt und bin in unserem Fall (www.bits-alumni.de) auf folgendes gekommen:
  • Datenbank ist ein Mitgliederservice
  • Ermöglicht den Austausch zwischen Mitgliedern (auf meiner Alumni Plattform, nicht woanders, das Senden von Nachrichten ist kostenlos)
Letztlich ist es eine Frage der Opportunität: Was könnte ich stattdessen in der Zeit für meine Mitglieder leisten, die ich aktuell auf Datenpflege ver(sch)wende?

These 1: Ganz ohne Datenpflege kommt niemand aus, auch nicht bei Xing. Hier sind zwar die Daten aktuell, aber im Moment kann man auch seine Gruppenmitglieder nicht wirklich gut gefiltert ansprechen. D. h. die Kosten entstehen hier bei der Selektion, die manuell erfolgen muss.

These 2: Die Kosten für die Webentwicklung entstehen zu großen Teilen trotzdem, da ich ein Mindestmaß an Pflege über die eigene Homepage z. B. für jene Mitglieder gewährleistet sein muss z. B. für die Pflege der Emailadressen.

These 3: Wenn ich meinen Mitgliedern online nicht den Eindruck vermitteln kann, dass der Verein lebt, dann kann ich sie auch nicht offline dazu bewegen zu Events zu kommen

Die Thesen 1 und 2 kann jeder leicht für sich beantworten. Bei These 3 wäre ich über eine Studie hoch erfreut. Ich glaube aber, dass es im Moment Alumninetzwerke gibt, die entweder beides gut oder beides schlecht machen.

Aus meiner Sicht ist damit die Frage klar, man braucht eine eigene Datenbank und sollte als erstes die negativen Punkte möglichst ausschalten, bevor man dann im zweiten Schritt die positiven Punkte weiter angehen kann. Dann gibt es auch keine Opportunität, da die investierte Zeit für die Datenbank sich gleich mehrfach bezahlt macht.

Wie erhält man gute Daten von seinen Mitgliedern (ohne diese zu nerven)?

Auch auf die Gefahr hin, hier nur bekannte Umstände aufzuzählen, mache ich es dennoch verbunden mit einigen (ersten) Erfahrungen, wie erfolgreich die einzelnen Maßnahmen sind:
  1. Anbieten einer Schnittstelle für die Mitglieder um Daten von Xing oder LinkedIn zu kopieren (Beispielvideo hier https://www.youtube.com/watch?v=D4NYi1grsTw )
  2. Jährliches Gewinnspiel, an dem man teilnimmt wenn man seine Daten aktualisiert
  3. Für Neue Mitglieder Reminder im mehrwöchigen Abstand, falls das Profil noch nicht aufgefüllt wurde
  4. Für eingeloggte Mitglieder ein Hinweis mit der Bitte, das Profil zu vervollständigen, wenn bestimmte Bereiche noch gar nicht ausgefüllt wurden.
  5. Den Service die Daten ggfs. auch FÜR die Mitglieder einzutragen (wenn bspw. bei einem Mailing Rücksendungen kommen und die Mitglieder auf Nachfrage per Email die korrekten Daten angeben)
  6. Eine Standardemail bei der wir zum Abschluss gratulieren, wenn der nach unseren Informationen stattfinden müsste (in der wir aber auch Fragen, ob das der Fall ist)
  7. Wenn das Profil vollständig ist, in periodischen Abständen eingeloggte Mitglieder fragen, ob die angezeigten Daten noch aktuell sind
  8. Bei Standardmails wie z. B. Newslettern oder Einladungen in einer Infobox Mitglieder mit unvollständigen Daten bitten, diese zu aktualisieren bzw. bei vollständigen Profilen Infos anzeigen w. z. B. „Ist der Job bei Firma xy noch aktuell?“
  9. Eine Seite zum Pflegen der eigenen Daten, die auch per Smartphone gut ausfüllbar ist.
  10. Eine gezielte Kampagne bei der alle Mitglieder, zu denen innerhalb eines Jahres kein Kontakt aufgenommen werden konnte, telefonisch oder auf andere Wege kontaktiert werden-
Die ersten 6 Punkte haben wir bereits umgesetzt. Eine eindeutige Zuordnung auf die Punkte ist nur schwer möglich. So kommt es regelmäßig vor, dass Personen, die wir per Email bitten ihre Daten zu pflegen, den Datenimport aus Xing nutzen. Insgesamt haben nach einem halben Jahr 121 von 660 Mitgliedern ihre Daten aus Xing importiert, also knapp 20 %. In den Daten ist aber sichtbar, dass insbesondere die neuen Mitglieder hier eine höhere Quote haben. Da einige Maßnahmen zu dem Thema im ersten Halbjahr 2013 eingeführt wurden, ist hier also Verbesserung sichtbar. Bei den langjährigen Mitgliedern wird es vermutlich schwieriger die Zahl mittelfristig zu steigern.

Sehr gute erste Erfahrungen haben wir mit Punkt 3 gemacht. Dieses Feature ist aber noch so neu, dass die Datenbasis noch zu klein ist als das ich hier eine Prozentzahl nennen will.

Das jährliche Gewinnspiel (Punkt 2) haben wir dieses Jahr erstmalig durchgeführt in Verbindung mit der Einführung des Imports der Daten aus Xing. Hier gibt es leider keine genaue Statistik, das wird erst nächstes Jahr klappen.

Punkt 4 (Hinweis nach Login) ist leider technisch überhaupt nicht messbar, da die Erweiterung der Homepage sonst deutlich aufwändiger (teurer) gewesen wäre. Letztlich ist das aber auch eine Maßnahme, die nur mit anderen Aktionen zusammenspielt. Hierfür muss man die Mitglieder natürlich erst mal dazu bekommen sich im Alumni Portal einzuloggen.

Der Punkt 5 ist extrem aufwändig, aber genau wie Punkt 10 eigentlich Aufgabe des Alumni Managers. Schließlich geht es darum Kontakte zu pflegen.

Bei Punkt 10 sind wir erst mal froh, dass wir nur 20 Mitglieder haben (knapp 3 %), zu denen wir im letzten Jahr gar keinen Kontakt hatten (die also weder einen Newsletter geöffnet haben, noch sich auf unserer Website eingeloggt haben oder den freiwilligen Beitrag bezahlt haben).

Wie geht es weiter?

Bei uns ist der technische Fortschritt für dieses Jahr schon ausgeplant. Eine Ergänzung der Seite um ein sogenanntes Responsive Design, das dafür sorgt, dass die Website auf mobilen Endgeräten genauso gut surfbar ist, wie mit einem Laptop/PC, ist für das nächste Jahr geplant. Erst danach werden die beiden letzten Punkte interessant.

Mittwoch, 27. Februar 2013

Extracting Global Adress List Data from an Exchange Account

After searching and browsing various tools, including ContactGenie Quickport which I did not manage to prevent from crashing, I stumbled upon a nice solution how to extract the GAL via
https://www.xing.com/net/vbatreff/vba-tipps-655000/global-address-list-gal-auslesen-39374842

This allowed me to extract all global address lists from the server without having administrational access to the server. All this worked fine with an offline GAL on Office 2010.

Here's the code based on the above source. Just copy to a new VBA :



' benötigte Konstanten
Private Const olExchangeGlobalAddressList As Integer = 0
Private Const olExchangeUserAddressEntry As Integer = 0
Private Const olExchangeRemoteUserAddressEntry As Integer = 5

Public Sub readGAL()
Dim oOutlook As Object
Dim oAddressList As Object
Dim oAddressEntry As Object
Dim oExchangeUser As Object
Dim i As Integer
i = 0

' Outlook-Instanz anlegen
Set oOutlook = CreateObject("Outlook.Application")

' Alle Adress-Listen durchgehen
For Each oAddressList In oOutlook.Session.AddressLists
    ' Prüfen, ob Exchange-Liste
    If oAddressList.AddressListType = olExchangeGlobalAddressList Then
        ' Alle Adress-Einträge durchgehen
        For Each oAddressEntry In oAddressList.AddressEntries
            ' Prüfen, ob Adress-Eintrag
            If oAddressEntry.AddressEntryUserType = 1 Then
                i = i + 1
                Cells(i, 1) = oAddressEntry.Name
                For Each omyUser In oAddressEntry.Members
                    i = i + 1
                    Cells(i, 2) = omyUser.Name
                    Cells(i, 3) = omyUser.Address
                Next
            End If
        Next
    End If
Next

' Objektvariable freigeben
Set oExchangeUser = Nothing
Set oAddressEntry = Nothing
Set oAddressList = Nothing
Set oOutlook = Nothing
End Sub