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.