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.

Categories:

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert