Datenquellen
CallerHub liest Namen aus den Systemen, in denen Ihre Kontakte ohnehin gepflegt sind. Es greift nur lesend zu und legt keine eigene Datenbank an.
Arten von Datenquellen
| Quelle | Zugriff | Port (Beispiel) | Hinweise |
|---|---|---|---|
| Microsoft SQL Server | SQL-Anmeldung oder Windows-Anmeldung, SELECT | 1433 | benannte Instanzen mit \; Lesebenutzer z. B. mit db_datareader oder Rechten auf eine Sicht |
| Oracle | Dienstname (Service Name), SELECT | 1521 | Treiber Oracle.ManagedDataAccess.dll liegt im Ordner Drivers; kein Oracle-Client nötig |
| MySQL / MariaDB | ODBC | 3306 | MariaDB ODBC 3.1 oder MySQL ODBC 8.0 Unicode Driver (64 Bit) |
| PostgreSQL | ODBC | 5432 | PostgreSQL Unicode (x64) |
| Andere ODBC-Datenbanken | ODBC, optional eigene Verbindungszeichenfolge | je Datenbank | z. B. Firebird, SAP SQL Anywhere, SAP HANA (HDBODBC) |
| CSV-Datei | Datei lokal oder auf einer Freigabe | SMB 445 | wird bei jeder Änderung neu eingelesen; DATEV-, Excel- und CRM-Exporte über „Spalten zuordnen“ |
| REST-API | GET/POST mit none, basic, bearer, OAuth2 oder NTLM | 443 | Vorlagen für HubSpot, Salesforce, Zoho, Odoo, SAP S/4HANA, Dynamics 365 und weitere |
| LDAP / Active Directory | LDAP-Suche | 389 / 636 (LDAPS) | auch OpenLDAP (bind=simple); LDAPS empfohlen |
| Microsoft 365 (Graph) | App-Registrierung in Entra ID | 443 | what=contacts (Kontakte von Postfächern, Contacts.Read) oder what=users (User.Read.All) |
| Exchange (EWS) | Exchange Server lokal | 443 | Für Exchange Online stattdessen Microsoft 365 (Graph) verwenden; Microsoft hat die Abschaltung von EWS in Exchange Online angekündigt. |
Beispiel für eine Telefonnummernliste (SQL Server)
-- Die Spaltennamen nummer, anzeigename, rang, land und id sind festgelegt.
SELECT c.phone AS nummer, c.company + ' - ' + c.name AS anzeigename,
0 AS rang, c.country AS land, c.id AS id
FROM dbo.contacts c WHERE c.phone IS NOT NULL
Für Oracle und SQL Server beschreibt die Hilfe, wie Sie einen Lesebenutzer CALLERHUB anlegen und die passende Abfrage in einer unbekannten Datenbank finden. Ein SQL-Assistent und die Funktion „Mit KI entwerfen“ helfen dabei.
Vorlagen für CRM- und ERP-Systeme
„Vorlage“ setzt eine fertige Abfrage bzw. Definition für das gewählte System ein. Außer Infor COM wurde keine Vorlage mit einer echten Installation geprüft; Tabellen- und Feldnamen beruhen auf veröffentlichten Datenmodellen.
| System | Quelle | Tabellen bzw. Objekte | Stand |
|---|---|---|---|
| Infor COM | Oracle | RELKOMM, RELADRESSE, RELFIRMA, RELPERSON | mit R7.9 geprüft |
| Infor CRM (Saleslogix) | SQL Server | sysdba.ACCOUNT, sysdba.CONTACT | ungeprüft |
| Infor CloudSuite Industrial / SyteLine | SQL Server | custaddr_mst, vendaddr_mst | ungeprüft |
| Infor VISUAL | SQL Server, Oracle | CUSTOMER, VENDOR | ungeprüft |
| Infor M3 | SQL Server | OCUSMA, CIDMAS | ungeprüft |
| Infor LN / Baan | SQL Server, Oracle | ttccom100, ttccom130 | ungeprüft |
| Microsoft Dynamics CRM / 365 CE (on-premises) | SQL Server | AccountBase, ContactBase | Beispiel |
| Microsoft Dynamics 365 Business Central / NAV (on-premises) | SQL Server | Customer, Vendor, Contact je Firma | Beispiel |
| SAP Business One | SQL Server | OCRD, OCPR | Beispiel |
| SAP Business One auf SAP HANA | ODBC | OCRD, OCPR | ungeprüft |
| Sage CRM | SQL Server | Phone, PhoneLink, Company, Person | ungeprüft |
| Oracle E-Business Suite | Oracle | HZ_CONTACT_POINTS, HZ_PARTIES | ungeprüft |
| Oracle JD Edwards EnterpriseOne | Oracle, SQL Server | F0115, F0101, F0111 | ungeprüft |
| SuiteCRM / SugarCRM CE | MySQL/MariaDB | accounts, contacts, accounts_contacts | Syntax mit Testtabellen geprüft |
| vtiger CRM | MySQL/MariaDB | vtiger_account, vtiger_contactdetails | Syntax mit Testtabellen geprüft |
| Dolibarr ERP/CRM | MySQL/MariaDB | llx_societe, llx_socpeople | Syntax mit Testtabellen geprüft |
| Open Dental | MySQL/MariaDB | patient | Syntax mit Testtabellen geprüft |
| Odoo | PostgreSQL | res_partner, res_country | Syntax mit Testtabellen geprüft |
| Firebird, SAP SQL Anywhere | ODBC | Vorlage zum Anpassen | Vorlage |
| HubSpot CRM | REST | crm/v3/objects/contacts, companies | ungeprüft |
| Salesforce | REST | SOQL bzw. SOSL über alle Telefonfelder | ungeprüft |
| SuiteCRM 8 / 7.x (V8-API) | REST | Contacts, Accounts | ungeprüft |
| SugarCRM (REST v11) | REST | Contacts | ungeprüft |
| Zoho CRM | REST | Contacts, Accounts, Leads | ungeprüft |
| Odoo (JSON-RPC) | REST | res.partner | ungeprüft |
| SAP S/4HANA | REST (OData) | API_BUSINESS_PARTNER | ungeprüft |
| Microsoft Dynamics 365 / Dataverse (online) | REST | contacts, accounts, leads | ungeprüft |
| Microsoft Dynamics 365 Business Central (online) | REST, OAuth2 | API v2.0: contacts, customers, vendors | ungeprüft |
| Microsoft Dynamics 365 Finance & Supply Chain | REST, OAuth2 | OData CustomersV3 | ungeprüft |
| Infor CloudSuite über ION API | REST, OAuth2 | Mongoose-IDO SLCustomers | ungeprüft |
| bexio | REST | 2.0/contact | ungeprüft |
| HERO (Handwerkersoftware) | REST (GraphQL) | contacts | ungeprüft |
| Clio (Kanzleien) | REST, OAuth2 | api/v4/contacts | ungeprüft |
| Jobber (Außendienst) | REST (GraphQL), OAuth2 | clients | ungeprüft |
| DATEV (Export Debitoren/Kreditoren) | CSV-Datei | exportierte Datei, Spalten zuordnen | Vorschlag nach Spaltennamen |
| Active Directory, OpenLDAP | LDAP | user, contact bzw. inetOrgPerson | mit OpenLDAP geprüft |
| Microsoft 365 Kontakte bzw. Benutzer | Graph | contacts, users | ungeprüft |
| Exchange Kontakte | EWS | Kontaktordner | ungeprüft |
Open Dental verarbeitet Patientendaten; das sind Gesundheitsdaten im Sinne der DSGVO. Für ServiceTitan gibt es keine Vorlage, weil dessen Kontaktschnittstelle keine Namen liefert.
CSV-Datei und DATEV-Export
Ohne weitere Einstellungen liest CallerHub UTF-8 mit Semikolon, ohne Kopfzeile, in der Reihenfolge Telefonnummer, Anzeigename, Land und Link. Zeilen mit # am Anfang werden ignoriert.
„Spalten zuordnen“ liest beliebige Aufbauten, etwa einen Debitoren-/Kreditoren-Export aus DATEV, eine Excel-Liste oder einen CRM-Export. Trennzeichen, Kodierung (UTF-8 oder ANSI) und die DATEV-Kopfzeile erkennt CallerHub selbst. Mehrere Telefonspalten und Ersatzwerte wie {Firma} || {Vorname} {Nachname} sind möglich.
CallerHub liest nur die exportierte Datei und greift nicht auf DATEV selbst zu.
# Phone number;Display name;Country (optional);Link (optional)
030 1234560;Testkunde GmbH - Frau Beispiel;DE;https://crm.example.com/kontakt/1001
+41 44 123 45 67;Beispiel AG Zürich;;
044 765 43 21;Muster Treuhand AG;CH;
REST-APIs
Eine REST-Quelle wird zeilenweise mit key=value beschrieben. Damit lassen sich auch eigene Schnittstellen anbinden.
| Schlüssel | Beispiel | Bedeutung |
|---|---|---|
url | https://crm.example.com/api/contacts?page_size=500 | Adresse; bei Direktabfrage mit {num_e164}, {num_national} u. a. |
method, body, content_type | POST, {"phone":"{num_e164}"} | optional |
auth | bearer | none, basic, bearer, oauth2, ntlm/windows |
token_url, scope, grant | client_credentials | OAuth2: Client Credentials, Password oder Refresh Token |
header.Name | header.X-Api-Key={password} | eigene Kopfzeilen |
items, numbers, name | results, phone,mobile, {company} - {name} | Pfad zur Liste, Telefonfelder, Vorlage des Anzeigenamens |
next, next_token, next_offset | links.next | seitenweises Laden per Link, Token, Offset oder GraphQL-Cursor |
Folgeseiten werden nur vom selben Server und ohne Wechsel auf http geladen; Antworten sind auf 100 MB begrenzt, Retry-After wird beachtet.
Telefonnummernliste und Direktabfrage
Telefonnummernliste (empfohlen): CallerHub lädt alle Telefonnummern beim Start und im eingestellten Abstand (1 bis 1440 Minuten) in den Arbeitsspeicher und beantwortet jeden Anruf von dort. Schlägt eine Aktualisierung fehl, bleibt die bisherige Liste aktiv.
Direktabfrage: CallerHub fragt die Quelle bei jedem Anruf. Parameter wie :num_e164, :num_national, :num_digits, :num_local und :num_country werden für jede Datenbank passend übersetzt. Ergebnisse werden zwischengespeichert (höchstens 20.000).
Rufnummern werden vereinheitlicht: Leerzeichen, Bindestriche, Schrägstriche, Klammern und „(0)“ entfallen; + und 00 kennzeichnen internationale Nummern.
Mehrere Datenquellen
- Die Quellen werden in der angezeigten Reihenfolge abgefragt; die erste mit Treffer liefert den Namen.
- Je Telefonanlage legen Sie fest, welche Quellen sie abfragt.
- Fällt eine Quelle aus, liefern die anderen weiter. Findet keine Quelle die Nummer und ist eine gestört, antwortet CallerHub mit 503, damit der Ausfall nicht als „unbekannt“ zwischengespeichert wird.
- Die Grundversion erlaubt eine Datenquelle, die Vollversion bis zu zehn (mehr mit Sonderlizenz).
Länder und Vorwahlen
Nationale Nummern brauchen eine Ländervorwahl. Liefert die Quelle eine Spalte land, gilt sie je Zeile; sonst die eingestellte Vorwahl (z. B. 49). Erkannt werden ISO-Codes (CH, AT, DEU), Kfz-Kennzeichen (D, A, FL), Ländervorwahlen (41, +41, 0041) und gängige Ländernamen. Die Verkehrsausscheidungsziffer wird je Land berücksichtigt, etwa keine in Italien und Spanien, 06 in Ungarn oder 8 in Russland.