TYPO3 versüßt
Integration von SugarCRM
Wie TYPO3 setzt SugarCRM auf PHP als serverseitige Skriptsprache (wobei PHP 5 bisher nicht offiziell unterstützt wird) und MySQL als Datenbank, die Bedienung erfolgt über eine webbasierte Benutzeroberfläche. Im Folgenden wird davon ausgegangen, dass SugarCRM als separate Website betrieben wird, jedoch funktioniert es auch in einem Unterverzeichnis einer TYPO3-Website problemlos. Nachdem das SugarCRM-Paket entpackt und die zugehörige Website eingerichtet wurde, hilft ein Assistent bei der weiteren Konfiguration. Er untersucht die Server-Konfiguration, legt benötigte Datenbanktabellen und auf Wunsch auch Demo-Inhalte an. Nach der Installation kann man sich direkt mit dem dabei erzeugten Administrationsbenutzer anmelden und weitere Benutzer anlegen. SugarCRM deckt die Basisanforderungen eines CRM-Systems ab und enthält unter anderem:
- Kunden-/Kontaktdatenbank
- Kalender
- Aktivitätenverwaltung
- Produktkatalog
- Angebotserstellung/-verwaltung
- Produktverwaltung
- Projektmanagement
- Fehlermanagement
- Ticketing
- Termin-, Aufgaben- und Anrufverwaltung
Die kostenpflichtigen Professional- und Enterprise-Versionen bieten zusätzliche Funktionen wie die Unterstützung von Zugriffsrechten und ein Outlook-Plugin. Darüber hinaus stehen zahlreiche Erweiterungen zur Verfügung, etwa um Dokumente in SugarCRM zu verwalten oder Reports zu erstellen. Dank separater Sprachpakete steht die Oberfläche in den gängigen europäischen Sprachen zur Verfügung.
Der SugarCRM Web Service
Durch Eingabe der URL „http://<your url>/soap.php“ gibt SugarCRM die vom Web Service angebotenen Methoden preis. Die hier vorgestellte TYPO3-Erweiterung nutzt unter anderem die folgenden Methoden, wobei die Funktionen der Erweiterung nach den genutzten Web-Service-Methoden benannt sind.
| test (in message: String, out message: String) |
| Bei Erfolg liefert „test“ die übergebene Zeichenfolge zurück. |
| login (in user_auth: Array, in application_name: String, out set_entry_result: Array) |
| Meldet den Benutzer bei SugarCRM an, erzeugt eine Sitzung und gibt im Rückgabe-Array unter anderem deren ID zurück. |
| logout (in session: String, out error_result: Array) |
| Schließt die angegebene Sitzung. |
| contact_by_email (in user_name: String, in password: String, in email_address: String, out contact_detail_array: Array) |
| Sucht einen Kontakt (vom Typ “Contact” oder “Lead”) und gibt bei Erfolg dessen Daten zurück. |

Übersichtlich trotz vieler Informationen - SugarCRM fasst die wichtigsten Dinge auf der Startseite zusammen.
Typischerweise besteht eine Anfrage an SugarCRM aus den Methodenaufrufen „login“, beliebigen Methoden und „logout“.
Nutzung des Web Services durch TYPO3
An einem konkreten Beispiel soll die Nutzung des Web Services zur Integration gezeigt werden.

Besucher können über ein TYPO3-Kontaktformular Terminwünsche äußern, die direkt in SugarCRM einfließen.
Ist die E-Mail-Adresse des Besuchers bereits in SugarCRM hinterlegt, so werden die Kontaktdaten aktualisiert, andernfalls wird ein neuer Kontakt angelegt. In einem zweiten Schritt werden zu diesem Erstkontakt ein Termin und eine Aufgabe angelegt. Die Zuordnung der Daten zu einem SugarCRM-Benutzer ist fest definiert. Zur Integration von TYPO3 und SugarCRM existiert eine eigene Erweiterung, welche die folgenden Funktionalitäten zur Verfügung stellt:
- Basisfunktionen: Login, Logout, Test, Suche nach Kontakten etc.
- Verarbeitung von TYPO3-Mailformularen: Eingaben werden mittels eines Hook vor dem Versand der E-Mail durch TYPO3 abgefangen und gemäß Konfiguration verarbeitet.
- Test-Plugin: Das Test-Plugin kann auf einer beliebigen TYPO3-Seite eingebunden werden und führt eine Anmeldung bei SugarCRM durch. Tritt ein Fehler auf, so wird dieser ausgegeben.
Konfiguration des TYPO3-Kontaktformulars
Um das Formular zu konfigurieren, wird dem Inhaltstyp MAILFORM ein Textfeld hinzugefügt, in dem die Einstellungen in einer TypoScript-ähnlichen Syntax eingegeben werden.
Erstkontakt {
// was soll angelegt werden?
type = Lead
// E-mail-Adresse wird als eindeutig vorausgesetzt
uniqueEmail = true
default {
lead_source = TYPO3 Online-Kontakt
// Wem wird der Lead zugeordnet?
assigned_user_id = jim_id
}
// Zuordnung SugarCRM-Feld = Formularfeld
mapping {
first_name = Vorname
last_name = Name
email1 = email
salutation = Anrede
phone_work = Telefon
account_name = Firma
}
// lege verknüpfte Einträge an
children {
Aufgabe {
type = Task
// Aufgabe nur anlegen, wenn Checkbox aktiviert wurde
condition = ($this->formVars['Rueckruf'] != '1')
default {
name = Online-Anfrage beantworten
priority = Medium
status = Not Started
assigned_user_id = jim_id
parent_type = parent.type
parent_id = parent.id
}
mapping {
description = Anfrage
}
}
Anruf {
type = Call
condition = ($this->formVars['Rueckruf'] == '1')
// In welchem Format wird das Datum im Formular eingetragen?
input_dateformat = d.m.Y
default {
name = Online-Kontakt anrufen
priority = Medium
status = Planned
direction = Outbound
reminder_time = 600
duration_hours = 0
duration_minutes = 15
assigned_user_id = jim_id
parent_type = parent.type
parent_id = parent.id
date_start = now
time_start = now
}
mapping {
description = Anfrage
date_start = DPC_Datum
date_end = DPC_Datum
time_start = Uhrzeit
}
}
}
}
Listing 1
Weitere Anwendungen
Die in den vorherigen Abschnitten vorgestellte Erweiterung dient momentan in erster Linie zum Experimentieren. Interessierte Entwickler können sich gern an der Weiterentwicklung beteiligen. SugarCRM könnte beispielsweise als führendes System zur Verwaltung von TYPO3-Frontend-Benutzern eingesetzt werden. Registriert sich ein Benutzer neu, so wird er als Kontakt angelegt. Bei der Anmeldung werden die Daten mit SugarCRM abgeglichen. Ändert der Benutzer seine Daten, werden diese in das CRM-System übernommen. Die Möglichkeiten sind zahlreich.
Sicherheitsaspekte
Wird SugarCRM als produktives CRM-System eingesetzt, so sollten die folgenden potentiellen Sicherheitslücken betrachtet werden:
- Der Web Service von SugarCRM muss von außen erreichbar sein, der interne Webserver wird also Angriffen aus dem Internet ausgesetzt.
- TYPO3-Seiten sollten durch einen Login abgesichert und der Schutz gegen automatisierte Formularversendungen überprüft werden.
- SugarCRM bietet in der Open-Source-Version keine Rechteverwaltung.
- Die Kommunikation zwischen TYPO3 und SugarCRM kann über HTTPS erfolgen, Benutzername und Kennwort eines SugarCRM-Benutzers werden jedoch in der TYPO3-Datenbank gespeichert.
Eine durchdachte Installation kann die Sicherheitsrisiken mindern. Ein internes System zu exponieren stellt jedoch immer ein Risiko dar. Wer per Web-Frontend aus dem Internet auf seinen internen Mailserver zugreift, hat diese Erwägungen hoffentlich schon angestellt und kein Problem mit der Öffnung.













