CRM-Integration: Wie kann ich Access-Datenbanken mit CRM-Systemen verbinden?

Ausgangslage: Access kennt die AblÀufe, CRM kennt die Kundenhistorie

Du hast in Access Prozesse, die das CRM nicht abbildet.
Das CRM (z. B. HubSpot, Salesforce, Zoho, Dynamics) hat zentrale Kontaktdaten, AktivitÀten, Leads.
Ziel: Daten synchronisieren – ohne doppelte Pflege.

Also: saubere Schnittstelle bauen.
Access bleibt operativ, CRM bleibt vertrieblich.

Variante 1: REST-API Zugriff auf CRM (z. B. HubSpot)

Beispiel: Kunde aus HubSpot holen

Public Function HoleKontakt(hubspotID As String) As String
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")

    Dim url As String
    url = "https://api.hubapi.com/crm/v3/objects/contacts/" & hubspotID & "?hapikey=DEINTOKEN"

    http.Open "GET", url, False
    http.Send

    HoleKontakt = http.responseText
End Function

JSON parsen, dann z. B. email, firstname, lastmodifieddate extrahieren.

Neuen Kontakt anlegen

Public Sub NeuerKontaktVorbereiten()
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")

    Dim json As String
    json = "{""properties"":{""email"":""kunde@example.com"",""firstname"":""Max"",""lastname"":""Mustermann""}}"

    http.Open "POST", "https://api.hubapi.com/crm/v3/objects/contacts?hapikey=DEINTOKEN", False
    http.setRequestHeader "Content-Type", "application/json"
    http.Send json
End Sub

Variante 2: Salesforce oder Dynamics 365 via Power Automate

Access exportiert DatensÀtze als CSV oder JSON.
Power Automate holt die Datei, ĂŒbertrĂ€gt sie ins CRM.
RĂŒckmeldung via HTTP, Datei oder Statusfeld.

Beispiel:

  • Access → tblNeueLeads
  • Power Automate → „Neue Leads in Dynamics CRM erstellen“
  • Access → setzt danach ExportiertAm

Variante 3: Webhook-Zwischenschicht mit n8n oder Make.com

Access → JSON via HTTP POST →
n8n verarbeitet →
POST an Salesforce, Zoho, Pipedrive usw.

Public Sub SendeLead()
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")

    Dim payload As String
    payload = "{""firma"":""Beispiel GmbH"",""kontakt"":""Anna Beispiel""}"

    http.Open "POST", "https://hook.integromat.com/abc123", False
    http.setRequestHeader "Content-Type", "application/json"
    http.Send payload
End Sub

Variante 4: CRM → Access: Daten importieren

Viele CRMs bieten CSV- oder Excel-Exporte.
Access importiert regelmĂ€ĂŸig:

DoCmd.TransferText acImportDelim, , "tmpCRM", "C:\Import\kontakte.csv", True

CurrentDb.Execute "INSERT INTO tblKunden SELECT * FROM tmpCRM WHERE NOT EXISTS (SELECT 1 FROM tblKunden WHERE Email = tmpCRM.Email)"

Ideal fĂŒr Berichte, Auswertungen oder Follow-up-Logik.

Synchronisationslogik in Access

  • Nur geĂ€nderte DatensĂ€tze ĂŒbertragen (LetzteÄnderung, SyncStatus)
  • Jede Aktion mitloggen (tblCRMLog)
  • Eindeutige IDs beibehalten (crm_id, extern_ref)
  • Konflikte sichtbar machen (SyncKonflikt = True)
  • Schreibzugriffe immer in Transaktionen kapseln
CurrentDb.BeginTrans
CurrentDb.Execute "UPDATE tblKunden SET crm_id = '1234', SyncStatus='Gesendet' WHERE ID=17"
CurrentDb.CommitTrans

Einsatzszenarien

  • Leadgenerierung ĂŒber Access-Formulare → ins CRM schieben
  • Newsletter-Opt-Ins aus Access synchronisieren
  • Verkaufschancen lokal vorbereiten → CRM ĂŒbernimmt
  • SupportvorgĂ€nge aus CRM in Access auswerten
  • Kontaktstatus aus CRM in Access-Prozesslogik einbauen

Geeignete CRMs mit REST-API

  • HubSpot
  • Zoho CRM
  • Salesforce
  • Pipedrive
  • Microsoft Dynamics 365
  • weclapp
  • CentralStationCRM

Fazit fĂŒr Entwickler

CRM-Integration braucht Disziplin.
Access ist flexibel, CRM ist strukturiert.
Du musst beide Welten verbinden – ohne doppelt zu denken.

Kategorien: