{"id":3949,"date":"2025-11-13T12:25:32","date_gmt":"2025-11-13T11:25:32","guid":{"rendered":"https:\/\/sprintcx.net\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/"},"modified":"2025-11-14T11:00:38","modified_gmt":"2025-11-14T10:00:38","slug":"zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation","status":"publish","type":"post","link":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/","title":{"rendered":"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation"},"content":{"rendered":"<h2>Zoho Flow: Wie Du mit der Google Places API und sauberer Datenarchitektur Duplikate vermeidest<\/h2>\n<p>Automatisierte Workflows sind das R\u00fcckgrat vieler moderner Unternehmen. Doch was passiert, wenn diese Automatisierungen ins Stocken geraten? Ein besonders hartn\u00e4ckiges Problem, dem Du in <a href=\"\/de\/zoho-flow\/\" target=\"_blank\">Zoho Flow<\/a> begegnen kannst, sind Fehler durch doppelte Datens\u00e4tze. Diese &#8222;Duplicate&#8220;-Fehler sind oft mehr als nur ein technisches \u00c4rgernis; sie deuten auf tiefere, architektonische Schwachstellen in Deinen Datenprozessen hin. Wenn Du Daten zwischen verschiedenen Systemen wie <a href=\"\/de\/zoho-crm\/\" target=\"_blank\">Zoho CRM<\/a> und externen Datenbanken wie <a href=\"https:\/\/www.airtable.com\/\" target=\"_blank\">Airtable<\/a> synchronisierst, ist eine saubere Datenlogik entscheidend f\u00fcr die Stabilit\u00e4t. In diesem Artikel zeigen wir Dir anhand eines praxisnahen Beispiels, wie Du solche Duplikat-Probleme nicht nur umgehst, sondern an der Wurzel packst und eine robuste, skalierbare L\u00f6sung aufbaust.<\/p>\n<h3>Praxisbeispiel: Das Duplikat-Dilemma bei der Synchronisation von Immobiliendaten<\/h3>\n<p>Stell Dir ein Unternehmen vor, das im Baugewerbe oder in der Immobilienverwaltung t\u00e4tig ist. Als zentrale Planungs- und Datenquelle wird eine externe Plattform wie <strong>Airtable<\/strong> genutzt, in der Projekte, Kontakte und zugeh\u00f6rige Geb\u00e4ude erfasst werden. Diese Informationen m\u00fcssen zuverl\u00e4ssig und in Echtzeit mit dem zentralen <a href=\"\/de\/zoho-crm\/\" target=\"_blank\">Zoho CRM<\/a> synchronisiert werden, um Vertriebs- und Serviceprozesse zu steuern.<\/p>\n<p>Ein eingerichteter <a href=\"\/de\/zoho-flow\/\" target=\"_blank\">Zoho Flow<\/a> \u00fcberwacht neue oder ge\u00e4nderte Eintr\u00e4ge in Airtable und soll entsprechende Datens\u00e4tze im CRM anlegen oder aktualisieren. Doch der Prozess scheitert immer wieder an zwei Fronten:<\/p>\n<ol>\n<li><strong>Fehlerhafte Kontakt-Duplikate:<\/strong> Ein Sub-Flow, der f\u00fcr die Synchronisation von Kontakten zust\u00e4ndig ist, meldet sporadisch einen &#8222;Duplicate record&#8220;-Fehler. Das Kuriose: Bei der Analyse der Flow-Historie stellt sich heraus, aass die eindeutige ID aus Airtable und die E-Mail-Adresse exakt mit einem bereits vorhandenen Datensatz im CRM \u00fcbereinstimmen. Anstatt den Datensatz zu aktualisieren, versucht der Flow f\u00e4lschlicherweise, einen neuen zu erstellen, was zum Fehler f\u00fchrt.<\/li>\n<li><strong>Architektonisches Problem bei Geb\u00e4udedaten:<\/strong> Das weitaus gr\u00f6\u00dfere Problem tritt bei der Synchronisation von Geb\u00e4uden auf. Wenn zwei verschiedene Kontakte (z.B. ein Architekt und ein Projektmanager) in Airtable mit demselben physischen Geb\u00e4ude verkn\u00fcpft werden, kommt es zum Konflikt. Der Flow ist so konzipiert, dass das Geb\u00e4ude-Objekt im CRM einen direkten &#8222;Eigent\u00fcmer&#8220; (den ersten Kontakt, der es angelegt hat) besitzt. Versucht der Flow nun, das gleiche Geb\u00e4ude f\u00fcr den zweiten Kontakt anzulegen, schl\u00e4gt dies fehl, da das Geb\u00e4ude bereits existiert und einem anderen Kontakt &#8222;geh\u00f6rt&#8220;. Die Datenarchitektur verhindert hier eine N:M-Beziehung (mehrere Kontakte zu einem Geb\u00e4ude).<\/li>\n<\/ol>\n<p>Diese Probleme f\u00fchren zu inkonsistenten Daten, manueller Nacharbeit und Frustration bei den Anwendern. Ein einfacher Workaround reicht hier nicht aus \u2013 es ist Zeit f\u00fcr eine grundlegende \u00dcberarbeitung.<\/p>\n<h3>Schritt-f\u00fcr-Schritt Anleitung zur robusten L\u00f6sung<\/h3>\n<p>Anstatt nur die Symptome zu behandeln, gehen wir das Problem strategisch an. Wir beginnen mit einem schnellen Workaround, um den Betrieb aufrechtzuerhalten, und widmen uns dann der nachhaltigen architektonischen L\u00f6sung.<\/p>\n<h4>Schritt 1: Analyse und ein tempor\u00e4rer Workaround f\u00fcr Kontakt-Duplikate<\/h4>\n<p>Der sporadische Duplikat-Fehler bei Kontakten scheint auf ein Timing-Problem oder eine Eigenheit in Zoho Flow hinzudeuten. W\u00e4hrend die Ursachenforschung l\u00e4uft, brauchen wir eine schnelle L\u00f6sung, damit der Flow nicht st\u00e4ndig fehlschl\u00e4gt. Hier hilft der &#8222;On Failure&#8220;-Pfad in Zoho Flow.<\/p>\n<p><strong>Die Logik des Workarounds:<\/strong><\/p>\n<ul>\n<li><strong>Versuch 1: Erstellen\/Aktualisieren:<\/strong> Der Flow versucht wie gewohnt, den Kontakt im CRM anzulegen (&#8222;Create or Update Record&#8220;).<\/li>\n<li><strong>Fehlerfall (&#8222;On Failure&#8220;):<\/strong> Wenn dieser Schritt mit einem &#8222;Duplicate&#8220;-Fehler fehlschl\u00e4gt, wird ein alternativer Zweig ausgef\u00fchrt.<\/li>\n<li><strong>Datensatz abrufen (&#8222;Fetch Record&#8220;):<\/strong> In diesem Fehler-Zweig nutzen wir die &#8222;Fetch Record&#8220;-Aktion, um den bereits existierenden Datensatz anhand der eindeutigen Airtable-ID oder der E-Mail-Adresse aus dem CRM zu laden.<\/li>\n<li><strong>Pfade zusammenf\u00fchren:<\/strong> Der Datensatz \u2013 entweder der neu erstellte aus dem Erfolgs-Pfad oder der abgerufene aus dem Fehler-Pfad \u2013 wird im weiteren Verlauf des Flows verwendet. So ist sichergestellt, dass immer die korrekte Datensatz-ID zur Verf\u00fcgung steht.<\/li>\n<\/ul>\n<p>Dieser Ansatz ist zwar nur eine &#8222;Kr\u00fccke&#8220;, stabilisiert aber den Prozess sofort und gibt Dir Zeit, die eigentliche Ursache zu beheben.<\/p>\n<h4>Schritt 2: Die Wurzel des Problems erkennen \u2013 Die Datenarchitektur \u00fcberdenken<\/h4>\n<p>Der Workaround l\u00f6st nicht das fundamentale Problem bei den Geb\u00e4udedaten. Die Annahme, dass ein Geb\u00e4ude immer nur einem einzigen Kontakt &#8222;geh\u00f6rt&#8220;, ist in der Praxis falsch. Die L\u00f6sung liegt in der Entkopplung der Daten.<\/p>\n<p><strong>Der neue Ansatz f\u00fcr das Datenmodell im Zoho CRM:<\/strong><\/p>\n<ul>\n<li><strong>Geb\u00e4ude als eigenst\u00e4ndiges Modul:<\/strong> Das benutzerdefinierte Modul &#8222;Geb\u00e4ude&#8220; darf keine direkte Lookup-Verkn\u00fcpfung zu einem &#8222;Eigent\u00fcmer&#8220;-Kontakt haben. Es repr\u00e4sentiert eine eigenst\u00e4ndige Entit\u00e4t.<\/li>\n<li><strong>Verkn\u00fcpfung \u00fcber ein Verbindungsmodul:<\/strong> Die Beziehung zwischen einem Kontakt und einem Geb\u00e4ude wird nicht direkt, sondern \u00fcber ein Standard- oder benutzerdefiniertes Modul wie &#8222;Opportunities&#8220;, &#8222;Projekte&#8220; oder ein eigens erstelltes Modul &#8222;Geb\u00e4ude-Beteiligungen&#8220; hergestellt.<\/li>\n<li><strong>Vorteil:<\/strong> Ein Geb\u00e4ude kann nun mit beliebig vielen Kontakten \u00fcber deren jeweilige Opportunities oder Projekte verkn\u00fcpft werden. Die 1:1-Beschr\u00e4nkung ist aufgehoben, und die Datenarchitektur spiegelt die Realit\u00e4t wider.<\/li>\n<\/ul>\n<p>Diese Umstrukturierung ist der wichtigste Schritt. Sie erfordert eine Anpassung der benutzerdefinierten Module im <a href=\"\/de\/zoho-crm\/\" target=\"_blank\">Zoho CRM<\/a>, l\u00f6st das Duplikat-Problem aber dauerhaft.<\/p>\n<h4>Schritt 3: Einen unumst\u00f6\u00dflichen Schl\u00fcssel definieren \u2013 Die Google Places API<\/h4>\n<p>Nachdem die Architektur korrigiert ist, bleibt eine Frage: Wie stellen wir sicher, dass ein Geb\u00e4ude nicht mehrfach angelegt wird, nur weil die Adresse leicht unterschiedlich geschrieben wurde (&#8222;Hauptstra\u00dfe 1&#8220; vs. &#8222;Hauptstr. 1&#8220;)? Wir ben\u00f6tigen einen global eindeutigen Identifikator f\u00fcr physische Orte. Hier kommt die <strong><a href=\"https:\/\/developers.google.com\/maps\/documentation\/places\/web-service\/overview\" target=\"_blank\">Google Places API<\/a><\/strong> ins Spiel.<\/p>\n<p>Jeder auf Google Maps verzeichnete Ort hat eine einzigartige <code>place_id<\/code>. Diese ID ist der perfekte eindeutige Schl\u00fcssel f\u00fcr unser Geb\u00e4ude-Modul.<\/p>\n<p><strong>Der angepasste Workflow in Zoho Flow:<\/strong><\/p>\n<ol>\n<li>Ein Trigger aus Airtable liefert eine neue Adresse.<\/li>\n<li>Eine <strong>Custom Function<\/strong> in <a href=\"\/de\/zoho-flow\/\" target=\"_blank\">Zoho Flow<\/a> ruft die Google Places API auf, um die <code>place_id<\/code> f\u00fcr die Adresse zu ermitteln.<\/li>\n<li>Der Flow f\u00fchrt eine &#8222;Upsert&#8220;-Aktion (Create or Update) im Geb\u00e4ude-Modul von Zoho CRM durch. Als Abgleichfeld wird nicht mehr die Adresse, sondern das neue Feld &#8222;Google Place ID&#8220; verwendet.<\/li>\n<\/ol>\n<p>Hier ist ein Beispiel f\u00fcr eine solche Deluge Custom Function, die Du in Zoho Flow verwenden kannst:<\/p>\n<pre><code>\/\/ Deluge Custom Function in Zoho Flow\n\/\/ Name: getGooglePlaceId\n\/\/ Argumente: address (String), apiKey (String)\n\nstring getGooglePlaceId(string address, string apiKey)\n{\n    \/\/ URL-encode der Adresse f\u00fcr die API-Anfrage\n    encodedAddress = zoho.encryption.urlEncode(address);\n    \n    \/\/ Google Places API Endpoint (Find Place from Text)\n    apiUrl = \"https:\/\/maps.googleapis.com\/maps\/api\/place\/findplacefromtext\/json\";\n    apiUrl = apiUrl + \"?input=\" + encodedAddress;\n    apiUrl = apiUrl + \"&amp;inputtype=textquery\";\n    apiUrl = apiUrl + \"&amp;fields=place_id\";\n    apiUrl = apiUrl + \"&amp;key=\" + apiKey;\n\n    \/\/ API-Aufruf durchf\u00fchren\n    response = invokeurl\n    [\n        url :apiUrl\n        type :GET\n    ];\n    \n    \/\/ Pr\u00fcfen, ob Kandidaten gefunden wurden\n    if(response.get(\"candidates\") != null &amp;&amp; response.get(\"candidates\").size() &gt; 0)\n    {\n        \/\/ Die place_id des ersten Ergebnisses zur\u00fcckgeben\n        placeId = response.get(\"candidates\").get(0).get(\"place_id\");\n        return placeId;\n    }\n    \n    \/\/ Falls nichts gefunden wurde, einen leeren String zur\u00fcckgeben\n    return \"\";\n}\n<\/code><\/pre>\n<p><strong>Wichtig:<\/strong> Deinen Google API Key solltest Du sicher als Verbindung in Zoho Flow oder in <a href=\"https:\/\/www.zoho.com\/de\/vault\/\" target=\"_blank\">Zoho Vault<\/a> speichern und nicht hart im Code hinterlegen.<\/p>\n<h4>Schritt 4: Den Tech-Stack optimieren \u2013 Airtable und Zoho Flow im perfekten Zusammenspiel<\/h4>\n<p>Bei jedem Sync eine API-Anfrage an Google zu senden, kann auf Dauer ineffizient werden und Kosten verursachen. Die eleganteste L\u00f6sung ist, den gefundenen eindeutigen Schl\u00fcssel im Quellsystem zu speichern.<\/p>\n<p><strong>Der optimierte, bidirektionale Workflow:<\/strong><\/p>\n<ol>\n<li><strong>Feld in Airtable anlegen:<\/strong> Bitte das zust\u00e4ndige Team, ein neues Feld namens <code>google_place_id<\/code> in der Airtable-Basis anzulegen.<\/li>\n<li><strong>Flow-Logik anpassen:<\/strong>\n<ul>\n<li>Der Flow pr\u00fcft zuerst, ob das Feld <code>google_place_id<\/code> im eingehenden Datensatz aus Airtable bereits gef\u00fcllt ist.<\/li>\n<li><strong>Fall A (ID vorhanden):<\/strong> Perfekt. Der Google API-Aufruf wird \u00fcbersprungen. Der Flow nutzt die ID direkt f\u00fcr den Upsert-Vorgang im CRM.<\/li>\n<li><strong>Fall B (ID fehlt):<\/strong> Der Flow ruft wie in Schritt 3 beschrieben die Google Places API auf, um die ID zu ermitteln.<\/li>\n<li><strong>Wichtiger Zusatz \u2013 R\u00fcckschreiben:<\/strong> Nachdem der Datensatz im CRM erfolgreich erstellt oder aktualisiert wurde, f\u00fcgt der Flow einen weiteren Schritt hinzu: Er aktualisiert den urspr\u00fcnglichen Datensatz in <strong>Airtable<\/strong> und schreibt die neu gefundene <code>google_place_id<\/code> in das daf\u00fcr vorgesehene Feld.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Dieser Kreislauf sorgt daf\u00fcr, dass f\u00fcr jede Adresse nur ein einziges Mal eine API-Anfrage an Google notwendig ist. Alle nachfolgenden \u00c4nderungen an diesem Datensatz sind schnell, g\u00fcnstig und effizient.<\/p>\n<h3>Tipps und Best Practices<\/h3>\n<ul>\n<li><strong>Idempotente Workflows anstreben:<\/strong> Dein Ziel sollte immer sein, idempotente Prozesse zu bauen. Das bedeutet, ein Workflow kann mehrfach mit denselben Eingabedaten ausgef\u00fchrt werden und erzeugt immer dasselbe Ergebnis, ohne Fehler oder Duplikate. Die Verwendung externer, eindeutiger Schl\u00fcssel wie der <code>place_id<\/code> ist ein Kernprinzip daf\u00fcr.<\/li>\n<li><strong>Robuste Fehlerbehandlung:<\/strong> Was passiert, wenn die Google API eine Adresse nicht findet? Dein Flow sollte nicht einfach abbrechen. Nutze die Fehlerpfade, um eine Benachrichtigung an einen Admin zu senden (z.B. \u00fcber <a href=\"https:\/\/www.zoho.com\/de\/cliq\/\" target=\"_blank\">Zoho Cliq<\/a>) oder einen Task zur manuellen Pr\u00fcfung in <a href=\"https:\/\/www.zoho.com\/de\/projects\/\" target=\"_blank\">Zoho Projects<\/a> zu erstellen.<\/li>\n<li><strong>API-Management:<\/strong> Behalte die Kosten und Limits Deiner genutzten APIs im Auge. Die gezeigte Write-Back-Methode zur Speicherung der <code>place_id<\/code> ist eine exzellente Strategie zur Kosten- und Performance-Optimierung.<\/li>\n<li><strong>Mut zum Refactoring:<\/strong> Scheue Dich nicht, eine einmal getroffene Design-Entscheidung zu \u00fcberdenken. Das Beispiel des &#8222;Geb\u00e4udeeigent\u00fcmers&#8220; zeigt, dass eine Korrektur der grundlegenden Datenarchitektur langfristig stabiler und skalierbarer ist als jeder noch so clevere Workaround.<\/li>\n<\/ul>\n<h3>Fazit: Von der Fehlerbehebung zur strategischen Verbesserung<\/h3>\n<p>Ein einfacher &#8222;Duplicate&#8220;-Fehler in <a href=\"\/de\/zoho-flow\/\" target=\"_blank\">Zoho Flow<\/a> war der Ausgangspunkt f\u00fcr eine tiefgreifende Optimierung eines gesamten Synchronisationsprozesses. Anstatt uns mit kurzfristigen Fixes zufriedenzugeben, haben wir die Datenarchitektur in <a href=\"\/de\/zoho-crm\/\" target=\"_blank\">Zoho CRM<\/a> grundlegend \u00fcberdacht, eine externe API (<a href=\"https:\/\/developers.google.com\/maps\/documentation\/places\/web-service\/overview\" target=\"_blank\">Google Places API<\/a>) zur Schaffung eines eindeutigen Schl\u00fcssels integriert und den Prozess durch einen intelligenten Datenaustausch mit dem Quellsystem (<a href=\"https:\/\/www.airtable.com\/\" target=\"_blank\">Airtable<\/a>) optimiert.<\/p>\n<p>Diese Vorgehensweise zeigt eindrucksvoll die St\u00e4rke des Zoho-\u00d6kosystems: Es geht nicht nur darum, einzelne Apps zu nutzen, sondern sie intelligent miteinander und mit externen Diensten zu verkn\u00fcpfen, um robuste und zukunftssichere L\u00f6sungen zu schaffen. Der Lohn ist ein Automatisierungsprozess, der nicht nur funktioniert, sondern auf einem soliden Fundament steht.<\/p>\n<p><strong>Verwendete Zoho Apps in diesem Szenario:<\/strong><\/p>\n<ul>\n<li><a href=\"\/de\/zoho-flow\/\" target=\"_blank\"><strong>Zoho Flow<\/strong><\/a>: Als zentrale Automatisierungs- und Integrationsplattform.<\/li>\n<li><a href=\"\/de\/zoho-crm\/\" target=\"_blank\"><strong>Zoho CRM<\/strong><\/a>: Als Zielsystem f\u00fcr die Kundendaten und die neu strukturierte Geb\u00e4ude-Datenbank.<\/li>\n<li><a href=\"https:\/\/www.zoho.com\/de\/vault\/\" target=\"_blank\"><strong>Zoho Vault<\/strong><\/a>: Zur sicheren Speicherung von API-Schl\u00fcsseln.<\/li>\n<li><a href=\"https:\/\/www.zoho.com\/de\/cliq\/\" target=\"_blank\"><strong>Zoho Cliq<\/strong><\/a>: F\u00fcr Echtzeit-Benachrichtigungen im Fehlerfall.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Vermeide Duplikate mit Zoho Flow und der Google Places API durch saubere Datenarchitektur f\u00fcr zuverl\u00e4ssige Automatisierungen.<\/p>\n","protected":false},"author":1,"featured_media":3998,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","osh_disable_topbar_sticky":"default","osh_disable_header_sticky":"default","osh_sticky_header_style":"default","osh_sticky_header_effect":"","osh_custom_sticky_logo":0,"osh_custom_retina_sticky_logo":0,"osh_custom_sticky_logo_height":0,"osh_background_color":"","osh_links_color":"","osh_links_hover_color":"","osh_links_active_color":"","osh_links_bg_color":"","osh_links_hover_bg_color":"","osh_links_active_bg_color":"","osh_menu_social_links_color":"","osh_menu_social_hover_links_color":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3949","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-zoho","entry","has-media"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation - SprintCX<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation - SprintCX\" \/>\n<meta property=\"og:description\" content=\"Vermeide Duplikate mit Zoho Flow und der Google Places API durch saubere Datenarchitektur f\u00fcr zuverl\u00e4ssige Automatisierungen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/\" \/>\n<meta property=\"og:site_name\" content=\"SprintCX\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-13T11:25:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-14T10:00:38+00:00\" \/>\n<meta name=\"author\" content=\"Gregor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gregor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/\"},\"author\":{\"name\":\"Gregor\",\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/#\\\/schema\\\/person\\\/33a4ba085d0b86874d45522b74c193eb\"},\"headline\":\"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation\",\"datePublished\":\"2025-11-13T11:25:32+00:00\",\"dateModified\":\"2025-11-14T10:00:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/\"},\"wordCount\":1549,\"publisher\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sprintcx.net\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/1764085105-6925cd71dd124.png\",\"articleSection\":[\"Zoho Tutorials\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/\",\"url\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/\",\"name\":\"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation - SprintCX\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sprintcx.net\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/1764085105-6925cd71dd124.png\",\"datePublished\":\"2025-11-13T11:25:32+00:00\",\"dateModified\":\"2025-11-14T10:00:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sprintcx.net\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/1764085105-6925cd71dd124.png\",\"contentUrl\":\"https:\\\/\\\/sprintcx.net\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/1764085105-6925cd71dd124.png\",\"width\":1408,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/\",\"name\":\"SprintCX\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/#organization\",\"name\":\"SprintCX\",\"url\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sprintcx.net\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/cropped-ChatGPT-Image-6.-Mai-2025-09_53_42.png\",\"contentUrl\":\"https:\\\/\\\/sprintcx.net\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/cropped-ChatGPT-Image-6.-Mai-2025-09_53_42.png\",\"width\":846,\"height\":828,\"caption\":\"SprintCX\"},\"image\":{\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/gregor-sprint\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/#\\\/schema\\\/person\\\/33a4ba085d0b86874d45522b74c193eb\",\"name\":\"Gregor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/890daf3cadca0407ae6752f5d3c0f4a1bbb2ce129b70d5e65fbefcc86deba987?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/890daf3cadca0407ae6752f5d3c0f4a1bbb2ce129b70d5e65fbefcc86deba987?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/890daf3cadca0407ae6752f5d3c0f4a1bbb2ce129b70d5e65fbefcc86deba987?s=96&d=mm&r=g\",\"caption\":\"Gregor\"},\"sameAs\":[\"https:\\\/\\\/sprintcx.net\"],\"url\":\"https:\\\/\\\/sprintcx.net\\\/de\\\/author\\\/gregor\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation - SprintCX","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/","og_locale":"de_DE","og_type":"article","og_title":"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation - SprintCX","og_description":"Vermeide Duplikate mit Zoho Flow und der Google Places API durch saubere Datenarchitektur f\u00fcr zuverl\u00e4ssige Automatisierungen.","og_url":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/","og_site_name":"SprintCX","article_published_time":"2025-11-13T11:25:32+00:00","article_modified_time":"2025-11-14T10:00:38+00:00","author":"Gregor","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Gregor","Gesch\u00e4tzte Lesezeit":"8\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/#article","isPartOf":{"@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/"},"author":{"name":"Gregor","@id":"https:\/\/sprintcx.net\/de\/#\/schema\/person\/33a4ba085d0b86874d45522b74c193eb"},"headline":"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation","datePublished":"2025-11-13T11:25:32+00:00","dateModified":"2025-11-14T10:00:38+00:00","mainEntityOfPage":{"@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/"},"wordCount":1549,"publisher":{"@id":"https:\/\/sprintcx.net\/de\/#organization"},"image":{"@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/#primaryimage"},"thumbnailUrl":"https:\/\/sprintcx.net\/wp-content\/uploads\/2025\/11\/1764085105-6925cd71dd124.png","articleSection":["Zoho Tutorials"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/","url":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/","name":"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation - SprintCX","isPartOf":{"@id":"https:\/\/sprintcx.net\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/#primaryimage"},"image":{"@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/#primaryimage"},"thumbnailUrl":"https:\/\/sprintcx.net\/wp-content\/uploads\/2025\/11\/1764085105-6925cd71dd124.png","datePublished":"2025-11-13T11:25:32+00:00","dateModified":"2025-11-14T10:00:38+00:00","breadcrumb":{"@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/#primaryimage","url":"https:\/\/sprintcx.net\/wp-content\/uploads\/2025\/11\/1764085105-6925cd71dd124.png","contentUrl":"https:\/\/sprintcx.net\/wp-content\/uploads\/2025\/11\/1764085105-6925cd71dd124.png","width":1408,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/sprintcx.net\/de\/zoho-flow-zoho-crm-und-google-places-api-tutorial-zur-duplikatvermeidung-bei-gebaudedaten-synchronisation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sprintcx.net\/de\/"},{"@type":"ListItem","position":2,"name":"Zoho Flow, Zoho CRM und Google Places API: Tutorial zur Duplikatvermeidung bei Geb\u00e4udedaten-Synchronisation"}]},{"@type":"WebSite","@id":"https:\/\/sprintcx.net\/de\/#website","url":"https:\/\/sprintcx.net\/de\/","name":"SprintCX","description":"","publisher":{"@id":"https:\/\/sprintcx.net\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sprintcx.net\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/sprintcx.net\/de\/#organization","name":"SprintCX","url":"https:\/\/sprintcx.net\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/sprintcx.net\/de\/#\/schema\/logo\/image\/","url":"https:\/\/sprintcx.net\/wp-content\/uploads\/2025\/05\/cropped-ChatGPT-Image-6.-Mai-2025-09_53_42.png","contentUrl":"https:\/\/sprintcx.net\/wp-content\/uploads\/2025\/05\/cropped-ChatGPT-Image-6.-Mai-2025-09_53_42.png","width":846,"height":828,"caption":"SprintCX"},"image":{"@id":"https:\/\/sprintcx.net\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/in\/gregor-sprint\/"]},{"@type":"Person","@id":"https:\/\/sprintcx.net\/de\/#\/schema\/person\/33a4ba085d0b86874d45522b74c193eb","name":"Gregor","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/890daf3cadca0407ae6752f5d3c0f4a1bbb2ce129b70d5e65fbefcc86deba987?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/890daf3cadca0407ae6752f5d3c0f4a1bbb2ce129b70d5e65fbefcc86deba987?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/890daf3cadca0407ae6752f5d3c0f4a1bbb2ce129b70d5e65fbefcc86deba987?s=96&d=mm&r=g","caption":"Gregor"},"sameAs":["https:\/\/sprintcx.net"],"url":"https:\/\/sprintcx.net\/de\/author\/gregor\/"}]}},"_links":{"self":[{"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/posts\/3949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/comments?post=3949"}],"version-history":[{"count":1,"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/posts\/3949\/revisions"}],"predecessor-version":[{"id":3950,"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/posts\/3949\/revisions\/3950"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/media\/3998"}],"wp:attachment":[{"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/media?parent=3949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/categories?post=3949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sprintcx.net\/de\/wp-json\/wp\/v2\/tags?post=3949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}